Refactor DerivativeEditor context menu
authorPatrick Plitzner <p.plitzner@bgbm.org>
Mon, 1 Feb 2016 07:52:37 +0000 (08:52 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 3 Feb 2016 13:35:12 +0000 (14:35 +0100)
 - extracted "link with taxon selection" to plugin.xml

eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivativeEditorPropertyTester.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/DerivateViewContextMenu.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/ToggleLinkWithTaxonSelectionHandler.java [new file with mode: 0644]

index 70e779d74ef3c91104fae1f6f30c5dcc408d5351..1795b73afead863711963eec6cdb9840b23b379b 100644 (file)
                class="eu.etaxonomy.taxeditor.editor.view.derivate.contextMenu.DerivateViewContextMenu"
                id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateContextMenu">
          </dynamic>
+         <command
+               commandId="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
+               label="Link with taxon selection"
+               style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <not>
+                  <reference
+                        definitionId="isDerivativeEditorLinkedToTaxonSelection">
+                  </reference>
+               </not>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
+               label="Unlink from taxon selection"
+               style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <reference
+                     definitionId="isDerivativeEditorLinkedToTaxonSelection">
+               </reference>
+            </visibleWhen>
+         </command>
          <separator
                name="eu.etaxonomy.taxeditor.editor.separator3"
                visible="true">
             id="eu.etaxonomy.taxeditor.editor.derivative.removeSingleReadFromSequence"
             name="Remove SingleRead from sequence">
       </command>
+      <command
+            defaultHandler="eu.etaxonomy.taxeditor.editor.view.derivate.handler.ToggleLinkWithTaxonSelectionHandler"
+            id="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
+            name="Toggle link with taxon selection">
+      </command>
         
    </extension>
    <extension
             </test>
          </with>
       </definition>
+      <definition
+            id="isDerivativeEditorLinkedToTaxonSelection">
+         <with
+               variable="activeEditor">
+            <test
+                  property="eu.etaxonomy.taxeditor.editor.view.derivate.DerivativeEditorPropertyTester.isLinkedWithTaxonSelection">
+            </test>
+         </with>
+      </definition>
    </extension>
    <extension
          point="org.eclipse.core.expressions.propertyTesters">
             properties="isSequence,isSingleRead,isSingleReadReusableHere,isSingleReadReused"
             type="org.eclipse.jface.viewers.IStructuredSelection">
       </propertyTester>
+      <propertyTester
+            class="eu.etaxonomy.taxeditor.editor.view.derivate.DerivativeEditorPropertyTester"
+            id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivativeEditorPropertyTester"
+            namespace="eu.etaxonomy.taxeditor.editor.view.derivate.DerivativeEditorPropertyTester"
+            properties="isLinkedWithTaxonSelection"
+            type="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
+      </propertyTester>
    </extension>
    <extension
          point="org.eclipse.ui.bindings">   
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivativeEditorPropertyTester.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivativeEditorPropertyTester.java
new file mode 100644 (file)
index 0000000..74229d4
--- /dev/null
@@ -0,0 +1,20 @@
+package eu.etaxonomy.taxeditor.editor.view.derivate;
+
+import org.eclipse.core.expressions.PropertyTester;
+
+public class DerivativeEditorPropertyTester extends PropertyTester {
+
+    public DerivativeEditorPropertyTester() {
+        // TODO Auto-generated constructor stub
+    }
+
+    @Override
+    public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+        DerivateView derivateView = (DerivateView)receiver;
+        if(property.equals("isLinkedWithTaxonSelection")){
+            return derivateView.isListenToSelectionChange();
+        }
+        return false;
+    }
+
+}
index c89c7c85d0c38bee2fab44873041e6b5fb69fdab..ef1437956a3e9d4c4604a4e7819e078f8ef1df32 100644 (file)
@@ -12,7 +12,7 @@ public class DerivateViewContextMenu extends CompoundContributionItem  {
                 new CreateDerivateContextMenu(),
                 new CreateFieldUnitContextMenu(),
                 new Separator(),
-                new ListenToSelectionChangeContextMenu(),
+//                new ListenToSelectionChangeContextMenu(),
         };
         return contributionItems;
     }
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/ToggleLinkWithTaxonSelectionHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/ToggleLinkWithTaxonSelectionHandler.java
new file mode 100644 (file)
index 0000000..3af34dd
--- /dev/null
@@ -0,0 +1,19 @@
+package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+
+public class ToggleLinkWithTaxonSelectionHandler extends AbstractHandler {
+
+    @Override
+    public Object execute(ExecutionEvent event) throws ExecutionException {
+        DerivateView derivateView = (DerivateView) HandlerUtil.getActiveEditor(event);
+        derivateView.toggleListenToSelectionChange();
+        return null;
+    }
+
+}