예제 #1
0
  /**
   * 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);
  }