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

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

Introduction

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

Prototype

public void setLabelProvider(IBaseLabelProvider labelProvider) 

Source Link

Usage

From source file:com.amitinside.e4.rcp.todo.parts.SampleUIAdapt.java

License:Apache License

@PostConstruct
public void createControl(Composite parent) {

    System.out.println("NAME=====>" + name);
    System.out.println(context.get("test"));

    final FormToolkit toolkit = new FormToolkit(parent.getDisplay());

    // Creating the Screen
    final Section section = toolkit.createSection(parent, Section.DESCRIPTION | Section.TITLE_BAR);
    section.setText("Section 1 for demonstration"); //$NON-NLS-1$
    section.setDescription("This demonstrates the usage of section");

    // Composite for storing the data
    final Composite client = toolkit.createComposite(section, SWT.WRAP);

    t = new TableViewerBuilder(client);

    t.createColumn("Summary").bindToProperty(TodoPackage.Literals.TODO__SUMMARY.getName()).makeEditable()
            .build();//from   w  ww.j  a v  a  2 s .co m

    t.createColumn("Description").makeEditable().setPixelWidth(300).useAsDefaultSortColumn()
            .bindToProperty(TodoPackage.Literals.TODO__DESCRIPTION.getName()).build();

    t.getTableViewer().addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) t.getTableViewer().getSelection();
            selectionService.setSelection(selection.getFirstElement());
        }
    });

    final ComboBoxViewerCellEditor cityComboEditor = new ComboBoxViewerCellEditor(t.getTable(), SWT.READ_ONLY);
    cityComboEditor.setContentProvider(ArrayContentProvider.getInstance());
    cityComboEditor.setLabelProvider(new LabelProvider());
    cityComboEditor.setInput(RandomData.CITIES);

    t.createColumn("Notes").makeEditable(cityComboEditor)
            .bindToProperty(TodoPackage.Literals.TODO__NOTE.getName()).build();

    toolkit.adapt(t.getTable(), true, true);

    t.getTableViewer().setContentProvider(ArrayContentProvider.getInstance());

    list.addAll(service.getTodos());
    list.addListChangeListener(listener);

    t.getTableViewer().setInput(list);

    section.setClient(client);

}

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;//  www .j  ava 2 s . 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:com.subgraph.vega.ui.http.intercept.config.BreakpointMatchTypeEditingSupport.java

License:Open Source License

@Override
protected CellEditor getCellEditor(Object element) {
    ComboBoxViewerCellEditor editor = new ComboBoxViewerCellEditor(viewer.getTable(), SWT.READ_ONLY);
    editor.setContenProvider(new ArrayContentProvider());
    editor.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            return ((IHttpConditionMatchAction) element).getLabel();
        }/* w  w w.j av a  2 s.c  om*/
    });
    final IHttpCondition condition = (IHttpCondition) element;
    final List<IHttpConditionMatchAction> matchActions = condition.getType().getMatchActions();
    editor.setInput(matchActions);
    for (IHttpConditionMatchAction ma : matchActions) {
        if (ma.getLabel().equals(condition.getMatchAction().getLabel()))
            editor.getViewer().setSelection(new StructuredSelection(ma));
    }
    return editor;
}

From source file:com.xse.optstack.persconftool.ui.applications.ApplicationsTree.java

License:Open Source License

