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:org.marketcetera.photon.views.MarketDataView.java

@Override
public void createPartControl(Composite parent) {
    final IActionBars actionBars = getViewSite().getActionBars();
    IToolBarManager toolbar = actionBars.getToolBarManager();
    mSymbolEntryText = new TextContributionItem(""); //$NON-NLS-1$
    toolbar.add(mSymbolEntryText);// w  w w.  j  a va2s.c  o m
    toolbar.add(new AddSymbolAction(mSymbolEntryText, this));

    final Table table = new Table(parent, SWT.MULTI | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.BORDER);
    table.setHeaderVisible(true);
    mViewer = new TableViewer(table);
    GridDataFactory.defaultsFor(table).applyTo(table);

    final MarketDataItemComparator comparator = new MarketDataItemComparator();
    mViewer.setComparator(comparator);

    SelectionListener listener = new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            // determine new sort column and direction
            TableColumn sortColumn = table.getSortColumn();
            TableColumn currentColumn = (TableColumn) e.widget;
            final int index = table.indexOf(currentColumn);
            int dir = table.getSortDirection();
            if (sortColumn == currentColumn) {
                dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;
            } else {
                table.setSortColumn(currentColumn);
                dir = SWT.UP;
            }
            table.setSortDirection(dir);
            comparator.setSort(dir == SWT.UP ? 1 : -1);
            comparator.setIndex(index);
            mViewer.refresh();
        }
    };

    // create columns, using FIXFieldLocalizer to preserve backwards
    // compatibility
    TableViewerColumn symbolColumn = new TableViewerColumn(mViewer, createColumn(table,
            FIXFieldLocalizer.getLocalizedFIXFieldName(Symbol.class.getSimpleName()), SWT.LEFT, listener));
    symbolColumn.setEditingSupport(new SymbolEditingSupport());
    createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(LastPx.class.getSimpleName()), SWT.RIGHT,
            listener);
    createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(LastQty.class.getSimpleName()), SWT.RIGHT,
            listener);
    createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(BidSize.class.getSimpleName()), SWT.RIGHT,
            listener);
    createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(BidPx.class.getSimpleName()), SWT.RIGHT,
            listener);
    createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(OfferPx.class.getSimpleName()), SWT.RIGHT,
            listener);
    createColumn(table, FIXFieldLocalizer.getLocalizedFIXFieldName(OfferSize.class.getSimpleName()), SWT.RIGHT,
            listener);

    // restore table state if it exists
    if (mViewState != null) {
        ColumnState.restore(table, mViewState);
        for (TableColumn column : table.getColumns()) {
            if (column.getWidth() == 0) {
                column.setResizable(false);
            }
        }
    }

    registerContextMenu();
    getSite().setSelectionProvider(mViewer);

    ObservableListContentProvider content = new ObservableListContentProvider();
    mViewer.setContentProvider(content);
    IObservableSet domain = content.getKnownElements();
    IObservableMap[] maps = new IObservableMap[] {
            BeansObservables.observeMap(domain, MarketDataViewItem.class, "symbol"), //$NON-NLS-1$
            createCompositeMap(domain, "latestTick", MDPackage.Literals.MD_LATEST_TICK__PRICE), //$NON-NLS-1$
            createCompositeMap(domain, "latestTick", MDPackage.Literals.MD_LATEST_TICK__SIZE), //$NON-NLS-1$
            createCompositeMap(domain, "topOfBook", MDPackage.Literals.MD_TOP_OF_BOOK__BID_SIZE), //$NON-NLS-1$
            createCompositeMap(domain, "topOfBook", MDPackage.Literals.MD_TOP_OF_BOOK__BID_PRICE), //$NON-NLS-1$
            createCompositeMap(domain, "topOfBook", MDPackage.Literals.MD_TOP_OF_BOOK__ASK_PRICE), //$NON-NLS-1$
            createCompositeMap(domain, "topOfBook", MDPackage.Literals.MD_TOP_OF_BOOK__ASK_SIZE) //$NON-NLS-1$
    };
    mViewer.setLabelProvider(new ObservableMapLabelProvider(maps));
    mViewer.setUseHashlookup(true);
    mItems = WritableList.withElementType(MarketDataViewItem.class);
    mViewer.setInput(mItems);
}

From source file:org.marketcetera.photon.views.OrderTicketView.java

/**
 * Set up viewers./*from   w  w  w  .  j  av  a2  s.  c om*/
 * 
 * @param ticket
 */
