- added property tester for context menu entries for media view (#3339)
authorPatric Plitzner <p.plitzner@bgbm.org>
Tue, 26 Aug 2014 06:50:13 +0000 (06:50 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Tue, 26 Aug 2014 06:50:13 +0000 (06:50 +0000)
eu.etaxonomy.taxeditor.bulkeditor/plugin.xml
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DescriptionsMenuPropertyTester.java

index 1dbae4734660a4d48e31d5fcd5dbb3b121db39b7..dabd669293c1d44e2312e96b98cf46b2faf24718 100644 (file)
                commandId="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addDerivedUnitMedia"\r
                label="Add Derived Unit Media"\r
                style="push">\r
+            <visibleWhen>\r
+               <not>\r
+                  <reference\r
+                        definitionId="isTaxonEditor">\r
+                  </reference>\r
+               </not>\r
+            </visibleWhen>\r
          </command>\r
          <command\r
                commandId="eu.etaxonomy.taxeditor.bulkeditor.command.derivedunit.addFieldObjectMedia"\r
                label="Add Field Object Media"\r
                style="push">\r
+            <visibleWhen>\r
+               <not>\r
+                  <reference\r
+                        definitionId="isTaxonEditor">\r
+                  </reference>\r
+               </not>\r
+            </visibleWhen>\r
          </command>\r
       </menuContribution>\r
       <menuContribution\r
index 1290226d262b9e0654598cdb67623d53858f67eb..63f730a7e5648d3a75a74583f94752b6b10d4c3d 100644 (file)
             </test>
          </with>
       </definition>
+      <definition
+            id="isTaxonEditor">
+         <with
+               variable="selection">
+            <test
+                  property="eu.etaxonomy.taxeditor.descriptions.propertyTester.isTaxonEditor">
+            </test>
+         </with>
+      </definition>
       <definition
             id="isDescription">
          <with
             class="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.DescriptionsMenuPropertyTester"
             id="eu.etaxonomy.taxeditor.descriptions.PropertyTester"
             namespace="eu.etaxonomy.taxeditor.descriptions.propertyTester"
-            properties="isMedia,isDescription,isDescriptionElement,isDeletable,isFeatureNodeContainer,isImageGallery"
+            properties="isMedia,isDescription,isDescriptionElement,isDeletable,isFeatureNodeContainer,isImageGallery,isTaxonEditor"
             type="org.eclipse.jface.viewers.TreeSelection">
       </propertyTester>
       <propertyTester
index 471cdf0e7bd9f5793b0c26220b63a5887657668b..eca1a544c2622af60a7bb3df6b454d1cb165cb8b 100644 (file)
@@ -9,6 +9,8 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 
 /**
@@ -26,6 +28,7 @@ public class DescriptionsMenuPropertyTester extends PropertyTester {
        private static final String DESCRIPTION_ELEMENT = "isDescriptionElement";
        private static final String DELETABLE = "isDeletable";
        private static final String IMAGE_GALLERY = "isImageGallery";
+       private static final String TAXON_EDITOR = "isTaxonEditor";
 
        /* (non-Javadoc)
         * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
@@ -35,9 +38,13 @@ public class DescriptionsMenuPropertyTester extends PropertyTester {
     public boolean test(Object receiver, String property, Object[] args,
                        Object expectedValue) {
 
-               Object[] selectedElements = ((IStructuredSelection) receiver).toArray();
+           if(TAXON_EDITOR.equals(property)){
+               return isTaxonEditor();
+           }
 
-               if(selectedElements.length == 0){
+           Object[] selectedElements = ((IStructuredSelection) receiver).toArray();
+
+           if(selectedElements.length == 0){
                        // nothing selected so all tests should fail
                        return false;
                }
@@ -127,4 +134,11 @@ public class DescriptionsMenuPropertyTester extends PropertyTester {
                }
                return true;
        }
+
+       private boolean isTaxonEditor() {
+           if(AbstractUtility.getActiveEditor() instanceof MultiPageTaxonEditor){
+               return true;
+           }
+           return false;
+       }
 }