From f8db67f5e6ef22a2768e856d60a653b792f02385 Mon Sep 17 00:00:00 2001 From: Christian Georgi Date: Tue, 21 Feb 2012 14:06:10 -0600 Subject: Bug 371981 - Make IToggleBreakpointsTargetExtension2 usable for clients compiled against older Eclipse versions --- .../ui/actions/IToggleBreakpointsTargetExtension2.java | 2 +- .../eclipse/debug/ui/actions/ToggleBreakpointAction.java | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/actions/IToggleBreakpointsTargetExtension2.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/actions/IToggleBreakpointsTargetExtension2.java index 6bec4561c..7d3c0cef7 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/actions/IToggleBreakpointsTargetExtension2.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/actions/IToggleBreakpointsTargetExtension2.java @@ -22,7 +22,7 @@ import org.eclipse.ui.IWorkbenchPart; * when the user double-clicks in the vertical ruler. *

* Clients implementing IToggleBreakpointsTarget or IToggleBreakpointsTargetExtension may optionally - * implement this interface. + * implement or adapt to this interface. *

* @since 3.8 * @see org.eclipse.debug.ui.actions.ToggleBreakpointAction diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/actions/ToggleBreakpointAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/actions/ToggleBreakpointAction.java index 30624bdf7..d15da736e 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/actions/ToggleBreakpointAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/actions/ToggleBreakpointAction.java @@ -12,6 +12,7 @@ package org.eclipse.debug.ui.actions; import org.eclipse.core.runtime.CoreException; +import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.internal.ui.DebugUIPlugin; import org.eclipse.debug.internal.ui.actions.ActionMessages; import org.eclipse.debug.internal.ui.actions.ToggleBreakpointsTargetManager; @@ -103,17 +104,19 @@ public class ToggleBreakpointAction extends Action implements IUpdate { ITextSelection selection = getTextSelection(document, line); IToggleBreakpointsTarget target = DebugUITools.getToggleBreakpointsTargetManager().getToggleBreakpointsTarget(fPart, selection); if (target != null) { - if(target instanceof IToggleBreakpointsTargetExtension2) { - IToggleBreakpointsTargetExtension2 ext = (IToggleBreakpointsTargetExtension2) target; + IToggleBreakpointsTargetExtension2 ext = (IToggleBreakpointsTargetExtension2) + DebugPlugin.getAdapter(target, IToggleBreakpointsTargetExtension2.class); + if (ext != null) { if(ext.canToggleBreakpointsWithEvent(fPart, selection, event)) { ext.toggleBreakpointsWithEvent(fPart, selection, event); return; } } - if (target instanceof IToggleBreakpointsTargetExtension) { - IToggleBreakpointsTargetExtension extension = (IToggleBreakpointsTargetExtension) target; - if (extension.canToggleBreakpoints(fPart, selection)) { - extension.toggleBreakpoints(fPart, selection); + IToggleBreakpointsTargetExtension ext2 = (IToggleBreakpointsTargetExtension) + DebugPlugin.getAdapter(target, IToggleBreakpointsTargetExtension.class); + if(ext2 != null) { + if (ext2.canToggleBreakpoints(fPart, selection)) { + ext2.toggleBreakpoints(fPart, selection); return; } } -- cgit v1.2.3