/** * Sets up data binding between the text fields and the connection details object. Also attaches a * "string required" validator to the "password" text field. This validator is configured to do * the following on validation failure<br> * <li>show an ERROR decorator * <li>disable the "Login" button */ private void setupDataBinding() { DataBindingContext dataBindingContext = new DataBindingContext(SWTObservables.getRealm(Display.getCurrent())); UpdateValueStrategy passwordBindingStrategy = new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE); // The Validator shows error decoration and disables OK button on // validation failure passwordBindingStrategy.setBeforeSetValidator( new StringRequiredValidator( "Please enter password!", guiHelper.createErrorDecoration(passwordText), okButton)); dataBindingContext.bindValue( WidgetProperties.text(SWT.Modify).observe(passwordText), PojoProperties.value("password").observe(connectionDetails), passwordBindingStrategy, passwordBindingStrategy); UpdateValueStrategy userIdBindingStrategy = new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE); dataBindingContext.bindValue( WidgetProperties.text(SWT.Modify).observe(userIdText), PojoProperties.value("userId").observe(connectionDetails), userIdBindingStrategy, userIdBindingStrategy); }