Example usage for org.eclipse.jface.databinding.swt WidgetProperties text

List of usage examples for org.eclipse.jface.databinding.swt WidgetProperties text

Introduction

In this page you can find the example usage for org.eclipse.jface.databinding.swt WidgetProperties text.

Prototype

public static IWidgetValueProperty text() 

Source Link

Document

Returns a value property for observing the text of a Button , CCombo , CLabel , Combo , Item , Label , Link , Shell , Group , StyledText or Text .

Usage

From source file:org.eclipse.emf.ecp.edit.internal.swt.reference.LinkControl.java

License:Open Source License

@Override
public Binding bindValue() {

    final IObservableValue value = WidgetProperties.text().observe(hyperlink);
    getDataBindingContext().bindValue(value, getModelValue(), createValueExtractingUpdateStrategy(),
            new UpdateValueStrategy() {
                @Override/*from w  ww  . j av a2s.com*/
                public Object convert(Object value) {
                    updateChangeListener((EObject) value);
                    return "<a>" + getLinkText(value) + "</a>"; //$NON-NLS-1$ //$NON-NLS-2$
                }
            });

    final IObservableValue tooltipValue = WidgetProperties.tooltipText().observe(hyperlink);
    getDataBindingContext().bindValue(tooltipValue, getModelValue(), createValueExtractingUpdateStrategy(),
            new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return getLinkText(value);
                }
            });

    final IObservableValue imageValue = WidgetProperties.image().observe(imageHyperlink);
    getDataBindingContext().bindValue(imageValue, getModelValue(),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return getImage(value);
                }
            });

    final IObservableValue deleteButtonEnablement = WidgetProperties.enabled().observe(getDeleteButton());
    getDataBindingContext().bindValue(deleteButtonEnablement, getModelValue(),
            createValueExtractingUpdateStrategy(), new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return value != null;
                }
            });

    return null;
}

From source file:org.eclipse.emf.ecp.view.internal.control.multireference.MultiReferenceSWTRenderer.java

License:Open Source License

private void createContent(Composite composite) throws DatabindingFailedException {
    tableViewer = new TableViewer(composite, SWT.MULTI | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    tableViewer.getTable().setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_control_multireference"); //$NON-NLS-1$
    tableViewer.getTable().setHeaderVisible(true);
    tableViewer.getTable().setLinesVisible(true);

    final ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
            tableViewer) {//from ww  w . j av  a2s.  c  o  m
        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
                    || event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    TableViewerEditor.create(tableViewer, null, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
    ColumnViewerToolTipSupport.enableFor(tableViewer);

    final ECPTableViewerComparator comparator = new ECPTableViewerComparator();
    tableViewer.setComparator(comparator);

    final ObservableListContentProvider cp = new ObservableListContentProvider();

    final EMFFormsLabelProvider labelService = getEMFFormsLabelProvider();

    final TableViewerColumn column = TableViewerColumnBuilder.create().setResizable(false).setMoveable(false)
            .setStyle(SWT.NONE).build(tableViewer);

    final IObservableValue textObservableValue = WidgetProperties.text().observe(column.getColumn());
    final IObservableValue tooltipObservableValue = WidgetProperties.tooltipText().observe(column.getColumn());
    try {
        viewModelDBC.bindValue(textObservableValue, labelService.getDisplayName(
                getVElement().getDomainModelReference(), getViewModelContext().getDomainModel()));

        viewModelDBC.bindValue(tooltipObservableValue, labelService.getDescription(
                getVElement().getDomainModelReference(), getViewModelContext().getDomainModel()));
    } catch (final NoLabelFoundException e) {
        // FIXME Expectations?
        getReportService().report(new RenderingFailedReport(e));
    }

    column.getColumn()
            .addSelectionListener(getSelectionAdapter(tableViewer, comparator, column.getColumn(), 0));

    tableViewer.setLabelProvider(labelProvider);
    tableViewer.setContentProvider(cp);
    final IObservableList list = getEMFFormsDatabinding()
            .getObservableList(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
    tableViewer.setInput(list);

    final TableColumnLayout layout = new TableColumnLayout();
    composite.setLayout(layout);
    layout.setColumnData(column.getColumn(), new ColumnWeightData(1, false));

    tableViewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            final EObject selectedObject = (EObject) IStructuredSelection.class.cast(event.getSelection())
                    .getFirstElement();
            handleDoubleClick(selectedObject);
        }

    });
}

From source file:org.eclipse.emf.ecp.view.internal.core.swt.renderer.LinkControlSWTRenderer.java

License:Open Source License

