]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/common/SelectionHighlighter.java
Use generics type variable for mapping db object.
[simantics/3d.git] / org.simantics.g3d.vtk / src / org / simantics / g3d / vtk / common / SelectionHighlighter.java
index 95ba7aee2ef852e827a1070aa3c9dda48c15405f..69ed83e2d2dea1857494b445e2635dc0e4ed127e 100644 (file)
@@ -32,23 +32,22 @@ import vtk.vtkAlgorithm;
 import vtk.vtkAlgorithmOutput;
 import vtk.vtkFeatureEdges;
 import vtk.vtkMapper;
-import vtk.vtkPanel;
 import vtk.vtkProp;
 import vtk.vtkProperty;
 
-public class SelectionHighlighter<E extends IG3DNode> implements ISelectionChangedListener{
+public class SelectionHighlighter<DBObject, E extends INode> implements ISelectionChangedListener{
 
        
        
-       vtkPanel panel;
-       VTKNodeMap<E> nodeMap;
+       protected VtkView panel;
+       protected VTKNodeMap<DBObject,E> nodeMap;
        
-       List<IG3DNode> selectedNodes = new ArrayList<IG3DNode>();
-       List<vtkActor> selectedActors = new ArrayList<vtkActor>();
+       protected List<IG3DNode> selectedNodes = new ArrayList<IG3DNode>();
+       protected List<vtkActor> selectedActors = new ArrayList<vtkActor>();
        
-       HighlightObjectType type = HighlightObjectType.Node;
+       protected HighlightObjectType type = HighlightObjectType.Node;
        
-       public SelectionHighlighter(vtkPanel panel, VTKNodeMap<E> nodeMap) {
+       public SelectionHighlighter(VtkView panel, VTKNodeMap<DBObject,E> nodeMap) {
                this.panel = panel;
                this.nodeMap = nodeMap;
        }
@@ -57,7 +56,7 @@ public class SelectionHighlighter<E extends IG3DNode> implements ISelectionChang
        public void selectionChanged(SelectionChangedEvent event) {
                final ISelection s = event.getSelection();
                
-               if (Thread.currentThread().equals(AWTThread.getThreadAccess().getThread()))
+               if (Thread.currentThread().equals(panel.getThreadQueue().getThread()))
                        highlight(s);
                else {
                        ThreadUtils.asyncExec(AWTThread.getThreadAccess(), new Runnable() {
@@ -65,8 +64,8 @@ public class SelectionHighlighter<E extends IG3DNode> implements ISelectionChang
                                public void run() {
                                        highlight(s);
                                        //System.out.println(this.getClass().getName() + " highlight ");
-                                       panel.Render();
-                                       //panel.repaint();
+                                       //panel.Render();
+                                       panel.refresh();
                                }
                        });
                }
@@ -144,7 +143,7 @@ public class SelectionHighlighter<E extends IG3DNode> implements ISelectionChang
                        selectedActors.addAll(currentSelectedActors);
                }
                if (changed) {
-                       panel.repaint();
+                       panel.refresh();
                }
        }
        
@@ -172,7 +171,7 @@ public class SelectionHighlighter<E extends IG3DNode> implements ISelectionChang
        }
        
        
-       protected void setColor(E node, boolean edge, double color[]) {
+       public void setColor(E node, boolean edge, double color[]) {
                for (vtkProp prop : nodeMap.getRenderObjects(node)) {
                        if (prop instanceof vtkActor) {
                                vtkActor act = (vtkActor)prop;