public class I15dPanelBuilder extends PanelBuilder
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 #addI15d*
can be
marked texts, i.e. strings with an optional mnemonic marker.
See the MnemonicUtils
class comment for details.
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 during
construction, and requests strings from that bundle.
ResourceBundle
currentCellConstraints
Constructor and Description |
---|
I15dPanelBuilder(FormLayout layout,
ResourceBundle bundle)
Constructs an I15dPanelBuilder for the given layout and resource bundle.
|
I15dPanelBuilder(FormLayout layout,
ResourceBundle bundle,
JPanel container)
Constructs an I15dPanelBuilder for the given FormLayout, resource bundle,
and layout container.
|
I15dPanelBuilder(FormLayout layout,
com.jgoodies.common.internal.StringResourceAccessor localizer)
Constructs an I15dPanelBuilder for the given FormLayout, resource bundle,
and layout container.
|
I15dPanelBuilder(FormLayout layout,
com.jgoodies.common.internal.StringResourceAccessor localizer,
JPanel container)
Constructs an I15dPanelBuilder for the given FormLayout, resource bundle,
and layout container.
|
Modifier and Type | Method and Description |
---|---|
JLabel |
addI15dLabel(String resourceKey,
CellConstraints constraints)
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.
|
JLabel |
addI15dLabel(String resourceKey,
String encodedConstraints)
Adds an internationalized (i15d) textual label to the form using the
specified constraints.
|
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.
|
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.
|
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.
|
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.
|
I15dPanelBuilder |
background(Color background)
Sets the panel's background color and the panel to be opaque.
|
I15dPanelBuilder |
border(Border border)
Sets the panel's border.
|
I15dPanelBuilder |
border(String emptyBorderSpec)
Sets the panel's border as an EmptyBorder using the given specification
for the top, left, bottom, right in DLU.
|
I15dPanelBuilder |
debugToolTipsEnabled(boolean b) |
I15dPanelBuilder |
focusTraversal(FocusTraversalPolicy policy)
Sets the panel's focus traversal policy and sets the panel
as focus traversal policy provider.
|
protected String |
getResourceString(String key)
Looks up and returns the internationalized (i15d) string for the given
resource key, for example from a
ResourceBundle or
ResourceMap . |
protected boolean |
isDebugToolTipsEnabled() |
I15dPanelBuilder |
opaque(boolean b)
Sets the panel's opaque state.
|
add, add, addLabel, addLabel, addLabel, addLabel, addROLabel, addROLabel, addROLabel, addROLabel, addSeparator, addSeparator, addSeparator, addSeparator, addTitle, addTitle, addTitle, build, getPanel, isLabelForApplicable, labelForFeatureEnabled, setBorder, setDefaultDialogBorder, setLabelFor, setOpaque
add, add, appendColumn, appendColumn, appendGlueColumn, appendGlueRow, appendLabelComponentsGapColumn, appendParagraphGapRow, appendRelatedComponentsGapColumn, appendRelatedComponentsGapRow, appendRow, appendRow, appendUnrelatedComponentsGapColumn, appendUnrelatedComponentsGapRow, cellConstraints, createLeftAdjustedConstraints, getColumn, getColumnIncrementSign, getLeadingColumn, getRow, isLeftToRight, nextColumn, nextColumn, nextLine, nextLine, nextRow, nextRow, setAlignment, setBounds, setColumn, setColumnSpan, setExtent, setHAlignment, setLeftToRight, setOrigin, setRow, setRowSpan, setVAlignment
createComponentFactory, getColumnCount, getComponentFactory, getContainer, getLayout, getRowCount, setComponentFactory
public I15dPanelBuilder(FormLayout layout, ResourceBundle bundle)
layout
- the FormLayout used to layout the containerbundle
- the ResourceBundle used to look up i15d stringsNullPointerException
- if layout
or bundle
,
is null
public I15dPanelBuilder(FormLayout layout, ResourceBundle bundle, JPanel container)
layout
- the FormLayout used to layout the containerbundle
- the ResourceBundle used to lookup i15d stringscontainer
- the layout containerNullPointerException
- if layout
, bundle
,
or container
is null
public I15dPanelBuilder(FormLayout layout, com.jgoodies.common.internal.StringResourceAccessor localizer)
layout
- the FormLayout used to layout the containerlocalizer
- used to lookup i15d stringsNullPointerException
- if layout
is null
public I15dPanelBuilder(FormLayout layout, com.jgoodies.common.internal.StringResourceAccessor localizer, JPanel container)
layout
- the FormLayout used to layout the containerlocalizer
- used to lookup i15d stringscontainer
- the layout containerNullPointerException
- if layout
or container
is null
public I15dPanelBuilder background(Color background)
PanelBuilder
background
in class PanelBuilder
background
- the color to set as new backgroundJComponent.setBackground(Color)
public I15dPanelBuilder border(Border border)
PanelBuilder
border
in class PanelBuilder
border
- the border to setJComponent.setBorder(Border)
public I15dPanelBuilder border(String emptyBorderSpec)
PanelBuilder
Equivalent to setBorder(Borders.createEmptyBorder(emptyBorderSpec))
.
border
in class PanelBuilder
emptyBorderSpec
- describes the top, left, bottom, right sizes
of the EmptyBorder to createBorders.createEmptyBorder(String)
public I15dPanelBuilder opaque(boolean b)
PanelBuilder
opaque
in class PanelBuilder
b
- true for opaque, false for non-opaqueJComponent.setOpaque(boolean)
public I15dPanelBuilder focusTraversal(FocusTraversalPolicy policy)
PanelBuilder
builder.getPanel().setFocusTraversalPolicy(policy); builder.getPanel().setFocusTraversalPolicyProvider(true);
focusTraversal
in class PanelBuilder
policy
- the focus traversal policy that will manage
keyboard traversal of the children in this builder's panelContainer.setFocusTraversalPolicy(FocusTraversalPolicy)
,
Container.setFocusTraversalPolicyProvider(boolean)
public I15dPanelBuilder debugToolTipsEnabled(boolean b)
public final JLabel addI15dLabel(String resourceKey, CellConstraints constraints)
resourceKey
- the resource key for the label's textconstraints
- the label's cell constraintspublic final JLabel addI15dLabel(String resourceKey, String encodedConstraints)
resourceKey
- the resource key for the label's textencodedConstraints
- a string representation for the constraintspublic final JLabel addI15dLabel(String resourceKey, CellConstraints labelConstraints, Component component, CellConstraints componentConstraints)
JLabel.setLabelFor(java.awt.Component)
.
Note: The 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.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) );
resourceKey
- the resource key for the labellabelConstraints
- the label's cell constraintscomponent
- the component to addcomponentConstraints
- the component's cell constraintsIllegalArgumentException
- if the same cell constraints instance
is used for the label and the componentJLabel.setLabelFor(java.awt.Component)
public final JLabel addI15dROLabel(String resourceKey, CellConstraints constraints)
resourceKey
- the resource key for the label's textconstraints
- the label's cell constraintspublic final JLabel addI15dROLabel(String resourceKey, String encodedConstraints)
resourceKey
- the resource key for the label's textencodedConstraints
- a string representation for the constraintspublic final JLabel addI15dROLabel(String resourceKey, CellConstraints labelConstraints, Component component, CellConstraints componentConstraints)
JLabel.setLabelFor(java.awt.Component)
.
Note: The 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.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 );
resourceKey
- the resource key for the labellabelConstraints
- the label's cell constraintscomponent
- the component to addcomponentConstraints
- the component's cell constraintsIllegalArgumentException
- if the same cell constraints instance
is used for the label and the componentJLabel.setLabelFor(java.awt.Component)
public final JComponent addI15dSeparator(String resourceKey, CellConstraints constraints)
resourceKey
- the resource key for the separator titleconstraints
- the separator's cell constraintspublic final JComponent addI15dSeparator(String resourceKey, String encodedConstraints)
resourceKey
- the resource key for the separator titleencodedConstraints
- a string representation for the constraintspublic final JLabel addI15dTitle(String resourceKey, CellConstraints constraints)
resourceKey
- the resource key for the separator titleconstraints
- the separator's cell constraintspublic final JLabel addI15dTitle(String resourceKey, String encodedConstraints)
resourceKey
- the resource key for the separator titleencodedConstraints
- a string representation for the constraintsprotected final boolean isDebugToolTipsEnabled()
protected final String getResourceString(String key)
ResourceBundle
or
ResourceMap
.key
- the key to look for in the resource mapIllegalStateException
- if the localization is not possible,
for example, because no ResourceBundle or StringLocalizer
has been setCopyright © 2002-2014 JGoodies Software GmbH. All Rights Reserved.