private void ChangePassword() {
    VdcReturnValueBase returnValue =
        Frontend.RunAction(
            VdcActionType.ChangeUserPassword,
            new ChangeUserPasswordParameters(
                (String) getUserName().getEntity(),
                (String) getPassword().getEntity(),
                (String) getNewPassword().getEntity(),
                (String) getDomain().getSelectedItem()));

    if (returnValue != null && returnValue.getSucceeded()) {
      // TODO:
    }
  }
  @Override
  public void Login() {
    // Completely override the base class functionality.

    if (!Validate()) {
      return;
    }

    // Clear config cache on login (to make sure we don't use old config in a new session)
    DataProvider.ClearConfigCache();

    Frontend.RunAction(
        VdcActionType.LoginUser,
        new LoginUserParameters(
            (String) getUserName().getEntity(),
            (String) getPassword().getEntity(),
            (String) getDomain().getSelectedItem(),
            "",
            "",
            ""),
        new IFrontendActionAsyncCallback() {
          @Override
          public void Executed(FrontendActionAsyncResult result) {

            UserPortalLoginModel model = (UserPortalLoginModel) result.getState();
            VdcReturnValueBase returnValue = result.getReturnValue();
            boolean success = returnValue != null && returnValue.getSucceeded();
            if (success) {
              model.setLoggedUser((VdcUser) returnValue.getActionReturnValue());
              model.getLoggedInEvent().raise(this, EventArgs.Empty);
            } else {
              model.getPassword().setEntity("");
              if (returnValue != null) {
                model.setMessage(Linq.FirstOrDefault(returnValue.getCanDoActionMessages()));
              }
              model.getLoginFailedEvent().raise(this, EventArgs.Empty);
            }
          }
        },
        this);
  }