cleanup
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / NavigationUtil.java
index b7055a20b3d591d697d2386711adf04bf396ab69..2d33925c277fe7ca1736b9173fd89188cf521b97 100644 (file)
@@ -34,6 +34,7 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
@@ -65,7 +66,11 @@ public class NavigationUtil extends AbstractUtility{
        public static void openEditor(UuidAndTitleCache uuidAndTitleCache, Shell shell, EModelService modelService, EPartService partService, MApplication application){
            Class<?> type = uuidAndTitleCache.getType();
            ICdmBase cdmBase = null;
-           if(type.equals(Classification.class)){
+           if(uuidAndTitleCache instanceof TaxonNodeDto){
+            EditorUtil.openTaxonNodeE4(uuidAndTitleCache.getUuid(), modelService, partService, application);
+            return;
+        }
+           else if(type.equals(Classification.class)){
                cdmBase = CdmStore.getService(IClassificationService.class).load(uuidAndTitleCache.getUuid());
            }
            else if(type.equals(TaxonNode.class)){
@@ -154,13 +159,13 @@ public class NavigationUtil extends AbstractUtility{
         * @param taxonNode a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
         * @return a boolean.
         */
-       public static boolean isDirty(TaxonNode taxonNode, EPartService partService){
+       public static boolean isDirty(TaxonNodeDto taxonNode, EPartService partService){
 
            Collection<MPart> dirtyParts = partService.getDirtyParts();
            for (MPart part : dirtyParts) {
             if(part.getObject() instanceof TaxonNameEditorE4){
                 TaxonEditorInputE4 input = ((TaxonNameEditorE4) part.getObject()).getEditorInput();
-                if(input.getTaxonNode().equals(taxonNode)){
+                if(input.getTaxonNode().getUuid().equals(taxonNode.getUuid())){
                     return true;
                 }
             }
@@ -168,6 +173,26 @@ public class NavigationUtil extends AbstractUtility{
                return false;
        }
 
+       /**
+     * Whether a taxonNode has unsaved changes.
+     *
+     * @param taxonNode a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
+     * @return a boolean.
+     */
+    public static boolean isDirty(TaxonNode taxonNode, EPartService partService){
+
+        Collection<MPart> dirtyParts = partService.getDirtyParts();
+        for (MPart part : dirtyParts) {
+            if(part.getObject() instanceof TaxonNameEditorE4){
+                TaxonEditorInputE4 input = ((TaxonNameEditorE4) part.getObject()).getEditorInput();
+                if(input.getTaxonNode().equals(taxonNode)){
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
        /**
         * <p>openSearch</p>
         *