メイン・メニューとポップアップ・メニューの順序の制御

メニューとメニュー項目のスペース配分を指定して、表示順序(昇順)を制御できます。 各セクションはセパレータで囲まれ、同じく昇順でソートされます。

oracle.ide.MenuConstantsクラスとoracle.jdeveloper.JDeveloperMenuConstantsクラスでは、各メニューおよびメニュー項目に対してweight定数が定義されます。 メイン・メニューとポップアップ・メニューの各セクションに対してもsection定数が定義されます。MenuConstantsはIdeのメニューを定義し、JDeveloperMenuConstantsはJDeveloperメニュー・コマンドを定義します。 ほとんどの場合は、メニュー項目の定数をJDeveloperMenuConstantsに追加する必要があります。

メニューとメニュー項目のスペース配分を作成するには、次のようにします。

  1. 既存のメニューに項目を追加するかどうか、またはツールバーにメニューを追加するかどうかを選択します。
  2. 使用するメニューまたはメニュー項目をどのメニューに配置するか、およびメニューやツールバーのどこに配置するかを識別します。
  3. メニュー項目またはメニューが意図した順序で表示されるように、oracle.jdeveloper.JDeveloperMenuConstantsを検討して割り当てる値を識別します。
  4. メニューまたはメニュー項目のスペース配分を設定するメソッドを拡張機能で作成します。

高度: 複雑な開発プロジェクトや分散方式による開発プロジェクトへの対処が必要な場合は、独自のMenuConstantsクラスを作成できます。

