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

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

Introduction

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

Prototype

@SuppressWarnings("unchecked")
@Deprecated
public static ISWTObservableValue observeDelayedValue(int delay, ISWTObservableValue observable) 

Source Link

Document

Returns an observable which delays notification of value change events from observable until delay milliseconds have elapsed since the last change event, or until a FocusOut event is received from the underlying widget (whichever happens first).

Usage

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

License:Open Source License

@Override
protected void createBinding(EMFDataBindingContext context) {

    Converter convertToId = new Converter(String.class, String.class) {

        public Object convert(final Object fromObject) {
            updatePropertyTabTitle();//from   www.  ja  v a 2  s  .  c  om
            /*Update the tab of the editor if the form name change*/
            if (element instanceof Form) {
                FormDiagramEditor editor = (FormDiagramEditor) PlatformUI.getWorkbench()
                        .getActiveWorkbenchWindow().getActivePage().getActiveEditor();
                editor.setPartName(text.getText());
            }

            return fromObject;
        }
    };
    labelTargetToModelUpdate = new UpdateValueStrategy();
    labelTargetToModelUpdate.setConverter(convertToId);
    List<IValidator> validators = new ArrayList<IValidator>();
    validators.add(new GroovyReferenceValidator(Messages.name, true, false));
    validators.add(getWidgetValidator());
    MultiValidator multiValidation = new MultiValidator(validators);
    labelTargetToModelUpdate.setAfterGetValidator(multiValidation);
    labelTargetToModelUpdate.setBeforeSetValidator(new InputLengthValidator(Messages.name, 50));
    ISWTObservableValue observable = SWTObservables.observeDelayedValue(400,
            SWTObservables.observeText(text, SWT.Modify));
    ControlDecorationSupport.create(context.bindValue(observable,
            EMFEditObservables.observeValue(editingDomain, element, ProcessPackage.Literals.ELEMENT__NAME),
            labelTargetToModelUpdate, null), SWT.LEFT);
}

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

License:Open Source License

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

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

    final UpdateValueStrategy targetToModel = new UpdateValueStrategy();

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

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

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

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

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

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

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

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

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

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

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

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

License:Open Source License

@Override
protected void createBinding(EMFDataBindingContext context) {
    labelTargetToModelUpdate = new UpdateValueStrategy();

    labelTargetToModelUpdate.setAfterGetValidator(new UTF8InputValidator(Messages.name));
    List<IValidator> validators = new ArrayList<IValidator>();
    validators.add(new InputLengthValidator(Messages.name, 0, 50));
    MultiValidator multiValidation = new MultiValidator(validators);
    labelTargetToModelUpdate.setBeforeSetValidator(multiValidation);
    labelTargetToModelUpdate.setAfterConvertValidator(new SpecialCharactersValidator());

    observable = SWTObservables.observeDelayedValue(400, SWTObservables.observeText(text, SWT.Modify));
    observable.addValueChangeListener(new IValueChangeListener() {

        @Override/*from w w  w.  j av a 2 s  . c o  m*/
        public void handleValueChange(ValueChangeEvent event) {
            updatePropertyTabTitle();
        }
    });

    ControlDecorationSupport.create(context.bindValue(observable,
            EMFEditObservables.observeValue(editingDomain, element, ProcessPackage.Literals.ELEMENT__NAME),
            labelTargetToModelUpdate, null), SWT.LEFT);
    bindingInitialized = true;
}

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

License:Open Source License

@Override
protected void createBinding(final EMFDataBindingContext context) {
    observable = SWTObservables.observeDelayedValue(250, SWTObservables.observeText(text, SWT.Modify));

    final IObservableValue nameObservable = EMFEditObservables.observeValue(editingDomain, element,
            ProcessPackage.Literals.ELEMENT__NAME);
    nameObservable.addValueChangeListener(new IValueChangeListener() {

        @Override/* ww  w .  j  a  v a 2 s.c  o m*/
        public void handleValueChange(final ValueChangeEvent event) {
            updatePropertyTabTitle();
            updatePartName((String) event.diff.getNewValue(), Display.getDefault());
        }
    });
    context.bindValue(observable, nameObservable);
    final MultiValidator validationStatusProvider = nameValidationStatusProvider(observable);
    context.addValidationStatusProvider(validationStatusProvider);
    ControlDecorationSupport.create(validationStatusProvider, SWT.LEFT);
    bindingInitialized = true;
}

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

