com.jgoodies.forms.layout
Class CellConstraints

java.lang.Object
  extended by com.jgoodies.forms.layout.CellConstraints
All Implemented Interfaces:
Serializable, Cloneable

public final class CellConstraints
extends Object
implements Cloneable, Serializable

Defines constraints for components that are layed out with the FormLayout. Defines the components display area: grid x, grid y, grid width (column span), grid height (row span), horizontal alignment and vertical alignment.

Most methods return this object to enable method chaining.

You can set optional insets in a constructor. This is useful if you need to use a pixel-size insets to align perceived component bounds with pixel data, for example an icon. Anyway, this is rarely used. The insets don't affect the size computation for columns and rows. I consider renaming the insets to offsets to better indicate the motivation for this option.

Examples:
The following cell constraints locate a component in the third column of the fifth row; column and row span are 1; the component will be aligned with the column's right-hand side and the row's bottom.

 CellConstraints cc = new CellConstraints();
 cc.xy  (3, 5);
 cc.xy  (3, 5, CellConstraints.RIGHT, CellConstraints.BOTTOM);
 cc.xy  (3, 5, "right, bottom");
 
 cc.xyw (3, 5, 1);
 cc.xyw (3, 5, 1, CellConstraints.RIGHT, CellConstraints.BOTTOM);
 cc.xyw (3, 5, 1, "right, bottom");
  
 cc.xywh(3, 5, 1, 1);
 cc.xywh(3, 5, 1, 1, CellConstraints.RIGHT, CellConstraints.BOTTOM);
 cc.xywh(3, 5, 1, 1, "right, bottom"); 
 
See also the examples in the FormLayout class comment.

TODO: Consider renaming the inset to offsets.

Version:
$Revision: 1.13 $
Author:
Karsten Lentzsch
See Also:
Serialized Form

Nested Class Summary
static class CellConstraints.Alignment
          An ordinal-based serializable typesafe enumeration for component alignment types as used by the FormLayout.
 
Field Summary
static CellConstraints.Alignment BOTTOM
          Put the component in the bottom.
static CellConstraints.Alignment CENTER
          Put the component in the center.
static CellConstraints.Alignment DEFAULT
          Use the column's or row's default alignment.
static CellConstraints.Alignment FILL
          Fill the cell either horizontally or vertically.
 int gridHeight
          Describes the component's vertical grid extent (number of cells).
 int gridWidth
          Describes the component's horizontal grid extend (number of cells).
 int gridX
          Describes the component's horizontal grid origin (starts at 1).
 int gridY
          Describes the component's vertical grid origin (starts at 1).
 CellConstraints.Alignment hAlign
          Describes the component's horizontal alignment.
 Insets insets
          Describes the component's Insets in it's display area.
static CellConstraints.Alignment LEFT
          Put the component in the left.
static CellConstraints.Alignment RIGHT
          Put the component in the right.
static CellConstraints.Alignment TOP
          Put the component in the top.
 CellConstraints.Alignment vAlign
          Describes the component's vertical alignment.
 
Constructor Summary
CellConstraints()
          Constructs a default instance of CellConstraints.
CellConstraints(int gridX, int gridY)
          Constructs an instance of CellConstraints for the given cell position.
CellConstraints(int gridX, int gridY, CellConstraints.Alignment hAlign, CellConstraints.Alignment vAlign)
          Constructs an instance of CellConstraints for the given cell position, anchor, and fill.
CellConstraints(int gridX, int gridY, int gridWidth, int gridHeight)
          Constructs an instance of CellConstraints for the given cell position and size.
CellConstraints(int gridX, int gridY, int gridWidth, int gridHeight, CellConstraints.Alignment hAlign, CellConstraints.Alignment vAlign)
          Constructs an instance of CellConstraints for the given cell position and size, anchor, and fill.
CellConstraints(int gridX, int gridY, int gridWidth, int gridHeight, CellConstraints.Alignment hAlign, CellConstraints.Alignment vAlign, Insets insets)
          Constructs an instance of CellConstraints for the complete set of available properties.
CellConstraints(String encodedConstraints)
          Constructs an instance of CellConstraints from the given encoded string properties.
 
