Example usage for org.eclipse.jface.viewers ComboBoxViewerCellEditor ComboBoxViewerCellEditor

List of usage examples for org.eclipse.jface.viewers ComboBoxViewerCellEditor ComboBoxViewerCellEditor

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ComboBoxViewerCellEditor ComboBoxViewerCellEditor.

Prototype

public ComboBoxViewerCellEditor(Composite parent) 

Source Link

Document

Creates a new cell editor with a combo viewer and a default style

Usage

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;
}