/** コンポーンントにリスナを登録し接続する。 */ private void connect() { // ColumnHelperでカラム変更関連イベントを設定する columnHelper.connect(); EventAdapter adp = new EventAdapter(view.getKeywordFld(), view.getTable()); // 自動IME ボタン view.getAutoIme() .addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JCheckBox check = (JCheckBox) e.getSource(); boolean selected = check.isSelected(); Project.setBoolean("autoIme", selected); if (selected) { // 選択されたらIME ON view.getKeywordFld().addFocusListener(AutoKanjiListener.getInstance()); } else { // されなければ OFF view.getKeywordFld().addFocusListener(AutoRomanListener.getInstance()); } } }); // Sort アイテム view.getSortItem() .addItemListener( new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { JComboBox cb = (JComboBox) e.getSource(); sortItem = cb.getSelectedIndex(); Project.setInt("sortItem", sortItem); } } }); // カレンダによる日付検索を設定する PopupListener pl = new PopupListener(view.getKeywordFld()); // コンテキストメニューを設定する view.getTable().addMouseListener(new ContextListener()); keyBlocker = new KeyBlocker(view.getKeywordFld()); // ----------------------------------------------- // Copy 機能を実装する // ----------------------------------------------- KeyStroke copy = KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()); copyAction = new AbstractAction("コピー") { @Override public void actionPerformed(ActionEvent ae) { copyRow(); } }; view.getTable().getInputMap().put(copy, "Copy"); view.getTable().getActionMap().put("Copy", copyAction); // minagawa^ 仮保存カルテ取得対応 view.getTmpKarteButton() .addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { getTmpKarte(); } }); // minagawa$ // //----------------------------------------------- // // 家族カルテ機能 DnD ^ // //----------------------------------------------- // view.getTable().setDragEnabled(true); // view.getTable().setTransferHandler(new PatientSearchTransferHandler()); }
/** GUI コンポーネントを初期化する。 */ private void initComponents() { // View view = new PatientSearchView(); setUI(view); // ColumnSpecHelperにテーブルを設定する columnHelper.setTable(view.getTable()); // ------------------------------------------ // View のテーブルモデルを置き換える // ------------------------------------------ String[] columnNames = columnHelper.getTableModelColumnNames(); String[] methods = columnHelper.getTableModelColumnMethods(); Class[] cls = columnHelper.getTableModelColumnClasses(); tableModel = new ListTableModel<PatientModel>(columnNames, 0, methods, cls) { @Override public Object getValueAt(int row, int col) { Object ret = null; if (col == ageColumn && ageDisplay) { PatientModel p = getObject(row); if (p != null) { int showMonth = Project.getInt("ageToNeedMonth", 6); ret = AgeCalculater.getAgeAndBirthday(p.getBirthday(), showMonth); } } else { ret = super.getValueAt(row, col); } return ret; } }; view.getTable().setModel(tableModel); // masuda^ table sorter 組み込み sorter = new ListTableSorter(tableModel); view.getTable().setModel(sorter); sorter.setTableHeader(view.getTable().getTableHeader()); // masuda$ // カラム幅更新 columnHelper.updateColumnWidth(); // minagawa^ lsctest view.getTable().getColumnModel().getColumn(stateColumn).setIdentifier(COLUMN_IDENTIFIER_STATE); // minagawa$ // masuda^ // レンダラを設定する // view.getTable().setDefaultRenderer(Object.class, new OddEvenRowRenderer()); // 連ドラ、梅ちゃん先生 PatientListTableRenderer renderer = new PatientListTableRenderer(); renderer.setTable(view.getTable()); renderer.setDefaultRenderer(); // masuda$ // ソートアイテム sortItem = Project.getInt("sortItem", 0); // s.oh^ 2014/08/13 コントロールサイズ調整 String nimbus = "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"; String laf = UIManager.getLookAndFeel().getClass().getName(); if (!laf.equals(nimbus)) { view.getSortItem().setPreferredSize(new Dimension(90, 20)); } // s.oh$ view.getSortItem().setSelectedIndex(sortItem); // Auto IME Windows の時のみ if (!ClientContext.isMac()) { // デフォルトは true boolean autoIme = Project.getBoolean("autoIme", true); view.getAutoIme().setSelected(autoIme); } else { // MAC は disabled // view.getAutoIme().setEnabled(false); view.getAutoIme().setVisible(false); } // 行高 if (ClientContext.isWin()) { view.getTable().setRowHeight(ClientContext.getMoreHigherRowHeight()); } else { view.getTable().setRowHeight(ClientContext.getHigherRowHeight()); } String method = ageDisplay ? AGE_METHOD[0] : AGE_METHOD[1]; ListTableModel tModel = getTableModel(); tModel.setProperty(method, ageColumn); List<ColumnSpec> columnSpecs = columnHelper.getColumnSpecs(); for (int i = 0; i < columnSpecs.size(); i++) { ColumnSpec cs = columnSpecs.get(i); String test = cs.getMethod(); if (test.toLowerCase().endsWith("birthday")) { cs.setMethod(method); break; } } //// s.oh^ 2014/10/22 Icon表示 // view.getSearchLabel().setIcon(ClientContext.getImageIconArias("icon_search_large")); //// s.oh$ // s.oh^ 2014/04/16 メニュー制御 view.getTable().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // s.oh$ }