List of usage examples for org.eclipse.jface.databinding.swt SWTObservables observeDelayedValue
@SuppressWarnings("unchecked") @Deprecated public static ISWTObservableValue observeDelayedValue(int delay, ISWTObservableValue observable)
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). 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(); } } } } }); }