protected void initViewers(T ticket) {
    /*
     * Side combo based on Side enum.
     */
    mSideComboViewer = new ComboViewer(ticket.getSideCombo());
    mSideComboViewer.setContentProvider(new ArrayContentProvider());
    mSideComboViewer.setInput(getModel().getValidSideValues());

    /*
     * Order type combo based on OrderType enum.
     */
    mOrderTypeComboViewer = new ComboViewer(ticket.getOrderTypeCombo());
    mOrderTypeComboViewer.setContentProvider(new ArrayContentProvider());
    mOrderTypeComboViewer.setInput(getModel().getValidOrderTypeValues());

    /*
     * Broker combo based on available brokers.
     */
    mAvailableBrokersViewer = new ComboViewer(ticket.getBrokerCombo());
    mAvailableBrokersViewer.setContentProvider(new ObservableListContentProvider());
    mAvailableBrokersViewer.setLabelProvider(new BrokerLabelProvider());
    mAvailableBrokersViewer.setInput(getModel().getValidBrokers());

    /*
     * Time in Force combo based on TimeInForce enum.
     * 
     * An extra blank entry is added since the field is optional.
     */
    mTimeInForceComboViewer = new ComboViewer(ticket.getTifCombo());
    mTimeInForceComboViewer.setContentProvider(new ArrayContentProvider());
    mTimeInForceComboViewer.setInput(getModel().getValidTimeInForceValues());

    /*
     * Custom fields table.
     * 
     * Input is bound to model in bindCustomFields.
     */
    mCustomFieldsTableViewer = new CheckboxTableViewer(ticket.getCustomFieldsTable());
    ObservableListContentProvider contentProvider = new ObservableListContentProvider();
    mCustomFieldsTableViewer.setContentProvider(contentProvider);
    mCustomFieldsTableViewer.setLabelProvider(
            new ObservableMapLabelProvider(BeansObservables.observeMaps(contentProvider.getKnownElements(),
                    CustomField.class, new String[] { "keyString", "valueString" })));//$NON-NLS-1$ //$NON-NLS-2$
}

From source file:org.reap.internal.core.binding.BindingManager.java

License:Open Source License

private void checkAndBindMasterList(final Object fieldObj, final BindingFieldConfig bindingField,
        final WritableEntityValue writableEntityValue, final String partId) {
    if (fieldObj instanceof AbstractListViewer || fieldObj instanceof TableViewer) {
        boolean hasBind = false;
        for (final BindingConfig binding : bindingField.getBindings()) {
            if (binding.isValid()) {
                hasBind = true;//from  w w w  .j  a v  a  2  s .c  om
            }
        }
        if (bindingField.getDatabaseAccessID() != null || !hasBind) {
            final WritableList writableList = new WritableList();
            writableEntityValue.setWritableEntityList(writableList);
            writableEntityValue.setListDatabaseAccessID(bindingField.getDatabaseAccessID());

            final StructuredViewer viewer = (StructuredViewer) fieldObj;
            final ObservableListContentProvider contentProvider = new ObservableListContentProvider();
            viewer.setContentProvider(contentProvider);
            final String[] viewerLabelProps = bindingField.getViewerLabelProps();
            if (viewerLabelProps != null) {
                final IObservableMap[] attributeMaps = BeansObservables.observeMaps(
                        contentProvider.getKnownElements(),
                        modelAccess.get(writableEntityValue.getTargetEntity()).getModelClass(),
                        viewerLabelProps);
                viewer.setLabelProvider(new ObservableMapLabelProvider(attributeMaps));
            }
            viewer.setInput(writableList);

            final IObservableValue singleSelection = ViewersObservables
                    .observeSingleSelection((ISelectionProvider) fieldObj);
            final DataBindingContext dbc = Activator.getDefault().getDataBindingContext();
            final Binding bindValue = dbc.bindValue(singleSelection, writableEntityValue, null, null);
            writableEntityValue.setBinding(bindValue);

            List<Binding> list = activBindings.get(partId);
            if (list == null) {
                list = new ArrayList<Binding>();
                activBindings.put(partId, list);
            }
            list.add(bindValue);
        }
    }
}

From source file:org.reap.internal.core.binding.BindingManager.java

License:Open Source License

