Class FormSpec
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
ColumnSpec
,RowSpec
ColumnSpec
and RowSpec
.Also implements the parser for encoded column and row specifications and provides parser convenience behavior for its subclasses ColumnSpec and RowSpec.
TODO: Consider extracting the parser role to a separate class.
- Version:
- $Revision: 1.25 $
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
An ordinal-based serializable typesafe enumeration for the column and row default alignment types. -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final FormSpec.DefaultAlignment
By default put the components in the bottom.private static final Pattern
(package private) static final FormSpec.DefaultAlignment
By default put the components in the center.static final double
The default resize weight.private FormSpec.DefaultAlignment
Holds the default alignment that will be used if a cell does not override this default.private boolean
Describes whether the default alignment has been explictly set.(package private) static final FormSpec.DefaultAlignment
By default fill the column or row.(package private) static final FormSpec.DefaultAlignment
By default put components in the left.(package private) static final FormSpec.DefaultAlignment
A special alignment intended for table columns only, where some cell renderers are not aligned.static final double
Gives a column or row a fixed size.private double
Holds the resize weight; is 0 if not used.(package private) static final FormSpec.DefaultAlignment
By default put components in the right.private Size
Holds the size that describes how to size this column or row.private static final Pattern
(package private) static final FormSpec.DefaultAlignment
By default put the components in the top.private static final FormSpec.DefaultAlignment[]
An array of all enumeration values used to canonicalize deserialized default alignments. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
FormSpec
(FormSpec.DefaultAlignment defaultAlignment, Size size, double resizeWeight) Constructs aFormSpec
for the given default alignment, size, and resize weight.protected
FormSpec
(FormSpec.DefaultAlignment defaultAlignment, String encodedDescription) Constructs a FormSpec from the specified encoded description. -
Method Summary
Modifier and TypeMethodDescription(package private) final boolean
canGrow()
Checks and answers whether this spec can grow or not.final String
encode()
Returns a short and parseable string representation of this form specification.Returns the default alignment.final boolean
Returns whether the default alignment has been explicitly set or not.final double
Returns the current resize weight.final Size
getSize()
Returns the size.private static boolean
isConstant
(Size aSize) (package private) abstract boolean
Returns if this is a horizontal specification (vs.(package private) final int
maximumSize
(Container container, List components, FormLayout.Measure minMeasure, FormLayout.Measure prefMeasure, FormLayout.Measure defaultMeasure) Computes the maximum size for the given list of components, using this form spec and the specified measure.private void
parseAndInitValues
(String encodedDescription) Parses an encoded form specification and initializes all required fields.private Size
parseAtomicSize
(String token) Decodes and returns an atomic size that is either a constant size or a component size.private Size
parseBoundedSize
(String token) private Size
parseOldBoundedSize
(String token, boolean setMax) Parses an encoded compound size and sets the size fields.private static double
parseResizeWeight
(String token) Decodes an encoded resize mode and resize weight and answers the resize weight.private Size
Parses an encoded size spec and returns the size.(package private) void
setDefaultAlignment
(FormSpec.DefaultAlignment defaultAlignment) (package private) void
setResizeWeight
(double resizeWeight) (package private) void
final String
Returns a string representation of this form specification.final String
toString()
Returns a string representation of this form specification.
-
Field Details
-
LEFT_ALIGN
By default put components in the left. -
RIGHT_ALIGN
By default put components in the right. -
TOP_ALIGN
By default put the components in the top. -
BOTTOM_ALIGN
By default put the components in the bottom. -
CENTER_ALIGN
By default put the components in the center. -
FILL_ALIGN
By default fill the column or row. -
NO_ALIGN
A special alignment intended for table columns only, where some cell renderers are not aligned. -
VALUES
An array of all enumeration values used to canonicalize deserialized default alignments. -
NO_GROW
public static final double NO_GROWGives a column or row a fixed size.- See Also:
-
DEFAULT_GROW
public static final double DEFAULT_GROWThe default resize weight.- See Also:
-
TOKEN_SEPARATOR_PATTERN
-
BOUNDS_SEPARATOR_PATTERN
-
defaultAlignment
Holds the default alignment that will be used if a cell does not override this default. -
defaultAlignmentExplicitlySet
private boolean defaultAlignmentExplicitlySetDescribes whether the default alignment has been explictly set.- See Also:
-
size
Holds the size that describes how to size this column or row. -
resizeWeight
private double resizeWeightHolds the resize weight; is 0 if not used.
-
-
Constructor Details
-
FormSpec
Constructs aFormSpec
for the given default alignment, size, and resize weight. The resize weight must be a non-negative double; you can useNONE
as a convenience value for no resize.- Parameters:
defaultAlignment
- the spec's default alignmentsize
- a constant, component or bounded sizeresizeWeight
- the spec resize weight- Throws:
NullPointerException
- if thesize
isnull
IllegalArgumentException
- if theresizeWeight
is negative
-
FormSpec
Constructs a FormSpec from the specified encoded description. The description will be parsed to set initial values.- Parameters:
defaultAlignment
- the default alignmentencodedDescription
- the encoded description
-
-
Method Details
-
getDefaultAlignment
Returns the default alignment.- Returns:
- the default alignment
-
getDefaultAlignmentExplictlySet
public final boolean getDefaultAlignmentExplictlySet()Returns whether the default alignment has been explicitly set or not.- Returns:
true
if the default alignment has been provided during the parse process,false
if the default alignment has been set by the constructor at the instance creation time
-
getSize
Returns the size.- Returns:
- the size
-
getResizeWeight
public final double getResizeWeight()Returns the current resize weight.- Returns:
- the resize weight.
-
canGrow
final boolean canGrow()Checks and answers whether this spec can grow or not. That is the case if and only if the resize weight is !=NO_GROW
.- Returns:
- true if it can grow, false if it can't grow
-
isHorizontal
abstract boolean isHorizontal()Returns if this is a horizontal specification (vs. vertical). Used to distinct between horizontal and vertical dialog units, which have different conversion factors.- Returns:
- true for horizontal, false for vertical
-
setDefaultAlignment
-
setSize
-
setResizeWeight
void setResizeWeight(double resizeWeight) -
parseAndInitValues
Parses an encoded form specification and initializes all required fields. The encoded description must be in lower case.- Parameters:
encodedDescription
- the FormSpec in an encoded format- Throws:
NullPointerException
- ifencodedDescription
isnull
IllegalArgumentException
- ifencodedDescription
is empty, whitespace, has no size, or is otherwise invalid
-
parseSize
Parses an encoded size spec and returns the size.- Parameters:
token
- a token that represents a size, either bounded or plain- Returns:
- the decoded Size
-
parseBoundedSize
-
parseOldBoundedSize
Parses an encoded compound size and sets the size fields. The compound size has format: max(<atomic size>;<atomic size2>) | min(<atomic size1>;<atomic size2>) One of the two atomic sizes must be a logical size, the other must be a size constant.- Parameters:
token
- a token for a bounded size, e.g. "max(50dlu; pref)"setMax
- if true we set a maximum size, otherwise a minimum size- Returns:
- a Size that represents the parse result
-
parseAtomicSize
Decodes and returns an atomic size that is either a constant size or a component size.- Parameters:
token
- the encoded size- Returns:
- the decoded size either a constant or component size
-
parseResizeWeight
Decodes an encoded resize mode and resize weight and answers the resize weight.- Parameters:
token
- the encoded resize weight- Returns:
- the decoded resize weight
- Throws:
IllegalArgumentException
- if the string description is an invalid string representation
-
isConstant
-
toString
Returns a string representation of this form specification. The string representation consists of three elements separated by a colon (":"), first the alignment, second the size, and third the resize spec.This method does not return an encoded version of this object; the contrary is the case. Many instances will return a string that cannot be parsed.
Note: The string representation may change at any time. For parsing use
encode()
instead. -
toShortString
Returns a string representation of this form specification. The string representation consists of three elements separated by a colon (":"), first the alignment, second the size, and third the resize spec.This method does not return an encoded version of this object; the contrary is the case. Many instances will return a string that cannot be parsed.
Note: The string representation may change at any time. For parsing use
encode()
instead.- Returns:
- a string representation of the form specification.
-
encode
Returns a short and parseable string representation of this form specification. The string will omit the alignment and resize specifications if these are the default values.- Returns:
- a string representation of the form specification.
- Since:
- 1.2
- See Also:
-
maximumSize
final int maximumSize(Container container, List components, FormLayout.Measure minMeasure, FormLayout.Measure prefMeasure, FormLayout.Measure defaultMeasure) Computes the maximum size for the given list of components, using this form spec and the specified measure.Invoked by FormLayout to determine the size of one of my elements
- Parameters:
container
- the layout containercomponents
- the list of components to measureminMeasure
- the measure used to determine the minimum sizeprefMeasure
- the measure used to determine the preferred sizedefaultMeasure
- the measure used to determine the default size- Returns:
- the maximum size in pixels
-