X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Feditor%2FP3DContentOutlinePage.java;h=ed9c4a5baf8eed40b62c3e23c1e98c403b96c7dd;hb=3f17b6e42935927f12683fc26ecd5808bf66cde6;hp=c675b1112f5a3845633c5d6d9cd714d4e1155b39;hpb=22bb24d2a7e26c70b0dd4c57080f2c25ac3d40a8;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DContentOutlinePage.java b/org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DContentOutlinePage.java index c675b111..ed9c4a5b 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DContentOutlinePage.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/editor/P3DContentOutlinePage.java @@ -1,10 +1,16 @@ 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; +import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.resource.LocalResourceManager; +import org.eclipse.jface.viewers.DecorationOverlayIcon; +import org.eclipse.jface.viewers.IDecoration; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.events.MenuDetectEvent; import org.eclipse.swt.events.MenuDetectListener; @@ -16,9 +22,9 @@ 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.InlineComponent; import org.simantics.plant3d.scenegraph.Nozzle; import org.simantics.plant3d.scenegraph.P3DRootNode; import org.simantics.plant3d.scenegraph.PipeRun; @@ -26,7 +32,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{ +public class P3DContentOutlinePage extends VTKContentOutlinePage{ private static final boolean DEBUG = false; protected Menu contextMenu; @@ -39,14 +45,33 @@ public class P3DContentOutlinePage extends VTKContentOutlinePage rootNode, NodeSelectionProvider2 provider) { + + private Image nozzleErrorImage; + private Image pipeErrorImage; + private Image tankErrorImage; + private Image elbowErrorImage; + private Image componentErrorImage; + + public P3DContentOutlinePage(ParentNode rootNode, NodeSelectionProvider2 provider) { super(rootNode,provider); - nozzleImage = manager.createImage(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/Nozzle.png")); - pipeImage = manager.createImage(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/Straight.png")); - tankImage = manager.createImage(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/tank.png")); - elbowImage = manager.createImage(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/Elbow.png")); - componentImage = manager.createImage(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/Component.png")); + ImageDescriptor nozzleDesc = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/Nozzle.png"); + ImageDescriptor straightDesc = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/Straight.png"); + ImageDescriptor tankDesc = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/tank.png"); + ImageDescriptor elbowDesc = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/Elbow.png"); + ImageDescriptor componentDesc = Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/Component.png"); + nozzleImage = manager.createImage(nozzleDesc); + pipeImage = manager.createImage(straightDesc); + tankImage = manager.createImage(tankDesc); + elbowImage = manager.createImage(elbowDesc); + componentImage = manager.createImage(componentDesc); + + ImageDescriptor error = Activator.imageDescriptorFromPlugin("org.simantics.issues.ui", "icons/warning_decoration.png"); + nozzleErrorImage = manager.createImage(new DecorationOverlayIcon(nozzleDesc, error, IDecoration.BOTTOM_RIGHT)); + pipeErrorImage = manager.createImage(new DecorationOverlayIcon(straightDesc, error, IDecoration.BOTTOM_RIGHT)); + tankErrorImage = manager.createImage(new DecorationOverlayIcon(tankDesc, error, IDecoration.BOTTOM_RIGHT)); + elbowErrorImage = manager.createImage(new DecorationOverlayIcon(elbowDesc, error, IDecoration.BOTTOM_RIGHT)); + componentErrorImage = manager.createImage(new DecorationOverlayIcon(componentDesc, error, IDecoration.BOTTOM_RIGHT)); } @Override @@ -57,15 +82,26 @@ public class P3DContentOutlinePage extends VTKContentOutlinePage list = new ArrayList(); + list.addAll(((PipeRun)parentElement).getControlPoints()); + list.addAll(((PipeRun)parentElement).getSortedChild()); + return list.toArray(); } - } else { + 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); @@ -104,6 +140,18 @@ public class P3DContentOutlinePage extends VTKContentOutlinePage