X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.g3d.vtk%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fvtk%2Fcommon%2FVTKSelectionItem.java;h=deb812722b238065fc512e0525a9e9d1d0f67190;hb=refs%2Fchanges%2F50%2F3950%2F1;hp=222da8b92012de4a404d0d3f862b84ed926768e3;hpb=43b9a071783377f64924bb0c2f1930fb49316f6f;p=simantics%2F3d.git diff --git a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/common/VTKSelectionItem.java b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/common/VTKSelectionItem.java index 222da8b9..deb81272 100644 --- a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/common/VTKSelectionItem.java +++ b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/common/VTKSelectionItem.java @@ -22,34 +22,33 @@ import vtk.vtkProp; public class VTKSelectionItem implements IAdaptable{ private vtkProp prop; - private IG3DNode node; + private INode node; private DBObject resource; - public VTKSelectionItem(vtkProp prop, IG3DNode node, DBObject res) { + public VTKSelectionItem(vtkProp prop, INode node, DBObject res) { this.prop = prop; this.node = node; this.resource = res; } - @SuppressWarnings("rawtypes") @Override - public Object getAdapter(Class adapter) { - if (adapter == Resource.class) + public T getAdapter(Class adapter) { + if (adapter.isAssignableFrom(Resource.class)) if (resource instanceof Resource) - return resource; + return adapter.cast(resource); else return null; - if (adapter == StructuralResource.class) + if (adapter.isAssignableFrom(StructuralResource.class)) if (resource instanceof StructuralResource) - return resource; + return adapter.cast(resource); else return null; - if (adapter == vtkProp.class) - return prop; - if (adapter == IG3DNode.class) - return node; - if (adapter == INode.class) - return node; + if (adapter.isAssignableFrom(vtkProp.class)) + return adapter.cast(prop); + if (adapter.isAssignableFrom(IG3DNode.class) && node instanceof IG3DNode) + return adapter.cast(node); + if (adapter.isAssignableFrom(INode.class)) + return adapter.cast(node); return null; }