@Override
protected TableColumn[] getColumns() {
    final ComboBoxViewerCellEditor comboBoxViewerCellEditor = new ComboBoxViewerCellEditor(this.getTree(),
            SWT.READ_ONLY);//from  w w  w.j  ava2  s .c o m
    comboBoxViewerCellEditor.setContentProvider(new IStructuredContentProvider() {
        @Override
        public void inputChanged(final Viewer viewerRef, final Object oldInput, final Object newInput) {
            // do nothing
        }

        @Override
        public void dispose() {
            // do nothing
        }

        @Override
        public Object[] getElements(final Object inputElement) {
            return EInstallRule.values();
        }
    });
    comboBoxViewerCellEditor.setLabelProvider(new AbstractBaseLabelProvider() {
        @Override
        public String getText(final Object element) {
            if (element instanceof EInstallRule) {
                return ((EInstallRule) element).getName();
            }
            return "";
        }

        @Override
        public Image getImage(final Object element) {
            return null;
        }
    });
    comboBoxViewerCellEditor.setInput(new Object());

    final TableColumn installationRuleColumn = new TableColumn("Installation Rule", 140);
    installationRuleColumn.setEditingSupport(new EditingSupport(this.getViewer()) {
        @Override
        protected void setValue(final Object element, final Object value) {
            if ((element instanceof EApplication) && (value instanceof EInstallRule)) {
                ((EApplication) element).setInstallRule((EInstallRule) value);
            }
        }

        @Override
        protected Object getValue(final Object element) {
            if (element instanceof EApplication) {
                return ((EApplication) element).getInstallRule();
            }
            return null;
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            return comboBoxViewerCellEditor;
        }

        @Override
        protected boolean canEdit(final Object element) {
            return element instanceof EApplication;
        }
    });

    final TextCellEditor textCellEditor = new TextCellEditor(this.getTree(), SWT.NONE);
    final TableColumn sizeColumn = new TableColumn("Size (kB)", 100);
    sizeColumn.setEditingSupport(new EditingSupport(this.getViewer()) {
        @Override
        protected void setValue(final Object element, final Object value) {
            if ((element instanceof EApplication) && (value instanceof String)) {
                if (!StringUtils.isEmpty(value.toString())) {
                    try {
                        ((EApplication) element).setSize(Integer.valueOf(value.toString()));
                    } catch (final NumberFormatException e) {
                        // do nothing
                    }
                } else {
                    ((EApplication) element).setSize(null);
                }
            }
        }

        @Override
        protected Object getValue(final Object element) {
            if (element instanceof EApplication) {
                final EApplication app = (EApplication) element;
                return app.getSize() != null ? app.getSize().toString() : "";
            }
            return "";
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            return textCellEditor;
        }

        @Override
        protected boolean canEdit(final Object element) {
            return element instanceof EApplication;
        }
    });

    final TableColumn userNameColumn = new TableColumn("User", 100);
    userNameColumn.setEditingSupport(new EditingSupport(this.getViewer()) {
        @Override
        protected void setValue(final Object element, final Object value) {
            if ((element instanceof EApplication) && (value instanceof String)) {
                ((EApplication) element).setUserName(String.valueOf(value));
            }
        }

        @Override
        protected Object getValue(final Object element) {
            if (element instanceof EApplication) {
                final EApplication app = (EApplication) element;
                return app.getUserName();
            }
            return "?";
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            return textCellEditor;
        }

        @Override
        protected boolean canEdit(final Object element) {
            return element instanceof EApplication;
        }
    });

    final TableColumn groupNameColumn = new TableColumn("Group", 100);
    groupNameColumn.setEditingSupport(new EditingSupport(this.getViewer()) {
        @Override
        protected void setValue(final Object element, final Object value) {
            if ((element instanceof EApplication) && (value instanceof String)) {
                String stringVal = String.valueOf(value);
                ((EApplication) element).setGroupName(stringVal);
            }
        }

        @Override
        protected Object getValue(final Object element) {
            if (element instanceof EApplication) {
                final EApplication app = (EApplication) element;
                String groupName = app.getGroupName();

                return groupName;
            }
            return "?";
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            return textCellEditor;
        }

        @Override
        protected boolean canEdit(final Object element) {
            return element instanceof EApplication;
        }
    });

    final TableColumn userIdColumn = new TableColumn("User ID", 100);
    userIdColumn.setEditingSupport(new EditingSupport(this.getViewer()) {
        @Override
        protected void setValue(final Object element, final Object value) {
            if ((element instanceof EApplication) && (value instanceof String)) {
                if (!StringUtils.isEmpty(value.toString())) {
                    try {
                        ((EApplication) element).setUserId(Integer.valueOf(value.toString()));
                    } catch (final NumberFormatException e) {
                        // do nothing
                    }
                } else {
                    ((EApplication) element).setUserId(null);
                }
            }
        }

        @Override
        protected Object getValue(final Object element) {
            if (element instanceof EApplication) {
                final EApplication app = (EApplication) element;
                return app.getUserId() != null ? app.getUserId().toString() : "";
            }
            return "";
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            return textCellEditor;
        }

        @Override
        protected boolean canEdit(final Object element) {
            return element instanceof EApplication;
        }
    });

    final TableColumn groupIdColumn = new TableColumn("Group ID", 100);
    groupIdColumn.setEditingSupport(new EditingSupport(this.getViewer()) {
        @Override
        protected void setValue(final Object element, final Object value) {
            if ((element instanceof EApplication) && (value instanceof String)) {
                if (!StringUtils.isEmpty(value.toString())) {
                    try {
                        ((EApplication) element).setGroupId(Integer.valueOf(value.toString()));
                    } catch (final NumberFormatException e) {
                        // do nothing
                    }
                } else {
                    ((EApplication) element).setGroupId(null);
                }
            }
        }

        @Override
        protected Object getValue(final Object element) {
            if (element instanceof EApplication) {
                final EApplication app = (EApplication) element;
                return app.getGroupId() != null ? app.getGroupId().toString() : "";
            }
            return "";
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            return textCellEditor;
        }

        @Override
        protected boolean canEdit(final Object element) {
            return element instanceof EApplication;
        }
    });

    return new TableColumn[] { new TableColumn("Name", 220), installationRuleColumn, sizeColumn, userNameColumn,
            groupNameColumn, userIdColumn, groupIdColumn };
}

