com.jgoodies.forms.layout
Class ConstantSize

java.lang.Object
  extended by com.jgoodies.forms.layout.ConstantSize
All Implemented Interfaces:
Size, java.io.Serializable

public final class ConstantSize
extends java.lang.Object
implements Size, java.io.Serializable

An implementation of the Size interface that represents constant sizes described by a value and unit, for example: 10 pixel, 15 point or 4 dialog units. You can get instances of ConstantSize using the factory methods and constants in the Sizes class. Logical constant sizes that vary with the current layout style are delivered by the LayoutStyle class.

This class supports different size units:

Unit   Abbreviation   Size
Millimetermm0.1 cm
Centimetercm10.0 mm
Inchin25.4 mm
DTP Pointpt1/72 in
Pixelpx1/(resolution in dpi) in
Dialog Unitdluhonors l&f, resolution, and dialog font size

Examples:

 Sizes.ZERO;
 Sizes.DLUX9;
 Sizes.dluX(42);
 Sizes.pixel(99);
 

Version:
$Revision: 54721 $
Author:
Karsten Lentzsch
See Also:
Size, Sizes, Serialized Form

Nested Class Summary
static class ConstantSize.Unit
          An ordinal-based serializable typesafe enumeration for units as used in instances of ConstantSize.
 
Field Summary
static ConstantSize.Unit CENTIMETER
           
static ConstantSize.Unit CM
           
static ConstantSize.Unit DIALOG_UNITS_X
           
static ConstantSize.Unit DIALOG_UNITS_Y
           
static ConstantSize.Unit DLUX
           
static ConstantSize.Unit DLUY
           
static ConstantSize.Unit IN
           
static ConstantSize.Unit INCH
           
static ConstantSize.Unit MILLIMETER
           
static ConstantSize.Unit MM
           
static ConstantSize.Unit PIXEL
           
static ConstantSize.Unit POINT
           
private  ConstantSize.Unit unit
           
private  double value
           
private static ConstantSize.Unit[] VALUES
          An array of all enumeration values used to canonicalize deserialized units.
 
Constructor Summary
ConstantSize(double value, ConstantSize.Unit unit)
          Constructs an instance of ConstantSize from the given encoded size and unit description.
ConstantSize(int value, ConstantSize.Unit unit)
          Constructs an instance of ConstantSize from the given encoded size and unit description.
 
Method Summary
(package private) static ConstantSize dluX(int value)
          Returns an instance of Size for the specified value in horizontal dialog units.
(package private) static ConstantSize dluY(int value)
          Returns an instance of Size for the specified value in vertical dialog units.
 boolean equals(java.lang.Object o)
          Indicates whether some other ConstantSize is "equal to" this one.
 int getPixelSize(java.awt.Component component)
          Converts the size if necessary and returns the value in pixels.
 int hashCode()
          Returns a hash code value for the object.
private  int intValue()
           
 int maximumSize(java.awt.Container container, java.util.List components, FormLayout.Measure minMeasure, FormLayout.Measure prefMeasure, FormLayout.Measure defaultMeasure)
          Returns this size as pixel size.
(package private) static java.lang.String[] splitValueAndUnit(java.lang.String encodedValueAndUnit)
          Splits a string that encodes size with unit into the size and unit substrings.
 java.lang.String toString()
          Returns a string representation of this size object.
(package private) static ConstantSize valueOf(java.lang.String encodedValueAndUnit, boolean horizontal)
          Constructs an instance of ConstantSize from the given encoded size and unit description.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

PIXEL

public static final ConstantSize.Unit PIXEL

POINT

public static final ConstantSize.Unit POINT

DIALOG_UNITS_X

public static final ConstantSize.Unit DIALOG_UNITS_X

DLUX

public static final ConstantSize.Unit DLUX

DIALOG_UNITS_Y

public static final ConstantSize.Unit DIALOG_UNITS_Y

DLUY

public static final ConstantSize.Unit DLUY

MILLIMETER

public static final ConstantSize.Unit MILLIMETER

MM

public static final ConstantSize.Unit MM

CENTIMETER

public static final ConstantSize.Unit CENTIMETER

CM

public static final ConstantSize.Unit CM

INCH

public static final ConstantSize.Unit INCH

IN

public static final ConstantSize.Unit IN

VALUES

private static final ConstantSize.Unit[] VALUES
An array of all enumeration values used to canonicalize deserialized units.


value

private final double value

unit

private final ConstantSize.Unit unit
Constructor Detail

ConstantSize

ConstantSize(int value,
             ConstantSize.Unit unit)
Constructs an instance of ConstantSize from the given encoded size and unit description.

Parameters:
value - the size value interpreted in the given units
unit - the size's unit

ConstantSize

ConstantSize(double value,
             ConstantSize.Unit unit)
Constructs an instance of ConstantSize from the given encoded size and unit description.

Parameters:
value - the size value interpreted in the given units
unit - the size's unit
Method Detail

valueOf

static ConstantSize valueOf(java.lang.String encodedValueAndUnit,
                            boolean horizontal)
Constructs an instance of ConstantSize from the given encoded size and unit description.

Parameters:
encodedValueAndUnit - the size's value and unit as string
horizontal - true for horizontal, false for vertical
Returns:
a constant size for the given encoding and unit description
Throws:
java.lang.IllegalArgumentException - if the unit requires integer but the value is not an integer

dluX

static ConstantSize dluX(int value)
Returns an instance of Size for the specified value in horizontal dialog units.

Parameters:
value - size value in horizontal dialog units
Returns:
the associated Size instance

dluY

static ConstantSize dluY(int value)
Returns an instance of Size for the specified value in vertical dialog units.

Parameters:
value - size value in vertical dialog units
Returns:
the associated Size instance

getPixelSize

public int getPixelSize(java.awt.Component component)
Converts the size if necessary and returns the value in pixels.

Parameters:
component - the associated component
Returns:
the size in pixels

maximumSize

public int maximumSize(java.awt.Container container,
                       java.util.List components,
                       FormLayout.Measure minMeasure,
                       FormLayout.Measure prefMeasure,
                       FormLayout.Measure defaultMeasure)
Returns this size as pixel size. Neither requires the component list nor the specified measures.

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 computed maximum size in pixel

equals

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

Overrides:
equals in class java.lang.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 java.lang.Object
Returns:
a hash code value for this object.
See Also:
Object.equals(java.lang.Object), Hashtable

toString

public java.lang.String toString()
Returns a string representation of this size object. Note: The string representation may change at any time. It is strongly recommended to not use this string for parsing purposes.

Overrides:
toString in class java.lang.Object
Returns:
a string representation of the constant size

intValue

private int intValue()

splitValueAndUnit

static java.lang.String[] splitValueAndUnit(java.lang.String encodedValueAndUnit)
Splits a string that encodes size with unit into the size and unit substrings. Returns an array of two strings.

Parameters:
encodedValueAndUnit - a strings that represents a size with unit
Returns:
the first element is size, the second is unit