Class I15dPanelBuilder

  • Direct Known Subclasses:
    DefaultFormBuilder

    @Deprecated
    public class I15dPanelBuilder
    extends PanelBuilder
    Deprecated.
    Replaced by the internationalization support provided by the JGoodies Smart Client Resources class. Although deprecated, this class will remain in the Forms library for the next versions.
    A general purpose builder class 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 #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.

    Since:
    1.1
    Version:
    $Revision: 1.12 $
    See Also:
    ResourceBundle
    • Field Detail

      • resources

        private final com.jgoodies.common.internal.StringResourceAccessor resources
        Deprecated.
        Holds the ResourceBundle used to look up internationalized (i15d) String resources.
      • debugToolTipsEnabled

        private boolean debugToolTipsEnabled
        Deprecated.
    • Constructor Detail

      • I15dPanelBuilder

        public I15dPanelBuilder​(FormLayout layout,
                                java.util.ResourceBundle bundle)
        Deprecated.
        Constructs an I15dPanelBuilder for the given layout and resource bundle. Uses an instance of JPanel as layout container.
        Parameters:
        layout - the FormLayout used to layout the container
        bundle - the ResourceBundle used to look up i15d strings
        Throws:
        java.lang.NullPointerException - if layout or bundle, is null
      • I15dPanelBuilder

        public I15dPanelBuilder​(FormLayout layout,
                                java.util.ResourceBundle bundle,
                                javax.swing.JPanel container)
        Deprecated.
        Constructs an I15dPanelBuilder for the given FormLayout, resource bundle, and layout container.
        Parameters:
        layout - the FormLayout used to layout the container
        bundle - the ResourceBundle used to lookup i15d strings
        container - the layout container
        Throws:
        java.lang.NullPointerException - if layout, bundle, or container is null
      • I15dPanelBuilder

        public I15dPanelBuilder​(FormLayout layout,
                                com.jgoodies.common.internal.StringResourceAccessor localizer)
        Deprecated.
        Constructs an I15dPanelBuilder for the given FormLayout, resource bundle, and layout container.
        Parameters:
        layout - the FormLayout used to layout the container
        localizer - used to lookup i15d strings
        Throws:
        java.lang.NullPointerException - if layout is null
      • I15dPanelBuilder

        public I15dPanelBuilder​(FormLayout layout,
                                com.jgoodies.common.internal.StringResourceAccessor localizer,
                                javax.swing.JPanel container)
        Deprecated.
        Constructs an I15dPanelBuilder for the given FormLayout, resource bundle, and layout container.
        Parameters:
        layout - the FormLayout used to layout the container
        localizer - used to lookup i15d strings
        container - the layout container
        Throws:
        java.lang.NullPointerException - if layout or container is null
    • Method Detail

      • background

        public I15dPanelBuilder background​(java.awt.Color background)
        Deprecated.
        Description copied from class: AbstractBuilder
        Sets the panel's background color and makes the panel opaque.
        Overrides:
        background in class AbstractBuilder<PanelBuilder>
        Parameters:
        background - the color to set as new background
        See Also:
        JComponent.setBackground(Color)
      • border

        public I15dPanelBuilder border​(java.lang.String emptyBorderSpec)
        Deprecated.
        Description copied from class: AbstractBuilder
        Sets the panel's border as an EmptyBorder using the given specification for the top, left, bottom, right in DLU. For example "1dlu, 2dlu, 3dlu, 4dlu" sets an empty border with 1dlu in the top, 2dlu in the left side, 3dlu at the bottom, and 4dlu in the right hand side.

        Equivalent to padding(Paddings.createPadding(paddingSpec)).

        Overrides:
        border in class AbstractBuilder<PanelBuilder>
        Parameters:
        emptyBorderSpec - describes the top, left, bottom, right sizes of the EmptyBorder to create
        See Also:
        Paddings.createPadding(String, Object...)
      • padding

        public I15dPanelBuilder padding​(javax.swing.border.EmptyBorder padding)
        Deprecated.
        Description copied from class: AbstractBuilder
        Sets a padding around this builder's panel.
        Overrides:
        padding in class AbstractBuilder<PanelBuilder>
        Parameters:
        padding - the empty border to set
        See Also:
        JComponent.setBorder(Border)
      • padding

        public I15dPanelBuilder padding​(java.lang.String paddingSpec,
                                        java.lang.Object... args)
        Deprecated.
        Description copied from class: AbstractBuilder
        Sets the panel's padding as an EmptyBorder using the given specification for the top, left, bottom, right margins in DLU. For example "1dlu, 2dlu, 3dlu, 4dlu" sets an empty border with 1dlu in the top, 2dlu in the left side, 3dlu at the bottom, and 4dlu in the right hand side.

        Equivalent to setPadding(Paddings.createPadding(paddingSpec)).

        Overrides:
        padding in class AbstractBuilder<PanelBuilder>
        Parameters:
        paddingSpec - describes the top, left, bottom, right margins of the padding (an EmptyBorder) to use
        args - optional format arguments, used if paddingSpec is a format string
        Returns:
        a reference to this builder
        See Also:
        AbstractBuilder.padding(EmptyBorder), Paddings.createPadding(String, Object...)
      • focusTraversal

        public I15dPanelBuilder focusTraversal​(java.awt.FocusTraversalPolicy policy)
        Deprecated.
        Description copied from class: PanelBuilder
        Sets the panel's focus traversal policy and sets the panel as focus traversal policy provider. Hence, this call is equivalent to:
         builder.getPanel().setFocusTraversalPolicy(policy);
         builder.getPanel().setFocusTraversalPolicyProvider(true);
         
        Overrides:
        focusTraversal in class PanelBuilder
        Parameters:
        policy - the focus traversal policy that will manage keyboard traversal of the children in this builder's panel
        See Also:
        Container.setFocusTraversalPolicy(FocusTraversalPolicy), Container.setFocusTraversalPolicyProvider(boolean)
      • debugToolTipsEnabled

        public I15dPanelBuilder debugToolTipsEnabled​(boolean b)
        Deprecated.
      • addI15dLabel

        public final javax.swing.JLabel addI15dLabel​(java.lang.String resourceKey,
                                                     CellConstraints constraints)
        Deprecated.
        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)
        Deprecated.
        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)
        Deprecated.
        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:
        java.lang.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 javax.swing.JLabel addI15dROLabel​(java.lang.String resourceKey,
                                                       CellConstraints constraints)
        Deprecated.
        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 javax.swing.JLabel addI15dROLabel​(java.lang.String resourceKey,
                                                       java.lang.String encodedConstraints)
        Deprecated.
        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 javax.swing.JLabel addI15dROLabel​(java.lang.String resourceKey,
                                                       CellConstraints labelConstraints,
                                                       java.awt.Component component,
                                                       CellConstraints componentConstraints)
        Deprecated.
        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:
        java.lang.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 javax.swing.JComponent addI15dSeparator​(java.lang.String resourceKey,
                                                             CellConstraints constraints)
        Deprecated.
        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)
        Deprecated.
        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 javax.swing.JLabel addI15dTitle​(java.lang.String resourceKey,
                                                     CellConstraints constraints)
        Deprecated.
        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 javax.swing.JLabel addI15dTitle​(java.lang.String resourceKey,
                                                     java.lang.String encodedConstraints)
        Deprecated.
        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
      • isDebugToolTipsEnabled

        protected final boolean isDebugToolTipsEnabled()
        Deprecated.
      • getResourceString

        protected final java.lang.String getResourceString​(java.lang.String key)
        Deprecated.
        Looks up and returns the internationalized (i15d) string for the given resource key, for example from a ResourceBundle or ResourceMap.
        Parameters:
        key - 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:
        java.lang.IllegalStateException - if the localization is not possible, for example, because no ResourceBundle or StringLocalizer has been set