started to refactor action delegation
[taxeditor.git] / eclipseprojects / eu.etaxonomy.taxeditor / src / eu / etaxonomy / taxeditor / editor / name / MisappliedNameComposite.java
index 2caf83275562a7597168e215035f3aeb2899e2d7..1bee97f7bfd9d3f1d756ff98e7c292943ed9aabb 100644 (file)
 package eu.etaxonomy.taxeditor.editor.name;\r
 \r
 import org.apache.log4j.Logger;\r
-import org.eclipse.core.commands.ExecutionException;\r
-import org.eclipse.core.commands.operations.IOperationHistory;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
 import org.eclipse.core.commands.operations.IUndoableOperation;\r
-import org.eclipse.core.runtime.IStatus;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
 import org.eclipse.swt.graphics.Font;\r
@@ -23,13 +20,17 @@ import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.views.properties.IPropertySource;\r
 \r
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
 import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
-import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.actions.name.RemoveConceptAction;\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.operations.name.ChangeMisappliedNameToSynonymOperation;\r
-import eu.etaxonomy.taxeditor.operations.name.RemoveMisappliedNameOperation;\r
+import eu.etaxonomy.taxeditor.operations.name.RemoveConceptRelationOperation;\r
 import eu.etaxonomy.taxeditor.propertysheet.name.TaxonBasePropertySource;\r
 \r
 /**\r
@@ -50,15 +51,29 @@ public class MisappliedNameComposite extends NameComposite {
                this.taxon = taxon;\r
                this.misappliedName = misappliedName;\r
                \r
-               setDraggable(true);\r
+               setIsDraggable(true);\r
                setIcon(MISAPPLIEDNAME_ICON);\r
                setFont(getViewerFont());\r
                setIndent(MISAPPLIEDNAME_INDENT);\r
 \r
                createMenu();\r
                \r
+               showSec();              \r
+               \r
                initNameViewer(misappliedName);\r
        }\r
+\r
+       private void showSec() {\r
+               if (misappliedName == null) {\r
+                       return;\r
+               }\r
+               \r
+               if (misappliedName.getSec() == null) {\r
+                       setNonEditableInfo("sec. ???");\r
+               } else {\r
+                       setNonEditableInfo("sec. " + misappliedName.getSec().getTitleCache());\r
+               }\r
+       }\r
        \r
        public Taxon getMisappliedName() {\r
                return misappliedName;\r
@@ -68,26 +83,10 @@ public class MisappliedNameComposite extends NameComposite {
 \r
                ContextMenu contextMenu = createContextMenu();\r
 \r
-               final IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-               final IUndoContext undoContext = UiUtil.getTaxonNameEditorUndoContext(taxon);\r
-               \r
                // Remove misapplied name from taxon\r
-               String text = "Remove misapplied name from taxon"; //$NON-NLS-1$\r
-               ImageDescriptor 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 RemoveMisappliedNameOperation\r
-                                               (this.getText(), undoContext, taxon, misappliedName);\r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }\r
-                       }\r
-               });\r
+               contextMenu.addAction(new RemoveConceptAction(taxon, \r
+                               misappliedName, TaxonRelationshipType.MISAPPLIED_NAME_FOR()));\r
+\r
        }\r
        \r
        public boolean setParent(Composite parent) {\r
@@ -105,17 +104,11 @@ public class MisappliedNameComposite extends NameComposite {
                                HomotypicalGroup homotypicalGroup = \r
                                                ((HomotypicalGroupComposite)parent).getGroup();\r
                                \r
-                               IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
-                               IUndoContext undoContext = UiUtil.getTaxonNameEditorUndoContext(taxon);\r
+                               IUndoContext undoContext = EditorController.getUndoContext(taxon);\r
                                IUndoableOperation operation = new ChangeMisappliedNameToSynonymOperation\r
                                                ("change misapplication to synonym", undoContext, taxon, misappliedName, homotypicalGroup);\r
                                \r
-                               try {\r
-                                       IStatus status = operationHistory.execute(operation, null, null);\r
-                               } catch (ExecutionException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-                               }\r
+                               GlobalController.executeOperation(operation);\r
                        }\r
                        return true;\r
 \r
@@ -124,11 +117,22 @@ public class MisappliedNameComposite extends NameComposite {
        }\r
        \r
        public IPropertySource getPropertySource() {\r
-               return new TaxonBasePropertySource(misappliedName);\r
+               return new TaxonBasePropertySource(misappliedName, "Misapplied Name");\r
        }\r
 \r
        @Override\r
        protected Font getViewerFont() {\r
                return MISAPPLIEDNAME_FONT;\r
        }\r
+       \r
+       protected void calculateErrors() {\r
+               super.calculateErrors();\r
+               \r
+               nameViewer.setShowSecError(misappliedName);\r
+       }\r
+\r
+       @Override\r
+       protected TaxonNameBase getName() {\r
+               return misappliedName.getName();\r
+       }\r
 }
\ No newline at end of file