メニューとメニュー項目のスペース配分を作成するには、次の例に従います。

  1. メイン・メニュー・バーの各メニューのスペース配分を、「ファイル」、「編集」、「表示」の順に作成します。
    
      public static final float WEIGHT_FILE_MENU = 1.0f;
      public static final float WEIGHT_EDIT_MENU = 2.0f;
      public static final float WEIGHT_VIEW_MENU = 3.0f;        
  2. 「編集」メニューのセクションIDを作成します。
    
      public static final float SECTION_EDIT_UNDO = 0.010f;
      public static final float SECTION_EDIT_CUT_COPY_PASTE = 0.020f;
      public static final float SECTION_EDIT_SELECT_ALL = 0.030f;
      public static final float SECTION_EDIT_ADDINS = 0.040f;
      public static final float SECTION_EDIT_PROPERTIES = 0.050f;
              
  3. 各コマンドのweight定数を個別に作成します。
    
      public static final float WEIGHT_EDIT_UNDO = 0.010f;
      public static final float WEIGHT_EDIT_REDO = 0.020f;
      public static final float WEIGHT_EDIT_CUT = 0.030f;
      public static final float WEIGHT_EDIT_COPY = 0.040f;
      public static final float WEIGHT_EDIT_PASTE = 0.050f;
      public static final float WEIGHT_EDIT_DELETE = 0.060f;
      public static final float WEIGHT_EDIT_SELECT_ALL = 0.070f;
      public static final float WEIGHT_EDIT_PROPERTIES = 0.080f;
              
  4. 次の2つの機能を使用して、メイン・メニュー・バーでメニュー(この場合は標準の編集メニュー)を作成および移入します。
    
    // Create the edit menu in the main menubar
    private final Menubar menuMgr = Ide.getMenubar();
    JMenu editMenu = menuMgr.createMenu( "Edit", new Integer('E'),
         MenuConstants.WEIGHT_EDIT_MENU, MenuConstants.SECTION_EDIT_ADDINS );
    
    
    // Create commands and populate the menu
    JMenuItem undoItem = menuMgr.createMenuItem( UndoAction, MenuConstants.WEIGHT_EDIT_UNDO );
    menuMgr.add( undoItem, editMenu, MenuConstants.SECTION_EDIT_UNDO );
    
    JMenuItem redoItem = menuMgr.createMenuItem( RedoAction, MenuConstants.WEIGHT_EDIT_REDO );
    menuMgr.add( redoItem, editMenu, MenuConstants.SECTION_EDIT_UNDO );
    
    JMenuItem cutItem = menuMgr.createMenuItem( CutAction, MenuConstants.WEIGHT_EDIT_CUT );
    menuMgr.add( cutItem, editMenu, MenuConstants.SECTION_EDIT_CUT_COPY_PASTE );
    
    JMenuItem copyItem = menuMgr.createMenuItem( CopyAction, MenuConstants.WEIGHT_EDIT_COPY );
    menuMgr.add( copyItem, editMenu, MenuConstants.SECTION_EDIT_CUT_COPY_PASTE );
    
    JMenuItem pasteItem = menuMgr.createMenuItem( PasteAction, MenuConstants.WEIGHT_EDIT_PASTE );
    menuMgr.add( pasteItem, editMenu, MenuConstants.SECTION_EDIT_CUT_COPY_PASTE );
    
    JMenuItem delItem = menuMgr.createMenuItem( DeleteAction, MenuConstants.WEIGHT_EDIT_DELETE );
    menuMgr.add( delItem, editMenu, MenuConstants.SECTION_EDIT_CUT_COPY_PASTE );
    
    JMenuItem selectItem = menuMgr.createMenuItem( SelectAllAction,
         MenuConstants.WEIGHT_EDIT_SELECT_ALL );
    menuMgr.add( selectItem, editMenu, MenuConstants.SECTION_EDIT_SELECT_ALL );
    
    JMenuItem propsItem = menuMgr.createMenuItem( PropertiesAction,
         MenuConstants.WEIGHT_EDIT_PROPERTIES );
    menuMgr.add( propsItem, editMenu, MenuConstants.SECTION_EDIT_PROPERTIES );        
  5. ポップアップ・メニューを作成および移入します。 メニュー項目とその項目を追加するセクションを指定します。 次の例では、セパレータで囲まれた4つのコマンドからなる1グループを作成します。
    
    popup.add( EditorConstants.CUT_ITEM, MenuConstants.SECTION_EDIT_CTXT_MENU );
    popup.add( EditorConstants.COPY_ITEM, MenuConstants.SECTION_EDIT_CTXT_MENU );
    popup.add( EditorConstants.PASTE_ITEM, MenuConstants.SECTION_EDIT_CTXT_MENU );
    popup.add( EditorConstants.ALL_ITEM, MenuConstants.SECTION_EDIT_CTXT_MENU);        
  6. 既存のメニュー・セクションにコマンドを追加します。 次の例では、「ファイル」メニューにコマンドを追加して、「開く」および「新規」コマンドとともにグループ化します。
    // Get the menu manager
    private final Menubar menuMgr = Ide.getMenubar();
    
    // Create a menu item with no weight.
    // Unweighted items are added to the end of the menu section to which they are added
    JMenuItem myItem = menuMgr.createMenuItem(myAction);
    
    // "MenuConstants.SECTION_FILE_OPEN_NEW" is the section that contains New, Open, Reopen, Add to Project.
    menuMgr.add(myCommand, FileMenu, MenuConstants.SECTION_FILE_OPEN_NEW);         

    または、次のメソッドを使用できます。

    
    // Create the menu item with a weight just larger than the "File > New" menu item
    // and if it's in the same section, it will appear just after it.
    JMenuItem myItem = menuMgr.createMenuItem(myAction,(MenuConstants.WEIGHT_FILE_NEW + 0.01f));
            

    デフォルトのセクションにコマンドを追加するには、セクションを指定せずに追加します。

    
     private final Menubar menuMgr = Ide.getMenubar();
     JMenuItem myItem = menuMgr.createMenuItem(myAction);
     menuMgr.add(myItem, FileMenu);
            

    新規セクションにコマンドを追加するには、次のようにします。

    
    private final Menubar menuMgr = Ide.getMenubar();
    
    // Create actions
    float weight = 10.0f;
    JMenuItem myItem = menuMgr.createMenuItem(myAction, weight ;
    
    weight = 20.0f;
    JMenuItem myItem2 = menuMgr.createMenuItem(myAction2, weight);
    
    // Create a new section and add it just after the section containing New, Open, etc.
    float mySection = (MenuConstants.SECTION_FILE_NEW_OPEN + 0.01f);
    
    // Add items to the File menu
    menuMgr.add(myItem, FileMenu, mySection); > menuMgr.add(myItem2, FileMenu, mySection);
    
            

IDEクラスについて
ドック・ステーションについて
ビューについて

oracle.ide.Ide
oracle.ide.MainWindow

 

Copyright © 1997, 2004, Oracle. All rights reserved.