X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Factions%2FAddComponentAction.java;h=5aaa9c71d646c1e5d4499e6ae71b323407edb3ca;hb=84132a1d750c45f9161afbd58b78572964e50d26;hp=4c116c1f26efb73d9453e850e299a43cb89992f9;hpb=9e1e51825bfdcd72d7006e1bff703e7eb52919c6;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/actions/AddComponentAction.java b/org.simantics.plant3d/src/org/simantics/plant3d/actions/AddComponentAction.java index 4c116c1f..5aaa9c71 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/actions/AddComponentAction.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/actions/AddComponentAction.java @@ -10,8 +10,8 @@ import javax.vecmath.Vector3d; import org.eclipse.swt.widgets.Display; import org.simantics.g3d.scenegraph.NodeMap; import org.simantics.g3d.scenegraph.base.INode; -import org.simantics.g3d.vtk.action.vtkAction; -import org.simantics.g3d.vtk.common.InteractiveVtkPanel; +import org.simantics.g3d.vtk.swt.InteractiveVtkComposite; +import org.simantics.g3d.vtk.swt.vtkSwtAction; import org.simantics.plant3d.Activator; import org.simantics.plant3d.dialog.ComponentSelectionDialog; import org.simantics.plant3d.gizmo.TerminalSelectionGizmo; @@ -26,13 +26,12 @@ import org.simantics.plant3d.scenegraph.controlpoint.PipingRules; import org.simantics.plant3d.utils.ComponentUtils; import org.simantics.plant3d.utils.Item; import org.simantics.plant3d.utils.Item.Type; -import org.simantics.utils.threads.AWTThread; import org.simantics.utils.threads.ThreadUtils; import org.simantics.utils.ui.ExceptionUtils; import vtk.vtkProp; -public class AddComponentAction extends vtkAction { +public class AddComponentAction extends vtkSwtAction { private P3DRootNode root; @@ -45,7 +44,7 @@ public class AddComponentAction extends vtkAction { private Item toAdd = null; - public AddComponentAction(InteractiveVtkPanel panel, P3DRootNode root) { + public AddComponentAction(InteractiveVtkComposite panel, P3DRootNode root) { super(panel); this.root = root; setText("Add Component"); @@ -90,14 +89,14 @@ public class AddComponentAction extends vtkAction { allowed = dialog.filterAllowed(); gizmo.setComponent(component, allowed); super.run(); - panel.repaint(); + panel.refresh(); } @Override - public void keyPressed(KeyEvent e) { + public boolean keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ESCAPE) panel.useDefaultAction(); - + return true; } @@ -106,7 +105,7 @@ public class AddComponentAction extends vtkAction { return; super.attach(); - ThreadUtils.asyncExec(AWTThread.getThreadAccess(), new Runnable() { + ThreadUtils.asyncExec(panel.getThreadQueue(), new Runnable() { public void run() { attachUI(); } @@ -120,12 +119,12 @@ public class AddComponentAction extends vtkAction { nodeMap.commit(); deattachUI(); super.deattach(); - panel.repaint(); + panel.refresh(); } private void attachUI() { //panel.setCursor(activeCursor); - gizmo.attach(panel.GetRenderer()); + gizmo.attach(panel); } private void deattachUI() { @@ -134,23 +133,23 @@ public class AddComponentAction extends vtkAction { } @Override - public void mouseMoved(MouseEvent e) { - panel.getDefaultAction().mouseMoved(e); + public boolean mouseMoved(MouseEvent e) { + return getDefaultAction().mouseMoved(e); } @Override - public void mousePressed(MouseEvent e) { - panel.getDefaultAction().mousePressed(e); + public boolean mousePressed(MouseEvent e) { + return getDefaultAction().mousePressed(e); } @Override - public void mouseReleased(MouseEvent e) { - panel.getDefaultAction().mouseReleased(e); + public boolean mouseReleased(MouseEvent e) { + return getDefaultAction().mouseReleased(e); } @Override - public void mouseDragged(MouseEvent e) { - panel.getDefaultAction().mouseDragged(e); + public boolean mouseDragged(MouseEvent e) { + return getDefaultAction().mouseDragged(e); } public void doInsert(PositionType position) { @@ -253,19 +252,21 @@ public class AddComponentAction extends vtkAction { } } - public void mouseClicked(MouseEvent e) { + public boolean mouseClicked(MouseEvent e) { if (e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON1) { int type = panel.getPickType(); - panel.setPickType(0); + //panel.setPickType(0); + panel.setPickType(5); vtkProp[] picked = panel.pick(e.getX(), e.getY()); panel.setPickType(type); PositionType position = gizmo.getPickedPosition(picked); + if (position != null) { doInsert(position); panel.useDefaultAction(); - return; + return true; } } - panel.getDefaultAction().mouseClicked(e); + return getDefaultAction().mouseClicked(e); } }