3.10.6. Popup Menu

Ein Popup Menu ist ein Kontexmenü, welches von einer Komponente mit Hilfe der folgenden Methode erzeugt werden kann:

    IPopupMenu createPopupMenu();

Dabei können für eine Komponente beliebig viele Popup Menüs erzeugt werden.

Die Schnittstelle IPopupMenu hat neben den von IMenu und IWidget geerbten Methoden die folgende weitere zur Anzeige des Menüs:

    void show(Position position);

Die position muss dabei bezüglich des Koordinatensystems angegeben werden, welches das PopupMenu erzeugt hat und darf nicht null sein.

Folgendes Beispiel zeigt die Verwendung eines PopMenüs:

  1      //create the popup menu
  2      IPopupMenu menu = frame.createPopupMenu();
  3  
  4      //add items to the menu
  5      IActionMenuItem action1 = menu.addItem(BPF.menuItem("Action1"));
  6      IActionMenuItem action2 = menu.addItem(BPF.menuItem("Action1"));
  7      menu.addSeparator();
  8      ISelectableMenuItem option1 = menu.addItem(BPF.checkedMenuItem("Option1").setSelected(true));
  9      ISelectableMenuItem option2 = menu.addItem(BPF.checkedMenuItem("Option2"));
 10      menu.addSeparator();
 11      ISelectableMenuItem radio1 = menu.addItem(BPF.radioMenuItem("Radio1").setSelected(true));
 12      ISelectableMenuItem radio2 = menu.addItem(BPF.radioMenuItem("Radio2"));
 13      ISelectableMenuItem radio3 = menu.addItem(BPF.radioMenuItem("Radio3"));
 14      menu.addSeparator();
 15      ISubMenu subMenu = menu.addItem(BPF.subMenu("Sub Menu"));
 16      subMenu.addItem(BPF.menuItem("Subaction"));
 17  
 18      //add a popup detection listener that shows the menu
 19      frame.addPopupDetectionListener(new IPopupDetectionListener() {
 20          @Override
 21          public void popupDetected(final Position position) {
 22              menu.show(position);
 23          }
 24      });

In Zeile 2 wird ein neues PopupMenu erzeugt. In den Zeilen 5 - 16 werden diesem Items hinzugefügt. In Zeile 19 wird ein PopupDetectionListener hinzugefügt, der das Menü bei einem PopupEvent sichtbar macht. Die folgende Abbildung zeigt das Ergebnis:

Abbildung 22. Popup Menu Beispiel

Popup Menu Beispiel


Siehe auch PDF Version dieses Dokuments, Jowidgets API Spezifikation