Example usage for org.eclipse.jface.databinding.viewers ObservableListContentProvider getKnownElements

List of usage examples for org.eclipse.jface.databinding.viewers ObservableListContentProvider getKnownElements

Introduction

In this page you can find the example usage for org.eclipse.jface.databinding.viewers ObservableListContentProvider getKnownElements.

Prototype

public IObservableSet<E> getKnownElements() 

Source Link

Document

Returns the set of elements known to this content provider.

Usage

From source file:com.netxforge.netxstudio.screens.f4.MetricSources.java

License:Open Source License

public EMFDataBindingContext initDataBindings_() {

    EMFDataBindingContext bindingContext = new EMFDataBindingContext();
    ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
    metricSourceTableViewer.setContentProvider(listContentProvider);

    final IObservableSet knownElements = listContentProvider.getKnownElements();

    List<IObservableMap> maps = Lists.newArrayList();

    maps.add(EMFProperties.value(MetricsPackage.Literals.METRIC_SOURCE__NAME).observeDetail(knownElements));

    maps.add(EMFProperties.value(MetricsPackage.Literals.METRIC_SOURCE__METRIC_LOCATION)
            .observeDetail(knownElements));

    maps.add(EMFProperties.value(MetricsPackage.Literals.METRIC_SOURCE__METRIC_MAPPING)
            .observeDetail(knownElements));

    IObservableMap[] observeMaps = new IObservableMap[maps.size()];
    maps.toArray(observeMaps);//www.j a  va2 s.c o  m

    metricSourceTableViewer.setLabelProvider(new MetricSourceObservableMapLabelProvider(observeMaps));

    IEMFListProperty l = EMFEditProperties.resource(editingService.getEditingDomain());
    IObservableList metricSourcesObservableList = l.observe(msResource);
    metricSourceTableViewer.setInput(metricSourcesObservableList);
    return bindingContext;
}

From source file:com.netxforge.netxstudio.screens.f4.ResourceMonitors.java

License:Open Source License

public EMFDataBindingContext initDataBindings_() {
    EMFDataBindingContext bindingContext = new EMFDataBindingContext();

    ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
    resourceMonitorsTableViewer.setContentProvider(listContentProvider);

    IObservableMap[] observeMaps = EMFObservables.observeMaps(listContentProvider.getKnownElements(),
            new EStructuralFeature[] { OperatorsPackage.Literals.RESOURCE_MONITOR__NODE_REF,
                    OperatorsPackage.Literals.RESOURCE_MONITOR__RESOURCE_REF,
                    OperatorsPackage.Literals.RESOURCE_MONITOR__MARKERS, });
    resourceMonitorsTableViewer.setLabelProvider(new ResourceMonitorObervableMapLabelProvider(observeMaps));

    // IEMFListProperty serviceMonitorObservableList =
    // EMFEditProperties.list(
    // editingService.getEditingDomain(),
    // ServicesPackage.Literals.SERVICE_MONITOR__RESOURCE_MONITORS);

    IEMFListProperty serviceMonitorObservableList = EMFEditProperties.list(editingService.getEditingDomain(),
            ServicesPackage.Literals.SERVICE_MONITOR__RESOURCE_MONITORS);

    IObservableList resourceList = serviceMonitorObservableList.observe(serviceMonitor);
    // obm.addObservable(resourceList);
    resourceMonitorsTableViewer.setInput(resourceList);

    return bindingContext;
}

From source file:com.netxforge.netxstudio.screens.f4.ServiceMonitors.java

License:Open Source License

public EMFDataBindingContext initDataBindings_() {
    EMFDataBindingContext bindingContext = new EMFDataBindingContext();

    // tblViewerClmnState.setEditingSupport(new CheckBoxEditingSupport(
    // jobsTableViewer, bindingContext));

    ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
    serviceMonitorsTableViewer.setContentProvider(listContentProvider);

    EAttribute dummyAttribute = EcoreFactory.eINSTANCE.createEAttribute();

    IObservableMap[] observeMaps = EMFObservables.observeMaps(listContentProvider.getKnownElements(),
            new EStructuralFeature[] { dummyAttribute, ServicesPackage.Literals.SERVICE_MONITOR__NAME,
                    ServicesPackage.Literals.SERVICE_MONITOR__REVISION,
                    ServicesPackage.Literals.SERVICE_MONITOR__PERIOD,
                    ServicesPackage.Literals.SERVICE_MONITOR__PERIOD, });
    serviceMonitorsTableViewer.setLabelProvider(new ServiceMonitorsObervableMapLabelProvider(observeMaps));

    IEMFListProperty resourcesProperties = EMFEditProperties.list(editingService.getEditingDomain(),
            ServicesPackage.Literals.SERVICE__SERVICE_MONITORS);
    IObservableList rfsServicesObservableList = resourcesProperties.observe(this.rfsService);
    // obm.addObservable(rfsServicesObservableList);
    serviceMonitorsTableViewer.setInput(rfsServicesObservableList);

    return bindingContext;
}

