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;
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;
public class P3DContentOutlinePage extends VTKContentOutlinePage<Resource, INode>{
- private static final boolean DEBUG = true;
+ private static final boolean DEBUG = false;
protected Menu contextMenu;
private LocalResourceManager manager = new LocalResourceManager(JFaceResources.getResources());
private Image elbowImage;
private Image componentImage;
+
+ private Image nozzleErrorImage;
+ private Image pipeErrorImage;
+ private Image tankErrorImage;
+ private Image elbowErrorImage;
+ private Image componentErrorImage;
+
public P3DContentOutlinePage(ParentNode<? extends INode> rootNode, NodeSelectionProvider2<Resource,INode> 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
}
+ @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();
if (element instanceof PipelineComponent) {
PipelineComponent comp = (PipelineComponent)element;
if (comp instanceof TurnComponent) {
- return elbowImage;
+ if (comp.getError() == null)
+ return elbowImage;
+ else
+ return elbowErrorImage;
} else if (comp instanceof EndComponent) {
- return componentImage;
+ if (comp.getError() == null)
+ return componentImage;
+ else
+ return componentErrorImage;
} else if (comp instanceof Nozzle) {
- return nozzleImage;
+ if (comp.getError() == null)
+ return nozzleImage;
+ else
+ return nozzleErrorImage;
} else if (comp.getControlPoint().isFixed()) {
- return componentImage;
+ if (comp.getError() == null)
+ return componentImage;
+ else
+ return componentErrorImage;
}
- return pipeImage;
+ if (comp.getError() == null)
+ return pipeImage;
+ else
+ return pipeErrorImage;
} else if (element instanceof Equipment) {
return tankImage;
} else if (element instanceof PipeRun) {