Example usage for org.eclipse.jface.databinding.viewers ViewerProperties singleSelection

List of usage examples for org.eclipse.jface.databinding.viewers ViewerProperties singleSelection

Introduction

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

Prototype

public static IViewerValueProperty singleSelection() 

Source Link

Document

Returns a value property for observing the single selection of a ISelectionProvider .

Usage

From source file:gov.redhawk.ui.port.nxmblocks.FftNxmBlockControls.java

License:Open Source License

private void initDataBindings() {
    Binding bindingValue;/*from  w  w w .j a  v  a  2 s .  co  m*/

    IObservableValue fftSizeWidgetValue = WidgetProperties.selection()
            .observe(this.transformSizeField.getCombo());
    IObservableValue fftSizeModelValue = PojoProperties.value(FftNxmBlockSettings.PROP_TRANSFORM_SIZE)
            .observe(this.settings);
    UpdateValueStrategy fftSizeTargetToModel = new UpdateValueStrategy();
    fftSizeTargetToModel
            .setAfterConvertValidator(new FftSizeValidator(FftNxmBlockControls.FFT_SIZE_FIELD_NAME, 2));
    bindingValue = dataBindingCtx.bindValue(fftSizeWidgetValue, fftSizeModelValue, fftSizeTargetToModel, null);
    ControlDecorationSupport.create(bindingValue, SWT.TOP | SWT.LEFT);

    IObservableValue overlapWidgetValue = WidgetProperties.text(SWT.Modify).observe(this.overlapField);
    IObservableValue overlapModelValue = PojoProperties.value(FftNxmBlockSettings.PROP_OVERLAP)
            .observe(this.settings);
    UpdateValueStrategy overlapTargetToModel = new UpdateValueStrategy();
    overlapTargetToModel.setAfterConvertValidator(
            new NumberRangeValidator<Integer>(FftNxmBlockControls.OVERLAP_FIELD_NAME, Integer.class, 0, 100));
    bindingValue = dataBindingCtx.bindValue(overlapWidgetValue, overlapModelValue, overlapTargetToModel, null);
    ControlDecorationSupport.create(bindingValue, SWT.TOP | SWT.LEFT);

    IObservableValue numAvgWidgetValue = WidgetProperties.text(SWT.Modify).observe(this.numAveragesField);
    IObservableValue numAvgModelValue = PojoProperties.value(FftNxmBlockSettings.PROP_NUM_AVERAGES)
            .observe(this.settings);
    UpdateValueStrategy numAvgTargetToModel = new UpdateValueStrategy();
    numAvgTargetToModel.setAfterConvertValidator(new NumberRangeValidator<Integer>(
            FftNxmBlockControls.NUM_AVERAGES_FIELD_NAME, Integer.class, 0, false));
    bindingValue = dataBindingCtx.bindValue(numAvgWidgetValue, numAvgModelValue, numAvgTargetToModel, null);
    ControlDecorationSupport.create(bindingValue, SWT.TOP | SWT.LEFT);

    IObservableValue numExpAvgWidgetValue = WidgetProperties.text(SWT.Modify)
            .observe(this.slidingNumAveragesField);
    IObservableValue numExpAvgModelValue = PojoProperties.value(FftNxmBlockSettings.PROP_SLIDING_NUM_AVERAGES)
            .observe(this.settings);
    UpdateValueStrategy numExpAvgTargetToModel = new UpdateValueStrategy();
    numAvgTargetToModel.setAfterConvertValidator(new NumberRangeValidator<Integer>(
            FftNxmBlockControls.SLIDING_NUM_AVERAGES_FIELD_NAME, Integer.class, 0, false));
    bindingValue = dataBindingCtx.bindValue(numExpAvgWidgetValue, numExpAvgModelValue, numExpAvgTargetToModel,
            null);
    ControlDecorationSupport.create(bindingValue, SWT.TOP | SWT.LEFT);

    IObservableValue outputTypeWidgetValue = ViewerProperties.singleSelection().observe(this.fftType);
    IObservableValue outputTypeModelValue = PojoProperties.value(FftNxmBlockSettings.PROP_OUTPUT_TYPE)
            .observe(this.settings);
    bindingValue = dataBindingCtx.bindValue(outputTypeWidgetValue, outputTypeModelValue);
    ControlDecorationSupport.create(bindingValue, SWT.TOP | SWT.LEFT);

    IObservableValue windowWidgetValue = ViewerProperties.singleSelection().observe(this.fftWindow);
    IObservableValue windowModelValue = PojoProperties.value(FftNxmBlockSettings.PROP_WINDOW_TYPE)
            .observe(this.settings);
    bindingValue = dataBindingCtx.bindValue(windowWidgetValue, windowModelValue);
    ControlDecorationSupport.create(bindingValue, SWT.TOP | SWT.LEFT);
}

