a30-Fortbildung

5. Das Menü

2010-01-25

  
5. Das Menü

Im Hauptpanel haben wir oben rechts ein Menü mit - normalerweise - nur
zwei Punkten und jeweils einigen wenigen Unterpunkten. Das Menü hat
zwar keine äußerst hohe Bedeutung, weil man in dem Tab "Menu" selbst-
gestaltete HTML-Menüs erscheinen lassen kann. Dennoch gibt es aber die
Möglichkeit, das Menü komplett auszuwechseln durch ein eigenes, und
das auch während der Laufzeit. Dazu dient das Label  _!_BAR  (es handelt
sich, in Adobe-Flex-Terminologie, um eine "MenuBar").
So ist es möglich, das Menü völlig umzugestalten und auch neue top-Levels zu
ergänzen oder mehrstufig ineinander einzuschachteln. Man wird das eigene
Menü wohl meistens in den  _start.job  hineinlegen, es kann aber auch,
wie gesagt, jederzeit aus einem Job heraus ein anderes geladen werden.

ACHTUNG: Diese Beschreibung gilt erst ab 25.1.10, vorher konnte man das
Menü nicht nachträglich per Job laden.


a30.mxml
=======

Das Menü besteht intern aus einer kleinen XML-Struktur, die so aussieht:

private var menuBar:XMLList =
  <>
   <menuitem label="Daten" data="top">
     <menuitem label="Eigenes Menü" data="h a30men.htm"/>
     <menuitem label="Drucken" data="pri"/>
     <menuitem label="DB-Info"
type="check" data="X a30dbi"/>
     <menuitem label="FullScreen ein/aus" data="fullscreen"/>
     <menuitem label="Kurzliste als Text" data="ktx"/>
   </menuitem>
   <menuitem label="Hilfe" data="top">
     <menuitem label="zur Datenbank" data="h a30hdb.htm"/>
     <menuitem label="zum System" data="h a30hsy.htm"/>
   </menuitem>
  </>;

Man sieht unmittelbar, wie dies mit dem Erscheinungsbild des Menüs
zusammenhängt. Das Attribut  data  steht jeweils für die auszulösende Aktion.
Darin kann man mit "h ..." Hilfetexte erscheinen lassen, mit "X ..." Jobs
starten. Ferner gibt es drei interne Standardfunktionen, die man an
beliebiger Stelle einsetzen kann:
pri : Drucken
ktx : Kurzliste (der aktuzellen Ergebnismenge) als Text im Info-Tab
fullscreen : Umschalten auf fullscreen-Modus - das klappt nicht immer.
Das Attribut  check  kann man einsetzen, wenn der Menüpunkt nach dem
Anklicken einen Haken bekommen soll.

Das Standard-Menü kann man mit einem Job ersetzen. Im Job sähe dasselbe
Menü so aus:
(Achtung: ohne die Eingrenzung durch <> und </>, die in ActionScript nötig ist)

wri "_!_BAR "
wri ' <menuitem label="Daten" data="top">'
wri ' <menuitem label="Eigenes Menü" data="h a30men.htm"/>'
wri '  <menuitem label="Drucken" data="pri"/>'
wri '  <menuitem label="DB-Info"
type="check" data="X a30dbi"/>'
wri '  <menuitem label="FullScreen ein/aus" data="fullscreen"/>'
wri '  <menuitem label="Kurzliste als Text" data="ktx"/>'
wri ' </menuitem>'
wri ' <menuitem label="Hilfe" data="top">'
wri '  <menuitem label="Zur Datenbank" data="h a30hdb.htm"/>'
wri '  <menuitem label="Zum System" data="h a30hsy.htm"/>'
wri ' </menuitem>' n

Die XML-Struktur wird im Programm an das MenuBar-Objekt übergeben, das im
XML-Teil
von  a30.mxml  deklariert ist.

Die Funktion  menuHandler()  nimmt jeweils
das Attribut  data  des
ausgewählten Menüpunkts, wertet es aus und startet dann die geeignete
Funktion.

Beispiel:
Wenn wir etwa unseren Job "welt.job" aus Kap. 0 hier unter einem eigenen
Hauptpunkt "TEST" ansiedeln wollen, könnten wir diese Zeilen noch anhängen:

wri ' <menuitem label="TEST" data="top">'
wri '    <menuitem label="Welt-Test" data="X welt"/>'
wri ' </menuitem>' n


Noch einfacher könnte man es wohl kaum machen - jedenfalls nicht mit XML.


B.Eversberg, 2010