public class MnemonicSolver
extends java.lang.Object
MnemonicSolver.MenuLabel
recording all labels
whose mnemonics need to be resolved.
To use the mnemonic solver class you create a instance of the solver,
you then add a pull down menu, popup menu, or individual menu items
to the solver. Once all menu items are added you just call the
solve()
method to put this class to work.
The registered menu items may have their mnemonics changed when the
solve()
method is executed.Modifier and Type | Class and Description |
---|---|
class |
MnemonicSolver.MenuLabel
MenuLabel class. |
Constructor and Description |
---|
MnemonicSolver()
Default Constructor.
|
MnemonicSolver(javax.swing.JMenu menu)
Constructor.
|
MnemonicSolver(javax.swing.JPopupMenu popupMenu)
Constructor.
|
MnemonicSolver(java.lang.String[] labels)
Constructor.
|
MnemonicSolver(java.lang.String[] labels,
int[] mnemonics)
Constructor.
|
MnemonicSolver(java.lang.String[] labels,
int[] mnemonics,
boolean[] fixed)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
MnemonicSolver.MenuLabel |
addMenuLabel(javax.swing.AbstractButton menuItem)
Adds a new
menuItem to the list of menu items whose
mnemonic needs be resolved. |
MnemonicSolver.MenuLabel |
addMenuLabel(javax.swing.AbstractButton menuItem,
boolean fixed)
Adds a new
menuItem to the list of menu items whose
mnemonic needs be resolved. |
MnemonicSolver.MenuLabel |
addMenuLabel(javax.swing.AbstractButton menuItem,
java.lang.String text,
boolean fixed)
Adds a new
menuItem to the list of menu items whose
mnemonic needs be resolved. |
MnemonicSolver.MenuLabel |
addMenuLabel(java.awt.Component component,
boolean fixed)
If the specified
component is a AbstractButton it
adds it to the list of menu items whose mnemonic needs be resolved. |
MnemonicSolver.MenuLabel |
addMenuLabel(java.awt.Component component,
java.lang.String text,
boolean fixed)
If the specified
component is a AbstractButton it
adds it to the list of menu items whose mnemonic needs be resolved. |
MnemonicSolver.MenuLabel |
addMenuLabel(javax.swing.JMenuItem menuItem)
Adds a new
menuItem to the list of menu items whose
mnemonic needs be resolved. |
MnemonicSolver.MenuLabel |
addMenuLabel(javax.swing.JMenuItem menuItem,
boolean fixed)
Adds a new
menuItem to the list of menu items whose
mnemonic needs be resolved. |
MnemonicSolver.MenuLabel |
addMenuLabel(javax.swing.JMenuItem menuItem,
java.lang.String text,
boolean fixed)
Adds a new
menuItem to the list of menu items whose
mnemonic needs be resolved. |
MnemonicSolver.MenuLabel |
addMenuLabel(java.lang.String text)
Adds a new menu label to the list of labels whose mnemonics need to
be resolved.
|
MnemonicSolver.MenuLabel |
addMenuLabel(java.lang.String text,
int mnemonic)
Adds a new menu label to the list of labels whose mnemonic needs to
be resolved.
|
MnemonicSolver.MenuLabel |
addMenuLabel(java.lang.String text,
int mnemonic,
boolean fixed)
Adds a new menu label to the list of labels whose mnemonic needs to
be resolved.
|
java.util.Collection |
addMenuLabels(javax.swing.JMenu menu)
Adds all menu items contained in the specified
menu to
the list of items whose mnemonic needs resolution. |
java.util.Collection |
addMenuLabels(javax.swing.JPopupMenu popupMenu)
Adds all menu items contained in the specified
popupMenu to
the list of items whose mnemonic needs resolution. |
void |
clear()
Clear the list of menu labels registered for resolution.
|
MnemonicSolver.MenuLabel |
findMenuLabel(javax.swing.AbstractButton menuItem)
Returns the
MnemonicSolver.MenuLabel associated with the specified
menuItem . |
MnemonicSolver.MenuLabel |
findMenuLabel(javax.swing.JMenuItem menuItem)
Returns the
MnemonicSolver.MenuLabel associated with the specified
menuItem . |
void |
removeMenuLabel(MnemonicSolver.MenuLabel label)
Unregister the specified menu
label . |
java.util.Collection |
solve()
Solves mnemonic conflics.
|
public MnemonicSolver()
public MnemonicSolver(java.lang.String[] labels)
labels
- An array of strings representing the menu labels.public MnemonicSolver(java.lang.String[] labels, int[] mnemonics)
labels
- An array of strings representing the menu labels.mnemonics
- An array of integers representing the correspoding label
mnemonic. The length of the array must be the same as the length of the
labels
array.public MnemonicSolver(java.lang.String[] labels, int[] mnemonics, boolean[] fixed)
labels
- An array of strings representing the menu labels.mnemonics
- An array of integers representing the correspoding label
mnemonic. The length of the array must be the same as the length of the
labels
array.fixed
- An array of booleans indicating whether the correspoding
mnemonic cannot be changed. The length of the array must be the same as
the length of the labels
array.public MnemonicSolver(javax.swing.JMenu menu)
menu
- A menu containing menu items.public MnemonicSolver(javax.swing.JPopupMenu popupMenu)
popupMenu
- A popup menu containing menu items.public MnemonicSolver.MenuLabel addMenuLabel(java.lang.String text)
public MnemonicSolver.MenuLabel addMenuLabel(java.lang.String text, int mnemonic)
mnemonic
is the suggested
mnemonic for the label. If conflicts exist, the suggested mnemonic
may not be used.public MnemonicSolver.MenuLabel addMenuLabel(java.lang.String text, int mnemonic, boolean fixed)
mnemonic
is the suggested
mnemonic for the label. If the parameter fixed
is
specified as true
, the suggested mnemonic will be used
unless the same mnemonic is also fixed by another menu. In this case
the menu with smaller number of characters will have preference in
using the specified mnemonic.public MnemonicSolver.MenuLabel addMenuLabel(javax.swing.AbstractButton menuItem)
menuItem
to the list of menu items whose
mnemonic needs be resolved. The menu item mnemonic, if set, is used
as the suggested mnemonic for the menu label. If conflicts exist, the
suggested mnemonic may not be used.public MnemonicSolver.MenuLabel addMenuLabel(javax.swing.JMenuItem menuItem)
menuItem
to the list of menu items whose
mnemonic needs be resolved. The menu item mnemonic, if set, is used
as the suggested mnemonic for the menu label. If conflicts exist, the
suggested mnemonic may not be used.public MnemonicSolver.MenuLabel addMenuLabel(javax.swing.AbstractButton menuItem, boolean fixed)
menuItem
to the list of menu items whose
mnemonic needs be resolved. The menu item mnemonic, if set, is used
as the suggested mnemonic for the menu label. If the parameter
fixed
is specified as true
, the suggested
mnemonic will be used unless the same mnemonic is also fixed by
another menu. In this case the menu with smaller number of
characters will have preference in using the specified mnemonic.
If the specified menuItem
is already registered this
method will only set the given fixed
value.public MnemonicSolver.MenuLabel addMenuLabel(javax.swing.JMenuItem menuItem, boolean fixed)
menuItem
to the list of menu items whose
mnemonic needs be resolved. The menu item mnemonic, if set, is used
as the suggested mnemonic for the menu label. If the parameter
fixed
is specified as true
, the suggested
mnemonic will be used unless the same mnemonic is also fixed by
another menu. In this case the menu with smaller number of
characters will have preference in using the specified mnemonic.
If the specified menuItem
is already registered this
method will only set the given fixed
value.public MnemonicSolver.MenuLabel addMenuLabel(javax.swing.AbstractButton menuItem, java.lang.String text, boolean fixed)
menuItem
to the list of menu items whose
mnemonic needs be resolved. The menu item mnemonic, if set, is used
as the suggested mnemonic for the menu label. If the text
parameter is specified it overrides the menuItem
text.
If the parameter fixed
is specified as true
,
the suggested mnemonic will be used unless the same mnemonic is also
fixed by another menu. In this case the menu with smaller number of
characters will have preference in using the specified mnemonic.
If the specified menuItem
is already registered this
method will only set the given fixed
value.public MnemonicSolver.MenuLabel addMenuLabel(javax.swing.JMenuItem menuItem, java.lang.String text, boolean fixed)
menuItem
to the list of menu items whose
mnemonic needs be resolved. The menu item mnemonic, if set, is used
as the suggested mnemonic for the menu label. If the text
parameter is specified it overrides the menuItem
text.
If the parameter fixed
is specified as true
,
the suggested mnemonic will be used unless the same mnemonic is also
fixed by another menu. In this case the menu with smaller number of
characters will have preference in using the specified mnemonic.
If the specified menuItem
is already registered this
method will only set the given fixed
value.public MnemonicSolver.MenuLabel addMenuLabel(java.awt.Component component, boolean fixed)
component
is a AbstractButton
it
adds it to the list of menu items whose mnemonic needs be resolved.
The menu item mnemonic, if set, is used as the suggested mnemonic for
the menu label. If the parameter fixed
is specified as
true
, the suggested mnemonic will be used unless the same
mnemonic is also fixed by another menu. In this case the menu with
smaller number of characters will have preference in using the specified
mnemonic.
If the specified menuItem
is already registered this
method will only set the given fixed
value.public MnemonicSolver.MenuLabel addMenuLabel(java.awt.Component component, java.lang.String text, boolean fixed)
component
is a AbstractButton
it
adds it to the list of menu items whose mnemonic needs be resolved.
The menu item mnemonic, if set, is used as the suggested mnemonic for
the menu label. If the text
parameter is specified it
overrides the menuItem
text. If the parameter
fixed
is specified as true
,
the suggested mnemonic will be used unless the same mnemonic is also
fixed by another menu. In this case the menu with smaller number of
characters will have preference in using the specified mnemonic.
If the specified menuItem
is already registered this
method will only set the given fixed
value.public java.util.Collection addMenuLabels(javax.swing.JMenu menu)
menu
to
the list of items whose mnemonic needs resolution.public java.util.Collection addMenuLabels(javax.swing.JPopupMenu popupMenu)
popupMenu
to
the list of items whose mnemonic needs resolution.public MnemonicSolver.MenuLabel findMenuLabel(javax.swing.AbstractButton menuItem)
MnemonicSolver.MenuLabel
associated with the specified
menuItem
. If none found, null
is returned.public MnemonicSolver.MenuLabel findMenuLabel(javax.swing.JMenuItem menuItem)
MnemonicSolver.MenuLabel
associated with the specified
menuItem
. If none found, null
is returned.public void removeMenuLabel(MnemonicSolver.MenuLabel label)
label
.public java.util.Collection solve()
Collection
holding the solved menu labels.public void clear()