Method Summary
 Object clone()
          Creates a copy of this cell constraints object.
 String toShortString()
          Returns a short string representation of this constraints object.
 String toShortString(FormLayout layout)
          Returns a short string representation of this constraints object.
 String toString()
          Constructs and returns a string representation of this constraints object.
 CellConstraints xy(int col, int row)
          Sets row and column origins; sets width and height to 1; uses the default alignments.
 CellConstraints xy(int col, int row, CellConstraints.Alignment colAlign, CellConstraints.Alignment rowAlign)
          Sets the row and column origins; sets width and height to 1; set horizontal and vertical alignment using the specified objects.
 CellConstraints xy(int col, int row, String encodedAlignments)
          Sets row and column origins; sets width and height to 1; decodes horizontal and vertical alignments from the given string.
 CellConstraints xyw(int col, int row, int colSpan)
          Sets the row, column, width, and height; uses a height (row span) of 1 and the horizontal and vertical default alignments.
 CellConstraints xyw(int col, int row, int colSpan, CellConstraints.Alignment colAlign, CellConstraints.Alignment rowAlign)
          Sets the row, column, width, and height; sets the horizontal and vertical aligment using the specified alignment objects.
 CellConstraints xyw(int col, int row, int colSpan, String encodedAlignments)
          Sets the row, column, width, and height; decodes the horizontal and vertical alignments from the given string.
 CellConstraints xywh(int col, int row, int colSpan, int rowSpan)
          Sets the row, column, width, and height; uses default alignments.
 CellConstraints xywh(int col, int row, int colSpan, int rowSpan, CellConstraints.Alignment colAlign, CellConstraints.Alignment rowAlign)
          Sets the row, column, width, and height; sets the horizontal and vertical aligment using the specified alignment objects.
 CellConstraints xywh(int col, int row, int colSpan, int rowSpan, String encodedAlignments)
          Sets the row, column, width, and height; decodes the horizontal and vertical alignments from the given string.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT

public static final CellConstraints.Alignment DEFAULT
Use the column's or row's default alignment.


FILL

public static final CellConstraints.Alignment FILL
Fill the cell either horizontally or vertically.


LEFT

public static final CellConstraints.Alignment LEFT
Put the component in the left.


RIGHT

public static final CellConstraints.Alignment RIGHT
Put the component in the right.


CENTER

public static final CellConstraints.Alignment CENTER
Put the component in the center.


TOP

public static final CellConstraints.Alignment TOP
Put the component in the top.


BOTTOM

public static final CellConstraints.Alignment BOTTOM
Put the component in the bottom.


gridX

public int gridX
Describes the component's horizontal grid origin (starts at 1).


gridY

public int gridY
Describes the component's vertical grid origin (starts at 1).


gridWidth

public int gridWidth
Describes the component's horizontal grid extend (number of cells).


gridHeight

public int gridHeight
Describes the component's vertical grid extent (number of cells).


hAlign

public CellConstraints.Alignment hAlign
Describes the component's horizontal alignment.


vAlign

public CellConstraints.Alignment vAlign
Describes the component's vertical alignment.


insets

public Insets insets
Describes the component's Insets in it's display area.

Constructor Detail

CellConstraints

public CellConstraints()
Constructs a default instance of CellConstraints.


CellConstraints

public CellConstraints(int gridX,
                       int gridY)
Constructs an instance of CellConstraints for the given cell position.

Examples:

 new CellConstraints(1, 3);
 new CellConstraints(1, 3);
 

Parameters:
gridX - the component's horizontal grid origin
gridY - the component's vertical grid origin

CellConstraints

public CellConstraints(int gridX,
                       int gridY,
                       CellConstraints.Alignment hAlign,
                       CellConstraints.Alignment vAlign)
Constructs an instance of CellConstraints for the given cell position, anchor, and fill.

Examples:

 new CellConstraints(1, 3, CellConstraints.LEFT,   CellConstraints.BOTTOM);
 new CellConstraints(1, 3, CellConstraints.CENTER, CellConstraints.FILL);
 

Parameters:
gridX - the component's horizontal grid origin
gridY - the component's vertical grid origin
hAlign - the component's horizontal alignment
vAlign - the component's vertical alignment

CellConstraints

public CellConstraints(int gridX,
                       int gridY,
                       int gridWidth,
                       int gridHeight)
Constructs an instance of CellConstraints for the given cell position and size.

Examples:

 new CellConstraints(1, 3, 2, 1);
 new CellConstraints(1, 3, 7, 3);
 

