org.tigris.swidgets

Class GridLayout2

Implemented Interfaces:
LayoutManager, java.io.Serializable
Known Direct Subclasses:
NewspaperLayout

public class GridLayout2
extends java.lang.Object
implements LayoutManager, java.io.Serializable

Same as the standard java class GridLayout but allows more flexability for sizing of columns and rows.
Author:
Bob Tarling
See Also:
Serialized Form

Field Summary

static int
BOTH
Resize all child components to fit their cell both horizontally and vertically.
static int
CENTER
Put the component in the center of its display area.
static int
EAST
Put the component on the right side of its display area, centered vertically.
static int
FITPARENT
Size all cells as the same width and height to fit the parent component.
static int
HORIZONTAL
Resize all child components to fit their cell horizontally but not vertically.
static int
MAXPREFERRED
Size all cells as the largest prefered width and height component.
static int
NONE
Do not resize the child components.
static int
NORTH
Put the component at the top of its display area, centered horizontally.
static int
NORTHEAST
Put the component at the top-right corner of its display area.
static int
NORTHWEST
Put each component in the top-left corner of its display area.
static int
ROWCOLPREFERRED
Size all cells so that all in the same row are the same height and all in the same column are the same width.
static int
SOUTH
Put the component at the bottom of its display area, centered horizontally.
static int
SOUTHEAST
Put the component at the bottom-right corner of its display area.
static int
SOUTHWEST
Put the component at the bottom-left corner of its display area.
static int
VERTICAL
Resize all child components to fit their cell vertically but not horizontally.
static int
WEST
Put the component on the left side of its display area, centered vertically.

Constructor Summary

GridLayout2()
Construct a new GridLayout2 with a default of one column per component, in a single row.
GridLayout2(int r, int c)
Construct a new GridLayout2 with the specified number of rows and columns.
GridLayout2(int r, int c, int cs)
Construct a new GridLayout2 with the specified number of rows and columns and cell sizing scheme.
GridLayout2(int r, int c, int h, int v)
Construct a new GridLayout2 with the specified number of rows and columns and cell spacing.
GridLayout2(int r, int c, int h, int v, int cs)
Construct a new GridLayout2 with the specified number of rows and columns, cell spacing and cell sizing scheme.
GridLayout2(int r, int c, int h, int v, int cs, int f)
Construct a new GridLayout2 with the specified number of rows and columns, cell spacing, cell sizing scheme and filling scheme.
GridLayout2(int r, int c, int h, int v, int cs, int f, int a)
Construct a new GridLayout2 with the specified number of rows and columns, cell spacing, cell sizing scheme and component sizing and anchoring scheme.

Method Summary

void
addLayoutComponent(String name, Component comp)
Adds the specified component with the specified name to the layout.
protected Dimension
calculateSizes(Container parent, theColWidth[] , theRowHeight[] , int actualRows, int actualCols, int theLargestWidth, int theLargestHeight)
Calculate the layout size.
protected int[]
getColWidth()
int
getColumns()
protected int
getComponentCellHeight(int row)
Calculate the cell height.
protected int
getComponentCellWidth(int col)
Calculate the cell width.
int
getHgap()
protected int
getLargestHeight()
protected int
getLargestWidth()
protected int[]
getRowHeight()
int
getRows()
int
getVgap()
void
layoutContainer(Container parent)
Dimension
minimumLayoutSize(Container parent)
Required by LayoutManager.
protected void
positionComponentInCell(Component comp, int x, int y, int cellWidth, int cellHeight)
Dimension
preferredLayoutSize(Container parent)
Determines the preferred size of the container argument using this grid layout.
void
removeLayoutComponent(Component comp)
Removes the specified component with the specified name from the layout.
protected void
setColWidth(int[] cw)
void
setCols(int c)
void
setHgap(int h)
protected void
setLargestHeight(int lh)
protected void
setLargestWidth(int lw)
protected void
setRowHeight(int[] rh)
void
setRows(int r)
void
setVgap(int v)

Field Details

BOTH

public static final int BOTH
Resize all child components to fit their cell both horizontally and vertically.
Field Value:
1

CENTER

public static final int CENTER
Put the component in the center of its display area.
Field Value:
10

EAST

public static final int EAST
Put the component on the right side of its display area, centered vertically.
Field Value:
13

FITPARENT

public static final int FITPARENT
Size all cells as the same width and height to fit the parent component.

