From a1e2342dabf24d73f9cd3fb4d5b383972c355002 Mon Sep 17 00:00:00 2001 From: "n.hoffmann" Date: Mon, 22 Jun 2009 16:37:07 +0000 Subject: [PATCH] fixes 777 --- .../navigation/navigator/TaxonNavigator.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java index 9aa4e6fe8..101870553 100644 --- a/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java +++ b/taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java @@ -108,16 +108,20 @@ public class TaxonNavigator extends CommonNavigator implements IConversationEnab * @return */ private TreePath createTreePathFromString(String string) { - List pathList = new ArrayList(); + + List pathList = new ArrayList(); if(string.length() == 0) return null; for (String uuid : string.split(" ")) { - TaxonNode taxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(UUID.fromString(uuid)); - if (taxonNode == null) { - return null; + CdmBase cdmBaseObject = CdmStore.getTaxonService().getTaxonNodeByUuid(UUID.fromString(uuid)); + if (cdmBaseObject == null) { + // is this a tree uuid? + cdmBaseObject = CdmStore.getTaxonService().getTaxonomicTreeByUuid(UUID.fromString(uuid)); + + if(cdmBaseObject == null) return null; } - pathList.add(taxonNode); + pathList.add(cdmBaseObject); } return new TreePath(pathList.toArray()); } @@ -136,11 +140,7 @@ public class TaxonNavigator extends CommonNavigator implements IConversationEnab String path = ""; for (int i = 0; i < pathLength; i++) { Object segment = treePath.getSegment(i); - // FIXME I don't see the meaning of filtering out objects here. - // Each time a new content type is added to the navigator we have to add it here as - // well. What is the worst that could happen when a "Non-taxon tree path segment" is encountered - // or when exactly could this happen? Anomalies should also be handled in the restore code. (n.hoffmann) - if ((segment instanceof TaxonomicTree) || (segment instanceof TaxonNode)) { + if (segment instanceof CdmBase) { path += ((CdmBase) segment).getUuid().toString() + " "; } else { logger.warn("Non-taxon tree path segment " + segment); -- 2.34.1