From source file:com.netxforge.netxstudio.screens.nf4.NewEditUser.java

License:Open Source License

/**
 * Converted to new EMF API./*from  w  ww  .j  av a2s.com*/
 * 
 * @return
 */
public EMFDataBindingContext initDataBindings_() {

    EMFDataBindingContext bindingContext = new EMFDataBindingContext();
    validationService.registerBindingContext(bindingContext);

    // Validation Strategies
    EMFUpdateValueStrategy loginStrategy = ValidationService.getStrategyfactory()
            .strategyBeforeSetStringNotEmpty("Login is required");

    EMFUpdateValueStrategy firstNameStrategy = ValidationService.getStrategyfactory()
            .strategyBeforeSetStringNotEmpty("First name is required");

    EMFUpdateValueStrategy lastNameStrategy = ValidationService.getStrategyfactory()
            .strategyBeforeSetStringNotEmpty("Last name is required");

    EMFUpdateValueStrategy emailNameStrategy = ValidationService.getStrategyfactory()
            .strategyBeforeSetStringNotEmpty("Email is required");

    // The active strategy is merely a warning.
    EMFUpdateValueStrategy activeStrategy = ValidationService.getStrategyfactory()
            .strategyAfterGet(new IValidator() {

                public IStatus validate(Object value) {
                    if (value instanceof Boolean) {
                        if (!((Boolean) value).booleanValue()) {
                            // Not active, issue warning.
                            return new Status(IStatus.WARNING, ScreensActivator.PLUGIN_ID,
                                    "Person not active, are you sure");
                        } else {
                            return Status.OK_STATUS;
                        }
                    } else {
                        return new Status(IStatus.ERROR, ScreensActivator.PLUGIN_ID,
                                "Should and will not occure");
                    }
                }

            });

    EMFUpdateValueStrategy roleStrategy = ValidationService.getStrategyfactory()
            .strategyAfterGet(new IValidator() {
                public IStatus validate(Object value) {
                    if (value == null) {
                        return new Status(IStatus.WARNING, ScreensActivator.PLUGIN_ID,
                                "A role should be selected");
                    } else {
                        // Any other value should do.
                        return Status.OK_STATUS;
                    }

                }
            });

    // Bindings

    IObservableValue textObserveTextObserveWidget_1 = SWTObservables.observeDelayedValue(100,
            SWTObservables.observeText(txtLogin, SWT.Modify));

    IEMFValueProperty userLoginObserveValue_1 = EMFEditProperties.value(editingService.getEditingDomain(),
            Literals.PERSON__LOGIN);

    bindingContext.bindValue(textObserveTextObserveWidget_1, userLoginObserveValue_1.observe(user),
            loginStrategy, null);

    IObservableValue txtFirstNameObserveTextObserveWidget = SWTObservables.observeDelayedValue(400,
            SWTObservables.observeText(txtFirstName, SWT.Modify));
    // IObservableValue userFirstNameObserveValue =
    // EMFObservables.observeValue(user, Literals.PERSON__FIRST_NAME);

    IEMFValueProperty userFirstNameObserveValue = EMFEditProperties.value(editingService.getEditingDomain(),
            Literals.PERSON__FIRST_NAME);

    bindingContext.bindValue(txtFirstNameObserveTextObserveWidget, userFirstNameObserveValue.observe(user),
            firstNameStrategy, null);
    IObservableValue txtLastNameObserveTextObserveWidget = SWTObservables.observeDelayedValue(400,
            SWTObservables.observeText(txtLastName, SWT.Modify));
    // IObservableValue userLastNameObserveValue = EMFObservables
    // .observeValue(user, Literals.PERSON__LAST_NAME);

    IEMFValueProperty userLastNameObserveValue = EMFEditProperties.value(editingService.getEditingDomain(),
            Literals.PERSON__LAST_NAME);

    bindingContext.bindValue(txtLastNameObserveTextObserveWidget, userLastNameObserveValue.observe(user),
            lastNameStrategy, null);

    IObservableValue txtEmailObserveTextObserveWidget = SWTObservables.observeDelayedValue(400,
            SWTObservables.observeText(txtEmail, SWT.Modify));

    // IObservableValue userEmailObserveValue = EMFObservables.observeValue(
    // user, Literals.PERSON__EMAIL);

    IEMFValueProperty userEmailObserveValue = EMFEditProperties.value(editingService.getEditingDomain(),
            Literals.PERSON__EMAIL);

    bindingContext.bindValue(txtEmailObserveTextObserveWidget, userEmailObserveValue.observe(user),
            emailNameStrategy, null);

    IObservableValue btnCheckObserveSelectionObserveWidget = SWTObservables.observeSelection(btnCheck);
    IEMFValueProperty userActiveObserveValue = EMFEditProperties.value(editingService.getEditingDomain(),
            Literals.PERSON__ACTIVE);
    bindingContext.bindValue(btnCheckObserveSelectionObserveWidget, userActiveObserveValue.observe(user),
            activeStrategy, null);

    IObservableValue passwordObservableValue = new WritableValue();

    IObservableValue txtPasswordObserveTextObserveWidget = SWTObservables.observeDelayedValue(400,
            SWTObservables.observeText(txtPass, SWT.Modify));
    IObservableValue txtConfirmObserveTextObserveWidget = SWTObservables.observeDelayedValue(400,
            SWTObservables.observeText(txtConfirm, SWT.Modify));

    // NEW CODE, Use a custom MultiValidator, it produces

    NewPasswordConfirmed newPasswordConfirmed = new NewPasswordConfirmed(bindingContext,
            new IObservableValue[] { txtPasswordObserveTextObserveWidget, txtConfirmObserveTextObserveWidget });

    passwordObservableValue = newPasswordConfirmed
            .observeValidatedValue(newPasswordConfirmed.getMiddletons().get(0));

    // OLD CODE.
    // Special writable case for password and confirmation,
    // both share the value changed listener, which only sets the model.
    // when both passwords are the same. 2 x widgets -> model

    // PasswordConfirmed confirmedHandler = new PasswordConfirmed(
    // passwordObservableValue);

    // txtPasswordObserveTextObserveWidget
    // .addValueChangeListener(confirmedHandler);

    // txtConfirmObserveTextObserveWidget
    // .addValueChangeListener(confirmedHandler);

    // EMFUpdateValueStrategy passStrategy = ValidationService
    // .getStrategyfactory().strategyAfterGet(confirmedHandler);

    EMFUpdateValueStrategy passStrategy = new EMFUpdateValueStrategy();
    passStrategy.setConverter(new PasswordConverter());

    IEMFValueProperty passwordObserveValue = EMFEditProperties.value(editingService.getEditingDomain(),
            Literals.PERSON__PASSWORD);

    // Password, can not be presented (Ok it can but we don't want to), so only target to model.
    bindingContext.bindValue(passwordObservableValue, passwordObserveValue.observe(user), passStrategy, null);

    newPasswordConfirmed.revalidateExternal();

    // Hand coded binding for a combo.

    ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
    this.getComboViewerWidget().setContentProvider(listContentProvider);

    IObservableMap observeMap = EMFObservables.observeMap(listContentProvider.getKnownElements(),
            Literals.ROLE__NAME);
    this.getComboViewerWidget().setLabelProvider(new ObservableMapLabelProvider(observeMap));

    rolesResource = editingService.getData(GenericsPackage.Literals.ROLE);
    IEMFListProperty l = EMFEditProperties.resource(editingService.getEditingDomain());
    IObservableList rolesObservableList = l.observe(rolesResource);

    // obm.addObservable(rolesObservableList);

    this.getComboViewerWidget().setInput(rolesObservableList);

    IObservableValue comboObserveProxy = ViewerProperties.singleSelection().observe(comboViewer);

    IEMFValueProperty roleObserveValue = EMFEditProperties.value(editingService.getEditingDomain(),
            Literals.PERSON__ROLES);

    bindingContext.bindValue(comboObserveProxy, roleObserveValue.observe(user), roleStrategy, null);

    return bindingContext;
}

