com.alee.utils.swing.menu
Class AbstractMenuGenerator<E extends javax.swing.JComponent>

java.lang.Object
  extended by com.alee.utils.swing.menu.AbstractMenuGenerator<E>
Direct Known Subclasses:
MenuBarGenerator, MenuGenerator, PopupMenuGenerator

public abstract class AbstractMenuGenerator<E extends javax.swing.JComponent>
extends java.lang.Object

This is a base generator class for custom menu generators. Menu generators are made to simplify various Swing menues creation. Possible menu types: WebMenuBar, WebPopupMenu and WebMenu

Author:
Mikle Garin
See Also:
MenuBarGenerator, MenuGenerator, PopupMenuGenerator

Field Summary
protected static java.awt.event.ActionListener defaultAction
           
protected static boolean defaultEnabled
           
protected static HotkeyData defaultHotkey
           
protected static java.lang.Object defaultIcon
          Default constants used within generator methods.
protected static java.lang.String defaultIconFormat
          Default menu icons format.
protected static boolean defaultSelected
           
protected  java.lang.String extension
          Menu icons format.
protected  UnselectableButtonGroup group
          Buttons grouping.
protected  java.lang.String languagePrefix
          Menu language key prefix.
protected  E menu
          Menu component.
protected  java.lang.Class nearClass
          Class near which menu icons are placed.
protected  java.lang.String path
          Path to menu icons folder.
 
Constructor Summary
AbstractMenuGenerator(E menu)
          Constructs new menu generator with the specified menu component.
 