From source file:com.xse.optstack.persconftool.ui.resources.ResourcesTable.java

License:Open Source License

@Override
protected TableColumn[] getColumns() {
    final ComboBoxViewerCellEditor comboBoxViewerCellEditor = new ComboBoxViewerCellEditor(this.getTable(),
            SWT.READ_ONLY);//from   www.  j  a  va  2s  . c  om
    comboBoxViewerCellEditor.setContentProvider(new IStructuredContentProvider() {
        @Override
        public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) {
        }

        @Override
        public void dispose() {
        }

        @Override
        public Object[] getElements(final Object inputElement) {
            final Object[] vals = new Object[EInstallException.values().length + 1];
            int i = 0;
            for (final EInstallException eInstallException : EInstallException.values()) {
                vals[i++] = eInstallException;
            }
            vals[i] = StructuredSelection.EMPTY;
            return vals;
        }
    });
    comboBoxViewerCellEditor.setLabelProvider(new AbstractBaseLabelProvider() {
        @Override
        public String getText(final Object element) {
            if (element instanceof EInstallException) {
                return ((EInstallException) element).getName();
            } else {
                return "";
            }
        }

        @Override
        public Image getImage(final Object element) {
            return null;
        }
    });
    comboBoxViewerCellEditor.setInput(new Object());

    final TableColumn installationRuleColumn = new TableColumn("Installation Exception", 140);
    installationRuleColumn.setEditingSupport(new EditingSupport(this.getViewer()) {
        @Override
        protected void setValue(final Object element, final Object value) {
            if (element instanceof EResource) {
                if (value instanceof EInstallException) {
                    ((EResource) element).setInstallException((EInstallException) value);
                } else {
                    ((EResource) element).setInstallException(null);
                }
                this.getViewer().refresh(element);
            }
        }

        @Override
        protected Object getValue(final Object element) {
            if (element instanceof EResource) {
                final EResource res = (EResource) element;
                if (res.getInstallException() != null) {
                    return res.getInstallException();
                } else {
                    return StructuredSelection.EMPTY;
                }
            }
            return null;
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            return comboBoxViewerCellEditor;
        }

        @Override
        protected boolean canEdit(final Object element) {
            return element instanceof EResource;
        }
    });

    return new TableColumn[] { new TableColumn("Name", 180), installationRuleColumn };
}

From source file:era.foss.typeeditor.common.Ui.java

License:Open Source License

/**
 * Create a column with EMF databinding for a table viewer
 * //from   w  ww  .  j  a va2  s  .  co  m
 * <li>In case the top level structural feature is a reference display a combo box</li> <li>In case the top level
 * structural feature is a containment reference create element if it does not exist</li> <li>In case the structural
 * feature is a boolean show a checkbox</li> <li>Otherwise show a simple text field</li>.
 *
 * @param column the column
 * @param eStructuralFeatureList list to create a feature path from
 * @param refObservedObject the ref observed object
 * @param refEStructuralFeatureList the ref e structural feature list
 */