From source file:com.netxforge.netxstudio.screens.nf4.UserActivity.java

License:Open Source License

public EMFDataBindingContext initDataBindings_() {

    EMFDataBindingContext bindingContext = new EMFDataBindingContext();
    ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
    tableViewer.setContentProvider(listContentProvider);
    IObservableMap[] observeMaps = EMFObservables.observeMaps(listContentProvider.getKnownElements(),
            new EStructuralFeature[] { GenericsPackage.Literals.COMMIT_LOG_ENTRY__TIME_STAMP,
                    GenericsPackage.Literals.COMMIT_LOG_ENTRY__OBJECT_ID,
                    GenericsPackage.Literals.COMMIT_LOG_ENTRY__ACTION,
                    GenericsPackage.Literals.COMMIT_LOG_ENTRY__CHANGE });
    tableViewer.setLabelProvider(new CommitObservableMapLabelProvider(observeMaps));

    // Cool, observer the whole resource.
    IEMFListProperty l = EMFProperties.resource();
    tableViewer.setInput(l.observe(commitEntries));
    return bindingContext;
}

From source file:com.rcpcompany.uibindings.internal.ViewerBindingImpl.java

License:Open Source License

@Override
public void finish1() {
    final ColumnViewer viewer = getViewer(); // TODO SWTB
    assertTrue(viewer != null, "No viewer set"); //$NON-NLS-1$
    assertTrue(getList() != null, "No model list"); //$NON-NLS-1$
    assertTrue(!getColumns().isEmpty(), "No columns in viewer"); //$NON-NLS-1$

    final Control control = getControl();
    assertTrue((control.getStyle() & SWT.FULL_SELECTION) != 0, "Viewer must have SWT.FULL_SELECTION set"); //$NON-NLS-1$
    // SWTEventUtils.swtListen(control);

    if (viewer instanceof TableViewer) {
        final ObservableListContentProvider contentProvider = new ObservableListContentProvider();
        viewer.setContentProvider(contentProvider);
        setElements(contentProvider.getKnownElements());
    } else if (viewer instanceof TreeViewer) {
        myTreeFactory = new ViewerBindingTreeFactory(getList(), getArgument(ARG_TREE_ID, String.class, null));
        final ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(
                myTreeFactory, myTreeFactory);
        viewer.setContentProvider(contentProvider);
        myValidationLabelDecorator = new ValidationLabelDecorator();
        myValidationLabelDecorator.setPropagationAdapter(new ValidationLabelDecorator.IPropagationAdapter() {
            @Override/*  w ww .j  av a  2s .  com*/
            public Object getParent(Object object) {
                if (isDisposed())
                    return null;
                return contentProvider.getParent(object);
            }
        });
        setElements(contentProvider.getKnownElements());
    } else {
        assertTrue(false, "Viewer not a Table or a Tree?"); //$NON-NLS-1$
    }

    IManager.Factory.getManager().eAdapters().add(myManagerAdapter);
    control.addListener(SWT.PaintItem, myPaintItemListener);
    if ((control.getStyle() & SWT.SINGLE) == SWT.SINGLE) {
        mySelectionChangedListener = new ISelectionChangedListener() {
            @Override
            public void selectionChanged(SelectionChangedEvent event) {
                myLastReportedSelectedElement = ((IStructuredSelection) event.getSelection()).getFirstElement();
            }
        };
        viewer.addSelectionChangedListener(mySelectionChangedListener);
    }
    registerWidget(control);

    /*
     * More or less adapted (read "stolen") from Snippet026TreeViewerTabEditing...
     * 
     * Actually it is more and more less and less...
     */
    final ColumnViewerEditorActivationStrategy actSupport = new CellEditorActivationStrategy(this);

    final FocusCellOwnerDrawHighlighter focusDrawingDelegate = new FocusCellOwnerDrawHighlighter(viewer);
    final int feature = ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
            | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION;
    try {
        if (viewer instanceof TableViewer) {
            final Class<?> cls = Class.forName("org.eclipse.jface.viewers.MyTableViewerFocusCellManager");
            final Constructor<?> constructor = cls.getConstructor(TableViewer.class, FocusCellHighlighter.class,
                    CellNavigationStrategy.class);
            myViewerFocusCellManager = (IMyViewerFocusCellManager) constructor.newInstance(viewer,
                    focusDrawingDelegate, theCellNavigationStrategy);
            TableViewerEditor.create((TableViewer) viewer,
                    (TableViewerFocusCellManager) myViewerFocusCellManager, actSupport, feature);
        } else if (viewer instanceof TreeViewer) {
            final Class<?> cls = Class.forName("org.eclipse.jface.viewers.MyTreeViewerFocusCellManager");
            final Constructor<?> constructor = cls.getConstructor(TreeViewer.class, FocusCellHighlighter.class,
                    CellNavigationStrategy.class);
            myViewerFocusCellManager = (IMyViewerFocusCellManager) constructor.newInstance(viewer,
                    focusDrawingDelegate, theCellNavigationStrategy);
            TreeViewerEditor.create((TreeViewer) viewer, (TreeViewerFocusCellManager) myViewerFocusCellManager,
                    actSupport, feature);
        } else {
            // Not supported
        }
    } catch (final Exception ex) {
        // Do nothing
    }

    if (getList() instanceof IObserving && getList().getElementType() instanceof EReference) {
        // final EObject baseObject = (EObject) ((IObserving) getList()).getObserved();
        // final EReference elementType = (EReference) getList().getElementType();

        myMessagesOnlyValueBinding = getContext().addBinding()
                .ui(control, InternalConstants.ATTR_VIEWERS_MESSAGE_ONLY).model(getList())
                .type(InternalConstants.VIEWERS_MESSAGE_ONLY_TYPE)
                .arg(Constants.ARG_MODEL_OBJECT_MESSAGES, true);
    }
    ColumnViewerToolTipSupport.enableFor(viewer);
    DoubleClickAdapter.adapt(this);
}

