Class JMenuMerge
- All Implemented Interfaces:
IMenuMergeModel
Represents a menu merge for a JMenu. This may be a top-level menu (like "file") or a sub-menu. That is, a JMenuMerge can contain a mix of other JMenuMerge children and individual item merges. This class has convenience functions that allow for easily adding menu items based on StateChangeActions and JMenuItems.
To create JMenuMerges that merge items into the main menus, use the constants found in WellKnownMenuConstants
. For example, suppose a module wanted to add a menu item to the File > New menu. You would create a JMenuMerge
using the file menu's name, and add it at the file menu's location. You would create the following MenuBarMerge and
return it from your Designer module hook's DesignerModuleHook.getModuleMenu()
function.
Action myNewAction = new AbstractAction("New Thingamajig") { public void actionPerformed(ActionEvent ae) { System.out.println("Do something here..."); } }; MenuBarMerge menu = new MenuBarMerge("mymodule-id"); JMenuMerge file = new JMenuMerge(WellKnownMenuConstants.FILE_MENU_NAME); JMenuMerge fileNew = new JMenuMerge("new"); fileNew.add(myNewAction); file.add(WellKnownMenuConstants.FILE_OPENSAVE_GROUP, fileNew); menu.add(WellKnownMenuConstants.FILE_MENU_LOCATION, file);
-
Field Summary
Fields inherited from class com.inductiveautomation.ignition.designer.model.menu.AbstractMenuMerge
currentImplicitGroup, displayKey, groups, icon, log, menuId, name
-
Constructor Summary
ConstructorsConstructorDescriptionJMenuMerge
(String name) JMenuMerge
(String name, String displayKey) JMenuMerge
(String name, String displayKey, Icon icon) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Used to add opaque (non-mergable) menusvoid
void
Used to add opaque (non-mergable) menusvoid
void
addCheckBox
(int separatorGroup, StateChangeAction action) void
addCheckBox
(StateChangeAction action) void
addRadioGroup
(int separatorGroup, StateChangeAction... actions) void
addRadioGroup
(StateChangeAction... actions) protected void
addSeparator
(JComponent menu) Subclasses must define how "separator" components get added to the parent menu item.Create the parent menu item represented by this object, that all of its children should be contained in.void
dispose()
removes all internal bindings which allows this merge to be garbage collected.install
(JComponent menuToInstall) Merges this model into the menu.void
uninstall
(JComponent menuToUninstall) Reverses the merge of this model into the given menuMethods inherited from class com.inductiveautomation.ignition.designer.model.menu.AbstractMenuMerge
add, add, add, add, addSeparator, getMenuId, getName, iterate, setMenuId
-
Constructor Details
-
JMenuMerge
-
JMenuMerge
-
JMenuMerge
-
-
Method Details
-
addCheckBox
-
addRadioGroup
-
add
-
add
Used to add opaque (non-mergable) menus -
addCheckBox
-
addRadioGroup
-
add
-
add
Used to add opaque (non-mergable) menus -
install
Description copied from interface:IMenuMergeModel
Merges this model into the menu. The JComponent will be either a CommandMenuBar or a JMenu- Specified by:
install
in interfaceIMenuMergeModel
- Overrides:
install
in classAbstractMenuMerge
-
uninstall
Description copied from interface:IMenuMergeModel
Reverses the merge of this model into the given menu- Specified by:
uninstall
in interfaceIMenuMergeModel
- Overrides:
uninstall
in classAbstractMenuMerge
-
createMenu
Description copied from class:AbstractMenuMerge
Create the parent menu item represented by this object, that all of its children should be contained in.- Specified by:
createMenu
in classAbstractMenuMerge
-
addSeparator
Description copied from class:AbstractMenuMerge
Subclasses must define how "separator" components get added to the parent menu item.- Specified by:
addSeparator
in classAbstractMenuMerge
-
dispose
public void dispose()removes all internal bindings which allows this merge to be garbage collected.
-