Example usage for org.eclipse.jface.databinding.viewers ObservableListContentProvider ObservableListContentProvider

List of usage examples for org.eclipse.jface.databinding.viewers ObservableListContentProvider ObservableListContentProvider

Introduction

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

Prototype

public ObservableListContentProvider() 

Source Link

Document

Constructs an ObservableListContentProvider.

Usage

From source file:org.bonitasoft.studio.businessobject.ui.expression.QueryExpressionEditor.java

License:Open Source License

private void createBusinessObjectComboViewer(final Composite composite, final IObservableList observeBoList) {
    final Composite boComposite = new Composite(composite, SWT.NONE);
    boComposite.setLayoutData(GridDataFactory.fillDefaults().create());
    boComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 2).create());

    final Label boLabel = new Label(boComposite, SWT.NONE);
    boLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).create());
    boLabel.setText(Messages.businessObject);

    final ComboViewer boCombo = new ComboViewer(boComposite, SWT.READ_ONLY | SWT.BORDER);
    boCombo.getControl()/*from ww  w.ja  v a  2  s .  com*/
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).minSize(100, SWT.DEFAULT).create());
    boCombo.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(final Object element) {
            if (element instanceof BusinessObjectExpressionQuery) {
                return NamingUtils.getSimpleName(((BusinessObjectExpressionQuery) element).getQualifiedName());
            }
            return super.getText(element);
        }
    });
    boCombo.setContentProvider(new ObservableListContentProvider());

    boCombo.setInput(observeBoList);

    observeBOSingleSelection = ViewersObservables.observeSingleSelection(boCombo);
}

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//from ww  w .  j  ava  2s.c om
            .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.BusinessObjectDataWizardPage.java

License:Open Source License

protected void createBusinessObjectTypeControl(final Composite mainComposite, final EMFDataBindingContext ctx) {
    final Label businessObjectLabel = new Label(mainComposite, SWT.NONE);
    businessObjectLabel.setLayoutData(fillDefaults().align(SWT.END, SWT.CENTER).create());
    businessObjectLabel.setText(Messages.businessObject + " *");

    final Composite comboComposite = new Composite(mainComposite, SWT.NONE);
    comboComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(0, 0).create());
    comboComposite.setLayoutData(fillDefaults().grab(true, false).create());

    final ComboViewer businessObjectComboViewer = new ComboViewer(comboComposite, SWT.READ_ONLY | SWT.BORDER);
    businessObjectComboViewer.getControl().setLayoutData(fillDefaults().grab(true, false).create());
    businessObjectComboViewer.setContentProvider(new ObservableListContentProvider());
    businessObjectComboViewer.setLabelProvider(businessObjectLabelProvider());

    final WritableList businessObjectsObservableList = new WritableList(getAllBusinessObjects(),
            BusinessObject.class);

    final IViewerObservableValue observeSingleSelection = ViewersObservables
            .observeSingleSelection(businessObjectComboViewer);
    createNewBusinessObjectLink(comboComposite, businessObjectsObservableList, observeSingleSelection);
    businessObjectComboViewer.setInput(businessObjectsObservableList);

    classNameObservable = EMFObservables.observeValue(businessObjectData,
            ProcessPackage.Literals.JAVA_OBJECT_DATA__CLASS_NAME);
    ctx.bindValue(observeSingleSelection, classNameObservable,
            updateValueStrategy().withConverter(businessObjectToFQN())
                    .withValidator(mandatoryValidator(Messages.businessObject)).create(),
            updateValueStrategy().withConverter(fqnToBusinessObject()).create());

    defaultValueReturnTypeObservable = EMFObservables.observeValue(businessObjectData.getDefaultValue(),
            ExpressionPackage.Literals.EXPRESSION__RETURN_TYPE);

    final String className = businessObjectData.getClassName();
    if ((className == null || className.isEmpty()) && !businessObjectsObservableList.isEmpty()) {
        observeSingleSelection.setValue(businessObjectsObservableList.get(0));
    }//  w w  w.  ja  va 2 s.  co m
}

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 www . j ava 2 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  w w . j av a  2 s. c om
            .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  www  .ja v  a2s.  c  o 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.QueriesTabItemControl.java

