Package com.privatejgoodies.forms.layout

# Class FormSpec

java.lang.Object
com.privatejgoodies.forms.layout.FormSpec

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `ColumnSpec`, `RowSpec`

public abstract class FormSpec extends Object implements Serializable
An abstract class that specifies columns and rows in FormLayout by their default alignment, start size and resizing behavior. API users will use the subclasses `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 $
Author:
  Karsten Lentzsch
See Also:
  - `ColumnSpec`
  - `RowSpec`
  - `FormLayout`
  - `CellConstraints`
  - Serialized Form

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static final class`
`FormSpec.DefaultAlignment`
An ordinal-based serializable typesafe enumeration for the column and row default alignment types.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final double`
`DEFAULT_GROW`
The default resize weight.
`static final double`
`NO_GROW`
Gives a column or row a fixed size.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`FormSpec(FormSpec.DefaultAlignment defaultAlignment, Size size, double resizeWeight)`
Constructs a `FormSpec` 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 Type
Method
Description
`final String`
`encode()`
Returns a short and parseable string representation of this form specification.
`final FormSpec.DefaultAlignment`
`getDefaultAlignment()`
Returns the default alignment.
`final double`
`getResizeWeight()`
Returns the current resize weight.
`final Size`
`getSize()`
Returns the size.
`final String`
`toShortString()`
Returns a string representation of this form specification.
`final String`
`toString()`
Returns a string representation of this form specification.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### NO_GROW

public static final double NO_GROW
Gives a column or row a fixed size.

See Also:
  - Constant Field Values

### DEFAULT_GROW

public static final double DEFAULT_GROW
The default resize weight.

See Also:
  - Constant Field Values

## Constructor Details

### FormSpec

protected FormSpec(FormSpec.DefaultAlignment defaultAlignment, Size size, double resizeWeight)
Constructs a `FormSpec` for the given default alignment, size, and resize weight. The resize weight must be a non-negative double; you can use `NONE` as a convenience value for no resize.

Parameters:
  `defaultAlignment` - the spec's default alignment
  `size` - a constant, component or bounded size
  `resizeWeight` - the spec resize weight
Throws:
  `NullPointerException` - if the `size` is `null`
  `IllegalArgumentException` - if the `resizeWeight` is negative

### FormSpec

protected FormSpec(FormSpec.DefaultAlignment defaultAlignment, String encodedDescription)
Constructs a FormSpec from the specified encoded description. The description will be parsed to set initial values.

Parameters:
  `defaultAlignment` - the default alignment
  `encodedDescription` - the encoded description

## Method Details

### getDefaultAlignment

public final FormSpec.DefaultAlignment getDefaultAlignment()
Returns the default alignment.

Returns:
  the default alignment

### getSize

public final Size getSize()
Returns the size.

Returns:
  the size

### getResizeWeight

public final double getResizeWeight()
Returns the current resize weight.

Returns:
  the resize weight.

### toString

public final String 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.

Overrides:
  `toString` in class `Object`
Returns:
  a string representation of the form specification.

### toShortString

public final String 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

public final String 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:
  - `for a more verbose string representation`