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

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

Introduction

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

Prototype

public ObservableListContentProvider() 

Source Link

Document

Constructs an ObservableListContentProvider.

Usage

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

License:Open Source License

/**
 * Create a column with EMF databinding for a table viewer
 * //ww  w.j av  a2  s. com
 * <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.datatype.DataTypeDefinitionDetailViewer.java

License:Open Source License

/**
 * Show UI elements for DatatypeDefintionEnumeration
 *///from  ww  w .j a  v a2 s.  com
private void createDetailsEnumeration() {

    // create table for enumeration values
    final AddDeleteTableViewer tableViewer = new AddDeleteTableViewer(detailComposite,
            SWT.MULTI | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);

    tableViewer.getTable().setHeaderVisible(true);
    tableViewer.getTable().setLinesVisible(true);

    tableViewer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    tableViewer.setEditingDomain(editingDomain);
    tableViewer.setElementInformation((EObject) this.master.getValue(),
            ErfPackage.Literals.DATATYPE_DEFINITION_ENUMERATION__SPECIFIED_VALUES,
            ErfPackage.Literals.ENUM_VALUE);

    ObservableListContentProvider cp = new ObservableListContentProvider();
    tableViewer.setContentProvider(cp);

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

    // create column with name of the element
    TableViewerColumn columnName = new TableViewerColumn(tableViewer, SWT.NONE);

    columnLayout.setColumnData(columnName.getColumn(), new ColumnWeightData(20, 20));
    columnName.getColumn().setResizable(true);
    columnName.getColumn().setMoveable(false);
    columnName.getColumn().setText(Ui.getUiName(ErfPackage.Literals.IDENTIFIABLE__LONG_NAME));
    EStructuralFeature[] structuralFeature = { ErfPackage.Literals.IDENTIFIABLE__LONG_NAME };
    ui.bindColumn(columnName, structuralFeature);

    // create column with color of element
    TableViewerColumn columnColor = new TableViewerColumn(tableViewer, SWT.NONE);

    columnLayout.setColumnData(columnColor.getColumn(), new ColumnWeightData(10, 10));
    columnColor.getColumn().setResizable(false);
    columnColor.getColumn().setWidth(20);
    columnColor.setLabelProvider(new EnumColorLabelProvider());
    EnumColorEditingSupport colorCellEditingSupport = new EnumColorEditingSupport(tableViewer);
    colorCellEditingSupport.setEditingDomain(editingDomain);
    columnColor.setEditingSupport(colorCellEditingSupport);

    IEMFListProperty enumerationProperty = EMFProperties
            .list(ErfPackage.Literals.DATATYPE_DEFINITION_ENUMERATION__SPECIFIED_VALUES);
    tableViewer.setInput(enumerationProperty.observe(master.getValue()));

}

From source file:era.foss.typeeditor.datatype.DatatypeDefinitionsForm.java

License:Open Source License

/**
 * Creates the table viewer.//  w w w.  j a  v a 2s .co  m
 */