Method Summary
 WebCheckBoxMenuItem addCheckItem(java.lang.Object icon, java.lang.String text, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebCheckBoxMenuItem addCheckItem(java.lang.Object icon, java.lang.String text, boolean enabled, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebCheckBoxMenuItem addCheckItem(java.lang.Object icon, java.lang.String text, HotkeyData hotkey, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebCheckBoxMenuItem addCheckItem(java.lang.Object icon, java.lang.String text, HotkeyData hotkey, boolean enabled, boolean selected, java.awt.event.ActionListener actionListener)
          Adds checkbox menu item into menu.
 WebCheckBoxMenuItem addCheckItem(java.lang.String text, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebCheckBoxMenuItem addCheckItem(java.lang.String text, boolean enabled, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebCheckBoxMenuItem addCheckItem(java.lang.String text, HotkeyData hotkey, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebCheckBoxMenuItem addCheckItem(java.lang.String text, HotkeyData hotkey, boolean enabled, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebMenuItem addItem(java.lang.Object icon, java.lang.String text, java.awt.event.ActionListener actionListener)
           
 WebMenuItem addItem(java.lang.Object icon, java.lang.String text, boolean enabled, java.awt.event.ActionListener actionListener)
           
 WebMenuItem addItem(java.lang.Object icon, java.lang.String text, HotkeyData hotkey, java.awt.event.ActionListener actionListener)
           
 WebMenuItem addItem(java.lang.Object icon, java.lang.String text, HotkeyData hotkey, boolean enabled, java.awt.event.ActionListener actionListener)
          Adds simple item into menu.
 WebMenuItem addItem(java.lang.String text, java.awt.event.ActionListener actionListener)
           
 WebMenuItem addItem(java.lang.String text, boolean enabled, java.awt.event.ActionListener actionListener)
           
 WebMenuItem addItem(java.lang.String text, HotkeyData hotkey, java.awt.event.ActionListener actionListener)
           
 WebMenuItem addItem(java.lang.String text, HotkeyData hotkey, boolean enabled, java.awt.event.ActionListener actionListener)
           
 WebRadioButtonMenuItem addRadioItem(java.lang.Object icon, java.lang.String text, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebRadioButtonMenuItem addRadioItem(java.lang.Object icon, java.lang.String text, boolean enabled, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebRadioButtonMenuItem addRadioItem(java.lang.Object icon, java.lang.String text, HotkeyData hotkey, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebRadioButtonMenuItem addRadioItem(java.lang.Object icon, java.lang.String text, HotkeyData hotkey, boolean enabled, boolean selected, java.awt.event.ActionListener actionListener)
          Adds radio button menu item into menu.
 WebRadioButtonMenuItem addRadioItem(java.lang.String text, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebRadioButtonMenuItem addRadioItem(java.lang.String text, boolean enabled, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebRadioButtonMenuItem addRadioItem(java.lang.String text, HotkeyData hotkey, boolean selected, java.awt.event.ActionListener actionListener)
           
 WebRadioButtonMenuItem addRadioItem(java.lang.String text, HotkeyData hotkey, boolean enabled, boolean selected, java.awt.event.ActionListener actionListener)
           
 void addSeparator()
          Adds separator into menu.
 MenuGenerator addSubMenu(java.lang.Object icon, java.lang.String text)
           
 MenuGenerator addSubMenu(java.lang.Object icon, java.lang.String text, java.awt.event.ActionListener actionListener)
           
 MenuGenerator addSubMenu(java.lang.Object icon, java.lang.String text, boolean enabled)
           
 MenuGenerator addSubMenu(java.lang.Object icon, java.lang.String text, boolean enabled, java.awt.event.ActionListener actionListener)
          Adds menu item into menu.
 MenuGenerator addSubMenu(java.lang.String text)
           
 MenuGenerator addSubMenu(java.lang.String text, java.awt.event.ActionListener actionListener)
           
 MenuGenerator addSubMenu(java.lang.String text, boolean enabled)
           
 MenuGenerator addSubMenu(java.lang.String text, boolean enabled, java.awt.event.ActionListener actionListener)
           
 UnselectableButtonGroup closeGroup()
          Finishes grouping menu items.
protected  WebCheckBoxMenuItem createCheckItem(java.lang.Object icon, java.lang.String text, HotkeyData hotkey, boolean enabled, boolean selected, java.awt.event.ActionListener actionListener)
          Returns newly created checkbox menu item.
protected  WebMenuItem createItem(java.lang.Object icon, java.lang.String text, HotkeyData hotkey, boolean enabled, java.awt.event.ActionListener actionListener)
          Returns newly created menu item.
protected  WebRadioButtonMenuItem createRadioItem(java.lang.Object icon, java.lang.String text, HotkeyData hotkey, boolean enabled, boolean selected, java.awt.event.ActionListener actionListener)
          Returns newly created radio button menu item.
protected  WebMenu createSubMenu(java.lang.Object icon, java.lang.String text, boolean enabled, java.awt.event.ActionListener actionListener)
          Returns newly created menu.
 java.lang.String getExtension()
          Returns menu icons format.
 javax.swing.ImageIcon getIcon(java.lang.Object icon)
          Returns icon for the specified name.
 java.lang.String getLanguageKey(java.lang.String text)
          Returns menu item language key for the specified name.
 java.lang.String getLanguagePrefix()
          Returns menu language key prefix.
 E getMenu()
          Returns menu component.
 java.lang.Class getNearClass()
          Returns class near which menu icons are placed.
 java.lang.String getPath()
          Returns path to menu icons folder relative to class.
 UnselectableButtonGroup group(javax.swing.AbstractButton button)
          Adds custom button into currently used buttons group.
 boolean isEmpty()
          Returns whether menu is empty or not.
 UnselectableButtonGroup openGroup()
          Starts grouping menu items.
 UnselectableButtonGroup openGroup(boolean unselectable)
          Starts grouping menu items.
 void setExtension(java.lang.String extension)
          Sets menu icons format.
 void setIconSettings(java.lang.Class nearClass, java.lang.String path, java.lang.String extension)
          Sets menu icons location and format.
 void setIconSettings(java.lang.String path, java.lang.String extension)
          Sets menu icons location and format.
 void setLanguagePrefix(java.lang.String prefix)
          Sets menu language key prefix.
 void setNearClass(java.lang.Class nearClass)
          Sets class near which menu icons are placed.
 void setPath(java.lang.String path)
          Sets path to menu icons folder relative to class.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

defaultIcon

protected static final java.lang.Object defaultIcon
Default constants used within generator methods.


defaultHotkey

protected static final HotkeyData defaultHotkey

defaultEnabled

protected static final boolean defaultEnabled
See Also:
Constant Field Values

defaultSelected

protected static final boolean defaultSelected
See Also:
Constant Field Values

defaultAction

protected static final java.awt.event.ActionListener defaultAction

defaultIconFormat

protected static final java.lang.String defaultIconFormat
Default menu icons format.

See Also:
Constant Field Values

nearClass

protected java.lang.Class nearClass
Class near which menu icons are placed. In case it is null path is used as file system path.


path

protected java.lang.String path
Path to menu icons folder. It is used as path relative to class in case nearClass variable is not null.


extension

protected java.lang.String extension
Menu icons format.


languagePrefix

protected java.lang.String languagePrefix
Menu language key prefix.


group

protected UnselectableButtonGroup group
Buttons grouping.


menu

protected E extends javax.swing.JComponent menu
Menu component.

Constructor Detail

AbstractMenuGenerator

public AbstractMenuGenerator(E menu)
Constructs new menu generator with the specified menu component.

Method Detail

getNearClass

public java.lang.Class getNearClass()
Returns class near which menu icons are placed.

Returns:
class near which menu icons are placed

setNearClass

public void setNearClass(java.lang.Class nearClass)
Sets class near which menu icons are placed.

Parameters:
nearClass - class near which menu icons are placed

getPath

public java.lang.String getPath()
Returns path to menu icons folder relative to class.

Returns:
path to menu icons folder relative to class

setPath

public void setPath(java.lang.String path)
Sets path to menu icons folder relative to class.

Parameters:
path - path to menu icons folder relative to class

getExtension

public java.lang.String getExtension()
Returns menu icons format.

Returns:
menu icons format

setExtension

public void setExtension(java.lang.String extension)
Sets menu icons format.

Parameters:
extension - menu icons format

setIconSettings

public void setIconSettings(java.lang.String path,
                            java.lang.String extension)
Sets menu icons location and format.

Parameters:
path - path to menu icons folder in file system
extension - menu icons format

setIconSettings

public void setIconSettings(java.lang.Class nearClass,
                            java.lang.String path,
                            java.lang.String extension)
Sets menu icons location and format.

Parameters:
nearClass - class near which menu icons are placed
path - path to menu icons folder relative to class
extension - menu icons format

getLanguagePrefix

public java.lang.String getLanguagePrefix()
Returns menu language key prefix.

Returns:
menu language key prefix

setLanguagePrefix

public void setLanguagePrefix(java.lang.String prefix)
Sets menu language key prefix.

Parameters:
prefix - menu language key prefix

getLanguageKey

public java.lang.String getLanguageKey(java.lang.String text)
Returns menu item language key for the specified name.

Parameters:
text - menu item name or text
Returns:
menu item language key for the specified name

addSeparator

public void addSeparator()
Adds separator into menu.


addItem

public WebMenuItem addItem(java.lang.String text,
                           java.awt.event.ActionListener actionListener)

addItem

public WebMenuItem addItem(java.lang.String text,
                           HotkeyData hotkey,
                           java.awt.event.ActionListener actionListener)

addItem

public WebMenuItem addItem(java.lang.String text,
                           boolean enabled,
                           java.awt.event.ActionListener actionListener)

addItem

public WebMenuItem addItem(java.lang.String text,
                           HotkeyData hotkey,
                           boolean enabled,
                           java.awt.event.ActionListener actionListener)

addItem

public WebMenuItem addItem(java.lang.Object icon,
                           java.lang.String text,
                           java.awt.event.ActionListener actionListener)

addItem

public WebMenuItem addItem(java.lang.Object icon,
                           java.lang.String text,
                           HotkeyData hotkey,
                           java.awt.event.ActionListener actionListener)

addItem

public WebMenuItem addItem(java.lang.Object icon,
                           java.lang.String text,
                           boolean enabled,
                           java.awt.event.ActionListener actionListener)

addItem

public WebMenuItem addItem(java.lang.Object icon,
                           java.lang.String text,
                           HotkeyData hotkey,
                           boolean enabled,
                           java.awt.event.ActionListener actionListener)
Adds simple item into menu.

Parameters:
icon - menu item icon, can be either String icon name, ImageIcon, Image, image File or image URL
text - menu item text
hotkey - menu item accelerator
enabled - whether menu item is enabled or not
actionListener - menu item action listener
Returns:
newly created menu item

createItem

protected WebMenuItem createItem(java.lang.Object icon,
                                 java.lang.String text,
                                 HotkeyData hotkey,
                                 boolean enabled,
                                 java.awt.event.ActionListener actionListener)
Returns newly created menu item.

Parameters:
icon - menu item icon, can be either String icon name, ImageIcon, Image, image File or image URL
text - menu item text
hotkey - menu item accelerator
enabled - whether menu item is enabled or not
actionListener - menu item action listener
Returns:
newly created menu item

addCheckItem

public WebCheckBoxMenuItem addCheckItem(java.lang.String text,
                                        boolean selected,
                                        java.awt.event.ActionListener actionListener)

addCheckItem

public WebCheckBoxMenuItem addCheckItem(java.lang.String text,
                                        HotkeyData hotkey,
                                        boolean selected,
                                        java.awt.event.ActionListener actionListener)

addCheckItem

public WebCheckBoxMenuItem addCheckItem(java.lang.String text,
                                        boolean enabled,
                                        boolean selected,
                                        java.awt.event.ActionListener actionListener)

addCheckItem

public WebCheckBoxMenuItem addCheckItem(java.lang.String text,
                                        HotkeyData hotkey,
                                        boolean enabled,
                                        boolean selected,
                                        java.awt.event.ActionListener actionListener)

addCheckItem

public WebCheckBoxMenuItem addCheckItem(java.lang.Object icon,
                                        java.lang.String text,
                                        boolean selected,
                                        java.awt.event.ActionListener actionListener)

addCheckItem

public WebCheckBoxMenuItem addCheckItem(java.lang.Object icon,
                                        java.lang.String text,
                                        HotkeyData hotkey,
                                        boolean selected,
                                        java.awt.event.ActionListener actionListener)

addCheckItem

public WebCheckBoxMenuItem addCheckItem(java.lang.Object icon,
                                        java.lang.String text,
                                        boolean enabled,
                                        boolean selected,
                                        java.awt.event.ActionListener actionListener)

addCheckItem

public WebCheckBoxMenuItem addCheckItem(java.lang.Object icon,
                                        java.lang.String text,
                                        HotkeyData hotkey,
                                        boolean enabled,
                                        boolean selected,
                                        java.awt.event.ActionListener actionListener)
Adds checkbox menu item into menu.

Parameters:
icon - checkbox menu item icon, can be either String icon name, ImageIcon, Image, image File or image URL
text - checkbox menu item text
hotkey - checkbox menu item accelerator
enabled - whether checkbox menu item is enabled or not
selected - whether checkbox menu item is selected or not
actionListener - checkbox menu item action listener
Returns:
newly created checkbox menu item

createCheckItem

protected WebCheckBoxMenuItem createCheckItem(java.lang.Object icon,
                                              java.lang.String text,
                                              HotkeyData hotkey,
                                              boolean enabled,
                                              boolean selected,
                                              java.awt.event.ActionListener actionListener)
Returns newly created checkbox menu item.

Parameters:
icon - checkbox menu item icon, can be either String icon name, ImageIcon, Image, image File or image URL
text - checkbox menu item text
hotkey - checkbox menu item accelerator
enabled - whether checkbox menu item is enabled or not
selected - whether checkbox menu item is selected or not
actionListener - checkbox menu item action listener
Returns:
newly created checkbox menu item

addRadioItem

public WebRadioButtonMenuItem addRadioItem(java.lang.String text,
                                           boolean selected,
                                           java.awt.event.ActionListener actionListener)

addRadioItem

public WebRadioButtonMenuItem addRadioItem(java.lang.String text,
                                           HotkeyData hotkey,
                                           boolean selected,
                                           java.awt.event.ActionListener actionListener)

addRadioItem

public WebRadioButtonMenuItem addRadioItem(java.lang.String text,
                                           boolean enabled,
                                           boolean selected,
                                           java.awt.event.ActionListener actionListener)

addRadioItem

public WebRadioButtonMenuItem addRadioItem(java.lang.String text,
                                           HotkeyData hotkey,
                                           boolean enabled,
                                           boolean selected,
                                           java.awt.event.ActionListener actionListener)

addRadioItem

public WebRadioButtonMenuItem addRadioItem(java.lang.Object icon,
                                           java.lang.String text,
                                           boolean selected,
                                           java.awt.event.ActionListener actionListener)

addRadioItem

public WebRadioButtonMenuItem addRadioItem(java.lang.Object icon,
                                           java.lang.String text,
                                           HotkeyData hotkey,
                                           boolean selected,
                                           java.awt.event.ActionListener actionListener)

addRadioItem

public WebRadioButtonMenuItem addRadioItem(java.lang.Object icon,
                                           java.lang.String text,
                                           boolean enabled,
                                           boolean selected,
                                           java.awt.event.ActionListener actionListener)

addRadioItem

public WebRadioButtonMenuItem addRadioItem(java.lang.Object icon,
                                           java.lang.String text,
                                           HotkeyData hotkey,
                                           boolean enabled,
                                           boolean selected,
                                           java.awt.event.ActionListener actionListener)
Adds radio button menu item into menu.

Parameters:
icon - radio button menu item icon, can be either String icon name, ImageIcon, Image, image File or image URL
text - radio button menu item text
hotkey - radio button menu item accelerator
enabled - whether radio button menu item is enabled or not
selected - whether radio button menu item is selected or not
actionListener - radio button menu item action listener
Returns:
newly created radio button menu item

createRadioItem

protected WebRadioButtonMenuItem createRadioItem(java.lang.Object icon,
                                                 java.lang.String text,
                                                 HotkeyData hotkey,
                                                 boolean enabled,
                                                 boolean selected,
                                                 java.awt.event.ActionListener actionListener)
Returns newly created radio button menu item.

Parameters:
icon - radio button menu item icon, can be either String icon name, ImageIcon, Image, image File or image URL
text - radio button menu item text
hotkey - radio button menu item accelerator
enabled - whether radio button menu item is enabled or not
selected - whether radio button menu item is selected or not
actionListener - radio button menu item action listener
Returns:
newly created radio button menu item

addSubMenu

public MenuGenerator addSubMenu(java.lang.String text)

addSubMenu

public MenuGenerator addSubMenu(java.lang.String text,
                                boolean enabled)

addSubMenu

public MenuGenerator addSubMenu(java.lang.String text,
                                java.awt.event.ActionListener actionListener)

addSubMenu

public MenuGenerator addSubMenu(java.lang.String text,
                                boolean enabled,
                                java.awt.event.ActionListener actionListener)

addSubMenu

public MenuGenerator addSubMenu(java.lang.Object icon,
                                java.lang.String text)

addSubMenu

public MenuGenerator addSubMenu(java.lang.Object icon,
                                java.lang.String text,
                                boolean enabled)

addSubMenu

public MenuGenerator addSubMenu(java.lang.Object icon,
                                java.lang.String text,
                                java.awt.event.ActionListener actionListener)

addSubMenu

public MenuGenerator addSubMenu(java.lang.Object icon,
                                java.lang.String text,
                                boolean enabled,
                                java.awt.event.ActionListener actionListener)
Adds menu item into menu.

Returned menu generator will have the same settings as current one. You can modify them if you need though.

Parameters:
icon - menu icon, can be either String icon name, ImageIcon, Image, image File or image URL
text - menu text
enabled - whether menu is enabled or not
actionListener - menu action listener
Returns:
menu generator for newly created menu

createSubMenu

protected WebMenu createSubMenu(java.lang.Object icon,
                                java.lang.String text,
                                boolean enabled,
                                java.awt.event.ActionListener actionListener)
Returns newly created menu.

Parameters:
icon - menu icon, can be either String icon name, ImageIcon, Image, image File or image URL
text - menu text
enabled - whether menu is enabled or not
actionListener - menu action listener
Returns:
newly created menu

openGroup

public UnselectableButtonGroup openGroup()
Starts grouping menu items. All items created after this call and before closeGroup() call will get grouped.

Returns:
buttons group used for grouping

openGroup

public UnselectableButtonGroup openGroup(boolean unselectable)
Starts grouping menu items. All items created after this call and before closeGroup() call will get grouped.

Parameters:
unselectable - whether items should be unselectable or not
Returns:
buttons group used for grouping

group

public UnselectableButtonGroup group(javax.swing.AbstractButton button)
Adds custom button into currently used buttons group.

Parameters:
button - custom button to add into buttons group
Returns:
buttons group used for grouping

closeGroup

public UnselectableButtonGroup closeGroup()
Finishes grouping menu items.

Returns:
buttons group used for grouping

getIcon

public javax.swing.ImageIcon getIcon(java.lang.Object icon)
Returns icon for the specified name.

Parameters:
icon - can be either String icon name, ImageIcon, Image, image File or image URL
Returns:
icon for the specified name

getMenu

public E getMenu()
Returns menu component.

Returns:
menu component

isEmpty

public boolean isEmpty()
Returns whether menu is empty or not.

Returns:
true if menu is empty, false otherwise