/**
  * 起動時に取得したデータの中から、insurerNmからinsurerNoを取得します。
  *
  * @param nm insurerNm
  * @return insurerNo
  */
 private String findInsurerNo(String nm) {
   for (int i = 0; i < insurerData.getDataSize(); i++) {
     VRMap hash = (VRMap) insurerData.getData(i);
     String nmTmp = String.valueOf(hash.getData("INSURER_NM"));
     if (nm.equals(nmTmp)) {
       return String.valueOf(hash.getData("INSURER_NO"));
     }
   }
   return "";
 }
  /**
   * 登録処理が可能かどうかをチェックします。
   *
   * @return true:OK, false:NG
   */
  private boolean canSubmit() {
    // 保険者番号・未選択チェック
    if (insurerNm.getSelectedIndex() < 0) {
      insurerNm.requestFocus();
      ACMessageBox.show("保険者を選択してください。", ACMessageBox.BUTTON_OK, ACMessageBox.ICON_EXCLAMATION);
      return false;
    }

    // 事業所番号・未入力チェック
    if (IkenshoCommon.isNullText(jigyoushoNoField.getText())) {
      jigyoushoNoField.requestFocus();
      ACMessageBox.show("事業所番号を入力してください。", ACMessageBox.BUTTON_OK, ACMessageBox.ICON_EXCLAMATION);
      return false;
    }

    // 保険者重複チェック
    boolean checkFlg = true;
    if (isUpdate) {
      if (insurerNoOld.equals(insurerNoField.getText())) {
        // 更新であり、保険者に変更が無い場合はチェックしない
        checkFlg = false;
      }
    }
    if (checkFlg) {
      String insurerNoNew = insurerNoField.getText();
      VRArrayList data = (VRArrayList) affair.getData("DATA");
      for (int i = 0; i < data.getDataSize(); i++) {
        VRMap tmp = (VRMap) data.getData(i);
        String dataInsurerNo = tmp.getData("INSURER_NO").toString();
        if (dataInsurerNo.equals(insurerNoNew)) {
          insurerNm.requestFocus();
          ACMessageBox.show(
              "同一の保険者が既に登録されています。", ACMessageBox.BUTTON_OK, ACMessageBox.ICON_EXCLAMATION);
          return false;
        }
      }
    }

    // 事業所番号・桁数チェック
    if (jigyoushoNoField.getText().length() < 10) {
      jigyoushoNoField.requestFocus();
      int result =
          ACMessageBox.show(
              "事業所番号が数字10桁入力されていません。\nよろしいですか?",
              ACMessageBox.BUTTON_OKCANCEL,
              ACMessageBox.ICON_QUESTION,
              ACMessageBox.FOCUS_CANCEL);
      if (result == ACMessageBox.RESULT_CANCEL) {
        return false;
      }
    }

    return true;
  }
  private void initComponent(VRMap affair) throws Exception {
    // ウィンドウのサイズ
    setSize(new Dimension(470, 110));
    // ウィンドウを中央に配置
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = this.getSize();
    if (frameSize.height > screenSize.height) {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) {
      frameSize.width = screenSize.width;
    }
    this.setLocation(
        (screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);

    // 保険者一覧をDBから取得・コンボに設定する
    IkenshoFirebirdDBManager dbm = new IkenshoFirebirdDBManager();
    StringBuffer sb = new StringBuffer();
    sb.append(" SELECT");
    sb.append(" INSURER_NO");
    sb.append(" ,INSURER_NM");
    sb.append(" FROM");
    sb.append(" INSURER");
    insurerData = (VRArrayList) dbm.executeQuery(sb.toString());
    IkenshoCommon.applyComboModel(
        insurerNm, new VRHashMapArrayToConstKeyArrayAdapter(insurerData, "INSURER_NM"));

    // 渡りデータを取得し、各コンポーネントに設定する
    this.affair = affair;
    String actParam = String.valueOf(affair.getData("ACT"));
    if (actParam.equals("update")) {
      isUpdate = true;
    } else {
      isUpdate = false;
    }
    if (isUpdate) {
      submit.setText("更新(S)");
      enteredData = (VRArrayList) affair.getData("DATA");
      int selRow = Integer.parseInt(String.valueOf(affair.getData("SEL_ROW")));
      VRMap row = (VRMap) enteredData.getData(selRow);

      // 保険者名
      String insurerNmParam = String.valueOf(row.getData("INSURER_NM"));
      for (int i = 0; i < insurerNm.getItemCount(); i++) {
        if (insurerNm.getItemAt(i).toString().equals(insurerNmParam)) {
          insurerNm.setSelectedIndex(i);
          break;
        }
      }

      // 保険者番号
      insurerNoOld = String.valueOf(row.getData("INSURER_NO"));
      insurerNoField.setText(insurerNoOld);

      // 事業所番号
      jigyoushoNoField.setText(String.valueOf(row.getData("JIGYOUSHA_NO")));
    } else {
      submit.setText("登録(S)");
    }

    // スナップショット撮影
    IkenshoSnapshot.getInstance().snapshot();
  }