From source file:com.toedter.e4.demo.contacts.rap.views.ListView.java

License:Open Source License

@Inject
public ListView(Composite parent) {
    // Table composite (because of TableColumnLayout)
    final Composite tableComposite = new Composite(parent, SWT.NONE);
    tableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    final TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tableComposite.setLayout(tableColumnLayout);

    // Table viewer
    contactsViewer = new TableViewer(tableComposite, SWT.FULL_SELECTION);
    contactsViewer.getTable().setHeaderVisible(true);
    // contactsViewer.getTable().setLinesVisible(true);
    contactsViewer.setComparator(new ContactViewerComparator());

    contactsViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override/*ww w .  j av  a2  s .c om*/
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            selectionService.setSelection(selection.getFirstElement());
        }
    });

    // First name column
    final TableViewerColumn firstNameColumn = new TableViewerColumn(contactsViewer, SWT.NONE);
    firstNameColumn.getColumn().setText("First Name");
    tableColumnLayout.setColumnData(firstNameColumn.getColumn(), new ColumnWeightData(40));

    // Last name column
    final TableViewerColumn lastNameColumn = new TableViewerColumn(contactsViewer, SWT.NONE);
    lastNameColumn.getColumn().setText("Last Name");
    tableColumnLayout.setColumnData(lastNameColumn.getColumn(), new ColumnWeightData(60));

    ObservableListContentProvider contentProvider = new ObservableListContentProvider();

    contactsViewer.setContentProvider(contentProvider);

    IObservableMap[] attributes = BeansObservables.observeMaps(contentProvider.getKnownElements(),
            Contact.class, new String[] { "firstName", "lastName" });
    contactsViewer.setLabelProvider(new ObservableMapLabelProvider(attributes));

    contactsViewer.setInput(ContactsRepositoryFactory.getContactsRepository().getAllContacts());

    GridLayoutFactory.fillDefaults().generateLayout(parent);
}

