3.10.2. Die Schnittstelle IMenu

Die Schnittstelle IMenu liefert die Basisfunktionen für das Main Menu das Sub Menu sowie das Popup Menu. Es folgt eine kurze Beschreibung der wichtigsten Methoden:

Menu Model

Mit Hilfe der folgenden Methoden kann das Model gesetzt und ausgelesen werden. Siehe auch Menü und Item Models.

    void setModel(IMenuModel model);
    
    IMenuModel getModel();
Hinzufügen von Items

Mit Hilfe der folgenden Methoden können Items zu einem Menü hinzugefügt werden:

    <WIDGET_TYPE extends IMenuItem> WIDGET_TYPE 
        addItem(IWidgetDescriptor<? extends WIDGET_TYPE> descriptor);

    <WIDGET_TYPE extends IMenuItem> WIDGET_TYPE 
        addItem(int index, IWidgetDescriptor<? extends WIDGET_TYPE> descriptor);

    IActionMenuItem addAction(IAction action);

    IActionMenuItem addAction(int index, IAction action);

    IMenuItem addSeparator();

    IMenuItem addSeparator(int index);

Die ersten beiden Methoden verwenden dazu einen Descriptor (BluePrint). Folgende Items können so hinzugefügt werden:

Die Methoden addAction() fügen ein Action Menu Item hinzu, welches an die übergebene IAction (siehe Actions and Commands) gebunden wird. Mit Hilfe von addSeparator() kann ein Separator Menu Item mit verkürzter Schreibweise hinzugefügt werden. Wird ein index angegeben, wird das Item an der entsprechenden Stelle eingefügt, ansonsten am Ende.

Das folgende Beispiel demonstriert die Verwendung:

  1      IMainMenu menu = menuBar.addMenu("Menu");
  2      IActionMenuItem action1 = menu.addItem(BPF.menuItem("Action1"));
  3      IActionMenuItem action2 = menu.addItem(BPF.menuItem("Action1"));
  4      menu.addItem(BPF.menuSeparator());
  5      ISelectableMenuItem opt1 = menu.addItem(BPF.checkedMenuItem("Option1").setSelected(true));
  6      ISelectableMenuItem opt2 = menu.addItem(BPF.checkedMenuItem("Option2"));
  7      menu.addSeparator();
  8      ISelectableMenuItem radio1 = menu.addItem(BPF.radioMenuItem("Radio1").setSelected(true));
  9      ISelectableMenuItem radio2 = menu.addItem(BPF.radioMenuItem("Radio2"));
 10      ISelectableMenuItem radio3 = menu.addItem(BPF.radioMenuItem("Radio3"));
 11      menu.addSeparator();
 12      ISubMenu subMenu = menu.addItem(BPF.subMenu("Sub Menu"));
 13      IActionMenuItem subaction subMenu.addItem(BPF.menuItem("Subaction"));

In Zeile 4 wird eine Separator mit Hilfe des BluePrint hinzugefügt, in Zeile 7 und 11 mit Hilfe der Convenience Methode addSeparator().

Das Ergebnis sieht wie folgt aus:

Abbildung 20. Menu Beispiel 1

Menu Beispiel 1


Siehe auch PDF Version dieses Dokuments, Jowidgets API Spezifikation