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