public void bindColumn(TableViewerColumn column, EStructuralFeature[] eStructuralFeatureList,
        EObject refObservedObject, EStructuralFeature[] refEStructuralFeatureList) {

    TableViewer tableViewer = (TableViewer) column.getViewer();
    ObservableListContentProvider cp = (ObservableListContentProvider) tableViewer.getContentProvider();
    assert (cp != null);

    // get the top level structural feature
    EStructuralFeature topStructuralFeature = eStructuralFeatureList[0];

    // set label provider
    IValueProperty elementProperty = EMFEditProperties.value(editingDomain,
            FeaturePath.fromList(eStructuralFeatureList));
    IObservableMap attributeMap = elementProperty.observeDetail(cp.getKnownElements());
    column.setLabelProvider(new ObservableMapCellLabelProvider(attributeMap));

    EditingSupport editingSupport = null;

    // Show combo box for references
    if (refObservedObject != null && refEStructuralFeatureList != null) {

        // Combo box: Create combo box to select choices for the reference
        ComboBoxViewerCellEditor combo = new ComboBoxViewerCellEditorSp((Composite) tableViewer.getControl(),
                SWT.READ_ONLY);
        // Combo box: Set Content Provider
        ObservableListContentProvider comboContentProvider = new ObservableListContentProvider();
        combo.setContentProvider(comboContentProvider);

        IObservableMap comboAttributeMap = EMFProperties
                .value(eStructuralFeatureList[eStructuralFeatureList.length - 1])
                .observeDetail(comboContentProvider.getKnownElements());
        combo.setLabelProvider(new ObservableMapLabelProvider(comboAttributeMap));
        // Combo box: set input
        IEMFListProperty dataTypeDefinitions = EMFProperties
                .list(FeaturePath.fromList(refEStructuralFeatureList));
        combo.setInput(dataTypeDefinitions.observe(refObservedObject));

        // Set editing support of table cell
        IValueProperty editorElementProperty = EMFEditProperties.value(editingDomain, topStructuralFeature);
        IValueProperty cellEditorProperty = ViewerProperties.singleSelection();

        editingSupport = ObservableValueEditingSupport.create(tableViewer, dataBindContext, combo,
                cellEditorProperty, editorElementProperty);

    }
    // Simple text
    else {
        IValueProperty cellEditorProperty = CellEditorProperties.control()
                .value(WidgetProperties.text(SWT.Modify));

        editingSupport = ObservableValueEditingSupport.create(tableViewer, dataBindContext,
                new TextCellEditor(tableViewer.getTable()), cellEditorProperty, elementProperty);
    }

    column.setEditingSupport(editingSupport);

}

From source file:era.foss.typeeditor.view.ViewForm.java

License:Open Source License

/**
 * Creates the table viewer for {@link ViewElements}
 * /*ww w . j av  a 2 s . co m*/
 * @param parent parent composite
 */
