Refactored description editor per #577
[taxeditor.git] / eclipseprojects / eu.etaxonomy.taxeditor / src / eu / etaxonomy / taxeditor / controller / EditorController.java
index 67b57a3752e55a1078a25b8126741fb1d5345460..03193e4705e38689647d364f3da72b8a836f5563 100644 (file)
@@ -28,7 +28,9 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
 import eu.etaxonomy.taxeditor.datasource.CdmTransactionController;\r
+import eu.etaxonomy.taxeditor.editor.AbstractTaxonEditor;\r
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;\r
+import eu.etaxonomy.taxeditor.editor.description.TaxonDescriptionEditor;\r
 import eu.etaxonomy.taxeditor.editor.name.CdmParserController;\r
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;\r
 import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
@@ -44,9 +46,8 @@ import eu.etaxonomy.taxeditor.navigation.TaxonomicTreeViewer;
 public class EditorController {\r
        private static final Logger logger = Logger.getLogger(EditorController.class);\r
 \r
-\r
        private static Map<Taxon, TaxonNameEditor> taxonNameEditors;\r
-\r
+       private static Map<Taxon, TaxonDescriptionEditor> taxonDescriptionEditors;\r
 \r
        private static boolean isSaving = false;\r
        \r
@@ -184,18 +185,32 @@ public class EditorController {
         */\r
        public static boolean redraw(Taxon taxon){\r
                \r
-               TaxonNameEditor editor = EditorController.getEditor(taxon);\r
+               // TODO handle this in AbstractEditorOperation?\r
                \r
+               return redraw(EditorController.getNameEditor(taxon)) &&\r
+                               redraw(EditorController.getDescriptionEditor(taxon));\r
+//             TaxonNameEditor editor = EditorController.getNameEditor(taxon);\r
+//             \r
+//             if(editor == null || editor.redraw()){\r
+//                     \r
+//                     // Mark editor as changed and unsaved\r
+//                     editor.setDirty();\r
+//                     \r
+//                     return true;    \r
+//             }       \r
+//             return false;\r
+       }\r
+\r
+       private static boolean redraw(AbstractTaxonEditor editor) {     \r
                if(editor == null || editor.redraw()){\r
                        \r
                        // Mark editor as changed and unsaved\r
-                       editor.setDirty();\r
-                       \r
+                       editor.setDirty();      \r
                        return true;    \r
                }       \r
-               return false;\r
+               return false;           \r
        }\r
-\r
+       \r
        /**\r
         * @param taxon\r
         * @param save\r
@@ -281,7 +296,7 @@ public class EditorController {
                return isSaving;\r
        }\r
 \r
-       public static void addEditor(\r
+       public static void addNameEditor(\r
                        Taxon taxon, TaxonNameEditor taxonNameEditor) {\r
                if (taxonNameEditors == null) {\r
                        taxonNameEditors = new HashMap<Taxon, TaxonNameEditor>();\r
@@ -289,13 +304,28 @@ public class EditorController {
                taxonNameEditors.put(taxon, taxonNameEditor);\r
        }\r
 \r
-       public static TaxonNameEditor getEditor(Taxon taxon) {\r
+       public static TaxonNameEditor getNameEditor(Taxon taxon) {\r
                if (taxonNameEditors == null) {\r
                        return null;\r
                }\r
                return taxonNameEditors.get(taxon);\r
        }\r
 \r
+       public static void addDescriptionEditor(\r
+                       Taxon taxon, TaxonDescriptionEditor taxonDescriptionEditor) {\r
+               if (taxonDescriptionEditors == null) {\r
+                       taxonDescriptionEditors = new HashMap<Taxon, TaxonDescriptionEditor>();\r
+               }\r
+               taxonDescriptionEditors.put(taxon, taxonDescriptionEditor);\r
+       }\r
+\r
+       public static TaxonDescriptionEditor getDescriptionEditor(Taxon taxon) {\r
+               if (taxonDescriptionEditors == null) {\r
+                       return null;\r
+               }\r
+               return taxonDescriptionEditors.get(taxon);\r
+       }\r
+       \r
        /**\r
         * Returns a set of all currently open \r
         * <code>MultiPageTaxonEditor</code>s.\r