private void createBinding(final Object fieldObj, final BindingFieldConfig bindingField,
        final IWorkbenchPart part, final String gloTargetEntity,
        final WritableEntityValue writableEntityValue) {
    checkAndBindMasterList(fieldObj, bindingField, writableEntityValue, part.getSite().getId());

    for (final BindingConfig bindingConfig : bindingField.getBindings()) {
        if (!bindingConfig.isValid()) {
            continue;
        }// w  w w  .ja  v a  2s.  c  o m

        IObservable guiObs = null;
        try {
            if (fieldObj instanceof Control) {
                guiObs = createSWTObservable((Control) fieldObj, bindingConfig);

                if (!bindingConfig.isOnlyReturnObservable()) {
                    finishBind(gloTargetEntity, writableEntityValue, bindingConfig, guiObs, part);
                }
            } else if (fieldObj instanceof AbstractListViewer || fieldObj instanceof TableViewer) {
                guiObs = createJFaceObservable((ISelectionProvider) fieldObj, bindingConfig);

                if (!bindingConfig.isOnlyReturnObservable()) {
                    if (bindingConfig.getType() == GUIBindingTypes.JFACEINPUT) {
                        final String targetEntity = bindingConfig.getTargetEntity();
                        final ModelClass modelClass = modelAccess.get(gloTargetEntity);
                        final IObservable modelObs = modelClass.getObservable(targetEntity,
                                bindingConfig.getTarget(), writableEntityValue, false);
                        final StructuredViewer viewer = (StructuredViewer) fieldObj;
                        IObservableSet knownElements = null;
                        if (modelObs instanceof IObservableList) {
                            final ObservableListContentProvider contentProvider = new ObservableListContentProvider();
                            knownElements = contentProvider.getKnownElements();
                            viewer.setContentProvider(contentProvider);
                        } else if (modelObs instanceof IObservableSet) {
                            final ObservableSetContentProvider contentProvider = new ObservableSetContentProvider();
                            knownElements = contentProvider.getKnownElements();
                            viewer.setContentProvider(contentProvider);
                        }
                        final ModelClass classForRefernce = modelClass.getModelClassForRefernce(targetEntity,
                                bindingConfig.getTarget());
                        final String[] viewerLabelProps = bindingConfig.getViewerLabelProps();
                        if (viewerLabelProps != null && knownElements != null && classForRefernce != null) {
                            final IObservableMap[] attributeMaps = BeansObservables.observeMaps(knownElements,
                                    classForRefernce.getModelClass(), viewerLabelProps);
                            viewer.setLabelProvider(new ObservableMapLabelProvider(attributeMaps));
                        }
                        viewer.setInput(modelObs);

                        boolean hasSingleSel = false;
                        for (final BindingConfig bindingConfig2 : bindingField.getBindings()) {
                            if (bindingConfig2.getType() == GUIBindingTypes.JFACESINGLESELECTION) {
                                hasSingleSel = true;
                                break;
                            }
                        }
                        if (!hasSingleSel) {
                            final IObservableValue singleSelection = ViewersObservables
                                    .observeSingleSelection((ISelectionProvider) fieldObj);
                            final WritableValue selectionValue = modelClass.getSelectionValue(targetEntity,
                                    bindingConfig.getTarget(), writableEntityValue);
                            final DataBindingContext dbc = Activator.getDefault().getDataBindingContext();
                            final Binding bindValue = dbc.bindValue(singleSelection, selectionValue, null,
                                    null);
                            List<Binding> list = activBindings.get(part.getSite().getId());
                            if (list == null) {
                                list = new ArrayList<Binding>();
                                activBindings.put(part.getSite().getId(), list);
                            }
                            list.add(bindValue);
                            writableEntityValue.addViewerSelect(bindingField.getName(), selectionValue);
                        }
                    } else {
                        finishBind(gloTargetEntity, writableEntityValue, bindingConfig, guiObs, part);
                    }
                }
            }
        } catch (final IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Activator.logWarning(0, "For the field " + bindingField.getName() + " and the given binding type "
                    + bindingConfig.getType() + " can't create an observable!");
            continue;
        }

        try {
            final Method method = part.getClass().getMethod(bindingConfig.getReturnMethod(), IObservable.class);
            method.setAccessible(true);
            method.invoke(part, guiObs);
        } catch (final Exception e) {
            Activator.logInfo(0, "The methode " + bindingConfig.getReturnMethod()
                    + " for call back the observable can't invoke.");
        }
    }
}

From source file:org.switchyard.tools.ui.editor.components.jca.JCAPropertyTable.java

License:Open Source License

/**
 * Constructor./*  w ww  . j a v a  2 s. co  m*/
 * 
 * @param parent composite parent
 * @param style any SWT style bits
 * @param isReadOnly boolean flag
 * @param toolkit Form toolkit to use when creating controls
 * @param context the data binding context
 * @param featurePathToProperties the feature path to the Property list
 * @param domain the editing domain
 */
