com.jgoodies.forms.builder
Class I15dPanelBuilder

java.lang.Object
  extended by com.jgoodies.forms.builder.AbstractFormBuilder
      extended by com.jgoodies.forms.builder.PanelBuilder
          extended by com.jgoodies.forms.builder.I15dPanelBuilder
Direct Known Subclasses:
DefaultFormBuilder

public class I15dPanelBuilder
extends PanelBuilder

A general purpose panel builder that uses the FormLayout to lay out JPanels. 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 "&Save", or "Save &as". To use the ampersand itself, duplicate it, for example "Look&&Feel".

Since:
1.0.3
Version:
$Revision: 54721 $
Author:
Karsten Lentzsch
See Also:
ResourceBundle

Field Summary
private  java.util.ResourceBundle bundle
          Holds the ResourceBundle used to lookup internationalized (i15d) String resources.
 
Constructor Summary
I15dPanelBuilder(FormLayout layout, java.util.ResourceBundle bundle)
          Constructs an instance of I15dPanelBuilder for the given layout.
I15dPanelBuilder(FormLayout layout, java.util.ResourceBundle bundle, javax.swing.JPanel panel)
          Constructs an instance of I15dPanelBuilder for the given FormLayout and layout container.
I15dPanelBuilder(javax.swing.JPanel panel, FormLayout layout, java.util.ResourceBundle bundle)
          Deprecated. Replaced by I15dPanelBuilder(FormLayout, ResourceBundle, JPanel).
 
Method Summary
 javax.swing.JLabel add15dTitle(java.lang.String resourceKey, java.lang.String encodedConstraints)
          Adds a title to the form using the specified constraints.
 javax.swing.JLabel addI15dLabel(java.lang.String resourceKey, CellConstraints constraints)
          Adds an internationalized (i15d) textual label to the form using the specified constraints.
 javax.swing.JLabel addI15dLabel(java.lang.String resourceKey, CellConstraints labelConstraints, java.awt.Component component, CellConstraints componentConstraints)
          Adds an internationalized (i15d) label and component to the panel using the given cell constraints.
 javax.swing.JLabel addI15dLabel(java.lang.String resourceKey, java.lang.String encodedConstraints)
          Adds an internationalized (i15d) textual label to the form using the specified constraints.
 javax.swing.JComponent addI15dSeparator(java.lang.String resourceKey, CellConstraints constraints)
          Adds an internationalized (i15d) titled separator to the form using the specified constraints.
 javax.swing.JComponent addI15dSeparator(java.lang.String resourceKey, java.lang.String encodedConstraints)
          Adds an internationalized (i15d) titled separator to the form using the specified constraints.
 javax.swing.JLabel addI15dTitle(java.lang.String resourceKey, CellConstraints constraints)
          Adds a title to the form using the specified constraints.
protected  java.lang.String getI15dString(java.lang.String resourceKey)
          Looks up and returns the internationalized (i15d) string for the given resource key from the ResourceBundle.
 
Methods inherited from class com.jgoodies.forms.builder.PanelBuilder
add, addLabel, addLabel, addLabel, addLabel, addSeparator, addSeparator, addSeparator, addSeparator, addTitle, addTitle, addTitle, getComponentFactory, getPanel, setBorder, setComponentFactory, setDefaultDialogBorder
 
Methods inherited from class com.jgoodies.forms.builder.AbstractFormBuilder
add, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bundle

private final java.util.ResourceBundle bundle
Holds the ResourceBundle used to lookup internationalized (i15d) String resources.

Constructor Detail

I15dPanelBuilder

public I15dPanelBuilder(FormLayout layout,
                        java.util.ResourceBundle bundle)
Constructs an instance of I15dPanelBuilder for the given layout. Uses an instance of JPanel as layout container.

Parameters:
layout - the form layout used to layout the container
bundle - the resource bundle used to lookup i15d strings

I15dPanelBuilder

public I15dPanelBuilder(FormLayout layout,
                        java.util.ResourceBundle bundle,
                        javax.swing.JPanel panel)
Constructs an instance of I15dPanelBuilder for the given FormLayout and layout container.

Parameters:
layout - the FormLayout used to layout the container
bundle - the ResourceBundle used to lookup i15d strings
panel - the layout container

I15dPanelBuilder

public I15dPanelBuilder(javax.swing.JPanel panel,
                        FormLayout layout,
                        java.util.ResourceBundle bundle)
Deprecated. Replaced by I15dPanelBuilder(FormLayout, ResourceBundle, JPanel).

Constructs an instance of I15dPanelBuilder for the given FormLayout and layout container.

Parameters:
panel - the layout container
bundle - the ResourceBundle used to lookup i15d strings
layout - the FormLayout used to layout the container
Method Detail

addI15dLabel

public final javax.swing.JLabel addI15dLabel(java.lang.String resourceKey,
                                             CellConstraints constraints)
Adds an internationalized (i15d) textual label to the form using the specified constraints.

Parameters:
resourceKey - the resource key for the label's text
constraints - the label's cell constraints
Returns:
the added label

addI15dLabel

public final javax.swing.JLabel addI15dLabel(java.lang.String resourceKey,
                                             java.lang.String encodedConstraints)
Adds an internationalized (i15d) textual label to the form using the specified constraints.

Parameters:
resourceKey - the resource key for the label's text
encodedConstraints - a string representation for the constraints
Returns:
the added label

addI15dLabel

public final javax.swing.JLabel addI15dLabel(java.lang.String resourceKey,
                                             CellConstraints labelConstraints,
                                             java.awt.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 using 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.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:
java.lang.IllegalArgumentException - if the same cell constraints instance is used for the label and the component
See Also:
JLabel.setLabelFor(java.awt.Component)

addI15dSeparator

public final javax.swing.JComponent addI15dSeparator(java.lang.String resourceKey,
                                                     CellConstraints constraints)
Adds an internationalized (i15d) titled separator to the form using the specified constraints.

Parameters:
resourceKey - the resource key for the separator title
constraints - the separator's cell constraints
Returns:
the added titled separator

addI15dSeparator

public final javax.swing.JComponent addI15dSeparator(java.lang.String resourceKey,
                                                     java.lang.String encodedConstraints)
Adds an internationalized (i15d) titled separator to the form using the specified constraints.

Parameters:
resourceKey - the resource key for the separator titel
encodedConstraints - a string representation for the constraints
Returns:
the added titled separator

addI15dTitle

public final javax.swing.JLabel addI15dTitle(java.lang.String resourceKey,
                                             CellConstraints constraints)
Adds a title to the form using the specified constraints.

Parameters:
resourceKey - the resource key for the separator title
constraints - the separator's cell constraints
Returns:
the added title label

add15dTitle

public final javax.swing.JLabel add15dTitle(java.lang.String resourceKey,
                                            java.lang.String encodedConstraints)
Adds a title to the form using the specified constraints.

Parameters:
resourceKey - the resource key for the separator titel
encodedConstraints - a string representation for the constraints
Returns:
the added title label

getI15dString

protected java.lang.String getI15dString(java.lang.String resourceKey)
Looks up and returns the internationalized (i15d) string for the given resource key from the ResourceBundle.

Parameters:
resourceKey - the key to look for in the resource bundle
Returns:
the associated internationalized string, or the resource key itself in case of a missing resource
Throws:
java.lang.IllegalStateException - if no ResourceBundle has been set