Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarin Wright2007-02-15 17:40:56 +0000
committerDarin Wright2007-02-15 17:40:56 +0000
commite693604d469e877af7211cb18f0b8fc4524bb54e (patch)
treea652ac16a0d180546bdfb62cf76338f85061e1f1
parent2894b5b4369054e17629e7e42096854004d81bbb (diff)
downloadeclipse.platform.debug-e693604d469e877af7211cb18f0b8fc4524bb54e.tar.gz
eclipse.platform.debug-e693604d469e877af7211cb18f0b8fc4524bb54e.tar.xz
eclipse.platform.debug-e693604d469e877af7211cb18f0b8fc4524bb54e.zip
Bug 173087 Debug should make use of IWorkingSetElementAdapter API
-rw-r--r--org.eclipse.debug.ui/plugin.xml5
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointWorkingSetElementAdapter.java60
2 files changed, 63 insertions, 2 deletions
diff --git a/org.eclipse.debug.ui/plugin.xml b/org.eclipse.debug.ui/plugin.xml
index e8f13721e..f8650f451 100644
--- a/org.eclipse.debug.ui/plugin.xml
+++ b/org.eclipse.debug.ui/plugin.xml
@@ -2233,10 +2233,11 @@ M4 = Platform-specific fourth key
<extension
point="org.eclipse.ui.workingSets">
<workingSet
+ elementAdapterClass="org.eclipse.debug.internal.ui.views.breakpoints.BreakpointWorkingSetElementAdapter"
icon="$nl$/icons/full/obj16/brkp_grp.gif"
+ id="org.eclipse.debug.ui.breakpointWorkingSet"
name="%BreakpointWorkingSet.name"
- pageClass="org.eclipse.debug.internal.ui.views.breakpoints.BreakpointWorkingSetPage"
- id="org.eclipse.debug.ui.breakpointWorkingSet"/>
+ pageClass="org.eclipse.debug.internal.ui.views.breakpoints.BreakpointWorkingSetPage"/>
</extension>
<extension
point="org.eclipse.ui.keywords">
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointWorkingSetElementAdapter.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointWorkingSetElementAdapter.java
new file mode 100644
index 000000000..bc7e5fbc0
--- /dev/null
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointWorkingSetElementAdapter.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.debug.internal.ui.views.breakpoints;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.debug.core.model.IBreakpoint;
+import org.eclipse.ui.IWorkingSet;
+import org.eclipse.ui.IWorkingSetElementAdapter;
+
+/**
+ * Consulted by workbench pull down actions that add/remove selected elements to/from
+ * working sets. Allows breakpoint working sets to select which elements are applicable
+ * for adding/removing.
+ *
+ * @since 3.3
+ */
+public class BreakpointWorkingSetElementAdapter implements IWorkingSetElementAdapter {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkingSetElementAdapter#adaptElements(org.eclipse.ui.IWorkingSet, org.eclipse.core.runtime.IAdaptable[])
+ */
+ public IAdaptable[] adaptElements(IWorkingSet ws, IAdaptable[] elements) {
+ for (int i = 0; i < elements.length; i++) {
+ IAdaptable adaptable = elements[i];
+ if (!(adaptable instanceof IBreakpoint)) {
+ return selectBreakpoints(elements);
+ }
+ }
+ return elements;
+ }
+
+ private IAdaptable[] selectBreakpoints(IAdaptable[] elements) {
+ List breakpoints = new ArrayList(elements.length);
+ for (int i = 0; i < elements.length; i++) {
+ IAdaptable adaptable = elements[i];
+ if (adaptable instanceof IBreakpoint) {
+ breakpoints.add(adaptable);
+ }
+ }
+ return (IAdaptable[]) breakpoints.toArray(new IAdaptable[breakpoints.size()]);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkingSetElementAdapter#dispose()
+ */
+ public void dispose() {
+ }
+
+}

Back to the top