Creating the topmenu dynamically
Topmenus can be created at runtime by creating the corresponding XML representation in the AUI tree.
This example shows how to create a topmenu in all forms by using
the default initialization function and the
om.DomNode
class:
CALL ui.Form.setDefaultInitializer("myinit")
OPEN FORM f1 FROM "form1"
DISPLAY FORM f1
...
FUNCTION myinit(form)
DEFINE form ui.Form
DEFINE f om.DomNode
LET f = form.getNode()
...
END FUNCTION
After getting the DOM node of the form, create a node with the
"
TopMenu
" tag name: DEFINE tm om.DomNode
LET tm = f.createChild("TopMenu")
For each Topmenu group, create a subnode with the "
TopMenuGroup
"
tag name and set the attributes to define the group: DEFINE tmg om.DomNode
LET tmg = tm.createChild("TopMenuGroup")
CALL tmg.setAttribute("text","Reports")
For each Topmenu option, create a sub-node in a group node with
the "
TopMenuCommand
" tag name and set the attributes
to define the option:DEFINE tmi om.DomNode
LET tmi = tmg.createChild("TopMenuCommand")
CALL tmi.setAttribute("name","report")
CALL tmi.setAttribute("text","Order report")
CALL tmi.setAttribute("comment","Orders entered today")
CALL tmi.setAttribute("image","smiley")
If needed, you can create a "
TopMenuSeparator
"
node inside a group, to separate menu options: DEFINE tms om.DomNode
LET tms = tmg.createChild("TopMenuSeparator")