public JCAPropertyTable(Composite parent, int style, boolean isReadOnly, FormToolkit toolkit,
        DataBindingContext context, FeaturePath featurePathToProperties, EditingDomain domain) {
    super(parent, style);
    _isReadOnly = isReadOnly;
    _changeListeners = new ListenerList();

    _bindingValue = new WritableValue(SWTObservables.getRealm(getDisplay()), null, JCABinding.class);

    int additionalStyles = SWT.NONE;
    if (isReadOnly) {
        additionalStyles = SWT.READ_ONLY;
    }

    final GridLayout gridLayout = new GridLayout();
    gridLayout.marginWidth = 0;
    gridLayout.marginHeight = 0;
    gridLayout.numColumns = 2;
    setLayout(gridLayout);

    Composite tableComposite = new Composite(this, additionalStyles);
    GridData gd11 = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 5);
    gd11.heightHint = 100;
    tableComposite.setLayoutData(gd11);

    TableColumnLayout tableLayout = new TableColumnLayout();
    tableComposite.setLayout(tableLayout);

    _propertyTreeTable = new TableViewer(tableComposite,
            SWT.BORDER | SWT.WRAP | SWT.V_SCROLL | SWT.FULL_SELECTION | additionalStyles);
    _propertyTreeTable.getTable().setHeaderVisible(true);

    TableViewerColumn nameColumn = new TableViewerColumn(_propertyTreeTable, SWT.LEFT);
    nameColumn.getColumn().setText(Messages.label_name);
    tableLayout.setColumnData(nameColumn.getColumn(), new ColumnWeightData(100, 150, true));

    TableViewerColumn valueColumn = new TableViewerColumn(_propertyTreeTable, SWT.LEFT);
    valueColumn.getColumn().setText(Messages.label_value);
    tableLayout.setColumnData(valueColumn.getColumn(), new ColumnWeightData(100, 150, true));

    IValueProperty nameProperty = domain == null ? EMFProperties.value(JcaPackage.Literals.PROPERTY__NAME)
            : EMFEditProperties.value(domain, JcaPackage.Literals.PROPERTY__NAME);
    IValueProperty valueProperty = domain == null ? EMFProperties.value(JcaPackage.Literals.PROPERTY__VALUE)
            : EMFEditProperties.value(domain, JcaPackage.Literals.PROPERTY__VALUE);
    IValueProperty cellEditorTextProperty = CellEditorProperties.control()
            .value(WidgetProperties.text(SWT.Modify));

    final ObservableListContentProvider contentProvider;
    ObservableTracker.setIgnore(true);
    try {
        // ignore any observers created internally
        contentProvider = new ObservableListContentProvider();
    } finally {
        ObservableTracker.setIgnore(false);
    }

    nameColumn.setEditingSupport(ObservableValueEditingSupport.create(_propertyTreeTable, context,
            new TextCellEditor(_propertyTreeTable.getTable()), cellEditorTextProperty, nameProperty));
    nameColumn.setLabelProvider(
            new ObservableMapCellLabelProvider(nameProperty.observeDetail(contentProvider.getKnownElements())));

    valueColumn.setEditingSupport(ObservableValueEditingSupport.create(_propertyTreeTable, context,
            new TextCellEditor(_propertyTreeTable.getTable()), cellEditorTextProperty, valueProperty));
    valueColumn.setLabelProvider(new ObservableMapCellLabelProvider(
            valueProperty.observeDetail(contentProvider.getKnownElements())));

    _propertyTreeTable.setContentProvider(contentProvider);

    _mAddButton = toolkit.createButton(this, Messages.button_add, SWT.NONE);
    _mAddButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
    _mAddButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            addPropertyToList();
        }
    });

    _mAddButton.setEnabled(false);
    _propertyTreeTable.getTable().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            updatePropertyButtons();
        }
    });

    _mRemoveButton = toolkit.createButton(this, Messages.button_remove, SWT.NONE);
    _mRemoveButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
    _mRemoveButton.setEnabled(false);
    _mRemoveButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            removeFromList();
        }
    });

    final IObservableList propertiesList = (domain == null ? EMFProperties.list(featurePathToProperties)
            : EMFEditProperties.list(domain, featurePathToProperties)).observeDetail(_bindingValue);
    _propertyTreeTable.setInput(propertiesList);

    updatePropertyButtons();
}

From source file:org.switchyard.tools.ui.editor.components.soap.InterceptorTable.java

License:Open Source License