From source file:gov.redhawk.ui.port.nxmblocks.SddsNxmBlockControls.java

License:Open Source License

protected void addDataBindings() {
    IObservableValue boTargetObservableValue = ViewerProperties.singleSelection()
            .observe(this.dataByteOrderField);
    IObservableValue boModelObservableValue = PojoProperties.value(SddsNxmBlockSettings.PROP_DATA_BYTE_ORDER)
            .observe(this.settings);
    dataBindingCtx.bindValue(boTargetObservableValue, boModelObservableValue);
}

From source file:madcow.magic.ui.application.MagicApplicationGUI.java

License:Open Source License

/**
 * @param dbc/*  w  ww  . ja v a 2s. c om*/
 * @param cardSelection
 * @param collCardSelection 
 */
private void initCardInfoEnumBinding(EMFDataBindingContext dbc, IObservableValue cardSelection) {
    UpdateValueStrategy updateEnumStrategy = new UpdateValueStrategy(true, UpdateValueStrategy.POLICY_UPDATE);
    updateEnumStrategy
            .setConverter(new RarityTypeToEEnumLiteralConverter(RarityType.class, EEnumLiteral.class));
    UpdateValueStrategy requestEnumStrategy = new UpdateValueStrategy(true,
            UpdateValueStrategy.POLICY_ON_REQUEST);
    requestEnumStrategy
            .setConverter(new EEnumLiteralToRarityTypeConverter(EEnumLiteral.class, RarityType.class));

    IValueProperty raritySelection = ViewerProperties.singleSelection();
    IEMFValueProperty pRarity = EMFProperties.value(CardPackage.Literals.CARD__RARITY);
    dbc.bindValue(raritySelection.observe(rarityViewer), pRarity.observeDetail(cardSelection),
            requestEnumStrategy, updateEnumStrategy);

    IEMFListProperty pExpansionList = EMFProperties.multiList(CardPackage.Literals.CARD__REPRINTS,
            CardPackage.Literals.CARD__ORIGINAL_CARD);
    IObservableList sets = pExpansionList.observeDetail(cardSelection);
    IEMFValueProperty pExpansionName = EMFProperties.value(FeaturePath.fromList(CardPackage.Literals.CARD__SET,
            DatabasePackage.Literals.MAGIC_DB_ELEMENT__NAME));
    ViewerSupport.bind(otherSetsViewer, sets, pExpansionName);

}

From source file:org.bonitasoft.studio.businessobject.ui.wizard.editingsupport.QueryParameterTypeEditingSupport.java

License:Open Source License

@Override
protected IObservableValue doCreateCellEditorObservable(final CellEditor cellEditor) {
    final IValueProperty cellEditorProperty = new CellEditorViewerProperties()
            .value(ViewerProperties.singleSelection());
    return cellEditorProperty.observe(cellEditor);
}

From source file:org.bonitasoft.studio.expression.editor.operation.OperationViewer.java

License:Open Source License

