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:gov.redhawk.prf.internal.ui.editor.detailspart.StructSequencePropertyDetailsPage.java

License:Open Source License

/**
 * {@inheritDoc}// ww w .  j av a 2 s  .co m
 */
@Override
protected List<Binding> bind(final DataBindingContext context, final EObject input) {
    final List<Binding> bindings = super.bind(context, input);
    this.sequence = (StructSequence) input;

    this.structSequenceComposite.getStructValueViewer().setInput(this.sequence);
    final IObservableValue target = SWTObservables.observeEnabled(this.structSequenceComposite.getAddButton());

    final IEMFListProperty property = EMFProperties.list(FeaturePath
            .fromList(PrfPackage.Literals.STRUCT_SEQUENCE__STRUCT, PrfPackage.Literals.STRUCT__SIMPLE));
    final IObservableList list = property.observe(this.sequence);

    final IObservableValue value = new ComputedValue() {
        @Override
        protected Object calculate() {
            return list.isEmpty();
        }
    };
    //Only enable the button if the list isn't empty
    bindings.add(context.bindValue(target, value, null, new UpdateValueStrategy() {
        @Override
        public Object convert(final Object value) {
            return !((Boolean) value);

        }
    }));

    return bindings;
}

From source file:net.sf.rcer.conn.ui.login.LoginDialog.java

License:Open Source License

/**
 * Connects the UI elements to the model elements. 
 *//*from w ww . j  a  va 2 s  .  co  m*/
private void bindUserInterface() {

    // set the values of the locales combo
    final Collection<Locale> locales = LocaleRegistry.getInstance().getLocales();
    final Iterator<Locale> it = locales.iterator();
    final LocaleToStringConverter converter = new LocaleToStringConverter(true);
    String[] entries = new String[locales.size() + 1];
    for (int i = 0; i < locales.size(); i++) {
        entries[i] = (String) converter.convert(it.next());
    }
    entries[locales.size()] = ""; //$NON-NLS-1$
    localeCombo.setItems(entries);

    context = new DataBindingContext();

    // observe changes in the selection of the connection combo
    IObservableValue selection = ViewersObservables.observeSingleSelection(connectionComboViewer);
    IObservableValue connection = BeansObservables.observeDetailValue(selection, "connection", //$NON-NLS-1$
            IConnection.class);

    // bind the client 
    context.bindValue(SWTObservables.observeText(clientText, SWT.Modify),
            BeansObservables.observeDetailValue(connection, "client", String.class), //$NON-NLS-1$
            new UpdateValueStrategy(), new UpdateValueStrategy());
    context.bindValue(SWTObservables.observeEnabled(clientText),
            BeansObservables.observeDetailValue(connection, "clientEditable", boolean.class), //$NON-NLS-1$
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy());

    // bind the user name
    context.bindValue(SWTObservables.observeText(userText, SWT.Modify),
            BeansObservables.observeDetailValue(connection, "userName", String.class), //$NON-NLS-1$
            new UpdateValueStrategy(), new UpdateValueStrategy());
    context.bindValue(SWTObservables.observeEnabled(userText),
            BeansObservables.observeDetailValue(connection, "userEditable", boolean.class), //$NON-NLS-1$
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy());

    // bind the password
    context.bindValue(SWTObservables.observeText(passwordText, SWT.Modify),
            BeansObservables.observeDetailValue(selection, "password", String.class), //$NON-NLS-1$
            new UpdateValueStrategy(), new UpdateValueStrategy());

    // bind the locale 
    context.bindValue(SWTObservables.observeSelection(localeCombo),
            BeansObservables.observeDetailValue(connection, "locale", Locale.class), //$NON-NLS-1$
            new UpdateValueStrategy().setConverter(new LocaleFromStringConverter()),
            new UpdateValueStrategy().setConverter(new LocaleToStringConverter(true)));
    context.bindValue(SWTObservables.observeEnabled(localeCombo),
            BeansObservables.observeDetailValue(connection, "localeEditable", boolean.class), //$NON-NLS-1$
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy());

    // provide the connection list with input data
    connectionComboViewer.setContentProvider(new ObservableListContentProvider());
    connectionComboViewer.setInput(credentials);

    // select the first entry
    connectionComboViewer.setSelection(new StructuredSelection(credentials.get(0)));

    // only enable the combo box if more than one connection can be chosen
    connectionComboViewer.getCombo().setEnabled(credentials.size() > 1);

}