/**
 * Constructor./* w w w.ja va 2  s . c  o m*/
 * 
 * @param parent composite parent
 * @param style any SWT style bits
 * @param isReadOnly boolean flag
 * @param interceptorsListFeature list we're editing
 * @param interceptorsFeature actual interceptor list feature
 * @param interceptorType actual class for the interceptor type
 * @param context DataBindingContext to use 
 */
public InterceptorTable(Composite parent, int style, boolean isReadOnly, EReference interceptorsListFeature,
        EReference interceptorsFeature, EClass interceptorType, DataBindingContext context) {
    super(parent, style);

    final EditingDomain domain = AdapterFactoryEditingDomain.getEditingDomainFor(getTargetObject());

    this._isReadOnly = isReadOnly;
    this._changeListeners = new ListenerList();
    _interceptorsListFeature = interceptorsListFeature;
    _interceptorsFeature = interceptorsFeature;
    _interceptorType = interceptorType;

    int additionalStyles = SWT.NONE;
    if (isReadOnly) {
        additionalStyles = SWT.READ_ONLY;
    }

    final GridLayout gridLayout = new GridLayout();
    gridLayout.marginWidth = 0;
    gridLayout.marginHeight = 0;
    gridLayout.numColumns = 2;
    setLayout(gridLayout);

    Composite tableComposite = new Composite(this, additionalStyles);
    GridData gd11 = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 3);
    gd11.heightHint = 100;
    tableComposite.setLayoutData(gd11);

    _interceptorTable = new TableViewer(tableComposite,
            SWT.BORDER | SWT.WRAP | SWT.V_SCROLL | SWT.FULL_SELECTION | additionalStyles);
    this._interceptorTable.getTable().setHeaderVisible(true);

    TableColumnLayout tableLayout = new TableColumnLayout();
    tableComposite.setLayout(tableLayout);

    TableViewerColumn nameColumn = new TableViewerColumn(_interceptorTable, SWT.LEFT);
    nameColumn.getColumn().setText(Messages.label_name);
    tableLayout.setColumnData(nameColumn.getColumn(), new ColumnWeightData(100, 150, true));

    IValueProperty nameProperty = domain == null
            ? EMFProperties.value(_interceptorType.getEStructuralFeature("class"))
            : EMFEditProperties.value(domain, _interceptorType.getEStructuralFeature("class"));
    IValueProperty cellEditorTextProperty = CellEditorProperties.control()
            .value(WidgetProperties.text(SWT.Modify));

    final ObservableListContentProvider contentProvider;
    ObservableTracker.setIgnore(true);
    try {
        // ignore any observers created internally
        contentProvider = new ObservableListContentProvider();
    } finally {
        ObservableTracker.setIgnore(false);
    }

    nameColumn.setEditingSupport(ObservableValueEditingSupport.create(_interceptorTable, context,
            new TextCellEditor(_interceptorTable.getTable()), cellEditorTextProperty, nameProperty));
    nameColumn.setLabelProvider(
            new ObservableMapCellLabelProvider(nameProperty.observeDetail(contentProvider.getKnownElements())));

    _interceptorTable.setContentProvider(contentProvider);

    this._mAddButton = new Button(this, SWT.NONE);
    this._mAddButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
    this._mAddButton.setText(Messages.button_add);
    this._mAddButton.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            addInterceptorTypeToList();
            fireChangedEvent(e.getSource());
        }
    });

    this._mAddButton.setEnabled(false);

    _interceptorTable.getTable().addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            updateInterceptorTypeButtons();
        }
    });

    this._mEditButton = new Button(this, SWT.NONE);
    this._mEditButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
    this._mEditButton.setText(Messages.button_edit);
    this._mEditButton.setEnabled(false);
    this._mEditButton.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            editInterceptorType();
            fireChangedEvent(e.getSource());
        }
    });

    this._mRemoveButton = new Button(this, SWT.NONE);
    this._mRemoveButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
    this._mRemoveButton.setText(Messages.button_remove);
    this._mRemoveButton.setEnabled(false);
    this._mRemoveButton.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            removeFromList();
            fireChangedEvent(e.getSource());
        }
    });

    // set the input. we're observing a list on the binding value
    _bindingValue = new WritableValue(SWTObservables.getRealm(getDisplay()), null, SOAPBindingType.class);
    _interceptorTable
            .setInput(EMFProperties.list(FeaturePath.fromList(_interceptorsListFeature, _interceptorsFeature))
                    .observeDetail(_bindingValue));

    updateInterceptorTypeButtons();
}

From source file:org.switchyard.tools.ui.editor.diagram.binding.CamelAdditionalURIPropertyTable.java