public void refreshDatabinding() {
    final Operation action = getOperation();
    if (action != null) {
        actionExpression.setExternalDataBindingContext(context);
        storageViewer.setExternalDataBindingContext(context);
        if (actionExpressionProvider != null) {
            actionExpression.setExpressionNatureProvider(actionExpressionProvider);
        }//from  w  w w. j  a v a2s  .co  m
        actionExpression.setInput(getEObject());
        if (storageExpressionProvider != null) {
            storageViewer.setExpressionNatureProvider(storageExpressionProvider);
        }
        if (eObjectContext != null) {
            storageViewer.setContext(eObjectContext);
        }
        storageViewer.setInput(action);

        Expression actionExp = action.getRightOperand();
        if (actionExp == null) {
            actionExp = ExpressionFactory.eINSTANCE.createExpression();
            if (actionExpressionFilter instanceof AvailableExpressionTypeFilter) {
                if (!((AvailableExpressionTypeFilter) actionExpressionFilter).getContentTypes()
                        .contains(ExpressionConstants.CONSTANT_TYPE)) {
                    if (!((AvailableExpressionTypeFilter) actionExpressionFilter).getContentTypes().isEmpty()) {
                        actionExp.setType(((AvailableExpressionTypeFilter) actionExpressionFilter)
                                .getContentTypes().iterator().next());
                    }
                }
            }
            if (editingDomain != null) {
                editingDomain.getCommandStack().execute(SetCommand.create(editingDomain, action,
                        ExpressionPackage.Literals.OPERATION__RIGHT_OPERAND, actionExp));
            } else {
                action.setRightOperand(actionExp);
            }
        }
        Expression storageExp = action.getLeftOperand();
        if (storageExp == null) {
            storageExp = ExpressionFactory.eINSTANCE.createExpression();
            if (editingDomain != null) {
                editingDomain.getCommandStack().execute(SetCommand.create(editingDomain, action,
                        ExpressionPackage.Literals.OPERATION__LEFT_OPERAND, storageExp));
            } else {
                action.setLeftOperand(storageExp);
            }
        }

        operationReturnTypeValidator.setDataExpression(action.getLeftOperand());
        operationReturnTypeValidator.setInputExpression(action.getRightOperand());

        IObservableValue leftOperandObservableValue = EMFEditObservables.observeValue(editingDomain, action,
                ExpressionPackage.Literals.OPERATION__LEFT_OPERAND);
        UpdateValueStrategy targetToModel = new UpdateValueStrategy();
        targetToModel.setConverter(new Converter(Expression.class, Expression.class) {

            @Override
            public Object convert(Object from) {
                if (from != null) {
                    Expression copy = EcoreUtil.copy((Expression) from);
                    operationReturnTypeValidator.setDataExpression(copy);
                    return copy;
                }
                return null;
            }
        });
        context.bindValue(ViewersObservables.observeSingleSelection(storageViewer), leftOperandObservableValue,
                targetToModel, null);

        actionExpression.addExpressionValidator(ExpressionConstants.ALL_TYPES, operationReturnTypeValidator);
        IObservableValue actionExpressionObservableValue = EMFEditProperties
                .value(editingDomain, ExpressionPackage.Literals.OPERATION__RIGHT_OPERAND).observe(action);
        IObservableValue returnTypeExpressionObservableValue = EMFEditProperties
                .value(editingDomain, ExpressionPackage.Literals.EXPRESSION__RETURN_TYPE)
                .observe(action.getRightOperand());
        context.bindValue(ViewerProperties.singleSelection().observe(actionExpression),
                actionExpressionObservableValue);

        returnTypeExpressionObservableValue.addValueChangeListener(new IValueChangeListener() {

            @Override
            public void handleValueChange(ValueChangeEvent event) {
                actionExpression.validate();
            }
        });

        operatorLink.setText("<A>" + labelProvider.getText(action.getOperator()) + "</A>");
        if (!action.getOperator().getType().equals(ExpressionConstants.ASSIGNMENT_OPERATOR)
                && action.getOperator().getExpression() != null
                && !action.getOperator().getExpression().isEmpty()) {
            operatorTooltip.setText(action.getOperator().getExpression());
        }

        IObservableValue value = EMFEditObservables.observeValue(editingDomain, actionExp,
                ExpressionPackage.Literals.EXPRESSION__RETURN_TYPE);
        value.addChangeListener(new IChangeListener() {

            @Override
            public void handleChange(ChangeEvent arg0) {
                actionExpression.validate();
            }
        });

        storageViewer.addSelectionChangedListener(new ISelectionChangedListener() {

            @Override
            public void selectionChanged(SelectionChangedEvent event) {
                Expression selectedExpression = (Expression) ((IStructuredSelection) event.getSelection())
                        .getFirstElement();
                if (selectedExpression != null) {
                    Operator operator = action.getOperator();
                    if (operator.getType() == null) {
                        if (editingDomain == null) {
                            operator.setType(ExpressionConstants.ASSIGNMENT_OPERATOR);
                        } else {
                            editingDomain.getCommandStack()
                                    .execute(SetCommand.create(editingDomain, operator,
                                            ExpressionPackage.Literals.OPERATOR__TYPE,
                                            ExpressionConstants.ASSIGNMENT_OPERATOR));
                        }
                    }
                    final OperatorLabelProvider labelProvider = new OperatorLabelProvider();
                    operatorLink.setText("<A>" + labelProvider.getText(action.getOperator()) + "</A>");
                    if (!action.getOperator().getType().equals(ExpressionConstants.ASSIGNMENT_OPERATOR)
                            && action.getOperator().getExpression() != null
                            && !action.getOperator().getExpression().isEmpty()) {
                        operatorTooltip.setText(action.getOperator().getExpression());
                    }
                    operationReturnTypeValidator.setDataExpression(action.getLeftOperand());
                    updateRightOperandReturnType(action);
                    actionExpression.validate();
                    operatorLink.getParent().layout(true, true);
                }
            }
        });
    }
}

From source file:org.bonitasoft.studio.expression.editor.viewer.ExpressionViewer.java

License:Open Source License

