Buttons for toggling "insert/overwrite" and "insert left/right" in toolbar replaced...
authorb.stoever <b.stoever@localhost>
Thu, 4 Dec 2014 19:18:26 +0000 (19:18 +0000)
committerb.stoever <b.stoever@localhost>
Thu, 4 Dec 2014 19:18:26 +0000 (19:18 +0000)
.gitattributes
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenAlignmentEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ToggleInsertOverwriteHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ToggleLeftRightInsertionHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/AlignmentEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ToggleInsertOverwriteButton.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ToggleLeftRightInsertionButton.java [deleted file]

index 09cf397f01aafb63fe4408a8f3e608df15965f8b..20da387e16a59e52500c79cf42c62736308f3907 100644 (file)
@@ -395,6 +395,8 @@ eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handle
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/OpenParentHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveAllHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveTaxonHandler.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ToggleInsertOverwriteHandler.java -text
+eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ToggleLeftRightInsertionHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/create/NewNameHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/create/NewPersonHandler.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/create/NewReferenceHandler.java -text
@@ -428,8 +430,6 @@ eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecu
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ContigSequenceDataProvider.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/PherogramMouseListener.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/PherogramViewPart.java -text
-eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ToggleInsertOverwriteButton.java -text
-eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ToggleLeftRightInsertionButton.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroup.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroupedContainer.java -text
index acadd517e55414639bb3326ec9900d4d5152e435..03d06d1ad565161771ac4752f995383fb298ce60 100644 (file)
             locationURI="toolbar:org.eclipse.ui.main.toolbar?after=eu.etaxonomy.taxeditor.navigation.search.toolbar">
          <toolbar
                id="eu.etaxonomy.taxeditor.editor.alignmentToolbar">
-            <control
-                  class="eu.etaxonomy.taxeditor.editor.molecular.ToggleLeftRightInsertionButton">
+            <command
+                  commandId="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.toggleInsertOverwrite"
+                  label="Toggle insert/overwrite"
+                  style="push">
                <visibleWhen
                      checkEnabled="true">
                   <with
                      </equals>
                   </with>
                </visibleWhen>
-            </control>
-            <control
-                  class="eu.etaxonomy.taxeditor.editor.molecular.ToggleInsertOverwriteButton">
+            </command>
+            <command
+                  commandId="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.toggleLeftRightInsertion"
+                  label="Toggle left/right insertion"
+                  style="push">
                <visibleWhen
                      checkEnabled="true">
                   <with
                      </equals>
                   </with>
                </visibleWhen>
-            </control>
+            </command>
          </toolbar>
       </menuContribution>
       
             class="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.ToggleShowOnlyIndividualAssociationsHandler"
             commandId="eu.etaxonomy.taxeditor.editor.handler.showOnlyIndividualAssociations">
       </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.editor.handler.ToggleInsertOverwriteHandler"
+            commandId="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.toggleInsertOverwrite">
+      </handler>
+      <handler
+            class="eu.etaxonomy.taxeditor.editor.handler.ToggleLeftRightInsertionHandler"
+            commandId="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.toggleLeftRightInsertion">
+      </handler>
    </extension>
    <extension
          name="%extension.name"
             id="eu.etaxonomy.taxeditor.editor.handler.OpenAlignmentEditor"
             name="Open Alignment Editor">
       </command>
-      <command
-            id="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.addA"
-            name="Add A">
-      </command>
       <command
             id="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.loadPherogram"
             name="Load Pherogram">
             id="eu.etaxonomy.taxeditor.editor.handler.showOnlyIndividualAssociations"
             name="Show Only Individual Associations">
       </command>
+      <command
+            id="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.toggleInsertOverwrite"
+            name="Toggle insert/overwrite">
+      </command>
+      <command
+            id="eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.toggleLeftRightInsertion"
+            name="Toggle left/right insertion in base call sequence">
+      </command>
 
    </extension>
    <extension
index b978857acd007a8739f8f0083cfa4f2e454b918b..b484f65a0ef003b9f42b72aa40b940a2bbdb32ed 100644 (file)
@@ -9,28 +9,39 @@
 */
 package eu.etaxonomy.taxeditor.editor.handler;
 
+
+import java.util.Map;
+
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.commands.IElementUpdater;
+import org.eclipse.ui.menus.UIElement;
 
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor;
 import eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditorInput;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