@Override
protected Binding[] createBindings(Control control) throws DatabindingFailedException {

    final IObservableValue value = WidgetProperties.text().observe(hyperlink);
    final Binding binding = getDataBindingContext().bindValue(value, getModelValue(),
            createValueExtractingUpdateStrategy(), new UpdateValueStrategy() {
                @Override/*from  w ww  .  j av  a 2s .  co m*/
                public Object convert(Object value) {
                    updateChangeListener((EObject) value);
                    return "<a>" + getText(value) + "</a>"; //$NON-NLS-1$ //$NON-NLS-2$
                }
            });

    final IObservableValue tooltipValue = WidgetProperties.tooltipText().observe(hyperlink);
    final Binding tooltipBinding = getDataBindingContext().bindValue(tooltipValue, getModelValue(),
            createValueExtractingUpdateStrategy(), new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return getText(value);
                }
            });

    final IObservableValue imageValue = WidgetProperties.image().observe(imageHyperlink);
    final Binding imageBinding = getDataBindingContext().bindValue(imageValue, getModelValue(),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return getImage(value);
                }
            });

    final IObservableValue deleteButtonEnablement = WidgetProperties.enabled().observe(deleteReferenceButton);
    final Binding deleteBinding = getDataBindingContext().bindValue(deleteButtonEnablement, getModelValue(),
            createValueExtractingUpdateStrategy(), new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return value != null;
                }
            });

    return new Binding[] { binding, tooltipBinding, imageBinding, deleteBinding };
}

From source file:org.eclipse.emf.ecp.view.internal.editor.controls.ControlRootEClassControl2SWTRenderer.java

License:Open Source License

/**
 * {@inheritDoc}//ww w .  j  a va 2 s  .  c o m
 *
 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createBindings(org.eclipse.swt.widgets.Control,
 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 */
@Override
protected Binding[] createBindings(Control control) throws DatabindingFailedException {

    final Binding[] bindings = new Binding[3];
    final IObservableValue value = WidgetProperties.text().observe(label);

    bindings[0] = getDataBindingContext().bindValue(value, getModelValue(), new UpdateValueStrategy() {

        @Override
        public Object convert(Object value) {
            try {
                return getModelValue().getValue();
            } catch (final DatabindingFailedException ex) {
                getReportService().report(new DatabindingFailedReport(ex));
                return null;
            }
        }
    }, new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            updateChangeListener((EObject) value);
            return getText(value);
        }
    });
    final IObservableValue tooltipValue = WidgetProperties.tooltipText().observe(label);
    bindings[1] = getDataBindingContext().bindValue(tooltipValue, getModelValue(), new UpdateValueStrategy() {

        @Override
        public Object convert(Object value) {
            try {
                return getModelValue().getValue();
            } catch (final DatabindingFailedException ex) {
                Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
                return null;
            }
        }
    }, new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            return getText(value);
        }
    });

    final IObservableValue imageValue = WidgetProperties.image().observe(imageLabel);
    bindings[2] = getDataBindingContext().bindValue(imageValue, getModelValue(), new UpdateValueStrategy() {

        @Override
        public Object convert(Object value) {
            try {
                return getModelValue().getValue();
            } catch (final DatabindingFailedException ex) {
                Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
                return null;
            }
        }
    }, new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            return getImage(value);
        }
    });

    return bindings;
}

From source file:org.eclipse.emf.ecp.view.internal.editor.controls.DomainModelReferenceControlSWTRenderer.java

License:Open Source License

/**
 * {@inheritDoc}// w ww  . j  av a 2  s  . c o m
 *
 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createBindings(org.eclipse.swt.widgets.Control,
 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 */
@Override
protected Binding[] createBindings(Control control) throws DatabindingFailedException {

    final Binding[] bindings = new Binding[2];
    final IObservableValue value = WidgetProperties.text().observe(setLabel);

    bindings[0] = getDataBindingContext().bindValue(value, getModelValue(), new UpdateValueStrategy() {

        @Override
        public Object convert(Object value) { // target to model
            try {
                return getModelValue().getValue();
            } catch (final DatabindingFailedException ex) {
                Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
                return null;
            }
        }
    }, new UpdateValueStrategy() {// model to target
        @Override
        public Object convert(Object value) {
            updateChangeListener((EObject) value);
            return getText(value);
        }
    });

    final IObservableValue imageValue = WidgetProperties.image().observe(imageLabel);
    bindings[1] = getDataBindingContext().bindValue(imageValue, getModelValue(),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return getImage(value);
                }
            });

    return bindings;
}

