List of usage examples for org.eclipse.jface.viewers CheckboxTableViewer CheckboxTableViewer
public CheckboxTableViewer(Table table)
From source file:org.limy.eclipse.qalab.propertypage.PageMain.java
License:Open Source License
/** * @param comp/* www .j av a2 s. c o m*/ * @throws CoreException */ private void createContents(Composite comp) throws CoreException { FormLayout layout = new FormLayout(); layout.marginWidth = 4; layout.marginHeight = 4; comp.setLayout(layout); enableNature = new Button(comp, SWT.CHECK); enableNature.setText(Messages.LABEL_MARKER); enableNature.setSelection(project.hasNature(LimyQalabNature.NATURE_ID)); enableNature.setLayoutData(FormDataCreater.maxWidthControlDown(null, 0)); Label label = new Label(comp, SWT.NONE); label.setText("Sub projects"); label.setLayoutData(FormDataCreater.maxWidthControlDown(enableNature, 4)); Table table = new Table(comp, SWT.CHECK); viewer = new CheckboxTableViewer(table); viewer.setLabelProvider(new TableLabelProvider()); viewer.setContentProvider(new LimyContentProvider()); Collection<ITableObject> items = new ArrayList<ITableObject>(); Collection<Object> checkedElements = new ArrayList<Object>(); String storeNames = getStore().getString(LimyQalabConstants.SUB_PROJECT_NAMES); for (IProject refProject : env.getProject().getReferencedProjects()) { CheckedTableObject element = new CheckedTableObject(refProject.getName(), refProject); items.add(element); if (storeNames.indexOf(element.getValue(0) + "\n") >= 0) { checkedElements.add(element); } } viewer.setInput(items); viewer.setCheckedElements(checkedElements.toArray(new Object[checkedElements.size()])); viewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { ((CheckedTableObject) event.getElement()).setChecked(event.getChecked()); } }); table.setLayoutData(FormDataCreater.maxWidthControlBottom(label, 4, 0, 100)); Composite gridComp = new Composite(comp, SWT.NONE); gridComp.setLayout(new GridLayout(3, false)); gridComp.setLayoutData(FormDataCreater.maxWidthNoHeightControlBottom(table, 8, 0)); createIgnoreResComp(comp, gridComp); }
From source file:org.marketcetera.photon.views.OrderTicketView.java
/** * Set up viewers.// w ww. ja v a 2 s .c o m * * @param ticket */ protected void initViewers(T ticket) { /* * Side combo based on Side enum. */ mSideComboViewer = new ComboViewer(ticket.getSideCombo()); mSideComboViewer.setContentProvider(new ArrayContentProvider()); mSideComboViewer.setInput(getModel().getValidSideValues()); /* * Order type combo based on OrderType enum. */ mOrderTypeComboViewer = new ComboViewer(ticket.getOrderTypeCombo()); mOrderTypeComboViewer.setContentProvider(new ArrayContentProvider()); mOrderTypeComboViewer.setInput(getModel().getValidOrderTypeValues()); /* * Broker combo based on available brokers. */ mAvailableBrokersViewer = new ComboViewer(ticket.getBrokerCombo()); mAvailableBrokersViewer.setContentProvider(new ObservableListContentProvider()); mAvailableBrokersViewer.setLabelProvider(new BrokerLabelProvider()); mAvailableBrokersViewer.setInput(getModel().getValidBrokers()); /* * Time in Force combo based on TimeInForce enum. * * An extra blank entry is added since the field is optional. */ mTimeInForceComboViewer = new ComboViewer(ticket.getTifCombo()); mTimeInForceComboViewer.setContentProvider(new ArrayContentProvider()); mTimeInForceComboViewer.setInput(getModel().getValidTimeInForceValues()); /* * Custom fields table. * * Input is bound to model in bindCustomFields. */ mCustomFieldsTableViewer = new CheckboxTableViewer(ticket.getCustomFieldsTable()); ObservableListContentProvider contentProvider = new ObservableListContentProvider(); mCustomFieldsTableViewer.setContentProvider(contentProvider); mCustomFieldsTableViewer.setLabelProvider( new ObservableMapLabelProvider(BeansObservables.observeMaps(contentProvider.getKnownElements(), CustomField.class, new String[] { "keyString", "valueString" })));//$NON-NLS-1$ //$NON-NLS-2$ }
From source file:org.modelio.app.preferences.proxy.NonProxyHostsComposite.java
License:Open Source License
@objid("48f2a019-df30-4484-9b3c-c4bd68c5d6cb") protected void createWidgets() { setLayout(new GridLayout(2, false)); this.hostsLabel = new Label(this, SWT.NONE); this.hostsLabel.setText(NetUIMessages.ProxyPreferencePage_12); this.hostsLabel.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 2, 1)); Table hostsTable = new Table(this, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.FULL_SELECTION | SWT.CHECK); hostsTable.setHeaderVisible(true);//from ww w . j a va 2 s .c o m hostsTable.setLinesVisible(true); hostsTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 3)); this.hostsViewer = new CheckboxTableViewer(hostsTable); NonProxyHostsLabelProvider labelProvider = new NonProxyHostsLabelProvider(); NonProxyHostsContentProvider contentProvider = new NonProxyHostsContentProvider(); labelProvider.createColumns(this.hostsViewer); this.hostsViewer.setContentProvider(contentProvider); this.hostsViewer.setLabelProvider(labelProvider); TableLayout tableLayout = new TableLayout(); tableLayout.addColumnData(new ColumnPixelData(24)); tableLayout.addColumnData(new ColumnWeightData(50, 50, true)); tableLayout.addColumnData(new ColumnWeightData(50, 50, true)); hostsTable.setLayout(tableLayout); this.addButton = createButton(NetUIMessages.ProxyPreferencePage_15); this.editButton = createButton(NetUIMessages.ProxyPreferencePage_16); this.removeButton = createButton(NetUIMessages.ProxyPreferencePage_17); this.hostsViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { enableButtons(); } }); this.hostsViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { setProvider(NonProxyHostsComposite.this.currentProvider); } }); this.hostsViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { editSelection(); } }); this.addButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { addHost(); } }); this.editButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { editSelection(); } }); this.removeButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { removeSelection(); } }); initializeValues(); enableButtons(); }
From source file:org.modelio.app.preferences.proxy.ProxyEntriesComposite.java
License:Open Source License
@objid("cae687a8-b4e3-4deb-ac1e-783eb07da32d") protected void createWidgets() { setLayout(new GridLayout(2, false)); this.entriesLabel = new Label(this, SWT.NONE); this.entriesLabel.setText(NetUIMessages.ProxyPreferencePage_1); this.entriesLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 2, 1)); Table entriesTable = new Table(this, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.FULL_SELECTION | SWT.CHECK); entriesTable.setHeaderVisible(true); entriesTable.setLinesVisible(true);//from w ww. j a v a 2s . c o m entriesTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 3)); this.entriesViewer = new CheckboxTableViewer(entriesTable); ProxyEntriesLabelProvider labelProvider = new ProxyEntriesLabelProvider(); ProxyEntriesContentProvider contentProvider = new ProxyEntriesContentProvider(); labelProvider.createColumns(this.entriesViewer); this.entriesViewer.setContentProvider(contentProvider); this.entriesViewer.setLabelProvider(labelProvider); TableLayout tableLayout = new TableLayout(); tableLayout.addColumnData(new ColumnPixelData(24)); tableLayout.addColumnData(new ColumnWeightData(20, 50, true)); tableLayout.addColumnData(new ColumnWeightData(50, 50, true)); tableLayout.addColumnData(new ColumnWeightData(20, 50, true)); tableLayout.addColumnData(new ColumnWeightData(20, 50, true)); tableLayout.addColumnData(new ColumnWeightData(20, 50, true)); tableLayout.addColumnData(new ColumnWeightData(50, 50, true)); tableLayout.addColumnData(new ColumnWeightData(50, 50, true)); entriesTable.setLayout(tableLayout); // addButton = createButton(NetUIMessages.ProxyPreferencePage_9); this.editButton = createButton(NetUIMessages.ProxyPreferencePage_10); this.removeButton = createButton(NetUIMessages.ProxyPreferencePage_11); this.entriesViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { enableButtons(); } }); this.entriesViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { setProvider(ProxyEntriesComposite.this.currentProvider); } }); this.entriesViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { editSelection(); } }); // addButton.addSelectionListener(new SelectionAdapter() { // public void widgetSelected(SelectionEvent e) { // addEntry(); // } // }); this.editButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { editSelection(); } }); this.removeButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { removeSelection(); } }); initializeValues(); enableButtons(); }
From source file:org.projectusus.ui.internal.coveredprojects.CoveredProjectsView.java
License:Open Source License
private void createViewer(Composite parent) { Table table = createTable(parent);/*from www . j a v a2 s . c o m*/ viewer = new CheckboxTableViewer(table); viewer.setContentProvider(new CoveredProjectsCP()); viewer.setLabelProvider(new CoveredProjectsLP()); viewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { updateUsusProject(event.getElement(), event.getChecked()); refresh(); } }); MenuManager menuManager = new MenuManager(); menuManager.addMenuListener(createContextMenu()); table.setMenu(menuManager.createContextMenu(parent)); }
From source file:org.python.pydev.editor.hover.PyEditorHoverConfigurationBlock.java
License:Open Source License
/** * Creates page for hover preferences./*from w w w . j a v a 2 s. co m*/ * * @param parent the parent composite * @return the control for the preference page */ @Override public Control createControl(final Composite parent) { priorityHelpRange = new StyleRange( PyEditorMessages.PyEditorHoverConfigurationBlock_hoverPreferences.length(), priorityHelpStr.length(), parent.getDisplay().getSystemColor(SWT.COLOR_BLUE), null); fComp = new Composite(parent, SWT.NONE); GridDataFactory.fillDefaults().grab(true, false).applyTo(fComp); GridLayoutFactory.fillDefaults().numColumns(3).applyTo(fComp); fButtonComp = new Composite(fComp, SWT.BORDER); GridLayoutFactory.fillDefaults().numColumns(2).applyTo(fButtonComp); fUseFirstHover = new Button(fButtonComp, SWT.RADIO | SWT.BORDER); fUseFirstHover.setText("Use highest priority Hover"); GridDataFactory.fillDefaults().applyTo(fUseFirstHover); fCombineHovers = new Button(fButtonComp, SWT.RADIO | SWT.BORDER); fCombineHovers.setText("Combine Hovers"); GridDataFactory.fillDefaults().applyTo(fCombineHovers); fCombineHovers.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { fCombiningHoverModifierEditor.setEnabled(fCombineHovers.getSelection()); fCombiningHoverLabel.setEnabled(fCombineHovers.getSelection()); showColumn(fPreemptColumn, fCombineHovers.getSelection()); showColumn(fModifierColumn, !fCombineHovers.getSelection()); fModifierFieldLabel.setEnabled(!fCombineHovers.getSelection()); } }); fCombiningHoverLabel = new Label(fComp, SWT.PUSH); fCombiningHoverLabel.setText("Combined Hovers Key Modifier:"); fCombiningHoverModifierEditor = new Text(fComp, SWT.BORDER); fCombiningHoverModifierEditor.addKeyListener(new KeyModifierListener(fCombiningHoverModifierEditor)); fCombiningHoverModifierEditor.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { handleModifierModified(fCombiningHoverModifierEditor); } }); GridDataFactory.fillDefaults().grab(true, false).applyTo(fCombiningHoverModifierEditor); ScrolledPageContent scrolled = new ScrolledPageContent(parent, SWT.H_SCROLL | SWT.V_SCROLL); scrolled.setExpandHorizontal(true); scrolled.setExpandVertical(true); Composite hoverComposite = new Composite(scrolled, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 2; layout.marginWidth = 0; layout.marginHeight = 0; hoverComposite.setLayout(layout); addFiller(hoverComposite); fTableLabel = new StyledText(hoverComposite, SWT.NONE); fTableLabel.setEditable(false); fTableLabel.setEnabled(false); fTableLabel.setBackground(fTableLabel.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); fTableLabel.setText(PyEditorMessages.PyEditorHoverConfigurationBlock_hoverPreferences); GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalAlignment = GridData.BEGINNING; gd.horizontalSpan = 2; fTableLabel.setLayoutData(gd); TableLayoutComposite layouter = new TableLayoutComposite(hoverComposite, SWT.NONE); addColumnLayoutData(layouter, fColWidths); // Hover table fHoverTable = new Table(layouter, SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION | SWT.CHECK); fHoverTable.setHeaderVisible(true); fHoverTable.setLinesVisible(true); gd = new GridData(GridData.FILL_HORIZONTAL); gd.heightHint = SWTUtil.getTableHeightHint(fHoverTable, 10); gd.horizontalSpan = 2; gd.widthHint = new PixelConverter(parent).convertWidthInCharsToPixels(100); layouter.setLayoutData(gd); fHoverTable.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { handleHoverListSelection(); } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); TableLayout tableLayout = new TableLayout(); fHoverTable.setLayout(tableLayout); fHoverTableViewer = new CheckboxTableViewer(fHoverTable); TableViewerColumn nameColumnViewer = new TableViewerColumn(fHoverTableViewer, SWT.NONE); nameColumnViewer.setLabelProvider(new PyEditorTextHoverDescriptorLabelProvider(fHoverTableViewer)); fNameColumn = nameColumnViewer.getColumn(); fNameColumn.setText(PyEditorMessages.PyEditorHoverConfigurationBlock_nameColumnTitle); fNameColumn.setResizable(true); TableViewerColumn priorityViewerColumn = new TableViewerColumn(fHoverTableViewer, SWT.NONE); priorityViewerColumn.setEditingSupport(new HoverTableEditingSupport(fHoverTableViewer, PRIORITY_PROP)); priorityViewerColumn.setLabelProvider(new PyEditorTextHoverDescriptorLabelProvider(fHoverTableViewer)); fPriorityColumn = priorityViewerColumn.getColumn(); fPriorityColumn.setText(PyEditorMessages.PyEditorHoverConfigurationBlock_priorityColumnTitle); fPriorityColumn.setResizable(true); TableViewerColumn modifierColumnViewer = new TableViewerColumn(fHoverTableViewer, SWT.NONE); modifierColumnViewer.setLabelProvider(new PyEditorTextHoverDescriptorLabelProvider(fHoverTableViewer)); fModifierColumn = modifierColumnViewer.getColumn(); fModifierColumn.setText(PyEditorMessages.PyEditorHoverConfigurationBlock_modifierColumnTitle); fModifierColumn.setResizable(true); TableViewerColumn preemptViewerColumn = new TableViewerColumn(fHoverTableViewer, SWT.NONE); preemptViewerColumn.setEditingSupport(new HoverTableEditingSupport(fHoverTableViewer, PREEMPT_PROP)); preemptViewerColumn.setLabelProvider(new PyEditorTextHoverDescriptorLabelProvider(fHoverTableViewer)); fPreemptColumn = preemptViewerColumn.getColumn(); fPreemptColumn.setText(PyEditorMessages.PyEditorHoverConfigurationBlock_preemptColumnTitle); fPreemptColumn.setResizable(true); fHoverTableViewer.setUseHashlookup(true); fHoverTableViewer.setContentProvider(new PyEditorTextHoverDescriptorContentProvider()); fHoverTableViewer.addCheckStateListener(new ICheckStateListener() { /* * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.Che((CheckboxTreeViewer) fHoverTableViewer)nt) */ @Override public void checkStateChanged(CheckStateChangedEvent event) { String id = ((PyEditorTextHoverDescriptor) event.getElement()).getId(); if (id == null) { return; } PyEditorTextHoverDescriptor[] descriptors = fHoverDescs; PyEditorTextHoverDescriptor hover = null; int i = 0, length = fHoverDescs.length; while (i < length) { if (id.equals(descriptors[i].getId())) { hover = fHoverDescs[i]; hover.setIsEnabled(event.getChecked()); fModifierEditor.setEnabled(event.getChecked()); fHoverTableViewer.setSelection(new StructuredSelection(descriptors[i])); } i++; } handleHoverListSelection(); updateStatus(hover); } }); fHoverTableViewer.setSorter(new ViewerSorter() { @Override public int compare(Viewer viewer, Object e1, Object e2) { return ((PyEditorTextHoverDescriptor) e1).getPriority() .compareTo(((PyEditorTextHoverDescriptor) e2).getPriority()); } }); // Text field for modifier string fModifierFieldLabel = new Label(hoverComposite, SWT.LEFT); fModifierFieldLabel.setText(PyEditorMessages.PyEditorHoverConfigurationBlock_keyModifier); fModifierEditor = new Text(hoverComposite, SWT.BORDER); gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); fModifierEditor.setLayoutData(gd); fModifierEditor.addKeyListener(new KeyModifierListener(fModifierEditor)); fModifierEditor.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { handleModifierModified(fModifierEditor); } }); // Description Label label = new Label(hoverComposite, SWT.LEFT); label.setText(PyEditorMessages.PyEditorHoverConfigurationBlock_description); gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING); gd.horizontalSpan = 2; label.setLayoutData(gd); fDescription = new Text(hoverComposite, SWT.LEFT | SWT.WRAP | SWT.MULTI | SWT.READ_ONLY | SWT.BORDER); SWTUtil.fixReadonlyTextBackground(fDescription); gd = new GridData(GridData.FILL_BOTH); gd.horizontalSpan = 2; fDescription.setLayoutData(gd); fDebugShowVars = new Button(parent, SWT.CHECK); fDebugShowVars.setText("Show variables values while debugging"); fDebugShowVars.setSelection(PyHoverPreferencesPage.getShowValuesWhileDebuggingOnHover()); fUseHoverDivider = new Button(parent, SWT.CHECK); fUseHoverDivider.setText("Add divider between contributions when combining hovers"); fUseHoverDivider.setSelection(PyHoverPreferencesPage.getUseHoverDelimiters()); scrolled.setContent(hoverComposite); final Point size = hoverComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT); scrolled.setMinSize(size.x, size.y); Dialog.applyDialogFont(scrolled); return fComp; }
From source file:org.robotframework.ide.eclipse.main.plugin.preferences.InstalledRobotsPreferencesPage.java
License:Apache License
private void createViewer(final Composite tableParent) { final Table table = new Table(tableParent, SWT.CHECK | SWT.BORDER | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL); viewer = new CheckboxTableViewer(table); ViewersConfigurator.enableDeselectionPossibility(viewer); GridDataFactory.fillDefaults().grab(true, true).span(1, 5).applyTo(viewer.getTable()); viewer.getTable().setLinesVisible(true); viewer.getTable().setHeaderVisible(true); final ISelectionChangedListener selectionListener = new ISelectionChangedListener() { @Override//from ww w . j a v a2 s . c om public void selectionChanged(final SelectionChangedEvent event) { final RobotRuntimeEnvironment selectedInstallation = getSelectedInstallation(); removeButton.setEnabled(selectedInstallation != null); } }; final ICheckStateListener checkListener = new ICheckStateListener() { @Override public void checkStateChanged(final CheckStateChangedEvent event) { if (event.getChecked()) { viewer.setCheckedElements(new Object[] { event.getElement() }); viewer.refresh(); } dirty = true; } }; viewer.addSelectionChangedListener(selectionListener); viewer.addCheckStateListener(checkListener); viewer.getTable().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(final DisposeEvent e) { viewer.removeSelectionChangedListener(selectionListener); viewer.removeCheckStateListener(checkListener); } }); ColumnViewerToolTipSupport.enableFor(viewer); viewer.setContentProvider(new ListInputStructuredContentProvider()); ViewerColumnsFactory.newColumn("Name").withWidth(300) .labelsProvidedBy(new InstalledRobotsNamesLabelProvider(viewer)).createFor(viewer); ViewerColumnsFactory.newColumn("Path").withWidth(200) .labelsProvidedBy(new InstalledRobotsPathsLabelProvider(viewer)).createFor(viewer); }
From source file:org.robotframework.ide.eclipse.main.plugin.project.editor.general.FrameworksSectionFormFragment.java
License:Apache License
private void createViewer(final Composite tableParent) { final Table table = new Table(tableParent, SWT.CHECK | SWT.BORDER | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL); viewer = new CheckboxTableViewer(table); GridDataFactory.fillDefaults().grab(true, true).applyTo(viewer.getTable()); viewer.getTable().setLinesVisible(true); viewer.getTable().setHeaderVisible(true); viewer.getTable().setEnabled(false); final ICheckStateListener checkListener = createCheckListener(); viewer.addCheckStateListener(checkListener); viewer.getTable().addDisposeListener(new DisposeListener() { @Override/*w ww . ja va 2 s. com*/ public void widgetDisposed(final DisposeEvent e) { viewer.removeCheckStateListener(checkListener); } }); ColumnViewerToolTipSupport.enableFor(viewer); viewer.setContentProvider(new ListInputStructuredContentProvider()); ViewerColumnsFactory.newColumn("Name").withWidth(200) .labelsProvidedBy(new InstalledRobotsNamesLabelProvider(viewer)).createFor(viewer); ViewerColumnsFactory.newColumn("Path").withWidth(200).shouldGrabAllTheSpaceLeft(true).withMinWidth(30) .labelsProvidedBy(new InstalledRobotsPathsLabelProvider(viewer)).createFor(viewer); }
From source file:org.rssowl.ui.internal.dialogs.NewsFiltersListDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { /* Separator */ new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL) .setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false)); /* Title *///from w ww. j a v a 2 s.c o m setTitle(Messages.NewsFiltersListDialog_NEWS_FILTERS); /* Title Image */ setTitleImage(OwlUI.getImage(fResources, "icons/wizban/filter_wiz.png")); //$NON-NLS-1$ /* Composite to hold all components */ Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(LayoutUtils.createGridLayout(2, 5, 10)); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); Composite tableContainer = new Composite(composite, SWT.NONE); tableContainer.setLayout(LayoutUtils.createGridLayout(1, 0, 0)); tableContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); CTable cTable = new CTable(tableContainer, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); fViewer = new CheckboxTableViewer(cTable.getControl()); fViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); fViewer.getTable().setHeaderVisible(true); ((GridData) fViewer.getTable().getLayoutData()).heightHint = fViewer.getTable().getItemHeight() * 15; fViewer.getTable().setData(ApplicationWorkbenchWindowAdvisor.FOCUSLESS_SCROLL_HOOK, new Object()); TableColumn nameCol = new TableColumn(fViewer.getTable(), SWT.NONE); CColumnLayoutData data = new CColumnLayoutData(Size.FILL, 100); cTable.manageColumn(nameCol, data, Messages.NewsFiltersListDialog_NAME, null, null, false, false); /* ContentProvider returns all filters */ fViewer.setContentProvider(new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { return fSearchFilterDao.loadAll().toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); /* Label Provider */ fViewer.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { ISearchFilter filter = (ISearchFilter) cell.getElement(); Display display = fViewer.getControl().getDisplay(); if (filter.isEnabled()) cell.setText(filter.getName()); else cell.setText(NLS.bind(Messages.NewsFiltersListDialog_FILTER_DISABLED, filter.getName())); cell.setImage(fFilterIcon); if (!OwlUI.isHighContrast()) cell.setForeground(filter.isEnabled() ? display.getSystemColor(SWT.COLOR_BLACK) : display.getSystemColor(SWT.COLOR_DARK_GRAY)); } }); /* Sort */ fViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { ISearchFilter filter1 = (ISearchFilter) e1; ISearchFilter filter2 = (ISearchFilter) e2; return filter1.getOrder() < filter2.getOrder() ? -1 : 1; } }); /* Selection */ fViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); fEditButton.setEnabled(!selection.isEmpty()); fDeleteButton.setEnabled(!selection.isEmpty()); fApplySelectedFilter.setEnabled(!selection.isEmpty() && selection.size() == 1); updateMoveEnablement(); } }); /* Doubleclick */ fViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { onEdit(); } }); /* Set input (ignored by ContentProvider anyways) */ fViewer.setInput(this); updateCheckedState(); /* Listen on Check State Changes */ fViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { ISearchFilter filter = (ISearchFilter) event.getElement(); filter.setEnabled(event.getChecked()); fSearchFilterDao.save(filter); fViewer.update(filter, null); updateTitle(); } }); /* Container for the Buttons to Manage Filters */ Composite buttonContainer = new Composite(composite, SWT.None); buttonContainer.setLayout(LayoutUtils.createGridLayout(1, 0, 0)); buttonContainer.setLayoutData(new GridData(SWT.BEGINNING, SWT.FILL, false, false)); /* Adds a new Filter */ Button addButton = new Button(buttonContainer, SWT.PUSH); addButton.setText(Messages.NewsFiltersListDialog_NEW); addButton.setFocus(); applyDialogFont(addButton); setButtonLayoutData(addButton); addButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { onAdd(); } }); /* Edits a selected Filter */ fEditButton = new Button(buttonContainer, SWT.PUSH); fEditButton.setText(Messages.NewsFiltersListDialog_EDIT); applyDialogFont(fEditButton); setButtonLayoutData(fEditButton); fEditButton.setEnabled(false); fEditButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { onEdit(); } }); /* Deletes the selected Filter */ fDeleteButton = new Button(buttonContainer, SWT.PUSH); fDeleteButton.setText(Messages.NewsFiltersListDialog_DELETE); applyDialogFont(fDeleteButton); setButtonLayoutData(fDeleteButton); fDeleteButton.setEnabled(false); fDeleteButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { onDelete(); } }); /* Move Filter Up */ fMoveUpButton = new Button(buttonContainer, SWT.PUSH); fMoveUpButton.setText(Messages.NewsFiltersListDialog_MOVE_UP); fMoveUpButton.setEnabled(false); applyDialogFont(fMoveUpButton); setButtonLayoutData(fMoveUpButton); ((GridData) fMoveUpButton.getLayoutData()).verticalIndent = 10; fMoveUpButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { onMove(true); } }); /* Move Filter Down */ fMoveDownButton = new Button(buttonContainer, SWT.PUSH); fMoveDownButton.setText(Messages.NewsFiltersListDialog_MOVE_DOWN); fMoveDownButton.setEnabled(false); applyDialogFont(fMoveDownButton); setButtonLayoutData(fMoveDownButton); fMoveDownButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { onMove(false); } }); Composite buttonBar = new Composite(composite, SWT.NONE); buttonBar.setLayout(LayoutUtils.createGridLayout(2, 0, 0)); buttonBar.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false, 2, 1)); /* Button to apply filter on all News */ fApplySelectedFilter = new Button(buttonBar, SWT.PUSH); fApplySelectedFilter.setText(Messages.NewsFiltersListDialog_RUN_SELECTED_FILTER); fApplySelectedFilter.setEnabled(false); applyDialogFont(fApplySelectedFilter); setButtonLayoutData(fApplySelectedFilter); ((GridData) fApplySelectedFilter.getLayoutData()).grabExcessHorizontalSpace = false; ((GridData) fApplySelectedFilter.getLayoutData()).horizontalAlignment = SWT.BEGINNING; fApplySelectedFilter.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { onApplySelectedFilter(); } }); /* Close */ Button closeButton = new Button(buttonBar, SWT.PUSH); closeButton.setText(Messages.NewsFiltersListDialog_CLOSE); applyDialogFont(closeButton); setButtonLayoutData(closeButton); ((GridData) closeButton.getLayoutData()).grabExcessHorizontalSpace = true; ((GridData) closeButton.getLayoutData()).horizontalAlignment = SWT.END; closeButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { close(); } }); /* Update Title Message */ updateTitle(); /* Set Selection if provided */ if (fSelectedFilter != null) fViewer.setSelection(new StructuredSelection(fSelectedFilter), true); applyDialogFont(composite); return composite; }
From source file:org.rssowl.ui.internal.dialogs.preferences.SharingPreferencesPage.java
License:Open Source License
@Override protected Control createContents(Composite parent) { Composite container = createContainer(parent); Label infoText = new Label(container, SWT.WRAP); infoText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1)); ((GridData) infoText.getLayoutData()).widthHint = 200; infoText.setText(Messages.SharingPreferencesPage_SELECT_COMMUNITY); Composite tableContainer = new Composite(container, SWT.NONE); tableContainer.setLayout(LayoutUtils.createGridLayout(1, 0, 0)); tableContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); CTable cTable = new CTable(tableContainer, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); fViewer = new CheckboxTableViewer(cTable.getControl()); fViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); fViewer.getTable().setHeaderVisible(true); ((GridData) fViewer.getTable().getLayoutData()).heightHint = fViewer.getTable().getItemHeight() * 15; fViewer.getTable().setFocus();//from w w w . j av a 2 s. c o m fViewer.getTable().setData(ApplicationWorkbenchWindowAdvisor.FOCUSLESS_SCROLL_HOOK, new Object()); TableColumn nameCol = new TableColumn(fViewer.getTable(), SWT.NONE); CColumnLayoutData data = new CColumnLayoutData(Size.FILL, 100); cTable.manageColumn(nameCol, data, Messages.SharingPreferencesPage_AVAILABLE_COMMUNITIES, null, null, false, false); /* ContentProvider returns all providers */ fViewer.setContentProvider(new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { return Controller.getDefault().getShareProviders().toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); /* Label Provider */ fViewer.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { ShareProvider provider = (ShareProvider) cell.getElement(); cell.setText(provider.getName()); if (StringUtils.isSet(provider.getIconPath())) cell.setImage(fResources .createImage(OwlUI.getImageDescriptor(provider.getPluginId(), provider.getIconPath()))); } }); /* Selection */ fViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateMoveEnablement(); } }); /* Drag Support */ fViewer.addDragSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() }, new DragSourceAdapter() { @Override public void dragStart(final DragSourceEvent event) { SafeRunnable.run(new LoggingSafeRunnable() { public void run() throws Exception { IStructuredSelection selection = (IStructuredSelection) fViewer.getSelection(); event.doit = (selection.size() < fViewer.getTable().getItemCount()); if (event.doit) { LocalSelectionTransfer.getTransfer().setSelection(selection); LocalSelectionTransfer.getTransfer() .setSelectionSetTime(event.time & 0xFFFFFFFFL); } ; } }); } @Override public void dragSetData(final DragSourceEvent event) { SafeRunnable.run(new LoggingSafeRunnable() { public void run() throws Exception { if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) event.data = LocalSelectionTransfer.getTransfer().getSelection(); } }); } @Override public void dragFinished(DragSourceEvent event) { SafeRunnable.run(new LoggingSafeRunnable() { public void run() throws Exception { LocalSelectionTransfer.getTransfer().setSelection(null); LocalSelectionTransfer.getTransfer().setSelectionSetTime(0); } }); } }); /* Drop Support */ ViewerDropAdapter dropSupport = new ViewerDropAdapter(fViewer) { @Override public boolean validateDrop(Object target, int operation, TransferData transferType) { return true; } @Override public boolean performDrop(Object data) { ShareProvider target = (ShareProvider) getCurrentTarget(); if (target != null) { onMove((StructuredSelection) data, target, getCurrentLocation()); return true; } return false; } }; dropSupport.setFeedbackEnabled(true); dropSupport.setScrollEnabled(true); dropSupport.setSelectionFeedbackEnabled(true); fViewer.addDropSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() }, dropSupport); /* Set input (ignored by ContentProvider anyways) */ fViewer.setInput(this); updateCheckedState(); /* Ensure that the first checked element is visible */ TableItem[] items = fViewer.getTable().getItems(); for (TableItem item : items) { if (item.getChecked()) { fViewer.getTable().showItem(item); break; } } /* Listen on Check State Changes */ fViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { ShareProvider provider = (ShareProvider) event.getElement(); provider.setEnabled(event.getChecked()); save(); fViewer.update(provider, null); } }); /* Container for the Buttons to Manage Providers */ Composite buttonContainer = new Composite(container, SWT.None); buttonContainer.setLayout(LayoutUtils.createGridLayout(1, 0, 0)); buttonContainer.setLayoutData(new GridData(SWT.BEGINNING, SWT.FILL, false, false)); /* Move Provider Up */ fMoveUpButton = new Button(buttonContainer, SWT.PUSH); fMoveUpButton.setText(Messages.SharingPreferencesPage_MOVE_UP); fMoveUpButton.setEnabled(false); Dialog.applyDialogFont(fMoveUpButton); setButtonLayoutData(fMoveUpButton); fMoveUpButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { onMove(true); } }); /* Move Provider Down */ fMoveDownButton = new Button(buttonContainer, SWT.PUSH); fMoveDownButton.setText(Messages.SharingPreferencesPage_MOVE_DOWN); fMoveDownButton.setEnabled(false); Dialog.applyDialogFont(fMoveDownButton); setButtonLayoutData(fMoveDownButton); fMoveDownButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { onMove(false); } }); /* Select All */ Button selectAllButton = new Button(buttonContainer, SWT.PUSH); selectAllButton.setText(Messages.SharingPreferencesPage_SELECT_ALL); Dialog.applyDialogFont(selectAllButton); setButtonLayoutData(selectAllButton); ((GridData) selectAllButton.getLayoutData()).verticalIndent = 10; selectAllButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { onSelectAll(false); } }); /* De-Select All */ Button deSelectAllButton = new Button(buttonContainer, SWT.PUSH); deSelectAllButton.setText(Messages.SharingPreferencesPage_DESELECT_ALL); Dialog.applyDialogFont(deSelectAllButton); setButtonLayoutData(deSelectAllButton); deSelectAllButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { onSelectAll(true); } }); /* Info Container */ Composite infoContainer = new Composite(container, SWT.None); infoContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1)); infoContainer.setLayout(LayoutUtils.createGridLayout(2, 0, 0)); Label infoImg = new Label(infoContainer, SWT.NONE); infoImg.setImage(OwlUI.getImage(fResources, "icons/obj16/info.gif")); //$NON-NLS-1$ infoImg.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false)); Label infoTextLabel = new Label(infoContainer, SWT.WRAP); infoTextLabel.setText(Messages.SharingPreferencesPage_COMMUNITY_INFO); infoTextLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); applyDialogFont(container); /* Enable Apply Button on Selection Changes */ OwlUI.runOnSelection(new Runnable() { public void run() { updateApplyEnablement(true); } }, container); return container; }