]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/common/ContextMenuListener.java
Refactoring small features to common classes
[simantics/3d.git] / org.simantics.g3d.vtk / src / org / simantics / g3d / vtk / common / ContextMenuListener.java
diff --git a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/common/ContextMenuListener.java b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/common/ContextMenuListener.java
new file mode 100644 (file)
index 0000000..3f42fca
--- /dev/null
@@ -0,0 +1,32 @@
+package org.simantics.g3d.vtk.common;
+
+import java.awt.event.MouseEvent;
+
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+
+import vtk.vtkPanel;
+
+public class ContextMenuListener extends java.awt.event.MouseAdapter{
+       
+       vtkPanel panel;
+       Menu contextMenu;
+       
+       public ContextMenuListener(vtkPanel panel, Menu contextMenu) {
+               this.panel = panel;
+               this.contextMenu = contextMenu;
+               this.panel.addMouseListener(this);
+       }
+       @Override
+       public void mouseClicked(final MouseEvent e) {
+               if (e.getButton() == java.awt.event.MouseEvent.BUTTON3) {
+                       Display.getDefault().asyncExec(new Runnable() {
+                               public void run() {
+                                       contextMenu.setLocation(e.getXOnScreen(), e.getYOnScreen());
+                                       contextMenu.setVisible(true);
+                               }
+                       });
+               }
+       }
+
+}