Example usage for org.eclipse.jface.databinding.swt SWTObservables observeEnabled

List of usage examples for org.eclipse.jface.databinding.swt SWTObservables observeEnabled

Introduction

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

Prototype

@Deprecated
public static ISWTObservableValue observeEnabled(Control control) 

Source Link

Document

Returns an observable value tracking the enabled state of the given control

Usage

From source file:org.bonitasoft.studio.properties.form.sections.actions.contributions.FileWidgetDocumentPickerContribution.java

License:Open Source License

private void bindEnableButtons() {
    final UpdateValueStrategy strategy = createEnabledStrategy();
    final UpdateValueStrategy strategyForUrl = createEnabledStrategyForDownloadOnlyURLCase();
    dataBindingContext.bindValue(SWTObservables.observeEnabled(url),
            EMFObservables.observeValue(fileWidget, FormPackage.Literals.FILE_WIDGET__DOWNLOAD_ONLY),
            strategyForUrl, strategyForUrl);
    dataBindingContext.bindValue(SWTObservables.observeEnabled(url),
            EMFObservables.observeValue(fileWidget, FormPackage.Literals.FILE_WIDGET__INPUT_TYPE), null,
            createEnabledUrlWhenInputIsResourceStrategyTargetToModel());
    dataBindingContext.bindValue(SWTObservables.observeEnabled(browse),
            EMFObservables.observeValue(fileWidget, FormPackage.Literals.FILE_WIDGET__DOWNLOAD_ONLY), strategy,
            strategy);/*from   w ww .ja  v a  2  s.co  m*/
    dataBindingContext.bindValue(SWTObservables.observeEnabled(both),
            EMFObservables.observeValue(fileWidget, FormPackage.Literals.FILE_WIDGET__DOWNLOAD_ONLY), strategy,
            strategy);
}

From source file:org.bonitasoft.studio.properties.form.sections.actions.table.DynamicTableDataPropertySection.java

License:Open Source License

protected void bindColumn(DynamicTable dynamicTable) {
    dataBindingContext.bindValue(SWTObservables.observeSelection(allowAddRemoveColumnButton),
            EMFEditObservables.observeValue(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__ALLOW_ADD_REMOVE_COLUMN));

    if (dynamicTable != null) {
        Expression minNumberOfColumn = dynamicTable.getMinNumberOfColumn();
        if (minNumberOfColumn == null) {
            minNumberOfColumn = ExpressionFactory.eINSTANCE.createExpression();
            minNumberOfColumn.setReturnType(Integer.class.getName());
            minNumberOfColumn.setReturnTypeFixed(true);
            getEditingDomain().getCommandStack().execute(SetCommand.create(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__MIN_NUMBER_OF_COLUMN, minNumberOfColumn));
        }/*  w w  w  .j a  va2s .com*/
    }
    if (dynamicTable != null) {
        Expression maxNumberOfColumn = dynamicTable.getMaxNumberOfColumn();
        if (maxNumberOfColumn == null) {
            maxNumberOfColumn = ExpressionFactory.eINSTANCE.createExpression();
            maxNumberOfColumn.setReturnType(Integer.class.getName());
            maxNumberOfColumn.setReturnTypeFixed(true);
            getEditingDomain().getCommandStack().execute(SetCommand.create(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__MAX_NUMBER_OF_COLUMN, maxNumberOfColumn));
        }
    }

    /*
     * Synchronize with the model.
     * */
    dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(textOrDataMinColumn),
            EMFEditProperties
                    .value(getEditingDomain(), FormPackage.Literals.DYNAMIC_TABLE__MIN_NUMBER_OF_COLUMN)
                    .observe(dynamicTable));
    dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(textOrDataMaxColumn),
            EMFEditProperties
                    .value(getEditingDomain(), FormPackage.Literals.DYNAMIC_TABLE__MAX_NUMBER_OF_COLUMN)
                    .observe(dynamicTable));

    dataBindingContext.bindValue(SWTObservables.observeSelection(limitMinColumnButton),
            EMFEditObservables.observeValue(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__LIMIT_MIN_NUMBER_OF_COLUMN));
    dataBindingContext.bindValue(SWTObservables.observeSelection(limitMaxColumnButton),
            EMFEditObservables.observeValue(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__LIMIT_MAX_NUMBER_OF_COLUMN));

    /*
     * Enable the combo only if we want to set a number limitation.
     * */
    dataBindingContext.bindValue(SWTObservables.observeEnabled(textOrDataMinColumn.getControl()),
            SWTObservables.observeSelection(limitMinColumnButton));
    dataBindingContext.bindValue(SWTObservables.observeEnabled(textOrDataMinColumn.getTextControl()),
            SWTObservables.observeSelection(limitMinColumnButton));
    dataBindingContext.bindValue(SWTObservables.observeEnabled(textOrDataMinColumn.getToolbar()),
            SWTObservables.observeSelection(limitMinColumnButton));
    dataBindingContext.bindValue(SWTObservables.observeEnabled(textOrDataMaxColumn.getControl()),
            SWTObservables.observeSelection(limitMaxColumnButton));
    dataBindingContext.bindValue(SWTObservables.observeEnabled(textOrDataMaxColumn.getTextControl()),
            SWTObservables.observeSelection(limitMaxColumnButton));
    dataBindingContext.bindValue(SWTObservables.observeEnabled(textOrDataMaxColumn.getToolbar()),
            SWTObservables.observeSelection(limitMaxColumnButton));

    dataBindingContext.bindValue(SWTObservables.observeVisible(limitMinColumnButton),
            SWTObservables.observeSelection(allowAddRemoveColumnButton),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);
    dataBindingContext.bindValue(SWTObservables.observeVisible(limitMaxColumnButton),
            SWTObservables.observeSelection(allowAddRemoveColumnButton),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);
    dataBindingContext.bindValue(SWTObservables.observeVisible(textOrDataMinColumn.getControl()),
            SWTObservables.observeSelection(allowAddRemoveColumnButton),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);
    dataBindingContext.bindValue(SWTObservables.observeVisible(textOrDataMaxColumn.getControl()),
            SWTObservables.observeSelection(allowAddRemoveColumnButton),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);

    textOrDataMaxColumn.setInput(dynamicTable);
    textOrDataMinColumn.setInput(dynamicTable);
}

