1 11 package org.eclipse.debug.internal.ui.launchConfigurations; 12 13 import java.util.Arrays ; 14 15 import org.eclipse.jface.dialogs.IDialogConstants; 16 import org.eclipse.jface.viewers.CheckStateChangedEvent; 17 import org.eclipse.jface.viewers.CheckboxTableViewer; 18 import org.eclipse.jface.viewers.ICheckStateListener; 19 import org.eclipse.jface.viewers.StructuredViewer; 20 import org.eclipse.swt.SWT; 21 import org.eclipse.swt.layout.GridData; 22 import org.eclipse.swt.widgets.Composite; 23 import org.eclipse.swt.widgets.Shell; 24 import org.eclipse.swt.widgets.Table; 25 26 31 public abstract class AbstractDebugCheckboxSelectionDialog extends AbstractDebugSelectionDialog { 32 33 37 public AbstractDebugCheckboxSelectionDialog(Shell parentShell) { 38 super(parentShell); 39 setShellStyle(getShellStyle() | SWT.RESIZE); 40 } 41 42 46 protected CheckboxTableViewer getCheckBoxTableViewer() { 47 return (CheckboxTableViewer) fViewer; 48 } 49 50 56 protected StructuredViewer createViewer(Composite parent){ 57 Table table = new Table(parent, SWT.BORDER | SWT.SINGLE | SWT.CHECK); 59 table.setLayoutData(new GridData(GridData.FILL_BOTH)); 60 return new CheckboxTableViewer(table); 61 } 62 63 66 protected void addViewerListeners(StructuredViewer viewer) { 67 getCheckBoxTableViewer().addCheckStateListener(new DefaultCheckboxListener()); 68 } 69 70 75 private class DefaultCheckboxListener implements ICheckStateListener{ 76 public void checkStateChanged(CheckStateChangedEvent event) { 77 getButton(IDialogConstants.OK_ID).setEnabled(getCheckBoxTableViewer().getCheckedElements().length > 0); 78 } 79 } 80 81 84 protected void createButtonsForButtonBar(Composite parent) { 85 super.createButtonsForButtonBar(parent); 86 getButton(IDialogConstants.OK_ID).setEnabled(false); 87 } 88 89 92 protected void okPressed() { 93 Object [] elements = getCheckBoxTableViewer().getCheckedElements(); 94 setResult(Arrays.asList(elements)); 95 super.okPressed(); 96 } 97 98 } 99 | Popular Tags |