private void createViewElementTableViewer(Composite parent) {

    this.viewElementTableViewer = new AddDeleteTableViewer(parent,
            SWT.MULTI | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION | AddDeleteTableViewer.NO_DESCRIPTION) {

        @Override
        public void addElement() {
            this.elementOwner = (EObject) viewMaster.getValue();
            super.addElement(); // is_a ViewElement
            ViewElement addedViewElement = (ViewElement) super.getElementAt(super.doGetItemCount() - 1);
            // default placement of views' elements
            addedViewElement.setEditorRowPosition(getCurrentMaxRowIdx() + 1);
            addedViewElement.setEditorColumnPosition(0);
            addedViewElement.setEditorColumnSpan(2);
            addedViewElement.setEditorRowSpan(1);
        }

        /**
         * Calculates maximum row index of existing view elements
         * 
         * @return maximum row index
         */
        private int getCurrentMaxRowIdx() {
            int maxRowIdx = 0;
            for (int i = 0; i < super.doGetItemCount(); ++i) {
                ViewElement iterViewElement = (ViewElement) super.getElementAt(i);
                maxRowIdx = Math.max(maxRowIdx,
                        iterViewElement.getEditorRowPosition() + (iterViewElement.getEditorRowSpan() - 1));
            }
            return maxRowIdx;
        }

        @Override
        protected void createButtonBar() {
            super.createButtonBar();
            // FIXME @cpn create "add all" button
        }
    };

    // the owner is null as it is set in the overridden addElement() method
    viewElementTableViewer.setElementInformation((EObject) viewMaster.getValue(),
            ErfPackage.Literals.VIEW__VIEW_ELEMENTS, ErfPackage.Literals.VIEW_ELEMENT);

    viewElementTableViewer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 2));
    viewElementTableViewer.setEditingDomain(editingDomain);

    ObservableListContentProvider tableViewerContentProvider = new ObservableListContentProvider();
    viewElementTableViewer.setContentProvider(tableViewerContentProvider);

    TableColumnLayout columnLayout = (TableColumnLayout) viewElementTableViewer.getTable().getParent()
            .getLayout();

    // create column showing the Attribute Definition
    TableViewerColumn attributeDefinitionColumn = new TableViewerColumn(viewElementTableViewer, SWT.NONE);
    columnLayout.setColumnData(attributeDefinitionColumn.getColumn(), new ColumnWeightData(100, 70));
    attributeDefinitionColumn.getColumn().setResizable(false);
    attributeDefinitionColumn.getColumn().setMoveable(false);
    attributeDefinitionColumn.getColumn()
            .setText(Ui.getUiName(ErfPackage.Literals.VIEW_ELEMENT__ATTRIBUTE_DEFINITION));

    // label provider for column showing the AttributeDefintion
    IValueProperty elementProperty = EMFEditProperties.value(editingDomain,
            FeaturePath
                    .fromList(new EStructuralFeature[] { ErfPackage.Literals.VIEW_ELEMENT__ATTRIBUTE_DEFINITION,
                            ErfPackage.Literals.IDENTIFIABLE__LONG_NAME }));
    IObservableMap attributeMap = elementProperty.observeDetail(tableViewerContentProvider.getKnownElements());
    attributeDefinitionColumn.setLabelProvider(new ObservableMapCellLabelProvider(attributeMap));

    // editing support column showing the AttributeDefintion

    // Combo box: Create combo box to select choices for the reference
    ComboBoxViewerCellEditor combo = new ComboBoxViewerCellEditorSp(
            (Composite) viewElementTableViewer.getControl(), SWT.DROP_DOWN | SWT.READ_ONLY);
    // Combo box: Set Content Provider;
    ObservableListContentProvider comboBoxContentProvider = new ObservableListContentProvider();
    combo.setContentProvider(comboBoxContentProvider);

    // Combo box: Set Label Provider
    combo.setLabelProvider(
            new ObservableMapLabelProvider(EMFProperties.value(ErfPackage.Literals.IDENTIFIABLE__LONG_NAME)
                    .observeDetail(comboBoxContentProvider.getKnownElements())));
    // Combo box: set input from selected specType
    IEMFListProperty specAttributesProperty = EMFProperties
            .list(ErfPackage.Literals.SPEC_TYPE__SPEC_ATTRIBUTES);
    combo.setInput(specAttributesProperty.observeDetail(specTypeMaster));

    // Set editing support of table cell
    IValueProperty editorElementProperty = EMFEditProperties.value(editingDomain,
            ErfPackage.Literals.VIEW_ELEMENT__ATTRIBUTE_DEFINITION);
    IValueProperty cellEditorProperty = ViewerProperties.singleSelection();

    attributeDefinitionColumn.setEditingSupport(ObservableValueEditingSupport.create(viewElementTableViewer,
            dataBindContext, combo, cellEditorProperty, editorElementProperty));

    // provide input for the table
    IEMFListProperty viewsProperty = EMFProperties.list(ErfPackage.Literals.VIEW__VIEW_ELEMENTS);
    viewElementTableViewer.addFilter(new SpecTypeFilter());
    viewElementTableViewer.setInput(viewsProperty.observeDetail(viewMaster));

    viewElementMaster = ViewerProperties.singleSelection().observe(viewElementTableViewer);
    viewElementTableViewer.getTable().select(0);
}

From source file:eu.esdihumboldt.hale.ui.views.tasks.TaskStatusEditingSupport.java

License:Open Source License

/**
 * @see EditingSupport#getCellEditor(Object)
 *///ww w.j  ava2s. c om
@Override
protected CellEditor getCellEditor(Object element) {
    ComboBoxViewerCellEditor editor = new ComboBoxViewerCellEditor((Composite) getViewer().getControl(),
            SWT.READ_ONLY);

    editor.setContenProvider(ArrayContentProvider.getInstance());
    editor.setLabelProvider(new LabelProvider());
    editor.setInput(
            new Object[] { TaskStatus.NEW, TaskStatus.ACTIVE, TaskStatus.COMPLETED, TaskStatus.IGNORED });

    return editor;
}

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   www  .  j  ava2s. c o  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:gov.redhawk.ide.debug.ui.tabs.ImplementationTab.java

License:Open Source License

/**
 * {@inheritDoc}//from w  ww  .j av a2s .co m
 */