From source file:org.bonitasoft.studio.properties.form.sections.actions.table.DynamicTableDataPropertySection.java

License:Open Source License

protected void bindRow(DynamicTable dynamicTable) {
    dataBindingContext.bindValue(SWTObservables.observeSelection(allowAddRemoveRowButton),
            EMFEditObservables.observeValue(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__ALLOW_ADD_REMOVE_ROW));

    if (dynamicTable != null) {
        Expression minNumberOfRow = dynamicTable.getMinNumberOfColumn();
        if (minNumberOfRow == null) {
            minNumberOfRow = ExpressionFactory.eINSTANCE.createExpression();
            minNumberOfRow.setReturnType(Integer.class.getName());
            minNumberOfRow.setReturnTypeFixed(true);
            getEditingDomain().getCommandStack().execute(SetCommand.create(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__MIN_NUMBER_OF_ROW, minNumberOfRow));
        }// w  ww .  j ava 2  s.c  o  m
    }

    if (dynamicTable != null) {
        Expression maxNumberOfRow = dynamicTable.getMaxNumberOfRow();
        if (maxNumberOfRow == null) {
            maxNumberOfRow = ExpressionFactory.eINSTANCE.createExpression();
            maxNumberOfRow.setReturnType(Integer.class.getName());
            maxNumberOfRow.setReturnTypeFixed(true);
            getEditingDomain().getCommandStack().execute(SetCommand.create(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__MAX_NUMBER_OF_ROW, maxNumberOfRow));
        }
    }

    /*
     * Synchronize with the model.
     * */
    dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(textOrDataMinRow),
            EMFEditProperties.value(getEditingDomain(), FormPackage.Literals.DYNAMIC_TABLE__MIN_NUMBER_OF_ROW)
                    .observe(dynamicTable));
    dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(textOrDataMaxRow),
            EMFEditProperties.value(getEditingDomain(), FormPackage.Literals.DYNAMIC_TABLE__MAX_NUMBER_OF_ROW)
                    .observe(dynamicTable));
    dataBindingContext.bindValue(SWTObservables.observeSelection(limitMinRowButton),
            EMFEditObservables.observeValue(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__LIMIT_MIN_NUMBER_OF_ROW));
    dataBindingContext.bindValue(SWTObservables.observeSelection(limitMaxRowButton),
            EMFEditObservables.observeValue(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__LIMIT_MAX_NUMBER_OF_ROW));

    /*
     * Enable the combo only if we want to set a number limitation.
     * */
    dataBindingContext.bindValue(SWTObservables.observeEnabled(textOrDataMinRow.getControl()),
            SWTObservables.observeSelection(limitMinRowButton));
    dataBindingContext.bindValue(SWTObservables.observeEnabled(textOrDataMinRow.getTextControl()),
            SWTObservables.observeSelection(limitMinRowButton));
    dataBindingContext.bindValue(SWTObservables.observeEnabled(textOrDataMinRow.getToolbar()),
            SWTObservables.observeSelection(limitMinRowButton));
    dataBindingContext.bindValue(SWTObservables.observeEnabled(textOrDataMaxRow.getControl()),
            SWTObservables.observeSelection(limitMaxRowButton));
    dataBindingContext.bindValue(SWTObservables.observeEnabled(textOrDataMaxRow.getTextControl()),
            SWTObservables.observeSelection(limitMaxRowButton));
    dataBindingContext.bindValue(SWTObservables.observeEnabled(textOrDataMaxRow.getToolbar()),
            SWTObservables.observeSelection(limitMaxRowButton));

    dataBindingContext.bindValue(SWTObservables.observeVisible(limitMinRowButton),
            EMFEditObservables.observeValue(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__ALLOW_ADD_REMOVE_ROW),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);
    dataBindingContext.bindValue(SWTObservables.observeVisible(limitMaxRowButton),
            EMFEditObservables.observeValue(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__ALLOW_ADD_REMOVE_ROW),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);
    dataBindingContext.bindValue(SWTObservables.observeVisible(textOrDataMinRow.getControl()),
            EMFEditObservables.observeValue(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__ALLOW_ADD_REMOVE_ROW),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);
    dataBindingContext.bindValue(SWTObservables.observeVisible(textOrDataMaxRow.getControl()),
            EMFEditObservables.observeValue(getEditingDomain(), dynamicTable,
                    FormPackage.Literals.DYNAMIC_TABLE__ALLOW_ADD_REMOVE_ROW),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);

    textOrDataMinRow.setInput(dynamicTable);
    textOrDataMaxRow.setInput(dynamicTable);
}

From source file:org.bonitasoft.studio.properties.form.sections.actions.table.TableDataPropertySection.java

License:Open Source License

