Example #1
0
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_hist);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    // Intent intent = getIntent(); 遷移元からデータ引き継いでないので記述不要
    MySQLiteOpenHelper hlpr = new MySQLiteOpenHelper(getApplicationContext());
    mydb = hlpr.getReadableDatabase();
    Cursor mCursor =
        mydb.rawQuery(
            "select RegisterId, RegisterDate, ExecuteDate from alarmTalbe order by RegisterId desc",
            null);

    // 予約情報が1件もない場合_よい実装を考える。
    if (mCursor == null) {
      return;
    }
    // DBから取得したデータをListに詰める
    while (mCursor.moveToNext()) {
      RegisterBean bean = new RegisterBean();
      bean.setRegisterId(mCursor.getInt(mCursor.getColumnIndex("RegisterId")));
      bean.setRegisterDate(mCursor.getString(mCursor.getColumnIndex("RegisterDate")));
      bean.setExecuteDate(mCursor.getString(mCursor.getColumnIndex("ExecuteDate")));
      bean.setRegisterInfo(
          "予約No"
              + mCursor.getInt(mCursor.getColumnIndex("RegisterId"))
              + ":"
              + mCursor.getString(mCursor.getColumnIndex("ExecuteDate")));
      registerList.add(bean);
    }

    // ListView用に実行日だけ詰め替える
    final ArrayList<String> showList = new ArrayList<>();
    for (RegisterBean bean : registerList) {
      showList.add(bean.getRegisterInfo());
    }

    lview = (ListView) findViewById(R.id.lv);
    adapter =
        new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, showList);
    lview.setAdapter(adapter);

    // リスト項目をクリック
    lview.setOnItemClickListener(
        new AdapterView.OnItemClickListener() {
          String deleteId; // onItemClickの中で宣言すると、ダイアログ生成のonClickで変数が使用できない
          int position = -1;

          @Override
          public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
            ListView lv = (ListView) parent;

            deleteId = (String) lv.getItemAtPosition(pos); // 選択項目
            int index = deleteId.indexOf(":");
            deleteId = deleteId.substring(4, index);
            position = pos;

            // 確認ダイアログ生成
            AlertDialog.Builder alertDlg =
                new AlertDialog.Builder(HistActivity.this); // ここはgetApplicationContext()では動かない
            alertDlg.setTitle("削除確認");
            alertDlg.setMessage("指定した履歴を削除します。");
            alertDlg.setPositiveButton(
                "OK",
                new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int which) {

                    mydb.rawQuery(
                            "Delete From alarmTalbe Where RegisterId = ?", new String[] {deleteId})
                        .moveToFirst();
                    showList.remove(position);
                    adapter.notifyDataSetChanged();

                    // OK ボタンクリック処理
                    Toast.makeText(getApplicationContext(), "削除しました", Toast.LENGTH_LONG).show();

                    // ListViewからデータ削除
                    // adapter.remove(item);
                  }
                });
            alertDlg.setNegativeButton(
                "Cancel",
                new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int which) {
                    // Cancel ボタンクリック処理
                    Toast.makeText(getApplicationContext(), "Cancel押されました", Toast.LENGTH_LONG)
                        .show();
                  }
                });
            // 表示
            alertDlg.create().show();
          }
        });

    // 戻るボタン
    Button btn = (Button) this.findViewById(R.id.btnBack);
    btn.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            finish();
          }
        });
  }
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html");

    HttpSession session = request.getSession();

    try {
      RegisterBean registerBean = (RegisterBean) session.getAttribute("registerBean");
      if (registerBean == null) {
        registerBean = new RegisterBean();
        session.setAttribute("registerBean", registerBean);
      }

      FillRegisterProfileManager fillRegisterMng = FillRegisterProfileManager.getInstance();
      fillRegisterMng.initFillRegisterProfileManager(registerBean);
      // ดึงข้อมูล register ณ ปัจจุบัน
      registerBean = fillRegisterMng.getRegisterNow();

      System.out.println(registerBean.getRegisterNo());

      String title = request.getParameter("radiotitle");
      String name = request.getParameter("textname");
      String education = request.getParameter("selecteducation");
      String[] job = request.getParameterValues("checkboxjob");
      String other = request.getParameter("textjobOther");
      String telNo = request.getParameter("texttelno");
      String email = request.getParameter("textemail");

      String workplace = request.getParameter("textworkplace");
      if (workplace == null || workplace == "") {
        workplace = "-";
      }
      String addressNo = request.getParameter("textno");
      String street = request.getParameter("textstreet");
      if (street == null || street == "") {
        street = "-";
      }
      String subDistrict = request.getParameter("textsubdistrict");
      String district = request.getParameter("textdistrict");
      String province = request.getParameter("textprovince");
      String zipcode = request.getParameter("textzipcode");

      String username = request.getParameter("textusername");
      String password = request.getParameter("textpassword");
      String confirmPassword = request.getParameter("textconfirmpassword");

      TraineeBean traineeBean = new TraineeBean();
      traineeBean.setTitle(title);
      traineeBean.setName(name);
      traineeBean.setEducation(education);
      traineeBean.setTelNo(telNo);
      traineeBean.setEmail(email);
      traineeBean.setTraineeStatus("ยังไม่ได้ชำระเงิน");

      Calendar calendar = Calendar.getInstance();
      int year = calendar.get(Calendar.YEAR);
      int month = calendar.get(Calendar.MONTH);
      int date = calendar.get(Calendar.DATE);
      String registerDate = year + "-" + (month + 1) + "-" + date;
      traineeBean.setRegisterDate(registerDate);

      Vector<OccupationBean> occupationVector = new Vector<OccupationBean>();
      OccupationBean occ1 = new OccupationBean(false, "Tester");
      OccupationBean occ2 = new OccupationBean(false, "Administrator");
      OccupationBean occ3 = new OccupationBean(false, "Programmer");
      OccupationBean occ4 = new OccupationBean(false, "System analyst");
      OccupationBean occ5 = new OccupationBean(false, "Other");
      occupationVector.add(occ1);
      occupationVector.add(occ2);
      occupationVector.add(occ3);
      occupationVector.add(occ4);
      occupationVector.add(occ5);

      traineeBean.setOccVector(occupationVector);

      for (int i = 0; i < job.length; i++) {
        for (int j = 0; j < traineeBean.getOccVector().size(); j++) {
          if (traineeBean.getOccVector().get(j).getOccupationName().equals(job[i])) {
            traineeBean.getOccVector().get(j).setSelected(true);
            if (job[i].equals("Other")) {
              traineeBean.setOther(other);
            }
            break;
          }
        }
      }

      AddressBean addressBean =
          new AddressBean(workplace, addressNo, street, subDistrict, district, province, zipcode);
      LoginBean loginBean = new LoginBean(username, password, "user");

      traineeBean.setAddress(addressBean);
      traineeBean.setLogin(loginBean);
      registerBean.getTraineeVector().add(traineeBean);

      boolean verifyLoginOfTrainee = fillRegisterMng.verifyLogin(traineeBean.getLogin());

      if (!verifyLoginOfTrainee) {
        // 13 – ระบบค้นหาจำนวนผู้เข้าอบรมของการลงทะเบียนอบรมหลักสูตรนั้น
        // ๆจากฐานข้อมูล
        // 14 – ระบบคืนค่าการค้นหาจากฐานข้อมูล
        String traineePayment = fillRegisterMng.createFrangmentPayment(registerBean);
        System.out.println(traineePayment);
        traineeBean.setTraineePayment(traineePayment);
        boolean addTrainee = fillRegisterMng.addTrainee(traineeBean);
        if (addTrainee) {
          boolean addAddress = fillRegisterMng.addAddress(traineeBean);
          boolean addLogin = fillRegisterMng.addLogin(traineeBean);
          boolean isOccExist = fillRegisterMng.isOccExist(other);
          if (!isOccExist) {
            boolean addOccupation = fillRegisterMng.addOccupation(traineeBean);
          }
          boolean addTraineeOccupation = fillRegisterMng.addTraineeOccupation(traineeBean);
        } else {
          System.out.println("เกิดข้อผิดพลาด : ไม่สามารถลงทะเบียนได้");
        }

        session.setAttribute("registerBean", registerBean);
        response.sendRedirect("index.jsp");
      } else {
        System.out.println(
            "ขออภัย   ชื่อผู้ใช้ที่ท่านกำหนดไม่สามารถใช้งานได้   เนื่องจากมีผู้ใช้งานแล้ว");
      }
    } catch (Exception e) {
      System.out.println(e);
    }
  }