diff options
author | Sarika Sinha | 2020-05-11 16:06:57 +0000 |
---|---|---|
committer | Sarika Sinha | 2020-05-12 17:14:06 +0000 |
commit | 09da34b662da1271a061825437e872a022a206ed (patch) | |
tree | 0dc5bec76d6638b09d24646e11fe61a5845bd72d | |
parent | 537cb2b909c67d19bb0da43fca9a89597c724996 (diff) | |
download | eclipse.platform.debug-09da34b662da1271a061825437e872a022a206ed.tar.gz eclipse.platform.debug-09da34b662da1271a061825437e872a022a206ed.tar.xz eclipse.platform.debug-09da34b662da1271a061825437e872a022a206ed.zip |
Bug 456304 - Import Breakpoints doesn't seem to support selectingI20200512-1800
multiple bookmarks at once
Change-Id: Iaefced80efe41c1aef367c3a124b12f604c1de23
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/importexport/breakpoints/WizardImportBreakpointsSelectionPage.java | 94 |
1 files changed, 92 insertions, 2 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/importexport/breakpoints/WizardImportBreakpointsSelectionPage.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/importexport/breakpoints/WizardImportBreakpointsSelectionPage.java index 177c36dfa..fba1257bb 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/importexport/breakpoints/WizardImportBreakpointsSelectionPage.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/importexport/breakpoints/WizardImportBreakpointsSelectionPage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2012, 2013 Sebastian Schmidt and others. + * Copyright (c) 2012, 2020 Sebastian Schmidt and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -29,22 +29,37 @@ import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointContainer; import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsViewer; import org.eclipse.debug.ui.DebugUITools; import org.eclipse.debug.ui.actions.ImportBreakpointsOperation; +import org.eclipse.jface.viewers.CheckStateChangedEvent; import org.eclipse.jface.viewers.DecoratingLabelProvider; +import org.eclipse.jface.viewers.ICheckStateListener; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Widget; /** * @since 3.8 * @noextend This class is not intended to be subclassed by clients. */ -public class WizardImportBreakpointsSelectionPage extends WizardPage { +public class WizardImportBreakpointsSelectionPage extends WizardPage implements Listener { private EmbeddedBreakpointsViewer fTView; private boolean fIsVisible; + private Button fSelectAll = null; + private Button fDeselectAll = null; + private ICheckStateListener fImportCheckListener = new ICheckStateListener() { + @Override + public void checkStateChanged(CheckStateChangedEvent event) { + updateCheckedState(event.getChecked()); + } + }; protected WizardImportBreakpointsSelectionPage(String pageName) { super(pageName, ImportExportMessages.WizardImportBreakpointsSelectionPage_2, null); } @@ -56,11 +71,27 @@ public class WizardImportBreakpointsSelectionPage extends WizardPage { SWTFactory.createLabel(composite, ImportExportMessages.WizardExportBreakpointsPage_2, 1); BreakpointManager breakpointManager = new BreakpointManager(); fTView = new EmbeddedBreakpointsViewer(composite, breakpointManager, null); + createButtonsGroup(composite); BreakpointsViewer viewer = fTView.getViewer(); viewer.setLabelProvider(new DecoratingLabelProvider((ILabelProvider) viewer.getLabelProvider(), new BreakpointsPathDecorator())); + viewer.addCheckStateListener(fImportCheckListener); setControl(composite); } + /** + * Creates the buttons for selecting all or none of the elements. + * + * @param parent the parent control + */ + private void createButtonsGroup(Composite parent) { + Composite composite = SWTFactory.createComposite(parent, parent.getFont(), 3, 1, GridData.FILL_HORIZONTAL, 0, + 0); + fSelectAll = SWTFactory.createPushButton(composite, ImportExportMessages.WizardBreakpointsPage_1, null); + fSelectAll.addListener(SWT.Selection, this); + fDeselectAll = SWTFactory.createPushButton(composite, ImportExportMessages.WizardBreakpointsPage_2, null); + fDeselectAll.addListener(SWT.Selection, this); + } + public List<IMarker> getSelectedMarkers() { if(!fIsVisible) { return null; @@ -110,4 +141,63 @@ public class WizardImportBreakpointsSelectionPage extends WizardPage { public Image getImage() { return DebugUITools.getImage(IInternalDebugUIConstants.IMG_WIZBAN_IMPORT_BREAKPOINTS); } + + @Override + public void handleEvent(Event event) { + Widget source = event.widget; + if (source == fSelectAll) { + handleSelectAllPressed(); + } else if (source == fDeselectAll) { + handleDeselectAllPressed(); + } + + } + + /** + * Handles the select all button pressed + * + */ + private void handleSelectAllPressed() { + BreakpointsViewer viewer = fTView.getViewer(); + viewer.getTree().selectAll(); + viewer.setCheckedElements(viewer.getStructuredSelection().toArray()); + viewer.setGrayedElements(new Object[] {}); + viewer.getTree().deselectAll(); + setErrorMessage(null); + setPageComplete(true); + } + + /** + * Handles the de-select all button pressed + * + */ + private void handleDeselectAllPressed() { + BreakpointsViewer viewer = fTView.getViewer(); + viewer.setCheckedElements(new Object[] {}); + viewer.setGrayedElements(new Object[] {}); + setErrorMessage(ImportExportMessages.WizardImportBreakpointsSelectionPage_1); + setPageComplete(false); + } + + /** + * Update the checked state of the given element and all of its children. + * + * @param enable the checked status of the obj + */ + private void updateCheckedState(boolean enable) { + if (!enable) { + int size = fTView.getCheckedElements().size(); + if (size == 0) { + setErrorMessage(ImportExportMessages.WizardImportBreakpointsSelectionPage_1); + setPageComplete(false); + } else { + setErrorMessage(null); + setPageComplete(true); + } + } else { + setErrorMessage(null); + setPageComplete(true); + } + + } } |