started to refactor action delegation
[taxeditor.git] / eclipseprojects / eu.etaxonomy.taxeditor / src / eu / etaxonomy / taxeditor / editor / name / SynonymComposite.java
index 589bab86b67a733cb1c625abde71f30a102618f2..cd5eee3ffb51d1d78d614e0e1c4b909222d008a4 100644 (file)
@@ -25,17 +25,21 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.actions.cdm.SwapSynonymAndTaxonAction;\r
+import eu.etaxonomy.taxeditor.actions.name.ChangeSynonymToConceptRelationAction;\r
+import eu.etaxonomy.taxeditor.actions.name.ChangeSynonymToMisapplicationAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateSynonymInGroupAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateNewTaxonFromSynonymAction;\r
+import eu.etaxonomy.taxeditor.actions.name.MakeBasionymAction;\r
+import eu.etaxonomy.taxeditor.actions.name.Messages;\r
+import eu.etaxonomy.taxeditor.actions.name.RemoveSynonymAction;\r
+import eu.etaxonomy.taxeditor.actions.name.UnmakeBasionymAction;\r
 import eu.etaxonomy.taxeditor.controller.EditorController;\r
 import eu.etaxonomy.taxeditor.controller.GlobalController;\r
 import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
 import eu.etaxonomy.taxeditor.model.CdmUtil;\r
 import eu.etaxonomy.taxeditor.operations.name.ChangeHomotypicGroupOperation;\r
-import eu.etaxonomy.taxeditor.operations.name.ChangeSynonymToConceptOperation;\r
 import eu.etaxonomy.taxeditor.operations.name.ChangeSynonymToMisappliedNameOperation;\r
-import eu.etaxonomy.taxeditor.operations.name.ChangeSynonymToTaxonOperation;\r
-import eu.etaxonomy.taxeditor.operations.name.MakeSynonymAcceptedOperation;\r
-import eu.etaxonomy.taxeditor.operations.name.MakeSynonymGroupBasionymOperation;\r
-import eu.etaxonomy.taxeditor.operations.name.RemoveSynonymOperation;\r
 import eu.etaxonomy.taxeditor.operations.name.UnmakeSynonymGroupBasionymOperation;\r
 import eu.etaxonomy.taxeditor.propertysheet.name.TaxonBasePropertySource;\r
 \r
