Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarin Wright2005-01-19 22:08:51 +0000
committerDarin Wright2005-01-19 22:08:51 +0000
commit1431c501864f39843897bf46c6f2f2b6fd164b79 (patch)
tree4847091bc6f86df592a523ecc21fa8791bc73548 /org.eclipse.debug.ui
parente20cbb3df5ef42e5139babb4e32e500efe31b702 (diff)
downloadeclipse.platform.debug-1431c501864f39843897bf46c6f2f2b6fd164b79.tar.gz
eclipse.platform.debug-1431c501864f39843897bf46c6f2f2b6fd164b79.tar.xz
eclipse.platform.debug-1431c501864f39843897bf46c6f2f2b6fd164b79.zip
Bug 83235 - [Breakpoint Groups] show empty breakpoint sets
Diffstat (limited to 'org.eclipse.debug.ui')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java1
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/IInternalDebugUIConstants.java8
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/BreakpointGroupMessages.properties3
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/ShowEmptyGroupsAction.java66
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainer.java20
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointOrganizerExtension.java6
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointSetOrganizer.java19
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointTypeOrganizer.java4
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsContentProvider.java15
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsView.java2
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/FileBreakpointOrganizer.java4
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/ProjectBreakpointOrganizer.java4
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/WorkingSetBreakpointOrganizer.java4
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractBreakpointOrganizerDelegate.java (renamed from org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractBreakpointOrganizer.java)9
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IBreakpointOrganizerDelegate.java9
15 files changed, 158 insertions, 16 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java
index 0a8e8365d..7399494f7 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java
@@ -46,6 +46,7 @@ public class DebugUIPreferenceInitializer extends AbstractPreferenceInitializer
prefs.setDefault(IDebugUIConstants.PREF_SKIP_BREAKPOINTS_DURING_RUN_TO_LINE, false);
prefs.setDefault(IInternalDebugUIConstants.PREF_RELAUNCH_IN_DEBUG_MODE, MessageDialogWithToggle.NEVER);
prefs.setDefault(IInternalDebugUIConstants.PREF_CONTINUE_WITH_COMPILE_ERROR, MessageDialogWithToggle.PROMPT);
+ prefs.setDefault(IInternalDebugUIConstants.PREF_SHOW_EMPTY_GROUPS, true);
//View Management preference page
prefs.setDefault(IDebugUIConstants.PREF_MANAGE_VIEW_PERSPECTIVES, IDebugUIConstants.ID_DEBUG_PERSPECTIVE);
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/IInternalDebugUIConstants.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/IInternalDebugUIConstants.java
index 395a0469b..900e659c9 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/IInternalDebugUIConstants.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/IInternalDebugUIConstants.java
@@ -195,6 +195,14 @@ public interface IInternalDebugUIConstants {
*/
public static final String PREF_WAIT_FOR_BUILD= IDebugUIConstants.PLUGIN_ID + ".wait_for_build"; //$NON-NLS-1$
+ /**
+ * Boolean preference controlling whether empty groups are displayed in
+ * the breakpoints view.
+ *
+ * @since 3.1
+ */
+ public static final String PREF_SHOW_EMPTY_GROUPS = IDebugUIConstants.PLUGIN_ID + ".show_empty_breakpoint_groups"; //$NON-NLS-1$
+
/**
* Font for Memory View
*
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/BreakpointGroupMessages.properties b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/BreakpointGroupMessages.properties
index c49d5dc5f..f22fd7630 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/BreakpointGroupMessages.properties
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/BreakpointGroupMessages.properties
@@ -28,4 +28,5 @@ GroupBreakpointsByDialog.3=&Selected Groups:
GroupBreakpointsByDialog.4=<-- &Remove
GroupBreakpointsByDialog.5=Move &Up
GroupBreakpointsByDialog.6=Move &Down
-GroupBreakpointsByDialog.7=Group Breakpoints \ No newline at end of file
+GroupBreakpointsByDialog.7=Group Breakpoints
+ShowEmptyGroupsAction.0=Show Empty Groups
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/ShowEmptyGroupsAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/ShowEmptyGroupsAction.java
new file mode 100644
index 000000000..d5294342f
--- /dev/null
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/ShowEmptyGroupsAction.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * 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.actions.breakpointGroups;
+
+import org.eclipse.debug.internal.ui.DebugUIPlugin;
+import org.eclipse.debug.internal.ui.IInternalDebugUIConstants;
+import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointContainer;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+
+/**
+ * ShowEmptyGroupsAction
+ */
+public class ShowEmptyGroupsAction extends Action {
+
+ private StructuredViewer fViewer;
+ private ViewerFilter fFilter = new EmptyGroupFilter();
+
+ /**
+ * Filters empty breakpoint containers.
+ */
+ class EmptyGroupFilter extends ViewerFilter {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public boolean select(Viewer viewer, Object parentElement, Object element) {
+ if (element instanceof BreakpointContainer) {
+ BreakpointContainer container = (BreakpointContainer) element;
+ return container.getBreakpoints().length > 0;
+ }
+ return true;
+ }
+
+ }
+
+ /**
+ * Constructs a new action to toggle the empty groups filter
+ */
+ public ShowEmptyGroupsAction(StructuredViewer viewer) {
+ super(BreakpointGroupMessages.getString("ShowEmptyGroupsAction.0"), IAction.AS_CHECK_BOX); //$NON-NLS-1$
+ fViewer = viewer;
+ setChecked(DebugUIPlugin.getDefault().getPreferenceStore().getBoolean(IInternalDebugUIConstants.PREF_SHOW_EMPTY_GROUPS));
+ run();
+ }
+
+ public void run() {
+ if (isChecked()) {
+ fViewer.removeFilter(fFilter);
+ } else {
+ fViewer.addFilter(fFilter);
+ }
+ DebugUIPlugin.getDefault().getPreferenceStore().setValue(IInternalDebugUIConstants.PREF_SHOW_EMPTY_GROUPS, isChecked());
+ }
+}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainer.java
index 8860e3fb3..9d1207943 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainer.java
@@ -45,6 +45,20 @@ public class BreakpointContainer extends PlatformObject {
fBreakpoints = new ArrayList();
fNesting = nesting;
fCategoriesToContainers = new HashMap();
+ // seed with empty nested categories
+ if (nesting != null && nesting.length > 0) {
+ IAdaptable[] emptyCategories = nesting[0].getEmptyCategories();
+ if (emptyCategories != null) {
+ for (int i = 0; i < emptyCategories.length; i++) {
+ IAdaptable empty = emptyCategories[i];
+ BreakpointContainer container = (BreakpointContainer) fCategoriesToContainers.get(empty);
+ if (container == null) {
+ container = new BreakpointContainer(empty, nesting[0], null);
+ fCategoriesToContainers.put(empty, container);
+ }
+ }
+ }
+ }
}
/**
@@ -172,8 +186,10 @@ public class BreakpointContainer extends PlatformObject {
for (int i = 0; i < containers.length; i++) {
BreakpointContainer container = containers[i];
BreakpointContainer[] subcontainers = container.getContainers(breakpoint);
- for (int j = 0; j < subcontainers.length; j++) {
- list.add(subcontainers[j]);
+ if (subcontainers != null) {
+ for (int j = 0; j < subcontainers.length; j++) {
+ list.add(subcontainers[j]);
+ }
}
}
return (BreakpointContainer[]) list.toArray(new BreakpointContainer[list.size()]);
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointOrganizerExtension.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointOrganizerExtension.java
index 5b12a44ec..7a03aa903 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointOrganizerExtension.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointOrganizerExtension.java
@@ -169,4 +169,10 @@ public class BreakpointOrganizerExtension implements IBreakpointOrganizer {
return attribute;
}
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.ui.IBreakpointOrganizerDelegate#getEmptyCategories()
+ */
+ public IAdaptable[] getEmptyCategories() {
+ return getOrganizer().getEmptyCategories();
+ }
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointSetOrganizer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointSetOrganizer.java
index 285b973d1..ab1a418b8 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointSetOrganizer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointSetOrganizer.java
@@ -21,7 +21,7 @@ import org.eclipse.debug.core.IBreakpointsListener;
import org.eclipse.debug.core.model.IBreakpoint;
import org.eclipse.debug.internal.ui.DebugUIPlugin;
import org.eclipse.debug.internal.ui.IInternalDebugUIConstants;
-import org.eclipse.debug.ui.AbstractBreakpointOrganizer;
+import org.eclipse.debug.ui.AbstractBreakpointOrganizerDelegate;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
@@ -34,7 +34,7 @@ import org.eclipse.ui.PlatformUI;
*
* @since 3.1
*/
-public class BreakpointSetOrganizer extends AbstractBreakpointOrganizer implements IPropertyChangeListener, IBreakpointsListener {
+public class BreakpointSetOrganizer extends AbstractBreakpointOrganizerDelegate implements IPropertyChangeListener, IBreakpointsListener {
/**
* Constructs a working set breakpoint organizer. Listens for changes in
@@ -252,4 +252,19 @@ public class BreakpointSetOrganizer extends AbstractBreakpointOrganizer implemen
workingSet.setElements((IAdaptable[]) list.toArray(new IAdaptable[list.size()]));
}
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.ui.IBreakpointOrganizerDelegate#getEmptyCategories()
+ */
+ public IAdaptable[] getEmptyCategories() {
+ IWorkingSet[] workingSets = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
+ List empty = new ArrayList();
+ for (int i = 0; i < workingSets.length; i++) {
+ IWorkingSet set = workingSets[i];
+ if (IInternalDebugUIConstants.ID_BREAKPOINT_WORKINGSET.equals(set.getId()) && set.getElements().length == 0) {
+ empty.add(new WorkingSetCategory(set));
+ }
+ }
+ return (IAdaptable[]) empty.toArray(new IAdaptable[empty.size()]);
+ }
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointTypeOrganizer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointTypeOrganizer.java
index 9d4c24ab2..addefd790 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointTypeOrganizer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointTypeOrganizer.java
@@ -16,7 +16,7 @@ import java.util.Map;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.ui.AbstractBreakpointOrganizer;
+import org.eclipse.debug.ui.AbstractBreakpointOrganizerDelegate;
import org.eclipse.debug.ui.BreakpointTypeCategory;
import org.eclipse.debug.ui.IBreakpointTypeCategory;
@@ -25,7 +25,7 @@ import org.eclipse.debug.ui.IBreakpointTypeCategory;
*
* @since 3.1
*/
-public class BreakpointTypeOrganizer extends AbstractBreakpointOrganizer {
+public class BreakpointTypeOrganizer extends AbstractBreakpointOrganizerDelegate {
private Map fTypes = new HashMap();
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsContentProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsContentProvider.java
index b155f13f0..ed067fcb1 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsContentProvider.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsContentProvider.java
@@ -213,11 +213,10 @@ public class BreakpointsContentProvider implements ITreeContentProvider, IProper
if (fOrganizers == null) {
fElements = breakpoints;
} else {
- IBreakpointOrganizer organizer = null;
+ IBreakpointOrganizer organizer = fOrganizers[0];
Map categoriesToContainers = new HashMap();
for (int i = 0; i < breakpoints.length; i++) {
IBreakpoint breakpoint = breakpoints[i];
- organizer = fOrganizers[0];
IAdaptable[] categories = organizer.getCategories(breakpoint);
if (categories == null || categories.length == 0) {
categories = OtherBreakpointCategory.getCategories(organizer);
@@ -237,6 +236,18 @@ public class BreakpointsContentProvider implements ITreeContentProvider, IProper
container.addBreakpoint(breakpoint);
}
}
+ // add empty categories
+ IAdaptable[] emptyCategories = organizer.getEmptyCategories();
+ if (emptyCategories != null) {
+ for (int i = 0; i < emptyCategories.length; i++) {
+ IAdaptable category = emptyCategories[i];
+ BreakpointContainer container = (BreakpointContainer) categoriesToContainers.get(category);
+ if (container == null) {
+ container = new BreakpointContainer(category, organizer, null);
+ categoriesToContainers.put(category, container);
+ }
+ }
+ }
fElements = categoriesToContainers.values().toArray();
}
fViewer.getControl().setRedraw(false);
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsView.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsView.java
index ab3606d40..5188d4d99 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsView.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsView.java
@@ -34,6 +34,7 @@ import org.eclipse.debug.internal.ui.LazyModelPresentation;
import org.eclipse.debug.internal.ui.actions.OpenBreakpointMarkerAction;
import org.eclipse.debug.internal.ui.actions.ShowSupportedBreakpointsAction;
import org.eclipse.debug.internal.ui.actions.SkipAllBreakpointsAction;
+import org.eclipse.debug.internal.ui.actions.breakpointGroups.ShowEmptyGroupsAction;
import org.eclipse.debug.internal.ui.views.DebugUIViewsMessages;
import org.eclipse.debug.ui.AbstractDebugView;
import org.eclipse.debug.ui.IDebugModelPresentation;
@@ -385,6 +386,7 @@ public class BreakpointsView extends AbstractDebugView implements ISelectionList
setAction(DOUBLE_CLICK_ACTION, action);
setAction("ShowBreakpointsForModel", new ShowSupportedBreakpointsAction(getStructuredViewer(),this)); //$NON-NLS-1$
setAction("SkipBreakpoints", new SkipAllBreakpointsAction()); //$NON-NLS-1$
+ getViewSite().getActionBars().getMenuManager().add(new ShowEmptyGroupsAction((StructuredViewer) getViewer()));
}
/**
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/FileBreakpointOrganizer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/FileBreakpointOrganizer.java
index a4be8e3e1..6b40395c6 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/FileBreakpointOrganizer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/FileBreakpointOrganizer.java
@@ -15,14 +15,14 @@ import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.ui.AbstractBreakpointOrganizer;
+import org.eclipse.debug.ui.AbstractBreakpointOrganizerDelegate;
/**
* Breakpoint organizers for files.
*
* @since 3.1
*/
-public class FileBreakpointOrganizer extends AbstractBreakpointOrganizer {
+public class FileBreakpointOrganizer extends AbstractBreakpointOrganizerDelegate {
/* (non-Javadoc)
* @see org.eclipse.debug.ui.IBreakpointOrganizerDelegate#getCategories(org.eclipse.debug.core.model.IBreakpoint)
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/ProjectBreakpointOrganizer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/ProjectBreakpointOrganizer.java
index f7e8c7f49..162feddf9 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/ProjectBreakpointOrganizer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/ProjectBreakpointOrganizer.java
@@ -14,14 +14,14 @@ import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.ui.AbstractBreakpointOrganizer;
+import org.eclipse.debug.ui.AbstractBreakpointOrganizerDelegate;
/**
* Breakpoint organizers for projects.
*
* @since 3.1
*/
-public class ProjectBreakpointOrganizer extends AbstractBreakpointOrganizer {
+public class ProjectBreakpointOrganizer extends AbstractBreakpointOrganizerDelegate {
/* (non-Javadoc)
* @see org.eclipse.debug.ui.IBreakpointOrganizerDelegate#getCategories(org.eclipse.debug.core.model.IBreakpoint)
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/WorkingSetBreakpointOrganizer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/WorkingSetBreakpointOrganizer.java
index 5ec9c8d65..60f73f792 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/WorkingSetBreakpointOrganizer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/WorkingSetBreakpointOrganizer.java
@@ -17,7 +17,7 @@ import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.debug.core.model.IBreakpoint;
import org.eclipse.debug.internal.ui.IInternalDebugUIConstants;
-import org.eclipse.debug.ui.AbstractBreakpointOrganizer;
+import org.eclipse.debug.ui.AbstractBreakpointOrganizerDelegate;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.ui.IWorkingSet;
@@ -29,7 +29,7 @@ import org.eclipse.ui.PlatformUI;
*
* @since 3.1
*/
-public class WorkingSetBreakpointOrganizer extends AbstractBreakpointOrganizer implements IPropertyChangeListener {
+public class WorkingSetBreakpointOrganizer extends AbstractBreakpointOrganizerDelegate implements IPropertyChangeListener {
/**
* Constructs a working set breakpoint organizer. Listens for changes in
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractBreakpointOrganizer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractBreakpointOrganizerDelegate.java
index 8415cb806..c72d065fa 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractBreakpointOrganizer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/AbstractBreakpointOrganizerDelegate.java
@@ -27,7 +27,7 @@ import org.eclipse.jface.util.PropertyChangeEvent;
* </p>
* @since 3.1
*/
-public abstract class AbstractBreakpointOrganizer implements IBreakpointOrganizerDelegate {
+public abstract class AbstractBreakpointOrganizerDelegate implements IBreakpointOrganizerDelegate {
// property change listeners
private ListenerList fListeners = new ListenerList();
@@ -113,4 +113,11 @@ public abstract class AbstractBreakpointOrganizer implements IBreakpointOrganize
Platform.run(runnable);
}
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.ui.IBreakpointOrganizerDelegate#getEmptyCategories()
+ */
+ public IAdaptable[] getEmptyCategories() {
+ return null;
+ }
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IBreakpointOrganizerDelegate.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IBreakpointOrganizerDelegate.java
index 947e1c83c..79c773b16 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IBreakpointOrganizerDelegate.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IBreakpointOrganizerDelegate.java
@@ -117,6 +117,15 @@ public interface IBreakpointOrganizerDelegate {
public boolean canRemove(IBreakpoint breakpoint, IAdaptable category);
/**
+ * Returns any empty categories owned by this organizer, or <code>null</code>
+ * if none. This allows the breakpoints view to display empty categories
+ * that breakpoints can be recategorized into.
+ *
+ * @return empty categories owned by this organizer, or <code>null</code>
+ */
+ public IAdaptable[] getEmptyCategories();
+
+ /**
* Disposes this breakpoint organizer.
*/
public void dispose();

Back to the top