fixes 777
authorn.hoffmann <n.hoffmann@localhost>
Mon, 22 Jun 2009 16:37:07 +0000 (16:37 +0000)
committern.hoffmann <n.hoffmann@localhost>
Mon, 22 Jun 2009 16:37:07 +0000 (16:37 +0000)
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java

index 9aa4e6fe8d71a70bd3c82a882dde87fa0798092c..101870553c482c0599aa1002a8a4e66c214a3f59 100644 (file)
@@ -108,16 +108,20 @@ public class TaxonNavigator extends CommonNavigator implements IConversationEnab
         * @return\r
         */\r
        private TreePath createTreePathFromString(String string) {\r
         * @return\r
         */\r
        private TreePath createTreePathFromString(String string) {\r
-               List<TaxonNode> pathList = new ArrayList<TaxonNode>();\r
+\r
+               List<CdmBase> pathList = new ArrayList<CdmBase>();\r
                \r
                if(string.length() == 0) return null; \r
                \r
                for (String uuid : string.split(" ")) {\r
                \r
                if(string.length() == 0) return null; \r
                \r
                for (String uuid : string.split(" ")) {\r
-                       TaxonNode taxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(UUID.fromString(uuid));\r
-                       if (taxonNode == null) {\r
-                               return null;\r
+                       CdmBase cdmBaseObject = CdmStore.getTaxonService().getTaxonNodeByUuid(UUID.fromString(uuid));\r
+                       if (cdmBaseObject == null) {\r
+                               // is this a tree uuid?\r
+                               cdmBaseObject = CdmStore.getTaxonService().getTaxonomicTreeByUuid(UUID.fromString(uuid));\r
+                               \r
+                               if(cdmBaseObject == null) return null;\r
                        }\r
                        }\r
-                       pathList.add(taxonNode);\r
+                       pathList.add(cdmBaseObject);\r
                }\r
                return new TreePath(pathList.toArray());\r
        }\r
                }\r
                return new TreePath(pathList.toArray());\r
        }\r
@@ -136,11 +140,7 @@ public class TaxonNavigator extends CommonNavigator implements IConversationEnab
                        String path = "";\r
                        for (int i = 0; i < pathLength; i++) {\r
                                Object segment = treePath.getSegment(i);\r
                        String path = "";\r
                        for (int i = 0; i < pathLength; i++) {\r
                                Object segment = treePath.getSegment(i);\r
-                               // FIXME I don't see the meaning of filtering out objects here. \r
-                               // Each time a new content type is added to the navigator we have to add it here as \r
-                               // well. What is the worst that could happen when a "Non-taxon tree path segment" is encountered\r
-                               // or when exactly could this happen? Anomalies should also be handled in the restore code. (n.hoffmann)\r
-                               if ((segment instanceof TaxonomicTree) || (segment instanceof TaxonNode)) {\r
+                               if (segment instanceof CdmBase) {\r
                                        path += ((CdmBase) segment).getUuid().toString() + " ";\r
                                } else {\r
                                        logger.warn("Non-taxon tree path segment " + segment);\r
                                        path += ((CdmBase) segment).getUuid().toString() + " ";\r
                                } else {\r
                                        logger.warn("Non-taxon tree path segment " + segment);\r