started to refactor action delegation
[taxeditor.git] / eclipseprojects / eu.etaxonomy.taxeditor / src / eu / etaxonomy / taxeditor / editor / name / MisappliedNameComposite.java
index 71c81a7f8a67d727a15481ef1270c51cd4e55cc2..1bee97f7bfd9d3f1d756ff98e7c292943ed9aabb 100644 (file)
@@ -20,14 +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.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
@@ -48,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
@@ -66,21 +83,10 @@ public class MisappliedNameComposite extends NameComposite {
 \r
                ContextMenu contextMenu = createContextMenu();\r
 \r
-               final IUndoContext undoContext = EditorController.getUndoContext(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
-                               \r
-                               GlobalController.executeOperation(operation);\r
-                       }\r
-               });\r
+               contextMenu.addAction(new RemoveConceptAction(taxon, \r
+                               misappliedName, TaxonRelationshipType.MISAPPLIED_NAME_FOR()));\r
+\r
        }\r
        \r
        public boolean setParent(Composite parent) {\r
@@ -111,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