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 classAn ordinal-based serializable typesafe enumeration for the column and row default alignment types. -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final FormSpec.DefaultAlignmentBy default put the components in the bottom.private static final Pattern(package private) static final FormSpec.DefaultAlignmentBy default put the components in the center.static final doubleThe default resize weight.private FormSpec.DefaultAlignmentHolds the default alignment that will be used if a cell does not override this default.private booleanDescribes whether the default alignment has been explictly set.(package private) static final FormSpec.DefaultAlignmentBy default fill the column or row.(package private) static final FormSpec.DefaultAlignmentBy default put components in the left.(package private) static final FormSpec.DefaultAlignmentA special alignment intended for table columns only, where some cell renderers are not aligned.static final doubleGives a column or row a fixed size.private doubleHolds the resize weight; is 0 if not used.(package private) static final FormSpec.DefaultAlignmentBy default put components in the right.private SizeHolds the size that describes how to size this column or row.private static final Pattern(package private) static final FormSpec.DefaultAlignmentBy 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
ConstructorsModifierConstructorDescriptionprotectedFormSpec(FormSpec.DefaultAlignment defaultAlignment, Size size, double resizeWeight) Constructs aFormSpecfor the given default alignment, size, and resize weight.protectedFormSpec(FormSpec.DefaultAlignment defaultAlignment, String encodedDescription) Constructs a FormSpec from the specified encoded description. -
Method Summary
Modifier and TypeMethodDescription(package private) final booleancanGrow()Checks and answers whether this spec can grow or not.final Stringencode()Returns a short and parseable string representation of this form specification.Returns the default alignment.final booleanReturns whether the default alignment has been explicitly set or not.final doubleReturns the current resize weight.final SizegetSize()Returns the size.private static booleanisConstant(Size aSize) (package private) abstract booleanReturns if this is a horizontal specification (vs.(package private) final intmaximumSize(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 voidparseAndInitValues(String encodedDescription) Parses an encoded form specification and initializes all required fields.private SizeparseAtomicSize(String token) Decodes and returns an atomic size that is either a constant size or a component size.private SizeparseBoundedSize(String token) private SizeparseOldBoundedSize(String token, boolean setMax) Parses an encoded compound size and sets the size fields.private static doubleparseResizeWeight(String token) Decodes an encoded resize mode and resize weight and answers the resize weight.private SizeParses an encoded size spec and returns the size.(package private) voidsetDefaultAlignment(FormSpec.DefaultAlignment defaultAlignment) (package private) voidsetResizeWeight(double resizeWeight) (package private) voidfinal StringReturns a string representation of this form specification.final StringtoString()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 aFormSpecfor the given default alignment, size, and resize weight. The resize weight must be a non-negative double; you can useNONEas 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 thesizeisnullIllegalArgumentException- if theresizeWeightis 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:
trueif the default alignment has been provided during the parse process,falseif the default alignment has been set by the constructor at the instance creation time
-
getSize
-
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- ifencodedDescriptionisnullIllegalArgumentException- ifencodedDescriptionis empty, whitespace, has no size, or is otherwise invalid
-
parseSize
-
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
-
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
-