From source file:org.bonitasoft.studio.actors.ui.section.AssignableActorsPropertySection.java

License:Open Source License

@Override
protected void updateDatabinding() {
    super.updateDatabinding();
    actorDefinedInLaneLabel.setText("");
    final Assignable assignable = (Assignable) getEObject();
    if (assignable != null) {

        EObject current = assignable;/*from  w  w w  .  jav  a2  s. c  om*/
        while (current != null && !(current instanceof Lane)) {
            current = current.eContainer();
        }

        useLaneActorButton.setEnabled(current instanceof Lane);
        final IObservableValue value = EMFEditObservables.observeValue(getEditingDomain(), assignable,
                ProcessPackage.Literals.TASK__OVERRIDE_ACTORS_OF_THE_LANE);
        emfDatabindingContext.bindValue(SWTObservables.observeSelection(taskActorButton), value);
        emfDatabindingContext.bindValue(SWTObservables.observeSelection(useLaneActorButton), value,
                new UpdateValueStrategy(),
                new UpdateValueStrategy().setConverter(new Converter(Boolean.class, Boolean.class) {

                    @Override
                    public Object convert(Object from) {
                        return !(Boolean) from;
                    }

                }));
        final UpdateValueStrategy updateValueStrategy = new UpdateValueStrategy()
                .setConverter(new Converter(Boolean.class, Boolean.class) {

                    @Override
                    public Object convert(Object from) {
                        return !(Boolean) from;
                    }

                });
        emfDatabindingContext.bindValue(SWTObservables.observeEnabled(actorComboViewer.getControl()),
                SWTObservables.observeSelection(useLaneActorButton), new UpdateValueStrategy(),
                updateValueStrategy);

        databindactorDefinedInLaneLabel(assignable);

    }
}

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

License:Open Source License

protected void createDescription(final DataBindingContext ctx,
        final IViewerObservableValue viewerObservableValue, final Group descriptionGroup) {
    final Label descriptionLabel = new Label(descriptionGroup, SWT.NONE);
    descriptionLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.TOP).create());
    descriptionLabel.setText(Messages.description);

    final Text descriptionText = new Text(descriptionGroup, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI | SWT.WRAP);
    descriptionText/*from ww w  . ja v a 2s . c o  m*/
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 50).create());
    descriptionText.setEnabled(viewerObservableValue.getValue() != null);

    final IObservableValue observeDetailValue = PojoObservables.observeDetailValue(viewerObservableValue,
            "description", String.class);
    ctx.bindValue(SWTObservables.observeText(descriptionText, SWT.Modify), observeDetailValue);

    final UpdateValueStrategy enableStrategy = new UpdateValueStrategy();
    enableStrategy.setConverter(new Converter(Object.class, Boolean.class) {

        @Override
        public Object convert(final Object fromObject) {
            return fromObject != null;
        }
    });
    ctx.bindValue(SWTObservables.observeEnabled(descriptionText), viewerObservableValue, null, enableStrategy);
}

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

License:Open Source License

