Bug 44986 - Support for Breakpoint groups
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/SetDefaultBreakpointGroupAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/SetDefaultBreakpointGroupAction.java
index ebf6fde..025015f 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/SetDefaultBreakpointGroupAction.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/breakpointGroups/SetDefaultBreakpointGroupAction.java
@@ -21,9 +21,7 @@
import org.eclipse.jface.dialogs.IInputValidator;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
@@ -32,7 +30,7 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.ListSelectionDialog;
+import org.eclipse.ui.dialogs.ElementListSelectionDialog;
/**
*
@@ -55,48 +53,55 @@
GridData data= (GridData) button.getLayoutData();
data.horizontalAlignment= GridData.BEGINNING;
data.verticalAlignment= GridData.BEGINNING;
- button.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- ListSelectionDialog dialog= new ListSelectionDialog(
- getShell(),
- new Object(),
- new IStructuredContentProvider() {
- public Object[] getElements(Object inputElement) {
- Object[] children = fView.getTreeContentProvider().getElements(fView.getViewer().getInput());
- List groups= new ArrayList();
- for (int i = 0; i < children.length; i++) {
- Object child= children[i];
- if (child instanceof String) {
- groups.add(child);
- }
- }
- return groups.toArray();
- }
- public void dispose() {
- }
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
- },
- new LabelProvider() {
- public Image getImage(Object element) {
- return DebugPluginImages.getImage(IDebugUIConstants.IMG_OBJS_BREAKPOINT_GROUP);
- }
-
- public String getText(Object element) {
- return (String) element;
- }
- },
- "Select a group");
- if (dialog.open() != Dialog.OK) {
- return;
- }
- Object[] result = dialog.getResult();
- getText().setText((String) result[0]);
+
+
+ Object[] children = fView.getTreeContentProvider().getElements(fView.getViewer().getInput());
+ final List groups= new ArrayList();
+ for (int i = 0; i < children.length; i++) {
+ Object child= children[i];
+ if (child instanceof String) {
+ groups.add(child);
}
- });
+ }
+
+ if (groups.size() > 0) {
+ button.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ handleBrowsePressed(groups.toArray());
+ }
+ });
+ } else {
+ button.setEnabled(false);
+ }
return area;
}
+
+ /**
+ * The browse button has been pressed. Prompt the user to choose a group.
+ */
+ private void handleBrowsePressed(final Object[] groups) {
+ ElementListSelectionDialog dialog= new ElementListSelectionDialog(
+ getShell(),
+ new LabelProvider() {
+ public Image getImage(Object element) {
+ return DebugPluginImages.getImage(IDebugUIConstants.IMG_OBJS_BREAKPOINT_GROUP);
+ }
+
+ public String getText(Object element) {
+ return (String) element;
+ }
+ });
+ dialog.setElements(groups);
+ dialog.setMultipleSelection(false);
+ dialog.setMessage("Choose a group");
+ dialog.setTitle("Choose Default Group");
+ if (dialog.open() != Dialog.OK) {
+ return;
+ }
+ Object[] result = dialog.getResult();
+ getText().setText((String) result[0]);
+ }
}
/* (non-Javadoc)