// TODO use annotation to create a guiwrapper so isModified could be simplified
  public void applyConfigurationData(
      JenkinsAppSettings jenkinsAppSettings, JenkinsSettings jenkinsSettings)
      throws ConfigurationException {
    formValidator.validate();

    if (!StringUtils.equals(jenkinsAppSettings.getServerUrl(), serverUrl.getText())) {
      jenkinsSettings.getFavoriteJobs().clear();
      jenkinsSettings.setLastSelectedView(null);
    }

    jenkinsAppSettings.setServerUrl(serverUrl.getText());
    jenkinsAppSettings.setDelay(getBuildDelay());
    jenkinsAppSettings.setJobRefreshPeriod(getJobRefreshPeriod());
    jenkinsAppSettings.setRssRefreshPeriod(getRssRefreshPeriod());
    jenkinsSettings.setCrumbData(crumbDataField.getText());

    jenkinsAppSettings.setIgnoreSuccessOrStable(successOrStableCheckBox.isSelected());
    jenkinsAppSettings.setDisplayUnstableOrFail(unstableOrFailCheckBox.isSelected());
    jenkinsAppSettings.setDisplayAborted(abortedCheckBox.isSelected());
    jenkinsAppSettings.setSuffix(replaceWithSuffix.getText());

    if (StringUtils.isNotBlank(username.getText())) {
      jenkinsSettings.setUsername(username.getText());
    } else {
      jenkinsSettings.setUsername("");
    }

    if (isPasswordModified()) {
      jenkinsSettings.setPassword(getPassword());
      resetPasswordModification();
    }
  }