Package com.privatejgoodies.forms.layout

# Class PrototypeSize

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

All Implemented Interfaces:
  `Size`, `Serializable`

public final class PrototypeSize extends Object implements Size, Serializable
A `Size` implementation that computes its width and height by a prototype String.

Examples:

     new PrototypeSize("123-456-789");
     new FormLayout("p, 2dlu, 'MMMM'");

Since:
  1.2
Version:
  $Revision: 1.7 $
Author:
  Karsten Lentzsch
See Also:
  - `Size`
  - `Sizes`
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`PrototypeSize(String prototype)`
Constructs a PrototypeSize for the given String.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`compressible()`
Describes if this Size can be compressed, if container space gets scarce.
`String`
`encode()`
Returns a parseable string representation of this prototype size.
`boolean`
`equals(Object o)`
Indicates whether some other ConstantSize is "equal to" this one.
`String`
`getPrototype()`
Returns this size's prototype string.
`int`
`hashCode()`
Returns a hash code value for the object.
`int`
`maximumSize(Container container, List components, FormLayout.Measure minMeasure, FormLayout.Measure prefMeasure, FormLayout.Measure defaultMeasure)`
Computes and returns the width of this Size's prototype in pixel.
`String`
`toString()`
Returns a string representation of this size object.

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

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

## Constructor Details

### PrototypeSize

public PrototypeSize(String prototype)
Constructs a PrototypeSize for the given String.

Parameters:
  `prototype` - the String used to compute the width and height.
Throws:
  `NullPointerException` - if `prototype` is `null`.
Since:
  1.2

## Method Details

### getPrototype

public String getPrototype()
Returns this size's prototype string.

Returns:
  the prototype string

### maximumSize

public int maximumSize(Container container, List components, FormLayout.Measure minMeasure, FormLayout.Measure prefMeasure, FormLayout.Measure defaultMeasure)
Computes and returns the width of this Size's prototype in pixel. Ignores the component list and measures. Obtains the FontMetrics from the given layout `container` for the default dialog font provided by `DefaultUnitConverter.getDefaultDialogFont()` .

Invoked by `FormSpec` to determine the size of a column or row.

Specified by:
  `maximumSize` in interface `Size`
Parameters:
  `container` - the layout container
  `components` - the list of components used to compute the size
  `minMeasure` - the measure that determines the minimum sizes
  `prefMeasure` - the measure that determines the preferred sizes
  `defaultMeasure` - the measure that determines the default sizes
Returns:
  the `stringWidth` for this size's prototype string computed by the `container`'s FontMetrics for the `DefaultUnitConverter`'s default dialog font

### compressible

public boolean compressible()
Describes if this Size can be compressed, if container space gets scarce. Used by the FormLayout size computations in `#compressedSizes` to check whether a column or row can be compressed or not.

PrototypeSizes are incompressible.

Specified by:
  `compressible` in interface `Size`
Returns:
  `false`

### encode

public String encode()
Returns a parseable string representation of this prototype size.

Specified by:
  `encode` in interface `Size`
Returns:
  a String that can be parsed by the Forms parser

### equals

public boolean equals(Object o)
Indicates whether some other ConstantSize is "equal to" this one.

Overrides:
  `equals` in class `Object`
Parameters:
  `o` - the Object with which to compare
Returns:
  `true` if this object is the same as the obj argument; `false` otherwise.
See Also:
  - `Object.hashCode()`
  - `Hashtable`

### hashCode

public int hashCode()
Returns a hash code value for the object. This method is supported for the benefit of hashtables such as those provided by `java.util.Hashtable`.

Overrides:
  `hashCode` in class `Object`
Returns:
  a hash code value for this object.
See Also:
  - `Object.equals(java.lang.Object)`
  - `Hashtable`

### toString

public String toString()
Returns a string representation of this size object. Note: This string representation may change at any time. It is intended for debugging purposes. For parsing, use `encode()` instead.

Overrides:
  `toString` in class `Object`
Returns:
  a string representation of the constant size