Class DefaultFormBuilder
- java.lang.Object
-
- com.jgoodies.forms.builder.AbstractBuilder
-
- com.jgoodies.forms.builder.AbstractFormBuilder
-
- com.jgoodies.forms.builder.PanelBuilder
-
- com.jgoodies.forms.builder.I15dPanelBuilder
-
- com.jgoodies.forms.builder.DefaultFormBuilder
-
public final class DefaultFormBuilder extends I15dPanelBuilder
Provides a means to build form-oriented panels quickly and consistently using theFormLayout
. This builder combines frequently used panel building steps: add a new row, add a label, proceed to the next data column, then add a component.The extra value lies in the
#append
methods that append gap rows and component rows if necessary and then add the given components. They are built upon the superclass behavior#appendRow
and the set of#add
methods. A set of component appenders allows to add a textual label and associated component in a single step.This builder can map resource keys to internationalized (i15d) texts when creating text labels, titles and titled separators. Therefore you must specify a
ResourceBundle
in the constructor. The builder methods throw anIllegalStateException
if one of the mapping builder methods is invoked and no bundle has been set.You can configure the build process by setting a leading column, enabling the row grouping and by modifying the gaps between normal lines and between paragraphs. The leading column will be honored if the cursor proceeds to the next row. All appended components start in the specified lead column, except appended separators that span all columns.
It is temptive to use the DefaultFormBuilder all the time and to let it add rows automatically. Use a simpler style if it increases the code readability. Explicit row specifications and cell constraints make your layout easier to understand - but harder to maintain. See also the accompanying tutorial sources and the Tips & Tricks that are part of the Forms documentation.
Sometimes a form consists of many standardized rows but has a few rows that require a customization. The DefaultFormBuilder can do everything that the superclasses
AbstractFormBuilder
andPanelBuilder
can do; among other things: appending new rows and moving the cursor. Again, ask yourself if the DefaultFormBuilder is the appropriate builder. As a rule of thumb you should have more components than builder commands. There are different ways to add custom rows. Find below example code that presents and compares the pros and cons of three approaches.The texts for labels and titles can be marked texts, i.e. strings with an optional mnemonic marker. See the
MnemonicUtils
class comment for details.Example:
public void build() { FormLayout layout = new FormLayout( "right:max(40dlu;pref), 3dlu, 80dlu, 7dlu, " // 1st major colum + "right:max(40dlu;pref), 3dlu, 80dlu", // 2nd major column ""); // add rows dynamically DefaultFormBuilder builder = new DefaultFormBuilder(layout) .border(Borders.DIALOG); builder.appendSeparator("Flange"); builder.append("Identifier", identifierField); builder.nextLine(); builder.append("PTI [kW]", new JTextField()); builder.append("Power [kW]", new JTextField()); builder.append("s [mm]", new JTextField()); builder.nextLine(); builder.appendSeparator("Diameters"); builder.append("da [mm]", new JTextField()); builder.append("di [mm]", new JTextField()); builder.append("da2 [mm]", new JTextField()); builder.append("di2 [mm]", new JTextField()); builder.append("R [mm]", new JTextField()); builder.append("D [mm]", new JTextField()); builder.appendSeparator("Criteria"); builder.append("Location", buildLocationComboBox()); builder.append("k-factor", new JTextField()); builder.appendSeparator("Bolts"); builder.append("Material", ViewerUIFactory.buildMaterialComboBox()); builder.nextLine(); builder.append("Numbers", new JTextField()); builder.nextLine(); builder.append("ds [mm]", new JTextField()); }
Custom Row Example:
public JComponent buildPanel() { initComponents(); FormLayout layout = new FormLayout( "right:pref, 3dlu, default:grow", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout) .border(Borders.DIALOG) .rowGroupingEnabled(true); // In this approach, we add a gap and a custom row. // The advantage of this approach is, that we can express // the row spec and comment area cell constraints freely. // The disadvantage is the misalignment of the leading label. // Also the row's height may be inconsistent with other rows. builder.appendSeparator("Single Custom Row"); builder.append("Name", name1Field); builder.appendLineGapRow(); builder.appendRow(RowSpec.decode("top:31dlu")); // Assumes line is 14, gap is 3 builder.nextLine(2); builder.append("Comment"); builder.add(new JScrollPane(comment1Area), CC.xy(builder.getColumn(), builder.getRow(), "fill, fill")); builder.nextLine(); // In this approach, we append a standard row with gap before it. // The advantage is, that the leading label is aligned well. // The disadvantage is that the comment area now spans // multiple cells and is slightly less flexible. // Also the row's height may be inconsistent with other rows. builder.appendSeparator("Standard + Custom Row"); builder.append("Name", name2Field); builder.append("Comment"); builder.appendRow(RowSpec.decode("17dlu")); // Assumes line is 14, gap is 3 builder.add(new JScrollPane(comment2Area), CC.xywh(builder.getColumn(), builder.getRow(), 1, 2)); builder.nextLine(2); // In this approach, we append two standard rows with associated gaps. // The advantage is, that the leading label is aligned well, // and the height is consistent with other rows. // The disadvantage is that the comment area now spans // multiple cells and is slightly less flexible. builder.appendSeparator("Two Standard Rows"); builder.append("Name", name3Field); builder.append("Comment"); builder.nextLine(); builder.append(""); builder.nextRow(-2); builder.add(new JScrollPane(comment3Area), CC.xywh(builder.getColumn(), builder.getRow(), 1, 3)); return builder.build(); }
TODO: Consider adding a method for appending a component that spans the remaining columns in the current row. Method name candidates are
#appendFullSpan
and#appendRemaining
.- Since:
- 1.0.3
- Version:
- $Revision: 1.16 $
- See Also:
AbstractFormBuilder
,FormSpecs
,FormLayout
-
-
Field Summary
Fields Modifier and Type Field Description private RowSpec
defaultRowSpec
Holds the row specification that is reused to describe rows that are intended for labels and components.private int
leadingColumnOffset
Holds the offset of the leading column - often 0 or 1.private RowSpec
lineGapSpec
Holds the row specification that is reused to describe the constant gaps between component lines.private RowSpec
paragraphGapSpec
Holds the row specification that describes the constant gaps between paragraphs.private boolean
rowGroupingEnabled
Determines whether new data rows are being grouped or not.-
Fields inherited from class com.jgoodies.forms.builder.AbstractBuilder
currentCellConstraints
-
-
Constructor Summary
Constructors Constructor Description DefaultFormBuilder(FormLayout layout)
Constructs aDefaultFormBuilder
for the given layout.DefaultFormBuilder(FormLayout layout, com.jgoodies.common.internal.StringResourceAccessor localizer)
Constructs aDefaultFormBuilder
for the given layout and resource bundle.DefaultFormBuilder(FormLayout layout, com.jgoodies.common.internal.StringResourceAccessor localizer, javax.swing.JPanel container)
Constructs aDefaultFormBuilder
for the given layout, resource bundle, and panel.DefaultFormBuilder(FormLayout layout, java.util.ResourceBundle bundle)
Constructs aDefaultFormBuilder
for the given layout and resource bundle.DefaultFormBuilder(FormLayout layout, java.util.ResourceBundle bundle, javax.swing.JPanel container)
Constructs aDefaultFormBuilder
for the given layout, resource bundle, and panel.DefaultFormBuilder(FormLayout layout, javax.swing.JPanel container)
Constructs aDefaultFormBuilder
for the given layout and panel.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
append(java.awt.Component component)
Adds a component to the panel using the default constraints with a column span of 1.void
append(java.awt.Component component, int columnSpan)
Adds a component to the panel using the default constraints with the given columnSpan.void
append(java.awt.Component c1, java.awt.Component c2)
Adds two components to the panel; each component will span a single data column.void
append(java.awt.Component c1, java.awt.Component c2, java.awt.Component c3)
Adds three components to the panel; each component will span a single data column.javax.swing.JLabel
append(java.lang.String textWithMnemonic)
Adds a text label to the panel and proceeds to the next column.javax.swing.JLabel
append(java.lang.String textWithMnemonic, java.awt.Component component)
Adds a text label and component to the panel.javax.swing.JLabel
append(java.lang.String textWithMnemonic, java.awt.Component c, boolean nextLine)
Adds a text label and component to the panel; the component will span the specified number columns.javax.swing.JLabel
append(java.lang.String textWithMnemonic, java.awt.Component c, int columnSpan)
Adds a text label and component to the panel; the component will span the specified number columns.javax.swing.JLabel
append(java.lang.String textWithMnemonic, java.awt.Component c1, java.awt.Component c2)
Adds a text label and two components to the panel; each component will span a single column.javax.swing.JLabel
append(java.lang.String textWithMnemonic, java.awt.Component c1, java.awt.Component c2, int colSpan)
Adds a text label and two components to the panel; each component will span a single column.javax.swing.JLabel
append(java.lang.String textWithMnemonic, java.awt.Component c1, java.awt.Component c2, java.awt.Component c3)
Adds a text label and three components to the panel; each component will span a single column.javax.swing.JLabel
append(java.lang.String textWithMnemonic, java.awt.Component c1, java.awt.Component c2, java.awt.Component c3, java.awt.Component c4)
Adds a text label and four components to the panel; each component will span a single column.javax.swing.JLabel
appendI15d(java.lang.String resourceKey)
Adds an internationalized (i15d) text label to the panel using the given resource key and proceeds to the next column.javax.swing.JLabel
appendI15d(java.lang.String resourceKey, java.awt.Component component)
Adds an internationalized (i15d) text label and component to the panel.javax.swing.JLabel
appendI15d(java.lang.String resourceKey, java.awt.Component component, boolean nextLine)
Adds an internationalized (i15d) text label and component to the panel.javax.swing.JLabel
appendI15d(java.lang.String resourceKey, java.awt.Component c, int columnSpan)
Adds an internationalized (i15d) text label to the panel using the given resource key; then proceeds to the next data column and adds a component with the given column span.javax.swing.JLabel
appendI15d(java.lang.String resourceKey, java.awt.Component c1, java.awt.Component c2)
Adds an internationalized (i15d) text label and two components to the panel; each component will span a single column.javax.swing.JLabel
appendI15d(java.lang.String resourceKey, java.awt.Component c1, java.awt.Component c2, int colSpan)
Adds an internationalized (i15d) text label and two components to the panel; each component will span a single column.javax.swing.JLabel
appendI15d(java.lang.String resourceKey, java.awt.Component c1, java.awt.Component c2, java.awt.Component c3)
Adds an internationalized (i15d) text label and three components to the panel; each component will span a single column.javax.swing.JLabel
appendI15d(java.lang.String resourceKey, java.awt.Component c1, java.awt.Component c2, java.awt.Component c3, java.awt.Component c4)
Adds an internationalized (i15d) text label and four components to the panel; each component will span a single column.javax.swing.JComponent
appendI15dSeparator(java.lang.String resourceKey)
Appends an internationalized titled separator for the given resource key that spans all columns.javax.swing.JLabel
appendI15dTitle(java.lang.String resourceKey)
Adds an internationalized title label to the panel and proceeds to the next column.void
appendLineGapRow()
Appends a row with this builder's line gap size.javax.swing.JComponent
appendSeparator()
Adds a separator without text that spans all columns.javax.swing.JComponent
appendSeparator(java.lang.String text)
Adds a separator with the given text that spans all columns.javax.swing.JLabel
appendTitle(java.lang.String textWithMnemonic)
Adds a title label to the panel and proceeds to the next column.DefaultFormBuilder
background(java.awt.Color background)
Sets the panel's background color and the panel to be opaque.DefaultFormBuilder
border(java.lang.String emptyBorderSpec)
Sets the panel's border as an EmptyBorder using the given specification for the top, left, bottom, right in DLU.DefaultFormBuilder
border(javax.swing.border.Border border)
Sets the panel's border.DefaultFormBuilder
defaultRowSpec(RowSpec defaultRowSpec)
Sets the row specification that shall be used for component rows.private void
ensureCursorColumnInGrid()
Ensures that the cursor is in the grid.private void
ensureHasComponentLine()
Ensures that the form has a component row.private void
ensureHasGapRow(RowSpec gapRowSpec)
Ensures that we have a gap row before the next component row.private RowSpec
getCursorRowSpec()
Looks up and returns the row specification of the current row.RowSpec
getDefaultRowSpec()
Deprecated.Obsolete; will be deleted from the next versionprotected int
getLeadingColumn()
Returns the leading column.int
getLeadingColumnOffset()
Deprecated.Obsolete; will be deleted from the next versionRowSpec
getLineGapSpec()
Deprecated.Obsolete; will be deleted from the next versionboolean
isRowGroupingEnabled()
Deprecated.Obsolete; will be deleted from the next versionDefaultFormBuilder
leadingColumnOffset(int columnOffset)
Sets the offset of the leading column, often 0 or 1.DefaultFormBuilder
lineGapSize(ConstantSize lineGapSize)
Sets the size of gaps between component lines using the given constant size.DefaultFormBuilder
opaque(boolean b)
Sets the panel's opaque state.DefaultFormBuilder
paragraphGapSize(ConstantSize paragraphGapSize)
Sets the size of gaps between paragraphs using the given constant size.DefaultFormBuilder
rowGroupingEnabled(boolean enabled)
Enables or disables the grouping of new data rows.void
setDefaultRowSpec(RowSpec defaultRowSpec)
Deprecated.Replaced bydefaultRowSpec(RowSpec)
void
setLeadingColumnOffset(int columnOffset)
Deprecated.Replaced byleadingColumnOffset(int)
void
setLineGapSize(ConstantSize lineGapSize)
Deprecated.Replaced bylineGapSize(ConstantSize)
void
setParagraphGapSize(ConstantSize paragraphGapSize)
Deprecated.Replaced bylineGapSize(ConstantSize)
void
setRowGroupingEnabled(boolean enabled)
Deprecated.Replaced byrowGroupingEnabled(boolean)
-
Methods inherited from class com.jgoodies.forms.builder.I15dPanelBuilder
addI15dLabel, addI15dLabel, addI15dLabel, addI15dROLabel, addI15dROLabel, addI15dROLabel, addI15dSeparator, addI15dSeparator, addI15dTitle, addI15dTitle, debugToolTipsEnabled, focusTraversal, getResourceString, isDebugToolTipsEnabled
-
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, build, getPanel, isLabelForApplicable, labelForFeatureEnabled, setBorder, setDefaultDialogBorder, setLabelFor, 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, getColumnIncrementSign, getRow, isLeftToRight, nextColumn, nextColumn, nextLine, nextLine, nextRow, nextRow, setAlignment, setBounds, setColumn, setColumnSpan, setExtent, setHAlignment, setLeftToRight, setOrigin, setRow, setRowSpan, setVAlignment
-
Methods inherited from class com.jgoodies.forms.builder.AbstractBuilder
createComponentFactory, getColumnCount, getComponentFactory, getContainer, getLayout, getRowCount, setComponentFactory
-
-
-
-
Field Detail
-
defaultRowSpec
private RowSpec defaultRowSpec
Holds the row specification that is reused to describe rows that are intended for labels and components.- See Also:
setDefaultRowSpec(RowSpec)
-
lineGapSpec
private RowSpec lineGapSpec
Holds the row specification that is reused to describe the constant gaps between component lines.- See Also:
setLineGapSize(ConstantSize)
-
paragraphGapSpec
private RowSpec paragraphGapSpec
Holds the row specification that describes the constant gaps between paragraphs.- See Also:
setParagraphGapSize(ConstantSize)
-
leadingColumnOffset
private int leadingColumnOffset
Holds the offset of the leading column - often 0 or 1.
-
rowGroupingEnabled
private boolean rowGroupingEnabled
Determines whether new data rows are being grouped or not.
-
-
Constructor Detail
-
DefaultFormBuilder
public DefaultFormBuilder(FormLayout layout)
Constructs aDefaultFormBuilder
for the given layout.- Parameters:
layout
- theFormLayout
to be used- Throws:
java.lang.NullPointerException
- iflayout
isnull
-
DefaultFormBuilder
public DefaultFormBuilder(FormLayout layout, javax.swing.JPanel container)
Constructs aDefaultFormBuilder
for the given layout and panel.- Parameters:
layout
- theFormLayout
to be usedcontainer
- the layout container- Throws:
java.lang.NullPointerException
- iflayout
orcontainer
isnull
-
DefaultFormBuilder
public DefaultFormBuilder(FormLayout layout, java.util.ResourceBundle bundle)
Constructs aDefaultFormBuilder
for the given layout and resource bundle.- Parameters:
layout
- theFormLayout
to be usedbundle
- theResourceBundle
used to lookup i15d strings- Throws:
java.lang.NullPointerException
- iflayout
isnull
-
DefaultFormBuilder
public DefaultFormBuilder(FormLayout layout, java.util.ResourceBundle bundle, javax.swing.JPanel container)
Constructs aDefaultFormBuilder
for the given layout, resource bundle, and panel.- Parameters:
layout
- theFormLayout
to be usedcontainer
- the layout containerbundle
- theResourceBundle
used to lookup i15d strings- Throws:
java.lang.NullPointerException
- iflayout
orcontainer
isnull
-
DefaultFormBuilder
public DefaultFormBuilder(FormLayout layout, com.jgoodies.common.internal.StringResourceAccessor localizer)
Constructs aDefaultFormBuilder
for the given layout and resource bundle.- Parameters:
layout
- theFormLayout
to be usedlocalizer
- used to lookup i15d strings- Throws:
java.lang.NullPointerException
- iflayout
isnull
-
DefaultFormBuilder
public DefaultFormBuilder(FormLayout layout, com.jgoodies.common.internal.StringResourceAccessor localizer, javax.swing.JPanel container)
Constructs aDefaultFormBuilder
for the given layout, resource bundle, and panel.- Parameters:
layout
- theFormLayout
to be usedcontainer
- the layout containerlocalizer
- used to lookup i15d strings- Throws:
java.lang.NullPointerException
- iflayout
orcontainer
isnull
-
-
Method Detail
-
background
public DefaultFormBuilder background(java.awt.Color background)
Description copied from class:PanelBuilder
Sets the panel's background color and the panel to be opaque.- Overrides:
background
in classI15dPanelBuilder
- Parameters:
background
- the color to set as new background- See Also:
JComponent.setBackground(Color)
-
border
public DefaultFormBuilder border(javax.swing.border.Border border)
Description copied from class:PanelBuilder
Sets the panel's border.- Overrides:
border
in classI15dPanelBuilder
- Parameters:
border
- the border to set- See Also:
JComponent.setBorder(Border)
-
border
public DefaultFormBuilder border(java.lang.String emptyBorderSpec)
Description copied from class:PanelBuilder
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
setBorder(Borders.createEmptyBorder(emptyBorderSpec))
.- Overrides:
border
in classI15dPanelBuilder
- Parameters:
emptyBorderSpec
- describes the top, left, bottom, right sizes of the EmptyBorder to create- See Also:
Borders.createEmptyBorder(String)
-
opaque
public DefaultFormBuilder opaque(boolean b)
Description copied from class:PanelBuilder
Sets the panel's opaque state.- Overrides:
opaque
in classI15dPanelBuilder
- Parameters:
b
- true for opaque, false for non-opaque- See Also:
JComponent.setOpaque(boolean)
-
defaultRowSpec
public DefaultFormBuilder defaultRowSpec(RowSpec defaultRowSpec)
Sets the row specification that shall be used for component rows. It isFormSpecs.PREF_ROWSPEC
by default.- Parameters:
defaultRowSpec
- the RowSpec to be used for component rows
-
lineGapSize
public DefaultFormBuilder lineGapSize(ConstantSize lineGapSize)
Sets the size of gaps between component lines using the given constant size.Examples:
.lineGapSize(Sizes.ZERO); .lineGapSize(Sizes.DLUY9); .lineGapSize(Sizes.pixel(1));
- Parameters:
lineGapSize
- theConstantSize
that describes the size of the gaps between component lines
-
paragraphGapSize
public DefaultFormBuilder paragraphGapSize(ConstantSize paragraphGapSize)
Sets the size of gaps between paragraphs using the given constant size.Examples:
.setParagraphGapSize(Sizes.DLUY14); .setParagraphGapSize(Sizes.dluY(22)); .setParagraphGapSize(Sizes.pixel(42));
- Parameters:
paragraphGapSize
- theConstantSize
that describes the size of the gaps between paragraphs
-
leadingColumnOffset
public DefaultFormBuilder leadingColumnOffset(int columnOffset)
Sets the offset of the leading column, often 0 or 1.- Parameters:
columnOffset
- the new offset of the leading column
-
rowGroupingEnabled
public DefaultFormBuilder rowGroupingEnabled(boolean enabled)
Enables or disables the grouping of new data rows.- Parameters:
enabled
- indicates grouping enabled, false disabled
-
getDefaultRowSpec
@Deprecated public RowSpec getDefaultRowSpec()
Deprecated.Obsolete; will be deleted from the next versionReturns the row specification that is used for component rows.- Returns:
- the
RowSpec
used for component rows - Since:
- 1.2
-
setDefaultRowSpec
@Deprecated public void setDefaultRowSpec(RowSpec defaultRowSpec)
Deprecated.Replaced bydefaultRowSpec(RowSpec)
Sets the row specification that shall be used for component rows. It isFormSpecs.PREF_ROWSPEC
by default.- Parameters:
defaultRowSpec
- the RowSpec to be used for component rows- Since:
- 1.2
-
getLineGapSpec
@Deprecated public RowSpec getLineGapSpec()
Deprecated.Obsolete; will be deleted from the next versionReturns the row specification that is used to separate component row.- Returns:
- the
RowSpec
that is used to separate component rows
-
setLineGapSize
@Deprecated public void setLineGapSize(ConstantSize lineGapSize)
Deprecated.Replaced bylineGapSize(ConstantSize)
Sets the size of gaps between component lines using the given constant size.Examples:
.setLineGapSize(Sizes.ZERO); .setLineGapSize(Sizes.DLUY9); .setLineGapSize(Sizes.pixel(1));
- Parameters:
lineGapSize
- theConstantSize
that describes the size of the gaps between component lines
-
setParagraphGapSize
@Deprecated public void setParagraphGapSize(ConstantSize paragraphGapSize)
Deprecated.Replaced bylineGapSize(ConstantSize)
Sets the size of gaps between paragraphs using the given constant size.Examples:
.setParagraphGapSize(Sizes.DLUY14); .setParagraphGapSize(Sizes.dluY(22)); .setParagraphGapSize(Sizes.pixel(42));
- Parameters:
paragraphGapSize
- theConstantSize
that describes the size of the gaps between paragraphs
-
getLeadingColumnOffset
@Deprecated public int getLeadingColumnOffset()
Deprecated.Obsolete; will be deleted from the next versionReturns the offset of the leading column, often 0 or 1.- Returns:
- the offset of the leading column
-
setLeadingColumnOffset
@Deprecated public void setLeadingColumnOffset(int columnOffset)
Deprecated.Replaced byleadingColumnOffset(int)
Sets the offset of the leading column, often 0 or 1.- Parameters:
columnOffset
- the new offset of the leading column
-
isRowGroupingEnabled
@Deprecated public boolean isRowGroupingEnabled()
Deprecated.Obsolete; will be deleted from the next versionReturns whether new data rows are being grouped or not.- Returns:
- true indicates grouping enabled, false disabled
-
setRowGroupingEnabled
@Deprecated public void setRowGroupingEnabled(boolean enabled)
Deprecated.Replaced byrowGroupingEnabled(boolean)
Enables or disables the grouping of new data rows.- Parameters:
enabled
- indicates grouping enabled, false disabled
-
appendLineGapRow
public final void appendLineGapRow()
Appends a row with this builder's line gap size.
-
append
public void append(java.awt.Component component)
Adds a component to the panel using the default constraints with a column span of 1. Then proceeds to the next data column.- Parameters:
component
- the component to add
-
append
public void append(java.awt.Component component, int columnSpan)
Adds a component to the panel using the default constraints with the given columnSpan. Proceeds to the next data column.- Parameters:
component
- the component to appendcolumnSpan
- the column span used to add
-
append
public void append(java.awt.Component c1, java.awt.Component c2)
Adds two components to the panel; each component will span a single data column. Proceeds to the next data column.- Parameters:
c1
- the first component to addc2
- the second component to add
-
append
public void append(java.awt.Component c1, java.awt.Component c2, java.awt.Component c3)
Adds three components to the panel; each component will span a single data column. Proceeds to the next data column.- Parameters:
c1
- the first component to addc2
- the second component to addc3
- the third component to add
-
append
public javax.swing.JLabel append(java.lang.String textWithMnemonic)
Adds a text label to the panel and proceeds to the next column.- Parameters:
textWithMnemonic
- the label's text - may mark a mnemonic- Returns:
- the added label
-
append
public javax.swing.JLabel append(java.lang.String textWithMnemonic, java.awt.Component component)
Adds a text label and component to the panel. Then proceeds to the next data column.The created label is labeling the given component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
textWithMnemonic
- the label's text - may mark a mnemoniccomponent
- the component to add- Returns:
- the added label
-
append
public javax.swing.JLabel append(java.lang.String textWithMnemonic, java.awt.Component c, boolean nextLine)
Adds a text label and component to the panel; the component will span the specified number columns. Proceeds to the next data column, and goes to the next line if the boolean flag is set.The created label is labeling the given component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
textWithMnemonic
- the label's text - may mark a mnemonicc
- the component to addnextLine
- true forces a next line- Returns:
- the added label
- See Also:
JLabel.setLabelFor(java.awt.Component)
-
append
public javax.swing.JLabel append(java.lang.String textWithMnemonic, java.awt.Component c, int columnSpan)
Adds a text label and component to the panel; the component will span the specified number columns. Proceeds to the next data column.The created label is labeling the given component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
textWithMnemonic
- the label's text - may mark a mnemonicc
- the component to addcolumnSpan
- number of columns the component shall span- Returns:
- the added label
- See Also:
JLabel.setLabelFor(java.awt.Component)
-
append
public javax.swing.JLabel append(java.lang.String textWithMnemonic, java.awt.Component c1, java.awt.Component c2)
Adds a text label and two components to the panel; each component will span a single column. Proceeds to the next data column.The created label is labeling the first component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
textWithMnemonic
- the label's text - may mark a mnemonicc1
- the first component to addc2
- the second component to add- Returns:
- the added label
-
append
public javax.swing.JLabel append(java.lang.String textWithMnemonic, java.awt.Component c1, java.awt.Component c2, int colSpan)
Adds a text label and two components to the panel; each component will span a single column. Proceeds to the next data column.The created label is labeling the first component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
textWithMnemonic
- the label's text - may mark a mnemonicc1
- the first component to addc2
- the second component to addcolSpan
- the column span for the second component- Returns:
- the created label
-
append
public javax.swing.JLabel append(java.lang.String textWithMnemonic, java.awt.Component c1, java.awt.Component c2, java.awt.Component c3)
Adds a text label and three components to the panel; each component will span a single column. Proceeds to the next data column.The created label is labeling the first component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
textWithMnemonic
- the label's text - may mark a mnemonicc1
- the first component to addc2
- the second component to addc3
- the third component to add- Returns:
- the added label
-
append
public javax.swing.JLabel append(java.lang.String textWithMnemonic, java.awt.Component c1, java.awt.Component c2, java.awt.Component c3, java.awt.Component c4)
Adds a text label and four components to the panel; each component will span a single column. Proceeds to the next data column.The created label is labeling the first component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
textWithMnemonic
- the label's text - may mark a mnemonicc1
- the first component to addc2
- the second component to addc3
- the third component to addc4
- the fourth component to add- Returns:
- the added label
-
appendI15d
public javax.swing.JLabel appendI15d(java.lang.String resourceKey)
Adds an internationalized (i15d) text label to the panel using the given resource key and proceeds to the next column.- Parameters:
resourceKey
- the resource key for the the label's text- Returns:
- the added label
-
appendI15d
public javax.swing.JLabel appendI15d(java.lang.String resourceKey, java.awt.Component component)
Adds an internationalized (i15d) text label and component to the panel. Then proceeds to the next data column.The created label is labeling the given component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
resourceKey
- the resource key for the text to addcomponent
- the component to add- Returns:
- the added label
-
appendI15d
public javax.swing.JLabel appendI15d(java.lang.String resourceKey, java.awt.Component component, boolean nextLine)
Adds an internationalized (i15d) text label and component to the panel. Then proceeds to the next data column. Goes to the next line if the boolean flag is set.The created label is labeling the first component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
resourceKey
- the resource key for the text to addcomponent
- the component to addnextLine
- true forces a next line- Returns:
- the added label
-
appendI15d
public javax.swing.JLabel appendI15d(java.lang.String resourceKey, java.awt.Component c, int columnSpan)
Adds an internationalized (i15d) text label to the panel using the given resource key; then proceeds to the next data column and adds a component with the given column span. Proceeds to the next data column.The created label is labeling the first component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
resourceKey
- the resource key for the text to addc
- the component to addcolumnSpan
- number of columns the component shall span- Returns:
- the added label
-
appendI15d
public javax.swing.JLabel appendI15d(java.lang.String resourceKey, java.awt.Component c1, java.awt.Component c2)
Adds an internationalized (i15d) text label and two components to the panel; each component will span a single column. Proceeds to the next data column.The created label is labeling the first component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
resourceKey
- the resource key for the text to addc1
- the first component to addc2
- the second component to add- Returns:
- the added label
-
appendI15d
public javax.swing.JLabel appendI15d(java.lang.String resourceKey, java.awt.Component c1, java.awt.Component c2, int colSpan)
Adds an internationalized (i15d) text label and two components to the panel; each component will span a single column. Proceeds to the next data column.The created label is labeling the first component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
resourceKey
- the resource key for the text to addc1
- the first component to addc2
- the second component to addcolSpan
- the column span for the second component- Returns:
- the added label
-
appendI15d
public javax.swing.JLabel appendI15d(java.lang.String resourceKey, java.awt.Component c1, java.awt.Component c2, java.awt.Component c3)
Adds an internationalized (i15d) text label and three components to the panel; each component will span a single column. Proceeds to the next data column.The created label is labeling the first component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
resourceKey
- the resource key for the text to addc1
- the first component to addc2
- the second component to addc3
- the third component to add- Returns:
- the added label
-
appendI15d
public javax.swing.JLabel appendI15d(java.lang.String resourceKey, java.awt.Component c1, java.awt.Component c2, java.awt.Component c3, java.awt.Component c4)
Adds an internationalized (i15d) text label and four components to the panel; each component will span a single column. Proceeds to the next data column.The created label is labeling the first component; so the component gets the focus if the (optional) label mnemonic is pressed.
- Parameters:
resourceKey
- the resource key for the text to addc1
- the first component to addc2
- the second component to addc3
- the third component to addc4
- the third component to add- Returns:
- the added label
-
appendTitle
public javax.swing.JLabel appendTitle(java.lang.String textWithMnemonic)
Adds a title label to the panel and proceeds to the next column.- Parameters:
textWithMnemonic
- the label's text - may mark a mnemonic- Returns:
- the added title label
-
appendI15dTitle
public javax.swing.JLabel appendI15dTitle(java.lang.String resourceKey)
Adds an internationalized title label to the panel and proceeds to the next column.- Parameters:
resourceKey
- the resource key for the title's text- Returns:
- the added title label
-
appendSeparator
public javax.swing.JComponent appendSeparator()
Adds a separator without text that spans all columns.- Returns:
- the added titled separator
-
appendSeparator
public javax.swing.JComponent appendSeparator(java.lang.String text)
Adds a separator with the given text that spans all columns.- Parameters:
text
- the separator title text- Returns:
- the added titled separator
-
appendI15dSeparator
public javax.swing.JComponent appendI15dSeparator(java.lang.String resourceKey)
Appends an internationalized titled separator for the given resource key that spans all columns.- Parameters:
resourceKey
- the resource key for the separator title's text- Returns:
- the added titled separator
-
getLeadingColumn
protected int getLeadingColumn()
Returns the leading column. Unlike the superclass this method honors the column offset.- Overrides:
getLeadingColumn
in classAbstractFormBuilder
- Returns:
- the leading column
-
ensureCursorColumnInGrid
private void ensureCursorColumnInGrid()
Ensures that the cursor is in the grid. In case it's beyond the form's right hand side, the cursor is moved to the leading column of the next line.
-
ensureHasGapRow
private void ensureHasGapRow(RowSpec gapRowSpec)
Ensures that we have a gap row before the next component row. Checks if the current row is the givenRowSpec
and appends this row spec if necessary.- Parameters:
gapRowSpec
- the row specification to check for
-
ensureHasComponentLine
private void ensureHasComponentLine()
Ensures that the form has a component row. Adds a component row if the cursor is beyond the form's bottom.
-
getCursorRowSpec
private RowSpec getCursorRowSpec()
Looks up and returns the row specification of the current row.- Returns:
- the row specification of the current row
-
-