private void createTableViewer() {

    tableViewer = new AddDeleteTableViewer(this, SWT.MULTI | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
    tableViewer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    tableViewer.setEditingDomain(editingDomain);
    tableViewer.setElementInformation(erfModel.getCoreContent(), ErfPackage.Literals.CONTENT__DATA_TYPES,
            ErfPackage.Literals.DATATYPE_DEFINITION_INTEGER);

    ObservableListContentProvider cp = new ObservableListContentProvider();
    tableViewer.setContentProvider(cp);

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

    // create column with name of the datatype
    TableViewerColumn nameColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    columnLayout.setColumnData(nameColumn.getColumn(), new ColumnWeightData(100, 70));
    nameColumn.getColumn().setResizable(true);
    nameColumn.getColumn().setMoveable(false);
    nameColumn.getColumn().setText(Ui.getUiName(ErfPackage.Literals.IDENTIFIABLE__LONG_NAME));
    EStructuralFeature[] structuralFeature = { ErfPackage.Literals.IDENTIFIABLE__LONG_NAME };
    ui.bindColumn(nameColumn, structuralFeature);

    // create column with type of the datatype
    TableViewerColumn typeColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    columnLayout.setColumnData(typeColumn.getColumn(), new ColumnWeightData(70, 30));
    typeColumn.getColumn().setResizable(false);
    typeColumn.getColumn().setMoveable(false);
    typeColumn.setEditingSupport(new DatatypeDefinitionTypeEditingSupport(tableViewer));
    typeColumn.setLabelProvider(new DatatypeDefinitionTypeLabelProvider());
    typeColumn.getColumn().setText(typeEditorActivator.getString("_UI_DataTypeDefinitionType_label"));

    // provide input for the table
    IEMFListProperty dataTypeProperty = EMFProperties.list(ErfPackage.Literals.CONTENT__DATA_TYPES);
    tableViewer.setInput(dataTypeProperty.observe(erfModel.getCoreContent()));

}

From source file:era.foss.typeeditor.spectype.AttributeDefinitionDetailViewer.java

License:Open Source License

/**
 * Show UI elements for DatatypeDefintionEnumeration
 *//*from  w  w w  . j  ava  2  s .c  om*/
private void createDetailsEnumeration() {
    final AttributeDefinitionEnumeration attributeDefinitionEnum = (AttributeDefinitionEnumeration) master
            .getValue();

    // create label for multiValued property
    Label label = new Label(detailComposite, SWT.NONE);
    label.setText(Ui.getUiName(ErfPackage.Literals.ATTRIBUTE_DEFINITION_ENUMERATION__MULTI_VALUED));
    label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false));

    // create checkbox for multiValued property
    EAttribute[] isMultiValued = { ErfPackage.Literals.ATTRIBUTE_DEFINITION_ENUMERATION__MULTI_VALUED };
    BindingCheckBox multiValuedCheckbox = new BindingCheckBox(detailComposite, SWT.NONE);
    multiValuedCheckbox.setLayoutData(new GridData(SWT.LEFT, SWT.DEFAULT, true, false));
    multiValuedCheckbox.bind(editingDomain, isMultiValued, master);

    // create checkbox for enabling default value
    Button defaultValueCheckbox = createDefaultValueCheckbox(attributeDefinitionEnum,
            ErfPackage.Literals.ATTRIBUTE_DEFINITION_ENUMERATION__DEFAULT_VALUE);

    // create table for selecting default EnumValue elements
    Table defaultValueTable = new Table(detailComposite,
            SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION | SWT.CHECK);
    defaultValueTable.setLinesVisible(true);
    defaultValueTable.setHeaderVisible(true);

    final CheckboxTableViewer defaultValueTableViewer = new CheckboxTableViewer(defaultValueTable);
    defaultValueTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));

    final ObservableListContentProvider cp = new ObservableListContentProvider();
    defaultValueTableViewer.setContentProvider(cp);

    TableViewerColumn column = new TableViewerColumn(defaultValueTableViewer, SWT.NONE);

    column.getColumn().setResizable(false);
    column.getColumn().setMoveable(false);
    column.getColumn().setText(Ui.getUiName(ErfPackage.Literals.ATTRIBUTE_VALUE_ENUMERATION__VALUES));
    column.getColumn().pack();

    // set label provider
    IValueProperty elementProperty = EMFEditProperties.value(editingDomain,
            FeaturePath.fromList(new EStructuralFeature[] { ErfPackage.Literals.IDENTIFIABLE__LONG_NAME }));
    IObservableMap attributeMap = elementProperty.observeDetail(cp.getKnownElements());
    column.setLabelProvider(new ObservableMapCellLabelProvider(attributeMap));

    // Add provider for the check stare of the table viewer
    // A value is checked if it is referred by the Default value of the AttributeDefintionEnumeration
    defaultValueTableViewer.setCheckStateProvider(new ICheckStateProvider() {
        @Override
        public boolean isGrayed(Object element) {
            return false;
        }

        @Override
        public boolean isChecked(Object element) {
            AttributeValueEnumeration enumDefaultValue = attributeDefinitionEnum.getDefaultValue();
            return enumDefaultValue != null && enumDefaultValue.getValues().contains(element);
        }
    });

    // If a EnumValue is selected add it to the list of Default values for the AttributeDefintionEnumeration
    // Otherwise remove it from the list of default values
    defaultValueTableViewer.addCheckStateListener(new ICheckStateListener() {

        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            // we don't need to check if the default value object is null as
            // in this case table viewer is disabled
            assert (attributeDefinitionEnum.getDefaultValue() != null);

            EnumValue enumValue = ((EnumValue) event.getElement());
            Command command = null;

            if (event.getChecked() == true) {
                command = AddCommand.create(editingDomain, attributeDefinitionEnum.getDefaultValue(),
                        ErfPackage.Literals.ATTRIBUTE_VALUE_ENUMERATION__VALUES, enumValue);
            } else {
                command = RemoveCommand.create(editingDomain, attributeDefinitionEnum.getDefaultValue(),
                        ErfPackage.Literals.ATTRIBUTE_VALUE_ENUMERATION__VALUES, enumValue);
            }
            editingDomain.getCommandStack().execute(command);
        }
    });

    // observe values of DatatypeDefinition selected for the AttributeDefintionEnumeration
    IEMFListProperty enumerationProperty = EMFProperties.list(
            FeaturePath.fromList(new EStructuralFeature[] { ErfPackage.Literals.ATTRIBUTE_DEFINITION__TYPE,
                    ErfPackage.Literals.DATATYPE_DEFINITION_ENUMERATION__SPECIFIED_VALUES }));
    IObservableList dataTypeEnumValueObserver = enumerationProperty.observe(attributeDefinitionEnum);
    defaultValueTableViewer.setInput(dataTypeEnumValueObserver);

    // only enable table viewer in case a default value exists
    dataBindingContext.bindValue(SWTObservables.observeEnabled(defaultValueTable),
            SWTObservables.observeSelection(defaultValueCheckbox));

}

