diff options
author | Darin Wright | 2005-02-11 19:40:46 +0000 |
---|---|---|
committer | Darin Wright | 2005-02-11 19:40:46 +0000 |
commit | c6cb658111561bbd0e4beb9b0350806ecf7806c2 (patch) | |
tree | 134327986a36769c48e3ad3a66c50c4afddd4996 /org.eclipse.debug.ui | |
parent | cea3f6515feba25779d0b30b86b4a6d600dddca6 (diff) | |
download | eclipse.platform.debug-c6cb658111561bbd0e4beb9b0350806ecf7806c2.tar.gz eclipse.platform.debug-c6cb658111561bbd0e4beb9b0350806ecf7806c2.tar.xz eclipse.platform.debug-c6cb658111561bbd0e4beb9b0350806ecf7806c2.zip |
Bug 85048 - RemoveAllTerminatedAction causes debug view to refresh
Diffstat (limited to 'org.eclipse.debug.ui')
4 files changed, 18 insertions, 108 deletions
diff --git a/org.eclipse.debug.ui/plugin.xml b/org.eclipse.debug.ui/plugin.xml index 22b57a46e..3561cd786 100644 --- a/org.eclipse.debug.ui/plugin.xml +++ b/org.eclipse.debug.ui/plugin.xml @@ -2351,7 +2351,7 @@ M4 = Platform-specific fourth key label="%RemoveAllTerminatedAction.label" tooltip="%RemoveAllTerminatedAction.tooltip" icon="icons/full/elcl16/rem_all_co.gif" - class="org.eclipse.debug.internal.ui.views.console.ConsoleRemoveAllTerminatedActionDelegate" + class="org.eclipse.debug.internal.ui.actions.RemoveAllTerminatedAction" menubarPath="additions" id="org.eclipse.debug.ui.consoleRemoveAllTerminatedAction"/> <action diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/RemoveAllTerminatedAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/RemoveAllTerminatedAction.java index 8ac3c7056..76abf6ea0 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/RemoveAllTerminatedAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/RemoveAllTerminatedAction.java @@ -21,11 +21,6 @@ import org.eclipse.debug.core.ILaunchManager; import org.eclipse.debug.core.ILaunchesListener; import org.eclipse.debug.core.model.IDebugTarget; import org.eclipse.debug.core.model.IProcess; -import org.eclipse.debug.internal.ui.DebugUIPlugin; -import org.eclipse.debug.ui.IDebugView; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.StructuredViewer; -import org.eclipse.jface.viewers.Viewer; import org.eclipse.ui.IViewPart; /** @@ -39,30 +34,11 @@ public class RemoveAllTerminatedAction extends AbstractRemoveAllActionDelegate i */ protected void doHandleDebugEvent(DebugEvent event) { if (event.getKind() == DebugEvent.TERMINATE) { - Object source= event.getSource(); - if (source instanceof IDebugTarget) { - ILaunch launch= ((IDebugTarget)source).getLaunch(); - if (launch.isTerminated() && launchIsRegistered(launch)) { - getAction().setEnabled(true); - } - } else if (source instanceof IProcess) { - ILaunch launch= ((IProcess)source).getLaunch(); - if (launch.isTerminated() && launchIsRegistered(launch)) { - getAction().setEnabled(true); - } - } - } - } - - private boolean launchIsRegistered(ILaunch iLaunch) { - ILaunch[] launches= DebugPlugin.getDefault().getLaunchManager().getLaunches(); - for (int i = 0; i < launches.length; i++) { - ILaunch launch = launches[i]; - if (launch.equals(iLaunch)) { - return true; + Object source = event.getSource(); + if (event.getKind() == DebugEvent.TERMINATE && (source instanceof IDebugTarget || source instanceof IProcess)) { + update(); } } - return false; } /** @@ -70,15 +46,12 @@ public class RemoveAllTerminatedAction extends AbstractRemoveAllActionDelegate i * least one launch is terminated and relative to the current perspective. */ protected void update() { - Object[] elements = getElements(); - if (elements != null) { - for (int i= 0; i < elements.length; i++) { - if (elements[i] instanceof ILaunch) { - ILaunch launch= (ILaunch)elements[i]; - if (launch.isTerminated()) { - getAction().setEnabled(true); - return; - } + ILaunch[] launches = DebugPlugin.getDefault().getLaunchManager().getLaunches(); + if (launches != null) { + for (int i= 0; i < launches.length; i++) { + if (launches[i].isTerminated()) { + getAction().setEnabled(true); + return; } } } @@ -86,38 +59,16 @@ public class RemoveAllTerminatedAction extends AbstractRemoveAllActionDelegate i } protected void doAction() { - Object[] elements = getElements(); - removeTerminatedLaunches(elements); - } - - /** - * Returns the top level elements in the active debug - * view, or <code>null</code> if none. - * - * @return array of object - */ - public Object[] getElements() { - IDebugView view = getDebugView(); - if (view != null) { - Viewer viewer = view.getViewer(); - if (viewer instanceof StructuredViewer) { - IStructuredContentProvider cp = (IStructuredContentProvider)((StructuredViewer)viewer).getContentProvider(); - if (cp != null) { - return cp.getElements(viewer.getInput()); - } - } - } - return null; + ILaunch[] launches = DebugPlugin.getDefault().getLaunchManager().getLaunches(); + removeTerminatedLaunches(launches); } - public static void removeTerminatedLaunches(Object[] elements) { + public static void removeTerminatedLaunches(ILaunch[] elements) { List removed = new ArrayList(); for (int i = 0; i < elements.length; i++) { - if (elements[i] instanceof ILaunch) { - ILaunch launch = (ILaunch)elements[i]; - if (launch.isTerminated()) { - removed.add(launch); - } + ILaunch launch = elements[i]; + if (launch.isTerminated()) { + removed.add(launch); } } if (!removed.isEmpty()) { @@ -126,10 +77,6 @@ public class RemoveAllTerminatedAction extends AbstractRemoveAllActionDelegate i } } - protected IDebugView getDebugView() { - return (IDebugView)getView().getAdapter(IDebugView.class); - } - /** * @see IViewActionDelegate#init(IViewPart) */ @@ -165,11 +112,7 @@ public class RemoveAllTerminatedAction extends AbstractRemoveAllActionDelegate i */ public void launchesRemoved(ILaunch[] launches) { if (getAction().isEnabled()) { - DebugUIPlugin.getStandardDisplay().asyncExec(new Runnable() { - public void run() { - update(); - } - }); + update(); } } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleRemoveAllTerminatedAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleRemoveAllTerminatedAction.java index 71c3df6e3..71a4592cb 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleRemoveAllTerminatedAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleRemoveAllTerminatedAction.java @@ -18,7 +18,6 @@ import org.eclipse.debug.core.ILaunchesListener; import org.eclipse.debug.core.model.IDebugTarget; import org.eclipse.debug.core.model.IProcess; import org.eclipse.debug.internal.ui.DebugPluginImages; -import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.internal.ui.IInternalDebugUIConstants; import org.eclipse.debug.internal.ui.actions.RemoveAllTerminatedAction; import org.eclipse.debug.ui.IDebugUIConstants; @@ -38,11 +37,7 @@ public class ConsoleRemoveAllTerminatedAction extends Action implements IUpdate, DebugEvent event = events[i]; Object source = event.getSource(); if (event.getKind() == DebugEvent.TERMINATE && (source instanceof IDebugTarget || source instanceof IProcess)) { - DebugUIPlugin.getStandardDisplay().asyncExec(new Runnable() { - public void run() { - update(); - } - }); + update(); } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleRemoveAllTerminatedActionDelegate.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleRemoveAllTerminatedActionDelegate.java deleted file mode 100644 index f934344d7..000000000 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleRemoveAllTerminatedActionDelegate.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.internal.ui.views.console; - -import org.eclipse.debug.core.DebugPlugin; -import org.eclipse.debug.internal.ui.actions.RemoveAllTerminatedAction; - -/** - * Remove all terminated action delegate for the console. Computes the elements as - * all registered launches rather than those in the debug view. - */ -public class ConsoleRemoveAllTerminatedActionDelegate extends RemoveAllTerminatedAction { - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.actions.RemoveAllTerminatedAction#getElements() - */ - public Object[] getElements() { - return DebugPlugin.getDefault().getLaunchManager().getLaunches(); - } -} |