List of usage examples for org.eclipse.jface.databinding.swt SWTObservables observeText
@Deprecated public static ISWTObservableValue observeText(Control control, int event)
control
. From source file:oida.model.integration.ui.editors.MatchingEditor.java
License:Open Source License
protected DataBindingContext initDataBindings() { DataBindingContext bindingContext = new DataBindingContext(); ////from w ww . j av a2 s . c o m IObservableValue textFileNameObserveTextObserveWidget = SWTObservables.observeText(textFileName, SWT.Modify); IObservableValue recommendationProviderSourceOntologyFileNameObserveValue = BeansObservables .observeValue(recommendationProvider, "sourceOntologyFileName"); bindingContext.bindValue(textFileNameObserveTextObserveWidget, recommendationProviderSourceOntologyFileNameObserveValue, null, null); // IObservableValue btnDeclineObserveTextObserveWidget = SWTObservables.observeText(btnConfirm); IObservableValue recommendationProviderButtonStringObserveValue = BeansObservables .observeValue(recommendationProvider, "buttonString"); bindingContext.bindValue(btnDeclineObserveTextObserveWidget, recommendationProviderButtonStringObserveValue, null, null); // IObservableValue txtSourceResourceObserveTextObserveWidget = SWTObservables.observeText(txtSourceResource); IObservableValue recommendationProviderMappingStatusObserveValue = BeansObservables .observeValue(recommendationProvider, "mappingStatus"); bindingContext.bindValue(txtSourceResourceObserveTextObserveWidget, recommendationProviderMappingStatusObserveValue, null, null); // ObservableListContentProvider listContentProvider = new ObservableListContentProvider(); listViewerModelReference.setContentProvider(listContentProvider); // IObservableMap observeMap = PojoObservables.observeMap(listContentProvider.getKnownElements(), Individual.class, "localName"); listViewerModelReference.setLabelProvider(new ObservableMapLabelProvider(observeMap)); // IObservableList recommendationProviderCurrentIndividualCandidatesObserveList = BeansObservables .observeList(Realm.getDefault(), recommendationProvider, "currentIndividualCandidates"); listViewerModelReference.setInput(recommendationProviderCurrentIndividualCandidatesObserveList); // ObservableListContentProvider listContentProvider_1 = new ObservableListContentProvider(); listViewerMetamodelReference.setContentProvider(listContentProvider_1); // IObservableMap observeMap_1 = PojoObservables.observeMap(listContentProvider_1.getKnownElements(), OntResource.class, "localName"); listViewerMetamodelReference.setLabelProvider(new ObservableMapLabelProvider(observeMap_1)); // IObservableList recommendationProviderMetaCandiatesOntResourcesObserveList = BeansObservables .observeList(Realm.getDefault(), recommendationProvider, "metaCandiatesOntResources"); listViewerMetamodelReference.setInput(recommendationProviderMetaCandiatesOntResourcesObserveList); // return bindingContext; }
From source file:oida.model.integration.ui.editors.MatchingTreeEditor.java
License:Open Source License
protected DataBindingContext initDataBindings() { DataBindingContext bindingContext = new DataBindingContext(); ///*from w w w . ja va 2 s . com*/ IObservableValue textFileNameObserveTextObserveWidget = SWTObservables.observeText(textFileName, SWT.Modify); IObservableValue recommendationProviderSourceOntologyFileNameObserveValue = BeansObservables .observeValue(recommendationProvider, "sourceOntologyFileName"); bindingContext.bindValue(textFileNameObserveTextObserveWidget, recommendationProviderSourceOntologyFileNameObserveValue, null, null); // IObservableValue btnDeclineObserveTextObserveWidget = SWTObservables.observeText(btnConfirm); IObservableValue recommendationProviderButtonStringObserveValue = BeansObservables .observeValue(recommendationProvider, "buttonString"); bindingContext.bindValue(btnDeclineObserveTextObserveWidget, recommendationProviderButtonStringObserveValue, null, null); // IObservableValue txtSourceResourceObserveTextObserveWidget = SWTObservables.observeText(txtSourceResource); IObservableValue recommendationProviderMappingStatusObserveValue = BeansObservables .observeValue(recommendationProvider, "mappingStatus"); bindingContext.bindValue(txtSourceResourceObserveTextObserveWidget, recommendationProviderMappingStatusObserveValue, null, null); // ObservableListContentProvider listContentProvider = new ObservableListContentProvider(); listViewerModelReference.setContentProvider(listContentProvider); // IObservableMap observeMap = PojoObservables.observeMap(listContentProvider.getKnownElements(), Individual.class, "localName"); listViewerModelReference.setLabelProvider(new ObservableMapLabelProvider(observeMap)); // IObservableList recommendationProviderCurrentIndividualCandidatesObserveList = BeansObservables .observeList(Realm.getDefault(), recommendationProvider, "currentIndividualCandidates"); listViewerModelReference.setInput(recommendationProviderCurrentIndividualCandidatesObserveList); // return bindingContext; }
From source file:org.bbaw.bts.ui.main.test.Snippet008ComputedValue.java
License:Open Source License
/** * @param args/*from w w w. j av a 2s .com*/ */ public static void main(String[] args) { final Display display = new Display(); Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() { public void run() { Shell shell = new Shell(display); shell.setLayout(new FillLayout()); final UI ui = new UI(shell); final Data data = new Data(); // Bind the UI to the Data. DataBindingContext dbc = new DataBindingContext(); dbc.bindValue(SWTObservables.observeText(ui.firstName, SWT.Modify), data.firstName); dbc.bindValue(SWTObservables.observeText(ui.lastName, SWT.Modify), data.lastName); // Construct the formatted name observable. FormattedName formattedName = new FormattedName(data.firstName, data.lastName); // Bind the formatted name Text to the formatted name // observable. dbc.bindValue(SWTObservables.observeText(ui.formattedName, SWT.None), formattedName, new UpdateValueStrategy(false, UpdateValueStrategy.POLICY_NEVER), null); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } } }); display.dispose(); }
From source file:org.bonitasoft.studio.actors.ui.editingsupport.CustomerUserInformationDefinitionDescriptionEditingSupport.java
License:Open Source License
@Override protected IObservableValue doCreateCellEditorObservable(CellEditor cellEditor) { return SWTObservables.observeText(cellEditor.getControl(), SWT.Modify); }
From source file:org.bonitasoft.studio.actors.ui.wizard.page.DefaultUserOrganizationWizardPage.java
License:Open Source License
public void createBindings() { UpdateValueStrategy strategy = new UpdateValueStrategy(); strategy.setAfterGetValidator(new EmptyInputValidator(Messages.userName)); strategy.setBeforeSetValidator(new IValidator() { @Override/* w w w . jav a 2s .c om*/ public IStatus validate(Object value) { String user = (String) value; if (!usernames.contains(user)) { return ValidationStatus.error(Messages.bind(Messages.UserDoesntExistError, user)); } return Status.OK_STATUS; } }); binding = context.bindValue(SWTObservables.observeText(usernameText, SWT.Modify), PojoProperties.value(DefaultUserOrganizationWizardPage.class, "user").observe(this), strategy, null); }
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 a v a2 s. c o 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.NewOrganizationWizardPage.java
License:Open Source License
@Override public void createControl(Composite parent) { final EMFDataBindingContext emfDatabindingContext = new EMFDataBindingContext(); Composite mainComposite = new Composite(parent, SWT.NONE); mainComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); mainComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(15, 20).spacing(5, 15) .equalWidth(false).create()); Label nameLabel = new Label(mainComposite, SWT.NONE); nameLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).create()); nameLabel.setText(Messages.name);/*www .j av a 2 s . c o m*/ Text nameText = new Text(mainComposite, SWT.BORDER); nameText.setLayoutData(GridDataFactory.fillDefaults().grab(false, false).hint(300, SWT.DEFAULT).create()); emfDatabindingContext.bindValue(SWTObservables.observeText(nameText, SWT.Modify), EMFObservables.observeValue(organization, OrganizationPackage.Literals.ORGANIZATION__NAME)); Label descriptionLabel = new Label(mainComposite, SWT.NONE); descriptionLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.TOP).create()); descriptionLabel.setText(Messages.description); Text descriptionText = new Text(mainComposite, SWT.BORDER | SWT.WRAP | SWT.MULTI | SWT.V_SCROLL); descriptionText .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 100).create()); emfDatabindingContext.bindValue(SWTObservables.observeText(descriptionText, SWT.Modify), EMFObservables.observeValue(organization, OrganizationPackage.Literals.ORGANIZATION__DESCRIPTION)); setControl(mainComposite); }
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 . jav a 2s . co m } 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 w w . j a v a 2 s . co m*/ } 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.businessobject.ui.wizard.BusinessDataModelWizardPage.java
License:Open Source License
protected void createDescription(final DataBindingContext ctx, final IViewerObservableValue viewerObservableValue, final Group descriptionGroup) { final Label descriptionLabel = new Label(descriptionGroup, SWT.NONE); descriptionLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.TOP).create()); descriptionLabel.setText(Messages.description); final Text descriptionText = new Text(descriptionGroup, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI | SWT.WRAP); descriptionText/* w w w . ja va2 s. c o m*/ .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 50).create()); descriptionText.setEnabled(viewerObservableValue.getValue() != null); final IObservableValue observeDetailValue = PojoObservables.observeDetailValue(viewerObservableValue, "description", String.class); ctx.bindValue(SWTObservables.observeText(descriptionText, SWT.Modify), observeDetailValue); final UpdateValueStrategy enableStrategy = new UpdateValueStrategy(); enableStrategy.setConverter(new Converter(Object.class, Boolean.class) { @Override public Object convert(final Object fromObject) { return fromObject != null; } }); ctx.bindValue(SWTObservables.observeEnabled(descriptionText), viewerObservableValue, null, enableStrategy); }