Parameters:
gridX - the component's horizontal grid origin
gridY - the component's vertical grid origin
gridWidth - the component's horizontal extent
gridHeight - the component's vertical extent

CellConstraints

public CellConstraints(int gridX,
                       int gridY,
                       int gridWidth,
                       int gridHeight,
                       CellConstraints.Alignment hAlign,
                       CellConstraints.Alignment vAlign)
Constructs an instance of CellConstraints for the given cell position and size, anchor, and fill.

Examples:

 new CellConstraints(1, 3, 2, 1, CellConstraints.LEFT,   CellConstraints.BOTTOM);
 new CellConstraints(1, 3, 7, 3, CellConstraints.CENTER, CellConstraints.FILL);
 

Parameters:
gridX - the component's horizontal grid origin
gridY - the component's vertical grid origin
gridWidth - the component's horizontal extent
gridHeight - the component's vertical extent
hAlign - the component's horizontal alignment
vAlign - the component's vertical alignment

CellConstraints

public CellConstraints(int gridX,
                       int gridY,
                       int gridWidth,
                       int gridHeight,
                       CellConstraints.Alignment hAlign,
                       CellConstraints.Alignment vAlign,
                       Insets insets)
Constructs an instance of CellConstraints for the complete set of available properties.

Examples:

 new CellConstraints(1, 3, 2, 1, CellConstraints.LEFT,   CellConstraints.BOTTOM, new Insets(0, 1, 0, 3));
 new CellConstraints(1, 3, 7, 3, CellConstraints.CENTER, CellConstraints.FILL,   new Insets(0, 1, 0, 0));
 

Parameters:
gridX - the component's horizontal grid origin
gridY - the component's vertical grid origin
gridWidth - the component's horizontal extent
gridHeight - the component's vertical extent
hAlign - the component's horizontal alignment
vAlign - the component's vertical alignment
insets - the component's display area Insets
Throws:
IndexOutOfBoundsException - if the grid origin or extent is negative
NullPointerException - if the horizontal or vertical alignment is null
IllegalArgumentException - if an alignment orientation is invalid

CellConstraints

public CellConstraints(String encodedConstraints)
Constructs an instance of CellConstraints from the given encoded string properties.

Examples:

 new CellConstraints("1, 3");
 new CellConstraints("1, 3, left, bottom");
 new CellConstraints("1, 3, 2, 1, left, bottom");
 new CellConstraints("1, 3, 2, 1, l, b");
 

Parameters:
encodedConstraints - the constraints encoded as string
Method Detail

xy

public CellConstraints xy(int col,
                          int row)
Sets row and column origins; sets width and height to 1; uses the default alignments.

Examples:

 cc.xy(1, 1);
 cc.xy(1, 3);
 

Parameters:
col - the new column index
row - the new row index
Returns:
this

xy

public CellConstraints xy(int col,
                          int row,
                          String encodedAlignments)
Sets row and column origins; sets width and height to 1; decodes horizontal and vertical alignments from the given string.

Examples:

 cc.xy(1, 3, "left, bottom");
 cc.xy(1, 3, "l, b");
 cc.xy(1, 3, "center, fill");
 cc.xy(1, 3, "c, f");
 

Parameters:
col - the new column index
row - the new row index
encodedAlignments - describes the horizontal and vertical alignments
Returns:
this
Throws:
IllegalArgumentException - if an alignment orientation is invalid

xy

public CellConstraints xy(int col,
                          int row,
                          CellConstraints.Alignment colAlign,
                          CellConstraints.Alignment rowAlign)
Sets the row and column origins; sets width and height to 1; set horizontal and vertical alignment using the specified objects.

Examples:

 cc.xy(1, 3, CellConstraints.LEFT,   CellConstraints.BOTTOM);
 cc.xy(1, 3, CellConstraints.CENTER, CellConstraints.FILL);
 

Parameters:
col - the new column index
row - the new row index
colAlign - horizontal component alignment
rowAlign - vertical component alignment
Returns:
this

xyw

public CellConstraints xyw(int col,
                           int row,
                           int colSpan)
Sets the row, column, width, and height; uses a height (row span) of 1 and the horizontal and vertical default alignments.

Examples:

 cc.xyw(1, 3, 7);
 cc.xyw(1, 3, 2);
 

Parameters:
col - the new column index
row - the new row index
colSpan - the column span or grid width
Returns:
this

