- only show Copy/Paste context menu for SingleRead/Sequence
authorPatric Plitzner <p.plitzner@bgbm.org>
Wed, 2 Apr 2014 11:01:53 +0000 (11:01 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Wed, 2 Apr 2014 11:01:53 +0000 (11:01 +0000)
.gitattributes
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewPropertyTester.java [new file with mode: 0644]

index d8f5d4f72fc4fd7ac69d6da0634edeef36a8f19b..4528580f5b06c2db5edf1ff3e46ed3c44473b884 100644 (file)
@@ -495,6 +495,7 @@ eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/d
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDropListener.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewEditorInput.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewPropertyTester.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/PasteDerivateCommand.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDragListener.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDropAdapter.java -text
index 8e5eaf1aa91c0e61abb976a3dee0312f0c1e3ee1..0c5037c5c0e3611c850f91fecbf5b3cd6b7e83e8 100644 (file)
                commandId="eu.etaxonomy.taxeditor.editor.copySingleRead"
                label="Copy"
                style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <reference
+                     definitionId="isSingleRead">
+               </reference>
+            </visibleWhen>
          </command>
          <command
                commandId="eu.etaxonomy.taxeditor.editor.pasteDerivate"
                label="Paste"
                style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <reference
+                     definitionId="isSequence">
+               </reference>
+            </visibleWhen>
          </command>
       </menuContribution>
       <menuContribution
          </with>
       </definition>
       <definition
-            id="isSpecimenOrObservation">
+            id="isSingleRead">
          <with
                variable="selection">
             <test
-                  property="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateMenuPropertyTester.isSpecimenOrObservation">
+                  property="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewPropertyTester.isSingleRead">
+            </test>
+         </with>
+      </definition>
+      <definition
+            id="isSequence">
+         <with
+               variable="selection">
+            <test
+                  property="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewPropertyTester.isSequence">
             </test>
          </with>
       </definition>
             properties="isGroup"
             type="eu.etaxonomy.taxeditor.bulkeditor.BulkEditor">
       </propertyTester>
+      <propertyTester
+            class="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewPropertyTester"
+            id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewPropertyTester"
+            namespace="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewPropertyTester"
+            properties="isSingleRead, isSequence"
+            type="org.eclipse.jface.viewers.TreeSelection">
+      </propertyTester>
    </extension>
    <extension
          point="org.eclipse.ui.bindings">   
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewPropertyTester.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateViewPropertyTester.java
new file mode 100644 (file)
index 0000000..951d8c4
--- /dev/null
@@ -0,0 +1,36 @@
+package eu.etaxonomy.taxeditor.editor.view.derivate;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeNode;
+
+import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+
+public class DerivateViewPropertyTester extends PropertyTester {
+
+    public DerivateViewPropertyTester() {
+    }
+
+    @Override
+    public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+        if(receiver instanceof IStructuredSelection) {
+            TreeNode treeNode = EditorUtil.getTreeNodeValueOfSelection((ISelection) receiver);
+            if(treeNode!=null){
+                if(property.equals("isSequence")
+                        && treeNode.getValue() instanceof Sequence
+                        && LocalSelectionTransfer.getTransfer().getSelection()!=null){
+                    return true;
+                }
+                else if(property.equals("isSingleRead") && treeNode.getValue() instanceof SingleRead){
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+}