ref #6913 Remove alignment editor
[taxeditor.git] / eu.etaxonomy.taxeditor.molecular / src / main / java / eu / etaxonomy / taxeditor / molecular / handler / AlignmentEditorPasteHandler.java
diff --git a/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AlignmentEditorPasteHandler.java b/eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/AlignmentEditorPasteHandler.java
deleted file mode 100644 (file)
index 53d3d7f..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-package eu.etaxonomy.taxeditor.molecular.handler;\r
-\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.Map;\r
-import java.util.Scanner;\r
-\r
-import org.eclipse.core.commands.ExecutionEvent;\r
-import org.eclipse.jface.dialogs.MessageDialog;\r
-import org.eclipse.swt.dnd.TextTransfer;\r
-import org.eclipse.ui.commands.IElementUpdater;\r
-import org.eclipse.ui.handlers.HandlerUtil;\r
-import org.eclipse.ui.menus.UIElement;\r
-\r
-import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditor;\r
-import eu.etaxonomy.taxeditor.molecular.l10n.Messages;\r
-import info.bioinfweb.libralign.alignmentarea.AlignmentArea;\r
-import info.bioinfweb.libralign.alignmentarea.order.SequenceOrder;\r
-import info.bioinfweb.libralign.alignmentarea.selection.SelectionModel;\r
-import info.bioinfweb.libralign.model.AlignmentModel;\r
-import info.bioinfweb.libralign.model.utils.AlignmentModelUtils;\r
-\r
-\r
-\r
-/**\r
- * Handler that pastes the current contents of the clipboard into an active instance of {@link AlignmentEditor}.\r
- *\r
- * @author Ben Stöver\r
- * @date 26.08.2015\r
- */\r
-public class AlignmentEditorPasteHandler extends AbstractFocusedAlignmentAreaHandler implements IElementUpdater {\r
-       private void pasteString(AlignmentArea area, String sequenceID, String content) {\r
-               area.getActionProvider().deleteSelection();  // Overwrite selected tokens.\r
-               area.getActionProvider().elongateSequence(sequenceID, area.getSelection().getCursorColumn());\r
-\r
-               @SuppressWarnings("unchecked")\r
-               AlignmentModel<Object> alignmentModel = (AlignmentModel<Object>)area.getAlignmentModel();\r
-               alignmentModel.insertTokensAt(sequenceID, area.getSelection().getCursorColumn(),\r
-                               AlignmentModelUtils.charSequenceToTokenList(content, alignmentModel.getTokenSet(),\r
-                                               true, alignmentModel.getTokenSet().getGapToken()));\r
-       }\r
-\r
-\r
-       @Override\r
-       protected void doExecute2(ExecutionEvent event, AlignmentEditor editor, AlignmentArea focusedArea) {\r
-               SelectionModel selection = focusedArea.getSelection();\r
-               String clipboardText = (String)editor.CLIPBOARD.getContents(TextTransfer.getInstance());\r
-               if (clipboardText != null) {\r
-                       List<String> lines = new ArrayList<String>();\r
-                       Scanner scanner = new Scanner(clipboardText);\r
-                       try {\r
-                               while (scanner.hasNext()) {\r
-                                       lines.add(scanner.nextLine());\r
-                               }\r
-                               if (lines.get(lines.size() - 1).equals("")) { //$NON-NLS-1$\r
-                                       lines.remove(lines.size() - 1);\r
-                               }\r
-                       }\r
-                       finally {\r
-                               scanner.close();\r
-                       }\r
-\r
-                       if (!lines.isEmpty()) { //TODO Can lines be empty? (Can an empty string "" be copied to the clipboard?)\r
-                               if (selection.getCursorHeight() == 1) {  // If the consensus sequence is focused, this is the only possible case.\r
-                                       String sequenceID = focusedArea.getSequenceOrder().idByIndex(selection.getCursorRow());\r
-                                       if (lines.size() == 1) {\r
-                                               pasteString(focusedArea, sequenceID, lines.get(0));\r
-                                       }\r
-                                       else {\r
-                                               MessageDialog dialog = new MessageDialog(HandlerUtil.getActiveWorkbenchWindow(event).getShell(),  //TODO Can the window be null?\r
-                                                               Messages.AlignmentEditorPasteHandler_PASTING_LINES, null,\r
-                                                               String.format(Messages.AlignmentEditorPasteHandler_PASTING_LINES_QUESTION, lines.size()),\r
-                                                               MessageDialog.QUESTION,\r
-                                                               new String[]{Messages.AlignmentEditorPasteHandler_PASTING_LINES_IGNORE,\r
-                                                                               Messages.AlignmentEditorPasteHandler_PASTING_LINES_FIRST_LINE, Messages.AlignmentEditorPasteHandler_CANCEL},\r
-                                                               0);\r
-                                               //TODO Does the dialog have to be disposed in some way?\r
-\r
-                                               switch (dialog.open()) {\r
-                                                       case 0:  // Paste all lines in one sequence.\r
-                                                               pasteString(focusedArea, sequenceID, clipboardText);\r
-                                                               break;\r
-                                                       case 1:  // Paste only first line.\r
-                                                               pasteString(focusedArea, sequenceID, lines.get(0));\r
-                                                               break;\r
-                                               }\r
-                                       }\r
-                               }\r
-                               else {\r
-                                       if (selection.getCursorHeight() == lines.size()) {\r
-                                               SequenceOrder order = focusedArea.getSequenceOrder();\r
-                                               for (int i = 0; i < selection.getCursorHeight(); i++) {\r
-                                                       pasteString(focusedArea, order.idByIndex(selection.getCursorRow() + i), lines.get(i));  // Multiple calls of deleteSelection() in here are unnecessary, but should have no effect.\r
-                                               }\r
-                                       }\r
-                                       else {\r
-                                               MessageDialog.openError(HandlerUtil.getActiveWorkbenchWindow(event).getShell(),  //TODO Can the window be null?\r
-                                                               Messages.AlignmentEditorPasteHandler_PASTE_FAILURE,\r
-                                                               String.format(Messages.AlignmentEditorPasteHandler_PASTE_FAILURE_MESSAGE, selection.getCursorHeight(), lines.size(), System.getProperty("line.separator"))); //$NON-NLS-1$\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-\r
-\r
-       @Override\r
-       public boolean isEnabled() {\r
-               AlignmentEditor editor = getActiveAlignmentEditor();\r
-               if (editor != null) {\r
-                       AlignmentArea focusedArea = editor.getFocusedArea();\r
-                       return (focusedArea != null);\r
-               }\r
-               else {\r
-                       return false;\r
-               }\r
-       }\r
-\r
-\r
-       @Override\r
-       public void updateElement(UIElement element, @SuppressWarnings("rawtypes") Map parameters) {\r
-               setBaseEnabled(isEnabled());\r
-    }\r
-}\r