Eclipse Platform
Release 3.2

org.eclipse.jface.layout
Class GridLayoutFactory

java.lang.Object
  extended byorg.eclipse.jface.layout.GridLayoutFactory

public final class GridLayoutFactory
extends Object

GridLayoutFactory creates and initializes grid layouts. There are two ways to use GridLayoutFactory. Normally, it is used as a shorthand for writing "new GridLayout()" and initializing a bunch of fields. In this case the main benefit is a more concise syntax and the ability to create more than one identical GridLayout from the same factory. Changing a property of the factory will affect future layouts created by the factory, but has no effect on layouts that have already been created.

GridLayoutFactory can also generate grid data for all the controls in a layout. This is done with the generateLayout method. To use this feature:

  1. Create the composite
  2. Create all the controls in the composite
  3. Call generateLayout

The order here is important. generateLayout must be called after all the child controls have been created. generateLayout will not change any layout data that has already been attached to a child control and it will not recurse into nested composites.

Since:
3.2

Method Summary
 void applyTo(Composite c)
          Creates a new GridLayout and attaches it to the given composite.
 GridLayoutFactory copy()
          Creates a copy of the reciever.
static GridLayout copyLayout(GridLayout l)
          Copies the given GridLayout instance
 GridLayout create()
          Creates a new GridLayout, and initializes it with values from the factory.
static GridLayoutFactory createFrom(GridLayout l)
          Creates a factory that creates copies of the given layout.
 GridLayoutFactory equalWidth(boolean equal)
          Sets whether the columns should be forced to be equal width
static GridLayoutFactory fillDefaults()
          Creates a GridLayoutFactory that creates GridLayouts with no margins and default dialog spacing.
 void generateLayout(Composite c)
          Applies this layout to the given composite, and attaches default GridData to all immediate children that don't have one.
 GridLayoutFactory margins(int x, int y)
          Sets the margins for layouts created with this factory.
 GridLayoutFactory margins(Point margins)
          Sets the margins for layouts created with this factory.
 GridLayoutFactory numColumns(int numColumns)
          Sets the number of columns in the layout
 GridLayoutFactory spacing(int hSpacing, int vSpacing)
          Sets the spacing for layouts created with this factory.
 GridLayoutFactory spacing(Point spacing)
          Sets the spacing for layouts created with this factory.
static GridLayoutFactory swtDefaults()
          Creates a GridLayoutFactory that creates GridLayouts with the default SWT values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

createFrom

public static GridLayoutFactory createFrom(GridLayout l)
Creates a factory that creates copies of the given layout.

Parameters:
l - layout to copy
Returns:
a new GridLayoutFactory instance that creates copies of the given layout

copy

public GridLayoutFactory copy()
Creates a copy of the reciever.

Returns:
a copy of the reciever

swtDefaults

public static GridLayoutFactory swtDefaults()
Creates a GridLayoutFactory that creates GridLayouts with the default SWT values.

Initial values are:

Returns:
a GridLayoutFactory that creates GridLayouts as though created with their default constructor
See Also:
fillDefaults()

fillDefaults

public static GridLayoutFactory fillDefaults()
Creates a GridLayoutFactory that creates GridLayouts with no margins and default dialog spacing.

Initial values are:

Returns:
a GridLayoutFactory that creates GridLayouts as though created with their default constructor
See Also:
swtDefaults()

equalWidth

public GridLayoutFactory equalWidth(boolean equal)
Sets whether the columns should be forced to be equal width

Parameters:
equal - true iff the columns should be forced to be equal width
Returns:
this

spacing

public GridLayoutFactory spacing(int hSpacing,
                                 int vSpacing)
Sets the spacing for layouts created with this factory. The spacing is the distance between cells within the layout.

Parameters:
hSpacing - horizontal spacing (pixels)
vSpacing - vertical spacing (pixels)
Returns:
this
See Also:
margins(org.eclipse.swt.graphics.Point)

spacing

public GridLayoutFactory spacing(Point spacing)
Sets the spacing for layouts created with this factory. The spacing is the distance between cells within the layout.

Parameters:
spacing - space between controls in the layout (pixels)
Returns:
this
See Also:
margins(org.eclipse.swt.graphics.Point)

margins

public GridLayoutFactory margins(Point margins)
Sets the margins for layouts created with this factory. The margins are the distance between the outer cells and the edge of the layout.

Parameters:
margins - margin size (pixels)
Returns:
this
See Also:
spacing(int, int)

margins

public GridLayoutFactory margins(int x,
                                 int y)
Sets the margins for layouts created with this factory. The margins are the distance between the outer cells and the edge of the layout.

Parameters:
x - horizontal margin size (pixels)
y - vertical margin size (pixels)
Returns:
this
See Also:
spacing(int, int)

numColumns

public GridLayoutFactory numColumns(int numColumns)
Sets the number of columns in the layout

Parameters:
numColumns - number of columns in the layout
Returns:
this

create

public GridLayout create()
Creates a new GridLayout, and initializes it with values from the factory.

Returns:
a new initialized GridLayout.
See Also:
applyTo(org.eclipse.swt.widgets.Composite)

applyTo

public void applyTo(Composite c)
Creates a new GridLayout and attaches it to the given composite. Does not create the GridData of any of the controls in the composite.

Parameters:
c - composite whose layout will be set
See Also:
generateLayout(org.eclipse.swt.widgets.Composite), create(), GridLayoutFactory

copyLayout

public static GridLayout copyLayout(GridLayout l)
Copies the given GridLayout instance

Parameters:
l - layout to copy
Returns:
a new GridLayout

generateLayout

public void generateLayout(Composite c)
Applies this layout to the given composite, and attaches default GridData to all immediate children that don't have one. The layout is generated using heuristics based on the widget types. In most cases, it will create exactly the same layout that would have been hardcoded by the programmer. In any situation where it does not produce the desired layout, the GridData for any child can be overridden by attaching the layout data before calling this method. In these cases, the special-case layout data can be hardcoded and the algorithm can supply defaults to the rest.

This must be called AFTER all of the child controls have been created and their layouts attached. This method will attach a layout to the given composite. If any new children are created after calling this method, their GridData must be created manually. The algorithm does not recurse into child composites. To generate all the layouts in a widget hierarchy, the method must be called bottom-up for each Composite.

All controls are made to span a single cell. The algorithm tries to classify controls into one of the following categories:

Parameters:
c - composite whose layout will be generated

Eclipse Platform
Release 3.2

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2006. All rights reserved.