From source file:era.foss.typeeditor.spectype.SpecTypeForm.java

License:Open Source License

/**
 * Create table viewer showing the SpecTypes
 *//*from   w ww .  ja  va2s  .  com*/
private void createSpecTypeTableViewer() {
    AddDeleteTableViewer specTypeTableViewer = new AddDeleteTableViewer(this,
            SWT.MULTI | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
    specTypeTableViewer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    specTypeTableViewer.setEditingDomain(editingDomain);
    specTypeTableViewer.setElementInformation(erfModel.getCoreContent(),
            ErfPackage.Literals.CONTENT__SPEC_TYPES, ErfPackage.Literals.SPEC_TYPE);

    ObservableListContentProvider cp = new ObservableListContentProvider();
    specTypeTableViewer.setContentProvider(cp);

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

    // create column with name of the SpecType
    TableViewerColumn nameColumn = new TableViewerColumn(specTypeTableViewer, SWT.NONE);
    columnLayout.setColumnData(nameColumn.getColumn(), new ColumnWeightData(100, 70));
    nameColumn.getColumn().setResizable(false);
    nameColumn.getColumn().setMoveable(false);
    nameColumn.getColumn().setText(Ui.getUiName(ErfPackage.Literals.IDENTIFIABLE__LONG_NAME));
    EStructuralFeature[] structuralFeature = { ErfPackage.Literals.IDENTIFIABLE__LONG_NAME };
    ui.bindColumn(nameColumn, structuralFeature);

    // provide input for the table
    IEMFListProperty specTypeProperty = EMFProperties.list(ErfPackage.Literals.CONTENT__SPEC_TYPES);
    specTypeTableViewer.setInput(specTypeProperty.observe(erfModel.getCoreContent()));
    specTypeTableViewer.getTable().select(0);

    this.specTypeMaster = ViewerProperties.singleSelection().observe(specTypeTableViewer);
}

From source file:era.foss.typeeditor.spectype.SpecTypeForm.java

License:Open Source License

/**
 * Create Table viewer showing attributes of the selected SpecType
 *///from   w w w.  ja  v  a2s .c o m
private void createSpecAttributeTableViewer() {

    specAttributeTableViewer = new AddDeleteTableViewer(this,
            SWT.MULTI | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION) {

        @Override
        public void addElement() {
            this.elementOwner = (EObject) specTypeMaster.getValue();
            super.addElement();
        }
    };
    specAttributeTableViewer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    specAttributeTableViewer.setEditingDomain(editingDomain);
    specAttributeTableViewer.setElementInformation((EObject) specTypeMaster.getValue(),
            ErfPackage.Literals.SPEC_TYPE__SPEC_ATTRIBUTES, ErfPackage.Literals.ATTRIBUTE_DEFINITION_SIMPLE);

    ObservableListContentProvider contentProvider = new ObservableListContentProvider();
    specAttributeTableViewer.setContentProvider(contentProvider);

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

    // create column with name of attribute definition
    createSpecAttributeNameColumn(specAttributeTableViewer, columnLayout);

    // create column with reference to datatype defintion
    createSpecAttributeTypeColumn(specAttributeTableViewer, columnLayout);

    // provide input for the table
    IEMFListProperty specAttributeProperty = EMFProperties.list(ErfPackage.Literals.SPEC_TYPE__SPEC_ATTRIBUTES);
    specAttributeTableViewer.setInput(specAttributeProperty.observeDetail(specTypeMaster));
    specAttributeTableViewer.getTable().select(0);

}

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

License:Open Source License

/**
 * Creates the table viewer for {@link View}s
 *//*from  ww  w . j av a 2s.  c om*/
private void createViewTableViewer(Composite parent) {

    AddDeleteTableViewer viewTableViewer = new AddDeleteTableViewer(parent,
            SWT.MULTI | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);

    viewTableViewer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 2));
    viewTableViewer.setEditingDomain(editingDomain);
    viewTableViewer.setElementInformation(toolExtension, ErfPackage.Literals.ERA_TOOL_EXTENSION__VIEWS,
            ErfPackage.Literals.VIEW);

    ObservableListContentProvider cp = new ObservableListContentProvider();
    viewTableViewer.setContentProvider(cp);

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

    // create column with name of the view
    TableViewerColumn nameColumn = new TableViewerColumn(viewTableViewer, SWT.NONE);
    columnLayout.setColumnData(nameColumn.getColumn(), new ColumnWeightData(100, 70));
    nameColumn.getColumn().setResizable(false);
    nameColumn.getColumn().setMoveable(false);
    nameColumn.getColumn().setText(Ui.getUiName(ErfPackage.Literals.IDENTIFIABLE__LONG_NAME));
    ui.bindColumn(nameColumn, new EStructuralFeature[] { ErfPackage.Literals.IDENTIFIABLE__LONG_NAME });

    // provide input for the table
    IEMFListProperty viewsProperty = EMFProperties.list(ErfPackage.Literals.ERA_TOOL_EXTENSION__VIEWS);
    viewTableViewer.setInput(viewsProperty.observe(toolExtension));
    viewTableViewer.getTable().select(0);

    this.viewMaster = ViewerProperties.singleSelection().observe(viewTableViewer);

}

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