From source file:org.eclipse.emf.ecp.view.internal.editor.controls.EditableEReferenceLabelControlSWTRenderer.java

License:Open Source License

/**
 * {@inheritDoc}/*from   ww w.  ja v  a  2  s. c  o  m*/
 *
 * @see org.eclipse.emf.ecp.view.internal.editor.controls.ControlRootEClassControl2SWTRenderer#createSWTControl(org.eclipse.swt.widgets.Composite)
 */
@Override
protected Control createSWTControl(final Composite parent2) throws DatabindingFailedException {
    final Composite composite = (Composite) super.createSWTControl(parent2);

    GridLayoutFactory.fillDefaults().numColumns(3).spacing(0, 0).equalWidth(false).applyTo(composite);

    final EMFFormsLabelProvider labelProvider = Activator.getDefault().getEMFFormsLabelProvider();
    final Button selectClass = new Button(composite, SWT.PUSH);
    try {
        final IObservableValue labelText = labelProvider.getDisplayName(getVElement().getDomainModelReference(),
                getViewModelContext().getDomainModel());
        final IObservableValue tooltip = labelProvider.getDescription(getVElement().getDomainModelReference(),
                getViewModelContext().getDomainModel());

        viewModelDBC.bindValue(WidgetProperties.text().observe(selectClass), labelText, null,
                new UpdateValueStrategy() {

                    /**
                     * {@inheritDoc}
                     *
                     * @see org.eclipse.core.databinding.UpdateValueStrategy#convert(java.lang.Object)
                     */
                    @Override
                    public Object convert(Object value) {
                        final String result = (String) super.convert(value);
                        return "Link " + result; //$NON-NLS-1$
                    }

                });
        viewModelDBC.bindValue(WidgetProperties.tooltipText().observe(selectClass), tooltip, null,
                new UpdateValueStrategy() {

                    /**
                     * {@inheritDoc}
                     *
                     * @see org.eclipse.core.databinding.UpdateValueStrategy#convert(java.lang.Object)
                     */
                    @Override
                    public Object convert(Object value) {
                        final String result = (String) super.convert(value);
                        return "Link " + result; //$NON-NLS-1$
                    }

                });
    } catch (final NoLabelFoundException e) {
        // FIXME Expectation?
        getReportService().report(new RenderingFailedReport(e));
        selectClass.setText("Link "); //$NON-NLS-1$
        selectClass.setToolTipText("Link "); //$NON-NLS-1$
    }
    selectClass.addSelectionListener(new SelectionAdapter() {

        /**
         * {@inheritDoc}
         *
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(SelectionEvent e) {
            super.widgetSelected(e);
            linkValue(composite.getShell());
            composite.layout(true, true);
        }

    });

    final Button unset = new Button(composite, SWT.PUSH);
    unset.setText("Unset"); //$NON-NLS-1$
    unset.setToolTipText("Unset"); //$NON-NLS-1$
    final IObservableValue observableValue = Activator.getDefault().getEMFFormsDatabinding().getObservableValue(
            getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
    final EObject eObject = (EObject) ((IObserving) observableValue).getObserved();
    final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType();
    observableValue.dispose();

    unset.addSelectionListener(new SelectionAdapter() {

        /**
         * {@inheritDoc}
         *
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(SelectionEvent e) {
            super.widgetSelected(e);
            eObject.eUnset(structuralFeature);
            composite.layout(true, true);
        }

    });

    return composite;
}

From source file:org.eclipse.emf.ecp.view.internal.editor.controls.EReferenceLabelControlSWTRenderer.java

License:Open Source License

/**
 * {@inheritDoc}//from  w  ww . j a va  2s  .c o  m
 *
 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createBindings(org.eclipse.swt.widgets.Control,
 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 */
@Override
protected Binding[] createBindings(Control control) throws DatabindingFailedException {

    final Binding[] bindings = new Binding[3];
    final IObservableValue value = WidgetProperties.text().observe(label);

    bindings[0] = getDataBindingContext().bindValue(value, getModelValue(), new UpdateValueStrategy() {

        @Override
        public Object convert(Object value) {
            try {
                return getModelValue().getValue();
            } catch (final DatabindingFailedException ex) {
                Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
                return null;
            }
        }
    }, new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            updateChangeListener((EObject) value);
            return getText(value);
        }
    });
    final IObservableValue tooltipValue = WidgetProperties.tooltipText().observe(label);
    bindings[1] = getDataBindingContext().bindValue(tooltipValue, getModelValue(), new UpdateValueStrategy() {

        @Override
        public Object convert(Object value) {
            try {
                return getModelValue().getValue();
            } catch (final DatabindingFailedException ex) {
                Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
                return null;
            }
        }
    }, new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            return getText(value);
        }
    });

    final IObservableValue imageValue = WidgetProperties.image().observe(imageLabel);
    bindings[2] = getDataBindingContext().bindValue(imageValue, getModelValue(), new UpdateValueStrategy() {

        @Override
        public Object convert(Object value) {
            try {
                return getModelValue().getValue();
            } catch (final DatabindingFailedException ex) {
                Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
                return null;
            }
        }
    }, new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            return getImage(value);
        }
    });

    return bindings;
}

