package open.dolphin.client; import java.awt.Insets; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.ResourceBundle; import javax.swing.*; import open.dolphin.helper.MenuSupport; import open.dolphin.project.Project; /** * Menu Factory for Mac. * * @author Minagawa, Kazushi. * 2015/04/21 ハードコードされたアクション名を GUIConst定数で置き換え * 2015/04/21 setName() 廃止 */ public class MacMenuFactory extends AbstractMenuFactory { private MenuSupport main; private MenuSupport chart; private JMenuBar menuBar; private JPanel toolPanel; private ActionMap actionMap; private JToolBar toolBar; /** Creates a new instance of ApplicationMenu */ public MacMenuFactory() { } @Override public void setMenuSupports(MenuSupport main, MenuSupport chart) { this.main = main; this.chart = chart; } @Override public JMenuBar getMenuBarProduct() { return menuBar; } @Override public JPanel getToolPanelProduct() { return toolPanel; } @Override public ActionMap getActionMap() { return actionMap; } @Override public JToolBar getToolBar() { return toolBar; } private void storeActions(ActionMap map, ResourceBundle resource) { // New Karte String text = resource.getString("newKarte.Action.text"); ImageIcon icon = ClientContext.getImageIconArias("icon_new_karte"); AbstractAction newKarte = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_NEW_KARTE); } }; map.put(GUIConst.ACTION_NEW_KARTE, newKarte); // New Document text = resource.getString("newDocument.Action.text"); icon = ClientContext.getImageIconArias("icon_new_document"); AbstractAction newDocument = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_NEW_DOCUMENT); } }; map.put(GUIConst.ACTION_NEW_DOCUMENT, newDocument); // Open Karte text = resource.getString("openKarte.Action.text"); AbstractAction openKarte = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_OPEN_KARTE); } }; map.put(GUIConst.ACTION_OPEN_KARTE, openKarte); // Close text = resource.getString("close.Action.text"); AbstractAction close = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_CLOSE); } }; map.put(GUIConst.ACTION_CLOSE, close); // Save text = resource.getString("save.Action.text"); icon = ClientContext.getImageIconArias("icon_save"); AbstractAction save = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_SAVE); } }; map.put(GUIConst.ACTION_SAVE, save); // Delete text = resource.getString("delete.Action.text"); AbstractAction delete = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_DELETE); } }; map.put(GUIConst.ACTION_DELETE, delete); // Printer Setup text = resource.getString("printerSetup.Action.text"); AbstractAction printerSetup = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_PRINTER_SETUP); } }; map.put(GUIConst.ACTION_PRINTER_SETUP, printerSetup); // Print text = resource.getString("print.Action.text"); icon = ClientContext.getImageIconArias("icon_printer"); AbstractAction print = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_PRINT); } }; map.put(GUIConst.ACTION_PRINT, print); // Exit text = resource.getString("processExit.Action.text"); AbstractAction processExit = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_PROCESS_EXIT); } }; map.put(GUIConst.ACTION_PROCESS_EXIT, processExit); // Modify text = resource.getString("modifyKarte.Action.text"); icon = ClientContext.getImageIconArias("icon_edit_karte_document"); AbstractAction modifyKarte = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_MODIFY_KARTE); } }; map.put(GUIConst.ACTION_MODIFY_KARTE, modifyKarte); //s.oh^ 2014/04/03 文書の複製 //text = "複製"; text = resource.getString("copyDocument.Action.text"); icon = ClientContext.getImageIconArias("icon_edit_karte_document"); AbstractAction copyDocument = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain("copyDocument"); } }; map.put("copyDocument", copyDocument); //s.oh$ // Undo text = resource.getString("undo.Action.text"); icon = ClientContext.getImageIconArias("icon_undo"); AbstractAction undo = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_UNDO); } }; map.put(GUIConst.ACTION_UNDO, undo); // Redo text = resource.getString("redo.Action.text"); icon = ClientContext.getImageIconArias("icon_redo"); AbstractAction redo = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_REDO); } }; map.put(GUIConst.ACTION_REDO, redo); // Cut text = resource.getString("cut.Action.text"); icon = ClientContext.getImageIconArias("icon_cut"); AbstractAction cut = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent ae) { chart.cut(); } }; map.put(GUIConst.ACTION_CUT, cut); // Copy text = resource.getString("copy.Action.text"); icon = ClientContext.getImageIconArias("icon_copy"); AbstractAction copy = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent ae) { chart.copy(); } }; map.put(GUIConst.ACTION_COPY, copy); // Paste text = resource.getString("paste.Action.text"); icon = ClientContext.getImageIconArias("icon_paste"); AbstractAction paste = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent ae) { chart.paste(); } }; map.put(GUIConst.ACTION_PASTE, paste); // 昇順 text = resource.getString("ascending.Action.text"); AbstractAction ascending = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_ASCENDING); } }; map.put(GUIConst.ACTION_ASCENDING, ascending); // 降順 text = resource.getString("descending.Action.text"); AbstractAction descending = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_DESCENDING); } }; map.put(GUIConst.ACTION_DESCENDING, descending); // 修正履歴表示 text = resource.getString("showModified.Action.text"); AbstractAction showModified = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_SHOW_MODIFIED); } }; map.put(GUIConst.ACTION_SHOW_MODIFIED, showModified); // 環境設定 text = resource.getString("setKarteEnviroment.Action.text"); AbstractAction setKarteEnviroment = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_SET_KARTE_ENVIROMENT); } }; map.put(GUIConst.ACTION_SET_KARTE_ENVIROMENT, setKarteEnviroment); // 保険選択 AbstractAction selectInsurance = new AbstractAction() { @Override public void actionPerformed(ActionEvent ae) { } }; map.put(GUIConst.ACTION_SELECT_INSURANCE, selectInsurance); // 処方日数一括変更 text = resource.getString("changeNumOfDatesAll.Action.text"); AbstractAction changeNumOfDatesAll = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_CHANGE_NUM_OF_DATES_ALL); } }; map.put(GUIConst.ACTION_CHANGE_NUM_OF_DATES_ALL, changeNumOfDatesAll); // 処方箋印刷 text = resource.getString("createPrescription.Action.text"); AbstractAction createPrescription = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain("createPrescription"); } }; map.put("createPrescription", createPrescription); // Send Claim 元町皮ふ科 text = resource.getString("sendClaim.Action.text"); AbstractAction sendClaim = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_SEND_CLAIM); } }; map.put(GUIConst.ACTION_SEND_CLAIM, sendClaim); // 併用禁忌チェック text = resource.getString("checkInteraction.Action.text"); AbstractAction checkInteraction = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_CHECK_INTERACTION); } }; map.put(GUIConst.ACTION_CHECK_INTERACTION, checkInteraction); // 挿入 病名 text = resource.getString("insertDisease.Action.text"); AbstractAction insertDisease = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { } }; map.put(GUIConst.ACTION_INSERT_DISEASE, insertDisease); // 挿入 テキスト text = resource.getString("insertText.Action.text"); AbstractAction insertText = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { } }; map.put(GUIConst.ACTION_INSERT_TEXT, insertText); // 挿入 シェーマ text = resource.getString("insertSchema.Action.text"); AbstractAction insertSchema = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { } }; map.put(GUIConst.ACTION_INSERT_SCHEMA, insertSchema); // 添付/挿入 text = resource.getString("attachment.Action.text"); AbstractAction attachment = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_ATTACHMENT); } }; map.put(GUIConst.ACTION_ATTACHMENT, attachment); // 挿入 スタンプ text = resource.getString("insertStamp.Action.text"); AbstractAction insertStamp = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { } }; map.put(GUIConst.ACTION_INSERT_STAMP, insertStamp); // Size text = resource.getString("size.text"); AbstractAction size = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { } }; map.put(GUIConst.ACTION_SIZE, size); // 大きく text = resource.getString("fontLarger.Action.text"); AbstractAction fontLarger = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_LARGER); } }; map.put(GUIConst.ACTION_FONT_LARGER, fontLarger); // 小さく text = resource.getString("fontSmaller.Action.text"); AbstractAction fontSmaller = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_SMALLER); } }; map.put(GUIConst.ACTION_FONT_SMALLER, fontSmaller); // 標準 text = resource.getString("fontStandard.Action.text"); AbstractAction fontStandard = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_STANDARD); } }; map.put(GUIConst.ACTION_FONT_STANDARD, fontStandard); // スタイル text = resource.getString("style.text"); AbstractAction style = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { } }; map.put(GUIConst.ACTION_STYLE, style); // ボールド text = resource.getString("fontBold.Action.text"); AbstractAction fontBold = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_BOLD); } }; map.put(GUIConst.ACTION_FONT_BOLD, fontBold); // イタリック text = resource.getString("fontItalic.Action.text"); AbstractAction fontItalic = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_ITALIC); } }; map.put(GUIConst.ACTION_FONT_ITALIC, fontItalic); // 下線 text = resource.getString("fontUnderline.Action.text"); AbstractAction fontUnderline = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_UNDERLINE); } }; map.put(GUIConst.ACTION_FONT_UNDERLINE, fontUnderline); // Justify text = resource.getString("justify.text"); AbstractAction justify = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { } }; map.put(GUIConst.ACTION_JUSTIFY, justify); // 左揃え text = resource.getString("leftJustify.Action.text"); AbstractAction leftJustify = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_LEFT_JUSTIFY); } }; map.put(GUIConst.ACTION_LEFT_JUSTIFY, leftJustify); // 中央 text = resource.getString("centerJustify.Action.text"); AbstractAction centerJustify = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_CENTER_JUSTIFY); } }; map.put(GUIConst.ACTION_CENTER_JUSTIFY, centerJustify); // 右よせ text = resource.getString("rightJustify.Action.text"); AbstractAction rightJustify = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_RIGHT_JUSTIFY); } }; map.put(GUIConst.ACTION_RIGHT_JUSTIFY, rightJustify); // カラー text = resource.getString("color.text"); AbstractAction color = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { } }; map.put(GUIConst.ACTION_COLOR, color); // 赤 text = resource.getString("fontRed.Action.text"); AbstractAction fontRed = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_RED); } }; map.put(GUIConst.ACTION_FONT_RED, fontRed); // オレンジ text = resource.getString("fontOrange.Action.text"); AbstractAction fontOrange = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_ORANGE); } }; map.put(GUIConst.ACTION_FONT_ORANGE, fontOrange); // 黄色 text = resource.getString("fontYellow.Action.text"); AbstractAction fontYellow = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_YELLOW); } }; map.put(GUIConst.ACTION_FONT_YELLOW, fontYellow); // 緑 text = resource.getString("fontGreen.Action.text"); AbstractAction fontGreen = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_GREEN); } }; map.put(GUIConst.ACTION_FONT_GREEN, fontGreen); // 青 text = resource.getString("fontBlue.Action.text"); AbstractAction fontBlue = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_BLUE); } }; map.put(GUIConst.ACTION_FONT_BLUE, fontBlue); // 紫 text = resource.getString("fontPurple.Action.text"); AbstractAction fontPurple = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_PURPLE); } }; map.put(GUIConst.ACTION_FONT_PURPLE, fontPurple); // グレー text = resource.getString("fontGray.Action.text"); AbstractAction fontGray = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_GRAY); } }; map.put(GUIConst.ACTION_FONT_GRAY, fontGray); // ブラック text = resource.getString("fontBlack.Action.text"); AbstractAction fontBlack = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain(GUIConst.ACTION_FONT_BLACK); } }; map.put(GUIConst.ACTION_FONT_BLACK, fontBlack); // リセット 未使用? AbstractAction resetStyle = new AbstractAction() { @Override public void actionPerformed(ActionEvent ae) { chart.sendToChain("resetStyle"); } }; map.put("resetStyle", resetStyle); // StampBox text = resource.getString("showStampBox.Action.text"); AbstractAction showStampBox = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_SHOW_STAMPBOX); } }; map.put(GUIConst.ACTION_SHOW_STAMPBOX, showStampBox); // シェーマBox text = resource.getString("showSchemaBox.Action.text"); AbstractAction showSchemaBox = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_SHOW_SCHEMABOX); } }; map.put(GUIConst.ACTION_SHOW_SCHEMABOX, showSchemaBox); // パスワード変更 text = resource.getString("changePassword.Action.text"); AbstractAction changePassword = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_CHANGE_PASSWORD); } }; map.put(GUIConst.ACTION_CHANGE_PASSWORD, changePassword); // 施設情報編集 text = resource.getString("editFacilityInfo.Action.text"); AbstractAction editFacilityInfo = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_EDIT_FACILITY_INFO); } }; map.put(GUIConst.ACTION_EDIT_FACILITY_INFO, editFacilityInfo); // ユーザー追加 text = resource.getString("addUser.Action.text"); AbstractAction addUser = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_ADD_USER); } }; map.put(GUIConst.ACTION_ADD_USER, addUser); //s.oh^ 2014/07/08 クラウド0対応 //minagawa^ 統計情報 text = resource.getString("activities.Action.text"); AbstractAction fetchActivities = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_FETCH_ACTIVITIES); } }; map.put(GUIConst.ACTION_FETCH_ACTIVITIES, fetchActivities); //minagawa$ //s.oh$ // 医療機関コード取得 text = resource.getString("fetchFacilityCode.Action.text"); AbstractAction fetchFacilityCode = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_FETCH_FACILITY_CODE); } }; map.put(GUIConst.ACTION_FETCH_FACILITY_CODE, fetchFacilityCode); // Support text = resource.getString("browseDolphinSupport.Action.text"); AbstractAction browseDolphinSupport = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_BROWS_DOLPHIN); } }; map.put(GUIConst.ACTION_BROWS_DOLPHIN, browseDolphinSupport); // Dolphin text = resource.getString("browseDolphinProject.Action.text"); AbstractAction browseDolphinProject = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_BROWS_DOLPHIN_PROJECT); } }; map.put(GUIConst.ACTION_BROWS_DOLPHIN_PROJECT, browseDolphinProject); // MedXML text = resource.getString("browseMedXml.Action.text"); AbstractAction browseMedXml = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_BROWS_MEDXML); } }; map.put(GUIConst.ACTION_BROWS_MEDXML, browseMedXml); // About text = resource.getString("showAbout.Action.text"); AbstractAction showAbout = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain(GUIConst.ACTION_SHOW_ABOUT); } }; map.put(GUIConst.ACTION_SHOW_ABOUT, showAbout); //s.oh^ テキストの挿入 2013/08/12 text = resource.getString("soapane.Action.text"); icon = ClientContext.getImageIconArias(resource.getString("soapane.Action.icon")); AbstractAction insertSOAText = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent e) { chart.sendToChain("insertSOAText"); } }; map.put("insertSOAText", insertSOAText); text = resource.getString("ppane.Action.text"); icon = ClientContext.getImageIconArias(resource.getString("ppane.Action.icon")); AbstractAction insertPText = new AbstractAction(text, icon) { @Override public void actionPerformed(ActionEvent e) { chart.sendToChain("insertPText"); } }; map.put("insertPText", insertPText); //s.oh$ ////s.oh^ 他プロセス連携(アイコン) 2014/05/09 ////minagawa^ Icon Server // //icon = ClientContext.getImageIcon(resource.getString("ppane.Action.icon")); // icon = ClientContext.getImageIconArias("icon_other_process"); ////minagawa$ // AbstractAction otherProcessIcon1Link = new AbstractAction("", icon) { // @Override // public void actionPerformed(ActionEvent e) { // chart.sendToChain("otherProcessIcon1Link"); // } // }; // map.put("otherProcessIcon1Link", otherProcessIcon1Link); // // AbstractAction otherProcessIcon2Link = new AbstractAction("", icon) { // @Override // public void actionPerformed(ActionEvent e) { // chart.sendToChain("otherProcessIcon2Link"); // } // }; // map.put("otherProcessIcon2Link", otherProcessIcon2Link); // // // AbstractAction otherProcessIcon3Link = new AbstractAction("", icon) { // @Override // public void actionPerformed(ActionEvent e) { // chart.sendToChain("otherProcessIcon3Link"); // } // }; // map.put("otherProcessIcon3Link", otherProcessIcon3Link); ////s.oh$ //minagawa^ delete ////s.oh^ 2014/08/19 受付バーコード対応 // text = resource.getString("receipt.barcode.Action.text"); // AbstractAction receiptBarcode = new AbstractAction(text) { // @Override // public void actionPerformed(ActionEvent e) { // main.sendToChain("receiptBarcode"); // } // }; // map.put("receiptBarcode", receiptBarcode); ////s.oh$ //s.oh^ 2014/07/22 一括カルテPDF出力 text = resource.getString("allkartepdf.Action.text"); AbstractAction outputAllKartePdf = new AbstractAction(text) { @Override public void actionPerformed(ActionEvent ae) { main.sendToChain("outputAllKartePdf"); } }; map.put("outputAllKartePdf", outputAllKartePdf); //s.oh$ } @Override public void build(JMenuBar menuBar) { this.menuBar = menuBar; ResourceBundle resource = ClientContext.getMyBundle(MacMenuFactory.class); actionMap = new ActionMap(); storeActions(actionMap, resource); // ToolBar toolBar = new JToolBar(); toolBar.setBorderPainted(false); toolBar.addSeparator(); if (chart != null) { //s.oh^ 2014/09/19 ツールバーの表示改善 //toolPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); toolPanel = new JPanel(); toolPanel.setLayout(new BoxLayout(toolPanel, BoxLayout.X_AXIS)); //s.oh$ toolPanel.add(toolBar); } //****************************************************** // File Menu //****************************************************** JMenu file = new JMenu(); // 新規カルテ JMenuItem newKarte = new JMenuItem(); newKarte.setAction(actionMap.get(GUIConst.ACTION_NEW_KARTE)); setAccelerator(newKarte, KeyEvent.VK_N); newKarte.setIcon(null); file.add(newKarte); if (chart != null) { JButton newKarteBtn = new JButton(); newKarteBtn.setAction(actionMap.get(GUIConst.ACTION_NEW_KARTE)); newKarteBtn.setText(null); newKarteBtn.setToolTipText(resource.getString("newKarte.Action.toolTipText")); newKarteBtn.setMargin(new Insets(3,3,3,3)); newKarteBtn.setFocusable(false); newKarteBtn.setBorderPainted(false); toolBar.add(newKarteBtn); } // 新規文書 JMenuItem newDocument = new JMenuItem(); newDocument.setAction(actionMap.get(GUIConst.ACTION_NEW_DOCUMENT)); newDocument.setIcon(null); file.add(newDocument); if (chart != null) { JButton newDocBtn = new JButton(); newDocBtn.setAction(actionMap.get(GUIConst.ACTION_NEW_DOCUMENT)); newDocBtn.setText(null); newDocBtn.setToolTipText(resource.getString("newDocument.Action.toolTipText")); newDocBtn.setMargin(new Insets(3,3,3,3)); newDocBtn.setFocusable(false); newDocBtn.setBorderPainted(false); toolBar.add(newDocBtn); } // 開く JMenuItem openKarte = new JMenuItem(); openKarte.setAction(actionMap.get(GUIConst.ACTION_OPEN_KARTE)); setAccelerator(openKarte, KeyEvent.VK_O); file.add(openKarte); file.add(new JSeparator()); // 閉じる JMenuItem close = new JMenuItem(); close.setAction(actionMap.get(GUIConst.ACTION_CLOSE)); setAccelerator(close, KeyEvent.VK_W); file.add(close); // 保存 JMenuItem save = new JMenuItem(); save.setAction(actionMap.get(GUIConst.ACTION_SAVE)); setAccelerator(save, KeyEvent.VK_S); save.setIcon(null); file.add(save); if (chart != null) { JButton saveBtn = new JButton(); saveBtn.setAction(actionMap.get(GUIConst.ACTION_SAVE)); saveBtn.setText(null); saveBtn.setToolTipText(resource.getString("save.Action.toolTipText")); saveBtn.setMargin(new Insets(3,3,3,3)); saveBtn.setFocusable(false); saveBtn.setBorderPainted(false); toolBar.add(saveBtn); } file.add(new JSeparator()); // 削除 //s.oh^ 2013/09/05 if(Project.getBoolean("delete.karte.enable", true)) { //s.oh$ JMenuItem delete = new JMenuItem(); delete.setAction(actionMap.get(GUIConst.ACTION_DELETE)); file.add(delete); file.add(new JSeparator()); } // 印刷設定 JMenuItem printerSetup = new JMenuItem(); printerSetup.setAction(actionMap.get(GUIConst.ACTION_PRINTER_SETUP)); file.add(printerSetup); // 印刷 JMenuItem print = new JMenuItem(); print.setAction(actionMap.get(GUIConst.ACTION_PRINT)); setAccelerator(print, KeyEvent.VK_P); print.setIcon(null); file.add(print); if (chart != null) { JButton printBtn = new JButton(); printBtn.setAction(actionMap.get(GUIConst.ACTION_PRINT)); printBtn.setText(null); printBtn.setToolTipText(resource.getString("print.Action.toolTipText")); printBtn.setMargin(new Insets(3,3,3,3)); printBtn.setFocusable(false); printBtn.setBorderPainted(false); toolBar.add(printBtn); } //****************************************************** // Edit Menu //****************************************************** JMenu edit = new JMenu(); toolBar.addSeparator(); // 修正 JMenuItem modifyKarte = new JMenuItem(); modifyKarte.setAction(actionMap.get(GUIConst.ACTION_MODIFY_KARTE)); setAccelerator(modifyKarte, KeyEvent.VK_M); modifyKarte.setIcon(null); edit.add(modifyKarte); if (chart != null) { JButton modifyKarteBtn = new JButton(); modifyKarteBtn.setAction(actionMap.get(GUIConst.ACTION_MODIFY_KARTE)); modifyKarteBtn.setText(null); modifyKarteBtn.setToolTipText(resource.getString("modifyKarte.Action.toolTipText")); modifyKarteBtn.setMargin(new Insets(3,3,3,3)); modifyKarteBtn.setFocusable(false); modifyKarteBtn.setBorderPainted(false); toolBar.add(modifyKarteBtn); } edit.add(new JSeparator()); // Undo JMenuItem undo = new JMenuItem(); undo.setAction(actionMap.get(GUIConst.ACTION_UNDO)); setAccelerator(undo, KeyEvent.VK_Z); undo.setIcon(null); edit.add(undo); if (chart != null) { JButton undoBtn = new JButton(); undoBtn.setAction(actionMap.get(GUIConst.ACTION_UNDO)); undoBtn.setText(null); undoBtn.setToolTipText(resource.getString("undo.Action.toolTipText")); undoBtn.setMargin(new Insets(3,3,3,3)); undoBtn.setFocusable(false); undoBtn.setBorderPainted(false); toolBar.add(undoBtn); } // Redo JMenuItem redo = new JMenuItem(); redo.setAction(actionMap.get(GUIConst.ACTION_REDO)); setAccelerator(redo, KeyEvent.VK_Z, true); redo.setIcon(null); edit.add(redo); if (chart != null) { JButton redoBtn = new JButton(); redoBtn.setAction(actionMap.get(GUIConst.ACTION_REDO)); redoBtn.setText(null); redoBtn.setToolTipText(resource.getString("redo.Action.toolTipText")); redoBtn.setMargin(new Insets(3,3,3,3)); redoBtn.setFocusable(false); redoBtn.setBorderPainted(false); toolBar.add(redoBtn); } edit.add(new JSeparator()); // Cut JMenuItem cut = new JMenuItem(); cut.setAction(actionMap.get(GUIConst.ACTION_CUT)); setAccelerator(cut, KeyEvent.VK_X); cut.setIcon(null); edit.add(cut); if (chart != null) { JButton cutBtn = new JButton(); cutBtn.setAction(actionMap.get(GUIConst.ACTION_CUT)); cutBtn.setText(null); cutBtn.setToolTipText(resource.getString("cut.Action.toolTipText")); cutBtn.setMargin(new Insets(3,3,3,3)); cutBtn.setFocusable(false); cutBtn.setBorderPainted(false); toolBar.add(cutBtn); } // Copy JMenuItem copy = new JMenuItem(); copy.setAction(actionMap.get(GUIConst.ACTION_COPY)); setAccelerator(copy, KeyEvent.VK_C); copy.setIcon(null); edit.add(copy); if (chart != null) { JButton copyBtn = new JButton(); copyBtn.setAction(actionMap.get(GUIConst.ACTION_COPY)); copyBtn.setText(null); copyBtn.setToolTipText(resource.getString("copy.Action.toolTipText")); copyBtn.setMargin(new Insets(3,3,3,3)); copyBtn.setFocusable(false); copyBtn.setBorderPainted(false); toolBar.add(copyBtn); } // Paste JMenuItem paste = new JMenuItem(); paste.setAction(actionMap.get(GUIConst.ACTION_PASTE)); setAccelerator(paste, KeyEvent.VK_V); paste.setIcon(null); edit.add(paste); if (chart != null) { JButton pasteBtn = new JButton(); pasteBtn.setAction(actionMap.get(GUIConst.ACTION_PASTE)); pasteBtn.setText(null); pasteBtn.setToolTipText(resource.getString("paste.Action.toolTipText")); pasteBtn.setMargin(new Insets(3,3,3,3)); pasteBtn.setFocusable(false); pasteBtn.setBorderPainted(false); toolBar.add(pasteBtn); } //****************************************************** // Karte Menu //****************************************************** JMenu karte = new JMenu(); // 処方日数変更 JMenuItem changeNumOfDatesAll = new JMenuItem(); changeNumOfDatesAll.setAction(actionMap.get(GUIConst.ACTION_CHANGE_NUM_OF_DATES_ALL)); setAccelerator(changeNumOfDatesAll, KeyEvent.VK_R); karte.add(changeNumOfDatesAll); // 元町皮ふ科 CLAIM 送信 JMenuItem sendClaim = new JMenuItem(); sendClaim.setAction(actionMap.get(GUIConst.ACTION_SEND_CLAIM)); setAccelerator(sendClaim, KeyEvent.VK_L); karte.add(sendClaim); //------------------- // 処方箋印刷 createPrescription //------------------- //s.oh^ 2013/01/24 不要機能の削除 //JMenuItem createPrescription = new JMenuItem(); //createPrescription.setName("createPrescription"); //createPrescription.setAction(actionMap.get("createPrescription")); ////setAccelerator(createPrescription, KeyEvent.VK_M); //karte.add(createPrescription); //s.oh$ //------------------- // 併用禁忌チェック checkInteraction //------------------- //s.oh^ 2013/01/24 不要機能の削除(復活) -> 不要機能とは何事??? JMenuItem checkInteraction = new JMenuItem(); checkInteraction.setAction(actionMap.get(GUIConst.ACTION_CHECK_INTERACTION)); setAccelerator(checkInteraction, KeyEvent.VK_I); karte.add(checkInteraction); //s.oh$ karte.add(new JSeparator()); // 昇順 JRadioButtonMenuItem ascending = new JRadioButtonMenuItem(); ascending.setAction(actionMap.get(GUIConst.ACTION_ASCENDING)); actionMap.get(GUIConst.ACTION_ASCENDING).putValue("menuItem",ascending); karte.add(ascending); // 降順 JRadioButtonMenuItem descending = new JRadioButtonMenuItem(); descending.setAction(actionMap.get(GUIConst.ACTION_DESCENDING)); actionMap.get(GUIConst.ACTION_DESCENDING).putValue("menuItem",descending); karte.add(descending); // RadiButtonGroup ButtonGroup bg = new ButtonGroup(); bg.add(ascending); bg.add(descending); // 修正履歴表示 JCheckBoxMenuItem showModified = new JCheckBoxMenuItem(); showModified.setAction(actionMap.get(GUIConst.ACTION_SHOW_MODIFIED)); actionMap.get(GUIConst.ACTION_SHOW_MODIFIED).putValue("menuItem",showModified); karte.add(showModified); karte.add(new JSeparator()); // 環境設定 JMenuItem setKarteEnviroment = new JMenuItem(); setKarteEnviroment.setAction(actionMap.get(GUIConst.ACTION_SET_KARTE_ENVIROMENT)); setAccelerator(setKarteEnviroment, KeyEvent.VK_E); karte.add(setKarteEnviroment); //****************************************************** // Insert Menu //****************************************************** JMenu insert = new JMenu(); insert.setName(GUIConst.MENU_NAME_INSERT); if (chart != null) { insert.addMenuListener(chart); } JMenu insertDisease = new JMenu(); insertDisease.setAction(actionMap.get(GUIConst.ACTION_INSERT_DISEASE)); insert.add(insertDisease); JMenu insertText = new JMenu(); insertText.setAction(actionMap.get(GUIConst.ACTION_INSERT_TEXT)); insert.add(insertText); JMenu insertSchema = new JMenu(); insertSchema.setAction(actionMap.get(GUIConst.ACTION_INSERT_SCHEMA)); insert.add(insertSchema); JMenu insertStamp = new JMenu(); insertStamp.setAction(actionMap.get(GUIConst.ACTION_INSERT_STAMP)); insert.add(insertStamp); //****************************************************** // Text Menu //****************************************************** JMenu text = new JMenu(); text.setName(GUIConst.MENU_NAME_TEXT); if (chart != null) { text.addMenuListener(chart); } //// size //// JMenu size = new JMenu(); size.setAction(actionMap.get(GUIConst.ACTION_SIZE)); text.add(size); JMenuItem fontLarger = new JMenuItem(); fontLarger.setAction(actionMap.get(GUIConst.ACTION_FONT_LARGER)); size.add(fontLarger); JMenuItem fontSmaller = new JMenuItem(); fontSmaller.setAction(actionMap.get(GUIConst.ACTION_FONT_SMALLER)); size.add(fontSmaller); JMenuItem fontStandard = new JMenuItem(); fontStandard.setAction(actionMap.get(GUIConst.ACTION_FONT_STANDARD)); size.add(fontStandard); //// style //// JMenu style = new JMenu(); style.setAction(actionMap.get(GUIConst.ACTION_STYLE)); text.add(style); JMenuItem fontBold = new JMenuItem(); fontBold.setAction(actionMap.get(GUIConst.ACTION_FONT_BOLD)); setAccelerator(fontBold, KeyEvent.VK_B); style.add(fontBold); JMenuItem fontItalic = new JMenuItem(); fontItalic.setAction(actionMap.get(GUIConst.ACTION_FONT_ITALIC)); setAccelerator(fontItalic, KeyEvent.VK_I); style.add(fontItalic); JMenuItem fontUnderline = new JMenuItem(); fontUnderline.setAction(actionMap.get(GUIConst.ACTION_FONT_UNDERLINE)); setAccelerator(fontUnderline, KeyEvent.VK_U); style.add(fontUnderline); //// justify //// JMenu justify = new JMenu(); justify.setAction(actionMap.get(GUIConst.ACTION_JUSTIFY)); text.add(justify); JMenuItem leftJustify = new JMenuItem(); leftJustify.setAction(actionMap.get(GUIConst.ACTION_LEFT_JUSTIFY)); justify.add(leftJustify); JMenuItem centerJustify = new JMenuItem(); centerJustify.setAction(actionMap.get(GUIConst.ACTION_CENTER_JUSTIFY)); justify.add(centerJustify); JMenuItem rightJustify = new JMenuItem(); rightJustify.setAction(actionMap.get(GUIConst.ACTION_RIGHT_JUSTIFY)); justify.add(rightJustify); //// Color //// JMenu color = new JMenu(); color.setAction(actionMap.get(GUIConst.ACTION_COLOR)); text.add(color); JMenuItem fontRed = new JMenuItem(); fontRed.setAction(actionMap.get(GUIConst.ACTION_FONT_RED)); color.add(fontRed); JMenuItem fontOrange = new JMenuItem(); fontOrange.setAction(actionMap.get(GUIConst.ACTION_FONT_ORANGE)); color.add(fontOrange); JMenuItem fontYellow = new JMenuItem(); fontYellow.setAction(actionMap.get(GUIConst.ACTION_FONT_YELLOW)); color.add(fontYellow); JMenuItem fontGreen = new JMenuItem(); fontGreen.setAction(actionMap.get(GUIConst.ACTION_FONT_GREEN)); color.add(fontGreen); JMenuItem fontBlue = new JMenuItem(); fontBlue.setAction(actionMap.get(GUIConst.ACTION_FONT_BLUE)); color.add(fontBlue); JMenuItem fontPurple = new JMenuItem(); fontPurple.setAction(actionMap.get(GUIConst.ACTION_FONT_PURPLE)); color.add(fontPurple); JMenuItem fontGray = new JMenuItem(); fontGray.setAction(actionMap.get(GUIConst.ACTION_FONT_GRAY)); color.add(fontGray); JMenuItem fontBlack = new JMenuItem(); fontBlack.setAction(actionMap.get(GUIConst.ACTION_FONT_BLACK)); color.add(fontBlack); //****************************************************** // Tool menu //****************************************************** JMenu tool = new JMenu(); JMenuItem showStampBox = new JMenuItem(); showStampBox.setAction(actionMap.get(GUIConst.ACTION_SHOW_STAMPBOX)); tool.add(showStampBox); JMenuItem showSchemaBox = new JMenuItem(); showSchemaBox.setAction(actionMap.get(GUIConst.ACTION_SHOW_SCHEMABOX)); tool.add(showSchemaBox); tool.add(new JSeparator()); JMenuItem changePassword = new JMenuItem(); changePassword.setAction(actionMap.get(GUIConst.ACTION_CHANGE_PASSWORD)); tool.add(changePassword); JMenuItem editFacilityInfo = new JMenuItem(); editFacilityInfo.setAction(actionMap.get(GUIConst.ACTION_EDIT_FACILITY_INFO)); tool.add(editFacilityInfo); JMenuItem addUser = new JMenuItem(); addUser.setAction(actionMap.get(GUIConst.ACTION_ADD_USER)); tool.add(addUser); tool.add(new JSeparator()); //s.oh^ 2014/07/08 クラウド0対応 if(Project.isCloudZero()) { JMenuItem activities = new JMenuItem(); activities.setAction(actionMap.get(GUIConst.ACTION_FETCH_ACTIVITIES)); tool.add(activities); } //s.oh$ // 不要機能の削除(復活) -> 不要機能とは何事 ??? JMenuItem fetchFacilityCode = new JMenuItem(); fetchFacilityCode.setAction(actionMap.get(GUIConst.ACTION_FETCH_FACILITY_CODE)); tool.add(fetchFacilityCode); LinkedHashMap<String, String> toolProviders = ClientContext.getToolProviders(); if (toolProviders != null && toolProviders.size() > 0) { tool.add(new JSeparator()); Iterator<String> iter = toolProviders.keySet().iterator(); while (iter.hasNext()) { String cmd = iter.next(); final String className = toolProviders.get(cmd); JMenuItem mItem = new JMenuItem(); AbstractAction a = new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { main.sendToChain("invokeToolPlugin", className); } }; mItem.setAction(a); mItem.setText(cmd); tool.add(mItem); } } //minagawa^ delete ////s.oh^ 2014/08/19 受付バーコード対応 // tool.add(new JSeparator()); // JMenuItem receiptBarcode = new JMenuItem(); // receiptBarcode.setAction(actionMap.get(GUIConst.ACTION_RECEIPT_BARCODE)); // tool.add(receiptBarcode); ////s.oh$ //s.oh^ 2014/07/22 一括カルテPDF出力 if(!Project.isReadOnly() && Project.getBoolean("output.all.karte.pdf")) { tool.add(new JSeparator()); JMenuItem outputAllKartePdf = new JMenuItem(); outputAllKartePdf.setAction(actionMap.get(GUIConst.ACTION_OUTPUT_ALLKARTEPDF)); tool.add(outputAllKartePdf); } //s.oh$ //***************************************************** // Help Menu //***************************************************** JMenu help = new JMenu(); JMenuItem browseDolphinSupport = new JMenuItem(); browseDolphinSupport.setAction(actionMap.get(GUIConst.ACTION_BROWS_DOLPHIN)); help.add(browseDolphinSupport); JMenuItem browseDolphinProject = new JMenuItem(); browseDolphinProject.setAction(actionMap.get(GUIConst.ACTION_BROWS_DOLPHIN_PROJECT)); help.add(browseDolphinProject); JMenuItem browseMedXml = new JMenuItem(); browseMedXml.setAction(actionMap.get(GUIConst.ACTION_BROWS_MEDXML)); help.add(browseMedXml); /******************************************************/ menuBar.add(file, 0); //s.oh^ 2014/08/19 ID権限 //menuBar.add(edit, 1); //menuBar.add(karte, 2); //menuBar.add(insert, 3); //menuBar.add(text, 4); //menuBar.add(tool, 5); //// 6 = Window //menuBar.add(help, 7); if(!Project.isOtherCare()) { menuBar.add(edit, 1); menuBar.add(karte, 2); menuBar.add(insert, 3); menuBar.add(text, 4); menuBar.add(tool, 5); // 6 = Window menuBar.add(help, 7); } //s.oh$ /******************************************************/ file.setText(resource.getString("fileMenu.text")); edit.setText(resource.getString("editMenu.text")); karte.setText(resource.getString("karteMenu.text")); insert.setText(resource.getString("insertMenu.text")); text.setText(resource.getString("textMenu.text")); tool.setText(resource.getString("toolMenu.text")); help.setText(resource.getString("helpMenu.text")); size.setText(resource.getString("size.text")); style.setText(resource.getString("style.text")); justify.setText(resource.getString("justify.text")); color.setText(resource.getString("color.text")); /******************************************************/ } private void setAccelerator(JMenuItem item, int key) { item.setAccelerator(KeyStroke.getKeyStroke(key, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); } private void setAccelerator(JMenuItem item, int key, boolean shiftMask) { item.setAccelerator( KeyStroke.getKeyStroke(key, (java.awt.event.InputEvent.SHIFT_MASK | (Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())))); } }