Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.jgoodies.forms.builder
Class AbstractI15dPanelBuilder

    java.lang.Object
      com.jgoodies.forms.builder.AbstractFormBuilder
          com.jgoodies.forms.builder.PanelBuilder
              com.jgoodies.forms.builder.AbstractI15dPanelBuilder

Direct Known Subclasses:
  I15dPanelBuilder

    public abstract class AbstractI15dPanelBuilder

extends PanelBuilder

An abstract panel builder class that uses the `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 `"&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.8 $
Author:
  Karsten Lentzsch

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, 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.
`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.

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`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AbstractI15dPanelBuilder

    protected AbstractI15dPanelBuilder(FormLayout layout)

  Constructs an `AbstractI15dPanelBuilder` for the given layout. Uses an instance of `JPanel` as layout container.

  Parameters:
    `layout` - the `FormLayout` used to layout the container

### AbstractI15dPanelBuilder

    protected AbstractI15dPanelBuilder(FormLayout layout,
                                       JPanel panel)

  Constructs an `AbstractI15dPanelBuilder` for the given FormLayout and layout container.

  Parameters:
    `layout` - the `FormLayout` used to layout the container
    `panel` - the layout container

Method Detail

### 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

    public final JLabel addI15dLabel(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 JLabel addI15dLabel(String resourceKey,
                                     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 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 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.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 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)`

### addI15dROLabel

    public 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.

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

### addI15dROLabel

    public 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.

  Parameters:
    `resourceKey` - the resource key for the label's text
    `encodedConstraints` - 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 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.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 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
  Since:
    1.3
  See Also:
    `JLabel.setLabelFor(java.awt.Component)`

### addI15dSeparator

    public final JComponent addI15dSeparator(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 JComponent addI15dSeparator(String resourceKey,
                                             String encodedConstraints)

  Adds an internationalized (i15d) titled separator to the form using the specified constraints.

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

### addI15dTitle

    public final JLabel addI15dTitle(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

### addI15dTitle

    public final JLabel addI15dTitle(String resourceKey,
                                     String encodedConstraints)

  Adds a title to the form using the specified constraints.

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

### getI15dString

    protected abstract String getI15dString(String resourceKey)

  Looks up and returns the internationalized (i15d) string for the given resource key from the `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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2009 JGoodies Karsten Lentzsch. All Rights Reserved.