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;
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;
private Item toAdd = null;
- public AddComponentAction(InteractiveVtkPanel panel, P3DRootNode root) {
+ public AddComponentAction(InteractiveVtkComposite panel, P3DRootNode root) {
super(panel);
this.root = root;
setText("Add Component");
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;
}
return;
super.attach();
- ThreadUtils.asyncExec(AWTThread.getThreadAccess(), new Runnable() {
+ ThreadUtils.asyncExec(panel.getThreadQueue(), new Runnable() {
public void run() {
attachUI();
}
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() {
}
@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) {
}
}
- 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);
}
}