Project

General

Profile

« Previous | Next » 

Revision 6d460ad2

Added by Patrick Plitzner over 10 years ago

  • added context menu property testers for "Create new..." command

View differences:

.gitattributes
469 469
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/CreateDerivateContextMenu.java -text
470 470
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateContentProvider.java -text
471 471
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateLabelProvider.java -text
472
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateMenuPropertyTester.java -text
472 473
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java -text
473 474
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDragListener.java -text
474 475
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDropAdapter.java -text
eu.etaxonomy.taxeditor.editor/plugin.xml
544 544
      </menuContribution>
545 545
      <menuContribution
546 546
            locationURI="popup:eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
547
         <command
548
               commandId="eu.etaxonomy.taxeditor.description.commands.adddescrip"
549
               label="New DerivedUni"
550
               style="push">
551
         </command>
547
         <menu
548
               label="New">
549
            <dynamic
550
                  class="eu.etaxonomy.taxeditor.bulkeditor.command.DynamicNewObjectMenu"
551
                  id="eu.etaxonomy.taxeditor.bulkeditor.dynamicNewMenu">
552
            </dynamic>
553
            <visibleWhen
554
                  checkEnabled="true">
555
               <or>
556
                  <reference
557
                        definitionId="isFieldUnit">
558
                  </reference>
559
                  <reference
560
                        definitionId="isDerivedUnit">
561
                  </reference>
562
               </or>
563
            </visibleWhen>
564
         </menu>
552 565
         <separator
553 566
               name="eu.etaxonomy.taxeditor.editor.separator1"
554 567
               visible="true">
......
557 570
               class="eu.etaxonomy.taxeditor.editor.view.derivate.CreateDerivateContextMenu"
558 571
               id="eu.etaxonomy.taxeditor.editor.view.derivate.CreateDerivateContextMenu">
559 572
         </dynamic>
560
         <command
561
               commandId="eu.etaxonomy.taxeditor.editor.command1"
562
               label="bla"
563
               style="push"
564
               tooltip="bla">
565
         </command>
566 573
      </menuContribution>
567 574
      
568 575
      
......
1207 1214
            </test>
1208 1215
         </with>
1209 1216
      </definition>
1217
      <definition
1218
            id="isFieldUnit">
1219
         <with
1220
               variable="selection">
1221
            <test
1222
                  property="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateMenuPropertyTester.isFieldUnit">
1223
            </test>
1224
         </with>
1225
      </definition>
1226
      <definition
1227
            id="isDerivedUnit">
1228
         <with
1229
               variable="selection">
1230
            <test
1231
                  property="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateMenuPropertyTester.isSpecimen">
1232
            </test>
1233
         </with>
1234
      </definition>
1210 1235
   </extension>
1211 1236
   <extension
1212 1237
         point="org.eclipse.core.expressions.propertyTesters">
......
1231 1256
            properties="isGroup"
1232 1257
            type="eu.etaxonomy.taxeditor.bulkeditor.BulkEditor">
1233 1258
      </propertyTester>
1259
      <propertyTester
1260
            class="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateMenuPropertyTester"
1261
            id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateMenuPropertyTester"
1262
            namespace="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateMenuPropertyTester"
1263
            properties="isFieldUnit,isSpecimen"
1264
            type="org.eclipse.jface.viewers.TreeSelection">
1265
      </propertyTester>
1234 1266
   </extension>
1235 1267
   <extension