License:Open Source License

private Composite createDefaultQueriesControl(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(1).margins(5, 5).create());

    final TableViewer queriesTableViewer = new TableViewer(composite,
            SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
    queriesTableViewer.getControl()/*from w  ww  . j av  a 2  s  .c o  m*/
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(400, 300).create());
    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);

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

    queriesTableViewer.setInput(defaultQueriesList);

    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()//  w w  w  . j  a  va2s. 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 createQueryParametersTable(final Composite parent, final DataBindingContext ctx) {
    final Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayoutData(GridDataFactory.fillDefaults().create());
    composite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(0, 0).spacing(5, 0).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(buttonsComposite);
    addButton.setLayoutData(GridDataFactory.fillDefaults().grab(true, false)
            .minSize(IDialogConstants.BUTTON_WIDTH, SWT.DEFAULT).create());
    addButton.setText(Messages.add);//from ww  w .ja va 2  s.  c  om

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

    final TableViewer parametersTableViewer = new TableViewer(composite,
            SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
    parametersTableViewer.getControl()
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, true).hint(300, 100).create());
    parametersTableViewer.getTable().setLinesVisible(true);
    parametersTableViewer.getTable().setHeaderVisible(true);
    parametersTableViewer.setContentProvider(new ObservableListContentProvider());

    final TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(3));
    tableLayout.addColumnData(new ColumnWeightData(2));
    parametersTableViewer.getTable().setLayout(tableLayout);

    final IObservableList queryParameterObserveDetailList = PojoObservables.observeList(getQuery(),
            "queryParameters");

    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) {
            final QueryParameter param = new QueryParameter(generateName(), String.class.getName());
            queryParameterObserveDetailList.add(param);
            parametersTableViewer.editElement(param, 0);
            queryBinding.validateTargetToModel();
        }
    });

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

        @Override
        public Object convert(final Object fromObject) {
            return fromObject != null;
        }
    });
    bindDeleteParameterButtonEnablement(ctx, deleteButton, parametersTableViewer, enableStrategy);
    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) {
            final List<?> element = ((IStructuredSelection) parametersTableViewer.getSelection()).toList();
            queryParameterObserveDetailList.removeAll(element);
            queryBinding.validateTargetToModel();
        }
    });

    createNameColumn(ctx, parametersTableViewer);
    createTypeColumn(ctx, parametersTableViewer);
    parametersTableViewer.setInput(queryParameterObserveDetailList);
}

From source file:org.bonitasoft.studio.contract.ui.property.constraint.ContractConstraintsTableViewer.java

License:Open Source License

public void initialize(final IViewerController constraintController, final IMessageManager messageManager,
        final EMFDataBindingContext emfDataBindingContext) {
    this.messageManager = messageManager;
    this.constraintController = constraintController;
    this.emfDataBindingContext = emfDataBindingContext;
    final ProcessItemProviderAdapterFactory adapterFactory = new ProcessItemProviderAdapterFactory();
    propertySourceProvider = new AdapterFactoryContentProvider(adapterFactory);
    adapterFactoryLabelProvider = new AdapterFactoryLabelProvider(adapterFactory);
    getTable().setHeaderVisible(true);/* w  w w .ja  v a2 s  . co  m*/
    getTable().setLinesVisible(true);
    setContentProvider(new ObservableListContentProvider());

    final CellNavigationStrategy cellNavigationStrategy = new AddRowOnEnterCellNavigationStrategy(this,
            constraintController);
    final TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(this,
            new FocusCellOwnerDrawHighlighter(this), cellNavigationStrategy);
    TableViewerEditor.create(this, focusCellManager, new CharriageColumnViewerEditorActivationStrategy(this),
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    ColumnViewerToolTipSupport.enableFor(this);
    configureTableLayout();
    createColumns();
}