+
+
 /**
+ * Opens the {@link AlignmentEditor}.
+ * 
  * @author pplitzner
  * @date 04.08.2014
- *
  */
 public class OpenAlignmentEditor extends AbstractHandler {
-
     /* (non-Javadoc)
      * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
      */
     @Override
     public Object execute(ExecutionEvent event) throws ExecutionException {
-
         AlignmentEditorInput input = new AlignmentEditorInput();
         try {
             EditorUtil.open(input);
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ToggleInsertOverwriteHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ToggleInsertOverwriteHandler.java
new file mode 100644 (file)
index 0000000..ca0e165
--- /dev/null
@@ -0,0 +1,54 @@
+package eu.etaxonomy.taxeditor.editor.handler;\r
+\r
+\r
+import java.util.Map;\r
+\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.ui.IEditorPart;\r
+import org.eclipse.ui.PlatformUI;\r
+import org.eclipse.ui.commands.IElementUpdater;\r
+import org.eclipse.ui.menus.UIElement;\r
+\r
+import eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor;\r
+import eu.etaxonomy.taxeditor.model.AbstractUtility;\r
+\r
+\r
+\r
+/**\r
+ * Switches an {@link AlignmentEditor} between insertion and overwrite mode.\r
+ * \r
+ * @author Ben Stöver\r
+ * @date 04.12.2014\r
+ */\r
+public class ToggleInsertOverwriteHandler extends AbstractHandler implements IElementUpdater {\r
+       public static final String COMMAND_ID = \r
+                       "eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.toggleInsertOverwrite";\r
+       \r
+       \r
+       @Override\r
+       public Object execute(ExecutionEvent event) throws ExecutionException {\r
+        IEditorPart activeEditor = AbstractUtility.getActiveEditor();\r
+        if (activeEditor instanceof AlignmentEditor) {\r
+            ((AlignmentEditor)activeEditor).toggleInsertOverwrite();\r
+        }\r
+        return null;\r
+       }\r
+    \r
+    \r
+       @Override\r
+       public void updateElement(UIElement element, @SuppressWarnings("rawtypes") Map parameters) {\r
+        IEditorPart activeEditor = AbstractUtility.getActiveEditor();\r
+               if (activeEditor instanceof AlignmentEditor) {\r
+                       if (((AlignmentEditor)activeEditor).isInsertMode()) {\r
+                               element.setText(" INS ");\r
+                               element.setTooltip("Click to switch to overwrite mode");\r
+                       }\r
+                       else {\r
+                               element.setText("OVR");\r
+                               element.setTooltip("Click to switch to insertion mode");\r
+                       }\r
+               }\r
+       }\r
+}\r
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ToggleLeftRightInsertionHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/ToggleLeftRightInsertionHandler.java
new file mode 100644 (file)
index 0000000..e9a41e6
--- /dev/null
@@ -0,0 +1,54 @@
+package eu.etaxonomy.taxeditor.editor.handler;\r
+\r
+\r
+import java.util.Map;\r
+\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.ui.IEditorPart;\r
+import org.eclipse.ui.commands.IElementUpdater;\r
+import org.eclipse.ui.menus.UIElement;\r
+\r
+import eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor;\r
+import eu.etaxonomy.taxeditor.model.AbstractUtility;\r
+\r
+\r
+\r
+/**\r
+ * Switches an {@link AlignmentEditor} between insertion in the base sequence to the left or to the right.\r
+ * \r
+ * @author Ben Stöver\r
+ * @date 04.12.2014\r
+ */\r
+public class ToggleLeftRightInsertionHandler extends AbstractHandler implements IElementUpdater {\r
+       public static final String COMMAND_ID = \r
+                       "eu.etaxonomy.taxeditor.editor.molecular.AlignmentEditor.toggleLeftRightInsertion";\r
+       \r
+       \r
+       @Override\r
+       public Object execute(ExecutionEvent event) throws ExecutionException {\r
+        IEditorPart activeEditor = AbstractUtility.getActiveEditor();\r
+        if (activeEditor instanceof AlignmentEditor) {\r
+            ((AlignmentEditor)activeEditor).toggleLeftRightInsertionInPherogram();\r
+        }\r
+        return null;\r
+       }\r
+    \r
+    \r
+       @Override\r
+       public void updateElement(UIElement element, @SuppressWarnings("rawtypes") Map parameters) {\r
+        IEditorPart activeEditor = AbstractUtility.getActiveEditor();\r
+               if (activeEditor instanceof AlignmentEditor) {\r
+                       //TODO Use icons instead.\r
+                       if (((AlignmentEditor)activeEditor).isInsertLeftInPherogram()) {\r
+                               element.setText(" Left ");\r
+                               element.setTooltip("Click to switch to insert new distorsions of the base call sequence right of future edits.");\r
+                       }\r
+                       else {\r
+                               element.setText("Right");\r
+                               element.setTooltip("Click to switch to insert new distorsions of the base call sequence left of future edits.");\r
+                       }\r
+               }\r
+       }\r
+}\r
index 79f0bff60a636e5198579d71f98dd54cc94544dc..e65e87a4e0c0db1d8edaa4c778e1e27c6aeb2487 100644 (file)
@@ -32,6 +32,7 @@ import java.io.InputStream;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Map;
 import java.util.TreeMap;
 
@@ -46,8 +47,13 @@ import org.eclipse.ui.IActionBars;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.commands.ICommandService;
 import org.eclipse.ui.part.EditorPart;
 
+import eu.etaxonomy.taxeditor.editor.handler.ToggleInsertOverwriteHandler;
+import eu.etaxonomy.taxeditor.editor.handler.ToggleLeftRightInsertionHandler;
+
 
 
 /**
@@ -249,14 +255,25 @@ public class AlignmentEditor extends EditorPart {
         return getAlignmentsContainer().getEditSettings().isInsertLeftInDataArea();
     }
     
+    
+    private void refreshToolbarElement(String id) {
+               ICommandService commandService = 
+                               (ICommandService)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getService(ICommandService.class);
+               if (commandService != null) {
+                       commandService.refreshElements(id, Collections.EMPTY_MAP);
+               }       
+    }
+    
 
     public void toggleLeftRightInsertionInPherogram() {
        getAlignmentsContainer().getEditSettings().toggleInsertLeftInDataArea();
+       refreshToolbarElement(ToggleLeftRightInsertionHandler.COMMAND_ID);
     }
     
 
     public void toggleInsertOverwrite() {
        getAlignmentsContainer().getEditSettings().toggleInsert();
+       refreshToolbarElement(ToggleInsertOverwriteHandler.COMMAND_ID);
     }
     
     
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ToggleInsertOverwriteButton.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ToggleInsertOverwriteButton.java
deleted file mode 100644 (file)
index afd0132..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.molecular;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.menus.WorkbenchWindowControlContribution;
-
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-
-/**
- * @author pplitzner
- * @author Ben Stöver
- * @date Nov 5, 2014
- */
-public class ToggleInsertOverwriteButton extends WorkbenchWindowControlContribution {
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.ControlContribution#createControl(org.eclipse.swt.widgets.Composite)
-     */
-    @Override
-    protected Control createControl(Composite parent) {
-        Button button = new Button(parent, SWT.TOGGLE);
-//        button.setImage(ImageResources.getImage(ImageResources.SWAP_SYNONYM_AND_TAXON_ICON));
-        button.setText("Toggle Insert/Overwrite");
-        button.setToolTipText("Toggle Insert/Overwrite");
-        button.addListener(SWT.Selection, new Listener() {
-                           @Override
-                           public void handleEvent(Event event) {
-                               IEditorPart activeEditor = AbstractUtility.getActiveEditor();
-                               if (activeEditor instanceof AlignmentEditor) {
-                                   AlignmentEditor alignmentEditor = (AlignmentEditor)activeEditor;
-                                   alignmentEditor.toggleInsertOverwrite();
-                               }
-                           }
-                       });
-
-        IEditorPart activeEditor = AbstractUtility.getActiveEditor();
-        if (activeEditor instanceof AlignmentEditor) {
-            AlignmentEditor alignmentEditor = (AlignmentEditor)activeEditor;
-            button.setSelection(alignmentEditor.isInsertMode());
-        }
-        return button;
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ToggleLeftRightInsertionButton.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/molecular/ToggleLeftRightInsertionButton.java
deleted file mode 100644 (file)
index 2ff5c20..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.molecular;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.menus.WorkbenchWindowControlContribution;
-
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-
-/**
- * @author pplitzner
- * @date Nov 5, 2014
- *
- */
-public class ToggleLeftRightInsertionButton extends WorkbenchWindowControlContribution {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.ControlContribution#createControl(org.eclipse.swt.widgets.Composite)
-     */
-    @Override
-    protected Control createControl(Composite parent) {
-        final Button button = new Button(parent, SWT.TOGGLE);
-//        button.setImage(ImageResources.getImage(ImageResources.SWAP_SYNONYM_AND_TAXON_ICON));
-        button.setText("Toggle Left/Right Insertion");
-        button.setToolTipText("Toggle Left/Right Insertion");
-        button.addListener(SWT.Selection, new Listener() {
-            @Override
-            public void handleEvent(Event event) {
-                IEditorPart activeEditor = AbstractUtility.getActiveEditor();
-                if (activeEditor instanceof AlignmentEditor) {
-                    AlignmentEditor alignmentEditor = (AlignmentEditor)activeEditor;
-                    alignmentEditor.toggleLeftRightInsertionInPherogram();
-                }
-            }
-        });
-
-        IEditorPart activeEditor = AbstractUtility.getActiveEditor();
-        if (activeEditor instanceof AlignmentEditor) {
-            AlignmentEditor alignmentEditor = (AlignmentEditor)activeEditor;
-            button.setSelection(alignmentEditor.isInsertLeftInPherogram());
-        }
-        return button;
-    }
-}