X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=org.simantics.g3d.csg%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fcsg%2Feditor%2FCSGEditor2.java;h=9716d200d26e89eeaa356b167698b519c9dbde8e;hb=refs%2Fchanges%2F60%2F3460%2F1;hp=3a85691b07a400eb0bca0ff97a7772cc76b59260;hpb=4a656971025eea4b563933179d6120d0e87e7549;p=simantics%2F3d.git diff --git a/org.simantics.g3d.csg/src/org/simantics/g3d/csg/editor/CSGEditor2.java b/org.simantics.g3d.csg/src/org/simantics/g3d/csg/editor/CSGEditor2.java index 3a85691b..9716d200 100644 --- a/org.simantics.g3d.csg/src/org/simantics/g3d/csg/editor/CSGEditor2.java +++ b/org.simantics.g3d.csg/src/org/simantics/g3d/csg/editor/CSGEditor2.java @@ -54,7 +54,6 @@ import org.simantics.g3d.csg.scenegraph2.SchemaBuilder; import org.simantics.g3d.csg.scenegraph2.SphereNode; import org.simantics.g3d.csg.scenegraph2.TorusNode; import org.simantics.g3d.csg.scenegraph2.UnionNode; -import org.simantics.g3d.scenegraph.IG3DNode; import org.simantics.g3d.scenegraph.NodeMap; import org.simantics.g3d.scenegraph.base.INode; import org.simantics.g3d.vtk.action.RemoveAction; @@ -96,9 +95,9 @@ public class CSGEditor2 extends ResourceEditorPart { private SWTAWTComponent component; private CSGrootNode rootNode; - private IMapping mapping; + private IMapping mapping; - private NodeSelectionProvider2 selectionProvider; + private NodeSelectionProvider2 selectionProvider; private vtkCameraAndSelectorAction cameraAction; private TranslateAction translateAction; @@ -174,12 +173,12 @@ public class CSGEditor2 extends ResourceEditorPart { throw new RuntimeException("Scenegraph loading failed."); populate(); - selectionProvider = new NodeSelectionProvider2(this,mapping,nodeMap); + selectionProvider = new NodeSelectionProvider2(this,mapping,nodeMap); cameraAction.addSelectionChangedListener(selectionProvider); - cameraAction.addHoverChangedListener(new HoverHighlighter(panel,nodeMap)); - selectionProvider.addSelectionChangedListener(new SelectionHighlighter(panel,nodeMap)); + cameraAction.addHoverChangedListener(new HoverHighlighter(panel,nodeMap)); + selectionProvider.addSelectionChangedListener(new SelectionHighlighter(panel,nodeMap)); getSite().setSelectionProvider(selectionProvider); getSite().getPage().addPostSelectionListener(selectionProvider); @@ -215,11 +214,11 @@ public class CSGEditor2 extends ResourceEditorPart { translateAction = new TranslateAction(panel,nodeMap); rotateAction = new RotateAction(panel,nodeMap); removeAction = new RemoveAction(nodeMap) { - public void setNode(IG3DNode node) { + @Override + public void setNode(INode node) { super.setNode(node); if (node.getParent() instanceof CSGparentNode) setEnabled(false); - } }; @@ -399,7 +398,7 @@ public class CSGEditor2 extends ResourceEditorPart { private IContentOutlinePage createOutline() { if (rootNode == null || selectionProvider == null) return null; - IContentOutlinePage outlinePage = new VTKContentOutlinePage(rootNode, selectionProvider); + IContentOutlinePage outlinePage = new VTKContentOutlinePage(rootNode, selectionProvider); outlinePage.addSelectionChangedListener(new ISelectionChangedListener() { @Override @@ -410,28 +409,27 @@ public class CSGEditor2 extends ResourceEditorPart { return outlinePage; } - @SuppressWarnings("rawtypes") @Override - public Object getAdapter(Class adapter) { - if (IPropertyPage.class.equals(adapter)) - return new StandardPropertyPage(getSite(),getPropertyContexts()); - if (IContentOutlinePage.class.equals(adapter)) { - return createOutline(); + public T getAdapter(Class adapter) { + if (adapter.isAssignableFrom(IPropertyPage.class)) + return adapter.cast(new StandardPropertyPage(getSite(),getPropertyContexts())); + if (adapter.isAssignableFrom(IContentOutlinePage.class)) { + return adapter.cast(createOutline()); } - if (NodeMap.class.equals(adapter)) { - return nodeMap; + if (adapter.isAssignableFrom(NodeMap.class)) { + return adapter.cast(nodeMap); } - if (INode.class.equals(adapter)) { - return rootNode; + if (adapter.isAssignableFrom(INode.class)) { + return adapter.cast(rootNode); } - if (IMapping.class.equals(adapter)) { - return mapping; + if (adapter.isAssignableFrom(IMapping.class)) { + return adapter.cast(mapping); } - if (InteractiveVtkPanel.class.equals(adapter)) { - return panel; + if (adapter.isAssignableFrom(InteractiveVtkPanel.class)) { + return adapter.cast(panel); } - if (VtkView.class.equals(adapter)) - return panel; + if (adapter.isAssignableFrom(VtkView.class)) + return adapter.cast(panel); return super.getAdapter(adapter); }