Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJared Burns2004-10-18 18:34:18 +0000
committerJared Burns2004-10-18 18:34:18 +0000
commit5f9d2baba9b340f144a715e7fa2b459bf3947dd3 (patch)
tree05df3af952a5599e09fc0f3fdf666b0d6b168695 /org.eclipse.debug.ui
parent11d0cf83b047b3b2c640774ddb1eceb450f87587 (diff)
downloadeclipse.platform.debug-5f9d2baba9b340f144a715e7fa2b459bf3947dd3.tar.gz
eclipse.platform.debug-5f9d2baba9b340f144a715e7fa2b459bf3947dd3.tar.xz
eclipse.platform.debug-5f9d2baba9b340f144a715e7fa2b459bf3947dd3.zip
Bug 75282 - Composite breakpoint groups (add images to containers)
Diffstat (limited to 'org.eclipse.debug.ui')
-rw-r--r--org.eclipse.debug.ui/icons/full/obj16/brkp_type.gifbin0 -> 224 bytes
-rw-r--r--org.eclipse.debug.ui/icons/full/obj16/file_obj.gifbin0 -> 354 bytes
-rw-r--r--org.eclipse.debug.ui/plugin.xml22
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/AdvancedGroupBreakpointsByAction.java (renamed from org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/ShowBreakpointsByAction.java)36
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/GroupBreakpointsByAction.java5
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/GroupBreakpointsByDialog.java (renamed from org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/ShowBreakpointsByDialog.java)50
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/AbstractBreakpointContainerFactory.java14
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainerFactoryManager.java34
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointTypeContainerFactory.java15
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsView.java30
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/IBreakpointContainerFactory.java16
11 files changed, 146 insertions, 76 deletions
diff --git a/org.eclipse.debug.ui/icons/full/obj16/brkp_type.gif b/org.eclipse.debug.ui/icons/full/obj16/brkp_type.gif
new file mode 100644
index 000000000..31c40ea10
--- /dev/null
+++ b/org.eclipse.debug.ui/icons/full/obj16/brkp_type.gif
Binary files differ
diff --git a/org.eclipse.debug.ui/icons/full/obj16/file_obj.gif b/org.eclipse.debug.ui/icons/full/obj16/file_obj.gif
new file mode 100644
index 000000000..7ccc6a703
--- /dev/null
+++ b/org.eclipse.debug.ui/icons/full/obj16/file_obj.gif
Binary files differ
diff --git a/org.eclipse.debug.ui/plugin.xml b/org.eclipse.debug.ui/plugin.xml
index 18fd10c9f..654e5d22a 100644
--- a/org.eclipse.debug.ui/plugin.xml
+++ b/org.eclipse.debug.ui/plugin.xml
@@ -702,12 +702,12 @@
tooltip="%clearDefaultGroup.tooltip">
</action>
<action
- id="org.eclipse.debug.ui.breakpointsView.toolbar.showByAction"
+ id="org.eclipse.debug.ui.breakpointsView.toolbar.groupByAction"
menubarPath="defaultBreakpointGroup"
- class="org.eclipse.debug.internal.ui.actions.ShowBreakpointsByAction"
- helpContextId="show_breakpoints_by_action_context"
- label="Show By..."
- tooltip="Choose how to show breakpoints">
+ class="org.eclipse.debug.internal.ui.actions.breakpointGroups.GroupBreakpointsByAction"
+ helpContextId="group_breakpoints_by_action_context"
+ label="Group By"
+ tooltip="Choose how to group breakpoints">
</action>
</viewContribution>
<!-- Contributions to Expression View Toolbar -->
@@ -2140,18 +2140,22 @@ M4 = Platform-specific fourth key
<breakpointContainerFactory
class="org.eclipse.debug.internal.ui.views.breakpoints.BreakpointProjectContainerFactory"
id="org.eclipse.debug.ui.breakpointProjectContainerFactory"
- label="Project"/>
+ label="Project"
+ icon="icons/full/obj16/prj_obj.gif"/>
<breakpointContainerFactory
class="org.eclipse.debug.internal.ui.views.breakpoints.BreakpointFileContainerFactory"
id="org.eclipse.debug.ui.breakpointFileContainerFactory"
- label="File"/>
+ label="File"
+ icon="icons/full/obj16/file_obj.gif"/>
<breakpointContainerFactory
class="org.eclipse.debug.internal.ui.views.breakpoints.BreakpointTypeContainerFactory"
id="org.eclipse.debug.ui.breakpointTypeContainerFactory"
- label="Breakpoint Type"/>
+ label="Breakpoint Type"
+ icon="icons/full/obj16/brkp_type.gif"/>
<breakpointContainerFactory
class="org.eclipse.debug.internal.ui.views.breakpoints.BreakpointGroupContainerFactory"
id="org.eclipse.debug.ui.breakpointGroupContainerFactory"
- label="Custom Groups"/>
+ label="Custom Groups"
+ icon="icons/full/obj16/brkp_grp.gif"/>
</extension>
</plugin> \ No newline at end of file
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/ShowBreakpointsByAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/AdvancedGroupBreakpointsByAction.java
index 4ee366f34..6b92852db 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/ShowBreakpointsByAction.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/AdvancedGroupBreakpointsByAction.java
@@ -8,54 +8,36 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.debug.internal.ui.actions;
+package org.eclipse.debug.internal.ui.actions.breakpointGroups;
import java.util.List;
import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsView;
import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
/**
- *
+ * Action that opens a dialog to select which breakpoint
+ * container factories should be applies to the breakpoints
+ * view.
*/
-public class ShowBreakpointsByAction extends Action implements IViewActionDelegate {
+public class AdvancedGroupBreakpointsByAction extends Action {
private BreakpointsView fView;
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
- */
- public void init(IViewPart view) {
- fView= (BreakpointsView) view;
+
+ public AdvancedGroupBreakpointsByAction(BreakpointsView view) {
+ fView= view;
}
/* (non-Javadoc)
* @see org.eclipse.jface.action.IAction#run()
*/
public void run() {
- ShowBreakpointsByDialog dialog = new ShowBreakpointsByDialog(fView);
+ GroupBreakpointsByDialog dialog = new GroupBreakpointsByDialog(fView);
if (dialog.open() == Dialog.OK) {
List selectedContainers = dialog.getSelectedContainers();
fView.setBreakpointContainerFactories(selectedContainers);
}
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
- */
- public void run(IAction action) {
- run();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
- */
- public void selectionChanged(IAction action, ISelection selection) {
- }
-
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/GroupBreakpointsByAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/GroupBreakpointsByAction.java
index b49d4b150..e828c85fd 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/GroupBreakpointsByAction.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/GroupBreakpointsByAction.java
@@ -15,7 +15,6 @@ import java.util.Iterator;
import java.util.List;
import org.eclipse.debug.internal.ui.actions.ActionMessages;
-import org.eclipse.debug.internal.ui.actions.ShowBreakpointsByAction;
import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointContainerFactoryManager;
import org.eclipse.debug.internal.ui.views.breakpoints.IBreakpointContainerFactory;
import org.eclipse.jface.action.ActionContributionItem;
@@ -86,9 +85,8 @@ public class GroupBreakpointsByAction extends AbstractBreakpointsViewAction impl
ActionContributionItem item= new ActionContributionItem(action);
item.fill(menu, -1);
- ShowBreakpointsByAction advancedAction = new ShowBreakpointsByAction();
+ AdvancedGroupBreakpointsByAction advancedAction = new AdvancedGroupBreakpointsByAction(fView);
advancedAction.setText(ActionMessages.getString("GroupBreakpointsByAction.1")); //$NON-NLS-1$
- advancedAction.init(fView);
item= new ActionContributionItem(advancedAction);
item.fill(menu, -1);
}
@@ -108,6 +106,7 @@ public class GroupBreakpointsByAction extends AbstractBreakpointsViewAction impl
}
actionLabel.append(factory.getLabel());
action.setText(actionLabel.toString());
+ action.setImageDescriptor(factory.getImageDescriptor());
actions.add(action);
}
return actions;
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/ShowBreakpointsByDialog.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/GroupBreakpointsByDialog.java
index e156562cb..3b52686ee 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/ShowBreakpointsByDialog.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/GroupBreakpointsByDialog.java
@@ -8,9 +8,10 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.debug.internal.ui.actions;
+package org.eclipse.debug.internal.ui.actions.breakpointGroups;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -18,6 +19,7 @@ import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointContainerFactor
import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsView;
import org.eclipse.debug.internal.ui.views.breakpoints.IBreakpointContainerFactory;
import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ILabelProvider;
@@ -25,13 +27,14 @@ import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
@@ -41,14 +44,16 @@ import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.internal.dialogs.ViewLabelProvider;
/**
- *
+ * Dialog which presents available breakpoint groupings to
+ * the user and allows them to specify which they'd like
+ * to use and in what order they should be applied.
*/
-public class ShowBreakpointsByDialog extends Dialog {
+public class GroupBreakpointsByDialog extends Dialog {
private BreakpointsView fView;
- // List viewer that presents available containers
- private ListViewer fAvailableViewer;
+ // Table viewer that presents available containers
+ private TableViewer fAvailableViewer;
private AvailableContainersProvider fAvailableContainersProvider= new AvailableContainersProvider();
// Tree viewer that presents selected containers
@@ -80,7 +85,7 @@ public class ShowBreakpointsByDialog extends Dialog {
/**
* @param parentShell
*/
- protected ShowBreakpointsByDialog(BreakpointsView view) {
+ protected GroupBreakpointsByDialog(BreakpointsView view) {
super(view.getSite().getShell());
fView= view;
}
@@ -116,11 +121,11 @@ public class ShowBreakpointsByDialog extends Dialog {
data.horizontalSpan= 2;
label.setLayoutData(data);
- fAvailableViewer= new ListViewer(composite);
+ fAvailableViewer= new TableViewer(composite);
fAvailableViewer.setContentProvider(fAvailableContainersProvider);
fAvailableViewer.setLabelProvider(labelProvider);
fAvailableViewer.setInput(new Object());
- fAvailableViewer.getList().setLayoutData(new GridData(GridData.FILL_BOTH));
+ fAvailableViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
fAvailableViewer.addDoubleClickListener(new IDoubleClickListener() {
public void doubleClick(DoubleClickEvent event) {
handleAddPressed();
@@ -377,11 +382,36 @@ public class ShowBreakpointsByDialog extends Dialog {
}
private class BreakpointContainerFactoryLabelProvider extends ViewLabelProvider {
+ private HashMap fImageCache= new HashMap();
+
public String getText(Object element) {
if (element instanceof IBreakpointContainerFactory) {
return ((IBreakpointContainerFactory) element).getLabel();
}
- return null;
+ return super.getText(element);
+ }
+ public Image getImage(Object element) {
+ if (element instanceof IBreakpointContainerFactory) {
+ ImageDescriptor imageDescriptor = ((IBreakpointContainerFactory) element).getImageDescriptor();
+ if (imageDescriptor != null) {
+ Image image = (Image) fImageCache.get(imageDescriptor);
+ if (image == null) {
+ image= imageDescriptor.createImage();
+ if (image != null) {
+ fImageCache.put(imageDescriptor, image);
+ }
+ }
+ return image;
+ }
+ }
+ return super.getImage(element);
+ }
+ public void dispose() {
+ Iterator imageIter = fImageCache.values().iterator();
+ while (imageIter.hasNext()) {
+ ((Image) imageIter.next()).dispose();
+ }
+ super.dispose();
}
}
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/AbstractBreakpointContainerFactory.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/AbstractBreakpointContainerFactory.java
index 30c86a49c..bddcaad1d 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/AbstractBreakpointContainerFactory.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/AbstractBreakpointContainerFactory.java
@@ -11,6 +11,7 @@
package org.eclipse.debug.internal.ui.views.breakpoints;
import org.eclipse.debug.core.model.IBreakpoint;
+import org.eclipse.jface.resource.ImageDescriptor;
/**
*
@@ -19,6 +20,7 @@ public abstract class AbstractBreakpointContainerFactory implements IBreakpointC
protected String fLabel;
protected String fIdentifier;
+ private ImageDescriptor fImage;
/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.views.breakpoints.IBreakpointContainerFactory#getContainers(org.eclipse.debug.core.model.IBreakpoint[], java.lang.String)
@@ -40,6 +42,18 @@ public abstract class AbstractBreakpointContainerFactory implements IBreakpointC
}
/* (non-Javadoc)
+ * @see org.eclipse.debug.internal.ui.views.breakpoints.IBreakpointContainerFactory#getImage()
+ */
+ public ImageDescriptor getImageDescriptor() {
+ return fImage;
+ }
+
+
+ public void setImageDescriptor(ImageDescriptor image) {
+ fImage= image;
+ }
+
+ /* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.views.breakpoints.IBreakpointContainerFactory#setIdentifier(java.lang.String)
*/
public void setIdentifier(String identifier) {
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainerFactoryManager.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainerFactoryManager.java
index 878787355..777a42809 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainerFactoryManager.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainerFactoryManager.java
@@ -10,6 +10,8 @@
*******************************************************************************/
package org.eclipse.debug.internal.ui.views.breakpoints;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.util.HashMap;
import java.util.Map;
@@ -19,6 +21,8 @@ import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.Platform;
import org.eclipse.debug.internal.ui.DebugUIPlugin;
import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.osgi.framework.Bundle;
/**
*
@@ -53,9 +57,13 @@ public class BreakpointContainerFactoryManager {
if (id != null && label != null) {
try {
IBreakpointContainerFactory factory = (IBreakpointContainerFactory) element.createExecutableExtension("class"); //$NON-NLS-1$
- factory.setLabel(label);
- factory.setIdentifier(id);
if (factory != null) {
+ factory.setLabel(label);
+ factory.setIdentifier(id);
+ ImageDescriptor imageDescriptor = getImageDescriptor(element);
+ if (imageDescriptor != null) {
+ factory.setImageDescriptor(imageDescriptor);
+ }
fFactories.put(id, factory);
}
} catch (CoreException e) {
@@ -65,6 +73,28 @@ public class BreakpointContainerFactoryManager {
}
/**
+ * Returns the image for this shortcut, or <code>null</code> if none
+ *
+ * @return the image for this shortcut, or <code>null</code> if none
+ */
+ public ImageDescriptor getImageDescriptor(IConfigurationElement element) {
+ ImageDescriptor descriptor= null;
+ String iconPath = element.getAttribute("icon"); //$NON-NLS-1$
+ // iconPath may be null because icon is optional
+ if (iconPath != null) {
+ try {
+ Bundle bundle = Platform.getBundle(element.getDeclaringExtension().getNamespace());
+ URL iconURL = bundle.getEntry("/"); //$NON-NLS-1$
+ iconURL = new URL(iconURL, iconPath);
+ descriptor = ImageDescriptor.createFromURL(iconURL);
+ } catch (MalformedURLException e) {
+ DebugUIPlugin.log(e);
+ }
+ }
+ return descriptor;
+ }
+
+ /**
* Returns the factory with the given identifier or <code>null</code>
* if none.
* @param identifier
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointTypeContainerFactory.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointTypeContainerFactory.java
index b3c449a1a..997ed6578 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointTypeContainerFactory.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointTypeContainerFactory.java
@@ -19,12 +19,15 @@ import java.util.Set;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.model.IBreakpoint;
import org.eclipse.debug.internal.ui.views.DebugUIViewsMessages;
+import org.eclipse.swt.graphics.Image;
/**
*
*/
public class BreakpointTypeContainerFactory extends AbstractBreakpointContainerFactory {
+ private Image fContainerImage;
+
public BreakpointTypeContainerFactory() {
}
@@ -32,6 +35,9 @@ public class BreakpointTypeContainerFactory extends AbstractBreakpointContainerF
* @see org.eclipse.debug.internal.ui.views.breakpoints.IBreakpointContainerFactory#getContainers(org.eclipse.debug.core.model.IBreakpoint[])
*/
public IBreakpointContainer[] getContainers(IBreakpoint[] breakpoints, String parentId) {
+ if (fContainerImage == null) {
+ fContainerImage= getImageDescriptor().createImage();
+ }
HashMap map= new HashMap();
List other= new ArrayList();
for (int i = 0; i < breakpoints.length; i++) {
@@ -59,8 +65,17 @@ public class BreakpointTypeContainerFactory extends AbstractBreakpointContainerF
this,
typeName,
parentId);
+ container.setImage(fContainerImage);
containers.add(container);
}
return (IBreakpointContainer[]) containers.toArray(new IBreakpointContainer[containers.size()]);
}
+
+ public void dispose() {
+ if (fContainerImage != null) {
+ fContainerImage.dispose();
+ fContainerImage= null;
+ }
+ super.dispose();
+ }
}
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 fe0d94a72..7574f2097 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
@@ -117,27 +117,9 @@ public class BreakpointsView extends AbstractDebugView implements ISelectionList
viewer.setLabelProvider(new DelegatingModelPresentation() {
public Image getImage(Object item) {
if (item instanceof IBreakpointContainer) {
- Image image= DebugPluginImages.getImage(IDebugUIConstants.IMG_OBJS_BREAKPOINT_GROUP);
- IBreakpointContainer container= (IBreakpointContainer) item;
- Image containerImage = container.getContainerImage();
- if (container instanceof BreakpointGroupContainer) {
- // First, set to the "disabled group" image
- containerImage= DebugPluginImages.getImage(IDebugUIConstants.IMG_OBJS_BREAKPOINT_GROUP_DISABLED);
- IBreakpoint[] breakpoints = container.getBreakpoints();
- for (int i = 0; i < breakpoints.length; i++) {
- try {
- if (breakpoints[i].isEnabled()) {
- // If any child breakpoints are enabled, reset to the
- // default (enabled) image.
- containerImage= image;
- }
- } catch (CoreException e) {
- DebugUIPlugin.log(e);
- }
- }
- }
- if (containerImage != null) {
- image= containerImage;
+ Image image = ((IBreakpointContainer) item).getContainerImage();
+ if (image == null) {
+ image= DebugPluginImages.getImage(IDebugUIConstants.IMG_OBJS_BREAKPOINT_GROUP);
}
return image;
}
@@ -368,9 +350,8 @@ public class BreakpointsView extends AbstractDebugView implements ISelectionList
}
/**
- * Updates the checked state and icon of the given object's container
- * assuming that the child element has changed to the given
- * enabled state.
+ * Updates the checked state of the given object's container assuming
+ * that the child element has changed to the given enabled state.
* @param object
* @param enable
*/
@@ -399,7 +380,6 @@ public class BreakpointsView extends AbstractDebugView implements ISelectionList
} catch (CoreException e) {
}
}
- viewer.update(container, new String[] { IBasicPropertyConstants.P_IMAGE });
updateParents(parent, enable);
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/IBreakpointContainerFactory.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/IBreakpointContainerFactory.java
index 071d38d20..65bd12558 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/IBreakpointContainerFactory.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/IBreakpointContainerFactory.java
@@ -11,10 +11,13 @@
package org.eclipse.debug.internal.ui.views.breakpoints;
import org.eclipse.debug.core.model.IBreakpoint;
+import org.eclipse.jface.resource.ImageDescriptor;
/**
* Factory which produces <code>IBreakpointContainer</code>s based on some
* factory-specific criteria.
+ *
+ * @since 3.1
*/
public interface IBreakpointContainerFactory {
@@ -41,6 +44,19 @@ public interface IBreakpointContainerFactory {
public void setLabel(String label);
/**
+ * Returns an image for presentation along with this factory or <code>null</code>
+ * if none.
+ * @return an image for presentation along with this factory or <code>null</code>
+ */
+ public ImageDescriptor getImageDescriptor();
+
+ /**
+ * Sets this breakpoint container factory's image.
+ * @param image the image
+ */
+ public void setImageDescriptor(ImageDescriptor image);
+
+ /**
* Returns this breakpoint container factory's unique identifier.
* @return this breakpoint container factory's unique identifier
*/

Back to the top