From source file:org.eclipse.emf.ecp.view.internal.editor.controls.TableColumnsDMRTableControl.java

License:Open Source License

/**
 * {@inheritDoc}//from   w w  w. j  a va 2  s . c  o  m
 *
 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer#createControl(org.eclipse.swt.widgets.Composite)
 */
@Override
protected Control createControl(final Composite parent) throws DatabindingFailedException {
    final IObservableValue observableValue = Activator.getDefault().getEMFFormsDatabinding().getObservableValue(
            getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
    structuralFeature = (EStructuralFeature) observableValue.getValueType();
    eObject = (EObject) ((IObserving) observableValue).getObserved();
    observableValue.dispose();

    final Composite composite = new Composite(parent, SWT.NONE);
    composite.setBackgroundMode(SWT.INHERIT_FORCE);
    GridLayoutFactory.fillDefaults().numColumns(1).applyTo(composite);
    final Composite titleComposite = new Composite(composite, SWT.NONE);
    titleComposite.setBackgroundMode(SWT.INHERIT_FORCE);
    GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(titleComposite);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).grab(true, false).applyTo(titleComposite);

    final Label filler = new Label(titleComposite, SWT.NONE);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(filler);

    final Composite buttonComposite = new Composite(titleComposite, SWT.NONE);
    buttonComposite.setBackgroundMode(SWT.INHERIT_FORCE);
    GridLayoutFactory.fillDefaults().numColumns(3).equalWidth(true).applyTo(buttonComposite);
    GridDataFactory.fillDefaults().align(SWT.END, SWT.BEGINNING).grab(false, false).applyTo(buttonComposite);

    final Button buttonSort = new Button(buttonComposite, SWT.PUSH);
    buttonSort.setText("Sort"); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(false, false).applyTo(buttonSort);

    final Button buttonAdd = new Button(buttonComposite, SWT.PUSH);
    buttonAdd.setText("Add"); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(false, false).applyTo(buttonAdd);

    final Button buttonRemove = new Button(buttonComposite, SWT.PUSH);
    buttonRemove.setText("Remove"); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(false, false).applyTo(buttonRemove);

    final Composite tableComposite = new Composite(composite, SWT.NONE);
    tableComposite.setBackgroundMode(SWT.INHERIT_FORCE);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).hint(1, 100)
            .applyTo(tableComposite);
    final TableColumnLayout layout = new TableColumnLayout();
    tableComposite.setLayout(layout);

    final TableViewer viewer = new TableViewer(tableComposite);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(viewer.getControl());

    viewer.getTable().setHeaderVisible(true);
    viewer.getTable().setLinesVisible(true);
    final TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
    final TableColumn tableColumn = column.getColumn();
    final EMFFormsLabelProvider emfFormsLabelProvider = Activator.getDefault().getEMFFormsLabelProvider();// TODO
    try {
        final IObservableValue labelText = emfFormsLabelProvider.getDisplayName(
                getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
        final IObservableValue tooltip = emfFormsLabelProvider.getDescription(
                getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
        viewModelDBC.bindValue(WidgetProperties.text().observe(tableColumn), labelText);
        viewModelDBC.bindValue(WidgetProperties.tooltipText().observe(tableColumn), tooltip);
    } catch (final NoLabelFoundException e) {
        // FIXME Expectations?
        getReportService().report(new RenderingFailedReport(e));
        tableColumn.setText(e.getMessage());
        tableColumn.setToolTipText(e.toString());
    }

    layout.setColumnData(column.getColumn(), new ColumnWeightData(1, true));

    viewer.setLabelProvider(labelProvider);
    viewer.setContentProvider(new ObservableListContentProvider());
    addDragAndDropSupport(viewer, getEditingDomain(eObject));

    final IObservableList list = Activator.getDefault().getEMFFormsDatabinding()
            .getObservableList(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
    viewer.setInput(list);

    tableControl = (VTableControl) getViewModelContext().getDomainModel();
    adapter = new TableControlAdapter(parent, viewer);
    tableControl.eAdapters().add(adapter);

    buttonSort.addSelectionListener(new SortSelectionAdapter());

    buttonAdd.addSelectionListener(new AddSelectionAdapter(tableComposite, viewer));

    buttonRemove.addSelectionListener(new RemoveSelectionAdapter(viewer));

    return composite;
}

From source file:org.eclipse.emf.ecp.view.internal.editor.controls.TableDetailViewControlSWTRenderer.java

License:Open Source License

/**
 * {@inheritDoc}/*w  w  w .  j  a  v  a2 s . co  m*/
 *
 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTControlSWTRenderer#createBindings(org.eclipse.swt.widgets.Control,
 *      org.eclipse.emf.ecore.EStructuralFeature.Setting)
 */
@Override
protected Binding[] createBindings(Control control) throws DatabindingFailedException {
    final Binding[] bindings = new Binding[3];
    final IObservableValue value = WidgetProperties.text().observe(label);

    bindings[0] = getDataBindingContext().bindValue(value, getModelValue(), new UpdateValueStrategy() {

        @Override
        public Object convert(Object value) {
            try {
                return getModelValue().getValue();
            } catch (final DatabindingFailedException ex) {
                Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
                return null;
            }
        }
    }, new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            return getText(value);
        }
    });

    final IObservableValue tooltipValue = WidgetProperties.tooltipText().observe(label);
    bindings[1] = getDataBindingContext().bindValue(tooltipValue, getModelValue(), new UpdateValueStrategy() {

        @Override
        public Object convert(Object value) {
            try {
                return getModelValue().getValue();
            } catch (final DatabindingFailedException ex) {
                Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
                return null;
            }
        }
    }, new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            return getText(value);
        }
    });

    final IObservableValue imageValue = WidgetProperties.image().observe(imageLabel);
    bindings[2] = getDataBindingContext().bindValue(imageValue, getModelValue(), new UpdateValueStrategy() {

        @Override
        public Object convert(Object value) {
            try {
                return getModelValue().getValue();
            } catch (final DatabindingFailedException ex) {
                Activator.getDefault().getReportService().report(new DatabindingFailedReport(ex));
                return null;
            }
        }
    }, new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            return getImage(value);
        }
    });

    return bindings;
}

