Cleaned up Navigator code for checking whether a taxonomic tree has taxa.
authorp.ciardelli <p.ciardelli@localhost>
Wed, 24 Jun 2009 11:18:50 +0000 (11:18 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Wed, 24 Jun 2009 11:18:50 +0000 (11:18 +0000)
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeContentProvider.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodePropertyTester.java
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonomicTreeContentProvider.java

index 859410dafdbc64902ea1cccb08a44b2449b5631b..fe1563834bf4ff4c17e994dddbb115faa6d89e65 100644 (file)
@@ -15,6 +15,7 @@ import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;\r
 \r
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -25,13 +26,16 @@ public class TaxonNodeContentProvider implements ITreeContentProvider {
        private static final Logger logger = Logger\r
                        .getLogger(TaxonNodeContentProvider.class);\r
 \r
+       private static final Object[] NO_CHILDREN = new Object[0];\r
+       \r
        public Object[] getChildren(Object parentElement) {\r
-               \r
+               Object[] children = null;               \r
                if (parentElement instanceof TaxonNode) {\r
-                       return ((TaxonNode) parentElement).getChildNodes().toArray();\r
+                       children = ((TaxonNode) parentElement).getChildNodes().toArray();\r
+               } else if (parentElement instanceof TaxonomicTree) {\r
+                       children = ((TaxonomicTree) parentElement).getRootNodes().toArray();\r
                }\r
-               \r
-               return new Object[0];\r
+               return children != null ? children : NO_CHILDREN;\r
        }\r
 \r
        public Object getParent(Object element) {\r
index 2a1338cfb984de4a9db5010d6729e99a926bd3f2..132f11aacc55513f06a79f43cee59f8d36f44e85 100644 (file)
@@ -7,10 +7,12 @@ import org.eclipse.core.expressions.PropertyTester;
 \r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;\r
 \r
 public class TaxonNodePropertyTester extends PropertyTester {\r
        \r
        private static final Object HAS_SYNONYMS = "hasSynonyms";\r
+       private static final Object HAS_TAXA = "hasTaxa";\r
        \r
        public boolean test(Object receiver, String property, Object[] args,\r
                        Object expectedValue) {\r
@@ -18,6 +20,11 @@ public class TaxonNodePropertyTester extends PropertyTester {
                        Taxon taxon = ((TaxonNode) receiver).getTaxon();\r
                        return taxon.hasSynonyms();\r
                }\r
+\r
+               if (receiver instanceof TaxonomicTree && HAS_TAXA.equals(property)) {\r
+                       TaxonomicTree taxononomicTree = (TaxonomicTree) receiver;\r
+                       return taxononomicTree.getRootNodes().size() > 0;\r
+               }\r
                \r
                return false;\r
        }\r
index 885951e9bfc9e7ccb5a4623b6eacba5ec717c2f7..d272cc2ae4845e8546de5a0f4d4209f5340bc1d1 100644 (file)
@@ -33,9 +33,9 @@ public class TaxonomicTreeContentProvider implements ITreeContentProvider {
                        return ((Root) parentElement).getParentBeans().toArray();
                }
                
-               if(parentElement instanceof TaxonomicTree) {
-                       return ((TaxonomicTree) parentElement).getRootNodes().toArray();
-               }
+//             if(parentElement instanceof TaxonomicTree) {
+//                     return ((TaxonomicTree) parentElement).getRootNodes().toArray();
+//             }
                
                return new Object[0];
        }