@Override
protected void refreshDataBinding() {
    super.refreshDataBinding();
    if (getEObject() != null) {
        UpdateValueStrategy not = new UpdateValueStrategy()
                .setConverter(new Converter(Boolean.class, Boolean.class) {

                    public Object convert(Object fromObject) {
                        return !((Boolean) fromObject);
                    }//from   w  w w .  j  a  va 2 s .c om
                });
        dataBindingContext.bindValue(SWTObservables.observeSelection(allowSelectionButton), EMFEditObservables
                .observeValue(getEditingDomain(), getEObject(), FormPackage.Literals.TABLE__ALLOW_SELECTION));
        dataBindingContext.bindValue(SWTObservables.observeSelection(allowSingleSelection),
                EMFEditObservables.observeValue(getEditingDomain(), getEObject(),
                        FormPackage.Literals.TABLE__SELECTION_MODE_IS_MULTIPLE),
                not, not);
        dataBindingContext.bindValue(SWTObservables.observeSelection(allowMultipleSelection),
                EMFEditObservables.observeValue(getEditingDomain(), getEObject(),
                        FormPackage.Literals.TABLE__SELECTION_MODE_IS_MULTIPLE));

        Expression maxRowForPagination = getEObject().getMaxRowForPagination();
        if (maxRowForPagination == null) {
            maxRowForPagination = ExpressionFactory.eINSTANCE.createExpression();
            getEditingDomain().getCommandStack().execute(SetCommand.create(getEditingDomain(), getEObject(),
                    FormPackage.Literals.TABLE__MAX_ROW_FOR_PAGINATION, maxRowForPagination));
        }
        dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(paginationMaxNumber),
                EMFEditProperties.value(getEditingDomain(), FormPackage.Literals.TABLE__MAX_ROW_FOR_PAGINATION)
                        .observe(getEObject()));
        paginationMaxNumber.setInput(getEObject());
        paginationMaxNumber.setEditingDomain(getEditingDomain());
        dataBindingContext.bindValue(SWTObservables.observeEnabled(paginationMaxNumber.getTextControl()),
                EMFEditObservables.observeValue(getEditingDomain(), getEObject(),
                        FormPackage.Literals.TABLE__ALLOW_SELECTION),
                new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), not);
        dataBindingContext.bindValue(SWTObservables.observeEnabled(paginationMaxNumber.getButtonControl()),
                EMFEditObservables.observeValue(getEditingDomain(), getEObject(),
                        FormPackage.Literals.TABLE__ALLOW_SELECTION),
                new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), not);
        Expression selectedValues = getEObject().getMaxRowForPagination();
        if (selectedValues == null) {
            selectedValues = ExpressionFactory.eINSTANCE.createExpression();
            getEditingDomain().getCommandStack().execute(SetCommand.create(getEditingDomain(), getEObject(),
                    FormPackage.Literals.TABLE__SELECTED_VALUES, selectedValues));
        }
        dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(initialSelectedValues),
                EMFEditProperties.value(getEditingDomain(), FormPackage.Literals.TABLE__SELECTED_VALUES)
                        .observe(getEObject()));
        initialSelectedValues.setInput(getEObject());
        initialSelectedValues.setEditingDomain(getEditingDomain());

        Expression columnForInitialSelectionIndex = getEObject().getColumnForInitialSelectionIndex();
        if (columnForInitialSelectionIndex == null) {
            columnForInitialSelectionIndex = ExpressionFactory.eINSTANCE.createExpression();
            getEditingDomain().getCommandStack()
                    .execute(SetCommand.create(getEditingDomain(), getEObject(),
                            FormPackage.Literals.TABLE__COLUMN_FOR_INITIAL_SELECTION_INDEX,
                            columnForInitialSelectionIndex));
        }
        dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(initialFromColumn),
                EMFEditProperties
                        .value(getEditingDomain(),
                                FormPackage.Literals.TABLE__COLUMN_FOR_INITIAL_SELECTION_INDEX)
                        .observe(getEObject()));
        initialFromColumn.setInput(getEObject());
        initialFromColumn.setEditingDomain(getEditingDomain());

        /*Hide if no selection allowed*/
        dataBindingContext.bindValue(SWTObservables.observeVisible(allowedSelectionCompo),
                EMFEditObservables.observeValue(getEditingDomain(), getEObject(),
                        FormPackage.Literals.TABLE__ALLOW_SELECTION),
                new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);
        dataBindingContext.bindValue(SWTObservables.observeVisible(allowSingleSelection),
                EMFEditObservables.observeValue(getEditingDomain(), getEObject(),
                        FormPackage.Literals.TABLE__ALLOW_SELECTION),
                new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);
        dataBindingContext.bindValue(SWTObservables.observeVisible(allowMultipleSelection),
                EMFEditObservables.observeValue(getEditingDomain(), getEObject(),
                        FormPackage.Literals.TABLE__ALLOW_SELECTION),
                new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);
        contrib.setEditingDomain(getEditingDomain());
        contrib.setEObject(getEObject());
        contrib.superBind();
    }
}

From source file:org.bonitasoft.studio.properties.form.sections.general.contributions.ShowLabelGridPropertySectionContribution.java

License:Open Source License