protected IViewerObservableValue createListOfBusinessObjects(final Composite mainComposite,
        final DataBindingContext ctx) {
    final Group group = new Group(mainComposite, SWT.NONE);
    group.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).create());
    group.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(5, 5).spacing(5, 0).create());
    group.setText(Messages.listOfBusinessObjects);

    final Composite buttonsComposite = new Composite(group, SWT.NONE);
    buttonsComposite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).indent(0, 20).create());
    buttonsComposite/* w ww . j  a  v  a2s .c o  m*/
            .setLayout(GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 3).create());

    final Button addButton = new Button(buttonsComposite, SWT.FLAT);
    addButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false)
            .minSize(IDialogConstants.BUTTON_WIDTH, SWT.DEFAULT).create());
    addButton.setText(Messages.add);

    final Button deleteButton = new Button(buttonsComposite, SWT.FLAT);
    deleteButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false)
            .minSize(IDialogConstants.BUTTON_WIDTH, SWT.DEFAULT).create());
    deleteButton.setText(Messages.delete);
    deleteButton.setEnabled(false);

    final TableViewer boTableViewer = new TableViewer(group, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
    boTableViewer.getControl()
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(200, SWT.DEFAULT).create());
    boTableViewer.getTable().setLinesVisible(true);
    boTableViewer.getTable().setHeaderVisible(true);
    final TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(1));
    boTableViewer.getTable().setLayout(tableLayout);
    boTableViewer.setContentProvider(new ObservableListContentProvider());

    final IViewerObservableValue observeSingleSelection = ViewersObservables
            .observeSingleSelection(boTableViewer);
    boTableViewer.getColumnViewerEditor()
            .addEditorActivationListener(new ColumnViewerEditorActivationListener() {

                @Override
                public void beforeEditorDeactivated(final ColumnViewerEditorDeactivationEvent event) {

                }

                @Override
                public void beforeEditorActivated(final ColumnViewerEditorActivationEvent event) {

                }

                @Override
                public void afterEditorDeactivated(final ColumnViewerEditorDeactivationEvent event) {
                    final ISelection selection = boTableViewer.getSelection();
                    if (selection != null && ((IStructuredSelection) selection).getFirstElement() != null) {
                        businessObjectDescriptionGroup.setText(NamingUtils.getSimpleName(
                                ((BusinessObject) ((IStructuredSelection) selection).getFirstElement())
                                        .getQualifiedName()));
                        boTableViewer.refresh();
                    } else {
                        businessObjectDescriptionGroup.setText(Messages.selectABusinessObjectToEdit);
                    }

                }

                @Override
                public void afterEditorActivated(final ColumnViewerEditorActivationEvent event) {

                }
            });

    createBusinessObjectNameColumn(ctx, observeSingleSelection, boTableViewer);

    final UpdateValueStrategy enableStrategy = new UpdateValueStrategy();
    enableStrategy.setConverter(new Converter(Object.class, Boolean.class) {

        @Override
        public Object convert(final Object fromObject) {
            return fromObject != null;
        }
    });

    ctx.bindValue(SWTObservables.observeEnabled(deleteButton), observeSingleSelection,
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), enableStrategy);

    final IObservableList businessObjectObserveList = PojoObservables.observeList(businessObjectModel,
            "businessObjects");
    boTableViewer.setInput(businessObjectObserveList);
    addButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(final SelectionEvent e) {
            addBusinessObject(boTableViewer, businessObjectObserveList);
        }

    });

    deleteButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(final SelectionEvent e) {
            deleteBusinessObject(boTableViewer, observeSingleSelection, businessObjectObserveList);
        }

    });
    return observeSingleSelection;
}

From source file:org.bonitasoft.studio.businessobject.ui.wizard.control.AttributesTabItemControl.java

License:Open Source License

