Merge branch 'develop' into wset
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / main / java / eu / etaxonomy / taxeditor / navigation / navigator / Root.java
index e0befd28b2a4849162ff05ac97f78fa418aaff52..3db2bdda405bbf6e7f91cae6db7fc5f9e1e259e0 100644 (file)
@@ -9,6 +9,7 @@
 
 package eu.etaxonomy.taxeditor.navigation.navigator;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -21,12 +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.l10n.Messages;
-import eu.etaxonomy.taxeditor.navigation.operation.CreateClassification;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -54,22 +52,26 @@ public class Root extends PlatformObject implements IAdaptable, IPersistableElem
         *
         * @return a {@link java.util.List} object.
         */
-       public List<Classification> getParentBeans() {
+       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(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);
+                   //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)