@@ -136,128 +140,27 @@ public class SynonymComposite extends NameComposite {
 \r
                ContextMenu contextMenu = createContextMenu();\r
 \r
-               // Change composite to a misapplied name\r
-               String text = "Change synonym to misapplied name"; //$NON-NLS-1$\r
-               ImageDescriptor image = TaxEditorPlugin.getDefault()\r
-                               .getImageDescriptor(ITaxEditorConstants.MISAPPLIED_NAME_ICON);\r
-               contextMenu.addAction(new Action(text, image){\r
-                                               \r
-                       public void run() {\r
-                               IUndoableOperation operation = new ChangeSynonymToMisappliedNameOperation\r
-                                               (this.getText(), undoContext, taxon, synonym);\r
-                               \r
-                               GlobalController.executeOperation(operation);\r
-                       }\r
-               });\r
-               \r
-               // Change synonym to conccept relation\r
-               text = "Change synonym to concept relation"; //$NON-NLS-1$\r
-               image = TaxEditorPlugin.getDefault()\r
-                                       .getImageDescriptor(ITaxEditorConstants.CONCEPT_ICON);\r
-\r
-               contextMenu.addAction(new Action(text, image){\r
-                       \r
-                       public void run() {\r
-                               IUndoableOperation operation = new ChangeSynonymToConceptOperation\r
-                                               (this.getText(), undoContext, taxon, synonym);\r
-                               \r
-                               GlobalController.executeOperation(operation);                   \r
-                       }\r
-               });\r
-               \r
-               // Remove composite\r
-               text = "Remove synonym from taxon"; //$NON-NLS-1$\r
-               image = TaxEditorPlugin.getDefault()\r
-                               .getImageDescriptor(ITaxEditorConstants.ACTIVE_DELETE_ICON);\r
-               contextMenu.addAction(new Action(text, image){\r
-                       \r
-                       public void run() {\r
-                               IUndoableOperation operation = new RemoveSynonymOperation\r
-                                               (this.getText(), undoContext, taxon, synonym);\r
-                               \r
-                               GlobalController.executeOperation(operation);                           \r
-                       }\r
-               });\r
-               \r
-               // Separator\r
-               contextMenu.addSeparator();\r
-                               \r
-               // Make the synonym the basionym of the homotypic group\r
-               text = Messages.getString\r
-                               ("AddBasionymCompositeAction.0", synonym.getName());  //$NON-NLS-1$\r
-               image = TaxEditorPlugin.getDefault()\r
-                                       .getImageDescriptor(ITaxEditorConstants.BASIONYM_ICON);\r
-               Action makeBasionymAction = new Action(text, image){\r
-                       \r
-                       public void run() {\r
-                               IUndoableOperation operation = new MakeSynonymGroupBasionymOperation\r
-                                               (this.getText(), undoContext, taxon, synonym);\r
-                               \r
-                               GlobalController.executeOperation(operation);           \r
-                       }\r
-               };\r
-               contextMenu.addAction(makeBasionymAction);      \r
-       \r
-               // Action to remove the composite as basionym of the homotypic group\r
-               text = Messages.getString\r
-                               ("RemoveBasionymCompositeAction.0", synonym.getName());  //$NON-NLS-1$\r
-               image = TaxEditorPlugin.getDefault()\r
-                                       .getImageDescriptor(ITaxEditorConstants.BASIONYM_ICON);\r
-               Action unmakeBasionymAction = new Action(text, image){\r
-                       \r
-                       public void run() {\r
-                               IUndoableOperation operation = new UnmakeSynonymGroupBasionymOperation\r
-                                               (this.getText(), undoContext, taxon, synonym);\r
-                               \r
-                               GlobalController.executeOperation(operation);                           \r
-                       }\r
-               };\r
-               contextMenu.addAction(unmakeBasionymAction);\r
-               \r
+               contextMenu.addAction(new RemoveSynonymAction(taxon, synonym));\r
                if (CdmUtil.isNameGroupBasionym(synonym.getName())) {\r
-                       \r
-                       // Gray out action for "make synonym group basionym"\r
-                       makeBasionymAction.setEnabled(false);\r
+                       contextMenu.addAction(new UnmakeBasionymAction(taxon, synonym));\r
                } else {\r
-                       \r
-                       // Gray out action for "unmake synonym group basionym"\r
-                       unmakeBasionymAction.setEnabled(false);\r
+                       contextMenu.addAction(new MakeBasionymAction(taxon, synonym));  \r
                }\r
-               \r
-               // Separator\r
+                // Add synonym to this synonyms homotypical group\r
+               // FIXME not working with the new menu action \r
+//             contextMenu.addAction(new CreateSynonymInGroupAction(synonym.getHomotypicGroup()));\r
                contextMenu.addSeparator();\r
-\r
+               contextMenu.addAction(new ChangeSynonymToMisapplicationAction(taxon, synonym));\r
+               contextMenu.addAction(new ChangeSynonymToConceptRelationAction(taxon, synonym));\r
+               contextMenu.addSeparator();                             \r
                // Change this synonym to the taxon's accepted name\r
-               text = "Make synonym this taxon's accepted taxon"; //$NON-NLS-1$\r
-               image = TaxEditorPlugin.getDefault()\r
-                                       .getImageDescriptor(ITaxEditorConstants.SWAP_SYNONYM_AND_TAXON_ICON);\r
-               Action swapAction = new Action(text, image){\r
-                       \r
-                       public void run() {\r
-                               IUndoableOperation operation = new MakeSynonymAcceptedOperation\r
-                                               (this.getText(), undoContext, taxon, synonym);\r
-                               \r
-                               GlobalController.executeOperation(operation);                           \r
-                       }\r
-               };\r
+               Action swapAction = new SwapSynonymAndTaxonAction(taxon, synonym);\r
                contextMenu.addAction(swapAction);\r
                // TODO fix operation\r
                swapAction.setEnabled(false);\r
                \r
                // Make a new taxon with this synonym as the accepted name\r
-               text = "Use synonym name to make a new taxon"; //$NON-NLS-1$\r
-               image = TaxEditorPlugin.getDefault()\r
-                                       .getImageDescriptor(ITaxEditorConstants.SYNONYM_TO_TAXON_ICON);\r
-\r
-               contextMenu.addAction(new Action(text, image){\r
-                       \r
-                       public void run() {\r
-                               IUndoableOperation operation = new ChangeSynonymToTaxonOperation\r
-                                               (this.getText(), undoContext, taxon, synonym);\r
-                               \r
-                               GlobalController.executeOperation(operation);                   \r
-                       }\r
-               });\r
+               contextMenu.addAction(new CreateNewTaxonFromSynonymAction(taxon, synonym));\r
        }\r
 \r
 \r