@Override
public void createControl(final Composite parent) {
    final Composite composite = new Composite(parent, SWT.NONE);
    setControl(composite);
    composite.setFont(parent.getFont());
    composite.setLayout(new FillLayout());

    final TableLayout layout = new TableLayout();
    this.viewer = new TableViewer(composite, SWT.BORDER);
    this.viewer.getTable().setLayout(layout);
    this.viewer.getTable().setHeaderVisible(true);
    this.viewer.getTable().setLinesVisible(true);
    this.viewer.setContentProvider(new IStructuredContentProvider() {

        @Override
        public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) {

        }

        @Override
        public void dispose() {

        }

        @Override
        public Object[] getElements(final Object inputElement) {
            if (inputElement instanceof SoftwareAssembly) {
                final SoftwareAssembly localSad = (SoftwareAssembly) inputElement;
                final List<SadComponentInstantiation> retVal = new ArrayList<SadComponentInstantiation>();
                for (final HostCollocation hc : localSad.getPartitioning().getHostCollocation()) {
                    for (final SadComponentPlacement cp : hc.getComponentPlacement()) {
                        retVal.addAll(cp.getComponentInstantiation());
                    }
                }
                for (final SadComponentPlacement cp : localSad.getPartitioning().getComponentPlacement()) {
                    retVal.addAll(cp.getComponentInstantiation());
                }
                return retVal.toArray();
            }
            return new Object[0];
        }
    });
    this.viewer.setInput(this.sad);

    final TableViewerColumn componentColumn = new TableViewerColumn(this.viewer, SWT.CENTER);
    componentColumn.getColumn().setText("Instantiation");
    componentColumn.setLabelProvider(new TreeColumnViewerLabelProvider(new LabelProvider() {
        @Override
        public String getText(final Object element) {
            final SadComponentInstantiation ci = (SadComponentInstantiation) element;
            return ci.getUsageName();
        }
    }));
    layout.addColumnData(new ColumnWeightData(20, 20, true)); //SUPPRESS CHECKSTYLE MagicNumber

    final TableViewerColumn implColumn = new TableViewerColumn(this.viewer, SWT.CENTER);
    implColumn.getColumn().setText("Implementation");
    implColumn.setLabelProvider(new TreeColumnViewerLabelProvider(new LabelProvider() {
        @Override
        public String getText(final Object element) {
            final SadComponentInstantiation ci = (SadComponentInstantiation) element;
            final String implId = ImplementationTab.this.implMap.get(ci.getId());
            final SoftPkg softPkg = ScaEcoreUtils.getFeature(ci, ImplementationTab.SPD_PATH);
            Implementation impl = null;
            if (implId != null) {
                return implId;
            } else if (softPkg != null && !softPkg.getImplementation().isEmpty()) {
                impl = softPkg.getImplementation().get(0);
            }
            if (impl == null) {
                return "";
            } else {
                return impl.getId();
            }
        }
    }));
    implColumn.setEditingSupport(new EditingSupport(this.viewer) {

        @Override
        protected void setValue(final Object element, final Object value) {
            final SadComponentInstantiation ci = (SadComponentInstantiation) element;
            if (value == null) {
                ImplementationTab.this.implMap.remove(ci.getId());
            } else if (value instanceof String) {
                ImplementationTab.this.implMap.put(ci.getId(), value.toString());
            } else if (value instanceof Implementation) {
                ImplementationTab.this.implMap.put(ci.getId(), ((Implementation) value).getId());
            } else {
                ImplementationTab.this.implMap.remove(ci.getId());
            }
            ImplementationTab.this.viewer.refresh(element);
            updateLaunchConfigurationDialog();
        }

        @Override
        protected Object getValue(final Object element) {
            final SadComponentInstantiation ci = (SadComponentInstantiation) element;
            return getImplementation(ci);
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            final SadComponentInstantiation ci = (SadComponentInstantiation) element;
            final SoftPkg spd = ScaEcoreUtils.getFeature(ci, ImplementationTab.SPD_PATH);
            final ComboBoxViewerCellEditor editor = new ComboBoxViewerCellEditor(
                    ImplementationTab.this.viewer.getTable(), SWT.READ_ONLY);
            editor.setContentProvider(new ArrayContentProvider());
            editor.setLabelProvider(new AdapterFactoryLabelProvider(ImplementationTab.this.adapterFactory));
            if (spd != null) {
                editor.setInput(spd.getImplementation());
            }
            return editor;
        }

        @Override
        protected boolean canEdit(final Object element) {
            return true;
        }
    });
    layout.addColumnData(new ColumnWeightData(100, 20, true)); //SUPPRESS CHECKSTYLE MagicNumber

}