]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DContentOutlinePage.java
PipeRun reverse action
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / editor / P3DContentOutlinePage.java
index 5a9e8b01e32cf899a1e452cc7c4420737c30728f..f853a02f06c56e04416201fb43d9b72f1bcfe838 100644 (file)
@@ -19,6 +19,7 @@ import org.simantics.g3d.scenegraph.base.ParentNode;
 import org.simantics.g3d.vtk.common.NodeSelectionProvider2;
 import org.simantics.g3d.vtk.common.VTKContentOutlinePage;
 import org.simantics.plant3d.Activator;
+import org.simantics.plant3d.ontology.Plant3D;
 import org.simantics.plant3d.scenegraph.EndComponent;
 import org.simantics.plant3d.scenegraph.Equipment;
 import org.simantics.plant3d.scenegraph.Nozzle;
@@ -28,7 +29,7 @@ import org.simantics.plant3d.scenegraph.PipelineComponent;
 import org.simantics.plant3d.scenegraph.TurnComponent;
 import org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint;
 
-public class P3DContentOutlinePage extends VTKContentOutlinePage<Resource, Object>{
+public class P3DContentOutlinePage extends VTKContentOutlinePage<Resource, INode>{
        
        private static final boolean DEBUG = true;
        protected Menu contextMenu;
@@ -41,7 +42,7 @@ public class P3DContentOutlinePage extends VTKContentOutlinePage<Resource, Objec
        private Image elbowImage;
        private Image componentImage;
        
-       public  P3DContentOutlinePage(ParentNode<? extends INode> rootNode, NodeSelectionProvider2<Resource,Object> provider) {
+       public  P3DContentOutlinePage(ParentNode<? extends INode> rootNode, NodeSelectionProvider2<Resource,INode> provider) {
                super(rootNode,provider);
                
                nozzleImage = manager.createImage(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/Nozzle.png"));
@@ -60,14 +61,14 @@ public class P3DContentOutlinePage extends VTKContentOutlinePage<Resource, Objec
                                        return ((P3DRootNode)parentElement).getChild().toArray();
                                }
                                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) {
+                                               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()};
@@ -117,6 +118,18 @@ public class P3DContentOutlinePage extends VTKContentOutlinePage<Resource, Objec
                
        }
        
+       @Override
+       public void propertyChanged(INode node, String id) {
+           // TODO Auto-generated method stub
+           if (node instanceof PipelineComponent) {
+               if (Plant3D.URIs.HasNext.equals(id) || Plant3D.URIs.HasPrevious.equals(id)) {
+                   refershViewer(node.getParent());
+                   return;
+               }
+           }
+           super.propertyChanged(node, id);
+       }
+       
        @Override
        public void dispose() {
                manager.dispose();
@@ -124,14 +137,14 @@ public class P3DContentOutlinePage extends VTKContentOutlinePage<Resource, Objec
        }
        
        protected void hookContextMenu(TreeViewer viewer) {
-        MenuManager menuMgr = new MenuManager("#PopupMenu");
-        menuMgr.setRemoveAllWhenShown(true);
-        menuMgr.addMenuListener(new IMenuListener() {
-            public void menuAboutToShow(IMenuManager manager) {
-               createContextMenu(manager);
-            }
-        });
-        contextMenu = menuMgr.createContextMenu(viewer.getTree());
+               MenuManager menuMgr = new MenuManager("#PopupMenu");
+               menuMgr.setRemoveAllWhenShown(true);
+               menuMgr.addMenuListener(new IMenuListener() {
+                       public void menuAboutToShow(IMenuManager manager) {
+                               createContextMenu(manager);
+                       }
+               });
+               contextMenu = menuMgr.createContextMenu(viewer.getTree());
        }
        
        protected void createContextMenu(IMenuManager manager) {