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

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

Introduction

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

Prototype

public TableViewerColumn(TableViewer viewer, TableColumn column) 

Source Link

Document

Creates a new viewer column for the given TableViewer on the given TableColumn .

Usage

From source file:edu.uchicago.cs.hao.texdojo.bibeditor.editors.EditorUI.java

License:Open Source License

private void createTable(Composite form) {
    Composite tablePanel = new Composite(form, SWT.NONE);
    TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tablePanel.setLayout(tableColumnLayout);

    table = new TableViewer(tablePanel, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    table.setContentProvider(new ArrayContentProvider());

    TableColumn keyColumn = new TableColumn(table.getTable(), SWT.NONE);
    keyColumn.setText("cite_key");
    TableViewerColumn keyColumnViewer = new TableViewerColumn(table, keyColumn);
    keyColumnViewer.setLabelProvider(new BibEntryColumnLabelProvider(0));
    keyColumn.addSelectionListener(new ColumnSelectionListener(0));

    TableColumn typeColumn = new TableColumn(table.getTable(), SWT.NONE);
    typeColumn.setText("Type");
    TableViewerColumn typeColumnViewer = new TableViewerColumn(table, typeColumn);
    typeColumnViewer.setLabelProvider(new BibEntryColumnLabelProvider(1));
    typeColumn.addSelectionListener(new ColumnSelectionListener(1));

    TableColumn titleColumn = new TableColumn(table.getTable(), SWT.NONE);
    titleColumn.setText("Title");
    TableViewerColumn titleColumnViewer = new TableViewerColumn(table, titleColumn);
    titleColumnViewer.setLabelProvider(new BibEntryColumnLabelProvider(2));
    titleColumn.addSelectionListener(new ColumnSelectionListener(2));

    TableColumn yearColumn = new TableColumn(table.getTable(), SWT.NONE);
    yearColumn.setText("Year");
    TableViewerColumn yearColumnViewer = new TableViewerColumn(table, yearColumn);
    yearColumnViewer.setLabelProvider(new BibEntryColumnLabelProvider(3));
    yearColumn.addSelectionListener(new ColumnSelectionListener(3));

    TableColumn authorColumn = new TableColumn(table.getTable(), SWT.NONE);
    authorColumn.setText("Author");
    TableViewerColumn authorColumnViewer = new TableViewerColumn(table, authorColumn);
    authorColumnViewer.setLabelProvider(new BibEntryColumnLabelProvider(4));

    tableColumnLayout.setColumnData(keyColumn, new ColumnWeightData(5, 150, true));
    tableColumnLayout.setColumnData(typeColumn, new ColumnWeightData(5, 150, true));
    tableColumnLayout.setColumnData(titleColumn, new ColumnWeightData(50, 400, true));
    tableColumnLayout.setColumnData(yearColumn, new ColumnPixelData(50));
    tableColumnLayout.setColumnData(authorColumn, new ColumnWeightData(40, 400, true));

    table.setInput(model.getEntries());/*from   ww  w . j  a  va  2s  . c  o m*/
    table.getTable().setLinesVisible(true);
    table.getTable().setHeaderVisible(true);

    table.getTable().addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent event) {
            Object selection = ((StructuredSelection) table.getSelection()).getFirstElement();
            if (null != selection) {
                updateTextContent(selection.toString());
            }
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent event) {
            widgetSelected(event);
        }
    });
    // Supporting Table Sorting, only when clicking
    tableComparator = new ColumnViewerComparator();
    table.setComparator(null);
}

From source file:edu.washington.cs.cupid.editor.preferences.CupidRulerPreferencePage.java

License:Open Source License

@Override
protected Control createContents(final Composite parent) {
    List<RulerPreference> current = Activator.getDefault().getRulerPreferences();

    Composite composite = new Composite(parent, SWT.NONE);

    GridLayout layout = new GridLayout();
    final int margin = 5;
    layout.numColumns = 1;/*from   ww  w  . j ava 2 s .co  m*/
    layout.marginRight = margin;
    layout.marginTop = margin;
    layout.marginWidth = 0;
    composite.setLayout(layout);

    GridData data = new GridData(GridData.FILL_BOTH);
    composite.setLayoutData(data);

    Label label = new Label(composite, SWT.NONE);
    label.setText("Active Capabilities:");

    viewer = new TableViewer(composite);
    final Table table = viewer.getTable();
    viewer.setContentProvider(new ArrayContentProvider());
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    data = new GridData(GridData.FILL_BOTH);
    table.setLayoutData(data);

    table.addListener(SWT.MeasureItem, new Listener() {
        public void handleEvent(Event event) {
            // height cannot be per row so simply set
            event.height = 20;
        }
    });

    TableColumn column = new TableColumn(table, SWT.NONE);
    column.setText("Capability");
    column.setWidth(100);
    TableViewerColumn capabilityColumn = new TableViewerColumn(viewer, column);
    capabilityColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object elt) {
            return ((RulerPreference) elt).capability;
        }
    });

    column = new TableColumn(table, SWT.NONE);
    column.setText("Output");
    column.setWidth(100);
    TableViewerColumn outputColumn = new TableViewerColumn(viewer, column);
    outputColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object elt) {
            return ((RulerPreference) elt).output;
        }
    });

    column = new TableColumn(table, SWT.NONE);
    column.setText("Color");
    column.setWidth(100);
    TableViewerColumn actionsNameCol = new TableViewerColumn(viewer, column);

    actionsNameCol.setLabelProvider(new OwnerDrawLabelProvider() {
        @Override
        protected void measure(Event event, Object element) {
            event.setBounds(new Rectangle(event.x, event.y, 100, event.height));
        }

        @Override
        protected void paint(Event event, Object element) {
            TableItem item = (TableItem) event.item;
            RulerPreference pref = (RulerPreference) item.getData();

            if (pref.color != null) {
                event.gc.setBackground(
                        new Color(CupidRulerPreferencePage.this.getShell().getDisplay(), pref.color));
                event.gc.fillRectangle(new Rectangle(event.x, event.y, 200, event.height));
            }
        }
    });
    actionsNameCol.setEditingSupport(new ColorEditingSupport(viewer));

    column = new TableColumn(table, SWT.NONE);
    column.setText("Enabled?");
    column.setWidth(60);
    TableViewerColumn enabledColumn = new TableViewerColumn(viewer, column);
    enabledColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object elt) {
            return ((RulerPreference) elt).enabled ? "Enabled" : "Disabled";
        }
    });
    enabledColumn.setEditingSupport(new EnabledEditingSupport(viewer));

    providers = RulerUtil.allLineProviders(current, false);
    for (LineProvider provider : providers) {
        RulerPreference pref = RulerUtil.getPreference(provider, current);

        if (pref != null) {
            model.add(pref);
        } else {
            model.add(new RulerPreference(provider.getCapability().getName(), provider.getOutput().getName(),
                    provider.getColor(), true));
        }
    }

    viewer.setInput(model);
    viewer.getTable().layout(true);
    return composite;
}

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