private IViewerObservableValue createAttributeTableControl(final DataBindingContext ctx,
        final IViewerObservableValue viewerObservableValue) {
    final Composite buttonsComposite = new Composite(this, SWT.NONE);
    buttonsComposite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).indent(0, 20).create());
    buttonsComposite//from w  w  w.j  a  v a2 s  .  c  o m
            .setLayout(GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 3).create());

    final Button addButton = createAddButton(ctx, viewerObservableValue, buttonsComposite);

    UpdateValueStrategy enableStrategy = new UpdateValueStrategy();
    enableStrategy.setConverter(new Converter(Object.class, Boolean.class) {

        @Override
        public Object convert(final Object fromObject) {
            return fromObject != null;
        }
    });

    ctx.bindValue(SWTObservables.observeEnabled(addButton), viewerObservableValue, null, enableStrategy);
    final Button upButton = createUpButton(viewerObservableValue, buttonsComposite);
    final Button downButton = createDownButton(viewerObservableValue, buttonsComposite);
    final Button deleteButton = createDeleteButton(buttonsComposite);

    final TableViewer featuresTableViewer = new TableViewer(this,
            SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
    featuresTableViewer.getControl()
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(500, 200).create());
    featuresTableViewer.getTable().setEnabled(viewerObservableValue.getValue() != null);
    featuresTableViewer.getTable().setLinesVisible(true);
    featuresTableViewer.getTable().setHeaderVisible(true);
    featuresTableViewer.setContentProvider(new ObservableListContentProvider());
    ColumnViewerToolTipSupport.enableFor(featuresTableViewer);

    ctx.bindValue(SWTObservables.observeEnabled(featuresTableViewer.getTable()), viewerObservableValue, null,
            enableStrategy);
    final IViewerObservableValue observeAttributeSelection = ViewersObservables
            .observeSingleSelection(featuresTableViewer);

    final TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(4));
    tableLayout.addColumnData(new ColumnWeightData(4));
    tableLayout.addColumnData(new ColumnWeightData(3));
    tableLayout.addColumnData(new ColumnWeightData(3));
    featuresTableViewer.getTable().setLayout(tableLayout);

    createFieldNameColumn(ctx, featuresTableViewer, viewerObservableValue);
    createFieldTypeColumn(ctx, featuresTableViewer, observeAttributeSelection);
    createMultipleColumn(featuresTableViewer);
    createMandatoryColumn(featuresTableViewer);

    featuresTableViewer.setInput(fieldsList);
    fieldsList.addListChangeListener(new IListChangeListener() {

        @Override
        public void handleListChange(final ListChangeEvent event) {
            final IObservableList observableList = event.getObservableList();
            if (observableList != null && !observableList.isEmpty()) {
                featuresTableViewer.getTable().select(0);
            }
        }
    });

    addButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(final SelectionEvent e) {
            addField(viewerObservableValue, featuresTableViewer, observeAttributeSelection);
        }

    });

    deleteButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(final SelectionEvent e) {
            deleteField(featuresTableViewer, viewerObservableValue);
        }

    });

    enableStrategy = new UpdateValueStrategy();
    enableStrategy.setConverter(new Converter(Object.class, Boolean.class) {

        @Override
        public Object convert(final Object fromObject) {
            return fromObject != null;
        }
    });

    ctx.bindValue(SWTObservables.observeEnabled(deleteButton), observeAttributeSelection, null, enableStrategy);

    final UpdateValueStrategy upEnableStrategy = new UpdateValueStrategy();
    upEnableStrategy.setConverter(new Converter(Object.class, Boolean.class) {

        @Override
        public Object convert(final Object fromObject) {
            if (fromObject != null) {
                final List<Field> eList = getFieldList(viewerObservableValue);
                return eList.indexOf(fromObject) > 0;
            }
            return false;
        }
    });

    ctx.bindValue(SWTObservables.observeEnabled(upButton), observeAttributeSelection, null, upEnableStrategy);

    final UpdateValueStrategy downEnableStrategy = new UpdateValueStrategy();
    downEnableStrategy.setConverter(new Converter(Object.class, Boolean.class) {

        @Override
        public Object convert(final Object fromObject) {
            if (fromObject != null) {
                final List<Field> eList = getFieldList(viewerObservableValue);
                return eList.indexOf(fromObject) < eList.size() - 1 && eList.size() > 1;
            }
            return false;
        }
    });
    ctx.bindValue(SWTObservables.observeEnabled(downButton), observeAttributeSelection, null,
            downEnableStrategy);

    upButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(final SelectionEvent e) {
            moveUp(viewerObservableValue, observeAttributeSelection);
            featuresTableViewer.refresh();
        }

    });

    downButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(final SelectionEvent e) {
            moveDown(viewerObservableValue, observeAttributeSelection);
            featuresTableViewer.refresh();
        }

    });

    viewerObservableValue.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            final Object selectedBO = event.diff.getNewValue();
            if (selectedBO instanceof BusinessObject) {
                final List<Field> fields = ((BusinessObject) selectedBO).getFields();
                if (fields.isEmpty()) {
                    observeAttributeSelection.setValue(null);
                } else {
                    observeAttributeSelection.setValue(fields.get(0));
                }

            }

        }
    });

    return observeAttributeSelection;
}

From source file:org.bonitasoft.studio.businessobject.ui.wizard.control.IndexesTabItemControl.java

License:Open Source License