public void createControl(Composite composite, TabbedPropertySheetWidgetFactory widgetFactory,
        ExtensibleGridPropertySection extensibleGridPropertySection) {

    composite.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false));
    composite.setLayout(new GridLayout(3, false));
    if (dataBindingContext != null) {
        dataBindingContext.dispose();//  w w  w .j a v  a2 s  .  co  m
    }
    dataBindingContext = new EMFDataBindingContext();
    Button enableLabel = null;

    if (!(element instanceof FormButton)) {
        /* Create the checkbox to hide/show the label */
        enableLabel = widgetFactory.createButton(composite, "", SWT.CHECK); //$NON-NLS-1$
        enableLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
        enableLabel.setToolTipText(Messages.GeneralSection_EnableLabel_tooltip);
        dataBindingContext.bindValue(SWTObservables.observeSelection(enableLabel), EMFEditObservables
                .observeValue(editingDomain, element, FormPackage.Literals.WIDGET__SHOW_DISPLAY_LABEL));
    }

    ExpressionViewer displayLabelViewer = new ExpressionViewer(composite, SWT.BORDER, widgetFactory,
            editingDomain, FormPackage.Literals.WIDGET__DISPLAY_LABEL);
    displayLabelViewer.addFilter(new AvailableExpressionTypeFilter(new String[] {
            ExpressionConstants.CONSTANT_TYPE, ExpressionConstants.I18N_TYPE, ExpressionConstants.SCRIPT_TYPE,
            ExpressionConstants.PARAMETER_TYPE, ExpressionConstants.VARIABLE_TYPE }));
    Expression displayLabelExpression = element.getDisplayLabel();
    if (displayLabelExpression == null) {
        displayLabelExpression = ExpressionFactory.eINSTANCE.createExpression();
        editingDomain.getCommandStack().execute(SetCommand.create(editingDomain, element,
                FormPackage.Literals.WIDGET__DISPLAY_LABEL, displayLabelExpression));
    }

    // add validator on the show label field when it is a form button - expression can't be empty
    if (element instanceof FormButton) {
        displayLabelViewer.addExpressionValidator(ExpressionConstants.CONSTANT_TYPE,
                new ExpressionNotEmptyValidator());
    }

    displayLabelViewer.getControl()
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).hint(300, SWT.DEFAULT).create());

    displayLabelViewer.setInput(element);
    dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(displayLabelViewer),
            EMFEditProperties.value(editingDomain, FormPackage.Literals.WIDGET__DISPLAY_LABEL)
                    .observe(element));

    if (!(element instanceof FormButton)) {

        /* Create the chekbox to allow HTML for the label or not */
        Button allowHtmlButton = widgetFactory.createButton(composite, Messages.GeneralSection_allowHTML,
                SWT.CHECK);
        dataBindingContext.bindValue(SWTObservables.observeSelection(allowHtmlButton),
                EMFEditObservables.observeValue(editingDomain, element,
                        FormPackage.Literals.WIDGET__ALLOW_HTML_FOR_DISPLAY_LABEL));
        dataBindingContext.bindValue(SWTObservables.observeEnabled(allowHtmlButton),
                SWTObservables.observeSelection(enableLabel));

        /* Enable/disable the combo for the text and the allow html */
        dataBindingContext.bindValue(SWTObservables.observeEnabled(displayLabelViewer.getControl()),
                SWTObservables.observeSelection(enableLabel));
        dataBindingContext.bindValue(SWTObservables.observeEnabled(displayLabelViewer.getTextControl()),
                SWTObservables.observeSelection(enableLabel));
        dataBindingContext.bindValue(SWTObservables.observeEnabled(displayLabelViewer.getButtonControl()),
                SWTObservables.observeSelection(enableLabel));
    }
}

From source file:org.bonitasoft.studio.properties.form.sections.general.contributions.ShowPageLabelContribution.java

License:Open Source License

public void createControl(Composite composite, TabbedPropertySheetWidgetFactory widgetFactory,
        ExtensibleGridPropertySection extensibleGridPropertySection) {
    //      composite.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false,2,1));
    composite.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, true, false));
    composite.setLayout(new GridLayout(3, false));
    if (dataBindingContext != null) {
        dataBindingContext.dispose();//  w  w w. ja v a2 s.c o  m
    }
    dataBindingContext = new EMFDataBindingContext();

    Button enableLabel = widgetFactory.createButton(composite, "", SWT.CHECK); //$NON-NLS-1$
    enableLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    enableLabel.setToolTipText(Messages.GeneralSection_EnableLabel_tooltip);
    dataBindingContext.bindValue(SWTObservables.observeSelection(enableLabel), EMFEditObservables
            .observeValue(editingDomain, element, FormPackage.Literals.FORM__SHOW_PAGE_LABEL));

    enableLabel.setSelection(element.getShowPageLabel() == null || element.getShowPageLabel());

    GridData gData = new GridData(SWT.BEGINNING, SWT.CENTER, false, false);
    gData.widthHint = 250;

    ExpressionViewer pageLabelExpresssionViewer = new ExpressionViewer(composite, SWT.BORDER, widgetFactory,
            FormPackage.Literals.FORM__PAGE_LABEL);
    final Expression pageLabel = element.getPageLabel();
    if (pageLabel == null) {
        editingDomain.getCommandStack().execute(SetCommand.create(editingDomain, element,
                FormPackage.Literals.FORM__PAGE_LABEL, ExpressionFactory.eINSTANCE.createExpression()));
    }
    if (ModelHelper.isAnEntryPageFlowOnAPool(element)) {
        pageLabelExpresssionViewer
                .addFilter(new AvailableExpressionTypeFilter(new String[] { ExpressionConstants.CONSTANT_TYPE,
                        ExpressionConstants.PARAMETER_TYPE, ExpressionConstants.SCRIPT_TYPE }));
    }

    pageLabelExpresssionViewer.setInput(element);
    dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(pageLabelExpresssionViewer),
            EMFEditProperties.value(editingDomain, FormPackage.Literals.FORM__PAGE_LABEL).observe(element));

    pageLabelExpresssionViewer.setMessage(Messages.GeneralSection_EnablePageLabel_tooltip, IStatus.INFO);
    pageLabelExpresssionViewer.getControl().setLayoutData(gData);

    Button allowHTMLButton = widgetFactory.createButton(composite, Messages.GeneralSection_allowHTML,
            SWT.CHECK);
    dataBindingContext.bindValue(SWTObservables.observeSelection(allowHTMLButton), EMFEditObservables
            .observeValue(editingDomain, element, FormPackage.Literals.FORM__ALLOW_HTML_IN_PAGE_LABEL));

    /*Enable/disable the combo for the text and the allow html*/
    dataBindingContext.bindValue(SWTObservables.observeEnabled(pageLabelExpresssionViewer.getControl()),
            SWTObservables.observeSelection(enableLabel));
    dataBindingContext.bindValue(SWTObservables.observeEnabled(allowHTMLButton),
            SWTObservables.observeSelection(enableLabel));
}

