Since this was written the access to menu items in B4j has changed, making this library largely redundant.  I will leave it here for interest as there is some code in it that extends the menus.
Create menu's in code for menubar and context menus.
This library supports Text Menu Items, Checkbox Menu items, Custom menu items and menu dividers.
Features:
Documentation: Courtesy of Informatix : LibDoc
	
	
		
			
	
Requires:
Update:
Update v0.3:
153
			
			Create menu's in code for menubar and context menus.
This library supports Text Menu Items, Checkbox Menu items, Custom menu items and menu dividers.
Features:
- Add Icons to menu items. Image, Fontawesome and MaterialIcons
- Add Shortcut keys to menu items
- Default and assignable style classes to style via css
- Set tags
- Set alternate eventnames for individual menu items
- Create sub menus
- Create Simple menus from a String array
- Add tooltips to custom menus content Nodes
- Change attributes for menuitems
- Most set methods return it's own class so they can be chained
Documentation: Courtesy of Informatix : LibDoc
jMenuManager
Author: Steve Laming
Version: 0.03
		Author: Steve Laming
Version: 0.03
- KeyCombinations- Fields:- KC_ALT As String
- KC_CONTROL As String
- KC_SHIFT As String
- KC_SHORTCUT As String
 
- Functions:- GetKeyCombination (Combination As String()) As Object
- Process_Globals As String
 
 
- Fields:
- MenuCheckBoxClass- Functions:- AsJavaObject  As JavaObject
 Get the underlying Native menuitem as a JavaObject
- AsObject  As Object
 Get the underlying Native menuitem as a JavaObject
- Class_Globals As String
- GetEnabled  As Boolean
 Get the enabled state for the menu item
- GetEventName  As String
 get the alternate eventname
- GetGraphic  As Node
 Get the graphic set on this menu item
- GetSelected  As Boolean
 Get the selected state for this menu item
- getStyleClass  As List
 Get the style class
- GetTag  As Object
 Set a tag for the menu item
- getText  As String
 Get/Set the text on this menu item
- Initialize (Module As Object, Event_Name As String, Text As String) As String
 Initializes the object. You can add parameters to this method if needed.
- IsInitialized  As Boolean
 Tests whether the object has been initialized.
- SetEnabled (Enabled As Boolean) As MenuCheckBoxClass
 Set the enabled state for the menu item.
 Returns the menu item
- SetEventName (Name As String) As MenuCheckBoxClass
 Set an alternate eventname
- SetGraphic (Graphic As Node) As MenuCheckBoxClass
 Set a Graphic for this menu item
 Returns the menu item
- SetSelected (Checked As Boolean) As MenuCheckBoxClass
 Set the selected state for this menu item
 Returns the menu item
- SetShortCutKey (Combination As String()) As MenuCheckBoxClass
 Set a shortut key for this menu item
 Returns the menu item
- SetStyleClass (Class As String) As MenuCheckBoxClass
 Add a style class for this menuitem, checks it is not already added
 Returns the menu item
- SetTag (TTag As Object) As MenuCheckBoxClass
 Set a tag for the menu item
 Returns the menu item
- setText (Text As String) As String
 
- AsJavaObject  As JavaObject
- Properties:- Text As String
 Get/Set the text on this menu item
 
- Text As String
 
- Functions:
- MenuCustomClass- Functions:- AsJavaObject  As JavaObject
 Get the native menu item as a Javaobject
- AsObject  As Object
 Get the native menu item as an object
- Class_Globals As String
- GetContent  As Node
 Gets the value of the property content.
- GetEnabled  As Boolean
 Get the enabled state for this menu item
- GetEventName  As String
 Get the alternate Event name for this menu item
- GetGraphic  As Node
 Get the graphic set on this menu item
- GetStyleClass  As List
 Get the list of style classes set on this menu item
- GetTag  As Object
 Get the tag for this menu item
- getText  As String
 Get / Set the text of the menu item
- Initialize (Module As Object, EventName As String, TNode As Node) As String
 Initializes the object. You can add parameters to this method if needed.
- IsHideOnClick  As Boolean
 Gets the value of the property hideOnClick.
- IsInitialized  As Boolean
 Tests whether the object has been initialized.
- SetContent (Value As Node) As MenuCustomClass
 Sets the value of the property content.
- SetEnabled (Enabled As Boolean) As MenuCustomClass
 Set the enabled state for this menu item
 Returns the menu item
- SetEventName (Name As String) As MenuCustomClass
 Set an alternate event name for this menu item
 Returns the menu item
- SetGraphic (Graphic As Node) As MenuCustomClass
 Set a Graphic on this menu item
 Returns the menu item
- SetHideOnClick (Value As Boolean, MouseTransparent As Boolean) As MenuCustomClass
 Sets the value of the property hideOnClick. Selecting MouseTransparent will make it non responsive to mouse hover and focus
- SetShortCutKey (Combination As String()) As MenuCustomClass
 Set a shortcut key for this menu item
 Returns the menu item
- SetStyleClass (Class As String) As MenuCustomClass
 Set a style class for this menu item, checks it is not already added
 Returns the menu item
- SetTag (TTag As Object) As MenuCustomClass
 Set a tag for this menu item
 Returns the menu item
- setText (Text As String) As String
 
- AsJavaObject  As JavaObject
- Properties:- Text As String
 Get / Set the text of the menu item
 
- Text As String
 
- Functions:
- MenuItemTextClass- Functions:- AsJavaObject  As JavaObject
 Get the native menu item as a Javaobject
- AsObject  As Object
 Get the native menu item as an object
- Class_Globals As String
- GetEnabled  As Boolean
 Get the enabled state for this menu item
- GetEventName  As String
 Get the alternate Event name for this menu item
