Cut action for AlignmentEditor implemented.
authorb.stoever <b.stoever@localhost>
Wed, 26 Aug 2015 14:07:43 +0000 (14:07 +0000)
committerb.stoever <b.stoever@localhost>
Wed, 26 Aug 2015 14:07:43 +0000 (14:07 +0000)
.gitattributes
eu.etaxonomy.taxeditor.molecular/plugin.xml
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditorActionUpdater.java
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AlignmentEditorCopyHandler.java
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AlignmentEditorCutHandler.java [new file with mode: 0644]

index 1b00b363971c7c51bd16c594130a5ce27ace0d05..b160a1419f366b46bbeaf5503847a678a3de0d40 100644 (file)
@@ -935,6 +935,7 @@ eu.etaxonomy.taxeditor.help/tocgettingstarted.xml -text
 eu.etaxonomy.taxeditor.help/tocnameparser.xml -text
 eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditorActionUpdater.java -text
 eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AbstractFocusedAlignmentAreaHandler.java -text
+eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AlignmentEditorCutHandler.java -text
 eu.etaxonomy.taxeditor.navigation/.classpath -text
 eu.etaxonomy.taxeditor.navigation/.project -text
 eu.etaxonomy.taxeditor.navigation/META-INF/MANIFEST.MF -text
index b24ffe91d54adb472113cfeea9cfd443a3534bf9..503d8e39d3e3baf7dd573c10ceaf7308416993aa 100644 (file)
                </with>
             </activeWhen>
          </handler>
+         <handler
+               class="eu.etaxonomy.taxeditor.molecular.handler.AlignmentEditorCutHandler"
+               commandId="org.eclipse.ui.edit.cut">
+            <activeWhen>
+               <with
+                     variable="activePartId">
+                  <equals
+                        value="eu.etaxonomy.taxeditor.molecular.AlignmentEditor">
+                  </equals>
+               </with>
+            </activeWhen>
+         </handler>
       </extension>
       <extension
             point="org.eclipse.core.expressions.definitions">
index 280e40cb3f2b2d7a8b6ffa27ef17a6f817651d1d..b1f8355818fa28ea8121a6cfe9c53f7c945b6cc1 100644 (file)
@@ -1,8 +1,6 @@
 package eu.etaxonomy.taxeditor.molecular.editor;\r
 \r
 \r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Control;\r
 import org.eclipse.swt.widgets.Event;\r
 import org.eclipse.swt.widgets.Listener;\r
 import org.eclipse.ui.PlatformUI;\r
@@ -10,7 +8,6 @@ import org.eclipse.ui.actions.ActionFactory;
 import org.eclipse.ui.commands.ICommandService;\r
 \r
 import eu.etaxonomy.taxeditor.molecular.handler.AbstractAlignmentEditorHandler;\r
-import info.bioinfweb.libralign.alignmentarea.AlignmentArea;\r
 import info.bioinfweb.libralign.alignmentarea.selection.SelectionChangeEvent;\r
 import info.bioinfweb.libralign.alignmentarea.selection.SelectionListener;\r
 \r
@@ -23,9 +20,11 @@ import info.bioinfweb.libralign.alignmentarea.selection.SelectionListener;
  * @date 25.08.2015\r
  */\r
 public class AlignmentEditorActionUpdater implements SelectionListener, Listener {\r
-       private void updateEvents() {\r
-        ((ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class)).refreshElements(\r
-                ActionFactory.COPY.getCommandId(), null);\r
+       private void updateEvents(String[] ids) {\r
+               ICommandService service = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class);\r
+               for (int i = 0; i < ids.length; i++) {\r
+               service.refreshElements(ids[i], null);\r
+               }\r
        }\r
        \r
        \r
@@ -33,7 +32,8 @@ public class AlignmentEditorActionUpdater implements SelectionListener, Listener
        public void handleEvent(Event event) {\r
                AlignmentEditor editor = AbstractAlignmentEditorHandler.getActiveAlignmentEditor();\r
                if (editor != null) {\r
-            updateEvents();\r
+            updateEvents(new String[]{ActionFactory.COPY.getCommandId(), ActionFactory.CUT.getCommandId(), \r
+                       ActionFactory.PASTE.getCommandId()});\r
                }\r
        }\r
 \r
@@ -45,7 +45,7 @@ public class AlignmentEditorActionUpdater implements SelectionListener, Listener
                        if ((e.getSource() == editor.getReadsArea().getSelection()) || \r
                                        (e.getSource() == editor.getEditableConsensusArea().getSelection())) {\r
                                \r
-                               updateEvents();\r
+                               updateEvents(new String[]{ActionFactory.COPY.getCommandId(),  ActionFactory.CUT.getCommandId()});\r
                        }\r
                }\r
        }\r
index e21b1ed10e632f47c2e62d6c0bf64fefc5676374..2d6e236bf1bec535471458d55643ea4c1ef47108 100644 (file)
@@ -55,7 +55,7 @@ public class AlignmentEditorCopyHandler extends AbstractFocusedAlignmentAreaHand
                        selectedCharacters.append(System.getProperty("line.separator"));
                }
                        }
-            new Clipboard(Display.getCurrent()).setContents(new Object[]{selectedCharacters.toString()}, 
+               editor.CLIPBOARD.setContents(new Object[]{selectedCharacters.toString()}, 
                        new Transfer[]{TextTransfer.getInstance()});
        }
        }
diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AlignmentEditorCutHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AlignmentEditorCutHandler.java
new file mode 100644 (file)
index 0000000..7790785
--- /dev/null
@@ -0,0 +1,18 @@
+package eu.etaxonomy.taxeditor.molecular.handler;\r
+\r
+\r
+import info.bioinfweb.libralign.alignmentarea.AlignmentArea;\r
+\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+\r
+import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor;\r
+\r
+\r
+\r
+public class AlignmentEditorCutHandler extends AlignmentEditorCopyHandler {\r
+       @Override\r
+       protected void doExecute2(ExecutionEvent event, AlignmentEditor editor, AlignmentArea focusedArea) {\r
+               super.doExecute2(event, editor, focusedArea);  // Copy selected contents.\r
+               focusedArea.getActionProvider().deleteForward();  // Delete selection. Direction does not matter, if selection is not empty.\r
+       }\r
+}\r