Ejemplo n.º 1
0
  /** コンポーンントにリスナを登録し接続する。 */
  private void connect() {

    // ファイル選択ボタン
    view.getFileBtn()
        .addActionListener(
            new ActionListener() {

              @Override
              public void actionPerformed(ActionEvent e) {
                // ファイル選択
                selectAndParseLabFile();
              }
            });

    // 登録ボタン
    view.getAddBtn()
        .addActionListener(
            new ActionListener() {

              @Override
              public void actionPerformed(ActionEvent e) {
                // 検査結果登録
                view.getAddBtn().setEnabled(false);
                addLabtest();
              }
            });
    view.getAddBtn().setEnabled(false);

    // クリアボタン
    view.getClearBtn()
        .addActionListener(
            new ActionListener() {

              @Override
              public void actionPerformed(ActionEvent e) {
                // 検査結果登録
                getTableModel().setDataProvider(null);
              }
            });
    view.getClearBtn().setEnabled(false);

    // 行選択
    view.getTable()
        .getSelectionModel()
        .addListSelectionListener(
            new ListSelectionListener() {

              @Override
              public void valueChanged(ListSelectionEvent e) {
                if (e.getValueIsAdjusting() == false) {
                  NLaboImportSummary lab =
                      getTableModel().getObject(view.getTable().getSelectedRow());
                  if (lab != null) {
                    setSelectedLabo(lab);
                  }
                }
              }
            });

    // ダブルクリック
    view.getTable()
        .addMouseListener(
            new MouseAdapter() {

              @Override
              public void mouseClicked(MouseEvent e) {
                if (e.getClickCount() == 2) {
                  NLaboImportSummary lab =
                      getTableModel().getObject(view.getTable().getSelectedRow());
                  if (lab != null && lab.getPatient() != null) {
                    openKarte();
                  }
                }
              }
            });

    // コンテキストメニューリスナを設定する
    view.getTable()
        .addMouseListener(
            new MouseAdapter() {

              @Override
              public void mousePressed(MouseEvent e) {
                mabeShowPopup(e);
              }

              @Override
              public void mouseReleased(MouseEvent e) {
                mabeShowPopup(e);
              }

              private void mabeShowPopup(MouseEvent e) {

                if (e.isPopupTrigger()) {

                  final JPopupMenu contextMenu = new JPopupMenu();

                  JTable table = view.getTable();
                  int row = table.rowAtPoint(e.getPoint());
                  Object obj = (Object) getTableModel().getObject(row);
                  int selected = table.getSelectedRow();

                  if (row == selected && obj != null) {
                    String pop1 = ClientContext.getString("watingList.popup.openKarte");
                    contextMenu.add(
                        new JMenuItem(
                            new ReflectAction(pop1, NLaboTestImporter.this, "openKarte")));
                  }
                  contextMenu.show(e.getComponent(), e.getX(), e.getY());
                }
              }
            });

    // data 件数リスナ
    getTableModel()
        .addPropertyChangeListener(
            new PropertyChangeListener() {

              @Override
              public void propertyChange(PropertyChangeEvent evt) {
                List<NLaboImportSummary> list = (List<NLaboImportSummary>) evt.getNewValue();
                boolean enabled = (list != null && list.size() > 0) ? true : false;
                boolean clearOk = enabled;
                if (enabled) {
                  for (NLaboImportSummary sm : list) {
                    if (sm.getKarteId() == null) {
                      enabled = false;
                      break;
                    }
                  }
                }
                view.getAddBtn().setEnabled(enabled);
                view.getClearBtn().setEnabled(clearOk);
                updateCount();
              }
            });
  }