com.jgoodies.forms.builder
public abstract class AbstractI15dPanelBuilder extends PanelBuilder
JPanel
s. In addition to its superclass
{@link PanelBuilder} this class provides convenience behavior to map
resource keys to their associated internationalized (i15d) strings
when adding labels, titles and titled separators.
The localized texts used in methods #addI15dLabel
and #addI15dTitle
can contain an optional mnemonic marker.
The mnemonic and mnemonic index are indicated by a single ampersand
(&). For example "&Save", or
"Save &as". To use the ampersand itself,
duplicate it, for example "Look&&Feel".
For debugging purposes you can automatically set a tooltip for the
created labels that show its resource key. In case of an inproper
resource localization, the label will show the wrong text, and the tooltip
will help you identify the resource key with the broken localization.
This feature can be enabled by calling setDebugToolTipsEnabled
.
If you want to enable it in a deployed application, you can set the system
parameter I15dPanelBuilder.debugToolTipsEnabled
to "true".
Subclasses must implement the conversion from resource key
to the localized string in #getI15dString(String)
.
For example class I15dPanelBuilder gets a ResourceBundle on
construction, and requests strings from that bundle.
Since: 1.1
Version: $Revision: 1.4 $
Constructor Summary | |
---|---|
protected | AbstractI15dPanelBuilder(FormLayout layout)
Constructs an AbstractI15dPanelBuilder for the given
layout. |
protected | AbstractI15dPanelBuilder(FormLayout layout, JPanel panel)
Constructs an AbstractI15dPanelBuilder
for the given FormLayout and layout container.
|
Method Summary | |
---|---|
JLabel | addI15dLabel(String resourceKey, CellConstraints constraints)
Adds an internationalized (i15d) textual label to the form using the
specified constraints.
|
JLabel | addI15dLabel(String resourceKey, String encodedConstraints)
Adds an internationalized (i15d) textual label to the form using the
specified constraints.
|
JLabel | addI15dLabel(String resourceKey, CellConstraints labelConstraints, Component component, CellConstraints componentConstraints)
Adds an internationalized (i15d) label and component to the panel using
the given cell constraints. |
JComponent | addI15dSeparator(String resourceKey, CellConstraints constraints)
Adds an internationalized (i15d) titled separator to the form using the
specified constraints.
|
JComponent | addI15dSeparator(String resourceKey, String encodedConstraints)
Adds an internationalized (i15d) titled separator to the form using
the specified constraints.
|
JLabel | addI15dTitle(String resourceKey, CellConstraints constraints)
Adds a title to the form using the specified constraints.
|
JLabel | addI15dTitle(String resourceKey, String encodedConstraints)
Adds a title to the form using the specified constraints.
|
protected abstract String | getI15dString(String resourceKey)
Looks up and returns the internationalized (i15d) string for the given
resource key from the ResourceMap .
|
static boolean | isDebugToolTipsEnabled()
Returns whether the debug tool tips are enabled or not.
|
static void | setDebugToolTipsEnabled(boolean b)
Enables or disables the debug tool tips.
|
AbstractI15dPanelBuilder
for the given
layout. Uses an instance of JPanel
as layout container.
Parameters: layout the FormLayout
used to layout the container
AbstractI15dPanelBuilder
for the given FormLayout and layout container.
Parameters: layout the FormLayout
used to layout the container panel the layout container
Parameters: resourceKey the resource key for the label's text constraints the label's cell constraints
Returns: the added label
Parameters: resourceKey the resource key for the label's text encodedConstraints a string representation for the constraints
Returns: the added label
Note: The {@link CellConstraints} objects for the label
and the component must be different. Cell constraints are implicitly
cloned by the FormLayout
when added to the container.
However, in this case you may be tempted to reuse a
CellConstraints
object in the same way as with many other
builder methods that require a single CellConstraints
parameter.
The pitfall is that the methods CellConstraints.xy**(...)
just set the coordinates but do not create a new instance.
And so the second invocation of xy***(...)
overrides
the settings performed in the first invocation before the object
is cloned by the FormLayout
.
Wrong:
builder.add("name.key", cc.xy(1, 7), // will be modified by the code below nameField, cc.xy(3, 7) // sets the single instance to (3, 7) );Correct:
builder.add("name.key", cc.xy(1, 7).clone(), // cloned before the next modification nameField, cc.xy(3, 7) // sets this instance to (3, 7) );
Parameters: resourceKey the resource key for the label labelConstraints the label's cell constraints component the component to add componentConstraints the component's cell constraints
Returns: the added label
Throws: IllegalArgumentException if the same cell constraints instance is used for the label and the component
See Also: JLabel#setLabelFor(java.awt.Component)
Parameters: resourceKey the resource key for the separator title constraints the separator's cell constraints
Returns: the added titled separator
Parameters: resourceKey the resource key for the separator title encodedConstraints a string representation for the constraints
Returns: the added titled separator
Parameters: resourceKey the resource key for the separator title constraints the separator's cell constraints
Returns: the added title label
Parameters: resourceKey the resource key for the separator title encodedConstraints a string representation for the constraints
Returns: the added title label
ResourceMap
.
Parameters: resourceKey the key to look for in the resource map
Returns: the associated internationalized string, or the resource key itself in case of a missing resource
Throws: IllegalStateException if no ResourceBundle
has been set
Returns: true if debug tool tips are enabled, false if disabled
Parameters: b true to enable, false to disable