protected void createControl(final DataBindingContext ctx, final IViewerObservableValue viewerObservableValue) {
    setLayoutData(GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.TOP).create());
    setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(5, 5).create());

    final Composite buttonsComposite = new Composite(this, SWT.NONE);
    buttonsComposite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).indent(0, 20).create());
    buttonsComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).spacing(0, 3).create());

    final Button addButton = createAddButton(ctx, viewerObservableValue, buttonsComposite);
    final Button deleteButton = createDeleteButton(buttonsComposite);

    final TableViewer indexesTableViewer = new TableViewer(this,
            SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
    indexesTableViewer.getControl()/*from   w  ww .  j a  v a2 s .c  o  m*/
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(400, 300).create());
    indexesTableViewer.getTable().setEnabled(viewerObservableValue.getValue() != null);
    indexesTableViewer.getTable().setLinesVisible(true);
    indexesTableViewer.getTable().setHeaderVisible(true);
    indexesTableViewer.setContentProvider(new ObservableListContentProvider());

    final TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(1));
    tableLayout.addColumnData(new ColumnWeightData(2));
    indexesTableViewer.getTable().setLayout(tableLayout);

    UpdateValueStrategy enableStrategy = new UpdateValueStrategy();
    enableStrategy.setConverter(new Converter(Object.class, Boolean.class) {

        @Override
        public Object convert(final Object fromObject) {
            return fromObject != null;
        }
    });
    ctx.bindValue(SWTObservables.observeEnabled(indexesTableViewer.getTable()), viewerObservableValue, null,
            enableStrategy);

    final IViewerObservableValue constaintObserveSingleSelection = ViewersObservables
            .observeSingleSelection(indexesTableViewer);
    ctx.bindValue(SWTObservables.observeEnabled(deleteButton), constaintObserveSingleSelection, null,
            enableStrategy);

    enableStrategy = new UpdateValueStrategy();
    enableStrategy.setConverter(new Converter(Object.class, Boolean.class) {

        @Override
        public Object convert(final Object fromObject) {
            return fromObject instanceof List && !((List<?>) fromObject).isEmpty();
        }
    });

    fieldsList.addListChangeListener(new IListChangeListener() {

        @Override
        public void handleListChange(final ListChangeEvent event) {
            addButton.setEnabled(!event.getObservableList().isEmpty());
        }
    });

    createIndexNameColumn(ctx, indexesTableViewer, viewerObservableValue);
    createIndexFieldsColumn(ctx, indexesTableViewer, viewerObservableValue);

    final IObservableList indexesObserveDetailList = PojoObservables.observeDetailList(viewerObservableValue,
            "indexes", Index.class);
    indexesTableViewer.setInput(indexesObserveDetailList);

    addButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(final SelectionEvent e) {
            addIndex(viewerObservableValue, indexesObserveDetailList, indexesTableViewer);
        }
    });

    deleteButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(final SelectionEvent e) {
            deleteIndex(indexesObserveDetailList, indexesTableViewer);
        }
    });
}

From source file:org.bonitasoft.studio.businessobject.ui.wizard.control.QueriesTabItemControl.java

License:Open Source License

protected Composite createCustomQueriesControl(DataBindingContext ctx,
        final IViewerObservableValue viewerObservableValue, final Composite parent) {
    final Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayoutData(GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.TOP).create());
    composite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(5, 5).create());

    final Composite buttonsComposite = new Composite(composite, SWT.NONE);
    buttonsComposite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).indent(0, 20).create());
    buttonsComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).spacing(0, 3).create());

    final Button addButton = createAddButton(ctx, viewerObservableValue, buttonsComposite);
    final Button deleteButton = createDeleteButton(buttonsComposite);

    final TableViewer queriesTableViewer = new TableViewer(composite,
            SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
    queriesTableViewer.getControl()/*from   w  w  w .j a v a2s . co m*/
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(400, 300).create());
    queriesTableViewer.getTable().setEnabled(viewerObservableValue.getValue() != null);
    queriesTableViewer.getTable().setLinesVisible(true);
    queriesTableViewer.getTable().setHeaderVisible(true);
    queriesTableViewer.setContentProvider(new ObservableListContentProvider());

    TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(1));
    tableLayout.addColumnData(new ColumnWeightData(3));
    queriesTableViewer.getTable().setLayout(tableLayout);

    UpdateValueStrategy enableStrategy = new UpdateValueStrategy();
    enableStrategy.setConverter(new Converter(Object.class, Boolean.class) {

        @Override
        public Object convert(Object fromObject) {
            return fromObject != null;
        }
    });
    ctx.bindValue(SWTObservables.observeEnabled(queriesTableViewer.getTable()), viewerObservableValue, null,
            enableStrategy);

    IViewerObservableValue constaintObserveSingleSelection = ViewersObservables
            .observeSingleSelection(queriesTableViewer);
    ctx.bindValue(SWTObservables.observeEnabled(deleteButton), constaintObserveSingleSelection, null,
            enableStrategy);

    enableStrategy = new UpdateValueStrategy();
    enableStrategy.setConverter(new Converter(Object.class, Boolean.class) {

        @Override
        public Object convert(Object fromObject) {
            return fromObject instanceof List && !((List<?>) fromObject).isEmpty();
        }
    });

    fieldsList.addListChangeListener(new IListChangeListener() {

        @Override
        public void handleListChange(ListChangeEvent event) {
            addButton.setEnabled(!event.getObservableList().isEmpty());
        }
    });

    TableViewerColumn nameColumnViewer = createQueryNameColumn(ctx, queriesTableViewer);
    nameColumnViewer.setEditingSupport(
            new QueryNameEditingSupport(viewerObservableValue, nameColumnViewer.getViewer(), ctx));
    TableViewerColumn queryContentColumnViewer = createQueryContentColumn(ctx, queriesTableViewer);
    queryContentColumnViewer.setEditingSupport(
            new QueryContentEditingSupport(queryContentColumnViewer.getViewer(), viewerObservableValue));

    final IObservableList queryObserveDetailList = PojoObservables.observeDetailList(viewerObservableValue,
            "queries", Query.class);
    queriesTableViewer.setInput(queryObserveDetailList);

    addButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(SelectionEvent e) {
            addQuery(viewerObservableValue, queryObserveDetailList, queriesTableViewer);
        }
    });

    deleteButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(SelectionEvent e) {
            deleteQuery(queryObserveDetailList, queriesTableViewer);
        }
    });

    return composite;
}