From source file:org.bonitasoft.studio.properties.sections.document.DocumentPropertySection.java

License:Open Source License

protected void bindDetails(final IObservableValue documentSelected) {
    if (nameBinding != null) {
        nameBinding.dispose();/*from  w  w  w. j  av  a  2 s. co  m*/
    }
    if (decorationSupport != null) {
        decorationSupport.dispose();
    }
    IObservableValue externalUrlObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.DOCUMENT__URL).observeDetail(documentSelected);
    emfDataBindingContext.bindValue(ViewerProperties.singleSelection().observe(documentUrlViewer),
            externalUrlObserved);
    documentUrlViewer.setInput(documentSelected);

    IObservableValue mimeTypeObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.DOCUMENT__MIME_TYPE)
            .observeDetail(documentSelected);
    emfDataBindingContext.bindValue(ViewerProperties.singleSelection().observe(documentMimeTypeViewer),
            mimeTypeObserved);
    documentMimeTypeViewer.setInput(documentSelected);

    final UpdateValueStrategy targetToModel = new UpdateValueStrategy();

    targetToModel.setAfterGetValidator(new InputLengthValidator(Messages.name, 50));
    targetToModel.setBeforeSetValidator(new DocumentNameValidator(documentListViewer));

    final IObservableValue nameObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.ELEMENT__NAME).observeDetail(documentSelected);

    nameBinding = emfDataBindingContext.bindValue(
            SWTObservables.observeDelayedValue(500, SWTObservables.observeText(documentNameText, SWT.Modify)),
            nameObserved, targetToModel, null);

    decorationSupport = ControlDecorationSupport.create(nameBinding, SWT.LEFT);

    nameObserved.addValueChangeListener(new IValueChangeListener() {
        @Override
        public void handleValueChange(ValueChangeEvent event) {
            if (documentListViewer != null && !documentListViewer.getList().isDisposed()) {
                documentListViewer.refresh();
            }
        }
    });

    IObservableValue descriptionObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.ELEMENT__DOCUMENTATION)
            .observeDetail(documentSelected);
    emfDataBindingContext.bindValue(SWTObservables.observeDelayedValue(500,
            SWTObservables.observeText(documentDescriptionText, SWT.Modify)), descriptionObserved);

    IObservableValue internalTypeObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.DOCUMENT__IS_INTERNAL)
            .observeDetail(documentSelected);
    emfDataBindingContext.bindValue(SWTObservables.observeSelection(internalCheckbox), internalTypeObserved);

    IObservableValue documentInternalIDObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.DOCUMENT__DEFAULT_VALUE_ID_OF_DOCUMENT_STORE)
            .observeDetail(documentSelected);
    emfDataBindingContext.bindValue(
            SWTObservables.observeDelayedValue(500, SWTObservables.observeText(documentTextId, SWT.Modify)),
            documentInternalIDObserved);

    IObservableValue externalTypeObserved = EMFEditProperties
            .value(getEditingDomain(), ProcessPackage.Literals.DOCUMENT__IS_INTERNAL)
            .observeDetail(documentSelected);
    emfDataBindingContext.bindValue(SWTObservables.observeSelection(externalCheckbox), externalTypeObserved,
            new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return super.convert(!(Boolean) value);
                }
            }, new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return super.convert(!(Boolean) value);
                }
            });

    emfDataBindingContext.bindValue(SWTObservables.observeEnabled(documentUrlViewer.getTextControl()),
            externalTypeObserved, new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return super.convert(!(Boolean) value);
                }
            }, new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return super.convert(!(Boolean) value);
                }
            });
    emfDataBindingContext.bindValue(SWTObservables.observeEnabled(documentUrlViewer.getButtonControl()),
            externalTypeObserved, new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return super.convert(!(Boolean) value);
                }
            }, new UpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    return super.convert(!(Boolean) value);
                }
            });

    emfDataBindingContext.bindValue(SWTObservables.observeEnabled(documentTextId), internalTypeObserved);
    emfDataBindingContext.bindValue(SWTObservables.observeEnabled(browseButton), internalTypeObserved);
}

From source file:org.bonitasoft.studio.properties.sections.general.TransitionCondition.java

License:Open Source License