1236 1268
         point="org.eclipse.ui.bindings">   
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/CreateDerivateContextMenu.java
2 2

  
3 3
import org.eclipse.jface.action.ContributionItem;
4 4
import org.eclipse.jface.action.IContributionItem;
5
import org.eclipse.jface.viewers.ISelection;
5 6
import org.eclipse.swt.SWT;
6 7
import org.eclipse.swt.widgets.Menu;
7 8
import org.eclipse.swt.widgets.MenuItem;
9
import org.eclipse.ui.IWorkbenchWindow;
10
import org.eclipse.ui.PlatformUI;
8 11
import org.eclipse.ui.actions.CompoundContributionItem;
9 12

  
13
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
14
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
15

  
10 16
public class CreateDerivateContextMenu extends CompoundContributionItem {
11 17

  
12 18
    /* (non-Javadoc)
......
18 24
                new ContributionItem() {
19 25
                    @Override
20 26
                    public void fill(Menu menu, int index) {
27
                        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
28
                        ISelection selection = window.getActivePage().getSelection();
21 29
                        MenuItem menuItem = new MenuItem(menu, SWT.None);
22 30
                        menuItem.setText("menuItem");
23
                    };
31
                        //selection is intance of TreeSelection
32
                        if(selection instanceof FieldUnit){
33
                            menuItem.setText("fieldUnit");
34
                        }
35
                        else if(selection instanceof DerivedUnit){
36
                            menuItem.setText("derivedUnit");
37
                        }
38
                    }
24 39
                }
25 40
        };
26 41
        return contributionItems;
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateMenuPropertyTester.java
1
/**
2
 *
3
 */
4
package eu.etaxonomy.taxeditor.editor.view.derivate;
5

  
6
import java.util.Arrays;
7

  
8
import org.eclipse.core.expressions.PropertyTester;
9
import org.eclipse.jface.viewers.IStructuredSelection;
10

  
11
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
12
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
13

  
14
/**
15
 * Property tester used by the DerivateView tree menu.
16
 *
17
 */
18
public class DerivateMenuPropertyTester extends PropertyTester {
19

  
20
	private static final String IS_FIELD_UNIT = "isFieldUnit";
21
	private static final String IS_SPECIMEN = "isSpecimen";
22

  
23
	/* (non-Javadoc)
24
	 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
25
	 */
26
	/** {@inheritDoc} */
27
	@Override
28
    public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
29
        System.out.println(receiver.toString() + receiver.getClass().toString());
30
        System.out.println(property);
31
        System.out.println(Arrays.asList(args));
32
        System.out.println(expectedValue);
33

  
34
		Object[] selectedElements = ((IStructuredSelection) receiver).toArray();
35

  
36
		if(selectedElements.length == 0){
37
			// nothing selected so all tests should fail
38
			return false;
39
		}
40

  
41
		if(IS_FIELD_UNIT.equals(property)){
42
			return isFieldUnit(selectedElements);
43
		}
44
		else if(IS_SPECIMEN.equals(property)){
45
			return isSpecimen(selectedElements);
46
		}
47
		else{
48
			return false;
49
		}
50
	}
51

  
52
	private boolean isFieldUnit(Object[] selectedElements) {
53
		for (Object object : selectedElements){
54
			if(!(object instanceof FieldUnit)){
55
				return false;
56
			}
57
		}
58
		return true;
59
	}
60

  
61
	private boolean isSpecimen(Object[] selectedElements) {
62
	    for (Object object : selectedElements){
63
	        if(!(object instanceof DerivedUnit)){
64
	            return false;
65
	        }
66
	    }
67
	    return true;
68
	}
69
}
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DescriptionsMenuPropertyTester.java
1 1
/**
2
 * 
2
 *
3 3
 */
4 4
package eu.etaxonomy.taxeditor.editor.view.descriptive.handler;
5 5

  
......
19 19
 * @version $Id: $
20 20
 */
21 21
public class DescriptionsMenuPropertyTester extends PropertyTester {
22
	
22

  
23 23
	private static final String MEDIA = "isMedia";
24 24
	private static final String FEATURE_NODE_CONTAINER = "isFeatureNodeContainer";
25 25
	private static final String DESCRIPTION = "isDescription";
26 26
	private static final String DESCRIPTION_ELEMENT = "isDescriptionElement";
27 27
	private static final String DELETABLE = "isDeletable";
28 28
	private static final String IMAGE_GALLERY = "isImageGallery";
29
	
29

  
30 30
	/* (non-Javadoc)
31 31
	 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
32 32
	 */
33 33
	/** {@inheritDoc} */
34
	public boolean test(Object receiver, String property, Object[] args,
34
	@Override
35
    public boolean test(Object receiver, String property, Object[] args,
35 36
			Object expectedValue) {
36 37

  
37 38
		Object[] selectedElements = ((IStructuredSelection) receiver).toArray();
38
		
39

  
39 40
		if(selectedElements.length == 0){
40 41
			// nothing selected so all tests should fail
41 42
			return false;
42 43
		}
43
		
44

  
44 45
		if(MEDIA.equals(property)){
45 46
			return isMedia(selectedElements);
46 47
		}
......
63 64
			return false;
64 65
		}
65 66
	}
66
	
67

  
67 68
	private boolean isImageGallery(Object[] selectedElements) {
68
		for (Object object : selectedElements){		
69
		for (Object object : selectedElements){
69 70
			if(!(object instanceof DescriptionBase) || !((DescriptionBase) object).isImageGallery()){
70 71
				return false;
71 72
			}
......
84 85

  
85 86
	private boolean isDeletable(Object[] selectedElements) {
86 87
		boolean result = false;
87
		
88

  
88 89
		for (Object object : selectedElements) {
89
			
90

  
90 91
			if((object instanceof DescriptionBase)
91 92
				|| (object instanceof DescriptionElementBase)
92 93
				|| (object instanceof Media)
......
95 96
			}else{
96 97
				return false;
97 98
			}
98
			
99

  
99 100
		}
100 101
		return result;
101 102
	}

Also available in: Unified diff