From source file:org.eclipse.emf.ecp.view.spi.categorization.swt.AbstractSWTTabRenderer.java

License:Open Source License

@Override
protected Control renderControl(SWTGridCell cell, Composite parent)
        throws NoRendererFoundException, NoPropertyDescriptorFoundExeption {
    final CTabFolder folder = new CTabFolder(parent, getTabFolderStyle());
    folder.setBackground(parent.getBackground());
    final EList<VAbstractCategorization> categorizations = getCategorizations();
    for (final VAbstractCategorization categorization : categorizations) {
        final CTabItem item = new CTabItem(folder, SWT.NULL);
        final ScrolledComposite scrolledComposite = new ScrolledComposite(folder, SWT.V_SCROLL | SWT.H_SCROLL);

        final IObservableValue modelValue = EMFEditObservables.observeValue(
                AdapterFactoryEditingDomain.getEditingDomainFor(categorization), categorization,
                VViewPackage.eINSTANCE.getElement_Label());
        final IObservableValue targetValue = WidgetProperties.text().observe(item);
        dataBindingContext.bindValue(targetValue, modelValue);

        AbstractSWTRenderer<VElement> renderer;
        try {/*from ww  w.j  a  v a2  s.co m*/
            renderer = getEMFFormsRendererFactory().getRendererInstance(categorization, getViewModelContext());
        } catch (final EMFFormsNoRendererException ex) {
            getReportService().report(new StatusReport(new Status(IStatus.INFO, Activator.PLUGIN_ID,
                    String.format("No Renderer for %s found.", categorization.eClass().getName(), ex)))); //$NON-NLS-1$
            return null;
        }
        final SWTGridDescription gridDescription = renderer
                .getGridDescription(GridDescriptionFactory.INSTANCE.createEmptyGridDescription());
        for (final SWTGridCell gridCell : gridDescription.getGrid()) {
            final Control render = renderer.render(gridCell, scrolledComposite);
            GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(render);
            scrolledComposite.setExpandHorizontal(true);
            scrolledComposite.setExpandVertical(true);
            scrolledComposite.setContent(render);
            scrolledComposite.setMinSize(render.computeSize(SWT.DEFAULT, SWT.DEFAULT));

            item.setControl(scrolledComposite);
        }

    }
    if (folder.getItemCount() > 0) {
        folder.setSelection(0);
    }
    return folder;
}