From source file:com.toedter.e4.demo.contacts.swt.views.ListView.java

License:Open Source License

@Inject
public ListView(Composite parent, final MApplication application) {
    // Table composite (because of TableColumnLayout)
    final Composite tableComposite = new Composite(parent, SWT.NONE);
    tableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    final TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tableComposite.setLayout(tableColumnLayout);

    // Table viewer
    contactsViewer = new TableViewer(tableComposite, SWT.FULL_SELECTION);
    contactsViewer.getTable().setHeaderVisible(true);
    // contactsViewer.getTable().setLinesVisible(true);
    contactsViewer.setComparator(new ContactViewerComparator());

    contactsViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override//ww w .j a va  2  s  .c o m
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            // selectionService.setSelection(selection.getFirstElement());
            application.getContext().set(Contact.class, (Contact) selection.getFirstElement());
        }
    });

    // First name column
    final TableViewerColumn firstNameColumn = new TableViewerColumn(contactsViewer, SWT.NONE);
    firstNameColumn.getColumn().setText("First Name");
    tableColumnLayout.setColumnData(firstNameColumn.getColumn(), new ColumnWeightData(40));

    // Last name column
    final TableViewerColumn lastNameColumn = new TableViewerColumn(contactsViewer, SWT.NONE);
    lastNameColumn.getColumn().setText("Last Name");
    tableColumnLayout.setColumnData(lastNameColumn.getColumn(), new ColumnWeightData(60));

    ObservableListContentProvider contentProvider = new ObservableListContentProvider();

    contactsViewer.setContentProvider(contentProvider);

    IObservableMap[] attributes = BeansObservables.observeMaps(contentProvider.getKnownElements(),
            Contact.class, new String[] { "firstName", "lastName" });
    contactsViewer.setLabelProvider(new ObservableMapLabelProvider(attributes));
    IObservableList allContacts = ContactsRepositoryFactory.getContactsRepository().getAllContacts();
    contactsViewer.setInput(allContacts);

    GridLayoutFactory.fillDefaults().generateLayout(parent);

    // Hack to select Kai Toedter at startup
    for (int i = 0; i < allContacts.size(); i++) {
        Contact contact = (Contact) allContacts.get(i);

        if ("Kai".equalsIgnoreCase(contact.getFirstName())
                && "Tdter".equalsIgnoreCase(contact.getLastName())) {
            contactsViewer.setSelection(new StructuredSelection(contact));
            break;
        }
    }

}

