Class AbstractI15dPanelBuilder
- Direct Known Subclasses:
I15dPanelBuilder
FormLayout
to lay out JPanel
s. In addition to its superclass
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 "&Saveinvalid input: '"', or
"Save &asinvalid input: '"'. To use the ampersand itself,
duplicate it, for example "Look&&Feelinvalid input: '"'.
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.8 $
- Author:
- Karsten Lentzsch
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractI15dPanelBuilder
(FormLayout layout) Constructs anAbstractI15dPanelBuilder
for the given layout.protected
AbstractI15dPanelBuilder
(FormLayout layout, JPanel panel) Constructs anAbstractI15dPanelBuilder
for the given FormLayout and layout container. -
Method Summary
Modifier and TypeMethodDescriptionfinal JLabel
addI15dLabel
(String resourceKey, CellConstraints constraints) Adds an internationalized (i15d) textual label to the form using the specified constraints.final 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.final JLabel
addI15dLabel
(String resourceKey, String encodedConstraints) Adds an internationalized (i15d) textual label to the form using the specified constraints.final JLabel
addI15dROLabel
(String resourceKey, CellConstraints constraints) Adds an internationalized (i15d) textual label to the form using the specified constraints that is intended to label a read-only component.final JLabel
addI15dROLabel
(String resourceKey, CellConstraints labelConstraints, Component component, CellConstraints componentConstraints) Adds an internationalized (i15d) label and component to the panel using the given cell constraints.final JLabel
addI15dROLabel
(String resourceKey, String encodedConstraints) Adds an internationalized (i15d) textual label to the form using the specified constraints that is intended to label a read-only component.final JComponent
addI15dSeparator
(String resourceKey, CellConstraints constraints) Adds an internationalized (i15d) titled separator to the form using the specified constraints.final JComponent
addI15dSeparator
(String resourceKey, String encodedConstraints) Adds an internationalized (i15d) titled separator to the form using the specified constraints.final JLabel
addI15dTitle
(String resourceKey, CellConstraints constraints) Adds a title to the form using the specified constraints.final 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 theResourceMap
.static boolean
Returns whether the debug tool tips are enabled or not.static void
setDebugToolTipsEnabled
(boolean b) Enables or disables the debug tool tips.Methods inherited from class com.jgoodies.forms.builder.PanelBuilder
add, add, addLabel, addLabel, addLabel, addLabel, addROLabel, addROLabel, addROLabel, addROLabel, addSeparator, addSeparator, addSeparator, addSeparator, addTitle, addTitle, addTitle, getComponentFactory, getLabelForFeatureEnabledDefault, getPanel, isLabelForApplicable, isLabelForFeatureEnabled, setBackground, setBorder, setComponentFactory, setDefaultDialogBorder, setLabelFor, setLabelForFeatureEnabled, setLabelForFeatureEnabledDefault, setOpaque
Methods inherited from class com.jgoodies.forms.builder.AbstractFormBuilder
add, add, appendColumn, appendColumn, appendGlueColumn, appendGlueRow, appendLabelComponentsGapColumn, appendParagraphGapRow, appendRelatedComponentsGapColumn, appendRelatedComponentsGapRow, appendRow, appendRow, appendUnrelatedComponentsGapColumn, appendUnrelatedComponentsGapRow, cellConstraints, createLeftAdjustedConstraints, getColumn, getColumnCount, getColumnIncrementSign, getContainer, getLayout, getLeadingColumn, getRow, getRowCount, isLeftToRight, nextColumn, nextColumn, nextLine, nextLine, nextRow, nextRow, setAlignment, setBounds, setColumn, setColumnSpan, setExtent, setHAlignment, setLeftToRight, setOrigin, setRow, setRowSpan, setVAlignment
-
Constructor Details
-
AbstractI15dPanelBuilder
Constructs anAbstractI15dPanelBuilder
for the given layout. Uses an instance ofJPanel
as layout container.- Parameters:
layout
- theFormLayout
used to layout the container
-
AbstractI15dPanelBuilder
Constructs anAbstractI15dPanelBuilder
for the given FormLayout and layout container.- Parameters:
layout
- theFormLayout
used to layout the containerpanel
- the layout container
-
-
Method Details
-
isDebugToolTipsEnabled
public static boolean isDebugToolTipsEnabled()Returns whether the debug tool tips are enabled or not.- Returns:
- true if debug tool tips are enabled, false if disabled
-
setDebugToolTipsEnabled
public static void setDebugToolTipsEnabled(boolean b) Enables or disables the debug tool tips.- Parameters:
b
- true to enable, false to disable
-
addI15dLabel
Adds an internationalized (i15d) textual label to the form using the specified constraints.- Parameters:
resourceKey
- the resource key for the label's textconstraints
- the label's cell constraints- Returns:
- the added label
-
addI15dLabel
Adds an internationalized (i15d) textual label to the form using the specified constraints.- Parameters:
resourceKey
- the resource key for the label's textencodedConstraints
- a string representation for the constraints- Returns:
- the added label
-
addI15dLabel
public final 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. Sets the label as the component label usingJLabel.setLabelFor(java.awt.Component)
.Note: The
CellConstraints
objects for the label and the component must be different. Cell constraints are implicitly cloned by theFormLayout
when added to the container. However, in this case you may be tempted to reuse aCellConstraints
object in the same way as with many other builder methods that require a singleCellConstraints
parameter. The pitfall is that the methodsCellConstraints.xy**(...)
just set the coordinates but do not create a new instance. And so the second invocation ofxy***(...)
overrides the settings performed in the first invocation before the object is cloned by theFormLayout
.Wrong:
builder.addI15dLabel("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.addI15dLabel("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 labellabelConstraints
- the label's cell constraintscomponent
- the component to addcomponentConstraints
- 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:
-
addI15dROLabel
Adds an internationalized (i15d) textual label to the form using the specified constraints that is intended to label a read-only component.- Parameters:
resourceKey
- the resource key for the label's textconstraints
- the label's cell constraints- Returns:
- the added label
- Since:
- 1.3
-
addI15dROLabel
Adds an internationalized (i15d) textual label to the form using the specified constraints that is intended to label a read-only component.- Parameters:
resourceKey
- the resource key for the label's textencodedConstraints
- a string representation for the constraints- Returns:
- the added label
- Since:
- 1.3
-
addI15dROLabel
public final JLabel addI15dROLabel(String resourceKey, CellConstraints labelConstraints, Component component, CellConstraints componentConstraints) Adds an internationalized (i15d) label and component to the panel using the given cell constraints. Intended for read-only components. Sets the label as the component label usingJLabel.setLabelFor(java.awt.Component)
.Note: The
CellConstraints
objects for the label and the component must be different. Cell constraints are implicitly cloned by theFormLayout
when added to the container. However, in this case you may be tempted to reuse aCellConstraints
object in the same way as with many other builder methods that require a singleCellConstraints
parameter. The pitfall is that the methodsCellConstraints.xy**(...)
just set the coordinates but do not create a new instance. And so the second invocation ofxy***(...)
overrides the settings performed in the first invocation before the object is cloned by theFormLayout
.Wrong:
builder.addI15dROLabel("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.addI15dROLabel("name.key", cc.xy(1, 7).clone(), // cloned before the next modification nameField, cc.xy(3, 7) // sets this instance to (3, 7) );
Better:builder.addI15dROLabel("name.key", CC.xy(1, 7) // creates a CellConstraints object nameField, CC.xy(3, 7) // creates another CellConstraints object );
- Parameters:
resourceKey
- the resource key for the labellabelConstraints
- the label's cell constraintscomponent
- the component to addcomponentConstraints
- 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- Since:
- 1.3
- See Also:
-
addI15dSeparator
Adds an internationalized (i15d) titled separator to the form using the specified constraints.- Parameters:
resourceKey
- the resource key for the separator titleconstraints
- the separator's cell constraints- Returns:
- the added titled separator
-
addI15dSeparator
Adds an internationalized (i15d) titled separator to the form using the specified constraints.- Parameters:
resourceKey
- the resource key for the separator titleencodedConstraints
- a string representation for the constraints- Returns:
- the added titled separator
-
addI15dTitle
Adds a title to the form using the specified constraints.- Parameters:
resourceKey
- the resource key for the separator titleconstraints
- the separator's cell constraints- Returns:
- the added title label
-
addI15dTitle
Adds a title to the form using the specified constraints.- Parameters:
resourceKey
- the resource key for the separator titleencodedConstraints
- a string representation for the constraints- Returns:
- the added title label
-
getI15dString
Looks up and returns the internationalized (i15d) string for the given resource key from theResourceMap
.- 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 noResourceBundle
has been set
-