License:Open Source License

CamelAdditionalURIPropertyTable(Composite parent, int style, boolean isReadOnly,
        EReference additionalUriParametersFeature, EReference parameterFeature, EClass parameterType,
        DataBindingContext context) {//from w  w w .ja  va  2  s. c o m
    super(parent, style);
    final EditingDomain domain = AdapterFactoryEditingDomain.getEditingDomainFor(getTargetObject());
    this._isReadOnly = isReadOnly;
    this._changeListeners = new ListenerList();
    _additionalUriParametersFeature = additionalUriParametersFeature;
    _parameterFeature = parameterFeature;
    _parameterType = parameterType;

    int additionalStyles = SWT.NONE;
    if (isReadOnly) {
        additionalStyles = SWT.READ_ONLY;
    }

    final GridLayout gridLayout = new GridLayout();
    gridLayout.marginWidth = 0;
    gridLayout.marginHeight = 0;
    gridLayout.numColumns = 2;
    setLayout(gridLayout);

    Composite tableComposite = new Composite(this, additionalStyles);
    GridData gd11 = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 2);
    gd11.heightHint = 100;
    tableComposite.setLayoutData(gd11);

    _propertyTreeTable = new TableViewer(tableComposite,
            SWT.BORDER | SWT.WRAP | SWT.V_SCROLL | SWT.FULL_SELECTION | additionalStyles);
    _propertyTreeTable.getTable().setHeaderVisible(true);

    TableColumnLayout tableLayout = new TableColumnLayout();
    tableComposite.setLayout(tableLayout);

    TableViewerColumn nameColumn = new TableViewerColumn(_propertyTreeTable, SWT.LEFT);
    nameColumn.getColumn().setText(Messages.label_name);
    tableLayout.setColumnData(nameColumn.getColumn(), new ColumnWeightData(100, 150, true));

    TableViewerColumn valueColumn = new TableViewerColumn(_propertyTreeTable, SWT.LEFT);
    valueColumn.getColumn().setText(Messages.label_value);
    tableLayout.setColumnData(valueColumn.getColumn(), new ColumnWeightData(100, 150, true));

    // TODO: need to use EMFEditProperties if we're in an editing context
    IValueProperty nameProperty = domain == null
            ? EMFProperties.value(_parameterType.getEStructuralFeature("name"))
            : EMFEditProperties.value(domain, _parameterType.getEStructuralFeature("name"));
    IValueProperty valueProperty = domain == null
            ? EMFProperties.value(_parameterType.getEStructuralFeature("value"))
            : EMFEditProperties.value(domain, _parameterType.getEStructuralFeature("value"));
    IValueProperty cellEditorTextProperty = CellEditorProperties.control()
            .value(WidgetProperties.text(SWT.Modify));

    final ObservableListContentProvider contentProvider;
    ObservableTracker.setIgnore(true);
    try {
        // ignore any observers created internally
        contentProvider = new ObservableListContentProvider();
    } finally {
        ObservableTracker.setIgnore(false);
    }

    nameColumn.setEditingSupport(ObservableValueEditingSupport.create(_propertyTreeTable, context,
            new TextCellEditor(_propertyTreeTable.getTable()), cellEditorTextProperty, nameProperty));
    nameColumn.setLabelProvider(
            new ObservableMapCellLabelProvider(nameProperty.observeDetail(contentProvider.getKnownElements())));

    valueColumn.setEditingSupport(ObservableValueEditingSupport.create(_propertyTreeTable, context,
            new TextCellEditor(_propertyTreeTable.getTable()), cellEditorTextProperty, valueProperty));
    valueColumn.setLabelProvider(new ObservableMapCellLabelProvider(
            valueProperty.observeDetail(contentProvider.getKnownElements())));

    _propertyTreeTable.setContentProvider(contentProvider);

    _mAddButton = new Button(this, SWT.NONE);
    _mAddButton.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, false, false));
    _mAddButton.setText(Messages.button_add);
    _mAddButton.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            addPropertyToList();
            fireChangedEvent(e.getSource());
        }
    });

    _mAddButton.setEnabled(false);

    _propertyTreeTable.getTable().addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            updatePropertyButtons();
        }
    });

    _mRemoveButton = new Button(this, SWT.NONE);
    _mRemoveButton.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, false, false));
    _mRemoveButton.setText(Messages.button_remove);
    _mRemoveButton.setEnabled(false);
    _mRemoveButton.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            removeFromList();
            fireChangedEvent(e.getSource());
        }
    });

    // set the input. we're observing a list on the binding value
    _bindingValue = new WritableValue(SWTObservables.getRealm(getDisplay()), null, Binding.class);
    _propertyTreeTable.setInput(
            EMFProperties.list(FeaturePath.fromList(_additionalUriParametersFeature, _parameterFeature))
                    .observeDetail(_bindingValue));

    updatePropertyButtons();
}