xyw

public CellConstraints xyw(int col,
                           int row,
                           int colSpan,
                           String encodedAlignments)
Sets the row, column, width, and height; decodes the horizontal and vertical alignments from the given string. The row span (height) is set to 1.

Examples:

 cc.xyw(1, 3, 7, "left, bottom");
 cc.xyw(1, 3, 7, "l, b");
 cc.xyw(1, 3, 2, "center, fill");
 cc.xyw(1, 3, 2, "c, f");
 

Parameters:
col - the new column index
row - the new row index
colSpan - the column span or grid width
encodedAlignments - describes the horizontal and vertical alignments
Returns:
this
Throws:
IllegalArgumentException - if an alignment orientation is invalid

xyw

public CellConstraints xyw(int col,
                           int row,
                           int colSpan,
                           CellConstraints.Alignment colAlign,
                           CellConstraints.Alignment rowAlign)
Sets the row, column, width, and height; sets the horizontal and vertical aligment using the specified alignment objects. The row span (height) is set to 1.

Examples:

 cc.xyw(1, 3, 2, CellConstraints.LEFT,   CellConstraints.BOTTOM);
 cc.xyw(1, 3, 7, CellConstraints.CENTER, CellConstraints.FILL);
 

Parameters:
col - the new column index
row - the new row index
colSpan - the column span or grid width
colAlign - horizontal component alignment
rowAlign - vertical component alignment
Returns:
this
Throws:
IllegalArgumentException - if an alignment orientation is invalid

xywh

public CellConstraints xywh(int col,
                            int row,
                            int colSpan,
                            int rowSpan)
Sets the row, column, width, and height; uses default alignments.

Examples:

 cc.xywh(1, 3, 2, 1);
 cc.xywh(1, 3, 7, 3);
 

Parameters:
col - the new column index
row - the new row index
colSpan - the column span or grid width
rowSpan - the row span or grid height
Returns:
this

xywh

public CellConstraints xywh(int col,
                            int row,
                            int colSpan,
                            int rowSpan,
                            String encodedAlignments)
Sets the row, column, width, and height; decodes the horizontal and vertical alignments from the given string.

Examples:

 cc.xywh(1, 3, 2, 1, "left, bottom");
 cc.xywh(1, 3, 2, 1, "l, b");
 cc.xywh(1, 3, 7, 3, "center, fill");
 cc.xywh(1, 3, 7, 3, "c, f");
 

Parameters:
col - the new column index
row - the new row index
colSpan - the column span or grid width
rowSpan - the row span or grid height
encodedAlignments - describes the horizontal and vertical alignments
Returns:
this
Throws:
IllegalArgumentException - if an alignment orientation is invalid

xywh

public CellConstraints xywh(int col,
                            int row,
                            int colSpan,
                            int rowSpan,
                            CellConstraints.Alignment colAlign,
                            CellConstraints.Alignment rowAlign)
Sets the row, column, width, and height; sets the horizontal and vertical aligment using the specified alignment objects.

Examples:

 cc.xywh(1, 3, 2, 1, CellConstraints.LEFT,   CellConstraints.BOTTOM);
 cc.xywh(1, 3, 7, 3, CellConstraints.CENTER, CellConstraints.FILL);
 

Parameters:
col - the new column index
row - the new row index
colSpan - the column span or grid width
rowSpan - the row span or grid height
colAlign - horizontal component alignment
rowAlign - vertical component alignment
Returns:
this
Throws:
IllegalArgumentException - if an alignment orientation is invalid

clone

public Object clone()
Creates a copy of this cell constraints object.

Overrides:
clone in class Object
Returns:
a copy of this cell constraints object

toString

public String toString()
Constructs and returns a string representation of this constraints object.

Overrides:
toString in class Object
Returns:
string representation of this constraints object

toShortString

public String toShortString()
Returns a short string representation of this constraints object.

Returns:
a short string representation of this constraints object

toShortString

public String toShortString(FormLayout layout)
Returns a short string representation of this constraints object. This method can use the given FormLayout to display extra information how default alignments are mapped to concrete alignments. Therefore it asks the related column and row as specified by this constraints object.

Parameters:
layout - the layout to be presented as a string
Returns:
a short string representation of this constraints object


Copyright © 2002-2004 JGoodies Karsten Lentzsch. All Rights Reserved.