diff options
author | Darin Swanson | 2001-06-01 14:40:46 +0000 |
---|---|---|
committer | Darin Swanson | 2001-06-01 14:40:46 +0000 |
commit | ae229faac55f760112bf48ccf302cf578f899698 (patch) | |
tree | c549d548ca9da03afa4ca07b4c47bc2ceef14000 | |
parent | 0273d19b5155b2ec5b59fc47b69392750a7bcfef (diff) | |
download | eclipse.platform.debug-ae229faac55f760112bf48ccf302cf578f899698.tar.gz eclipse.platform.debug-ae229faac55f760112bf48ccf302cf578f899698.tar.xz eclipse.platform.debug-ae229faac55f760112bf48ccf302cf578f899698.zip |
1GEMBB2v0_117
5 files changed, 35 insertions, 13 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/ControlAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/ControlAction.java index 7b381f95a..7f6ae62e5 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/ControlAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/ControlAction.java @@ -40,7 +40,6 @@ public class ControlAction extends SelectionProviderAction { * The actual work is deferred to the delegate.
*/
public void run() {
- fDelegate.selectionChanged(this, getStructuredSelection());
fDelegate.run();
}
@@ -49,8 +48,7 @@ public class ControlAction extends SelectionProviderAction { * Updates the enable state based on what and how much is selected.
*/
public void selectionChanged(IStructuredSelection sel) {
- setEnabled(fDelegate.getEnableStateForSelection(sel));
+ fDelegate.selectionChanged(this, sel);
}
-
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/ControlActionDelegate.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/ControlActionDelegate.java index 548cac598..ab5b77d5a 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/ControlActionDelegate.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/ControlActionDelegate.java @@ -5,14 +5,14 @@ package org.eclipse.debug.internal.ui; * All Rights Reserved.
*/
-import java.util.Iterator;
import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.IDebugStatusConstants;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.custom.BusyIndicator;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import java.util.Iterator;
import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.debug.core.*;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.custom.BusyIndicator;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.actions.SelectionProviderAction;
public abstract class ControlActionDelegate implements IWorkbenchWindowActionDelegate {
protected static final String ERROR= "error.";
protected static final String STATUS= "status";
-
- protected IStructuredSelection fStructuredSelection;
+
+ protected String fMode= ILaunchManager.DEBUG_MODE;
/**
* It's crucial that delegate actions have a zero-arg constructor so that
@@ -28,14 +28,26 @@ public abstract class ControlActionDelegate implements IWorkbenchWindowActionDel * that do have a ControlAction owner, this is the place to do any
* action specific initialization.
*/
- public void initializeForOwner(ControlAction controlAction) {
+ public void initializeForOwner(ControlAction controlAction) {
+ LaunchesViewer provider= (LaunchesViewer)controlAction.getSelectionProvider();
+ IContentProvider contentProvider= provider.getContentProvider();
+ fMode= ILaunchManager.DEBUG_MODE;
+ if (contentProvider instanceof ProcessesContentProvider) {
+ fMode= ILaunchManager.RUN_MODE;
+ }
}
/**
* Do the specific action using the current selection.
*/
public void run() {
- final Iterator enum= fStructuredSelection.iterator();
+ LaunchesView view= getLaunchesView(fMode);
+ if (view == null) {
+ return;
+ }
+ IStructuredSelection selection= (IStructuredSelection)view.getSite().getSelectionProvider().getSelection();
+
+ final Iterator enum= selection.iterator();
String pluginId= DebugUIPlugin.getDefault().getDescriptor().getUniqueIdentifier();
final MultiStatus ms=
new MultiStatus(pluginId, IDebugStatusConstants.REQUEST_FAILED, DebugUIUtils.getResourceString(getPrefix() + STATUS), null);
@@ -78,13 +90,16 @@ public abstract class ControlActionDelegate implements IWorkbenchWindowActionDel }
/**
+ * Only interested in selection changes in the launches view
* @see IActionDelegate
*/
- public void selectionChanged(IAction action, ISelection selection){
- if (selection instanceof IStructuredSelection) {
- fStructuredSelection= (IStructuredSelection)selection;
- action.setEnabled(getEnableStateForSelection(fStructuredSelection));
+ public void selectionChanged(IAction action, ISelection s) {
+ LaunchesView view= getLaunchesView(fMode);
+ if (view == null) {
+ return;
}
+ IStructuredSelection selection= (IStructuredSelection)view.getSite().getSelectionProvider().getSelection();
+ action.setEnabled(getEnableStateForSelection(selection));
}
/**
@@ -116,6 +131,13 @@ public abstract class ControlActionDelegate implements IWorkbenchWindowActionDel protected boolean enableForMultiSelection() {
return true;
}
+
+ protected LaunchesView getLaunchesView(String mode) {
+ IWorkbenchWindow window= DebugUIPlugin.getActiveWorkbenchWindow();
+ return
+ DebugUIPlugin.getDefault().findDebugPart(window, mode);
+
+ }
/**
* Does the specific action of this action to the process.
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/CopyToClipboardActionDelegate.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/CopyToClipboardActionDelegate.java index 057ee3c73..94629c76a 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/CopyToClipboardActionDelegate.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/CopyToClipboardActionDelegate.java @@ -23,6 +23,7 @@ public class CopyToClipboardActionDelegate extends ControlActionDelegate { public void initializeForOwner(ControlAction controlAction) {
controlAction.setEnabled(!controlAction.getStructuredSelection().isEmpty());
fViewer = (ContentViewer)controlAction.getSelectionProvider();
+ super.initializeForOwner(controlAction);
}
/**
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java index d3dc8bd67..5f0e4c9a4 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPlugin.java @@ -339,7 +339,7 @@ public class DebugUIPlugin extends AbstractUIPlugin implements ISelectionChanged }
/**
- * Returns a <code>true</code> if the specified window contains a debugger part for the
+ * Returns a launches view if the specified window contains the debugger part for the
* specified debug mode.
*/
protected LaunchesView findDebugPart(IWorkbenchWindow window, String mode) {
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/TerminateAndRemoveActionDelegate.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/TerminateAndRemoveActionDelegate.java index d7fc897d8..c6bbe680b 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/TerminateAndRemoveActionDelegate.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/TerminateAndRemoveActionDelegate.java @@ -18,6 +18,7 @@ public class TerminateAndRemoveActionDelegate extends ControlActionDelegate { * @see ControlActionDelegate
*/
public void initializeForOwner(ControlAction controlAction) {
+ super.initializeForOwner(controlAction);
controlAction.setEnabled(!controlAction.getStructuredSelection().isEmpty());
}
|