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