List of usage examples for org.eclipse.jface.viewers CheckboxTableViewer CheckboxTableViewer
public CheckboxTableViewer(Table table)
From source file:net.sf.eclipsefp.haskell.ui.internal.editors.cabal.forms.stanzas.TestSuiteDialog.java
License:Open Source License
@Override protected Control createDialogArea(final Composite parent) { Composite composite = (Composite) super.createDialogArea(parent); Label lName = new Label(composite, SWT.WRAP); lName.setText(UITexts.cabalEditor_newTestSuiteString); final Text tName = new Text(composite, SWT.SINGLE | SWT.BORDER); tName.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); tName.addModifyListener(new ModifyListener() { @Override/*ww w.j a v a 2 s . c o m*/ public void modifyText(final ModifyEvent e) { def.name = tName.getText().trim(); validateInput(); } }); Label lSrc = new Label(composite, SWT.WRAP); lSrc.setText(UITexts.cabalEditor_newTestSuite_src); Composite cSrc = new Composite(composite, SWT.NONE); GridLayout glSrc = new GridLayout(2, false); glSrc.marginLeft = 0; glSrc.marginRight = 0; cSrc.setLayout(glSrc); cSrc.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); final Text tSrc = new Text(cSrc, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY); tSrc.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); Button bSrc = new Button(cSrc, SWT.PUSH); bSrc.setText(UITexts.dots); bSrc.addSelectionListener(new SelectionAdapter() { /* (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(final SelectionEvent e) { /*ContainerSelectionDialog csd=new ContainerSelectionDialog( getShell(), project, true, UITexts.source_folder_msg ); csd.setTitle( UITexts.source_folder_title ); if(Window.OK==csd.open()){ src=(IPath)csd.getResult()[0]; tSrc.setText(src.toPortableString()); }*/ FolderSelectionDialog fsd = new FolderSelectionDialog(getShell(), project, true); if (Window.OK == fsd.open()) { def.src = (IContainer) fsd.getFirstResult(); tSrc.setText(def.src.getProjectRelativePath().toPortableString()); validateInput(); } } }); final Button bOverwrite = new Button(composite, SWT.CHECK); bOverwrite.setText(UITexts.option_overwrite); bOverwrite.setSelection(true); bOverwrite.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { overwrite = bOverwrite.getSelection(); } }); Label lMods = new Label(composite, SWT.WRAP); lMods.setText(UITexts.cabalEditor_newTestSuite_modules); Set<ModuleDef> modules = new HashSet<>(); for (PackageDescriptionStanza stz : pkgDesc.getStanzas()) { if (CabalSyntax.SECTION_LIBRARY.equals(stz.getType()) || CabalSyntax.SECTION_EXECUTABLE.equals(stz.getType())) { Collection<String> sourceDirs = new HashSet<>(); if (stz.getProperties().containsKey(CabalSyntax.FIELD_HS_SOURCE_DIRS.getCabalName())) { //sourceDirs = root.getStanza().getProperties() // .get( CabalSyntax.FIELD_HS_SOURCE_DIRS.getCabalName() ); sourceDirs.addAll(stz.getSourceDirs()); } else { sourceDirs.add(""); } for (String s : sourceDirs) { List<String> thisModules = new ArrayList<>(); ModulesVisitor visitor = new ModulesVisitor(thisModules, Collections.singletonList(s)); try { project.accept(visitor); } catch (CoreException e) { HaskellUIPlugin.log(e); } for (String mod : thisModules) { // check we're in library AND the module is exposed boolean isLib = CabalSyntax.SECTION_LIBRARY.equals(stz.getType()) && ModuleInclusionType.EXPOSED.equals(stz.getModuleInclusionType(mod)); modules.add(new ModuleDef(mod, s, isLib)); } } } } Table tMods = new Table(composite, SWT.V_SCROLL | SWT.BORDER | SWT.CHECK); CheckboxTableViewer tvMods = new CheckboxTableViewer(tMods); tMods.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_VERTICAL | GridData.VERTICAL_ALIGN_FILL)); tvMods.setContentProvider(new ArrayContentProvider()); tvMods.setComparator(new WorkbenchViewerComparator()); tvMods.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(final CheckStateChangedEvent arg0) { ModuleDef d = (ModuleDef) arg0.getElement(); if (arg0.getChecked()) { def.modules.add(d); } else { def.modules.remove(d); } } }); /*tvMods.getTable().setHeaderVisible( true ); TableColumn exposedCol = new TableColumn( tvMods.getTable(), SWT.NULL ); exposedCol.setText( UITexts.cabalEditor_newTestSuite_modules_col_test ); exposedCol.pack(); TableColumn otherCol = new TableColumn( tvMods.getTable(), SWT.NULL ); otherCol.setText( UITexts.cabalEditor_newTestSuite_modules_col_mod ); otherCol.pack(); */ tvMods.setInput(modules); validateInput(); applyDialogFont(composite); return composite; }
From source file:net.sf.eclipsefp.haskell.ui.internal.preferences.hsimpls.ImplementationsBlock.java
License:Open Source License
private void createViewer() { viewer = new CheckboxTableViewer(table); viewer.setLabelProvider(new HsImplementationsLP()); viewer.setContentProvider(new HsImplementationsCP(installations)); // by default, sort by name sortByName();/*from w ww . j a v a 2 s . c o m*/ viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent evt) { enableButtons(); } }); viewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(final CheckStateChangedEvent event) { if (event.getChecked()) { IHsImplementation element = (IHsImplementation) event.getElement(); setCheckedHsImplementation(element.getName()); } else { setCheckedHsImplementation(null); } } }); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(final DoubleClickEvent e) { if (!viewer.getSelection().isEmpty()) { editHsImplementation(); } } }); }
From source file:net.sf.eclipsensis.dialogs.NSISOutlineFilterDialog.java
License:Open Source License
@Override protected Control createControl(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(1, false); layout.marginWidth = layout.marginHeight = 0; composite.setLayout(layout);//from ww w . j a va 2 s . co m Label l = new Label(composite, SWT.NONE); l.setText(EclipseNSISPlugin.getResourceString("filter.dialog.caption")); //$NON-NLS-1$ l.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); Composite buttons = new Composite(parent, SWT.NONE); layout = new GridLayout(2, true); layout.marginWidth = layout.marginHeight = 0; buttons.setLayout(layout); buttons.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false)); final Table table = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION | SWT.V_SCROLL); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); table.addListener(SWT.EraseItem, new Listener() { public void handleEvent(Event event) { event.detail &= ~SWT.SELECTED; } }); mViewer = new CheckboxTableViewer(table); mViewer.setContentProvider(new CollectionContentProvider()); mViewer.setLabelProvider(new CollectionLabelProvider() { @Override public Image getColumnImage(Object element, int columnIndex) { if (element instanceof String && columnIndex == 0) { Type type = mResources.getType((String) element); if (type != null) { return type.getImage(); } } return super.getColumnImage(element, columnIndex); } @Override public String getColumnText(Object element, int columnIndex) { if (element instanceof String && columnIndex == 0) { Type type = mResources.getType((String) element); if (type != null) { return type.getName(); } } return super.getColumnText(element, columnIndex); } }); mViewer.setComparator(new ViewerComparator()); final List<Type> types = new ArrayList<Type>(mResources.getTypes()); for (Iterator<Type> iter = types.iterator(); iter.hasNext();) { Type type = iter.next(); if (type.isClosing()) { iter.remove(); continue; } if (!type.isPseudo()) { String keyword = NSISKeywords.getInstance().getKeyword(type.getType()); if (!NSISKeywords.getInstance().isValidKeyword(keyword)) { iter.remove(); } } } mViewer.setInput(types); mViewer.setCheckedElements(mFilteredTypes.toArray()); mViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { Type type = (Type) event.getElement(); if (event.getChecked()) { mFilteredTypes.add(type); } else { mFilteredTypes.remove(type); } } }); Button b = new Button(buttons, SWT.PUSH); b.setText(EclipseNSISPlugin.getResourceString("filter.dialog.select.all.label")); //$NON-NLS-1$ b.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { mFilteredTypes.clear(); mFilteredTypes.addAll(mResources.getTypes()); mViewer.setAllChecked(true); } }); b = new Button(buttons, SWT.PUSH); b.setText(EclipseNSISPlugin.getResourceString("filter.dialog.deselect.all.label")); //$NON-NLS-1$ b.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { mFilteredTypes.clear(); mViewer.setAllChecked(false); } }); return composite; }
From source file:net.sf.eclipsensis.dialogs.NSISTaskTagsPreferencePage.java
License:Open Source License
@Override protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); GridLayout layout = new GridLayout(2, false); layout.marginHeight = 0;//from ww w .j a v a 2 s . co m layout.marginWidth = 0; composite.setLayout(layout); Table table = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION | SWT.V_SCROLL); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.widthHint = convertWidthInCharsToPixels(65); data.heightHint = convertHeightInCharsToPixels(10); table.setLayoutData(data); table.setHeaderVisible(true); table.setLinesVisible(true); TableColumn[] columns = new TableColumn[2]; columns[0] = new TableColumn(table, SWT.NONE); columns[0].setText(EclipseNSISPlugin.getResourceString("task.tag.label")); //$NON-NLS-1$ columns[1] = new TableColumn(table, SWT.NONE); columns[1].setText(EclipseNSISPlugin.getResourceString("task.tag.priority.label")); //$NON-NLS-1$ mTableViewer = new CheckboxTableViewer(table); mTableViewer.setLabelProvider(new TaskTagLabelProvider()); mTableViewer.setContentProvider(new CollectionContentProvider()); Collator collator = Collator.getInstance(); collator.setStrength(Collator.PRIMARY); mTableViewer.setSorter(new ViewerSorter(collator)); mTableViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent e) { edit(); } }); mTableViewer.addCheckStateListener(new ICheckStateListener() { @SuppressWarnings("unchecked") public void checkStateChanged(CheckStateChangedEvent event) { NSISTaskTag taskTag = (NSISTaskTag) event.getElement(); boolean checked = event.getChecked(); if (checked) { Collection<NSISTaskTag> taskTags = (Collection<NSISTaskTag>) mTableViewer.getInput(); for (Iterator<NSISTaskTag> iter = taskTags.iterator(); iter.hasNext();) { NSISTaskTag t = iter.next(); if (!t.equals(taskTag) && t.isDefault()) { t.setDefault(false); mTableViewer.setChecked(t, false); mTableViewer.refresh(t, true); break; } } } taskTag.setDefault(checked); mTableViewer.setChecked(taskTag, checked); mTableViewer.refresh(taskTag, true); updateButtons(); } }); mTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent e) { updateButtons(); } }); Composite buttons = new Composite(composite, SWT.NONE); buttons.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false)); layout = new GridLayout(); layout.marginHeight = 0; layout.marginWidth = 0; buttons.setLayout(layout); Button addButton = new Button(buttons, SWT.PUSH); addButton.setImage(CommonImages.ADD_ICON); addButton.setToolTipText(EclipseNSISPlugin.getResourceString("new.tooltip")); //$NON-NLS-1$ addButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); addButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event e) { add(); } }); mEditButton = new Button(buttons, SWT.PUSH); mEditButton.setImage(CommonImages.EDIT_ICON); mEditButton.setToolTipText(EclipseNSISPlugin.getResourceString("edit.tooltip")); //$NON-NLS-1$ mEditButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); mEditButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event e) { edit(); } }); mRemoveButton = new Button(buttons, SWT.PUSH); mRemoveButton.setImage(CommonImages.DELETE_ICON); mRemoveButton.setToolTipText(EclipseNSISPlugin.getResourceString("remove.tooltip")); //$NON-NLS-1$ mRemoveButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); mRemoveButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event e) { remove(); } }); mCaseSensitiveButton = new Button(composite, SWT.CHECK); mCaseSensitiveButton.setText(EclipseNSISPlugin.getResourceString("task.tags.case.sensitive.label")); //$NON-NLS-1$ mCaseSensitiveButton.setSelection(NSISPreferences.getInstance().isCaseSensitiveTaskTags()); data = new GridData(SWT.FILL, SWT.CENTER, true, false); data.horizontalSpan = 2; Dialog.applyDialogFont(composite); FontData[] fd = table.getFont().getFontData(); for (int i = 0; i < fd.length; i++) { fd[i].setStyle(fd[i].getStyle() | SWT.BOLD); } mBoldFont = new Font(getShell().getDisplay(), fd); mOriginalTags = NSISPreferences.getInstance().getTaskTags(); Collection<NSISTaskTag> taskTags = NSISPreferences.getInstance().getTaskTags(); mTableViewer.setInput(NSISPreferences.getInstance().getTaskTags()); mTableViewer.setAllChecked(false); for (Iterator<NSISTaskTag> iter = taskTags.iterator(); iter.hasNext();) { NSISTaskTag t = iter.next(); if (t.isDefault()) { mTableViewer.setChecked(t, true); break; } } updateButtons(); table.addControlListener(new TableResizer()); return composite; }
From source file:net.sf.eclipsensis.installoptions.dialogs.InstallOptionsPreferencePage.java
License:Open Source License
/** * @param composite//from w w w .j a va 2 s . c o m */ private Control createDialogSizesGroup(final Composite composite) { final Group group = new Group(composite, SWT.SHADOW_ETCHED_IN); GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); gridData.widthHint = convertWidthInCharsToPixels(60); group.setLayoutData(gridData); GridLayout layout = new GridLayout(2, false); group.setLayout(layout); group.setText(InstallOptionsPlugin.getResourceString("dialog.sizes.group.name")); //$NON-NLS-1$ Table table = new Table(group, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); gridData = new GridData(SWT.FILL, SWT.FILL, true, true); table.setLayoutData(gridData); FontData[] fd = table.getFont().getFontData(); for (int i = 0; i < fd.length; i++) { fd[i].setStyle(fd[i].getStyle() | SWT.BOLD); } final Font boldFont = new Font(table.getShell().getDisplay(), fd); table.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { boldFont.dispose(); } }); table.setHeaderVisible(true); table.setLinesVisible(true); final TableColumn[] columns = new TableColumn[3]; columns[0] = new TableColumn(table, SWT.NONE); columns[0].setText(InstallOptionsPlugin.getResourceString("dialog.size.name.label")); //$NON-NLS-1$ columns[1] = new TableColumn(table, SWT.NONE); columns[1].setText(InstallOptionsPlugin.getResourceString("dialog.size.width.label")); //$NON-NLS-1$ columns[2] = new TableColumn(table, SWT.NONE); columns[2].setText(InstallOptionsPlugin.getResourceString("dialog.size.height.label")); //$NON-NLS-1$ mDialogSizeViewer = new CheckboxTableViewer(table); DialogSizeLabelProvider provider = new DialogSizeLabelProvider(); provider.setDefaultFont(boldFont); mDialogSizeViewer.setLabelProvider(provider); mDialogSizeViewer.setContentProvider(new CollectionContentProvider()); mDialogSizeViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent e) { editDialogSize(); } }); final Composite buttons = new Composite(group, SWT.NONE); buttons.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false)); layout = new GridLayout(); layout.marginHeight = 0; layout.marginWidth = 0; buttons.setLayout(layout); createButton(buttons, CommonImages.ADD_ICON, "new.tooltip", //$NON-NLS-1$ new Listener() { public void handleEvent(Event e) { new DialogSizeDialog(getShell(), null).open(); } }); mEditDialogSize = createButton(buttons, CommonImages.EDIT_ICON, "edit.tooltip", //$NON-NLS-1$ new Listener() { public void handleEvent(Event e) { editDialogSize(); } }); mRemoveDialogSize = createButton(buttons, CommonImages.DELETE_ICON, "remove.tooltip", //$NON-NLS-1$ new Listener() { @SuppressWarnings("unchecked") public void handleEvent(Event e) { IStructuredSelection selection = (IStructuredSelection) mDialogSizeViewer.getSelection(); if (!selection.isEmpty()) { Collection<DialogSize> coll = (Collection<DialogSize>) mDialogSizeViewer.getInput(); for (Iterator<?> iter = selection.toList().iterator(); iter.hasNext();) { DialogSize ds = (DialogSize) iter.next(); coll.remove(ds); if (mDefaultDialogSize.equals(ds)) { mDefaultDialogSize = null; } } if (mDefaultDialogSize == null && coll.size() > 0) { mDefaultDialogSize = coll.iterator().next(); mDefaultDialogSize.setDefault(true); } mDialogSizeViewer.refresh(); mDialogSizeViewer.setAllChecked(false); mDialogSizeViewer.setChecked(mDefaultDialogSize, true); } } }); mDialogSizeViewer.addCheckStateListener(new ICheckStateListener() { @SuppressWarnings("unchecked") public void checkStateChanged(CheckStateChangedEvent event) { DialogSize dialogSize = (DialogSize) event.getElement(); boolean checked = event.getChecked(); Collection<DialogSize> dialogSizes = (Collection<DialogSize>) mDialogSizeViewer.getInput(); if (dialogSizes.size() == 1) { checked = true; } else { for (Iterator<DialogSize> iter = dialogSizes.iterator(); iter.hasNext();) { DialogSize ds = iter.next(); if (!ds.equals(dialogSize) && ds.isDefault() == checked) { ds.setDefault(!checked); mDialogSizeViewer.setChecked(ds, !checked); mDialogSizeViewer.refresh(ds, true); break; } } } dialogSize.setDefault(checked); mDialogSizeViewer.setChecked(dialogSize, checked); mDialogSizeViewer.refresh(dialogSize, true); updateButtons(); } }); mDialogSizeViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent e) { updateButtons(); } }); Label l = new Label(group, SWT.WRAP); gridData = new GridData(SWT.FILL, SWT.CENTER, true, false); gridData.horizontalSpan = 2; l.setLayoutData(gridData); l.setText(InstallOptionsPlugin.getResourceString("dialog.size.group.footer")); //$NON-NLS-1$ updateDialogSizeViewerInput(); table.addControlListener(new TableResizer(new double[] { 2, 1, 1 })); return group; }
From source file:net.sf.eclipsensis.installoptions.properties.tabbed.section.GeneralPropertySection.java
License:Open Source License
private Control createFlagsSection(final InstallOptionsWidget widget, Composite parent, final InstallOptionsCommandHelper commandHelper) { final String displayName = widget.getPropertyDescriptor(InstallOptionsModel.PROPERTY_FLAGS) .getDisplayName();/*from ww w. jav a 2 s.com*/ TabbedPropertySheetWidgetFactory factory = getWidgetFactory(); Composite group = factory.createGroup(parent, displayName); GridLayout layout = new GridLayout(2, true); group.setLayout(layout); final boolean[] nonUserChange = { false }; final Table table = factory.createTable(group, SWT.FLAT | SWT.CHECK | SWT.SINGLE | SWT.HIDE_SELECTION); GC gc = new GC(table); gc.setFont(JFaceResources.getDialogFont()); FontMetrics fontMetrics = gc.getFontMetrics(); gc.dispose(); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.horizontalSpan = 2; data.widthHint = fontMetrics.getAverageCharWidth() * 30; data.heightHint = fontMetrics.getHeight() * 10; table.setLayoutData(data); final CheckboxTableViewer viewer = new CheckboxTableViewer(table); viewer.setContentProvider(new CollectionContentProvider()); viewer.setLabelProvider(new LabelProvider()); viewer.setComparer(new IElementComparer() { public boolean equals(Object a, Object b) { return Common.objectsAreEqual(a, b); } public int hashCode(Object element) { if (element != null) { return element.hashCode(); } return 0; } }); table.addListener(SWT.EraseItem, new Listener() { public void handleEvent(Event event) { event.detail &= ~(SWT.SELECTED | SWT.FOCUSED); } }); final List<String> flags = new ArrayList<String>(widget.getFlags()); final Collection<String> availableFlags = widget.getTypeDef().getFlags(); final IPropertyDescriptor descriptor = widget.getPropertyDescriptor(InstallOptionsModel.PROPERTY_FLAGS); final ICellEditorValidator validator = PropertyDescriptorHelper .getCellEditorValidator((PropertyDescriptor) descriptor); final Runnable runnable = new Runnable() { public void run() { nonUserChange[0] = true; try { if (validator != null) { String error = validator.isValid(flags); if (error != null) { Common.openError(table.getShell(), error, InstallOptionsPlugin.getShellImage()); viewer.setCheckedElements(widget.getFlags().toArray()); return; } } commandHelper.propertyChanged(InstallOptionsModel.PROPERTY_FLAGS, descriptor.getDisplayName(), widget, flags); } finally { nonUserChange[0] = false; } } }; viewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { String flag = (String) event.getElement(); boolean checked = event.getChecked(); if (checked) { flags.add(flag); } else { flags.remove(flag); } runnable.run(); } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (!event.getSelection().isEmpty()) { String flag = (String) ((IStructuredSelection) event.getSelection()).getFirstElement(); viewer.setSelection(StructuredSelection.EMPTY); boolean checked = viewer.getChecked(flag); viewer.setChecked(flag, !checked); if (!checked) { flags.add(flag); } else { flags.remove(flag); } runnable.run(); } } }); Button b = factory.createButton(group, InstallOptionsPlugin.getResourceString("select.all.label"), //$NON-NLS-1$ SWT.PUSH | SWT.FLAT); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { flags.clear(); flags.addAll(availableFlags); viewer.setCheckedElements(availableFlags.toArray()); runnable.run(); } }); b.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); b = factory.createButton(group, InstallOptionsPlugin.getResourceString("deselect.all.label"), //$NON-NLS-1$ SWT.PUSH | SWT.FLAT); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { flags.clear(); viewer.setCheckedElements(Common.EMPTY_STRING_ARRAY); runnable.run(); } }); b.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); viewer.setInput(availableFlags == null ? Collections.EMPTY_LIST : availableFlags); viewer.setCheckedElements(flags.toArray()); final PropertyChangeListener listener = new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals(InstallOptionsModel.PROPERTY_FLAGS)) { if (!nonUserChange[0]) { List<String> newFlags = widget.getFlags(); if (Common.isValid(viewer.getControl())) { viewer.setCheckedElements( newFlags == null ? Common.EMPTY_STRING_ARRAY : newFlags.toArray()); flags.clear(); flags.addAll(newFlags); } } } } }; widget.addPropertyChangeListener(listener); group.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { widget.removePropertyChangeListener(listener); } }); return group; }
From source file:net.sf.eclipsensis.installoptions.properties.tabbed.section.ListItemsPropertySectionCreator.java
License:Open Source License
protected CheckboxTableViewer createListItemsAndStateSection(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory, final InstallOptionsCommandHelper commandHelper) { final IPropertyDescriptor listItemsDescriptor = getWidget() .getPropertyDescriptor(InstallOptionsModel.PROPERTY_LISTITEMS); final IPropertyDescriptor stateDescriptor = getWidget() .getPropertyDescriptor(InstallOptionsModel.PROPERTY_STATE); if (listItemsDescriptor != null && stateDescriptor != null) { final boolean[] nonUserChange = { false }; Composite parent2 = widgetFactory.createGroup(parent, listItemsDescriptor.getDisplayName()); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.horizontalSpan = 2;//w w w . ja v a 2 s . co m parent2.setLayoutData(data); GridLayout gridLayout = new GridLayout(2, false); gridLayout.verticalSpacing = 0; gridLayout.marginHeight = 0; gridLayout.marginTop = 2; parent2.setLayout(gridLayout); final Table table = widgetFactory.createTable(parent2, SWT.FLAT | SWT.CHECK | SWT.MULTI); GC gc = new GC(table); gc.setFont(JFaceResources.getDialogFont()); FontMetrics fontMetrics = gc.getFontMetrics(); gc.dispose(); data = new GridData(SWT.FILL, SWT.FILL, true, true); data.widthHint = fontMetrics.getAverageCharWidth() * 30; data.heightHint = fontMetrics.getHeight() * 5; table.setLayoutData(data); final CheckboxTableViewer viewer = new CheckboxTableViewer(table); viewer.setContentProvider(new CollectionContentProvider()); viewer.setLabelProvider(new LabelProvider()); viewer.setComparer(new IElementComparer() { public boolean equals(Object a, Object b) { if (a instanceof String && b instanceof String) { return Common.stringsAreEqual((String) a, (String) b, true); } return Common.objectsAreEqual(a, b); } public int hashCode(Object element) { Object element2 = element; if (element2 != null) { if (element2 instanceof String) { element2 = ((String) element2).toLowerCase(); } return element2.hashCode(); } return 0; } }); final InstallOptionsListItems widget = (InstallOptionsListItems) getWidget(); final List<String> listItems = new ArrayList<String>(widget.getListItems()); String[] state = Common.tokenize(widget.getState(), IInstallOptionsConstants.LIST_SEPARATOR); final ICellEditorValidator stateValidator = PropertyDescriptorHelper .getCellEditorValidator((PropertyDescriptor) stateDescriptor); viewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { if (!nonUserChange[0]) { boolean checked = event.getChecked(); String oldState = getWidget().getStringPropertyValue(InstallOptionsModel.PROPERTY_STATE); String newState; if (checked && !((InstallOptionsListItems) getWidget()).isMultiSelect()) { String element = (String) event.getElement(); viewer.setCheckedElements(new String[] { element }); newState = element; } else { newState = Common.flatten(viewer.getCheckedElements(), IInstallOptionsConstants.LIST_SEPARATOR); } if (!Common.stringsAreEqual(oldState, newState, true)) { String error = stateValidator.isValid(newState); if (Common.isEmpty(error)) { commandHelper.propertyChanged(InstallOptionsModel.PROPERTY_STATE, stateDescriptor.getDisplayName(), getWidget(), newState); } else { Common.openError(viewer.getTable().getShell(), error, InstallOptionsPlugin.getShellImage()); viewer.setCheckedElements( Common.tokenize(oldState, IInstallOptionsConstants.LIST_SEPARATOR)); } } } } }); viewer.setInput(listItems); viewer.setCheckedElements(state); final PropertyChangeListener listener = new PropertyChangeListener() { @SuppressWarnings("unchecked") public void propertyChange(PropertyChangeEvent evt) { nonUserChange[0] = true; try { if (evt.getPropertyName().equals(InstallOptionsModel.PROPERTY_LISTITEMS)) { List<String> list = (List<String>) evt.getNewValue(); if (Common.isValid(viewer.getControl())) { List<String> oldInput = (List<String>) viewer.getInput(); if (!Common.objectsAreEqual(list, oldInput)) { viewer.setInput(new ArrayList<String>(list)); String state = ((InstallOptionsListItems) getWidget()).getState(); viewer.setCheckedElements( Common.tokenize(state, IInstallOptionsConstants.LIST_SEPARATOR)); } } } else if (evt.getPropertyName().equals(InstallOptionsModel.PROPERTY_STATE)) { String state = (String) evt.getNewValue(); if (Common.isValid(viewer.getControl())) { viewer.setCheckedElements( Common.tokenize(state, IInstallOptionsConstants.LIST_SEPARATOR)); } } } finally { nonUserChange[0] = false; } } }; widget.addPropertyChangeListener(listener); table.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { widget.removePropertyChangeListener(listener); } }); Composite buttons = widgetFactory.createComposite(parent2); buttons.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true)); GridLayout layout = new GridLayout(2, true); layout.marginHeight = layout.marginWidth = 0; buttons.setLayout(layout); createListAndStateButtons(buttons, viewer, widgetFactory, commandHelper); CLabel l = widgetFactory.createCLabel(parent2, InstallOptionsPlugin.getResourceString("listitems.state.checked.items.message"), SWT.FLAT); //$NON-NLS-1$ FontData[] fd = l.getFont().getFontData(); for (int i = 0; i < fd.length; i++) { fd[i].setStyle(fd[i].getStyle() | SWT.BOLD); fd[i].setHeight((int) (fd[i].getHeight() * 0.9)); } final Font f = new Font(l.getDisplay(), fd); l.setFont(f); l.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { f.dispose(); } }); data = new GridData(SWT.FILL, SWT.FILL, true, false); data.horizontalSpan = 2; l.setLayoutData(data); return viewer; } return null; }
From source file:net.sf.eclipsensis.template.AbstractTemplateSettings.java
License:Open Source License
protected void createContents() { GC gc = new GC(this); Font old = gc.getFont();// w ww . ja v a 2 s.com gc.setFont(JFaceResources.getDialogFont()); FontMetrics fontMetrics = gc.getFontMetrics(); gc.setFont(old); gc.dispose(); GridLayout layout = new GridLayout(); layout.numColumns = 2; layout.marginHeight = 0; layout.marginWidth = 0; this.setLayout(layout); Composite innerParent = new Composite(this, SWT.NONE); GridLayout innerLayout = new GridLayout(); innerLayout.numColumns = 2; innerLayout.marginHeight = 0; innerLayout.marginWidth = 0; innerParent.setLayout(innerLayout); GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.horizontalSpan = 2; innerParent.setLayoutData(gd); final Table table = new Table(innerParent, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION | SWT.V_SCROLL); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.widthHint = fontMetrics.getAverageCharWidth() * 3; data.heightHint = fontMetrics.getHeight() * 10; table.setLayoutData(data); table.setHeaderVisible(true); table.setLinesVisible(true); TableColumn[] columns = { new TableColumn(table, SWT.NONE) }; columns[0].setText(EclipseNSISPlugin.getResourceString("template.settings.name.label")); //$NON-NLS-1$ mTableViewer = new CheckboxTableViewer(table); mTableViewer.setLabelProvider(new CollectionLabelProvider()); mTableViewer.setContentProvider(new EmptyContentProvider() { /* (non-Javadoc) * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ @Override public Object[] getElements(Object inputElement) { if (inputElement != null && inputElement.equals(mTemplateManager)) { return mTemplateManager.getTemplates().toArray(); } return super.getElements(inputElement); } }); Collator collator = Collator.getInstance(); collator.setStrength(Collator.PRIMARY); mTableViewer.setSorter(new ViewerSorter(collator)); ViewerFilter filter = new ViewerFilter() { @Override @SuppressWarnings("unchecked") public boolean select(Viewer viewer, Object parentElement, Object element) { if (element != null && mTemplateManager.getTemplateClass().isAssignableFrom(element.getClass())) { T template = (T) element; return template.isAvailable() && !template.isDeleted(); } return true; } }; mTableViewer.addFilter(filter); final INSISHomeListener nsisHomeListener = new INSISHomeListener() { public void nsisHomeChanged(IProgressMonitor monitor, NSISHome oldHome, NSISHome newHome) { Display.getDefault().asyncExec(new Runnable() { public void run() { mTableViewer.refresh(); mTableViewer.setCheckedElements(getEnabledTemplates()); } }); } }; NSISPreferences.getInstance().addListener(nsisHomeListener); table.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { NSISPreferences.getInstance().removeListener(nsisHomeListener); } }); mTableViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent e) { edit(); } }); mTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent e) { doSelectionChanged(); } }); mTableViewer.addCheckStateListener(new ICheckStateListener() { @SuppressWarnings("unchecked") public void checkStateChanged(CheckStateChangedEvent event) { T oldTemplate = (T) event.getElement(); T newTemplate = (T) oldTemplate.clone(); newTemplate.setEnabled(!oldTemplate.isEnabled()); getTemplateManager().updateTemplate(oldTemplate, newTemplate); mTableViewer.refresh(true); mTableViewer.setSelection(new StructuredSelection(newTemplate)); mTableViewer.setChecked(newTemplate, newTemplate.isEnabled()); doSelectionChanged(); } }); Composite buttons = new Composite(innerParent, SWT.NONE); buttons.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false)); layout = new GridLayout(); layout.marginHeight = 0; layout.marginWidth = 0; buttons.setLayout(layout); createButtons(buttons); Label label = new Label(this, SWT.NONE); label.setText(EclipseNSISPlugin.getResourceString("template.settings.description.label")); //$NON-NLS-1$ data = new GridData(); data.horizontalSpan = 2; label.setLayoutData(data); mDescriptionText = new StyledText(this, SWT.BORDER | SWT.MULTI | SWT.READ_ONLY | SWT.WRAP); mDescriptionText.setBackground(getShell().getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND)); mDescriptionText.setCursor(null); mDescriptionText.setCaret(null); data = new GridData(SWT.FILL, SWT.FILL, true, true); data.horizontalSpan = 2; data.heightHint = fontMetrics.getHeight() * 5; mDescriptionText.setLayoutData(data); mTableViewer.setInput(mTemplateManager); mTableViewer.setCheckedElements(getEnabledTemplates()); updateButtons(); table.addControlListener(new TableResizer()); Dialog.applyDialogFont(this); }
From source file:net.sourceforge.docfetcher.view.ParserGroup.java
License:Open Source License
public ParserGroup(Composite parent) { super(parent); group.setText(Msg.filetype_group_label.value()); group.setLayout(FillLayoutFactory.getInst().margin(Const.GROUP_MARGIN).create()); Table table = new Table(group, SWT.CHECK | SWT.MULTI | SWT.BORDER); viewer = new CheckboxTableViewer(table); table.addKeyListener(new ParserGroupNavigator()); // Remove selection when viewer loses focus viewer.getTable().addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent e) { ((Table) e.widget).deselectAll(); }// w w w . j a v a 2s . c o m }); viewer.setContentProvider(new TableContentProviderAdapter() { public Object[] getElements(Object inputElement) { return (Object[]) inputElement; } }); viewer.setLabelProvider(new TableLabelProviderAdapter() { public String getColumnText(Object element, int columnIndex) { return ((Parser) element).getFileType(); } }); viewer.setSorter(new ViewerSorter() { public int compare(Viewer viewer, Object e1, Object e2) { return ((Parser) e1).compareTo((Parser) e2); } }); // Update parser check states on changes viewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { Parser parser = (Parser) event.getElement(); boolean oldState = parser.isChecked(); boolean newState = event.getChecked(); if (oldState != newState) // Avoid MVC circularity parser.setChecked(newState); } }); // Create context menu contextMenu = new MenuManager(); viewer.getTable().setMenu(contextMenu.createContextMenu(viewer.getTable())); contextMenu.add(new CheckAllAction(true)); contextMenu.add(new CheckAllAction(false)); contextMenu.add(new Separator()); contextMenu.add(new CheckInvertAction()); }
From source file:net.sourceforge.tagsea.resources.sharing.ui.ResourceWaypointImportWizardPage2.java
License:Open Source License
public void createControl(Composite parent) { Composite page = new Composite(parent, SWT.NONE); page.setLayout(new GridLayout()); this.treeViewer = new CheckboxTreeViewer(page, SWT.BORDER | SWT.SINGLE); treeViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); treeViewer.setContentProvider(new ResourceWaypointTreeContentProvider()); treeViewer.setLabelProvider(new DecoratingLabelProvider(new ResourceWaypointTreeLabelProvider(), new MultiLabelDecorator(new ILabelDecorator[] { new ResourceWaypointLabelDecorator(), new MissingResourceLabelDecorator(), new ConflictWaypointLabelDecorator(false, true) }))); treeViewer.setInput(new ResourceWaypointTree(descriptors)); treeViewer.expandAll();// w ww . jav a 2 s . c o m treeViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { updateTreeCheckState((CheckboxTreeViewer) event.getCheckable(), event.getChecked(), event.getElement()); selectedWaypoints.clear(); for (Object o : treeViewer.getCheckedElements()) { if (o instanceof IResourceWaypointDescriptor) { selectedWaypoints.add((IResourceWaypointDescriptor) o); } } tableViewer.refresh(); updateWarnings(); } private void updateTreeCheckState(CheckboxTreeViewer viewer, boolean checked, Object element) { // sometimes content providers don't follow the API for ITreeContentProvider, and //neglect to supply parents because they are too hard to calculate. So, use //the elements in the tree instead. Tree tree = viewer.getTree(); TreeItem[] children = tree.getItems(); //breadth-first search for the element. LinkedList<TreeItem> items = new LinkedList<TreeItem>(); TreeItem item = null; for (TreeItem child : children) { items.add(child); } while (items.size() > 0) { TreeItem current = items.removeFirst(); if (current.getData() == element) { item = current; break; } TreeItem[] childItems = current.getItems(); for (TreeItem child : childItems) { items.add(child); } } if (item == null) return; //get all of the leafs for the item. items.clear(); LinkedList<Object> leafElements = new LinkedList<Object>(); items.add(item); while (items.size() > 0) { TreeItem current = items.removeFirst(); TreeItem[] childItems = current.getItems(); if (childItems.length == 0) { leafElements.add(current.getData()); } else { for (TreeItem child : childItems) { items.add(child); } } } updateTreeGrayedState(viewer, leafElements, checked); } }); treeViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection s = (IStructuredSelection) event.getSelection(); IResourceWaypointDescriptor d = null; if (s.size() > 0) { Object o = s.getFirstElement(); if (o instanceof IAdaptable) { d = (IResourceWaypointDescriptor) ((IAdaptable) o) .getAdapter(IResourceWaypointDescriptor.class); } } if (d != null) { tableStack.topControl = tableViewer.getControl(); tableViewer.setInput(d); ((Composite) getControl()).layout(); List<Object> checks = new ArrayList<Object>(checkedMap.get(d)); if (tagCheckedSet.contains(d)) { checks.add(d.getTags()); } tableViewer.setCheckedElements(checks.toArray()); //set the enabled state based on whether or not the waypoint //exists in the workspace. IWaypoint wp = getWaypointForId(new ResourceWaypointIdentifier(d)); tableViewer.getControl().setEnabled(wp != null); } else { tableViewer.setInput(null); tableStack.topControl = unselectLabel; ((Composite) getControl()).layout(); } } }); tableComposite = new Composite(page, SWT.NONE); GridData data = new GridData(); data.grabExcessHorizontalSpace = true; data.grabExcessVerticalSpace = false; data.horizontalAlignment = SWT.FILL; data.verticalAlignment = SWT.FILL; tableComposite.setLayoutData(data); tableStack = new StackLayout(); tableComposite.setLayout(tableStack); unselectLabel = new Label(tableComposite, SWT.NONE); unselectLabel.setText("Please select a waypoint"); Table table = new Table(tableComposite, SWT.BORDER | SWT.FULL_SELECTION | SWT.SINGLE | SWT.CHECK); TableLayout tableLayout = new TableLayout(); tableLayout.addColumnData(new ColumnWeightData(10)); tableLayout.addColumnData(new ColumnWeightData(45)); tableLayout.addColumnData(new ColumnWeightData(45)); TableColumn c = new TableColumn(table, SWT.NONE); c.setText(COLUMNS[0]); c = new TableColumn(table, SWT.NONE); c.setText(COLUMNS[1]); c = new TableColumn(table, SWT.NONE); c.setText(COLUMNS[2]); table.setLinesVisible(true); table.setHeaderVisible(true); table.setLayout(tableLayout); tableViewer = new CheckboxTableViewer(table); tableViewer.setColumnProperties(COLUMNS); tableViewer.setContentProvider(new WaypointCompareContentProvider()); tableViewer.setLabelProvider(new WaypointCompareLabelProvider()); tableViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { //add the checked line to the list of checks. boolean checked = event.getChecked(); Object element = event.getElement(); IResourceWaypointDescriptor selected = getSelectedDescriptor(); Set<String> attrs = checkedMap.get(selected); if (selected != null) { // @tag tagsea.import.content : content provider returns strings for attributes. if (element instanceof String) { if (attrs == null) { attrs = new TreeSet<String>(); checkedMap.put(selected, attrs); } if (checked) { attrs.add(element.toString()); } else { attrs.remove(element.toString()); } } else { //otherwise, the checked content are the tags. if (checked) { tagCheckedSet.add(selected); } else { tagCheckedSet.remove(selected); } } } //update the checked state in the tree. boolean elementChecked = tagCheckedSet.contains(selected) || checkedMap.size() > 0; treeViewer.setChecked(selected, elementChecked); LinkedList<Object> list = new LinkedList<Object>(); list.add(selected); updateTreeGrayedState(treeViewer, list, elementChecked); updateWarnings(); } }); tableStack.topControl = unselectLabel; tableComposite.layout(); setControl(page); }