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;
private SWTAWTComponent component;
private CSGrootNode rootNode;
- private IMapping<Resource,Object> mapping;
+ private IMapping<Resource, INode> mapping;
- private NodeSelectionProvider2<Resource,Object> selectionProvider;
+ private NodeSelectionProvider2<Resource, INode> selectionProvider;
private vtkCameraAndSelectorAction cameraAction;
private TranslateAction translateAction;
throw new RuntimeException("Scenegraph loading failed.");
populate();
- selectionProvider = new NodeSelectionProvider2<Resource,Object>(this,mapping,nodeMap);
+ selectionProvider = new NodeSelectionProvider2<Resource,INode>(this,mapping,nodeMap);
cameraAction.addSelectionChangedListener(selectionProvider);
- cameraAction.addHoverChangedListener(new HoverHighlighter(panel,nodeMap));
- selectionProvider.addSelectionChangedListener(new SelectionHighlighter(panel,nodeMap));
+ cameraAction.addHoverChangedListener(new HoverHighlighter<Resource>(panel,nodeMap));
+ selectionProvider.addSelectionChangedListener(new SelectionHighlighter<Resource>(panel,nodeMap));
getSite().setSelectionProvider(selectionProvider);
getSite().getPage().addPostSelectionListener(selectionProvider);
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);
-
}
};
private IContentOutlinePage createOutline() {
if (rootNode == null || selectionProvider == null)
return null;
- IContentOutlinePage outlinePage = new VTKContentOutlinePage<Resource,Object>(rootNode, selectionProvider);
+ IContentOutlinePage outlinePage = new VTKContentOutlinePage<Resource,INode>(rootNode, selectionProvider);
outlinePage.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
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> T getAdapter(Class<T> 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);
}