License:Open Source License

/**
 * Create a Combo box for selecting the {@link SpecType} of the respective view
 * /* ww  w. j  ava  2s. co m*/
 * @param parent parent composite
 */
private void createSpecTypeComboViewer(Composite parent) {

    final ComboViewer specTypeComboViewer = new ComboViewer(parent, 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();
    specTypeComboViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    // set content provider
    specTypeComboViewer.setContentProvider(contentProvider);
    // set label provider
    specTypeComboViewer.setLabelProvider(
            new ObservableMapLabelProvider(EMFProperties.value(ErfPackage.Literals.IDENTIFIABLE__LONG_NAME)
                    .observeDetail(contentProvider.getKnownElements())));

    // set input
    IEMFListProperty specTypeProperty = EMFProperties.list(ErfPackage.Literals.CONTENT__SPEC_TYPES);
    specTypeComboViewer.setInput(specTypeProperty.observe(this.erfModel.getCoreContent()));
    specTypeMaster = ViewerProperties.singleSelection().observe(specTypeComboViewer);
    if (erfModel.getCoreContent().getSpecTypes().size() > 0) {
        specTypeComboViewer
                .setSelection(new StructuredSelection(erfModel.getCoreContent().getSpecTypes().get(0)));
    }

    specTypeMaster.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(ValueChangeEvent event) {
            viewElementTableViewer.refresh();
            viewLayoutViewer.refresh();

        }
    });
}

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

License:Open Source License

/**
 * Creates the table viewer for {@link ViewElements}
 * /*from  ww w  .  j  a va  2  s  .c  o 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:es.cv.gvcase.fefem.common.composites.EMFContainedCollectionEditionComposite.java

License:Open Source License

@Override
protected void bindFeatureToWidget() {
    if (getPage().getEditor().getModel() == null || getPage().getEditor().getEditingDomain() == null)
        return;/*from  w  w  w.  ja  va2  s .  c o m*/

    //Observes the containedTerms list to get automatic refresh of the TableViewer.
    //It will also allow to add and remove elements from the list without using commands.

    if (!isDetailComposite()) {
        modelObservable = EMFEditObservables.observeList(getPage().getEditor().getEditingDomain(),
                this.getEObject(), getFeature());

    } else {
        IObservableValue selectionObservable = ViewersObservables
                .observeSingleSelection(this.getMasterViewer());

        modelObservable = EMFEditObservables.observeDetailList(Realm.getDefault(),
                this.getPage().getEditor().getEditingDomain(), selectionObservable, getFeature());

    }

    ObservableListContentProvider contentProvider = new ObservableListContentProvider();
    tableViewer.setContentProvider(contentProvider);
    tableViewer.setInput(modelObservable);
    if (getLabelProvider() != null) {
        tableViewer.setLabelProvider(getLabelProvider());
    }
}