License:Open Source License

protected void createBinding(EMFDataBindingContext context) {
    UpdateValueStrategy versionUpdate = new UpdateValueStrategy();
    versionUpdate.setAfterGetValidator(new EmptyInputValidator(Messages.GeneralSection_Version));
    versionUpdate.setBeforeSetValidator(new UTF8InputValidator(Messages.GeneralSection_Version));

    ISWTObservableValue observable = SWTObservables.observeDelayedValue(400,
            SWTObservables.observeText(text, SWT.Modify));
    context.bindValue(observable, EMFEditObservables.observeValue(editingDomain, process,
            ProcessPackage.Literals.ABSTRACT_PROCESS__VERSION), versionUpdate, versionUpdate);
}

From source file:org.bonitasoft.studio.properties.sections.iteration.IterationPropertySection.java

License:Open Source License

protected void createIteratorControl(final TabbedPropertySheetWidgetFactory widgetFactory,
        final Composite parent, final ControlDecoration ieratorLabelDecoration) {
    final Composite iteratorComposite = widgetFactory.createComposite(parent);
    iteratorComposite//from   w  ww.  j a v a 2  s. com
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).indent(6, 0).create());
    iteratorComposite
            .setLayout(GridLayoutFactory.fillDefaults().numColumns(4).extendedMargins(0, 10, 0, 0).create());

    final IteratorNameEditor iteratorNameEditor = new IteratorNameEditor(iteratorComposite, widgetFactory);
    iteratorNameEditor.getControl()
            .setLayoutData(GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).hint(150, 2).create());
    iteratorNameEditor.bindControl(context, selectionProvider, progressService, getMessageManager());

    final IObservableValue iteratorObservable = CustomEMFEditObservables.observeDetailValue(Realm.getDefault(),
            ViewersObservables.observeSingleSelection(selectionProvider),
            ProcessPackage.Literals.MULTI_INSTANTIABLE__ITERATOR_EXPRESSION);

    expressionReturnTypeDetailValue = EMFEditWithRefactorObservables.observeDetailValueWithRefactor(
            Realm.getDefault(), iteratorObservable, ExpressionPackage.Literals.EXPRESSION__RETURN_TYPE);

    final Label iteratorTypeLabel = widgetFactory.createLabel(iteratorComposite, Messages.type + " *");
    iteratorTypeLabel.setLayoutData(GridDataFactory.swtDefaults().align(SWT.RIGHT, SWT.CENTER).create());

    final ControlDecoration ieratorTypeDecoration = new ControlDecoration(iteratorTypeLabel, SWT.RIGHT);
    ieratorTypeDecoration.setDescriptionText(Messages.typeHint);
    ieratorTypeDecoration.setImage(Pics.getImage(PicsConstants.hint));
    ieratorTypeDecoration.setMarginWidth(-3);

    returnTypeCombo = new ComboViewer(new Combo(iteratorComposite, SWT.BORDER));
    returnTypeCombo.getControl().setLayoutData(
            GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).indent(5, 0).create());
    returnTypeCombo.setContentProvider(new ExpressionReturnTypeContentProvider());
    returnTypeCombo.setLabelProvider(new LabelProvider());
    returnTypeCombo.setSorter(new ViewerSorter() {

        @Override
        public int compare(final Viewer viewer, final Object e1, final Object e2) {
            final String t1 = (String) e1;
            final String t2 = (String) e2;
            return t1.compareTo(t2);
        }
    });
    returnTypeCombo.setInput(new Object());

    final Button browseClassesButton = widgetFactory.createButton(iteratorComposite, Messages.Browse, SWT.PUSH);
    browseClassesButton.setLayoutData(GridDataFactory.fillDefaults().create());

    returnTypeComboTextObservable = SWTObservables.observeText(returnTypeCombo.getCombo());
    context.bindValue(SWTObservables.observeDelayedValue(200, returnTypeComboTextObservable),
            expressionReturnTypeDetailValue,
            refactorReturnTypeStrategy(expressionReturnTypeDetailValue, iteratorObservable), null);

    browseClassesButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final String typeName = openClassSelectionDialog();
            if (typeName != null && !typeName.isEmpty()) {
                returnTypeComboTextObservable.setValue(typeName);
            }
        }
    });

}

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