private void refreshBindings() {
    if (conditionSection != null && !conditionSection.isDisposed()) {
        if (dataBindingContext != null) {
            dataBindingContext.dispose();
        }/*  w ww.j a  v  a2 s  .c  o  m*/

        IConverter conditionConverter = new Converter(Boolean.class, Boolean.class) {

            @Override
            public Object convert(Object fromObject) {
                if (transition != null && transition.getSource() instanceof CatchLinkEvent) {
                    return false;
                }

                return !(Boolean) fromObject;
            }
        };

        IConverter defaultConverter = new Converter(Boolean.class, Boolean.class) {

            @Override
            public Object convert(Object fromObject) {
                if (transition != null && transition.getSource() instanceof CatchLinkEvent) {
                    return false;
                } else {
                    SourceElement elem = transition.getSource();
                    boolean alreadyExistDefault = false;
                    for (Connection c : elem.getOutgoing()) {
                        if (c instanceof SequenceFlow) {
                            if (((SequenceFlow) c).isIsDefault() && !c.equals(transition)) {
                                alreadyExistDefault = true;
                            }
                        }
                    }
                    if (alreadyExistDefault) {
                        return false;
                    } else {
                        return true;
                    }
                }

            }
        };

        final UpdateValueStrategy useExpressionTargetToModel = new UpdateValueStrategy();
        useExpressionTargetToModel.setConverter(new Converter(Boolean.class, SequenceFlowConditionType.class) {

            @Override
            public Object convert(Object fromObject) {
                if ((Boolean) fromObject) {
                    return SequenceFlowConditionType.EXPRESSION;
                } else {
                    return SequenceFlowConditionType.DECISION_TABLE;
                }
            }
        });

        final UpdateValueStrategy useDescisionTargetToModel = new UpdateValueStrategy();
        useDescisionTargetToModel.setConverter(new Converter(Boolean.class, SequenceFlowConditionType.class) {

            @Override
            public Object convert(Object fromObject) {
                if ((Boolean) fromObject) {
                    return SequenceFlowConditionType.DECISION_TABLE;
                } else {
                    return SequenceFlowConditionType.EXPRESSION;
                }
            }
        });

        final UpdateValueStrategy useExpressionModelToTarget = new UpdateValueStrategy();
        useExpressionModelToTarget.setConverter(new Converter(SequenceFlowConditionType.class, Boolean.class) {

            @Override
            public Object convert(Object fromObject) {
                if (fromObject == SequenceFlowConditionType.EXPRESSION) {
                    return true;
                } else {
                    return false;
                }
            }
        });

        final UpdateValueStrategy useDecisionModelToTarget = new UpdateValueStrategy();
        useDecisionModelToTarget.setConverter(new Converter(SequenceFlowConditionType.class, Boolean.class) {

            @Override
            public Object convert(Object fromObject) {
                if (fromObject == SequenceFlowConditionType.DECISION_TABLE) {
                    return true;
                } else {
                    return false;
                }
            }
        });

        dataBindingContext = new EMFDataBindingContext();

        IObservableValue typeValue = EMFEditObservables.observeValue(editingDomain, transition,
                ProcessPackage.Literals.SEQUENCE_FLOW__CONDITION_TYPE);
        typeValue.addValueChangeListener(new IValueChangeListener() {

            @Override
            public void handleValueChange(ValueChangeEvent event) {
                if (conditionSection != null && !conditionSection.isDisposed()) {
                    if (event.diff.getNewValue() == SequenceFlowConditionType.EXPRESSION
                            && (conditionViewer == null || conditionViewer.getControl().isDisposed())) {
                        if (conditionSection.getClient() != null) {
                            conditionSection.getClient().dispose();
                        }
                        conditionSection.setClient(createExpressionComposite(conditionSection, widgetFactory));
                        conditionSection.setExpanded(true);
                    } else if (event.diff.getNewValue() == SequenceFlowConditionType.DECISION_TABLE
                            && (conditionViewer != null && !conditionViewer.getControl().isDisposed())) {
                        if (conditionSection.getClient() != null) {
                            conditionSection.getClient().dispose();
                        }
                        conditionSection
                                .setClient(createDecisionTableComposite(conditionSection, widgetFactory));
                        conditionSection.setExpanded(true);
                    }
                    refreshBindings();
                }
            }
        });

        dataBindingContext.bindValue(SWTObservables.observeSelection(useExpressionCondition), typeValue,
                useExpressionTargetToModel, useExpressionModelToTarget);
        dataBindingContext.bindValue(SWTObservables.observeSelection(useDecisionTable), typeValue,
                useDescisionTargetToModel, useDecisionModelToTarget);

        dataBindingContext.bindValue(SWTObservables.observeSelection(defaultCheckBox), EMFEditObservables
                .observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT));

        dataBindingContext.bindValue(SWTObservables.observeEnabled(defaultCheckBox),
                EMFEditObservables.observeValue(editingDomain, transition,
                        ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),
                new UpdateValueStrategy().setConverter(defaultConverter),
                new UpdateValueStrategy().setConverter(defaultConverter));

        if (conditionViewer != null && !conditionViewer.getControl().isDisposed()) {
            dataBindingContext.bindValue(SWTObservables.observeEnabled(conditionViewer.getTextControl()),
                    EMFEditObservables.observeValue(editingDomain, transition,
                            ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),
                    new UpdateValueStrategy().setConverter(conditionConverter),
                    new UpdateValueStrategy().setConverter(conditionConverter));

            dataBindingContext.bindValue(SWTObservables.observeEnabled(conditionViewer.getToolbar()),
                    EMFEditObservables.observeValue(editingDomain, transition,
                            ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),
                    new UpdateValueStrategy().setConverter(conditionConverter),
                    new UpdateValueStrategy().setConverter(conditionConverter));

            conditionViewer.setEditingDomain(editingDomain);
            dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(conditionViewer),
                    EMFEditProperties.value(editingDomain, ProcessPackage.Literals.SEQUENCE_FLOW__CONDITION)
                            .observe(transition));
            conditionViewer.setInput(transition);

            dataBindingContext.bindValue(SWTObservables.observeSelection(useExpressionCondition),
                    SWTObservables.observeEnabled(conditionViewer.getControl()));
        }

        dataBindingContext.bindValue(SWTObservables.observeEnabled(useExpressionCondition),
                EMFEditObservables.observeValue(editingDomain, transition,
                        ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),
                new UpdateValueStrategy().setConverter(conditionConverter),
                new UpdateValueStrategy().setConverter(conditionConverter));

        dataBindingContext.bindValue(SWTObservables.observeEnabled(useDecisionTable),
                EMFEditObservables.observeValue(editingDomain, transition,
                        ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),
                new UpdateValueStrategy().setConverter(conditionConverter),
                new UpdateValueStrategy().setConverter(conditionConverter));

        if (updateTableButton != null && !updateTableButton.isDisposed()) {
            dataBindingContext.bindValue(SWTObservables.observeEnabled(updateTableButton),
                    EMFEditObservables.observeValue(editingDomain, transition,
                            ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),
                    new UpdateValueStrategy().setConverter(conditionConverter),
                    new UpdateValueStrategy().setConverter(conditionConverter));

        }
    }
}

From source file:org.bonitasoft.studio.properties.sections.general.TransitionConditionContribution.java

License:Open Source License

