[206635] Key bindings
diff --git a/plugins/org.eclipse.wst.server.ui/plugin.xml b/plugins/org.eclipse.wst.server.ui/plugin.xml
index 60ea462..3e5c984 100644
--- a/plugins/org.eclipse.wst.server.ui/plugin.xml
+++ b/plugins/org.eclipse.wst.server.ui/plugin.xml
@@ -380,6 +380,12 @@
categoryId="org.eclipse.wst.server.ui"
defaultHandler="org.eclipse.wst.server.ui.internal.view.servers.ServerActionHandler"/>
<command
+ id="org.eclipse.wst.server.stop"
+ name="%actionStop"
+ description="%actionStopDescription"
+ categoryId="org.eclipse.wst.server.ui"
+ defaultHandler="org.eclipse.wst.server.ui.internal.view.servers.ServerActionHandler"/>
+ <command
id="org.eclipse.wst.server.publish"
name="%actionPublish"
description="%actionPublishDescription"
@@ -425,6 +431,11 @@
commandId="org.eclipse.wst.server.debug"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
<key
+ sequence="M1+M3+S"
+ contextId="org.eclipse.ui.serverViewScope"
+ commandId="org.eclipse.wst.server.stop"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
+ <key
sequence="M1+M3+P"
contextId="org.eclipse.ui.serverViewScope"
commandId="org.eclipse.wst.server.publish"
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerActionHandler.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerActionHandler.java
index a373a20..656553a 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerActionHandler.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerActionHandler.java
@@ -47,10 +47,15 @@
mode = ILaunchManager.DEBUG_MODE;
else if (id.endsWith("profile"))
mode = ILaunchManager.PROFILE_MODE;
+ else if (id.endsWith("stop"))
+ mode = null;
if (obj instanceof IServer) {
IServer server = (IServer) obj;
- StartAction.start(server, mode, HandlerUtil.getActiveShell(event));
+ if (mode == null)
+ StopAction.stop(server, HandlerUtil.getActiveShell(event));
+ else
+ StartAction.start(server, mode, HandlerUtil.getActiveShell(event));
return null;
}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServersView.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServersView.java
index de6e4f8..dfcbaa0 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServersView.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServersView.java
@@ -284,6 +284,7 @@
// create the stop action
actions[3] = new StopAction(shell, provider);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.stop", actions[3]);
// create the publish actions
actions[4] = new PublishAction(shell, provider);
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StopAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StopAction.java
index 0fbf4ec..307e8bf 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StopAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StopAction.java
@@ -28,6 +28,7 @@
setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_STOP));
setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_STOP));
setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_STOP));
+ setActionDefinitionId("org.eclipse.wst.server.stop");
try {
selectionChanged((IStructuredSelection) selectionProvider.getSelection());
} catch (Exception e) {
@@ -50,7 +51,11 @@
* Perform action on this server.
* @param server a server
*/
- public void perform(final IServer server) {
+ public void perform(IServer server) {
+ stop(server, shell);
+ }
+
+ public static void stop(IServer server, Shell shell) {
ServerUIPlugin.addTerminationWatch(shell, server, ServerUIPlugin.STOP);
StopServerJob stopJob = new StopServerJob(server);