From source file:org.bonitasoft.studio.businessobject.ui.wizard.control.UniqueConstraintTabItemControl.java

License:Open Source License

protected void createControl(final DataBindingContext ctx, final IViewerObservableValue viewerObservableValue) {
    setLayoutData(GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.TOP).create());
    setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(5, 5).create());

    final Composite buttonsComposite = new Composite(this, SWT.NONE);
    buttonsComposite.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).indent(0, 20).create());
    buttonsComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).spacing(0, 3).create());

    final Button addButton = createAddButton(ctx, viewerObservableValue, buttonsComposite);
    final Button deleteButton = createDeleteButton(buttonsComposite);

    final TableViewer constraintsTableViewer = new TableViewer(this,
            SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
    constraintsTableViewer.getControl()//from   w  w  w  . j a  v a 2s.com
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(400, 300).create());
    constraintsTableViewer.getTable().setEnabled(viewerObservableValue.getValue() != null);
    constraintsTableViewer.getTable().setLinesVisible(true);
    constraintsTableViewer.getTable().setHeaderVisible(true);
    constraintsTableViewer.setContentProvider(new ObservableListContentProvider());

    final TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(1));
    tableLayout.addColumnData(new ColumnWeightData(2));
    constraintsTableViewer.getTable().setLayout(tableLayout);

    UpdateValueStrategy enableStrategy = new UpdateValueStrategy();
    enableStrategy.setConverter(new Converter(Object.class, Boolean.class) {

        @Override
        public Object convert(final Object fromObject) {
            return fromObject != null;
        }
    });
    ctx.bindValue(SWTObservables.observeEnabled(constraintsTableViewer.getTable()), viewerObservableValue, null,
            enableStrategy);

    final IViewerObservableValue constaintObserveSingleSelection = ViewersObservables
            .observeSingleSelection(constraintsTableViewer);
    ctx.bindValue(SWTObservables.observeEnabled(deleteButton), constaintObserveSingleSelection, null,
            enableStrategy);

    enableStrategy = new UpdateValueStrategy();
    enableStrategy.setConverter(new Converter(Object.class, Boolean.class) {

        @Override
        public Object convert(final Object fromObject) {
            return fromObject instanceof List && !((List<?>) fromObject).isEmpty();
        }
    });

    fieldsList.addListChangeListener(new IListChangeListener() {

        @Override
        public void handleListChange(final ListChangeEvent event) {
            addButton.setEnabled(!event.getObservableList().isEmpty());
        }
    });

    createUniqueConstraintNameColumn(ctx, constraintsTableViewer, viewerObservableValue);
    createUniqueConstraintFieldsColumn(ctx, constraintsTableViewer, viewerObservableValue);

    final IObservableList uniqueConstraintObserveDetailList = PojoObservables
            .observeDetailList(viewerObservableValue, "uniqueConstraints", List.class);
    constraintsTableViewer.setInput(uniqueConstraintObserveDetailList);

    addButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(final SelectionEvent e) {
            addUniqueConstraint(viewerObservableValue, uniqueConstraintObserveDetailList,
                    constraintsTableViewer);
        }
    });

    deleteButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(final SelectionEvent e) {
            deleteUniqueConstraint(uniqueConstraintObserveDetailList, constraintsTableViewer);
        }
    });

}

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

License:Open Source License

protected void bindDeleteParameterButtonEnablement(final DataBindingContext ctx, final Button deleteButton,
        final TableViewer parametersTableViewer, final UpdateValueStrategy enableStrategy) {
    ctx.bindValue(SWTObservables.observeEnabled(deleteButton),
            ViewersObservables.observeSingleSelection(parametersTableViewer), null, enableStrategy);
}