/** コンポーンントにリスナを登録し接続する。 */ 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(); } }); }