Merge branch 'develop' into treeTable
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / Root.java
index 7294a137b6ec2d071fb95cd74ee4cf4f0dad4d75..3db2bdda405bbf6e7f91cae6db7fc5f9e1e259e0 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2007 EDIT
 * European Distributed Institute of Taxonomy
@@ -10,6 +9,7 @@
 
 package eu.etaxonomy.taxeditor.navigation.navigator;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -22,11 +22,9 @@ import org.eclipse.ui.IPersistableElement;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.model.common.ITreeNode;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
-import eu.etaxonomy.taxeditor.navigation.operation.CreateClassification;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -54,20 +52,26 @@ public class Root extends PlatformObject implements IAdaptable, IPersistableElem
         *
         * @return a {@link java.util.List} object.
         */
-       public List<Classification> getParentBeans() {
-               List<String> propertyPaths = Arrays.asList(new String[]{"name"});
+       public List<ITreeNode> getParentBeans() {
+               List<String> propertyPaths = Arrays.asList(new String[]{
+                       "name", //$NON-NLS-1$
+                       "rootNode.childNodes"}); //$NON-NLS-1$
 
                List<Classification> classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, propertyPaths);
+               List<ITreeNode> rootNodes = new ArrayList<>();
 
                if(classifications.size() == 0){
-                       Classification classification = Classification.NewInstance("My Classification");
-                       AbstractPostOperation operation = new CreateClassification("Creating initial classification", NavigationUtil.getUndoContext(), classification, NavigationUtil.getNavigator(false), NavigationUtil.getNavigator(false), NavigationUtil.getNavigator(false));
-                       NavigationUtil.executeOperation(operation);
-
-                       classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, propertyPaths);
+                   //FIXME E4 migrate or delete; when does this happen and SHOULD this happen?
+//                     Classification classification = Classification.NewInstance(Messages.Root_MY_CLASSIFICATION);
+//                     AbstractPostOperation operation = new CreateClassification(Messages.Root_CREATE_CLASSIFICATION, NavigationUtil.getUndoContext(), classification, NavigationUtil.getNavigator(false), NavigationUtil.getNavigator(false), NavigationUtil.getNavigator(false));
+//                     NavigationUtil.executeOperation(operation);
+//
+//                     classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, propertyPaths);
                }
-
-               return classifications;
+               for (Classification classification: classifications){
+                       rootNodes.add(classification.getRootNode());
+               }
+               return rootNodes;
        }
 
        /* (non-Javadoc)