- GetGraphic  As Node
 Get the graphic set on this menu item
- getStyleClass  As List
 Get the list of style classes set on this menu item
- GetTag  As Object
 Get the tag for this menu item
- getText  As String
 Get / Set the text of the menu item
- Initialize (Module As Object, EventName As String, Text As String) As String
 Initializes the object. You can add parameters to this method if needed.
- IsInitialized  As Boolean
 Tests whether the object has been initialized.
- isMnemonicParsing As Boolean
- SetEnabled (Enabled As Boolean) As MenuItemTextClass
 Set the enabled state for this menu item
 Returns the menu item
- SetEventName (Name As String) As MenuItemTextClass
 Set an alternate event name for this menu item
 Returns the menu item
- SetGraphic (Graphic As Node) As MenuItemTextClass
 Set a Graphic on this menu item
 Returns the menu item
- SetMnemonicParsing (value As Boolean) As MenuItemTextClass
- SetShortCutKey (Combination As String()) As MenuItemTextClass
 Set a shortcut key for this menu item
 Returns the menu item
- SetStyleClass (Class As String) As MenuItemTextClass
 Set a style class for this menu item, checks it is not already added
 Returns the menu item
- SetTag (TTag As Object) As MenuItemTextClass
 Set a tag for this menu item
 Returns the menu item
- setText (Text As String) As String
 
- AsJavaObject  As JavaObject
- Properties:- Text As String
 Get / Set the text of the menu item
 
- Text As String
 
- Functions:
- MenuItemType- Fields:- IsInitialized As Boolean
 Tests whether the object has been initialized.
- mType As String
- Text As String
 
- IsInitialized As Boolean
- Functions:- Initialize 
 Initializes the fields to their default value.
 
- Initialize 
 
- Fields:
- MenuManager- Events:- Action (MI As MenuItemTextClass)
- CustomAction (MC As MenuCustomClass)
- MenuOpening (M As Menu)
- SelectedChanged (MCB As MenuCheckBoxClass)
 
- Fields:- MENUTYPE_CONTEXTMENU As String
- MENUTYPE_MENU As String
 
- Functions:- AddItems (Items As List, Clear As Boolean) As String
 Add text or Menuitems items to the menu, as an array, Pass a '-' to add a text seperator
 <code>FM.AddItems(Array As String("Test","-","Test1"))</code>
- Class_Globals As String
- getMenu As Object
- getMenuType As String
- getTag As Object
- Initialize (Module As Object, EventName As String, MenuTitleText As String) As String
 Initializes the object
 Default menuType is MENUTYPE_MENU
- IsInitialized  As Boolean
 Tests whether the object has been initialized.
- MenuCheckBox (Text As String) As MenuCheckBoxClass
 Create and Return a CheckMenuItem and set a changelistener
 SelectedCChanged(MSB As MenuCheckBoxClass)
- MenuCustom (N As Node) As MenuCustomClass
 Create and return a MenuCustom Object
- MenuSeparator  As JavaObject
 Create and return a SeperatorMenuItem Object
- MenuSubMenu (Title As String, SubMenu As List) As MenuSubMenuType
 Create a sub menu with title and content
- MenuText (Text As String) As MenuItemTextClass
 Create and return a TextMenuItem Object
- MenuTitle (Text As String) As MenuCustomClass
 Create and return a MenuTitle Object, make it not hide when clicked
- NewFontAwesome (FA As Char, Color As Paint) As Node
 Create and return a Label containing the defined FontAwesome Character
- NewImage (FilePath As String, FileName As String) As ImageView
 Helper to create an image view from a filepath/filename to add to the menu item
- NewMaterialIcon (FA As Char, Color As Paint) As Node
 Create and return a Label containing the defined MaterialIcon Character
- setMenuType (MenuType As String) As String
 Get / Set MenuType one of the constants: MENUTYPE_MENU or MENUTYPE_CONTEXTMENU
- SetStyleSheet (FilePath As String, FileName As String) As String
- setTag (Tag As Object) As String
 Get/Set a tag on the menumanager object
- SimpleMenuArray (Simple As String()) As MenuItemTextClass()
 Create a simple menu Array from a string array
 No Seperators. Pass the result to MM.AddItems
 Configure extras e.g. <code>A(2).SetTag("Tag 2")</code>
- SimpleMenuList (Simple As String()) As List
 Create a simple menu List from a string array
 Use '-' for a separator. Pass the result to MM.AddItems
 
- AddItems (Items As List, Clear As Boolean) As String
- Properties:- Menu As Object [read only]
- MenuType As String
 Get / Set MenuType one of the constants: MENUTYPE_MENU or MENUTYPE_CONTEXTMENU
- Tag As Object
 Get/Set a tag on the menumanager object
 
 
- Events:
- MenuManagerUtils- Functions:- AsJO (JO As JavaObject) As JavaObject
 Return a JavaObject
- Process_Globals As String
 
- AsJO (JO As JavaObject) As JavaObject
 
- Functions:
- MenuSubMenuType- Fields:- IsInitialized As Boolean
 Tests whether the object has been initialized.
- SubMenu As List
- Title As String
 
- IsInitialized As Boolean
- Functions:- Initialize 
 Initializes the fields to their default value.
 
- Initialize 
 
- Fields:
Requires:
- B4j 5.9+
- JavaObject
Update:
- Fixes a bug when adding a tooltip on a MenuCustomClass item to a context menu
- Added a parameter MouseTransparent to the hideonclick sub in the MenuCustomClass
- Changed css menu class names to avoid conflict.
- Rewritten the demo to make it clearer.
Update v0.3:
- Bugfixes
153
Attachments
			
				Last edited: 
			
		
	
							 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		