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)