org.gjt.sp.jedit.gui
Class VariableGridLayout

java.lang.Object
  extended byorg.gjt.sp.jedit.gui.VariableGridLayout
All Implemented Interfaces:
java.awt.LayoutManager, java.awt.LayoutManager2, java.io.Serializable

public class VariableGridLayout
extends java.lang.Object
implements java.awt.LayoutManager2, java.io.Serializable

The VariableGridLayout class is a layout manager that lays out a container's components in a rectangular grid with variable cell sizes.

The container is divided into rectangles, and one component is placed in each rectangle. Each row is as large as the largest component in that row, and each column is as wide as the widest component in that column.

This behavior is basically the same as in java.awt.GridLayout, but with different row heights and column widths for each row/column.

For example, the following is an applet that lays out six buttons into three rows and two columns:

 import java.awt.*;
 import java.applet.Applet;
 public class ButtonGrid extends Applet {
     public void init() {
         setLayout(new VariableGridLayout(VariableGridLayout.FIXED_NUM_COLUMNS, 2));
         add(new Button("1"));
         add(new Button("2"));
         add(new Button("3"));
         add(new Button("4"));
         add(new Button("5"));
         add(new Button("6"));
     }
 }
 

Programmer's remark: VariableGridLayout could be faster, if it would reside in the package java.awt, because then it could access some package private fields of Container or Component. Instead, it has to call Component.getSize(), which allocates memory on the heap.

Todo:

Version:
1.0
Author:
Dirk Moebius
See Also:
GridLayout, Serialized Form

Field Summary
static int FIXED_NUM_COLUMNS
           
static int FIXED_NUM_ROWS
           
 
Constructor Summary
VariableGridLayout()
          Creates a variable grid layout manager with mode FIXED_NUM_ROWS, number of rows == 1 and zero horizontal and vertical gap.
VariableGridLayout(int mode, int size)
          Creates a variable grid layout manager with the specified mode and zero horizontal and vertical gap.
VariableGridLayout(int mode, int size, int hgap, int vgap)
           
 
Method Summary
 void addLayoutComponent(java.awt.Component component, java.lang.Object constraints)
          Not used in this class.
 void addLayoutComponent(java.lang.String name, java.awt.Component component)
          Not used in this class.
 float getLayoutAlignmentX(java.awt.Container container)
          Always returns 0.5.
 float getLayoutAlignmentY(java.awt.Container container)
          Always returns 0.5.
 void invalidateLayout(java.awt.Container container)
           
 void layoutContainer(java.awt.Container parent)
           
 java.awt.Dimension maximumLayoutSize(java.awt.Container parent)
           
 java.awt.Dimension minimumLayoutSize(java.awt.Container parent)
           
 java.awt.Dimension preferredLayoutSize(java.awt.Container parent)
           
 void removeLayoutComponent(java.awt.Component component)
          Not used in this class.
 java.lang.String toString()
          Returns the string representation of this variable grid layout's values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

FIXED_NUM_ROWS

public static final int FIXED_NUM_ROWS
See Also:
Constant Field Values

FIXED_NUM_COLUMNS

public static final int FIXED_NUM_COLUMNS
See Also:
Constant Field Values
Constructor Detail

VariableGridLayout

public VariableGridLayout(int mode,
                          int size,
                          int hgap,
                          int vgap)

VariableGridLayout

public VariableGridLayout(int mode,
                          int size)
Creates a variable grid layout manager with the specified mode and zero horizontal and vertical gap.


VariableGridLayout

public VariableGridLayout()
Creates a variable grid layout manager with mode FIXED_NUM_ROWS, number of rows == 1 and zero horizontal and vertical gap.

Method Detail

addLayoutComponent

public void addLayoutComponent(java.lang.String name,
                               java.awt.Component component)
Not used in this class.

Specified by:
addLayoutComponent in interface java.awt.LayoutManager

addLayoutComponent

public void addLayoutComponent(java.awt.Component component,
                               java.lang.Object constraints)
Not used in this class.

Specified by:
addLayoutComponent in interface java.awt.LayoutManager2

removeLayoutComponent

public void removeLayoutComponent(java.awt.Component component)
Not used in this class.

Specified by:
removeLayoutComponent in interface java.awt.LayoutManager

getLayoutAlignmentX

public float getLayoutAlignmentX(java.awt.Container container)
Always returns 0.5.

Specified by:
getLayoutAlignmentX in interface java.awt.LayoutManager2

getLayoutAlignmentY

public float getLayoutAlignmentY(java.awt.Container container)
Always returns 0.5.

Specified by:
getLayoutAlignmentY in interface java.awt.LayoutManager2

preferredLayoutSize

public java.awt.Dimension preferredLayoutSize(java.awt.Container parent)
Specified by:
preferredLayoutSize in interface java.awt.LayoutManager

minimumLayoutSize

public java.awt.Dimension minimumLayoutSize(java.awt.Container parent)
Specified by:
minimumLayoutSize in interface java.awt.LayoutManager

maximumLayoutSize

public java.awt.Dimension maximumLayoutSize(java.awt.Container parent)
Specified by:
maximumLayoutSize in interface java.awt.LayoutManager2

layoutContainer

public void layoutContainer(java.awt.Container parent)
Specified by:
layoutContainer in interface java.awt.LayoutManager

invalidateLayout

public void invalidateLayout(java.awt.Container container)
Specified by:
invalidateLayout in interface java.awt.LayoutManager2

toString

public java.lang.String toString()
Returns the string representation of this variable grid layout's values.

Returns:
a string representation of this variable grid layout.