A possible value for the cellSizing parameter of the constructor in order to size cells so that each has the same height and width and are sized to fit their parent. This emulates the sizing done by a standard GridLayout.

Field Value:
22

HORIZONTAL

public static final int HORIZONTAL
Resize all child components to fit their cell horizontally but not vertically.
Field Value:
2

MAXPREFERRED

public static final int MAXPREFERRED
Size all cells as the largest prefered width and height component.

A possible value for the cellSizing parameter of the constructor in order to size cells so that each have the same width and height. The width is the largest prefered width and the height is the largest prefered height of all these child components.

Field Value:
20

NONE

public static final int NONE
Do not resize the child components.
Field Value:
0

NORTH

public static final int NORTH
Put the component at the top of its display area, centered horizontally.
Field Value:
11

NORTHEAST

public static final int NORTHEAST
Put the component at the top-right corner of its display area.
Field Value:
12

NORTHWEST

public static final int NORTHWEST
Put each component in the top-left corner of its display area.
Field Value:
18

ROWCOLPREFERRED

public static final int ROWCOLPREFERRED
Size all cells so that all in the same row are the same height and all in the same column are the same width.

A possible value for the cellSizing parameter of the constructor. The width is the largest prefered width of all components in the same column and the height is the largest prefered height of all components in the same row.

Field Value:
21

SOUTH

public static final int SOUTH
Put the component at the bottom of its display area, centered horizontally.
Field Value:
15

SOUTHEAST

public static final int SOUTHEAST
Put the component at the bottom-right corner of its display area.
Field Value:
14

SOUTHWEST

public static final int SOUTHWEST
Put the component at the bottom-left corner of its display area.
Field Value:
16

VERTICAL

public static final int VERTICAL
Resize all child components to fit their cell vertically but not horizontally.
Field Value:
3

WEST

public static final int WEST
Put the component on the left side of its display area, centered vertically.
Field Value:
17

Constructor Details

GridLayout2

public GridLayout2()
Construct a new GridLayout2 with a default of one column per component, in a single row.

GridLayout2

public GridLayout2(int r,
                   int c)
Construct a new GridLayout2 with the specified number of rows and columns.
Parameters:
r - the number of rows in the layout
c - the number of columns in the layout

GridLayout2

public GridLayout2(int r,
                   int c,
                   int cs)
Construct a new GridLayout2 with the specified number of rows and columns and cell sizing scheme.
Parameters:
r - the number of rows in the layout
c - the number of columns in the layout
cs - the required cell sizing scheme

GridLayout2

public GridLayout2(int r,
                   int c,
                   int h,
                   int v)
Construct a new GridLayout2 with the specified number of rows and columns and cell spacing.
Parameters:
r - the number of rows in the layout
c - the number of columns in the layout
h - the horizontal gap between cells
v - the vertical gap between cells

GridLayout2

public GridLayout2(int r,
                   int c,
                   int h,
                   int v,
                   int cs)
Construct a new GridLayout2 with the specified number of rows and columns, cell spacing and cell sizing scheme.
Parameters:
r - the number of rows in the layout
c - the number of columns in the layout
h - the horizontal gap between cells
v - the vertical gap between cells
cs - the required cell sizing scheme

GridLayout2

public GridLayout2(int r,
                   int c,
                   int h,
                   int v,
                   int cs,
                   int f)
Construct a new GridLayout2 with the specified number of rows and columns, cell spacing, cell sizing scheme and filling scheme.
Parameters:
r - the number of rows in the layout
c - the number of columns in the layout
h - the horizontal gap between cells
v - the vertical gap between cells
cs - the required cell sizing scheme
f - the required cell filling scheme

GridLayout2

public GridLayout2(int r,
                   int c,
                   int h,
                   int v,
                   int cs,
                   int f,
                   int a)
Construct a new GridLayout2 with the specified number of rows and columns, cell spacing, cell sizing scheme and component sizing and anchoring scheme.
Parameters:
r - the number of rows in the layout
c - the number of columns in the layout
h - the horizontal gap between cells
v - the vertical gap between cells
cs - the required cell sizing scheme
f - the required cell filling scheme
a - the required anchoring of a child component within its cell

Method Details

addLayoutComponent

public void addLayoutComponent(String name,
                               Component comp)
Adds the specified component with the specified name to the layout. This is included to satisfy the LayoutManager interface but is not actually used in this layout implementation.
Parameters:
name - the name of the component
comp - the component to be added