protected void bindExpression() {
    if (expressionBinding != null && externalDataBindingContext != null) {
        externalDataBindingContext.removeBinding(expressionBinding);
        expressionBinding.dispose();//from   ww w .  j a v  a 2s. c o  m
    }
    if (internalDataBindingContext != null) {
        internalDataBindingContext.dispose();
    }
    internalDataBindingContext = new EMFDataBindingContext();

    IObservableValue nameObservable = null;
    if (editingDomain != null) {
        nameObservable = EMFEditProperties.value(editingDomain, ExpressionPackage.Literals.EXPRESSION__NAME)
                .observeDetail(ViewerProperties.singleSelection().observe(this));
    } else {
        nameObservable = EMFProperties.value(ExpressionPackage.Literals.EXPRESSION__NAME)
                .observeDetail(ViewerProperties.singleSelection().observe(this));
    }

    IObservableValue typeObservable = null;
    if (editingDomain != null) {
        typeObservable = EMFEditProperties.value(editingDomain, ExpressionPackage.Literals.EXPRESSION__TYPE)
                .observeDetail(ViewerProperties.singleSelection().observe(this));
    } else {
        typeObservable = EMFProperties.value(ExpressionPackage.Literals.EXPRESSION__TYPE)
                .observeDetail(ViewerProperties.singleSelection().observe(this));
    }

    UpdateValueStrategy targetToModelNameStrategy = new UpdateValueStrategy();
    if (mandatoryFieldName != null) {
        targetToModelNameStrategy.setBeforeSetValidator(new EmptyInputValidator(mandatoryFieldName));
    }
    targetToModelNameStrategy.setAfterConvertValidator(new IValidator() {

        @Override
        public IStatus validate(Object value) {
            IExpressionValidator validator = null;
            if (selectedExpression != null) {
                validator = validatorsForType.get(selectedExpression.getType());
            }
            if (validator == null) {
                validator = validatorsForType.get(ExpressionConstants.ALL_TYPES);
            }
            if (validator != null) {
                validator.setDomain(editingDomain);
                validator.setContext(context);
                if (selectedExpression != null) {
                    validator.setInputExpression(selectedExpression);
                }
                setMessage(null, IStatus.OK);
                final IStatus status = validator.validate(value);
                if (status.isOK()) {
                    setMessage(null, status.getSeverity());
                } else {
                    String message = status.getMessage();
                    if (status instanceof MultiStatus) {
                        StringBuilder sb = new StringBuilder();
                        for (IStatus statusChild : status.getChildren()) {
                            sb.append(statusChild.getMessage());
                            sb.append("\n");
                        }
                        if (sb.length() > 0) {
                            sb.delete(sb.length() - 1, sb.length());
                        }
                        message = sb.toString();
                    }
                    setMessage(message, status.getSeverity());
                }
                return status;
            } else {
                setMessage(null, IStatus.OK);
            }
            return ValidationStatus.ok();
        }
    });
    targetToModelNameStrategy.setConverter(getNameConverter());

    final ISWTObservableValue observeDelayedValue = SWTObservables.observeDelayedValue(500,
            SWTObservables.observeText(textControl, SWT.Modify));
    expressionBinding = internalDataBindingContext.bindValue(observeDelayedValue, nameObservable,
            targetToModelNameStrategy, null);

    expressionBinding.getValidationStatus().addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(ValueChangeEvent event) {
            IStatus status = (IStatus) event.diff.getNewValue();
            fireValidationStatusChanged(status.getSeverity());
        }
    });

    bindEditableText(typeObservable);
    nameObservable.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(ValueChangeEvent arg0) {
            fireSelectionChanged(new SelectionChangedEvent(ExpressionViewer.this, getSelection()));
        }
    });
    if (externalDataBindingContext != null) {
        externalDataBindingContext.addBinding(expressionBinding);
    }
}

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

License:Open Source License

protected void updateViewerInput() {
    if (defaultExpressionViewer != null && !defaultExpressionViewer.getControl().isDisposed()) {

        if (dataBindingContext != null) {
            dataBindingContext.dispose();
        }/*  www.  j a v a 2s.  c o  m*/
        dataBindingContext = new EMFDataBindingContext();

        Expression input = widget.getDefaultExpression();
        if (input == null) {
            input = ExpressionFactory.eINSTANCE.createExpression();
            editingDomain.getCommandStack().execute(SetCommand.create(editingDomain, widget,
                    FormPackage.Literals.MULTIPLE_VALUATED_FORM_FIELD__DEFAULT_EXPRESSION, input));
        }
        defaultExpressionViewer.setInput(widget);
        dataBindingContext.bindValue(ViewerProperties.singleSelection().observe(defaultExpressionViewer),
                EMFEditProperties
                        .value(editingDomain,
                                FormPackage.Literals.MULTIPLE_VALUATED_FORM_FIELD__DEFAULT_EXPRESSION)
                        .observe(widget));
        defaultExpressionViewer.setEditingDomain(editingDomain);

    }
}

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));
        }//from   ww w  .j  a  va 2s  .  co m
    }
    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));
        }//from w w w  . j a  va2 s  .  co 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 . ja 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();
    }
}