]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DContentOutlinePage.java
Show components in connected order in outline with debug mode
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / editor / P3DContentOutlinePage.java
index c675b1112f5a3845633c5d6d9cd714d4e1155b39..0c5ab5df39e0cdf842a953694072a13af4864cb2 100644 (file)
@@ -1,5 +1,8 @@
 package org.simantics.plant3d.editor;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.eclipse.jface.action.IMenuListener;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.MenuManager;
@@ -18,7 +21,6 @@ import org.simantics.g3d.vtk.common.VTKContentOutlinePage;
 import org.simantics.plant3d.Activator;
 import org.simantics.plant3d.scenegraph.EndComponent;
 import org.simantics.plant3d.scenegraph.Equipment;
-import org.simantics.plant3d.scenegraph.InlineComponent;
 import org.simantics.plant3d.scenegraph.Nozzle;
 import org.simantics.plant3d.scenegraph.P3DRootNode;
 import org.simantics.plant3d.scenegraph.PipeRun;
@@ -57,15 +59,26 @@ public class P3DContentOutlinePage extends VTKContentOutlinePage<Resource, Objec
                                if (parentElement instanceof P3DRootNode) {
                                        return ((P3DRootNode)parentElement).getChild().toArray();
                                }
-                               if (!DEBUG) {
-                                       if (parentElement instanceof PipeRun) {
-                                               return ((PipeRun)parentElement).getSortedChild().toArray();
-                                       }
-                               } else {
+                               if (parentElement instanceof PipeRun) {
+                                   if (DEBUG) {
+                                       List<Object> list = new ArrayList<Object>();
+                                       list.addAll(((PipeRun)parentElement).getControlPoints());
+                                       list.addAll(((PipeRun)parentElement).getSortedChild());
+                                       return list.toArray();
+                                   }
+                                   return ((PipeRun)parentElement).getSortedChild().toArray();
+                }
+                               if (DEBUG) {
                                        if (parentElement instanceof PipelineComponent) {
                                                return new Object[]{((PipelineComponent) parentElement).getControlPoint()};
                                        } else if (parentElement instanceof PipeControlPoint) {
-                                               return new Object[]{((PipeControlPoint) parentElement).getPipelineComponent()};
+                                               PipeControlPoint pcp = (PipeControlPoint) parentElement;
+                                               Object arr[] = new Object[pcp.children.size()+1];
+                                               arr[0] = pcp.getPipelineComponent();
+                                               for (int i = 0; i < pcp.children.size();i++) {
+                                                       arr[i+1] = pcp.children.get(i);
+                                               }
+                                               return arr;
                                        }
                                }
                                return super.getChildren(parentElement);