private void refreshBindings() {
    if (conditionSection != null && !conditionSection.isDisposed()) {
        if (dataBindingContext != null) {
            dataBindingContext.dispose();
        }//from  ww w.ja v  a  2s. c o m

        final IConverter conditionConverter = new Converter(Boolean.class, Boolean.class) {

            @Override
            public Object convert(final Object fromObject) {
                if (transition != null && transition.getSource() instanceof CatchLinkEvent) {
                    return false;
                }

                return !(Boolean) fromObject;
            }
        };

        final IConverter defaultConverter = new Converter(Boolean.class, Boolean.class) {

            @Override
            public Object convert(final Object fromObject) {
                if (transition != null && transition.getSource() instanceof CatchLinkEvent) {
                    return false;
                } else {
                    final SourceElement elem = transition.getSource();
                    boolean alreadyExistDefault = false;
                    for (final Connection c : elem.getOutgoing()) {
                        if (c instanceof SequenceFlow) {
                            if (((SequenceFlow) c).isIsDefault() && !c.equals(transition)) {
                                alreadyExistDefault = true;
                            }
                        }
                    }
                    if (alreadyExistDefault) {
                        return false;
                    } else {
                        return true;
                    }
                }

            }
        };

        final UpdateValueStrategy useExpressionTargetToModel = new UpdateValueStrategy();
        useExpressionTargetToModel.setConverter(new Converter(Boolean.class, SequenceFlowConditionType.class) {

            @Override
            public Object convert(final Object fromObject) {
                if ((Boolean) fromObject) {
                    return SequenceFlowConditionType.EXPRESSION;
                } else {
                    return SequenceFlowConditionType.DECISION_TABLE;
                }
            }
        });

        final UpdateValueStrategy useDescisionTargetToModel = new UpdateValueStrategy();
        useDescisionTargetToModel.setConverter(new Converter(Boolean.class, SequenceFlowConditionType.class) {

            @Override
            public Object convert(final Object fromObject) {
                if ((Boolean) fromObject) {
                    return SequenceFlowConditionType.DECISION_TABLE;
                } else {
                    return SequenceFlowConditionType.EXPRESSION;
                }
            }
        });

        final UpdateValueStrategy useExpressionModelToTarget = new UpdateValueStrategy();
        useExpressionModelToTarget.setConverter(new Converter(SequenceFlowConditionType.class, Boolean.class) {

            @Override
            public Object convert(final Object fromObject) {
                if (fromObject == SequenceFlowConditionType.EXPRESSION) {
                    return true;
                } else {
                    return false;
                }
            }
        });

        final UpdateValueStrategy useDecisionModelToTarget = new UpdateValueStrategy();
        useDecisionModelToTarget.setConverter(new Converter(SequenceFlowConditionType.class, Boolean.class) {

            @Override
            public Object convert(final Object fromObject) {
                return fromObject == SequenceFlowConditionType.DECISION_TABLE;
            }
        });

        dataBindingContext = new EMFDataBindingContext();

        final IObservableValue typeValue = EMFEditObservables.observeValue(editingDomain, transition,
                ProcessPackage.Literals.SEQUENCE_FLOW__CONDITION_TYPE);
        typeValue.addValueChangeListener(new IValueChangeListener() {

            @Override
            public void handleValueChange(final ValueChangeEvent event) {
                if (conditionSection != null && !conditionSection.isDisposed()) {
                    if (event.diff.getNewValue() == SequenceFlowConditionType.EXPRESSION
                            && (conditionViewer == null || conditionViewer.getControl().isDisposed())) {
                        if (conditionSection.getClient() != null) {
                            conditionSection.getClient().dispose();
                        }
                        conditionSection.setClient(createExpressionComposite(conditionSection, widgetFactory));
                        conditionSection.setExpanded(true);
                    } else if (event.diff.getNewValue() == SequenceFlowConditionType.DECISION_TABLE
                            && conditionViewer != null && !conditionViewer.getControl().isDisposed()) {
                        if (conditionSection.getClient() != null) {
                            conditionSection.getClient().dispose();
                        }
                        conditionSection
                                .setClient(createDecisionTableComposite(conditionSection, widgetFactory));
                        conditionSection.setExpanded(true);
                    }
                    refreshBindings();
                }
            }
        });

        dataBindingContext.bindValue(SWTObservables.observeSelection(useExpressionCondition), typeValue,
                useExpressionTargetToModel, useExpressionModelToTarget);
        dataBindingContext.bindValue(SWTObservables.observeSelection(useDecisionTable), typeValue,
                useDescisionTargetToModel, useDecisionModelToTarget);

        dataBindingContext.bindValue(SWTObservables.observeSelection(defaultCheckBox), EMFEditObservables
                .observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT));

        dataBindingContext.bindValue(SWTObservables.observeEnabled(defaultCheckBox),
                EMFEditObservables.observeValue(editingDomain, transition,
                        ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),
                new UpdateValueStrategy().setConverter(defaultConverter),
                new UpdateValueStrategy().setConverter(defaultConverter));

        if (conditionViewer != null && !conditionViewer.getControl().isDisposed()) {
            dataBindingContext.bindValue(SWTObservables.observeEnabled(conditionViewer.getControl()),
                    EMFEditObservables.observeValue(editingDomain, transition,
                            ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),
                    new UpdateValueStrategy().setConverter(conditionConverter),
                    new UpdateValueStrategy().setConverter(conditionConverter));

            //                dataBindingContext.bindValue(SWTObservables.observeEnabled(conditionViewer.getToolbar()),
            //                        EMFEditObservables.observeValue(editingDomain, transition, ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),new UpdateValueStrategy().setConverter(conditionConverter),new UpdateValueStrategy().setConverter(conditionConverter));

            conditionViewer.setEditingDomain(editingDomain);
            dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(conditionViewer),
                    EMFEditProperties.value(editingDomain, ProcessPackage.Literals.SEQUENCE_FLOW__CONDITION)
                            .observe(transition));
            conditionViewer.setInput(transition);

            dataBindingContext.bindValue(SWTObservables.observeSelection(useExpressionCondition),
                    SWTObservables.observeEnabled(conditionViewer.getControl()));
        }

        dataBindingContext.bindValue(SWTObservables.observeEnabled(useExpressionCondition),
                EMFEditObservables.observeValue(editingDomain, transition,
                        ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),
                new UpdateValueStrategy().setConverter(conditionConverter),
                new UpdateValueStrategy().setConverter(conditionConverter));

        dataBindingContext.bindValue(SWTObservables.observeEnabled(useDecisionTable),
                EMFEditObservables.observeValue(editingDomain, transition,
                        ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),
                new UpdateValueStrategy().setConverter(conditionConverter),
                new UpdateValueStrategy().setConverter(conditionConverter));

        if (updateTableButton != null && !updateTableButton.isDisposed()) {
            dataBindingContext.bindValue(SWTObservables.observeEnabled(updateTableButton),
                    EMFEditObservables.observeValue(editingDomain, transition,
                            ProcessPackage.Literals.SEQUENCE_FLOW__IS_DEFAULT),
                    new UpdateValueStrategy().setConverter(conditionConverter),
                    new UpdateValueStrategy().setConverter(conditionConverter));

        }
    }
}