From source file:era.foss.objecteditor.specobject.AttributeDefinitionEnumComposite.java

License:Open Source License

public Control createControl() {
    attributeDefinition = (AttributeDefinitionEnumeration) viewElement.getAttributeDefinition();

    if (attributeDefinition.isMultiValued()) {
        comboViewer = new MultiComboViewer(this, SWT.READ_ONLY | SWT.BORDER);
    } else {/*  ww w.  j  ava  2 s.c  om*/
        comboViewer = new ColorComboViewer(new CCombo(this, SWT.READ_ONLY | SWT.BORDER));
    }

    ObservableListContentProvider contentProvider = new ObservableListContentProvider();

    // set content provider
    comboViewer.setContentProvider(contentProvider);

    ObservableMapLabelColorProvider labelProvider = new ObservableMapLabelColorProvider(
            EMFProperties.value(ErfPackage.Literals.IDENTIFIABLE__LONG_NAME)
                    .observeDetail(contentProvider.getKnownElements())) {

        @Override
        public String getText(Object element) {
            return super.getText(element);
        }

        @Override
        public Image getImage(Object element) {
            return super.getImage(element);
        }

        public Color getForeground(Object element) {
            return null;
        }

        public Color getBackground(Object element) {
            org.eclipse.swt.graphics.Color swtColor;
            if (element != null) {
                assert (element instanceof EnumValueImpl);
                EnumValueImpl enumValue = (EnumValueImpl) element;
                swtColor = enumValue.getColor().getColor();
            } else {
                swtColor = Display.getDefault().getSystemColor(SWT.COLOR_WHITE);
            }
            return swtColor;
        }

    };

    // set label provider
    comboViewer.setLabelProvider(labelProvider);

    // set input
    IEMFListProperty dataTypeDefinitions = EMFProperties
            .list(ErfPackage.Literals.DATATYPE_DEFINITION_ENUMERATION__SPECIFIED_VALUES);
    IObservableList observableList = dataTypeDefinitions.observe(attributeDefinition.getType());
    comboViewer.setInput(observableList);

    return comboViewer.getControl();
}

From source file:era.foss.objecteditor.specobject.SpecObjectCompositeViewer.java

License:Open Source License

/**
 * Create button bar showing:/*from ww  w.  ja  v  a  2  s  . c om*/
 * <ul>
 * <li>combo box for the view</li>
 * <li>button for adding new SpecObjects</li>
 * </ul>
 * 
 * 
 * @param viewerComposite the parent composite
 * @return
 */
