List of usage examples for org.eclipse.jface.viewers ComboBoxViewerCellEditor ComboBoxViewerCellEditor
public ComboBoxViewerCellEditor(Composite parent)
From source file:com.bdaum.zoom.peer.internal.preferences.PeerPreferencePage.java
License:Open Source License
@SuppressWarnings("unused") private Control createSharedGroup(CTabFolder parent) { Composite comp = new Composite(parent, SWT.NONE); comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); comp.setLayout(new GridLayout()); Composite innerComp = new Composite(comp, SWT.NONE); GridLayout layout = new GridLayout(2, false); layout.marginWidth = 0;// ww w. j av a2s. co m layout.marginHeight = 20; innerComp.setLayout(layout); innerComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); Label label = new Label(innerComp, SWT.WRAP); label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 2, 1)); label.setText(Messages.PeerPreferencePage_shared_cats_msg); catViewer = new TreeViewer(innerComp, SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL); catViewer.getTree().setLinesVisible(true); catViewer.getTree().setHeaderVisible(true); catViewer.getTree().setLayoutData(new GridData(SWT.BEGINNING, SWT.FILL, false, true)); TreeViewerColumn col1 = new TreeViewerColumn(catViewer, SWT.NONE); col1.getColumn().setWidth(400); col1.getColumn().setText(Messages.PeerPreferencePage_path); col1.setLabelProvider(ZColumnLabelProvider.getDefaultInstance()); TreeViewerColumn col2 = new TreeViewerColumn(catViewer, SWT.NONE); col2.getColumn().setWidth(200); col2.getColumn().setText(Messages.PeerPreferencePage_privacy); col2.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof SharedCatalog) return translatePrivacy(((SharedCatalog) element).getPrivacy()); if (element instanceof PeerDefinition) return ((PeerDefinition) element).getRightsLabel(); return ""; //$NON-NLS-1$ } }); col1.setEditingSupport(new EditingSupport(catViewer) { @Override protected void setValue(Object element, Object value) { if (element instanceof PeerDefinition && value instanceof PeerDefinition) { ((PeerDefinition) element).setHost(((PeerDefinition) value).getHost()); ((PeerDefinition) element).setPort(((PeerDefinition) value).getPort()); catViewer.update(element, null); validate(); } } @Override protected Object getValue(Object element) { if (element instanceof PeerDefinition) return element; return null; } @Override protected CellEditor getCellEditor(final Object element) { if (element instanceof PeerDefinition) { return new DialogCellEditor(catViewer.getTree()) { @Override protected Object openDialogBox(Control cellEditorWindow) { PeerDefinitionDialog dialog = new PeerDefinitionDialog(cellEditorWindow.getShell(), (PeerDefinition) element, true, true, true); if (dialog.open() == Window.OK) return dialog.getResult(); return null; } }; } return null; } @Override protected boolean canEdit(Object element) { return (element instanceof PeerDefinition); } }); col2.setEditingSupport(new EditingSupport(catViewer) { @Override protected void setValue(Object element, Object value) { if (element instanceof SharedCatalog && value instanceof Integer) { ((SharedCatalog) element).setPrivacy((Integer) value); catViewer.update(element, null); } else if (element instanceof PeerDefinition && value instanceof PeerDefinition) { ((PeerDefinition) element).setRights(((PeerDefinition) value).getRights()); catViewer.update(element, null); } } @Override protected Object getValue(Object element) { if (element instanceof SharedCatalog) return ((SharedCatalog) element).getPrivacy(); if (element instanceof PeerDefinition) return element; return null; } @Override protected CellEditor getCellEditor(final Object element) { if (element instanceof SharedCatalog) { ComboBoxViewerCellEditor editor = new ComboBoxViewerCellEditor(catViewer.getTree()); editor.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { return translatePrivacy(((Integer) element)); } }); editor.setContentProvider(ArrayContentProvider.getInstance()); editor.setInput(((SharedCatalog) element).getRestrictions().isEmpty() ? new Integer[] { QueryField.SAFETY_RESTRICTED, QueryField.SAFETY_MODERATE, QueryField.SAFETY_SAFE, QueryField.SAFETY_LOCAL } : new Integer[] { QueryField.SAFETY_RESTRICTED, QueryField.SAFETY_MODERATE, QueryField.SAFETY_SAFE }); return editor; } if (element instanceof PeerDefinition) { return new DialogCellEditor(catViewer.getTree()) { @Override protected Object openDialogBox(Control cellEditorWindow) { PeerDefinitionDialog dialog = new PeerDefinitionDialog(cellEditorWindow.getShell(), (PeerDefinition) element, false, true, false); if (dialog.open() == Window.OK) return dialog.getResult(); return null; } @Override protected void updateContents(Object value) { if (value instanceof PeerDefinition) super.updateContents(((PeerDefinition) value).getRightsLabel()); } }; } return null; } @Override protected boolean canEdit(Object element) { return true; } }); catViewer.setContentProvider(new ITreeContentProvider() { public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // do nothing } public void dispose() { // do nothing } public boolean hasChildren(Object element) { if (element instanceof SharedCatalog) return !((SharedCatalog) element).getRestrictions().isEmpty(); return false; } public Object getParent(Object element) { if (element instanceof PeerDefinition) return ((PeerDefinition) element).getParent(); return null; } public Object[] getElements(Object inputElement) { if (inputElement instanceof Collection<?>) return ((Collection<?>) inputElement).toArray(); return EMPTY; } public Object[] getChildren(Object parentElement) { if (parentElement instanceof SharedCatalog) return ((SharedCatalog) parentElement).getRestrictions().toArray(); return EMPTY; } }); new SortColumnManager(catViewer, new int[] { SWT.UP, SWT.NONE }, 0); catViewer.setComparator(ZViewerComparator.INSTANCE); UiUtilities.installDoubleClickExpansion(catViewer); Composite buttonGroup = new Composite(innerComp, SWT.NONE); buttonGroup.setLayoutData(new GridData(SWT.END, SWT.BEGINNING, false, true)); buttonGroup.setLayout(new GridLayout()); addCurrentButton = new Button(buttonGroup, SWT.PUSH); addCurrentButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); addCurrentButton.setText(Messages.PeerPreferencePage_add_current); addCurrentButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { String catFile = Core.getCore().getDbManager().getFileName(); SharedCatalog cat = new SharedCatalog(catFile, QueryField.SAFETY_RESTRICTED); @SuppressWarnings("unchecked") List<SharedCatalog> catalogs = (List<SharedCatalog>) catViewer.getInput(); catalogs.add(cat); catViewer.setInput(catalogs); catViewer.setSelection(new StructuredSelection(cat)); updateButtons(); } }); final Button addButton = new Button(buttonGroup, SWT.PUSH); addButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); addButton.setText(Messages.PeerPreferencePage_add); addButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { FileDialog dialog = new FileDialog(getShell(), SWT.OPEN); dialog.setFileName(Core.getCore().getDbManager().getFileName()); String filename = dialog.open(); if (filename != null) { SharedCatalog cat = new SharedCatalog(filename, QueryField.SAFETY_RESTRICTED); @SuppressWarnings("unchecked") List<SharedCatalog> catalogs = (List<SharedCatalog>) catViewer.getInput(); catalogs.add(cat); catViewer.setInput(catalogs); catViewer.setSelection(new StructuredSelection(cat)); } } }); addRestrictionButton = new Button(buttonGroup, SWT.PUSH); addRestrictionButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); addRestrictionButton.setText(Messages.PeerPreferencePage_add_restriction); addRestrictionButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) catViewer.getSelection(); Object firstElement = selection.getFirstElement(); if (firstElement instanceof SharedCatalog) { PeerDefinitionDialog dialog = new PeerDefinitionDialog(getControl().getShell(), null, true, true, true); if (dialog.open() == PeerDefinitionDialog.OK) { PeerDefinition result = dialog.getResult(); result.setParent((SharedCatalog) firstElement); catViewer.setInput(catViewer.getInput()); catViewer.expandToLevel(firstElement, 1); catViewer.setSelection(new StructuredSelection(result)); validate(); } } } }); removeCatButton = new Button(buttonGroup, SWT.PUSH); removeCatButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); removeCatButton.setText(Messages.PeerPreferencePage_remove); removeCatButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection sel = (IStructuredSelection) catViewer.getSelection(); Object firstElement = sel.getFirstElement(); if (firstElement instanceof SharedCatalog) { @SuppressWarnings("unchecked") List<SharedCatalog> catalogs = (List<SharedCatalog>) catViewer.getInput(); catalogs.remove(firstElement); catViewer.setInput(catalogs); validate(); updateButtons(); } } }); catViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateButtons(); } }); return comp; }
From source file:fr.esrf.icat.manager.core.icatserver.DataColumnEditingSupport.java
License:Apache License
@Override protected CellEditor getCellEditor(Object element) { if (null == element || !(element instanceof WrappedEntityBean)) { return null; }//from ww w . j a v a 2s. co m if (null == editor) { WrappedEntityBean w = (WrappedEntityBean) element; if (w.isEntity(field)) { // TODO: find a solution for entities this.editor = null; } else if (Enum.class.isAssignableFrom(clazz)) { final ComboBoxViewerCellEditor combo = new ComboBoxViewerCellEditor(viewer.getTable()); combo.setContentProvider(ArrayContentProvider.getInstance()); combo.setLabelProvider(labelProvider); combo.setInput(clazz.getEnumConstants()); this.editor = combo; } else if (clazz.equals(Boolean.class) || clazz.equals(boolean.class)) { this.editor = new CheckboxCellEditor(viewer.getTable()); } else if (Calendar.class.isAssignableFrom(clazz) || Date.class.isAssignableFrom(clazz) || XMLGregorianCalendar.class.isAssignableFrom(clazz)) { // workaround for focus lost from https://www.eclipse.org/forums/index.php/m/1403724/?srch=CDateTimeCellEditor#msg_1403724 // note that using CDT.SIMPLE leads to a StackOverflowException this.editor = new CDateTimeCellEditor(viewer.getTable(), CDT.SPINNER | CDT.TAB_FIELDS | CDT.DATE_MEDIUM | CDT.TIME_MEDIUM) { @Override protected boolean dependsOnExternalFocusListener() { return false; } @Override protected Control createControl(Composite parent) { final CDateTime cdt = (CDateTime) super.createControl(parent); cdt.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent e) { if (!cdt.isOpen()) { fireApplyEditorValue(); deactivate(); } } }); return cdt; } }; } else { this.editor = new TextCellEditor(viewer.getTable()); if (Number.class.isAssignableFrom(clazz)) { final Color original = this.editor.getControl().getForeground(); this.editor.setValidator(new ICellEditorValidator() { @Override public String isValid(Object value) { try { clazz.getMethod("valueOf", new Class<?>[] { String.class }).invoke(null, value); editor.getControl().setForeground(original); return null; } catch (Exception e) { editor.getControl() .setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED)); return "Please enter a number"; } } }); } } } return editor; }
From source file:org.eclipse.b3.aggregator.presentation.FixVersionsDialog.java
License:Open Source License
@Override public Control createDialogArea(Composite parent) { setTitle(B3Messages.FixVersionDialog_Title); setMessage(B3Messages.FixVersionDialog_UpdateMessage); Composite res = new Composite(parent, SWT.NONE); res.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); res.setLayout(new GridLayout(1, false)); Label summaryLabel = new Label(res, SWT.NONE); summaryLabel.setText(this.suggestedVersions.size() + " versions to update."); final TableViewer viewer = new TableViewer(res); viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); viewer.getTable().setHeaderVisible(true); viewer.getTable().setLinesVisible(true); TableViewerColumn nameColumn = new TableViewerColumn(viewer, SWT.DEFAULT); nameColumn.getColumn().setText("Feature"); nameColumn.getColumn().setResizable(true); nameColumn.getColumn().setWidth(200); nameColumn.setLabelProvider(new ColumnLabelProvider() { @Override// w ww. j a va 2s . com public String getText(Object o) { return ((InstallableUnitRequest) o).getName(); } }); TableViewerColumn previousVersion = new TableViewerColumn(viewer, SWT.DEFAULT); previousVersion.getColumn().setResizable(true); previousVersion.getColumn().setWidth(200); previousVersion.getColumn().setText("Current Version"); previousVersion.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object o) { VersionRange range = ((InstallableUnitRequest) o).getVersionRange(); if (range != null) { return range.toString(); } return ""; //$NON-NLS-1$ } }); TableViewerColumn suggestedVersion = new TableViewerColumn(viewer, SWT.DEFAULT); suggestedVersion.getColumn().setText("Suggested Version"); suggestedVersion.getColumn().setResizable(true); suggestedVersion.getColumn().setWidth(200); suggestedVersion.setLabelProvider(new ColumnLabelProvider() { @Override public Color getForeground(Object o) { InstallableUnitRequest feature = (InstallableUnitRequest) o; VersionRange range = feature.getVersionRange(); if (range != null) { if (!range.isIncluded(suggestedVersions.get(feature))) { return viewer.getControl().getDisplay().getSystemColor(SWT.COLOR_RED); } } return viewer.getControl().getDisplay().getSystemColor(SWT.COLOR_DARK_GREEN); } @Override public String getText(Object o) { InstallableUnitRequest feature = (InstallableUnitRequest) o; return suggestedVersions.get(feature).toString(); } }); suggestedVersion.setEditingSupport(new EditingSupport(viewer) { @Override protected boolean canEdit(Object element) { return ((InstallableUnitRequest) element).getAvailableVersions().size() > 1; } @Override protected CellEditor getCellEditor(Object element) { InstallableUnitRequest feature = (InstallableUnitRequest) element; ComboBoxViewerCellEditor comboCellEditor = new ComboBoxViewerCellEditor(viewer.getTable()); comboCellEditor.setContentProvider(new ArrayContentProvider()); List<Version> content = new ArrayList<Version>(); for (AvailableVersion version : feature.getAvailableVersions()) { content.add(version.getVersion()); } comboCellEditor.setInput(content); return comboCellEditor; } @Override protected Version getValue(Object element) { InstallableUnitRequest feature = (InstallableUnitRequest) element; return suggestedVersions.get(feature); } @Override protected void setValue(Object element, Object value) { suggestedVersions.put((InstallableUnitRequest) element, (Version) value); viewer.refresh(element); } }); viewer.setContentProvider(new ArrayContentProvider()); viewer.setInput(this.suggestedVersions.keySet()); return res; }
From source file:org.eclipse.epsilon.common.dt.launching.tabs.ParametersConfigurationTab.java
License:Open Source License
private void createTableColumns() { TableViewerColumn column = new TableViewerColumn(parametersViewer, SWT.NONE); column.getColumn().setWidth(100);//from w w w .j a v a 2 s . c o m column.getColumn().setText("Name"); column.setEditingSupport(new TableViewerEditingSupport(parametersViewer) { @Override protected void setValueImpl(Object element, Object value) { ((ParameterConfiguration) element).setName(value + ""); canSave(); updateLaunchConfigurationDialog(); } @Override protected Object getValue(Object element) { return ((ParameterConfiguration) element).getName(); } @Override protected CellEditor createCellEditor(TableViewer viewer) { return new TextCellEditor(viewer.getTable()); } }); column = new TableViewerColumn(parametersViewer, SWT.NONE); column.getColumn().setWidth(100); column.getColumn().setText("Type"); column.setEditingSupport(new TableViewerEditingSupport(parametersViewer) { @Override protected void setValueImpl(Object element, Object value) { ((ParameterConfiguration) element).setType(value + ""); canSave(); updateLaunchConfigurationDialog(); } @Override protected Object getValue(Object element) { return ((ParameterConfiguration) element).getType(); } @Override protected CellEditor createCellEditor(TableViewer viewer) { ComboBoxViewerCellEditor editor = new ComboBoxViewerCellEditor(viewer.getTable()); editor.getViewer().add(new String[] { "String", "Integer", "Real", "Boolean" }); return editor; } }); column = new TableViewerColumn(parametersViewer, SWT.NONE); column.getColumn().setWidth(200); column.getColumn().setText("Value"); column.setEditingSupport(new TableViewerEditingSupport(parametersViewer) { @Override protected void setValueImpl(Object element, Object value) { ((ParameterConfiguration) element).setValue(value + ""); canSave(); updateLaunchConfigurationDialog(); } @Override protected Object getValue(Object element) { return ((ParameterConfiguration) element).getValue(); } @Override protected CellEditor createCellEditor(TableViewer viewer) { return new TextCellEditor(viewer.getTable()); } }); }
From source file:org.eclipse.jpt.jpa.ui.internal.wizards.JpaMakePersistentWizardPage.java
License:Open Source License
protected void createMappingTableColumn() { TableViewerColumn column;// w w w . jav a 2 s . com column = new TableViewerColumn(this.classTableViewer, SWT.NONE); column.getColumn().setWidth(200); column.getColumn().setText(JptJpaUiMessages.JpaMakePersistentWizardPage_mappingTableColumn); column.setEditingSupport(new EditingSupport(this.classTableViewer) { @Override protected Object getValue(Object element) { return getMappingUiDefinition(((TypeConfig) element).mappingKey); } @Override protected void setValue(Object element, Object value) { ((TypeConfig) element).setMappingKey(((MappingUiDefinition) value).getKey()); getViewer().update(element, null); } @Override protected CellEditor getCellEditor(Object element) { final ComboBoxViewerCellEditor comboCellEditor = new ComboBoxViewerCellEditor( (Composite) JpaMakePersistentWizardPage.this.classTableViewer.getControl()); comboCellEditor.setLabelProvider(buildMappingComboCellEditorLabelProvider()); comboCellEditor.setContentProvider(buildMappingComboCellEditorContentProvider()); comboCellEditor.setInput(element); return comboCellEditor; } @Override protected boolean canEdit(Object element) { return true; } }); column.setLabelProvider(buildMappingColumnLabelProvider()); }
From source file:org.eclipse.jpt.jpa.ui.internal.wizards.makepersistent.ClassMappingPage.java
License:Open Source License
protected void createDBTableColumn() { TableViewerColumn column;//from w w w . ja va 2s.c om column = new TableViewerColumn(this.classMappingTableViewer, SWT.NONE); column.getColumn().setWidth(DATABASE_TABLE_COLUMN_WIDTH); column.getColumn().setText(JptJpaUiMakePersistentMessages.CLASS_MAPPING_PAGE_MAPPING_TABLE_COLUMN); column.setEditingSupport(new EditingSupport(this.classMappingTableViewer) { @Override protected Object getValue(Object element) { return ((JavaClassMapping) element).getDBTable(); } @Override protected void setValue(Object element, Object value) { ((JavaClassMapping) element).setDBTable((String) value); syncPKProp((JavaClassMapping) element); getViewer().update(element, null); fireClassMappingChanged((JavaClassMapping) element); } @Override protected CellEditor getCellEditor(Object element) { final ComboBoxViewerCellEditor comboCellEditor = new ComboBoxViewerCellEditor( (Composite) ClassMappingPage.this.classMappingTableViewer.getControl()); comboCellEditor.setLabelProvider(buildDBTableComboCellEditorLabelProvider()); comboCellEditor.setContentProvider(buildDBTableComboCellEditorContentProvider()); comboCellEditor.setInput(ClassMappingPage.this.tableNames); return comboCellEditor; } @Override protected boolean canEdit(Object element) { return true; } }); column.setLabelProvider(new DBTableColumnLabelProvider()); }
From source file:org.eclipse.jpt.jpa.ui.internal.wizards.makepersistent.ClassMappingPage.java
License:Open Source License
protected void createPrimaryKeyPropertyColumn() { TableViewerColumn column;//from ww w.ja v a 2s. c om column = new TableViewerColumn(this.classMappingTableViewer, SWT.NONE); column.getColumn().setWidth(PRIMARY_KEY_PROPERTY_COLUMN_WIDTH); column.getColumn().setText(JptJpaUiMakePersistentMessages.CLASS_MAPPING_PAGE_PRIMARY_KEY_PROPERTY_COLUMN); column.setEditingSupport(new EditingSupport(this.classMappingTableViewer) { @Override protected Object getValue(Object element) { return ((JavaClassMapping) element).getPrimaryKeyProperty(); } @Override protected void setValue(Object element, Object value) { ((JavaClassMapping) element).setPrimaryKeyProperty((String) value); getViewer().update(element, null); fireClassMappingChanged((JavaClassMapping) element); } @Override protected CellEditor getCellEditor(Object element) { final ComboBoxViewerCellEditor comboCellEditor = new ComboBoxViewerCellEditor( (Composite) ClassMappingPage.this.classMappingTableViewer.getControl()); comboCellEditor.setLabelProvider(buildDBTableComboCellEditorLabelProvider()); comboCellEditor.setContentProvider(buildPrimaryKeyComboCellEditorContentProvider()); JavaClassMapping mapping = (JavaClassMapping) element; comboCellEditor.setInput(getPKPropertyNames(mapping.getJDTType())); return comboCellEditor; } @Override protected boolean canEdit(Object element) { return true; } }); column.setLabelProvider(new PrimaryKeyPropertyColumnLabelProvider()); }
From source file:org.eclipse.jpt.jpa.ui.internal.wizards.makepersistent.JpaMakePersistentWizardPage.java
License:Open Source License
protected void createMappingTableColumn() { TableViewerColumn column;//from w ww. j a v a 2 s . co m column = new TableViewerColumn(this.classTableViewer, SWT.NONE); column.getColumn().setWidth(200); column.getColumn().setText(JptJpaUiMessages.JpaMakePersistentWizardPage_mappingTableColumn); column.setEditingSupport(new EditingSupport(this.classTableViewer) { @Override protected Object getValue(Object element) { return getMappingUiDefinition(((JavaClassMapping) element).getMappingKey()); } @Override protected void setValue(Object element, Object value) { ((JavaClassMapping) element).setMappingKey(((MappingUiDefinition) value).getKey()); validate(); fireMappingTypeChanged((JavaClassMapping) element); getViewer().update(element, null); } @Override protected CellEditor getCellEditor(Object element) { final ComboBoxViewerCellEditor comboCellEditor = new ComboBoxViewerCellEditor( (Composite) JpaMakePersistentWizardPage.this.classTableViewer.getControl()); comboCellEditor.setLabelProvider(buildMappingComboCellEditorLabelProvider()); comboCellEditor.setContentProvider(buildMappingComboCellEditorContentProvider()); comboCellEditor.setInput(element); return comboCellEditor; } @Override protected boolean canEdit(Object element) { return true; } }); column.setLabelProvider(buildMappingColumnLabelProvider()); }
From source file:org.eclipse.oomph.setup.ui.wizards.ProjectPage.java
License:Open Source License
private void hookCellEditor(TableViewerColumn viewerColumn) { Table table = streamViewer.getTable(); final ComboBoxViewerCellEditor cellEditor = new ComboBoxViewerCellEditor(table); cellEditor.setActivationStyle(/*from w w w . j a v a 2s. co m*/ ComboBoxCellEditor.DROP_DOWN_ON_KEY_ACTIVATION | ComboBoxCellEditor.DROP_DOWN_ON_MOUSE_ACTIVATION); cellEditor.setLabelProvider(labelProvider); cellEditor.setContentProvider(new IStructuredContentProvider() { public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } public void dispose() { } public Object[] getElements(Object inputElement) { Project project = (Project) inputElement; return project.getStreams().toArray(); } }); viewerColumn.setEditingSupport(new EditingSupport(streamViewer) { @Override protected void setValue(Object element, Object value) { if (element != value) { Workspace workspace = getWorkspace(); if (workspace != null) { EList<Stream> streams = workspace.getStreams(); int index = streams.indexOf(element); if (index != -1) { Stream stream = (Stream) value; streams.set(index, stream); saveProjectStreamSelection(stream); streamViewer.refresh(); } } } } @Override protected Object getValue(Object element) { return element; } @Override protected CellEditor getCellEditor(Object element) { Stream stream = (Stream) element; if (existingStreams.contains(EcoreUtil.getURI(stream))) { return null; } cellEditor.setInput(stream.getProject()); return cellEditor; } @Override protected boolean canEdit(Object element) { return true; } }); streamViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { ComboViewer comboViewer = cellEditor.getViewer(); comboViewer.refresh(); } }); }
From source file:org.eclipse.oomph.version.ui.preferences.VersionBuilderPreferencePage.java
License:Open Source License
@Override protected Control doCreateContents(Composite parent) { java.util.List<String> releasePaths = new ArrayList<String>(Activator.getReleasePaths()); Collections.sort(releasePaths); final TableViewer viewer = new TableViewer(parent, SWT.BORDER | SWT.FULL_SELECTION | SWT.NO_SCROLL | SWT.V_SCROLL); final Table table = viewer.getTable(); table.setLinesVisible(true);/* ww w .j av a 2 s . c o m*/ table.setHeaderVisible(true); TableViewerColumn releaseViewerColumn = new TableViewerColumn(viewer, SWT.NONE); final TableColumn releaseColumn = releaseViewerColumn.getColumn(); releaseColumn.setText("Release"); releaseColumn.setResizable(false); releaseColumn.setMoveable(false); TableViewerColumn checkModeViewerColumn = new TableViewerColumn(viewer, SWT.NONE); final TableColumn checkModeColumn = checkModeViewerColumn.getColumn(); checkModeColumn.setText("Check Mode"); checkModeColumn.setResizable(false); checkModeColumn.setMoveable(false); final ControlAdapter columnResizer = new ControlAdapter() { @Override public void controlResized(ControlEvent e) { Point size = table.getSize(); ScrollBar bar = table.getVerticalBar(); if (bar != null && bar.isVisible()) { size.x -= bar.getSize().x; } releaseColumn.setWidth(size.x - checkModeColumn.getWidth()); } }; checkModeColumn.pack(); checkModeColumn.setWidth(checkModeColumn.getWidth() + 10); table.addControlListener(columnResizer); table.getDisplay().asyncExec(new Runnable() { public void run() { columnResizer.controlResized(null); } }); viewer.setColumnProperties(new String[] { "releasePath", "checkMode" }); viewer.setContentProvider(new ArrayContentProvider()); viewer.setLabelProvider(new ReleaseCheckModeLabelProvider()); viewer.setCellModifier(new ICellModifier() { public boolean canModify(Object element, String property) { return "checkMode".equals(property); } public Object getValue(Object element, String property) { return Activator.getReleaseCheckMode((String) element); } public void modify(Object element, String property, Object value) { if (element instanceof TableItem) { element = ((TableItem) element).getData(); } String releasePath = (String) element; Activator.setReleaseCheckMode(releasePath, (ReleaseCheckMode) value); viewer.update(element, new String[] { property }); VersionUtil.cleanReleaseProjects(releasePath); } }); ComboBoxViewerCellEditor cellEditor = new ComboBoxViewerCellEditor(table); cellEditor.setContentProvider(new IStructuredContentProvider() { public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } public void dispose() { } public Object[] getElements(Object inputElement) { return ReleaseCheckMode.values(); } }); viewer.setCellEditors(new CellEditor[] { null, cellEditor }); cellEditor.setLabelProvider(new LabelProvider()); viewer.setInput(releasePaths); cellEditor.setInput(releasePaths); return table; }