From source file:ramo.klevis.openrental.forms.FormAvaibleCar.java

protected DataBindingContext initDataBindings() {
    DataBindingContext bindingContext = new DataBindingContext();
    ///* w  ww .  j  a  va 2  s.c  om*/
    fillClassAndLocation();
    //
    IObservableValue comboViewerObserveSingleSelection = ViewersObservables.observeSingleSelection(comboViewer);
    IObservableValue beanAvaibleCarClazzObserveValue = PojoObservables.observeValue(beanAvaibleCar, "clazz");
    bindingContext.bindValue(comboViewerObserveSingleSelection, beanAvaibleCarClazzObserveValue, null, null);
    //
    IObservableValue comboViewer_1ObserveSingleSelection = ViewersObservables
            .observeSingleSelection(comboViewer_1);
    IObservableValue beanAvaibleCarLocationObserveValue = PojoObservables.observeValue(beanAvaibleCar,
            "location");
    bindingContext.bindValue(comboViewer_1ObserveSingleSelection, beanAvaibleCarLocationObserveValue, null,
            null);
    //
    IObservableValue fromDateTextObserveSelectionObserveWidget = SWTObservables.observeSelection(fromDateText);
    IObservableValue beanAvaibleCarFromDateObserveValue = PojoObservables.observeValue(beanAvaibleCar,
            "fromDate");
    bindingContext.bindValue(fromDateTextObserveSelectionObserveWidget, beanAvaibleCarFromDateObserveValue,
            null, null);
    //
    IObservableValue toDateTextObserveSelectionObserveWidget = SWTObservables.observeSelection(toDateText);
    IObservableValue beanAvaibleCarToDateObserveValue = PojoObservables.observeValue(beanAvaibleCar, "toDate");
    bindingContext.bindValue(toDateTextObserveSelectionObserveWidget, beanAvaibleCarToDateObserveValue, null,
            null);
    //
    ObservableListContentProvider listContentProvider_2 = new ObservableListContentProvider();
    tableViewer.setContentProvider(listContentProvider_2);
    //
    IObservableMap[] observeMaps = PojoObservables.observeMaps(listContentProvider_2.getKnownElements(),
            Car.class, new String[] { "id", "license", "make", "model", "rate", "year", "classes.class_" });
    tableViewer.setLabelProvider(new ObservableMapLabelProvider(observeMaps));
    //
    WritableList writableList_2 = new WritableList(getListCarsAvaible(), Car.class);
    tableViewer.setInput(writableList_2);
    //
    return bindingContext;
}

From source file:ramo.klevis.openrental.forms.FormAvaibleCar.java

private void fillClassAndLocation() {
    ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
    comboViewer.setContentProvider(listContentProvider);
    ////from   www  . ja  v  a  2 s  .  c  o m
    IObservableMap observeMap = PojoObservables.observeMap(listContentProvider.getKnownElements(), Class.class,
            "class_");
    comboViewer.setLabelProvider(new ObservableMapLabelProvider(observeMap));
    //
    WritableList writableList = new WritableList(itemClass, Class.class);
    comboViewer.setInput(writableList);
    //
    ObservableListContentProvider listContentProvider_1 = new ObservableListContentProvider();
    comboViewer_1.setContentProvider(listContentProvider_1);
    //
    IObservableMap observeMap_1 = PojoObservables.observeMap(listContentProvider_1.getKnownElements(),
            Location.class, "loc");
    comboViewer_1.setLabelProvider(new ObservableMapLabelProvider(observeMap_1));
    //
    WritableList writableList_1 = new WritableList(itemLocation, Location.class);
    comboViewer_1.setInput(writableList_1);
}

From source file:uk.ac.gda.example.mvcexample.MvcExampleView.java

License:Open Source License

/**
 * Creates a table viewer of the model using ObservableListContentProvider and Observable label providers to bind to
 * the model/*  ww  w . j  a v a 2  s.co m*/
 */