License:Open Source License

/**
 * Show UI elements for DatatypeDefintionEnumeration
 *///from  ww  w.  ja  v  a  2 s .  c  o  m
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  ww  .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
 *//*ww  w  . j  a  va2 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
 */// ww w  .j  a  v  a  2 s.c  om
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 column for selecting the DatatypeDefinition associated with the AttributeDefinition */
private void createSpecAttributeNameColumn(AddDeleteTableViewer specAttributeTableViewer,
        TableColumnLayout columnLayout) {

    ////  w w  w  . j  a  v  a2  s  . com
    TableViewerColumn nameColumn = new TableViewerColumn(specAttributeTableViewer, SWT.NONE);

    nameColumn.getColumn().setText(Ui.getUiName(ErfPackage.Literals.IDENTIFIABLE__LONG_NAME));
    nameColumn.getColumn().setResizable(true);
    nameColumn.getColumn().setMoveable(false);
    columnLayout.setColumnData(nameColumn.getColumn(), new ColumnWeightData(34, 100));
    IValueProperty nameColumnElementProperty = EMFEditProperties.value(editingDomain,
            ErfPackage.Literals.IDENTIFIABLE__LONG_NAME);
    // add label provider
    IObservableMap nameColumnAttributeMap = nameColumnElementProperty.observeDetail(
            ((ObservableListContentProvider) specAttributeTableViewer.getContentProvider()).getKnownElements());
    nameColumn.setLabelProvider(new ObservableMapCellLabelProvider(nameColumnAttributeMap));

    // add editing support
    IValueProperty nameColumnCellEditorProperty = CellEditorProperties.control()
            .value(WidgetProperties.text(SWT.Modify));
    EditingSupport editingSupport = ObservableValueEditingSupport.create(specAttributeTableViewer,
            dataBindContext, new TextCellEditor(specAttributeTableViewer.getTable()),
            nameColumnCellEditorProperty, nameColumnElementProperty);
    nameColumn.setEditingSupport(editingSupport);

}

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

License:Open Source License

/** Create column for selecting the DatatypeDefinition associated with the AttributeDefinition */
private void createSpecAttributeTypeColumn(TableViewer specAttributeTableViewer,
        TableColumnLayout columnLayout) {

    TableViewerColumn dataTypeColumn = new TableViewerColumn(specAttributeTableViewer, SWT.NONE);
    dataTypeColumn.getColumn().setText(Ui.getUiName(ErfPackage.Literals.ATTRIBUTE_DEFINITION__TYPE));
    dataTypeColumn.getColumn().setResizable(false);
    dataTypeColumn.getColumn().setMoveable(false);
    columnLayout.setColumnData(dataTypeColumn.getColumn(), new ColumnWeightData(33, 100));
    IValueProperty dataTypeNameProperty = EMFEditProperties.value(editingDomain,
            FeaturePath.fromList(new EStructuralFeature[] { ErfPackage.Literals.ATTRIBUTE_DEFINITION__TYPE,
                    ErfPackage.Literals.IDENTIFIABLE__LONG_NAME }));

    // add label provider
    ObservableMapCellLabelProvider labelProvider = new ObservableMapCellLabelProvider(dataTypeNameProperty
            .observeDetail(((ObservableListContentProvider) specAttributeTableViewer.getContentProvider())
                    .getKnownElements()));
    dataTypeColumn.setLabelProvider(labelProvider);

    // add editing support
    dataTypeColumn.setEditingSupport(new AttributeDefinitionTypeEditingSupport(specAttributeTableViewer));

}

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

License:Open Source License

/**
 * Creates the table viewer for {@link View}s
 *//*w  w w.j  av  a2s  .c  o m*/
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

/**
 * Creates the table viewer for {@link ViewElements}
 * //from   w  ww  .  j  ava  2s .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);
}