// IME off
IMEControl.setImeOffIfFocused(view.getKeywordFld());
// Table に ListSelectionListener 登録
final JTable table = view.getTable();
final ObjectReflectTableModel tableModel = (ObjectReflectTableModel) table.getModel();
table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting() == false) {
int[] rows = table.getSelectedRows();
if (rows == null) {
setSelectedPatinet(null);
} else {
PatientModel[] patients = new PatientModel[rows.length];
for (int i=0; i < rows.length; i++) {
rows[i] = table.convertRowIndexToModel(rows[i]);
patients[i] = (PatientModel) tableModel.getObject(rows[i]);
}
setSelectedPatinet(patients);
}
}
}
});
// 絞り込み選択ボタンが解除されたときは背景もクリアする
view.getNarrowingSearchCb().addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
prefs.putBoolean(NARROWING_SEARCH, view.getNarrowingSearchCb().isSelected());
if (tableModel.getObjectCount() > 0 && view.getNarrowingSearchCb().isSelected()) {
view.getKeywordFld().setBackground(PatientSearchPanel.NARROWING_SEARCH_BACKGROUND_COLOR);
} else {
view.getKeywordFld().setBackground(PatientSearchPanel.NORMAL_SEARCH_BACKGROUND_COLOR);
}
}
});
// テーブルの状態による絞り込み検索モードの制御
tableModel.addTableModelListener(new TableModelListener(){
@Override
public void tableChanged(TableModelEvent e) {
if (tableModel.getObjectCount() > 0 && view.getNarrowingSearchCb().isSelected()) {
view.getKeywordFld().setBackground(PatientSearchPanel.NARROWING_SEARCH_BACKGROUND_COLOR);
} else {
view.getKeywordFld().setBackground(PatientSearchPanel.NORMAL_SEARCH_BACKGROUND_COLOR);
}
}