private void createTable1(Composite cmpRoot, IObservableList input) {
    ObservableListContentProvider contentProvider = new ObservableListContentProvider();
    viewer = new TableViewer(cmpRoot);
    Table table = viewer.getTable();
    table.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, true, 1, 1));
    table.setLinesVisible(true);
    viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    TableViewerColumn column0 = new TableViewerColumn(viewer, SWT.NONE);
    column0.getColumn().setWidth(100);
    column0.getColumn().setText(MvcExampleItem.NAME_PROPERTY_NAME);

    IObservableSet knownElements0 = contentProvider.getKnownElements();

    final IObservableMap values0 = BeanProperties.value(MvcExampleItem.class, MvcExampleItem.NAME_PROPERTY_NAME)
            .observeDetail(knownElements0);

    column0.setLabelProvider(new ObservableMapColumnLabelProvider(values0));

    TableViewerColumn column1 = new TableViewerColumn(viewer, SWT.NONE);
    column1.getColumn().setWidth(100);
    column1.getColumn().setText(MvcExampleItem.VALUE_PROPERTY_NAME);

    IObservableSet knownElements = contentProvider.getKnownElements();

    final IObservableMap values = BeanProperties.value(MvcExampleItem.class, MvcExampleItem.VALUE_PROPERTY_NAME)
            .observeDetail(knownElements);

    column1.setLabelProvider(new ObservableMapColumnLabelProvider(values));

    TableViewerColumn column2 = new TableViewerColumn(viewer, SWT.NONE);
    column2.getColumn().setText("Progress");
    column2.getColumn().setWidth(52);
    ControlFactoryAndUpdater factory = new ObservableMapCellControlProvider.ControlFactoryAndUpdater() {

        @Override
        public Control createControl(Composite parent) {
            ProgressBar progressBar = new ProgressBar(parent, SWT.NONE);
            progressBar.setMaximum(100);
            return progressBar;
        }

        @Override
        public void updateControl(Control control, Object value) {
            ((ProgressBar) control).setSelection(((Double) value).intValue());

        }
    };
    column2.setLabelProvider(new ObservableMapCellControlProvider(values, factory, "Column2"));

    TableViewerColumn column3 = new TableViewerColumn(viewer, SWT.NONE);
    column3.getColumn().setText("Done");
    column3.getColumn().setWidth(20);
    ControlFactoryAndUpdater factory2 = new ObservableMapCellControlProvider.ControlFactoryAndUpdater() {

        org.eclipse.swt.graphics.Color green = null;
        org.eclipse.swt.graphics.Color yellow = null;

        @Override
        public Control createControl(Composite parent) {
            Button button = new Button(parent, SWT.CHECK | SWT.FLAT);
            button.setVisible(true);
            button.setSelection(false);
            button.setAlignment(SWT.CENTER);
            button.setEnabled(false);
            return button;
        }

        @Override
        public void updateControl(Control control, Object value) {
            if (green == null) {
                green = control.getDisplay().getSystemColor(SWT.COLOR_GREEN);
                yellow = control.getDisplay().getSystemColor(SWT.COLOR_YELLOW);
            }
            boolean complete = ((Double) value).intValue() > 10;
            Button button = (Button) control;
            button.setSelection(complete);
            button.setBackground(complete ? green : yellow);
        }
    };
    column3.setLabelProvider(new ObservableMapCellControlProvider(values, factory2, "Column3"));

    TableViewerColumn column4 = new TableViewerColumn(viewer, SWT.NONE);
    column4.getColumn().setText("Done");
    column4.getColumn().setWidth(20);
    column4.setLabelProvider(new ObservableMapOwnerDrawProvider(values) {
        org.eclipse.swt.graphics.Color green = null;
        org.eclipse.swt.graphics.Color yellow = null;
        org.eclipse.swt.graphics.Color original = null;

        @Override
        protected void measure(Event event, Object element) {
            event.setBounds(new Rectangle(event.x, event.y, 20, 10));
        }

        @Override
        protected void erase(Event event, Object element) {
            if (original != null) {
                event.gc.setBackground(original);
                event.gc.fillRectangle(event.getBounds());
            }
            super.erase(event, element);
        }

        @Override
        protected void paint(Event event, Object element) {
            if (green == null) {
                original = event.gc.getBackground();
                green = event.display.getSystemColor(SWT.COLOR_GREEN);
                yellow = event.display.getSystemColor(SWT.COLOR_YELLOW);
            }
            Object value = attributeMaps[0].get(element);
            boolean complete = ((Double) value).intValue() > 10;
            event.gc.setBackground(complete ? green : yellow);
            event.gc.fillRectangle(event.getBounds());
        }
    });

    viewer.getTable().setHeaderVisible(true);
    viewer.setContentProvider(contentProvider);
    viewer.setInput(input);
}