License:Open Source License

private Text createDescriptionLine(Composite composite) {
    Label descLabel = new Label(composite, SWT.NONE);
    descLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.TOP).create());
    descLabel.setText(Messages.dataDescriptionLabel);
    final Text descText = new Text(composite, SWT.MULTI | SWT.BORDER);
    gd = new GridData(SWT.FILL, SWT.CENTER, true, false);
    gd.heightHint = 45;// w  w w.  jav  a2s .c  om
    descText.setLayoutData(gd);
    databindingContext.bindValue(
            SWTObservables.observeDelayedValue(200, SWTObservables.observeText(descText, SWT.Modify)),
            EMFObservables.observeValue(workingCopyMessage, ProcessPackage.Literals.ELEMENT__DOCUMENTATION));
    return descText;
}

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

License:Open Source License

private Text createNameLine(Composite composite) {
    Label nameLabel = new Label(composite, SWT.NONE);
    nameLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).create());
    nameLabel.setText(Messages.dataNameLabel);

    nameText = new Text(composite, SWT.BORDER);
    nameText.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    IValidator nameValidator = new IValidator() {

        @Override//w w w  .  j a  v  a 2s .  c  o  m
        public IStatus validate(Object arg0) {
            if (arg0 instanceof String) {
                String s = (String) arg0;
                if (s == null || s.isEmpty()) {
                    return ValidationStatus.error(Messages.emptyName);
                } else {
                    List<Message> events = ModelHelper.getAllItemsOfType(ModelHelper.getMainProcess(element),
                            ProcessPackage.eINSTANCE.getMessage());
                    for (Message ev : events) {
                        if (!ev.equals(originalMessage) && ev.getName().equals(s)) {
                            return ValidationStatus.error(Messages.messageEventAddWizardNameAlreadyExists);
                        }
                    }
                }
            }
            return ValidationStatus.ok();
        }
    };

    UpdateValueStrategy uvs = new UpdateValueStrategy(/*
                                                      * UpdateValueStrategy.
                                                      * POLICY_CONVERT
                                                      */);
    uvs.setBeforeSetValidator(nameValidator);
    databindingContext.bindValue(
            SWTObservables.observeDelayedValue(200, SWTObservables.observeText(nameText, SWT.Modify)),
            EMFObservables.observeValue(workingCopyMessage, ProcessPackage.Literals.ELEMENT__NAME), uvs, null);
    return nameText;
}

From source file:org.eclipse.emf.ecp.ecoreeditor.internal.ui.TextRenderer.java

License:Open Source License

@Override
protected Binding bindValue(Control text, IObservableValue modelValue, DataBindingContext dataBindingContext,
        UpdateValueStrategy targetToModel, UpdateValueStrategy modelToTarget) {

    final IObservableValue value = SWTObservables.observeDelayedValue(600,
            SWTObservables.observeText(text, SWT.Modify));
    final Binding binding = dataBindingContext.bindValue(value, modelValue, targetToModel, modelToTarget);
    return binding;
}

From source file:org.eclipse.emf.examples.library.databinding.editor.LibraryEditor.java

License:Open Source License

