diff options
-rw-r--r-- | org.eclipse.debug.ui/META-INF/MANIFEST.MF | 1 | ||||
-rw-r--r-- | org.eclipse.debug.ui/component.xml | 2 | ||||
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/LaunchSuspendTrigger.java | 6 | ||||
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/SuspendTriggerAdapterFactory.java | 6 | ||||
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/PerspectiveManager.java | 8 | ||||
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/ui/contexts/ISuspendTrigger.java (renamed from org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/provisional/ISuspendTriggerAdapter.java) | 27 | ||||
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/ui/contexts/ISuspendTriggerListener.java (renamed from org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/provisional/ISuspendTriggerListener.java) | 10 |
7 files changed, 39 insertions, 21 deletions
diff --git a/org.eclipse.debug.ui/META-INF/MANIFEST.MF b/org.eclipse.debug.ui/META-INF/MANIFEST.MF index eab087bed..66d76bb7b 100644 --- a/org.eclipse.debug.ui/META-INF/MANIFEST.MF +++ b/org.eclipse.debug.ui/META-INF/MANIFEST.MF @@ -16,7 +16,6 @@ Export-Package: org.eclipse.debug.internal.ui;x-internal:=true, org.eclipse.debug.internal.ui.commands.actions;x-internal:=true, org.eclipse.debug.internal.ui.commands.provisional;x-internal:=true, org.eclipse.debug.internal.ui.contexts;x-internal:=true, - org.eclipse.debug.internal.ui.contexts.provisional;x-internal:=true, org.eclipse.debug.internal.ui.elements.adapters;x-internal:=true, org.eclipse.debug.internal.ui.importexport.breakpoints;x-internal:=true, org.eclipse.debug.internal.ui.launchConfigurations;x-internal:=true, diff --git a/org.eclipse.debug.ui/component.xml b/org.eclipse.debug.ui/component.xml index ed5f3b5c0..9cf905613 100644 --- a/org.eclipse.debug.ui/component.xml +++ b/org.eclipse.debug.ui/component.xml @@ -83,6 +83,8 @@ <type name="IDebugContextManager" implement="false"/> <type name="IDebugContextProvider" /> <type name="IDebugContextService" implement="false"/> + <type name="ISuspendTrigger" /> + <type name="ISuspendTriggerListener" implement="false"/> </package> <package name="org.eclipse.debug.ui.memory"> <type name="AbstractMemoryRendering" /> diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/LaunchSuspendTrigger.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/LaunchSuspendTrigger.java index 4be91b08d..08dd1518d 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/LaunchSuspendTrigger.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/LaunchSuspendTrigger.java @@ -23,13 +23,13 @@ import org.eclipse.debug.core.model.IDebugElement; import org.eclipse.debug.core.model.IDebugTarget; import org.eclipse.debug.core.model.IThread; import org.eclipse.debug.internal.ui.DebugUIPlugin; -import org.eclipse.debug.internal.ui.contexts.provisional.ISuspendTriggerAdapter; -import org.eclipse.debug.internal.ui.contexts.provisional.ISuspendTriggerListener; +import org.eclipse.debug.ui.contexts.ISuspendTrigger; +import org.eclipse.debug.ui.contexts.ISuspendTriggerListener; /** * @since 3.2 */ -public class LaunchSuspendTrigger implements ISuspendTriggerAdapter, IDebugEventSetListener { +public class LaunchSuspendTrigger implements ISuspendTrigger, IDebugEventSetListener { private ListenerList fListeners = new ListenerList(); private SuspendTriggerAdapterFactory fFactory = null; diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/SuspendTriggerAdapterFactory.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/SuspendTriggerAdapterFactory.java index 20f2999e2..27c026894 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/SuspendTriggerAdapterFactory.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/SuspendTriggerAdapterFactory.java @@ -15,7 +15,7 @@ import java.util.Map; import org.eclipse.core.runtime.IAdapterFactory; import org.eclipse.debug.core.ILaunch; -import org.eclipse.debug.internal.ui.contexts.provisional.ISuspendTriggerAdapter; +import org.eclipse.debug.ui.contexts.ISuspendTrigger; /** * @since 3.2 @@ -28,7 +28,7 @@ public class SuspendTriggerAdapterFactory implements IAdapterFactory { * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class) */ public synchronized Object getAdapter(Object adaptableObject, Class adapterType) { - if (adapterType.equals(ISuspendTriggerAdapter.class)) { + if (adapterType.equals(ISuspendTrigger.class)) { if (adaptableObject instanceof ILaunch) { Object trigger = fSuspendTriggers.get(adaptableObject); if (trigger == null) { @@ -45,7 +45,7 @@ public class SuspendTriggerAdapterFactory implements IAdapterFactory { * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList() */ public Class[] getAdapterList() { - return new Class[]{ISuspendTriggerAdapter.class}; + return new Class[]{ISuspendTrigger.class}; } public synchronized void dispose(LaunchSuspendTrigger trigger) { diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/PerspectiveManager.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/PerspectiveManager.java index 495f5a06f..6433efcd6 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/PerspectiveManager.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/launchConfigurations/PerspectiveManager.java @@ -36,12 +36,12 @@ import org.eclipse.debug.core.ILaunchListener; import org.eclipse.debug.core.ILaunchManager; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.internal.ui.IInternalDebugUIConstants; -import org.eclipse.debug.internal.ui.contexts.provisional.ISuspendTriggerAdapter; -import org.eclipse.debug.internal.ui.contexts.provisional.ISuspendTriggerListener; import org.eclipse.debug.internal.ui.views.ViewContextManager; import org.eclipse.debug.internal.ui.views.ViewContextService; import org.eclipse.debug.ui.DebugUITools; import org.eclipse.debug.ui.IDebugUIConstants; +import org.eclipse.debug.ui.contexts.ISuspendTrigger; +import org.eclipse.debug.ui.contexts.ISuspendTriggerListener; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.MessageDialogWithToggle; import org.eclipse.swt.widgets.Display; @@ -162,7 +162,7 @@ public class PerspectiveManager implements ILaunchListener, ISuspendTriggerListe * @see ILaunchListener#launchRemoved(ILaunch) */ public synchronized void launchRemoved(final ILaunch launch) { - ISuspendTriggerAdapter trigger = (ISuspendTriggerAdapter) launch.getAdapter(ISuspendTriggerAdapter.class); + ISuspendTrigger trigger = (ISuspendTrigger) launch.getAdapter(ISuspendTrigger.class); if (trigger != null) { trigger.removeSuspendTriggerListener(this); } @@ -195,7 +195,7 @@ public class PerspectiveManager implements ILaunchListener, ISuspendTriggerListe * @see ILaunchListener#launchAdded(ILaunch) */ public synchronized void launchAdded(ILaunch launch) { - ISuspendTriggerAdapter trigger = (ISuspendTriggerAdapter) launch.getAdapter(ISuspendTriggerAdapter.class); + ISuspendTrigger trigger = (ISuspendTrigger) launch.getAdapter(ISuspendTrigger.class); if (trigger != null) { trigger.addSuspendTriggerListener(this); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/provisional/ISuspendTriggerAdapter.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/contexts/ISuspendTrigger.java index c693a142b..381ee2ec3 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/provisional/ISuspendTriggerAdapter.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/contexts/ISuspendTrigger.java @@ -8,12 +8,19 @@ * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ -package org.eclipse.debug.internal.ui.contexts.provisional; +package org.eclipse.debug.ui.contexts; /** - * Adapter retrieved from an <code>ILaunch</code> that notifies - * listeners when it suspends at a context where debugging should - * be initiated by the user. For example, when a breakpoint is encountered. + * A suspend trigger notifies listeners when a launch suspends at a context + * where debugging should begin. For example, when a breakpoint is encountered. + * <p> + * The debug platform retrieves a suspend trigger from each registered launch + * and listens to suspend notifications in order to initiate debug sessions - i.e. + * switch to the desired perspective, activate the debug view, etc., based on user + * preferences. The debug platform asks each registered launch for its suspend + * trigger adapter or registers with the launch itself if it implements + * <code>ISuspendTrigger</code>. + * </p> * <p> * It is important that the same instance of a suspend trigger adapter is * returned each time it is asked for the same object, such that listeners @@ -22,8 +29,14 @@ package org.eclipse.debug.internal.ui.contexts.provisional; * with a new adapter the next time one is requested. * </p> * <p> - * Clients may implement this interface. + * Clients may implement this interface. The debug platform provides a suspend trigger + * adapter for implementations of <code>ILaunch</code>. The implementation provided by + * the platform is based on a standard debug model that fires debug events. Clients + * wishing to provide their own implementation must also provide their own implementation + * of <code>ILaunch</code> (or subclass of <code>Launch</code>), in order to register + * their suspend trigger adapter. * </p> + * @see ISuspendTriggerListener * @since 3.3 * <p> * <strong>EXPERIMENTAL</strong>. This interface has been added as @@ -32,7 +45,7 @@ package org.eclipse.debug.internal.ui.contexts.provisional; * without consulting with the Platform/Debug team. * </p> */ -public interface ISuspendTriggerAdapter { +public interface ISuspendTrigger { /** * Registers the given listener for suspend notifications. @@ -42,7 +55,7 @@ public interface ISuspendTriggerAdapter { public void addSuspendTriggerListener(ISuspendTriggerListener listener); /** - * Deregisters the given listener for suspend notifications. + * Unregisters the given listener for suspend notifications. * * @param listener suspend listener */ diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/provisional/ISuspendTriggerListener.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/contexts/ISuspendTriggerListener.java index 4f4c3d607..dfbafc99f 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/contexts/provisional/ISuspendTriggerListener.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/contexts/ISuspendTriggerListener.java @@ -8,16 +8,20 @@ * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ -package org.eclipse.debug.internal.ui.contexts.provisional; +package org.eclipse.debug.ui.contexts; import org.eclipse.debug.core.ILaunch; /** * Listeners are notified when a launch has suspended at a context - * where debugging should being. For example, at a breakpoint. + * where debugging should begin. For example, in a stack frame where + * a breakpoint has been encountered. * <p> - * Clients may implement this interface. + * Clients are not intended to implement this interface. Generally, clients + * implement <code>ISuspendTrigger</code> and the debug platform registers + * as a suspend trigger listener. * </p> + * @see ISuspendTrigger * @since 3.3 * <p> * <strong>EXPERIMENTAL</strong>. This interface has been added as |