Package com.jgoodies.forms.internal
Class AbstractButtonPanelBuilder<B extends AbstractButtonPanelBuilder<B>>
java.lang.Object
com.jgoodies.forms.internal.AbstractBuilder<B>
com.jgoodies.forms.internal.AbstractButtonPanelBuilder<B>
- Type Parameters:
B
- the type of the builder, e.g. ButtonBarBuilder
- Direct Known Subclasses:
ButtonBarBuilder
,ButtonStackBuilder
public abstract class AbstractButtonPanelBuilder<B extends AbstractButtonPanelBuilder<B>>
extends AbstractBuilder<B>
The abstract superclass for
ButtonBarBuilder
and
ButtonStackBuilder
.
Provides a cell cursor for traversing
the button bar/stack while components are added. It also offers
convenience methods to append logical columns and rows.- Since:
- 1.2
- Version:
- $Revision: 1.11 $
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
Indicates whether a focus group has been built inbuild()
.private boolean
Specifies if we fill the grid from left to right or right to left.Fields inherited from class com.jgoodies.forms.internal.AbstractBuilder
currentCellConstraints
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractButtonPanelBuilder
(FormLayout layout, JPanel container) Constructs an AbstractButtonPanelBuilder for the given FormLayout and layout container. -
Method Summary
Modifier and TypeMethodDescriptionprotected final Component
Adds a component to the container using the default cell constraints.protected AbstractButtonPanelBuilder
Constructs an array of JButtons from the given Action array, and adds them as a sequence of related buttons separated by a default gap.protected abstract AbstractButtonPanelBuilder
addButton
(JComponent button) protected AbstractButtonPanelBuilder
addButton
(JComponent... buttons) Adds one or many sequences of related buttons.protected abstract AbstractButtonPanelBuilder
Adds the standard gap for related components.protected abstract AbstractButtonPanelBuilder
Adds the standard gap for unrelated components.protected final void
appendColumn
(ColumnSpec columnSpec) Appends the given column specification to the builder's layout.protected final void
Appends a glue column.protected final void
Appends a glue row.protected final void
Appends a column that is the default gap for related components.protected final void
Appends a row that is the default gap for related components.protected final void
Appends the given row specification to the builder's layout.protected final void
Appends a column that is the default gap for unrelated components.protected final void
Appends a row that is the default gap for unrelated components.final JPanel
build()
Returns the panel used to build the form and lazily builds a focus traversal group for all contained AbstractButtons.protected JButton
createButton
(Action action) Creates and returns a button that is bound to the given Action.protected final int
private int
Returns the sign (-1 or 1) used to increment the cursor's column when moving to the next column.protected final int
getRow()
Returns the cursor's row.final boolean
Returns whether this builder fills the form left-to-right or right-to-left.protected final void
Moves to the next column, does the same as #nextColumn(1).private void
nextColumn
(int columns) Moves to the next column.protected final void
nextRow()
Increases the row by one; does the same as #nextRow(1).private void
nextRow
(int rows) Increases the row by the specified rows.final void
setBackground
(Color background) Deprecated.final void
Deprecated.Replaced byAbstractBuilder.border(Border)
final void
setLeftToRight
(boolean b) Sets the form fill direction to left-to-right or right-to-left.final void
setOpaque
(boolean b) Deprecated.Replaced byAbstractBuilder.opaque(boolean)
Methods inherited from class com.jgoodies.forms.internal.AbstractBuilder
background, border, border, createComponentFactory, getColumnCount, getComponentFactory, getContainer, getLayout, getPanel, getRowCount, opaque, padding, padding, setComponentFactory
-
Field Details
-
leftToRight
private boolean leftToRightSpecifies if we fill the grid from left to right or right to left. This value is initialized during the construction from the layout container's component orientation.- See Also:
-
focusGrouped
protected boolean focusGroupedIndicates whether a focus group has been built inbuild()
. Reset tofalse
whenever a component is added.
-
-
Constructor Details
-
AbstractButtonPanelBuilder
Constructs an AbstractButtonPanelBuilder for the given FormLayout and layout container.- Parameters:
layout
- the FormLayout to usecontainer
- the layout container- Throws:
NullPointerException
- iflayout
orcontainer
isnull
-
-
Method Details
-
build
Returns the panel used to build the form and lazily builds a focus traversal group for all contained AbstractButtons.- Specified by:
build
in classAbstractBuilder<B extends AbstractButtonPanelBuilder<B>>
- Returns:
- the panel used by this builder to build the form
-
setBackground
Deprecated.Replaced byAbstractBuilder.background(Color)
Sets the panel's background color and makes the panel opaque.- Parameters:
background
- the color to set as new background- See Also:
-
setBorder
Deprecated.Replaced byAbstractBuilder.border(Border)
Sets the panel's border.- Parameters:
border
- the border to set- See Also:
-
setOpaque
Deprecated.Replaced byAbstractBuilder.opaque(boolean)
Sets the panel's opaque state.- Parameters:
b
- true for opaque, false for non-opaque- Since:
- 1.1
- See Also:
-
isLeftToRight
public final boolean isLeftToRight()Returns whether this builder fills the form left-to-right or right-to-left. The initial value of this property is set during the builder construction from the layout container'scomponentOrientation
property.- Returns:
- true indicates left-to-right, false indicates right-to-left
- See Also:
-
setLeftToRight
public final void setLeftToRight(boolean b) Sets the form fill direction to left-to-right or right-to-left. The initial value of this property is set during the builder construction from the layout container'scomponentOrientation
property.- Parameters:
b
- true indicates left-to-right, false right-to-left- See Also:
-
nextColumn
protected final void nextColumn()Moves to the next column, does the same as #nextColumn(1). -
nextColumn
private void nextColumn(int columns) Moves to the next column.- Parameters:
columns
- number of columns to move
-
getColumn
protected final int getColumn() -
getRow
protected final int getRow()Returns the cursor's row.- Returns:
- the cursor's row
-
nextRow
protected final void nextRow()Increases the row by one; does the same as #nextRow(1). -
nextRow
private void nextRow(int rows) Increases the row by the specified rows.- Parameters:
rows
- number of rows to move
-
appendColumn
Appends the given column specification to the builder's layout.- Parameters:
columnSpec
- the column specification object to append
-
appendGlueColumn
protected final void appendGlueColumn()Appends a glue column.- See Also:
-
appendRelatedComponentsGapColumn
protected final void appendRelatedComponentsGapColumn()Appends a column that is the default gap for related components.- See Also:
-
appendRow
Appends the given row specification to the builder's layout.- Parameters:
rowSpec
- the row specification object to append
-
appendGlueRow
protected final void appendGlueRow()Appends a glue row.- See Also:
-
appendRelatedComponentsGapRow
protected final void appendRelatedComponentsGapRow()Appends a row that is the default gap for related components.- See Also:
-
add
Adds a component to the container using the default cell constraints. Note that when building from left to right, this method won't adjust the cell constraints if the column span is larger than 1.- Parameters:
component
- the component to add- Returns:
- the added component
-
addButton
-
addButton
Adds one or many sequences of related buttons. A new sequence starts when a button isnull
. The next sequence is separated by an unrelated gap. Each button has the minimum width as specified byLayoutStyle.getDefaultButtonWidth()
. The gap width between the buttons isLayoutStyle.getRelatedComponentsPadX()
.Although JButtons are expected, general JComponents are accepted to allow custom button component types.
Examples:
builder.addButtons(newButton, editButton, deleteButton); builder.addButtons(newButton, editButton, deleteButton, null, printButton);
- Parameters:
buttons
- the buttons to add- Returns:
- this builder
- Throws:
NullPointerException
- ifbuttons
isnull
IllegalArgumentException
- ifbuttons
is empty- See Also:
-
addButton
Constructs an array of JButtons from the given Action array, and adds them as a sequence of related buttons separated by a default gap.- Parameters:
actions
- an array of buttons to add
-
addRelatedGap
Adds the standard gap for related components. -
createButton
Creates and returns a button that is bound to the given Action. This is a hook that allows to return customized buttons. For example, the JGoodiesJGButton
configures the accessible name and accessible description from Actions that provide these information.This default implementation delegates the button creation to this builder's component factory, see
ComponentFactory.createButton(Action)
).- Parameters:
action
- provides bound visual properties for the button- Returns:
- the created button
- Since:
- 1.4
-
getColumnIncrementSign
private int getColumnIncrementSign()Returns the sign (-1 or 1) used to increment the cursor's column when moving to the next column.- Returns:
- -1 for right-to-left, 1 for left-to-right
-
AbstractBuilder.background(Color)