Added key press support in 3D viewer Change-Id: I97451e4cdcb87fc60cb720addd2c2c1d95392831
diff --git a/bundles/addons/org.eclipse.apogy.addons.edit/src-gen-custom/org/eclipse/apogy/addons/provider/TrajectoryPickingToolCustomItemProvider.java b/bundles/addons/org.eclipse.apogy.addons.edit/src-gen-custom/org/eclipse/apogy/addons/provider/TrajectoryPickingToolCustomItemProvider.java index 5d3f65d..1fa63db 100644 --- a/bundles/addons/org.eclipse.apogy.addons.edit/src-gen-custom/org/eclipse/apogy/addons/provider/TrajectoryPickingToolCustomItemProvider.java +++ b/bundles/addons/org.eclipse.apogy.addons.edit/src-gen-custom/org/eclipse/apogy/addons/provider/TrajectoryPickingToolCustomItemProvider.java
@@ -39,6 +39,15 @@ // Adds Simple3DTool Text. label += " ("; + label += getSuffix(trajectoryPickingTool); + label += ")"; + + return label; + } + + protected String getSuffix(TrajectoryPickingTool trajectoryPickingTool) + { + String label =""; String simpleToolText = getSimple3DToolText(trajectoryPickingTool); if (simpleToolText.length() > 0) { label += simpleToolText + ", "; @@ -49,17 +58,9 @@ if (trajectoryPickingTool.getActivePath() != null) { String distanceText = this.decimalFormat.format(trajectoryPickingTool.getActivePath().getLength()) + " m"; label += ", Active Path Lenght : " + distanceText; -// -// String pathId = trajectoryPickingTool.getActivePath().getNodeId(); -// if(pathId != null && pathId.length() > 0) -// { -// label += ", " + pathId; -// } } - - label += ")"; - + return label; } - + }
diff --git a/bundles/addons/org.eclipse.apogy.addons.ros.ui/src-gen/org/eclipse/apogy/addons/ros/ui/ApogyAddonsROSUIPackage.java b/bundles/addons/org.eclipse.apogy.addons.ros.ui/src-gen/org/eclipse/apogy/addons/ros/ui/ApogyAddonsROSUIPackage.java index 3929c6d..0570b86 100644 --- a/bundles/addons/org.eclipse.apogy.addons.ros.ui/src-gen/org/eclipse/apogy/addons/ros/ui/ApogyAddonsROSUIPackage.java +++ b/bundles/addons/org.eclipse.apogy.addons.ros.ui/src-gen/org/eclipse/apogy/addons/ros/ui/ApogyAddonsROSUIPackage.java
@@ -283,6 +283,24 @@ int TF_DISPLAY3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = ApogyAddonsPackage.SIMPLE3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TF_DISPLAY3_DTOOL___KEY_PRESSED__CHAR = ApogyAddonsPackage.SIMPLE3_DTOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TF_DISPLAY3_DTOOL___KEY_RELEASED__CHAR = ApogyAddonsPackage.SIMPLE3_DTOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Ros Init</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc -->
diff --git a/bundles/addons/org.eclipse.apogy.addons.sensors.fov.ui/src-gen/org/eclipse/apogy/addons/sensors/fov/ui/ApogyAddonsSensorsFOVUIPackage.java b/bundles/addons/org.eclipse.apogy.addons.sensors.fov.ui/src-gen/org/eclipse/apogy/addons/sensors/fov/ui/ApogyAddonsSensorsFOVUIPackage.java index 826b594..c1f2381 100644 --- a/bundles/addons/org.eclipse.apogy.addons.sensors.fov.ui/src-gen/org/eclipse/apogy/addons/sensors/fov/ui/ApogyAddonsSensorsFOVUIPackage.java +++ b/bundles/addons/org.eclipse.apogy.addons.sensors.fov.ui/src-gen/org/eclipse/apogy/addons/sensors/fov/ui/ApogyAddonsSensorsFOVUIPackage.java
@@ -1426,6 +1426,24 @@ int FIELD_OF_VIEW_ENTRY3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = ApogyAddonsPackage.ABSTRACT_TWO_POINTS3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD_OF_VIEW_ENTRY3_DTOOL___KEY_PRESSED__CHAR = ApogyAddonsPackage.ABSTRACT_TWO_POINTS3_DTOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FIELD_OF_VIEW_ENTRY3_DTOOL___KEY_RELEASED__CHAR = ApogyAddonsPackage.ABSTRACT_TWO_POINTS3_DTOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Points Relative Pose Changed</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc -->
diff --git a/bundles/addons/org.eclipse.apogy.addons.sensors.imaging.camera.edit/src-gen-custom/org/eclipse/apogy/addons/sensors/imaging/camera/provider/LineDrawingCameraToolCustomItemProvider.java b/bundles/addons/org.eclipse.apogy.addons.sensors.imaging.camera.edit/src-gen-custom/org/eclipse/apogy/addons/sensors/imaging/camera/provider/LineDrawingCameraToolCustomItemProvider.java index 3cd636d..4d01436 100644 --- a/bundles/addons/org.eclipse.apogy.addons.sensors.imaging.camera.edit/src-gen-custom/org/eclipse/apogy/addons/sensors/imaging/camera/provider/LineDrawingCameraToolCustomItemProvider.java +++ b/bundles/addons/org.eclipse.apogy.addons.sensors.imaging.camera.edit/src-gen-custom/org/eclipse/apogy/addons/sensors/imaging/camera/provider/LineDrawingCameraToolCustomItemProvider.java
@@ -27,7 +27,7 @@ LineDrawingCameraTool tool = (LineDrawingCameraTool) object; String label = tool.getName(); - if(tool.getName() == null || tool.getName().length() == 0) label = getString("_UI_LineDrawingCameraTool_type"); + if(tool.getName() == null || tool.getName().length() == 0) label = getString("_UI_LineDrawingCameraToolMQTT_type"); else label = tool.getName(); String suffix = getSuffix(tool);
diff --git a/bundles/addons/org.eclipse.apogy.addons.vehicle/src-gen/org/eclipse/apogy/addons/vehicle/ApogyAddonsVehiclePackage.java b/bundles/addons/org.eclipse.apogy.addons.vehicle/src-gen/org/eclipse/apogy/addons/vehicle/ApogyAddonsVehiclePackage.java index 67d9555..9317b24 100644 --- a/bundles/addons/org.eclipse.apogy.addons.vehicle/src-gen/org/eclipse/apogy/addons/vehicle/ApogyAddonsVehiclePackage.java +++ b/bundles/addons/org.eclipse.apogy.addons.vehicle/src-gen/org/eclipse/apogy/addons/vehicle/ApogyAddonsVehiclePackage.java
@@ -1680,6 +1680,24 @@ int PATH_PLANNER_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = ApogyAddonsPackage.ABSTRACT_TWO_POINTS3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PATH_PLANNER_TOOL___KEY_PRESSED__CHAR = ApogyAddonsPackage.ABSTRACT_TWO_POINTS3_DTOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PATH_PLANNER_TOOL___KEY_RELEASED__CHAR = ApogyAddonsPackage.ABSTRACT_TWO_POINTS3_DTOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Points Relative Pose Changed</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2114,6 +2132,24 @@ int VEHICLE_PATH_PLANNER_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = PATH_PLANNER_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int VEHICLE_PATH_PLANNER_TOOL___KEY_PRESSED__CHAR = PATH_PLANNER_TOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int VEHICLE_PATH_PLANNER_TOOL___KEY_RELEASED__CHAR = PATH_PLANNER_TOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Points Relative Pose Changed</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2340,6 +2376,24 @@ int VEHICLE_TRAJECTORY_PICKING_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int VEHICLE_TRAJECTORY_PICKING_TOOL___KEY_PRESSED__CHAR = ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int VEHICLE_TRAJECTORY_PICKING_TOOL___KEY_RELEASED__CHAR = ApogyAddonsPackage.TRAJECTORY_PICKING_TOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Clear Active Path</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc -->
diff --git a/bundles/addons/org.eclipse.apogy.addons/model/apogy_addons.xcore b/bundles/addons/org.eclipse.apogy.addons/model/apogy_addons.xcore index 4c6fde3..17cb340 100644 --- a/bundles/addons/org.eclipse.apogy.addons/model/apogy_addons.xcore +++ b/bundles/addons/org.eclipse.apogy.addons/model/apogy_addons.xcore
@@ -161,6 +161,18 @@ * @param mouseButtonClicked The mouse button that was clicked. */ op void mouseButtonClicked(MouseButton mouseButtonClicked) + + /** + * Method called when a key is pressed while the mouse is in the 3D viewer. + * @param key The key pressed. + */ + op void keyPressed(char key) + + /** + * Method called when a key is released while the mouse is in the 3D viewer. + * @param key The key released. + */ + op void keyReleased(char key) } /**
diff --git a/bundles/addons/org.eclipse.apogy.addons/src-gen-custom/org/eclipse/apogy/addons/impl/Simple3DToolCustomImpl.java b/bundles/addons/org.eclipse.apogy.addons/src-gen-custom/org/eclipse/apogy/addons/impl/Simple3DToolCustomImpl.java index 7010b62..a92966a 100644 --- a/bundles/addons/org.eclipse.apogy.addons/src-gen-custom/org/eclipse/apogy/addons/impl/Simple3DToolCustomImpl.java +++ b/bundles/addons/org.eclipse.apogy.addons/src-gen-custom/org/eclipse/apogy/addons/impl/Simple3DToolCustomImpl.java
@@ -40,5 +40,13 @@ super.dispose(); } + + @Override + public void keyPressed(char key) { + } + + @Override + public void keyReleased(char key) { + } } // Simple3DToolImpl
diff --git a/bundles/addons/org.eclipse.apogy.addons/src-gen-custom/org/eclipse/apogy/addons/impl/TrajectoryPickingToolCustomImpl.java b/bundles/addons/org.eclipse.apogy.addons/src-gen-custom/org/eclipse/apogy/addons/impl/TrajectoryPickingToolCustomImpl.java index b71ce8f..b2e00c6 100644 --- a/bundles/addons/org.eclipse.apogy.addons/src-gen-custom/org/eclipse/apogy/addons/impl/TrajectoryPickingToolCustomImpl.java +++ b/bundles/addons/org.eclipse.apogy.addons/src-gen-custom/org/eclipse/apogy/addons/impl/TrajectoryPickingToolCustomImpl.java
@@ -32,6 +32,8 @@ import org.eclipse.apogy.common.topology.ui.NodeSelection; import org.eclipse.apogy.common.topology.ui.viewer.MouseButton; import org.eclipse.apogy.core.environment.surface.CartesianTriangularMeshMapLayerNode; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Display; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -169,6 +171,20 @@ } } } + + @Override + public void keyPressed(char key) + { + if(key == 'C' || key =='c') + { + boolean confirm = MessageDialog.openConfirm(Display.getDefault().getActiveShell(), "Clear active path", "Are you sure you want to clear the active path of tool <" + getName() + "> ?"); + if(confirm) clearActivePath(); + } + } + + @Override + public void keyReleased(char key) { + } @Override public void initialise() {
diff --git a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/ApogyAddonsPackage.java b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/ApogyAddonsPackage.java index 556f568..7994f83 100644 --- a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/ApogyAddonsPackage.java +++ b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/ApogyAddonsPackage.java
@@ -489,13 +489,31 @@ int SIMPLE3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = SIMPLE_TOOL_OPERATION_COUNT + 1; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SIMPLE3_DTOOL___KEY_PRESSED__CHAR = SIMPLE_TOOL_OPERATION_COUNT + 2; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SIMPLE3_DTOOL___KEY_RELEASED__CHAR = SIMPLE_TOOL_OPERATION_COUNT + 3; + + /** * The number of operations of the '<em>Simple3 DTool</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int SIMPLE3_DTOOL_OPERATION_COUNT = SIMPLE_TOOL_OPERATION_COUNT + 2; + int SIMPLE3_DTOOL_OPERATION_COUNT = SIMPLE_TOOL_OPERATION_COUNT + 4; /** * The meta object id for the '{@link org.eclipse.apogy.addons.impl.AbstractTwoPoints3DToolImpl <em>Abstract Two Points3 DTool</em>}' class. @@ -742,6 +760,24 @@ int ABSTRACT_TWO_POINTS3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = SIMPLE3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ABSTRACT_TWO_POINTS3_DTOOL___KEY_PRESSED__CHAR = SIMPLE3_DTOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ABSTRACT_TWO_POINTS3_DTOOL___KEY_RELEASED__CHAR = SIMPLE3_DTOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Points Relative Pose Changed</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1085,6 +1121,24 @@ int RULER3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = ABSTRACT_TWO_POINTS3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RULER3_DTOOL___KEY_PRESSED__CHAR = ABSTRACT_TWO_POINTS3_DTOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RULER3_DTOOL___KEY_RELEASED__CHAR = ABSTRACT_TWO_POINTS3_DTOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Points Relative Pose Changed</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1384,6 +1438,24 @@ int FEATURE_OF_INTEREST_PICKING_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = SIMPLE3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FEATURE_OF_INTEREST_PICKING_TOOL___KEY_PRESSED__CHAR = SIMPLE3_DTOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FEATURE_OF_INTEREST_PICKING_TOOL___KEY_RELEASED__CHAR = SIMPLE3_DTOOL___KEY_RELEASED__CHAR; + + /** * The number of operations of the '<em>Feature Of Interest Picking Tool</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1583,6 +1655,24 @@ int TRAJECTORY_PICKING_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = SIMPLE3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRAJECTORY_PICKING_TOOL___KEY_PRESSED__CHAR = SIMPLE3_DTOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRAJECTORY_PICKING_TOOL___KEY_RELEASED__CHAR = SIMPLE3_DTOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Clear Active Path</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1900,6 +1990,24 @@ int TRAJECTORY3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = SIMPLE3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRAJECTORY3_DTOOL___KEY_PRESSED__CHAR = SIMPLE3_DTOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TRAJECTORY3_DTOOL___KEY_RELEASED__CHAR = SIMPLE3_DTOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Clear Last Path Segment</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2217,6 +2325,24 @@ int ABSTRACT_PICK_LOCATION_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = SIMPLE3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ABSTRACT_PICK_LOCATION_TOOL___KEY_PRESSED__CHAR = SIMPLE3_DTOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ABSTRACT_PICK_LOCATION_TOOL___KEY_RELEASED__CHAR = SIMPLE3_DTOOL___KEY_RELEASED__CHAR; + + /** * The number of operations of the '<em>Abstract Pick Location Tool</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2534,6 +2660,24 @@ int GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = SIMPLE3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___KEY_PRESSED__CHAR = SIMPLE3_DTOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___KEY_RELEASED__CHAR = SIMPLE3_DTOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Load Geometry</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2742,6 +2886,24 @@ int ABSTRACT_URL_NODE_GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ABSTRACT_URL_NODE_GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___KEY_PRESSED__CHAR = GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ABSTRACT_URL_NODE_GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___KEY_RELEASED__CHAR = GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Load Geometry</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2986,6 +3148,24 @@ int URL_NODE_GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = ABSTRACT_URL_NODE_GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int URL_NODE_GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___KEY_PRESSED__CHAR = ABSTRACT_URL_NODE_GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int URL_NODE_GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___KEY_RELEASED__CHAR = ABSTRACT_URL_NODE_GEOMETRY_PLACEMENT_AT_FEATURE_OF_INTEREST_TOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Load Geometry</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -3260,6 +3440,26 @@ EOperation getSimple3DTool__MouseButtonClicked__MouseButton(); /** + * Returns the meta object for the '{@link org.eclipse.apogy.addons.Simple3DTool#keyPressed(char) <em>Key Pressed</em>}' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the '<em>Key Pressed</em>' operation. + * @see org.eclipse.apogy.addons.Simple3DTool#keyPressed(char) + * @generated + */ + EOperation getSimple3DTool__KeyPressed__char(); + + /** + * Returns the meta object for the '{@link org.eclipse.apogy.addons.Simple3DTool#keyReleased(char) <em>Key Released</em>}' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the '<em>Key Released</em>' operation. + * @see org.eclipse.apogy.addons.Simple3DTool#keyReleased(char) + * @generated + */ + EOperation getSimple3DTool__KeyReleased__char(); + + /** * Returns the meta object for class '{@link org.eclipse.apogy.addons.AbstractTwoPoints3DTool <em>Abstract Two Points3 DTool</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -4266,6 +4466,22 @@ EOperation SIMPLE3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = eINSTANCE.getSimple3DTool__MouseButtonClicked__MouseButton(); /** + * The meta object literal for the '<em><b>Key Pressed</b></em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EOperation SIMPLE3_DTOOL___KEY_PRESSED__CHAR = eINSTANCE.getSimple3DTool__KeyPressed__char(); + + /** + * The meta object literal for the '<em><b>Key Released</b></em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EOperation SIMPLE3_DTOOL___KEY_RELEASED__CHAR = eINSTANCE.getSimple3DTool__KeyReleased__char(); + + /** * The meta object literal for the '{@link org.eclipse.apogy.addons.impl.AbstractTwoPoints3DToolImpl <em>Abstract Two Points3 DTool</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc -->
diff --git a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/Simple3DTool.java b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/Simple3DTool.java index dc2b519..6064088 100644 --- a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/Simple3DTool.java +++ b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/Simple3DTool.java
@@ -125,5 +125,31 @@ */ void mouseButtonClicked(MouseButton mouseButtonClicked); + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * * + * Method called when a key is pressed while the mouse is in the 3D viewer. + * @param key The key pressed. + * <!-- end-model-doc --> + * @model keyUnique="false" + * @generated + */ + void keyPressed(char key); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * <!-- begin-model-doc --> + * * + * Method called when a key is released while the mouse is in the 3D viewer. + * @param key The key released. + * <!-- end-model-doc --> + * @model keyUnique="false" + * @generated + */ + void keyReleased(char key); + } // Simple3DTool
diff --git a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/ApogyAddonsPackageImpl.java b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/ApogyAddonsPackageImpl.java index 80b8160..12ce3cc 100644 --- a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/ApogyAddonsPackageImpl.java +++ b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/ApogyAddonsPackageImpl.java
@@ -519,6 +519,26 @@ * @generated */ @Override + public EOperation getSimple3DTool__KeyPressed__char() { + return simple3DToolEClass.getEOperations().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EOperation getSimple3DTool__KeyReleased__char() { + return simple3DToolEClass.getEOperations().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public EClass getAbstractTwoPoints3DTool() { return abstractTwoPoints3DToolEClass; } @@ -1317,6 +1337,8 @@ createEReference(simple3DToolEClass, SIMPLE3_DTOOL__ROOT_NODE); createEOperation(simple3DToolEClass, SIMPLE3_DTOOL___SELECTION_CHANGED__NODESELECTION); createEOperation(simple3DToolEClass, SIMPLE3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON); + createEOperation(simple3DToolEClass, SIMPLE3_DTOOL___KEY_PRESSED__CHAR); + createEOperation(simple3DToolEClass, SIMPLE3_DTOOL___KEY_RELEASED__CHAR); abstractTwoPoints3DToolEClass = createEClass(ABSTRACT_TWO_POINTS3_DTOOL); createEReference(abstractTwoPoints3DToolEClass, ABSTRACT_TWO_POINTS3_DTOOL__FROM_ABSOLUTE_POSITION); @@ -1511,6 +1533,12 @@ op = initEOperation(getSimple3DTool__MouseButtonClicked__MouseButton(), null, "mouseButtonClicked", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$ addEParameter(op, theApogyCommonTopologyUIViewerPackage.getMouseButton(), "mouseButtonClicked", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$ + op = initEOperation(getSimple3DTool__KeyPressed__char(), null, "keyPressed", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$ + addEParameter(op, theEcorePackage.getEChar(), "key", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$ + + op = initEOperation(getSimple3DTool__KeyReleased__char(), null, "keyReleased", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$ + addEParameter(op, theEcorePackage.getEChar(), "key", 0, 1, !IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$ + initEClass(abstractTwoPoints3DToolEClass, AbstractTwoPoints3DTool.class, "AbstractTwoPoints3DTool", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEReference(getAbstractTwoPoints3DTool_FromAbsolutePosition(), theApogyCommonMathPackage.getTuple3d(), null, "fromAbsolutePosition", null, 0, 1, AbstractTwoPoints3DTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ initEReference(getAbstractTwoPoints3DTool_FromRelativePosition(), theApogyCommonMathPackage.getTuple3d(), null, "fromRelativePosition", null, 0, 1, AbstractTwoPoints3DTool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ @@ -1760,6 +1788,18 @@ "documentation", "*\nMethod called upon a mouse click is detected in the 3D Viewer. Sub-classes should implement.\n@param mouseButtonClicked The mouse button that was clicked." //$NON-NLS-1$ //$NON-NLS-2$ }); addAnnotation + (getSimple3DTool__KeyPressed__char(), + source, + new String[] { + "documentation", "*\nMethod called when a key is pressed while the mouse is in the 3D viewer.\n@param key The key pressed." //$NON-NLS-1$ //$NON-NLS-2$ + }); + addAnnotation + (getSimple3DTool__KeyReleased__char(), + source, + new String[] { + "documentation", "*\nMethod called when a key is released while the mouse is in the 3D viewer.\n@param key The key released." //$NON-NLS-1$ //$NON-NLS-2$ + }); + addAnnotation (getSimple3DTool_Visible(), source, new String[] {
diff --git a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/Simple3DToolImpl.java b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/Simple3DToolImpl.java index 39265af..46cab6b 100644 --- a/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/Simple3DToolImpl.java +++ b/bundles/addons/org.eclipse.apogy.addons/src-gen/org/eclipse/apogy/addons/impl/Simple3DToolImpl.java
@@ -192,6 +192,30 @@ * @generated */ @Override + public void keyPressed(char key) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void keyReleased(char key) { + // TODO: implement this method + // Ensure that you remove @generated or mark it @generated NOT + throw new UnsupportedOperationException(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case ApogyAddonsPackage.SIMPLE3_DTOOL__VISIBLE: @@ -269,6 +293,12 @@ case ApogyAddonsPackage.SIMPLE3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON: mouseButtonClicked((MouseButton)arguments.get(0)); return null; + case ApogyAddonsPackage.SIMPLE3_DTOOL___KEY_PRESSED__CHAR: + keyPressed((Character)arguments.get(0)); + return null; + case ApogyAddonsPackage.SIMPLE3_DTOOL___KEY_RELEASED__CHAR: + keyReleased((Character)arguments.get(0)); + return null; } return super.eInvoke(operationID, arguments); }
diff --git a/bundles/addons/org.eclipse.apogy.addons/src/org/eclipse/apogy/addons/TopologyViewerListenerManager.java b/bundles/addons/org.eclipse.apogy.addons/src/org/eclipse/apogy/addons/TopologyViewerListenerManager.java index 7d4d352..46b719c 100644 --- a/bundles/addons/org.eclipse.apogy.addons/src/org/eclipse/apogy/addons/TopologyViewerListenerManager.java +++ b/bundles/addons/org.eclipse.apogy.addons/src/org/eclipse/apogy/addons/TopologyViewerListenerManager.java
@@ -132,6 +132,32 @@ } } + protected void notifynotifyAllSimple3DToolkeyPressed(char key) + { + for (Simple3DTool tool : this.simple3DTools) { + try { + if (tool.isActive()) { + tool.keyPressed(key); + } + } catch (Throwable t) { + Logger.error(t.getMessage(), t); + } + } + } + + protected void notifynotifyAllSimple3DToolkeyReleased(char key) + { + for (Simple3DTool tool : this.simple3DTools) { + try { + if (tool.isActive()) { + tool.keyReleased(key); + } + } catch (Throwable t) { + Logger.error(t.getMessage(), t); + } + } + } + protected Adapter getTopologyViewerRegistryAdapter() { if (this.topologyViewerRegistryAdapter == null) { this.topologyViewerRegistryAdapter = new AdapterImpl() { @@ -158,6 +184,14 @@ } break; + + case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_PRESSED: + notifynotifyAllSimple3DToolkeyPressed(msg.getNewCharValue()); + break; + + case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_RELEASED: + notifynotifyAllSimple3DToolkeyReleased(msg.getNewCharValue()); + break; default: break;
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.jme3/src/org/eclipse/apogy/common/topology/ui/jme3/JME3Application.java b/bundles/common/org.eclipse.apogy.common.topology.ui.jme3/src/org/eclipse/apogy/common/topology/ui/jme3/JME3Application.java index c98df24..b500893 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.jme3/src/org/eclipse/apogy/common/topology/ui/jme3/JME3Application.java +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.jme3/src/org/eclipse/apogy/common/topology/ui/jme3/JME3Application.java
@@ -21,6 +21,7 @@ package org.eclipse.apogy.common.topology.ui.jme3; import java.awt.Frame; +import java.awt.event.KeyEvent; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.Iterator; @@ -41,8 +42,11 @@ import org.eclipse.swt.awt.SWT_AWT; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.FocusListener; +import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -58,7 +62,6 @@ import com.jme3.system.JmeContext; import com.jme3.system.lwjgl.LwjglCanvas; -//FIXME Is it a test or a Apogy asset. public class JME3Application extends SimpleApplication { private static final Logger Logger = LoggerFactory.getLogger(JME3Application.class); @@ -81,7 +84,7 @@ private CreateSceneGraphHTMLActionListener createSceneGraphHTMLActionListener; private MousePickListener mousePickListener; private MouseClickListener mouseClickListener; - + private final DirectionalLight skyLight = new DirectionalLight(); private final List<Light> lights = new ArrayList<Light>(); @@ -129,13 +132,98 @@ } }); + this.jme3awtFrame = SWT_AWT.new_Frame(this.jme3Window); this.jme3awtFrame.add(canvas.getCanvas()); - + + // DEBUG + this.jme3awtFrame.addKeyListener(new java.awt.event.KeyListener() { + + @Override + public void keyTyped(KeyEvent e) { + } + + @Override + public void keyReleased(KeyEvent e) + { + final char keyPressed = e.getKeyChar(); + + Display.getDefault().asyncExec(new Runnable() { + + @Override + public void run() + { + if(isMouseInside()) + { + JME3Application.this.keyReleased(keyPressed); + } + } + }); + } + + @Override + public void keyPressed(KeyEvent e) + { + final char keyPressed = e.getKeyChar(); + + Display.getDefault().asyncExec(new Runnable() { + + @Override + public void run() + { + if(isMouseInside()) + { + JME3Application.this.keyPressed(keyPressed); + } + } + }); + } + + private boolean isMouseInside() + { + Control focusControl = Display.getCurrent().getFocusControl(); + + if(isParent(focusControl, parent)) + { + Point cursorLocation = jme3Window.getShell().getDisplay().getCursorLocation(); + Point position = Display.getCurrent().getFocusControl().toControl(cursorLocation); + return jme3Window.getClientArea().contains(position); + } + return false; + } + + private boolean isParent(Control control, Composite parent) + { + boolean result = false; + Control c = parent; + + while(c != null && !result) + { + result = (c == control); + c = c.getParent(); + } + + return result; + } + }); + + // Focusable needs to be disabled since is enabled, the 3D viewer does not relinquish focus in some cases. canvas.getCanvas().setFocusable(false); setShowStatisticsEnabled(false); } + public void keyPressed(char key) + { + System.out.println("keyPressed " + key); + getJMERenderEngineDelegate() .getTopologyViewer().keyPressed(key); + } + + public void keyReleased(char key) + { + System.out.println("keyReleased " + key); + getJMERenderEngineDelegate() .getTopologyViewer().keyReleased(key); + } + public void setJMERenderEngineDelegate(JME3RenderEngineDelegate jme3RenderEngineDelegate) { this.jme3RenderEngineDelegate = jme3RenderEngineDelegate; }
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.jme3/src/org/eclipse/apogy/common/topology/ui/jme3/JME3RenderEngineDelegate.java b/bundles/common/org.eclipse.apogy.common.topology.ui.jme3/src/org/eclipse/apogy/common/topology/ui/jme3/JME3RenderEngineDelegate.java index 354a1a6..aa4f829 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.jme3/src/org/eclipse/apogy/common/topology/ui/jme3/JME3RenderEngineDelegate.java +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.jme3/src/org/eclipse/apogy/common/topology/ui/jme3/JME3RenderEngineDelegate.java
@@ -47,6 +47,8 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -79,7 +81,7 @@ Composite top = new Composite(parent, SWT.NONE); top.setLayout(new FillLayout()); - + this.jme3Application = createJME3Application(top); return top;
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer.edit/bundle.properties b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer.edit/bundle.properties index 4be68f9..1999609 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer.edit/bundle.properties +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer.edit/bundle.properties
@@ -225,3 +225,5 @@ _UI_MouseButton_RIGHT_literal = RIGHT pluginName = Apogy Common Topology Viewer Edit pluginName = Apogy Common Topology Viewer Edit +_UI_TopologyViewerRegistry_lastKeyPressed_feature = Last Key Pressed +_UI_TopologyViewerRegistry_lastKeyReleased_feature = Last Key Released
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer.edit/src-gen/org/eclipse/apogy/common/topology/ui/viewer/provider/TopologyViewerRegistryItemProvider.java b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer.edit/src-gen/org/eclipse/apogy/common/topology/ui/viewer/provider/TopologyViewerRegistryItemProvider.java index c26731a..d5dcd6e 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer.edit/src-gen/org/eclipse/apogy/common/topology/ui/viewer/provider/TopologyViewerRegistryItemProvider.java +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer.edit/src-gen/org/eclipse/apogy/common/topology/ui/viewer/provider/TopologyViewerRegistryItemProvider.java
@@ -76,6 +76,8 @@ addITopologyViewersPropertyDescriptor(object); addLatestNodeSelectionPropertyDescriptor(object); addLatestMouseButtonClikedPropertyDescriptor(object); + addLastKeyPressedPropertyDescriptor(object); + addLastKeyReleasedPropertyDescriptor(object); } return itemPropertyDescriptors; } @@ -147,6 +149,50 @@ } /** + * This adds a property descriptor for the Last Key Pressed feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addLastKeyPressedPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_TopologyViewerRegistry_lastKeyPressed_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_TopologyViewerRegistry_lastKeyPressed_feature", "_UI_TopologyViewerRegistry_type"), + ApogyCommonTopologyUIViewerPackage.Literals.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_PRESSED, + true, + false, + false, + ItemPropertyDescriptor.TEXT_VALUE_IMAGE, + null, + null)); + } + + /** + * This adds a property descriptor for the Last Key Released feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addLastKeyReleasedPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_TopologyViewerRegistry_lastKeyReleased_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_TopologyViewerRegistry_lastKeyReleased_feature", "_UI_TopologyViewerRegistry_type"), + ApogyCommonTopologyUIViewerPackage.Literals.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_RELEASED, + true, + false, + false, + ItemPropertyDescriptor.TEXT_VALUE_IMAGE, + null, + null)); + } + + /** * This returns TopologyViewerRegistry.gif. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -187,6 +233,8 @@ switch (notification.getFeatureID(TopologyViewerRegistry.class)) { case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__ITOPOLOGY_VIEWERS: case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LATEST_MOUSE_BUTTON_CLIKED: + case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_PRESSED: + case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_RELEASED: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; }
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/model/apogy_common_topology_ui_viewer.xcore b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/model/apogy_common_topology_ui_viewer.xcore index 208980e..d7ebf6e 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/model/apogy_common_topology_ui_viewer.xcore +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/model/apogy_common_topology_ui_viewer.xcore
@@ -45,6 +45,7 @@ type ITopologyViewer wraps org.eclipse.apogy.common.topology.ui.viewer.ITopologyViewer + /** * A register of Topology Viewer. It keeps track of Node Selection made and mouse button clicked. */ @@ -66,6 +67,10 @@ */ MouseButton latestMouseButtonCliked + char lastKeyPressed + + char lastKeyReleased + /** * Adds a topology viewer to this registry. * @param iTopologyViewer The topology viewer to register.
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen-custom/org/eclipse/apogy/common/topology/ui/viewer/impl/TopologyViewerRegistryCustomImpl.java b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen-custom/org/eclipse/apogy/common/topology/ui/viewer/impl/TopologyViewerRegistryCustomImpl.java index bee5df2..96f7f92 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen-custom/org/eclipse/apogy/common/topology/ui/viewer/impl/TopologyViewerRegistryCustomImpl.java +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen-custom/org/eclipse/apogy/common/topology/ui/viewer/impl/TopologyViewerRegistryCustomImpl.java
@@ -59,15 +59,29 @@ } private ITopologyViewerListener getTopologyViewerListener() { - if (this.topologyViewerListener == null) { + if (this.topologyViewerListener == null) + { this.topologyViewerListener = new ITopologyViewerListener() { @Override - public void mouseClicked(MouseButton button) { + public void mouseClicked(MouseButton button) + { setLatestMouseButtonCliked(button); } @Override + public void keyPressed(char key) + { + setLastKeyPressed(key); + } + + @Override + public void keyReleased(char key) + { + setLastKeyReleased(key); + } + + @Override public void busyChanged(boolean oldBusy, boolean newBusy) { }
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/ApogyCommonTopologyUIViewerPackage.java b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/ApogyCommonTopologyUIViewerPackage.java index f77c7d7..3b8c38a 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/ApogyCommonTopologyUIViewerPackage.java +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/ApogyCommonTopologyUIViewerPackage.java
@@ -111,13 +111,31 @@ int TOPOLOGY_VIEWER_REGISTRY__LATEST_MOUSE_BUTTON_CLIKED = 2; /** + * The feature id for the '<em><b>Last Key Pressed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_PRESSED = 3; + + /** + * The feature id for the '<em><b>Last Key Released</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_RELEASED = 4; + + /** * The number of structural features of the '<em>Topology Viewer Registry</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int TOPOLOGY_VIEWER_REGISTRY_FEATURE_COUNT = 3; + int TOPOLOGY_VIEWER_REGISTRY_FEATURE_COUNT = 5; /** * The operation id for the '<em>Register ITopology Viewer</em>' operation. @@ -211,6 +229,28 @@ EAttribute getTopologyViewerRegistry_LatestMouseButtonCliked(); /** + * Returns the meta object for the attribute '{@link org.eclipse.apogy.common.topology.ui.viewer.TopologyViewerRegistry#getLastKeyPressed <em>Last Key Pressed</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Last Key Pressed</em>'. + * @see org.eclipse.apogy.common.topology.ui.viewer.TopologyViewerRegistry#getLastKeyPressed() + * @see #getTopologyViewerRegistry() + * @generated + */ + EAttribute getTopologyViewerRegistry_LastKeyPressed(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.apogy.common.topology.ui.viewer.TopologyViewerRegistry#getLastKeyReleased <em>Last Key Released</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Last Key Released</em>'. + * @see org.eclipse.apogy.common.topology.ui.viewer.TopologyViewerRegistry#getLastKeyReleased() + * @see #getTopologyViewerRegistry() + * @generated + */ + EAttribute getTopologyViewerRegistry_LastKeyReleased(); + + /** * Returns the meta object for the '{@link org.eclipse.apogy.common.topology.ui.viewer.TopologyViewerRegistry#registerITopologyViewer(org.eclipse.apogy.common.topology.ui.viewer.ITopologyViewer) <em>Register ITopology Viewer</em>}' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -309,6 +349,22 @@ EAttribute TOPOLOGY_VIEWER_REGISTRY__LATEST_MOUSE_BUTTON_CLIKED = eINSTANCE.getTopologyViewerRegistry_LatestMouseButtonCliked(); /** + * The meta object literal for the '<em><b>Last Key Pressed</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_PRESSED = eINSTANCE.getTopologyViewerRegistry_LastKeyPressed(); + + /** + * The meta object literal for the '<em><b>Last Key Released</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_RELEASED = eINSTANCE.getTopologyViewerRegistry_LastKeyReleased(); + + /** * The meta object literal for the '<em><b>Register ITopology Viewer</b></em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc -->
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/TopologyViewerRegistry.java b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/TopologyViewerRegistry.java index 6038420..faaa878 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/TopologyViewerRegistry.java +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/TopologyViewerRegistry.java
@@ -39,6 +39,8 @@ * <li>{@link org.eclipse.apogy.common.topology.ui.viewer.TopologyViewerRegistry#getITopologyViewers <em>ITopology Viewers</em>}</li> * <li>{@link org.eclipse.apogy.common.topology.ui.viewer.TopologyViewerRegistry#getLatestNodeSelection <em>Latest Node Selection</em>}</li> * <li>{@link org.eclipse.apogy.common.topology.ui.viewer.TopologyViewerRegistry#getLatestMouseButtonCliked <em>Latest Mouse Button Cliked</em>}</li> + * <li>{@link org.eclipse.apogy.common.topology.ui.viewer.TopologyViewerRegistry#getLastKeyPressed <em>Last Key Pressed</em>}</li> + * <li>{@link org.eclipse.apogy.common.topology.ui.viewer.TopologyViewerRegistry#getLastKeyReleased <em>Last Key Released</em>}</li> * </ul> * * @see org.eclipse.apogy.common.topology.ui.viewer.ApogyCommonTopologyUIViewerPackage#getTopologyViewerRegistry() @@ -118,6 +120,50 @@ void setLatestMouseButtonCliked(MouseButton value); /** + * Returns the value of the '<em><b>Last Key Pressed</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Last Key Pressed</em>' attribute. + * @see #setLastKeyPressed(char) + * @see org.eclipse.apogy.common.topology.ui.viewer.ApogyCommonTopologyUIViewerPackage#getTopologyViewerRegistry_LastKeyPressed() + * @model unique="false" + * @generated + */ + char getLastKeyPressed(); + + /** + * Sets the value of the '{@link org.eclipse.apogy.common.topology.ui.viewer.TopologyViewerRegistry#getLastKeyPressed <em>Last Key Pressed</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Last Key Pressed</em>' attribute. + * @see #getLastKeyPressed() + * @generated + */ + void setLastKeyPressed(char value); + + /** + * Returns the value of the '<em><b>Last Key Released</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the value of the '<em>Last Key Released</em>' attribute. + * @see #setLastKeyReleased(char) + * @see org.eclipse.apogy.common.topology.ui.viewer.ApogyCommonTopologyUIViewerPackage#getTopologyViewerRegistry_LastKeyReleased() + * @model unique="false" + * @generated + */ + char getLastKeyReleased(); + + /** + * Sets the value of the '{@link org.eclipse.apogy.common.topology.ui.viewer.TopologyViewerRegistry#getLastKeyReleased <em>Last Key Released</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Last Key Released</em>' attribute. + * @see #getLastKeyReleased() + * @generated + */ + void setLastKeyReleased(char value); + + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * <!-- begin-model-doc -->
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/impl/ApogyCommonTopologyUIViewerPackageImpl.java b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/impl/ApogyCommonTopologyUIViewerPackageImpl.java index 81da02e..6b766c8 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/impl/ApogyCommonTopologyUIViewerPackageImpl.java +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/impl/ApogyCommonTopologyUIViewerPackageImpl.java
@@ -122,9 +122,9 @@ // Initialize simple dependencies ApogyCommonTopologyUIPackage.eINSTANCE.eClass(); + EcorePackage.eINSTANCE.eClass(); ApogyCommonTopologyPackage.eINSTANCE.eClass(); ApogyCommonEMFUIPackage.eINSTANCE.eClass(); - EcorePackage.eINSTANCE.eClass(); ApogyCommonMathPackage.eINSTANCE.eClass(); ApogyCommonEMFPackage.eINSTANCE.eClass(); ApogyCommonEMFUiEMFFormsPackage.eINSTANCE.eClass(); @@ -189,6 +189,26 @@ * @generated */ @Override + public EAttribute getTopologyViewerRegistry_LastKeyPressed() { + return (EAttribute)topologyViewerRegistryEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EAttribute getTopologyViewerRegistry_LastKeyReleased() { + return (EAttribute)topologyViewerRegistryEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public EOperation getTopologyViewerRegistry__RegisterITopologyViewer__ITopologyViewer() { return topologyViewerRegistryEClass.getEOperations().get(0); } @@ -256,6 +276,8 @@ createEAttribute(topologyViewerRegistryEClass, TOPOLOGY_VIEWER_REGISTRY__ITOPOLOGY_VIEWERS); createEReference(topologyViewerRegistryEClass, TOPOLOGY_VIEWER_REGISTRY__LATEST_NODE_SELECTION); createEAttribute(topologyViewerRegistryEClass, TOPOLOGY_VIEWER_REGISTRY__LATEST_MOUSE_BUTTON_CLIKED); + createEAttribute(topologyViewerRegistryEClass, TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_PRESSED); + createEAttribute(topologyViewerRegistryEClass, TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_RELEASED); createEOperation(topologyViewerRegistryEClass, TOPOLOGY_VIEWER_REGISTRY___REGISTER_ITOPOLOGY_VIEWER__ITOPOLOGYVIEWER); createEOperation(topologyViewerRegistryEClass, TOPOLOGY_VIEWER_REGISTRY___UN_REGISTER_ITOPOLOGY_VIEWER__ITOPOLOGYVIEWER); @@ -291,6 +313,7 @@ // Obtain other dependent packages ApogyCommonTopologyUIPackage theApogyCommonTopologyUIPackage = (ApogyCommonTopologyUIPackage)EPackage.Registry.INSTANCE.getEPackage(ApogyCommonTopologyUIPackage.eNS_URI); + EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI); // Create type parameters @@ -303,6 +326,8 @@ initEAttribute(getTopologyViewerRegistry_ITopologyViewers(), this.getITopologyViewer(), "iTopologyViewers", null, 0, -1, TopologyViewerRegistry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getTopologyViewerRegistry_LatestNodeSelection(), theApogyCommonTopologyUIPackage.getNodeSelection(), null, "latestNodeSelection", null, 0, 1, TopologyViewerRegistry.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getTopologyViewerRegistry_LatestMouseButtonCliked(), this.getMouseButton(), "latestMouseButtonCliked", null, 0, 1, TopologyViewerRegistry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getTopologyViewerRegistry_LastKeyPressed(), theEcorePackage.getEChar(), "lastKeyPressed", null, 0, 1, TopologyViewerRegistry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getTopologyViewerRegistry_LastKeyReleased(), theEcorePackage.getEChar(), "lastKeyReleased", null, 0, 1, TopologyViewerRegistry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); EOperation op = initEOperation(getTopologyViewerRegistry__RegisterITopologyViewer__ITopologyViewer(), null, "registerITopologyViewer", 0, 1, !IS_UNIQUE, IS_ORDERED); addEParameter(op, this.getITopologyViewer(), "iTopologyViewer", 0, 1, !IS_UNIQUE, IS_ORDERED);
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/impl/TopologyViewerRegistryImpl.java b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/impl/TopologyViewerRegistryImpl.java index 44453ba..9eaca6b 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/impl/TopologyViewerRegistryImpl.java +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src-gen/org/eclipse/apogy/common/topology/ui/viewer/impl/TopologyViewerRegistryImpl.java
@@ -50,6 +50,8 @@ * <li>{@link org.eclipse.apogy.common.topology.ui.viewer.impl.TopologyViewerRegistryImpl#getITopologyViewers <em>ITopology Viewers</em>}</li> * <li>{@link org.eclipse.apogy.common.topology.ui.viewer.impl.TopologyViewerRegistryImpl#getLatestNodeSelection <em>Latest Node Selection</em>}</li> * <li>{@link org.eclipse.apogy.common.topology.ui.viewer.impl.TopologyViewerRegistryImpl#getLatestMouseButtonCliked <em>Latest Mouse Button Cliked</em>}</li> + * <li>{@link org.eclipse.apogy.common.topology.ui.viewer.impl.TopologyViewerRegistryImpl#getLastKeyPressed <em>Last Key Pressed</em>}</li> + * <li>{@link org.eclipse.apogy.common.topology.ui.viewer.impl.TopologyViewerRegistryImpl#getLastKeyReleased <em>Last Key Released</em>}</li> * </ul> * * @generated @@ -96,6 +98,46 @@ protected MouseButton latestMouseButtonCliked = LATEST_MOUSE_BUTTON_CLIKED_EDEFAULT; /** + * The default value of the '{@link #getLastKeyPressed() <em>Last Key Pressed</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastKeyPressed() + * @generated + * @ordered + */ + protected static final char LAST_KEY_PRESSED_EDEFAULT = '\u0000'; + + /** + * The cached value of the '{@link #getLastKeyPressed() <em>Last Key Pressed</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastKeyPressed() + * @generated + * @ordered + */ + protected char lastKeyPressed = LAST_KEY_PRESSED_EDEFAULT; + + /** + * The default value of the '{@link #getLastKeyReleased() <em>Last Key Released</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastKeyReleased() + * @generated + * @ordered + */ + protected static final char LAST_KEY_RELEASED_EDEFAULT = '\u0000'; + + /** + * The cached value of the '{@link #getLastKeyReleased() <em>Last Key Released</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastKeyReleased() + * @generated + * @ordered + */ + protected char lastKeyReleased = LAST_KEY_RELEASED_EDEFAULT; + + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -196,6 +238,52 @@ * @generated */ @Override + public char getLastKeyPressed() { + return lastKeyPressed; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setLastKeyPressed(char newLastKeyPressed) { + char oldLastKeyPressed = lastKeyPressed; + lastKeyPressed = newLastKeyPressed; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_PRESSED, oldLastKeyPressed, lastKeyPressed)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public char getLastKeyReleased() { + return lastKeyReleased; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setLastKeyReleased(char newLastKeyReleased) { + char oldLastKeyReleased = lastKeyReleased; + lastKeyReleased = newLastKeyReleased; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_RELEASED, oldLastKeyReleased, lastKeyReleased)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public void registerITopologyViewer(ITopologyViewer iTopologyViewer) { // TODO: implement this method // Ensure that you remove @generated or mark it @generated NOT @@ -229,6 +317,10 @@ return basicGetLatestNodeSelection(); case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LATEST_MOUSE_BUTTON_CLIKED: return getLatestMouseButtonCliked(); + case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_PRESSED: + return getLastKeyPressed(); + case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_RELEASED: + return getLastKeyReleased(); } return super.eGet(featureID, resolve, coreType); } @@ -252,6 +344,12 @@ case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LATEST_MOUSE_BUTTON_CLIKED: setLatestMouseButtonCliked((MouseButton)newValue); return; + case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_PRESSED: + setLastKeyPressed((Character)newValue); + return; + case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_RELEASED: + setLastKeyReleased((Character)newValue); + return; } super.eSet(featureID, newValue); } @@ -273,6 +371,12 @@ case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LATEST_MOUSE_BUTTON_CLIKED: setLatestMouseButtonCliked(LATEST_MOUSE_BUTTON_CLIKED_EDEFAULT); return; + case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_PRESSED: + setLastKeyPressed(LAST_KEY_PRESSED_EDEFAULT); + return; + case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_RELEASED: + setLastKeyReleased(LAST_KEY_RELEASED_EDEFAULT); + return; } super.eUnset(featureID); } @@ -291,6 +395,10 @@ return latestNodeSelection != null; case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LATEST_MOUSE_BUTTON_CLIKED: return latestMouseButtonCliked != LATEST_MOUSE_BUTTON_CLIKED_EDEFAULT; + case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_PRESSED: + return lastKeyPressed != LAST_KEY_PRESSED_EDEFAULT; + case ApogyCommonTopologyUIViewerPackage.TOPOLOGY_VIEWER_REGISTRY__LAST_KEY_RELEASED: + return lastKeyReleased != LAST_KEY_RELEASED_EDEFAULT; } return super.eIsSet(featureID); } @@ -327,6 +435,10 @@ result.append(iTopologyViewers); result.append(", latestMouseButtonCliked: "); result.append(latestMouseButtonCliked); + result.append(", lastKeyPressed: "); + result.append(lastKeyPressed); + result.append(", lastKeyReleased: "); + result.append(lastKeyReleased); result.append(')'); return result.toString(); }
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src/org/eclipse/apogy/common/topology/ui/viewer/ITopologyViewer.java b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src/org/eclipse/apogy/common/topology/ui/viewer/ITopologyViewer.java index 741e2ad..4a19259 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src/org/eclipse/apogy/common/topology/ui/viewer/ITopologyViewer.java +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src/org/eclipse/apogy/common/topology/ui/viewer/ITopologyViewer.java
@@ -178,6 +178,11 @@ */ public void mouseClicked(MouseButton button); + public void keyPressed(char key); + + public void keyReleased(char key); + + /** * Dispose of this ITopologyViewer. */
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src/org/eclipse/apogy/common/topology/ui/viewer/ITopologyViewerListener.java b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src/org/eclipse/apogy/common/topology/ui/viewer/ITopologyViewerListener.java index 141e752..3a63bd1 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src/org/eclipse/apogy/common/topology/ui/viewer/ITopologyViewerListener.java +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src/org/eclipse/apogy/common/topology/ui/viewer/ITopologyViewerListener.java
@@ -17,6 +17,8 @@ public interface ITopologyViewerListener { public void mouseClicked(MouseButton button); + public void keyPressed(char key); + public void keyReleased(char key); public void busyChanged(boolean oldBusy, boolean newBusy); public void antiAliasingChanged(boolean oldAntiAliasing, boolean newAntiAliasing); }
diff --git a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src/org/eclipse/apogy/common/topology/ui/viewer/TopologyViewer.java b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src/org/eclipse/apogy/common/topology/ui/viewer/TopologyViewer.java index 9762403..bf6a396 100644 --- a/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src/org/eclipse/apogy/common/topology/ui/viewer/TopologyViewer.java +++ b/bundles/common/org.eclipse.apogy.common.topology.ui.viewer/src/org/eclipse/apogy/common/topology/ui/viewer/TopologyViewer.java
@@ -320,6 +320,18 @@ } @Override + public void keyPressed(char key) + { + fireKeyPressed(key); + } + + @Override + public void keyReleased(char key) + { + fireKeyReleased(key); + } + + @Override public void dispose() { org.eclipse.apogy.common.topology.ui.viewer.Activator.getDefault().getPreferenceStore() .removePropertyChangeListener(getPropertyChangeListener()); @@ -463,6 +475,33 @@ } } + protected void fireKeyPressed(final char key) { + for (ITopologyViewerListener listener : this.topologyViewerListeners) { + final ITopologyViewerListener l = listener; + SafeRunnable.run(new SafeRunnable() { + @Override + public void run() { + if (l != null) + l.keyPressed(key);; + } + }); + } + } + + protected void fireKeyReleased(final char key) { + for (ITopologyViewerListener listener : this.topologyViewerListeners) { + final ITopologyViewerListener l = listener; + SafeRunnable.run(new SafeRunnable() { + @Override + public void run() { + if (l != null) + l.keyReleased(key); + } + }); + } + } + + /** * Method used to signal to all ITopologyViewerListener a change in the busy * value.
diff --git a/bundles/core/org.eclipse.apogy.core.environment.earth.surface.orbit.ui/src-gen/org/eclipse/apogy/core/environment/earth/surface/orbit/ui/ApogyEarthSurfaceOrbitEnvironmentUIPackage.java b/bundles/core/org.eclipse.apogy.core.environment.earth.surface.orbit.ui/src-gen/org/eclipse/apogy/core/environment/earth/surface/orbit/ui/ApogyEarthSurfaceOrbitEnvironmentUIPackage.java index 2c1849b..c637b8f 100644 --- a/bundles/core/org.eclipse.apogy.core.environment.earth.surface.orbit.ui/src-gen/org/eclipse/apogy/core/environment/earth/surface/orbit/ui/ApogyEarthSurfaceOrbitEnvironmentUIPackage.java +++ b/bundles/core/org.eclipse.apogy.core.environment.earth.surface.orbit.ui/src-gen/org/eclipse/apogy/core/environment/earth/surface/orbit/ui/ApogyEarthSurfaceOrbitEnvironmentUIPackage.java
@@ -265,6 +265,24 @@ int EARTH_ORBIT_MODEL_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = ApogyAddonsPackage.SIMPLE3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EARTH_ORBIT_MODEL_TOOL___KEY_PRESSED__CHAR = ApogyAddonsPackage.SIMPLE3_DTOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EARTH_ORBIT_MODEL_TOOL___KEY_RELEASED__CHAR = ApogyAddonsPackage.SIMPLE3_DTOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Get Default Auto Update Enabled</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -518,6 +536,24 @@ int EARTH_ORBITING_SPACECRAFT_LOCATION_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = EARTH_ORBIT_MODEL_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EARTH_ORBITING_SPACECRAFT_LOCATION_TOOL___KEY_PRESSED__CHAR = EARTH_ORBIT_MODEL_TOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EARTH_ORBITING_SPACECRAFT_LOCATION_TOOL___KEY_RELEASED__CHAR = EARTH_ORBIT_MODEL_TOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Get Default Auto Update Enabled</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -871,6 +907,24 @@ int EARTH_ORBIT_MODEL_PASS_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = EARTH_ORBIT_MODEL_TOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EARTH_ORBIT_MODEL_PASS_TOOL___KEY_PRESSED__CHAR = EARTH_ORBIT_MODEL_TOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int EARTH_ORBIT_MODEL_PASS_TOOL___KEY_RELEASED__CHAR = EARTH_ORBIT_MODEL_TOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Get Default Auto Update Enabled</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc -->
diff --git a/bundles/core/org.eclipse.apogy.core.environment.earth.surface.ui/src-gen/org/eclipse/apogy/core/environment/earth/surface/ui/ApogyCoreEnvironmentSurfaceEarthUIPackage.java b/bundles/core/org.eclipse.apogy.core.environment.earth.surface.ui/src-gen/org/eclipse/apogy/core/environment/earth/surface/ui/ApogyCoreEnvironmentSurfaceEarthUIPackage.java index 8006148..ef5db92 100644 --- a/bundles/core/org.eclipse.apogy.core.environment.earth.surface.ui/src-gen/org/eclipse/apogy/core/environment/earth/surface/ui/ApogyCoreEnvironmentSurfaceEarthUIPackage.java +++ b/bundles/core/org.eclipse.apogy.core.environment.earth.surface.ui/src-gen/org/eclipse/apogy/core/environment/earth/surface/ui/ApogyCoreEnvironmentSurfaceEarthUIPackage.java
@@ -1034,6 +1034,24 @@ int SUN_VECTOR3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON = ApogyAddonsPackage.ABSTRACT_TWO_POINTS3_DTOOL___MOUSE_BUTTON_CLICKED__MOUSEBUTTON; /** + * The operation id for the '<em>Key Pressed</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SUN_VECTOR3_DTOOL___KEY_PRESSED__CHAR = ApogyAddonsPackage.ABSTRACT_TWO_POINTS3_DTOOL___KEY_PRESSED__CHAR; + + /** + * The operation id for the '<em>Key Released</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SUN_VECTOR3_DTOOL___KEY_RELEASED__CHAR = ApogyAddonsPackage.ABSTRACT_TWO_POINTS3_DTOOL___KEY_RELEASED__CHAR; + + /** * The operation id for the '<em>Points Relative Pose Changed</em>' operation. * <!-- begin-user-doc --> * <!-- end-user-doc -->
diff --git a/bundles/core/org.eclipse.apogy.core.topology.ui/src/org/eclipse/apogy/core/topology/ui/parts/AbstractApogy3dPart.java b/bundles/core/org.eclipse.apogy.core.topology.ui/src/org/eclipse/apogy/core/topology/ui/parts/AbstractApogy3dPart.java index 898f7ec..3768a3d 100644 --- a/bundles/core/org.eclipse.apogy.core.topology.ui/src/org/eclipse/apogy/core/topology/ui/parts/AbstractApogy3dPart.java +++ b/bundles/core/org.eclipse.apogy.core.topology.ui/src/org/eclipse/apogy/core/topology/ui/parts/AbstractApogy3dPart.java
@@ -172,7 +172,7 @@ } }; } - + parent.addDisposeListener(new DisposeListener() { @Override @@ -188,40 +188,6 @@ } }); } - -// @Override -// protected void createContentComposite(Composite parent, int style) { -// if (activeAbstractApogy3dPartMPart == null) { -// JME3RenderEngineDelegate jme3RenderEngineDelegate = createJME3RenderEngineDelegate(); -// this.topologyViewer = new TopologyViewer(parent, jme3RenderEngineDelegate); -// -// jme3RenderEngineDelegate.setMaximumFrameRate(this.topologyViewer.getMaximumFrameRate()); -// jme3RenderEngineDelegate.setAntiAliasing(this.topologyViewer.isAntiAliasingEnabled()); -// jme3RenderEngineDelegate.setShowStatisticsEnabled(this.topologyViewer.isShowStatisticsEnabled()); -// -// // Listens for selection in the 3D viewer. -// org.eclipse.apogy.common.topology.ui.viewer.Activator.getTopologyViewerRegistry().eAdapters() -// .add(getTopologyTopologyViewerRegistryAdapter()); -// -// setActiveViewPoint(this.abstractViewPoint); -// -// activeAbstractApogy3dPartMPart = this.mPart; -// } else { -// new NoContentComposite(parent, SWT.None) { -// @Override -// protected String getMessage() { -// MPerspective mPerspective = AbstractApogy3dPart.this.modelService -// .getPerspectiveFor(activeAbstractApogy3dPartMPart); -// -// String partLabel = activeAbstractApogy3dPartMPart.getLabel(); -// String elementId = mPerspective.getLabel(); -// -// return "3D Viewer is already instanciated in part <" + partLabel + "> in the perspective named <" -// + elementId + "> !"; -// } -// }; -// } -// } @PersistState public void userPersistState(MPart mPart)