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:com.schmeedy.pdt.joomla.manifest.ui.editor.OverviewPage.java
protected DataBindingContext initDataBindings() { final DataBindingContext bindingContext = new DataBindingContext(); ////from w ww . j a v a 2 s . co m final IObservableValue nameTextObserveTextObserveWidget = SWTObservables.observeDelayedValue(300, SWTObservables.observeText(nameText, SWT.Modify)); final IObservableValue currentInputNameObserveValue = EMFEditObservables.observeValue(editingDomain, currentInput, Literals.JOOMLA_EXTENSION_MANIFEST__NAME); bindingContext.bindValue(nameTextObserveTextObserveWidget, currentInputNameObserveValue, null, new EMFUpdateValueStrategy()); // final IObservableValue versionTextObserveTextObserveWidget = SWTObservables.observeDelayedValue(300, SWTObservables.observeText(versionText, SWT.Modify)); final IObservableValue currentInputVersionObserveValue = EMFEditObservables.observeValue(editingDomain, currentInput, Literals.JOOMLA_EXTENSION_MANIFEST__VERSION); bindingContext.bindValue(versionTextObserveTextObserveWidget, currentInputVersionObserveValue, null, new EMFUpdateValueStrategy()); // final IObservableValue descriptionTextObserveTextObserveWidget = SWTObservables.observeDelayedValue(300, SWTObservables.observeText(descriptionText, SWT.Modify)); final IObservableValue currentInputDescriptionObserveValue = EMFEditObservables.observeValue(editingDomain, currentInput, Literals.JOOMLA_EXTENSION_MANIFEST__DESCRIPTION); bindingContext.bindValue(descriptionTextObserveTextObserveWidget, currentInputDescriptionObserveValue, null, new EMFUpdateValueStrategy()); // final IObservableValue authorNameTextObserveTextObserveWidget = SWTObservables.observeDelayedValue(300, SWTObservables.observeText(authorNameText, SWT.Modify)); final IObservableValue currentInputAuthorObserveValue = EMFEditObservables.observeValue(editingDomain, currentInput, Literals.JOOMLA_EXTENSION_MANIFEST__AUTHOR); bindingContext.bindValue(authorNameTextObserveTextObserveWidget, currentInputAuthorObserveValue, null, new EMFUpdateValueStrategy()); // final IObservableValue authorEmailTextObserveTextObserveWidget = SWTObservables.observeDelayedValue(300, SWTObservables.observeText(authorEmailText, SWT.Modify)); final IObservableValue currentInputAuthorEmailObserveValue = EMFEditObservables.observeValue(editingDomain, currentInput, Literals.JOOMLA_EXTENSION_MANIFEST__AUTHOR_EMAIL); bindingContext.bindValue(authorEmailTextObserveTextObserveWidget, currentInputAuthorEmailObserveValue, null, new EMFUpdateValueStrategy()); // final IObservableValue authorUrlTextObserveTextObserveWidget = SWTObservables.observeDelayedValue(300, SWTObservables.observeText(authorUrlText, SWT.Modify)); final IObservableValue currentInputAuthorUrlObserveValue = EMFEditObservables.observeValue(editingDomain, currentInput, Literals.JOOMLA_EXTENSION_MANIFEST__AUTHOR_URL); bindingContext.bindValue(authorUrlTextObserveTextObserveWidget, currentInputAuthorUrlObserveValue, null, new EMFUpdateValueStrategy()); // final IObservableValue copyrightTextObserveTextObserveWidget = SWTObservables.observeDelayedValue(300, SWTObservables.observeText(copyrightText, SWT.Modify)); final IObservableValue currentInputCopyrightObserveValue = EMFEditObservables.observeValue(editingDomain, currentInput, Literals.JOOMLA_EXTENSION_MANIFEST__COPYRIGHT); bindingContext.bindValue(copyrightTextObserveTextObserveWidget, currentInputCopyrightObserveValue, null, new EMFUpdateValueStrategy()); // final IObservableValue licenseTextObserveTextObserveWidget = SWTObservables.observeDelayedValue(300, SWTObservables.observeText(licenseText, SWT.Modify)); final IObservableValue currentInputLicenseObserveValue = EMFEditObservables.observeValue(editingDomain, currentInput, Literals.JOOMLA_EXTENSION_MANIFEST__LICENSE); bindingContext.bindValue(licenseTextObserveTextObserveWidget, currentInputLicenseObserveValue, null, new EMFUpdateValueStrategy()); // return bindingContext; }
From source file:com.xored.af.ui.forms.parts.CheckboxFormPart.java
License:Open Source License
@Override protected IObservableValue observeControl() { return SWTObservables.observeDelayedValue(400, SWTObservables.observeSelection(control)); }
From source file:com.xored.af.ui.forms.parts.TextFormPart.java
License:Open Source License
@Override protected IObservableValue observeControl() { return SWTObservables.observeDelayedValue(400, SWTObservables.observeText(text, SWT.Modify)); }
From source file:org.bonitasoft.studio.actors.ui.wizard.page.GroupsWizardPage.java
License:Open Source License
private void refreshBinding(final org.bonitasoft.studio.actors.model.organization.Group selectedGroup) { if (context != null) { context.dispose();/*from w w w.j ava2 s . co m*/ } if (pageSupport != null) { pageSupport.dispose(); } context = new EMFDataBindingContext(); groupMemberShips.clear(); if (selectedGroup != null) { setControlEnabled(getInfoGroup(), true); for (Membership m : membershipList) { if (selectedGroup.getName() != null && selectedGroup.getName().equals(m.getGroupName()) && ((selectedGroup.getParentPath() != null && selectedGroup.getParentPath().equals(m.getGroupParentPath()) || (selectedGroup.getParentPath() == null && m.getGroupParentPath() == null)))) { groupMemberShips.add(m); } } IObservableValue groupNameValue = EMFObservables.observeValue(selectedGroup, OrganizationPackage.Literals.GROUP__NAME); groupNameValue.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { handleGroupNameChange(event); } }); IObservableValue groupParentPathValue = EMFObservables.observeValue(selectedGroup, OrganizationPackage.Literals.GROUP__PARENT_PATH); groupParentPathValue.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { handleGroupParentPathChange(event); } }); UpdateValueStrategy strategy = new UpdateValueStrategy(); groupNameValidator.setValidator(new IValidator() { @Override public IStatus validate(Object value) { if (value.toString().isEmpty()) { return ValidationStatus.error(Messages.nameIsEmpty); } if (value.toString().contains("/")) { return ValidationStatus.error(Messages.illegalCharacter); } for (org.bonitasoft.studio.actors.model.organization.Group g : groupList) { if (!g.equals(selectedGroup)) { if (g.getName().equals(value) && ((g.getParentPath() != null && g.getParentPath().equals(selectedGroup.getParentPath())) || (g.getParentPath() == null && selectedGroup.getParentPath() == null))) { return ValidationStatus.error(Messages.groupNameAlreadyExistsForLevel); } } } return Status.OK_STATUS; } }); strategy.setAfterGetValidator(groupNameValidator); IObservableValue descriptionValue = EMFObservables.observeValue(selectedGroup, OrganizationPackage.Literals.GROUP__DESCRIPTION); IObservableValue displayNameValue = EMFObservables.observeValue(selectedGroup, OrganizationPackage.Literals.GROUP__DISPLAY_NAME); context.bindValue(SWTObservables.observeText(groupNameText, SWT.Modify), groupNameValue, strategy, new UpdateValueStrategy()); context.bindValue(SWTObservables.observeDelayedValue(500, SWTObservables.observeText(groupDescriptionText, SWT.Modify)), descriptionValue); UpdateValueStrategy startegy = new UpdateValueStrategy(); startegy.setConverter(new Converter(String.class, String.class) { @Override public Object convert(Object from) { Display.getDefault().asyncExec(new Runnable() { @Override public void run() { getViewer().refresh(selectedGroup); } }); return from; } }); context.bindValue(SWTObservables.observeText(displayNamedText, SWT.Modify), displayNameValue, startegy, null); pathText.setText(GroupContentProvider.getGroupPath(selectedGroup)); addSubGroupButton.setEnabled(true); } else { displayNamedText.setText(""); groupDescriptionText.setText(""); groupNameText.setText(""); pathText.setText(""); addSubGroupButton.setEnabled(false); setControlEnabled(getInfoGroup(), false); } pageSupport = WizardPageSupportWithoutMessages.create(this, context); }
From source file:org.bonitasoft.studio.actors.ui.wizard.page.RolesWizardPage.java
License:Open Source License
private void refreshBinding(final Role selectedRole) { if (context != null) { context.dispose();/*from w ww .j ava 2 s.com*/ } if (pageSupport != null) { pageSupport.dispose(); } context = new EMFDataBindingContext(); roleMemberShips.clear(); if (selectedRole != null) { setControlEnabled(getInfoGroup(), true); for (Membership m : membershipList) { if (selectedRole.getName() != null && selectedRole.getName().equals(m.getRoleName())) { roleMemberShips.add(m); } } UpdateValueStrategy strategy = new UpdateValueStrategy(); roleNameValidator.setValidator(new IValidator() { @Override public IStatus validate(Object value) { if (value.toString().isEmpty()) { return ValidationStatus.error(Messages.nameIsEmpty); } for (Role r : roleList) { if (!r.equals(selectedRole)) { if (r.getName().equals(value)) { return ValidationStatus.error(Messages.roleNameAlreadyExists); } } } return Status.OK_STATUS; } }); strategy.setAfterGetValidator(roleNameValidator); IObservableValue value = EMFObservables.observeValue(selectedRole, OrganizationPackage.Literals.ROLE__NAME); value.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { Role role = (Role) ((EObjectObservableValue) event.getObservable()).getObserved(); getViewer().refresh(role); for (Membership m : roleMemberShips) { m.setRoleName(role.getName()); } } }); IObservableValue descriptionValue = EMFObservables.observeValue(selectedRole, OrganizationPackage.Literals.ROLE__DESCRIPTION); descriptionValue.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { Role role = (Role) ((EObjectObservableValue) event.getObservable()).getObserved(); getViewer().refresh(role); } }); IObservableValue displayNameValue = EMFObservables.observeValue(selectedRole, OrganizationPackage.Literals.ROLE__DISPLAY_NAME); displayNameValue.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { Role role = (Role) ((EObjectObservableValue) event.getObservable()).getObserved(); getViewer().refresh(role); } }); context.bindValue( SWTObservables.observeDelayedValue(500, SWTObservables.observeText(roleNameText, SWT.Modify)), value, strategy, new UpdateValueStrategy()); context.bindValue(SWTObservables.observeDelayedValue(500, SWTObservables.observeText(roleDescriptionText, SWT.Modify)), descriptionValue); context.bindValue(SWTObservables.observeText(displayNamedText, SWT.Modify), displayNameValue); } else { displayNamedText.setText(""); roleDescriptionText.setText(""); roleNameText.setText(""); setControlEnabled(getInfoGroup(), false); } pageSupport = WizardPageSupportWithoutMessages.create(this, context); }
From source file:org.bonitasoft.studio.actors.ui.wizard.page.UsersWizardPage.java
License:Open Source License
private void refreshBinding(final User selectedUser) { if (context != null) { context.dispose();/*from w ww .j av a2 s . com*/ } if (pageSupport != null) { pageSupport.dispose(); } context = new EMFDataBindingContext(); userMemberShips.clear(); if (selectedUser != null) { setControlEnabled(getInfoGroup(), true); if (userList != null) { managerNameCombo.removeAll(); managerNameCombo.add(""); for (User u : userList) { if (!u.equals(selectedUser)) { managerNameCombo.add(u.getUserName()); } } } UpdateValueStrategy strategy = new UpdateValueStrategy(); strategy.setConverter(new Converter(String.class, String.class) { @Override public Object convert(Object fromObject) { if (userList != null) { for (User u : userList) { if (selectedUser != null && u.getManager() != null && u.getManager().equals(selectedUser.getUserName())) { u.setManager((String) fromObject); } } } return fromObject; } }); userNameValidator.setValidator(new IValidator() { @Override public IStatus validate(Object value) { if (value.toString().isEmpty()) { return ValidationStatus.error(Messages.nameIsEmpty); } for (User u : userList) { if (!u.equals(selectedUser)) { if (u.getUserName().equals(value)) { return ValidationStatus.error(Messages.userNameAlreadyExists); } } } return Status.OK_STATUS; } }); strategy.setAfterGetValidator(userNameValidator); IObservableValue value = EMFObservables.observeValue(selectedUser, OrganizationPackage.Literals.USER__USER_NAME); value.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { User user = (User) ((EObjectObservableValue) event.getObservable()).getObserved(); String oldUserValue = event.diff.getOldValue().toString(); for (Membership m : userMemberShips) { m.setUserName(user.getUserName()); } // managerNameCombo.removeAll() ; // managerNameCombo.add("") ; updateDelegueeMembership(event.diff.getOldValue().toString(), event.diff.getNewValue().toString()); getViewer().refresh(user); } }); context.bindValue( SWTObservables.observeDelayedValue(500, SWTObservables.observeText(usernameText, SWT.Modify)), value, strategy, null); UpdateValueStrategy mandatoryStrategy = new UpdateValueStrategy(); passwordValidator.setValidator(new EmptyInputValidator(Messages.password)); mandatoryStrategy.setAfterGetValidator(passwordValidator); IObservableValue observeValue = EMFObservables.observeValue(selectedUser.getPassword(), OrganizationPackage.Literals.PASSWORD_TYPE__VALUE); context.bindValue(SWTObservables.observeText(passwordText, SWT.Modify), observeValue, mandatoryStrategy, null); observeValue.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { IObservableValue value = event.getObservableValue(); PasswordType password = (PasswordType) ((EObjectObservableValue) value).getObserved(); password.setEncrypted(false); } }); context.bindValue(SWTObservables.observeSelection(managerNameCombo), EMFObservables.observeValue(selectedUser, OrganizationPackage.Literals.USER__MANAGER)); for (Entry<EAttribute, Control> entry : generalWidgetMap.entrySet()) { EAttribute attributre = entry.getKey(); Control control = entry.getValue(); if (!control.isDisposed()) { IObservableValue observableValue = EMFObservables.observeValue(selectedUser, attributre); UpdateValueStrategy mandatoryStartegy = null; if (attributre.equals(OrganizationPackage.Literals.USER__FIRST_NAME) || attributre.equals(OrganizationPackage.Literals.USER__LAST_NAME)) { observableValue.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { getViewer().refresh(((EObjectObservableValue) event.getObservable()).getObserved()); } }); mandatoryStartegy = new UpdateValueStrategy(); if (attributre.equals(OrganizationPackage.Literals.USER__FIRST_NAME)) { mandatoryStartegy.setAfterGetValidator(new EmptyInputValidator(Messages.firstName)); } else if (attributre.equals(OrganizationPackage.Literals.USER__LAST_NAME)) { mandatoryStartegy.setAfterGetValidator(new EmptyInputValidator(Messages.lastName)); } } if (mandatoryStartegy != null) { ControlDecorationSupport .create(context.bindValue(SWTObservables.observeText(control, SWT.Modify), observableValue, mandatoryStartegy, null), SWT.LEFT); } else { context.bindValue(SWTObservables.observeText(control, SWT.Modify), observableValue); } } } if (selectedUser.getPersonalData() == null) { selectedUser.setPersonalData(OrganizationFactory.eINSTANCE.createContactData()); } for (Entry<EAttribute, Control> entry : personalWidgetMap.entrySet()) { EAttribute attributre = entry.getKey(); Control control = entry.getValue(); if (!control.isDisposed()) { IObservableValue observableValue = EMFObservables.observeValue(selectedUser.getPersonalData(), attributre); context.bindValue(SWTObservables.observeText(control, SWT.Modify), observableValue); } } if (selectedUser.getProfessionalData() == null) { selectedUser.setProfessionalData(OrganizationFactory.eINSTANCE.createContactData()); } for (Entry<EAttribute, Control> entry : professionalWidgetMap.entrySet()) { EAttribute attributre = entry.getKey(); Control control = entry.getValue(); if (!control.isDisposed()) { context.bindValue(SWTObservables.observeText(control, SWT.Modify), EMFObservables.observeValue(selectedUser.getProfessionalData(), attributre)); } } for (Entry<Metadata, Control> entry : metadataWidgetMap.entrySet()) { Metadata metadata = entry.getKey(); Control control = entry.getValue(); if (!control.isDisposed()) { context.bindValue(SWTObservables.observeText(control, SWT.Modify), EMFObservables.observeValue(metadata, OrganizationPackage.Literals.METADATA__VALUE)); } } for (Entry<Membership, Map<EAttribute, Control>> entry : membershipWidgetMap.entrySet()) { final Membership membership = entry.getKey(); final Map<EAttribute, Control> controls = entry.getValue(); for (Entry<EAttribute, Control> e : controls.entrySet()) { final EAttribute attributre = e.getKey(); final Control control = e.getValue(); if (!control.isDisposed()) { UpdateValueStrategy selectionStrategy = new UpdateValueStrategy(); selectionStrategy.setAfterConvertValidator(new IValidator() { @Override public IStatus validate(Object value) { if (value == null || value.toString().isEmpty()) { return ValidationStatus.error(Messages.emtpyMembershipValue); } return Status.OK_STATUS; } }); if (attributre.equals(OrganizationPackage.Literals.MEMBERSHIP__GROUP_NAME)) { selectionStrategy.setConverter(new Converter(String.class, String.class) { @Override public Object convert(Object from) { String path = (String) from; if (!path.isEmpty()) { String parentPath = path.substring(0, path.lastIndexOf(GroupContentProvider.GROUP_SEPARATOR)); String groupName = path.substring( path.lastIndexOf(GroupContentProvider.GROUP_SEPARATOR) + 1, path.length()); if (parentPath.isEmpty()) { membership.setGroupParentPath(null); } else { membership.setGroupParentPath(parentPath); } return groupName; } else { return ""; } } }); } UpdateValueStrategy modelStrategy = null; if (attributre.equals(OrganizationPackage.Literals.MEMBERSHIP__GROUP_NAME)) { modelStrategy = new UpdateValueStrategy(); modelStrategy.setConverter(new Converter(String.class, String.class) { @Override public Object convert(Object from) { if (membership.getGroupParentPath() != null && !membership.getGroupParentPath().isEmpty()) { String parentPath = membership.getGroupParentPath(); if (!membership.getGroupParentPath() .endsWith(GroupContentProvider.GROUP_SEPARATOR)) { parentPath = parentPath + GroupContentProvider.GROUP_SEPARATOR; } String path = parentPath + from; return path; } else if (from != null && !from.toString().isEmpty()) { return GroupContentProvider.GROUP_SEPARATOR + membership.getGroupName(); } else { return ""; } } }); } ControlDecorationSupport.create(context.bindValue(SWTObservables.observeSelection(control), EMFObservables.observeValue(membership, attributre), selectionStrategy, modelStrategy), SWT.LEFT); } } } pageSupport = WizardPageSupportWithoutMessages.create(this, context); } else { setControlEnabled(getInfoGroup(), false); } }
From source file:org.bonitasoft.studio.common.jface.OpenNameDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite res = new Composite(parent, SWT.FILL); res.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); res.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(10, 10).spacing(0, 20).create()); if (message != null) { Label messageLabel = new Label(res, SWT.WRAP); messageLabel.setLayoutData(GridDataFactory.fillDefaults().span(2, 1).grab(true, true).create()); messageLabel.setText(message);/*from w w w. j a v a 2s. c o m*/ } Label nameLabel = new Label(res, SWT.NONE); nameLabel.setText(Messages.name); final Text nameText = new Text(res, SWT.BORDER); nameText.setText(srcName); nameText.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).indent(10, 0).create()); if (observable != null) { binding = context.bindValue( SWTObservables.observeDelayedValue(400, SWTObservables.observeText(nameText, SWT.Modify)), observable, targetToModel, modelToTarget); ControlDecorationSupport.create(binding, SWT.LEFT); } nameText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { newName = nameText.getText(); updateOkButton(); } }); return res; }
From source file:org.bonitasoft.studio.common.properties.DescriptionPropertySectionContribution.java
License:Open Source License
public void createControl(Composite composite, TabbedPropertySheetWidgetFactory widgetFactory, ExtensibleGridPropertySection page) { composite.setLayout(new RowLayout()); Text text = widgetFactory.createText(composite, element.getDocumentation(), SWT.BORDER | SWT.MULTI | SWT.WRAP); RowData rd = new RowData(); rd.width = 300;//from ww w . j ava 2s .c o m rd.height = 60; text.setLayoutData(rd); context = new EMFDataBindingContext(); UpdateValueStrategy strategy = new UpdateValueStrategy(); strategy.setBeforeSetValidator(new InputLengthValidator(Messages.GeneralSection_Description, 254)); // context.bindValue(SWTObservables.observeDelayedValue(400, SWTObservables.observeText(text, SWT.Modify)), EMFEditObservables.observeValue(editingDomain, element, ProcessPackage.Literals.ELEMENT__DOCUMENTATION),strategy,null); ControlDecorationSupport.create( context.bindValue( SWTObservables.observeDelayedValue(400, SWTObservables.observeText(text, SWT.Modify)), EMFEditObservables.observeValue(editingDomain, element, ProcessPackage.Literals.ELEMENT__DOCUMENTATION), strategy, null), SWT.LEFT | SWT.TOP); }
From source file:org.bonitasoft.studio.expression.editor.viewer.ExpressionViewer.java
License:Open Source License
protected void bindExpression() { if (expressionBinding != null && externalDataBindingContext != null) { externalDataBindingContext.removeBinding(expressionBinding); expressionBinding.dispose();/*from www. java 2 s.c om*/ } if (internalDataBindingContext != null) { internalDataBindingContext.dispose(); } internalDataBindingContext = new EMFDataBindingContext(); IObservableValue nameObservable = null; if (editingDomain != null) { nameObservable = EMFEditProperties.value(editingDomain, ExpressionPackage.Literals.EXPRESSION__NAME) .observeDetail(ViewerProperties.singleSelection().observe(this)); } else { nameObservable = EMFProperties.value(ExpressionPackage.Literals.EXPRESSION__NAME) .observeDetail(ViewerProperties.singleSelection().observe(this)); } IObservableValue typeObservable = null; if (editingDomain != null) { typeObservable = EMFEditProperties.value(editingDomain, ExpressionPackage.Literals.EXPRESSION__TYPE) .observeDetail(ViewerProperties.singleSelection().observe(this)); } else { typeObservable = EMFProperties.value(ExpressionPackage.Literals.EXPRESSION__TYPE) .observeDetail(ViewerProperties.singleSelection().observe(this)); } UpdateValueStrategy targetToModelNameStrategy = new UpdateValueStrategy(); if (mandatoryFieldName != null) { targetToModelNameStrategy.setBeforeSetValidator(new EmptyInputValidator(mandatoryFieldName)); } targetToModelNameStrategy.setAfterConvertValidator(new IValidator() { @Override public IStatus validate(Object value) { IExpressionValidator validator = null; if (selectedExpression != null) { validator = validatorsForType.get(selectedExpression.getType()); } if (validator == null) { validator = validatorsForType.get(ExpressionConstants.ALL_TYPES); } if (validator != null) { validator.setDomain(editingDomain); validator.setContext(context); if (selectedExpression != null) { validator.setInputExpression(selectedExpression); } setMessage(null, IStatus.OK); final IStatus status = validator.validate(value); if (status.isOK()) { setMessage(null, status.getSeverity()); } else { String message = status.getMessage(); if (status instanceof MultiStatus) { StringBuilder sb = new StringBuilder(); for (IStatus statusChild : status.getChildren()) { sb.append(statusChild.getMessage()); sb.append("\n"); } if (sb.length() > 0) { sb.delete(sb.length() - 1, sb.length()); } message = sb.toString(); } setMessage(message, status.getSeverity()); } return status; } else { setMessage(null, IStatus.OK); } return ValidationStatus.ok(); } }); targetToModelNameStrategy.setConverter(getNameConverter()); final ISWTObservableValue observeDelayedValue = SWTObservables.observeDelayedValue(500, SWTObservables.observeText(textControl, SWT.Modify)); expressionBinding = internalDataBindingContext.bindValue(observeDelayedValue, nameObservable, targetToModelNameStrategy, null); expressionBinding.getValidationStatus().addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { IStatus status = (IStatus) event.diff.getNewValue(); fireValidationStatusChanged(status.getSeverity()); } }); bindEditableText(typeObservable); nameObservable.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent arg0) { fireSelectionChanged(new SelectionChangedEvent(ExpressionViewer.this, getSelection())); } }); if (externalDataBindingContext != null) { externalDataBindingContext.addBinding(expressionBinding); } }
From source file:org.bonitasoft.studio.expression.editor.viewer.PatternExpressionViewer.java
License:Open Source License
protected void createTextViewer() { viewer = createViewer(mc);/*from w w w .j a v a 2s . co m*/ viewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); configureTextViewer(); helpDecoration = new ControlDecoration(viewer.getControl(), SWT.TOP | SWT.RIGHT, this); helpDecoration.setImage(JFaceResources.getImage(Dialog.DLG_IMG_HELP)); helpDecoration.setDescriptionText(Messages.patternViewerHelp); helpDecoration.setMarginWidth(2); helpDecoration.hide(); hintDecoration = new ControlDecoration(viewer.getControl(), SWT.TOP | SWT.LEFT, this); hintDecoration.setImage(Pics.getImage(PicsConstants.hint)); hintDecoration.setMarginWidth(2); hintDecoration.setShowHover(true); hintDecoration.setShowOnlyOnFocus(true); hintDecoration.hide(); viewer.addTextListener(new ITextListener() { @Override public void textChanged(TextEvent event) { viewer.getTextWidget().notifyListeners(SWT.Modify, new Event()); } }); contentAssisProcessor = new ExpressionContentAssistProcessor(viewer.getDocument()); final ContentAssistant assistant = new ContentAssistant(); assistant.setContentAssistProcessor(contentAssisProcessor, IDocument.DEFAULT_CONTENT_TYPE); assistant.setShowEmptyList(true); assistant.enableAutoActivation(true); assistant.install(viewer); viewer.getTextWidget().addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { switch (e.keyCode) { case SWT.F1: assistant.showPossibleCompletions(); break; default: //ignore everything else } } @Override public void keyReleased(KeyEvent e) { if ((e.stateMask == SWT.CTRL || e.stateMask == SWT.COMMAND) && e.keyCode == SWT.SPACE) { assistant.showPossibleCompletions(); } } }); ISWTObservableValue observable = SWTObservables.observeDelayedValue(400, SWTObservables.observeText(getTextControl(), SWT.Modify)); observable.addValueChangeListener(new IValueChangeListener() { @Override public void handleValueChange(ValueChangeEvent event) { if (!expressionMode()) { updateExpressionDependencies(); } } }); helpDecoration.show(); }