private void createDetailArea(SashForm sashform, IFocusService focusService) {
    FormToolkit toolkit = new FormToolkit(sashform.getDisplay());

    final DataBindingContext dbc = new DataBindingContext();
    IValueProperty viewerProp = ViewerProperties.singleSelection();
    IValueProperty textProp = WidgetProperties.text(SWT.Modify);
    IValueProperty formTextProp = FormProperties.text();

    Composite comp = new Composite(sashform, SWT.NONE);
    comp.setLayout(new FillLayout());

    Form form = toolkit.createForm(comp);
    toolkit.decorateFormHeading(form);//from   w ww  .j a  v  a 2  s  .c  om
    form.setText("");

    form.getBody().setLayout(new GridLayout(2, false));
    toolkit.createLabel(form.getBody(), "Name");

    Text t = toolkit.createText(form.getBody(), "");
    t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    focusService.addFocusTracker(t, LIBRARY_NAME);

    final IObservableValue viewerSelection = viewerProp.observe(viewer);

    IEMFEditValueProperty prop = EMFEditProperties.value(p.getEditingDomain(),
            EXTLibraryPackage.Literals.LIBRARY__NAME);

    IObservableValue uObs = prop.observeDetail(viewerSelection);

    dbc.bindValue(SWTObservables.observeDelayedValue(400, (ISWTObservableValue) textProp.observe(t)), uObs);
    dbc.bindValue(formTextProp.observe(form), uObs, new UpdateValueStrategy(),
            new UpdateValueStrategy().setConverter(new NullConverter()));

    GridData gd = new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false);
    gd.verticalIndent = 10;
    toolkit.createLabel(form.getBody(), "Address").setLayoutData(gd);
    t = toolkit.createText(form.getBody(), "", SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.heightHint = t.getLineHeight() * 7;
    t.setLayoutData(gd);
    focusService.addFocusTracker(t, LIBRARY_ADDRESS);

    prop = EMFEditProperties.value(p.getEditingDomain(), EXTLibraryPackage.Literals.ADDRESSABLE__ADDRESS);
    dbc.bindValue(SWTObservables.observeDelayedValue(400, (ISWTObservableValue) textProp.observe(t)),
            prop.observeDetail(viewerSelection));

    subfolder = new TabFolder(form.getBody(), SWT.NONE);
    subfolder.addSelectionListener(new SelectionListener() {

        public void widgetSelected(SelectionEvent e) {
            for (AbstractForm f : subforms) {
                if (e.item == f.getItem()) {
                    f.activate();
                } else {
                    f.deactivate();
                }
            }

        }

        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }
    });
    gd = new GridData(GridData.FILL_BOTH);
    gd.horizontalSpan = 2;
    subfolder.setLayoutData(gd);

    int i = 0;
    for (FormDescriptor desc : Activator.getDefault().getFormDescriptors()) {
        try {
            createForm(i++, desc, dbc, viewerSelection);
        } catch (CoreException e) {
            ErrorDialog.openError(viewer.getControl().getShell(), "Error loading forms", e.getMessage(),
                    e.getStatus());
            Activator.getDefault().getLog().log(e.getStatus());
        }
    }

    if (subfolder.getItemCount() > 0) {
        subfolder.setSelection(0);
        subforms.get(0).activate();
    } else {
        subfolder.setVisible(false);
    }

    Activator.getDefault().getFormHandler().addModificationListener(new IModificationListener() {

        public void formAdd(final int index, final FormDescriptor descriptor) {

            if (!viewer.getControl().isDisposed()) {
                viewer.getControl().getDisplay().syncExec(new Runnable() {

                    public void run() {
                        try {
                            createForm(index, descriptor, dbc, viewerSelection);
                        } catch (CoreException e) {
                            ErrorDialog.openError(viewer.getControl().getShell(), "Error loading forms",
                                    e.getMessage(), e.getStatus());
                            Activator.getDefault().getLog().log(e.getStatus());
                        }
                    }

                });
            }

        }

        public void formRemoved(FormDescriptor descriptor) {
            String id = descriptor.getId();
            Iterator<AbstractForm> it = subforms.iterator();
            while (it.hasNext()) {
                final AbstractForm form = it.next();
                if (form.getId().equals(id)) {
                    if (!viewer.getControl().isDisposed()) {
                        viewer.getControl().getDisplay().syncExec(new Runnable() {

                            public void run() {
                                form.dispose();
                            }

                        });
                        it.remove();
                    }

                }
            }
        }

    });
}