calculateSizes

protected Dimension calculateSizes(Container parent,
                                   theColWidth[] ,
                                   theRowHeight[] ,
                                   int actualRows,
                                   int actualCols,
                                   int theLargestWidth,
                                   int theLargestHeight)
Calculate the layout size.
Parameters:
parent - the container
actualRows - the number of rows specified for the grid. This should be a non negative integer, where '0' means 'any number' meaning that the number of rows in that dimension depends on the other dimension.
actualCols - the number of columns specified for the grid. This should be a non negative integer, where '0' means 'any number' meaning that the number of columns in that dimension depends on the other dimension.
theLargestWidth - the largest width
theLargestHeight - the largest height
Returns:
the dimension of the layout

getColWidth

protected int[] getColWidth()
Returns:
Returns the colWidth.

getColumns

public int getColumns()
Returns:
the number of columns

getComponentCellHeight

protected int getComponentCellHeight(int row)
Calculate the cell height.
Parameters:
row - the row for this cell
Returns:
the height

getComponentCellWidth

protected int getComponentCellWidth(int col)
Calculate the cell width.
Parameters:
col - the column of this cell
Returns:
the width

getHgap

public int getHgap()
Returns:
the horizontal gap

getLargestHeight

protected int getLargestHeight()
Returns:
Returns the largestHeight.

getLargestWidth

protected int getLargestWidth()
Returns:
Returns the largestWidth.

getRowHeight

protected int[] getRowHeight()
Returns:
Returns the rowHeight.

getRows

public int getRows()
Returns:
the number of rows

getVgap

public int getVgap()
Returns:
the vertical gap

layoutContainer

public void layoutContainer(Container parent)
See Also:
java.awt.LayoutManager.layoutContainer(java.awt.Container)

minimumLayoutSize

public Dimension minimumLayoutSize(Container parent)
Required by LayoutManager.
See Also:
java.awt.LayoutManager.minimumLayoutSize(java.awt.Container)

positionComponentInCell

protected void positionComponentInCell(Component comp,
                                       int x,
                                       int y,
                                       int cellWidth,
                                       int cellHeight)
Parameters:
comp - the component to be positioned
x - the x
y - the y
cellWidth - the width of the cell
cellHeight - the height of the cell

preferredLayoutSize

public Dimension preferredLayoutSize(Container parent)
Determines the preferred size of the container argument using this grid layout. The preferred size of a grid layout is dependant on the cellSizing scheme.

MAXPREFERRED and FITPARENT use the same formula to calculate prefered size.

The prefered width using MAXPREFERRED or FITPARENT is the largest preferred width of any of the widths in the container times the number of columns, plus the horizontal padding times the number of columns plus one, plus the left and right insets of the target container.

The preferred height using MAXPREFERRED or FITPARENT is the largest preferred height of any of the heights in the container times the number of rows, plus the vertical padding times the number of rows plus one, plus the top and bottom insets of the target container.

The prefered width using ROWCOLPREFERRED is the largest preferred is the sum of the widths of of all columns, plus the horizontal padding times the number of columns plus one, plus the left and right insets of the target container.

The prefered height using ROWCOLPREFERRED is the largest preferred is the sum of the heights of of all columns, plus the horizontal padding times the number of columns plus one, plus the left and right insets of the target container.

Parameters:
parent - the container to be laid out
Returns:
the preferred dimensions to lay out the subcomponents of the specified container

removeLayoutComponent

public void removeLayoutComponent(Component comp)
Removes the specified component with the specified name from the layout. This is included to satisfy the LayoutManager interface but is not actually used in this layout implementation.

Parameters:
comp - the name of the component

setColWidth

protected void setColWidth(int[] cw)
Parameters:
cw - The colWidth to set.

setCols

public void setCols(int c)
Parameters:
c - the number of columns. It can not be zero.

setHgap

public void setHgap(int h)
Parameters:
h - the horizontal gap

setLargestHeight

protected void setLargestHeight(int lh)
Parameters:
lh - The largestHeight to set.

setLargestWidth

protected void setLargestWidth(int lw)
Parameters:
lw - The largestWidth to set.

setRowHeight

protected void setRowHeight(int[] rh)
Parameters:
rh - The rowHeight to set.

setRows

public void setRows(int r)
Parameters:
r - the number of rows. It can not be zero.

setVgap

public void setVgap(int v)
Parameters:
v - the vertical gap