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)