private void createButtonBar() {
    buttonBarComposite = new Composite(topLevelComposite, SWT.NONE);
    buttonBarComposite.setLayout(new GridLayout(4, true));
    buttonBarComposite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 0, 0));

    /*
     * create combo box showing the availible views
     */
    ComboViewer viewComboViewer = new ComboViewer(buttonBarComposite, SWT.READ_ONLY) {
        @Override
        protected void doUpdateItem(Widget data, Object element, boolean fullMap) {
            // memorize the selection before updating the item, as the
            // update routine removes the selection...
            ISelection currentSelection = this.getSelection();
            super.doUpdateItem(data, element, fullMap);
            // set the selection to the previous value
            this.setSelection(currentSelection);
        }
    };
    ObservableListContentProvider contentProvider = new ObservableListContentProvider();
    viewComboViewer.setContentProvider(contentProvider);
    viewComboViewer.setLabelProvider(
            new ObservableMapLabelProvider(EMFProperties.value(ErfPackage.Literals.IDENTIFIABLE__LONG_NAME)
                    .observeDetail(contentProvider.getKnownElements())));
    IEMFListProperty dataTypeDefinitions = EMFProperties.list(ErfPackage.Literals.ERA_TOOL_EXTENSION__VIEWS);
    IObservableList observableList = dataTypeDefinitions.observe(toolExtension);
    viewComboViewer.setInput(observableList);
    // use first view available
    // TODO: use a dedicated default view if available
    if (toolExtension.getViews().size() > 0) {
        viewComboViewer.setSelection(new StructuredSelection(toolExtension.getViews().get(0)));
    }
    viewComboViewer.getControl().setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 2, 1));

    viewMaster = ViewerProperties.singleSelection().observe(viewComboViewer);

    // refresh composite table in case view has been changed
    viewMaster.addChangeListener(new IChangeListener() {

        @Override
        public void handleChange(ChangeEvent event) {
            dbc.dispose();

            compositeTable.dispose();
            createCompositeTable();

            binding();

            topLevelComposite.layout();
        }
    });

    /*
     * Create Combo box for selecting the SpecType
     */
    final ComboViewer specTypecomboViewer = new ComboViewer(buttonBarComposite, SWT.READ_ONLY) {
        @Override
        protected void doUpdateItem(Widget data, Object element, boolean fullMap) {
            // memorize the selection before updating the item, as the
            // update routine removes the selection...
            ISelection currentSelection = this.getSelection();
            super.doUpdateItem(data, element, fullMap);
            // set the selection to the previous value
            this.setSelection(currentSelection);
        }
    };
    ObservableListContentProvider comboViewercontentProvider = new ObservableListContentProvider();
    specTypecomboViewer.getControl().setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
    // set content provider
    specTypecomboViewer.setContentProvider(comboViewercontentProvider);
    // set label provider
    specTypecomboViewer.setLabelProvider(
            new ObservableMapLabelProvider(EMFProperties.value(ErfPackage.Literals.IDENTIFIABLE__LONG_NAME)
                    .observeDetail(comboViewercontentProvider.getKnownElements())));
    // set input
    IEMFListProperty specTypeProperty = EMFProperties.list(ErfPackage.Literals.CONTENT__SPEC_TYPES);
    specTypecomboViewer.setInput(specTypeProperty.observe(this.erfModel.getCoreContent()));

    // TODO: use a dedicated default type if available
    if (erfModel.getCoreContent().getSpecTypes().size() > 0) {
        specTypecomboViewer
                .setSelection(new StructuredSelection(erfModel.getCoreContent().getSpecTypes().get(0)));
    }
    specTypeMaster = ViewerProperties.singleSelection().observe(specTypecomboViewer);

    /*
     * create add button
     */
    final Button addButton = new Button(buttonBarComposite, SWT.NONE);
    addButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ADD));
    addButton.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
    addButton.setEnabled(specTypeMaster.getValue() != null);
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            SpecObjectHandler.createNewSpecObject(editingDomain, erfModel.getCoreContent(),
                    (SpecType) SpecObjectCompositeViewer.this.specTypeMaster.getValue(),
                    erfModel.getCoreContent().getSpecifications().get(0));
        }
    });

    specTypeMaster.addValueChangeListener(new IValueChangeListener() {
        @Override
        public void handleValueChange(ValueChangeEvent event) {
            addButton.setEnabled(event.getObservableValue().getValue() != null);
        }
    });

}