From source file:org.bonitasoft.studio.properties.sections.message.wizards.AddMessageEventWizardPage.java

License:Open Source License

private void createcorrelationComposite(Composite composite) {
    composite.setLayout(GridLayoutFactory.fillDefaults().margins(5, 10).create());
    composite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    final Label correlationDescriptionLabel = new Label(composite, SWT.NONE | SWT.WRAP);
    correlationDescriptionLabel//w ww  .  java 2  s.c om
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).indent(12, 0).create());
    correlationDescriptionLabel.setText(Messages.correlationDescription);
    final Button useCorrelationCheckbox = new Button(composite, SWT.CHECK);
    useCorrelationCheckbox
            .setLayoutData(GridDataFactory.fillDefaults().grab(false, false).indent(12, 0).create());

    final ControlDecoration correlationHelp = new ControlDecoration(useCorrelationCheckbox,
            SWT.LEFT | SWT.CENTER);
    correlationHelp
            .setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_INFO_TSK));
    correlationHelp.setDescriptionText(Messages.correlationKeyHelp);

    useCorrelationCheckbox.setText(Messages.useCorrelationkeys);
    useCorrelationCheckbox.setSelection(false);
    useCorrelationCheckbox.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            super.widgetSelected(e);
            if (!useCorrelationCheckbox.getSelection()) {
                workingCopyMessage.getCorrelation().setCorrelationType(CorrelationTypeActive.INACTIVE);
            } else {
                workingCopyMessage.getCorrelation().setCorrelationType(CorrelationTypeActive.KEYS);
                updateValidationStatus(AddMessageEventWizardPage.this.hasAtLeastOneCorrelation(
                        workingCopyMessage.getCorrelation().getCorrelationAssociation()));
            }
        }
    });
    if (CorrelationTypeActive.KEYS.equals(workingCopyMessage.getCorrelation().getCorrelationType())) {
        useCorrelationCheckbox.setSelection(true);
        updateValidationStatus(AddMessageEventWizardPage.this
                .hasAtLeastOneCorrelation(workingCopyMessage.getCorrelation().getCorrelationAssociation()));
    } else {
        useCorrelationCheckbox.setSelection(false);
    }

    final Composite correlationComposite = new Composite(composite, SWT.NONE);
    correlationComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    correlationComposite.setLayout(GridLayoutFactory.fillDefaults().create());

    final List<String> captions = new ArrayList<String>(2);
    captions.add(Messages.correlationKey);
    captions.add(Messages.correlationValue);

    final ExpressionCollectionViewer ecv = new ExpressionCollectionViewer(correlationComposite, 5, false, 2,
            true, captions, false, true);
    ecv.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 140).create());

    ecv.setAddRowLabel(Messages.AddCorrelation);
    ecv.setRemoveRowLabel(Messages.removeCorrelation);
    final List<ViewerFilter> filters = new ArrayList<ViewerFilter>(2);
    filters.add(new AvailableExpressionTypeFilter(new String[] { ExpressionConstants.CONSTANT_TYPE }));
    filters.add(new AvailableExpressionTypeFilter(
            new String[] { ExpressionConstants.CONSTANT_TYPE, ExpressionConstants.PARAMETER_TYPE,
                    ExpressionConstants.SCRIPT_TYPE, ExpressionConstants.VARIABLE_TYPE })); // Second column has
    // everything except
    // Form field and
    // simulation type
    ecv.setViewerFilters(filters);
    ecv.setInput(element);

    final TableExpression correlationAssociation = getCorrelationTable();
    ecv.setSelection(correlationAssociation);
    ecv.addModifyListener(new Listener() {
        @Override
        public void handleEvent(Event event) {
            IStatus status = AddMessageEventWizardPage.this.validateId(
                    workingCopyMessage.getCorrelation().getCorrelationAssociation(), Messages.correlation);
            updateValidationStatus(status);
        }
    });

    final ISWTObservableValue observeSelectionUseCorrelation = SWTObservables
            .observeSelection(useCorrelationCheckbox);
    databindingContext.bindValue(SWTObservables.observeEnabled(ecv.getViewer().getControl()),
            observeSelectionUseCorrelation);
    databindingContext.bindValue(SWTObservables.observeEnabled(ecv.getAddRowButton()),
            observeSelectionUseCorrelation);
    databindingContext.bindValue(SWTObservables.observeEnabled(ecv.getRemoveRowButton()),
            observeSelectionUseCorrelation);
}