« 初診・再診の自動入力 | トップページ | スタンプ入れ替えロック »

2009年3月 9日 (月)

Mac のメニューバー

Macintosh では,メニューは画面の上端のメニュー領域に表示される。そのため,メニューを持たないスタンプウインドウやシェーマウインドウを選ぶと,メニューが消えてしまう。消えても実用上問題はないのだが,どうも気になる。これを消えないようにするため,StampBox と SchemaBox (ImageBox) にもメニューを組み込んだ。

 

ImageBox.java の編集

private void initComponent() {
 ・
 ・
////↓   mac で SchemaBox にもメニューバーを出す
  if (isMac) {
    WindowSupport windowSupport = WindowSupport.create(title);
    frame = windowSupport.getFrame();
    javax.swing.JMenuBar myMenuBar = windowSupport.getMenuBar();
    mediator = new Mediator(this);
    AbstractMenuFactory appMenu = AbstractMenuFactory.getFactory();

    // mainWindow の menuSupport をセットしておけばメニュー処理は mainWindow がしてくれる
    appMenu.setMenuSupports(getContext().getMenuSupport(), mediator);
    appMenu.build(myMenuBar);
    mediator.registerActions(appMenu.getActionMap());
    mediator.disableAllMenus();
    String[] enables = new String[]{
      GUIConst.ACTION_SHOW_STAMPBOX,
    };
    mediator.enableMenus(enables);
  } else frame = new JFrame(title);
////↑
 ・
 ・

StampBoxPlugin.java の編集

public void start() {
 ・
 ・ 
///↓   mac で StampBox にもメニューバーを出す
  if (isMac) {
     WindowSupport windowSupport = WindowSupport.create(title);
     frame = windowSupport.getFrame();
     javax.swing.JMenuBar myMenuBar = windowSupport.getMenuBar();
     mediator = new Mediator(this);
     AbstractMenuFactory appMenu = AbstractMenuFactory.getFactory();

     // mainWindow の menuSupport をセットしておけばメニュー処理は mainWindow がしてくれる
     appMenu.setMenuSupports(getContext().getMenuSupport(), mediator);
     appMenu.build(myMenuBar);
     mediator.registerActions(appMenu.getActionMap());
     mediator.disableAllMenus();
     String[] enables = new String[]{
       GUIConst.ACTION_SHOW_SCHEMABOX,
     };
     mediator.enableMenus(enables);
  } else frame = new JFrame(title);
////↑
 ・
 ・

« 初診・再診の自動入力 | トップページ | スタンプ入れ替えロック »

OpenDolphin」カテゴリの記事