/** Handle a closing event under an OK condition */
  protected void closingOK() {
    StringBuffer buff = new StringBuffer();
    for (int i = 0; i < m_listModel.size(); i++) {
      SubstringLabeler.Match m = (SubstringLabeler.Match) m_listModel.elementAt(i);

      buff.append(m.toStringInternal());
      if (i < m_listModel.size() - 1) {
        buff.append("@@match-rule@@");
      }
    }

    m_labeler.setMatchDetails(buff.toString());
    m_labeler.setNominalBinary(m_nominalBinaryCheck.isSelected());
    m_labeler.setConsumeNonMatching(m_consumeNonMatchingCheck.isSelected());
    m_labeler.setMatchAttributeName(m_matchAttNameField.getText());

    if (m_modifyL != null) {
      m_modifyL.setModifiedStatus(SubstringLabelerCustomizer.this, true);
    }
  }
  private boolean resetAndUpdateDatabaseLoaderIfChanged() {
    DatabaseLoader dbl = (DatabaseLoader) m_dsLoader.getLoader();
    String url = dbl.getUrl();
    String user = dbl.getUser();
    String password = dbl.getPassword();
    String query = dbl.getQuery();
    String keys = dbl.getKeys();
    File propsFile = dbl.getCustomPropsFile();

    boolean update =
        (!url.equals(m_dbaseURLText.getText())
            || !user.equals(m_userNameText.getText())
            || !password.equals(m_passwordText.getText())
            || !query.equalsIgnoreCase(m_queryText.getText())
            || !keys.equals(m_keyText.getText()));

    if (propsFile != null && m_dbProps.getText().length() > 0) {
      update = (update || !propsFile.toString().equals(m_dbProps.getText()));
    } else {
      update = (update || m_dbProps.getText().length() > 0);
    }

    if (update) {
      dbl.resetStructure();
      dbl.setUrl(m_dbaseURLText.getText());
      dbl.setUser(m_userNameText.getText());
      dbl.setPassword(new String(m_passwordText.getPassword()));
      dbl.setQuery(m_queryText.getText());
      dbl.setKeys(m_keyText.getText());
      if (m_dbProps.getText() != null && m_dbProps.getText().length() > 0) {
        dbl.setCustomPropsFile(new File(m_dbProps.getText()));
      }
    }

    return update;
  }