Eclipse Platform
Release 3.2

org.eclipse.jface.layout
Class GridDataFactory

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

public final class GridDataFactory
extends Object

This class provides a convienient shorthand for creating and initializing GridData. This offers several benefits over creating GridData normal way:

GridDataFactory instances are created using one of the static methods on this class.

Example usage:

//////////////////////////////////////////////////////////// // Example 1: Typical grid data for a non-wrapping label // GridDataFactory version GridDataFactory.fillDefaults().applyTo(myLabel); // Equivalent SWT version GridData labelData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL); myLabel.setLayoutData(labelData); /////////////////////////////////////////////////////////// // Example 2: Typical grid data for a wrapping label // GridDataFactory version GridDataFactory.fillDefaults() .align(SWT.FILL, SWT.CENTER) .hint(150, SWT.DEFAULT) .grab(true, false) .applyTo(wrappingLabel); // Equivalent SWT version GridData wrappingLabelData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER); wrappingLabelData.minimumWidth = 1; wrappingLabelData.widthHint = 150; wrappingLabel.setLayoutData(wrappingLabelData); ////////////////////////////////////////////////////////////// // Example 3: Typical grid data for a scrollable control (a list box, tree, table, etc.) // GridDataFactory version GridDataFactory.fillDefaults().grab(true, true).hint(150, 150).applyTo(listBox); // Equivalent SWT version GridData listBoxData = new GridData(GridData.FILL_BOTH); listBoxData.widthHint = 150; listBoxData.heightHint = 150; listBoxData.minimumWidth = 1; listBoxData.minimumHeight = 1; listBox.setLayoutData(listBoxData); ///////////////////////////////////////////////////////////// // Example 4: Typical grid data for a button // GridDataFactory version Point preferredSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, false); Point hint = Geometry.max(LayoutConstants.getMinButtonSize(), preferredSize); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).hint(hint).applyTo(button); // Equivalent SWT version Point preferredSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, false); Point hint = Geometry.max(LayoutConstants.getMinButtonSize(), preferredSize); GridData buttonData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER); buttonData.widthHint = hint.x; buttonData.heightHint = hint.y; button.setLayoutData(buttonData);

IMPORTANT: WHEN ASSIGNING LAYOUT DATA TO A CONTROL, BE SURE TO USE gridDataFactory.applyTo(control) AND NEVER control.setLayoutData(gridDataFactory).

Since:
3.2

Method Summary
 GridDataFactory align(int hAlign, int vAlign)
          Sets the alignment of the control within its cell.
 void applyTo(Control control)
          Sets the layout data on the given control.
 GridDataFactory copy()
          Creates a copy of the reciever.
static GridData copyData(GridData data)
          Returns a copy of the given GridData
 GridData create()
          Creates a new GridData instance.
static GridDataFactory createFrom(GridData data)
          Creates a new GridDataFactory that creates copies of the given GridData by default.
 GridDataFactory exclude(boolean shouldExclude)
          Instructs the GridLayout to ignore this control when performing layouts.
static GridDataFactory fillDefaults()
          Creates a GridDataFactory initialized with defaults that will cause the control to fill its cell.
 GridDataFactory grab(boolean horizontal, boolean vertical)
          Determines whether extra horizontal or vertical space should be allocated to this control's column when the layout resizes.
 GridDataFactory hint(int xHint, int yHint)
          Sets the width and height hints.
 GridDataFactory hint(Point hint)
          Sets the width and height hints.
 GridDataFactory indent(int hIndent, int vIndent)
          Sets the indent of the control within the cell.
 GridDataFactory indent(Point indent)
          Sets the indent of the control within the cell.
 GridDataFactory minSize(int minX, int minY)
          Sets the minimum size for the control.
 GridDataFactory minSize(Point min)
          Sets the minimum size for the control.
 GridDataFactory span(int hSpan, int vSpan)
          Sets the GridData span.
 GridDataFactory span(Point span)
          Sets the GridData span.
static GridDataFactory swtDefaults()
          Creates a new GridDataFactory initialized with the SWT defaults.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

swtDefaults

public static GridDataFactory swtDefaults()
Creates a new GridDataFactory initialized with the SWT defaults. This factory will generate GridData that is equivalent to "new GridData()".

Initial values are:

Returns:
a new GridDataFactory instance
See Also:
fillDefaults()

createFrom

public static GridDataFactory createFrom(GridData data)
Creates a new GridDataFactory that creates copies of the given GridData by default.

Parameters:
data - GridData to copy
Returns:
a new GridDataFactory that creates copies of the argument by default

fillDefaults

public static GridDataFactory fillDefaults()
Creates a GridDataFactory initialized with defaults that will cause the control to fill its cell.

Initial values are:

Returns:
a GridDataFactory that makes controls fill their grid by default
See Also:
swtDefaults()

span

public GridDataFactory span(int hSpan,
                            int vSpan)
Sets the GridData span. The span controls how many cells are filled by the control.

Parameters:
hSpan - number of columns spanned by the control
vSpan - number of rows spanned by the control
Returns:
this

span

public GridDataFactory span(Point span)
Sets the GridData span. The span controls how many cells are filled by the control.

Parameters:
span - the new span. The x coordinate indicates the number of columns spanned, and the y coordinate indicates the number of rows.
Returns:
this

hint

public GridDataFactory hint(int xHint,
                            int yHint)
Sets the width and height hints. The width and height hints override the control's preferred size. If either hint is set to SWT.DEFAULT, the control's preferred size is used.

Parameters:
xHint - horizontal hint (pixels), or SWT.DEFAULT to use the control's preferred size
yHint - vertical hint (pixels), or SWT.DEFAULT to use the control's preferred size
Returns:
this

hint

public GridDataFactory hint(Point hint)
Sets the width and height hints. The width and height hints override the control's preferred size. If either hint is set to SWT.DEFAULT, the control's preferred size is used.

Parameters:
hint - size (pixels) to be used instead of the control's preferred size. If the x or y values are set to SWT.DEFAULT, the control's computeSize() method will be used to obtain that dimension of the preferred size.
Returns:
this

align

public GridDataFactory align(int hAlign,
                             int vAlign)
Sets the alignment of the control within its cell.

Parameters:
hAlign - horizontal alignment. One of SWT.BEGINNING, SWT.CENTER, SWT.END, or SWT.FILL.
vAlign - vertical alignment. One of SWT.BEGINNING, SWT.CENTER, SWT.END, or SWT.FILL.
Returns:
this

indent

public GridDataFactory indent(int hIndent,
                              int vIndent)
Sets the indent of the control within the cell. Moves the position of the control by the given number of pixels. Positive values move toward the lower-right, negative values move toward the upper-left.

Parameters:
hIndent - distance to move to the right (negative values move left)
vIndent - distance to move down (negative values move up)
Returns:
this

indent

public GridDataFactory indent(Point indent)
Sets the indent of the control within the cell. Moves the position of the control by the given number of pixels. Positive values move toward the lower-right, negative values move toward the upper-left.

Parameters:
indent - offset to move the control
Returns:
this

grab

public GridDataFactory grab(boolean horizontal,
                            boolean vertical)
Determines whether extra horizontal or vertical space should be allocated to this control's column when the layout resizes. If any control in the column is set to grab horizontal then the whole column will grab horizontal space. If any control in the row is set to grab vertical then the whole row will grab vertical space.

Parameters:
horizontal - true if the control's column should grow horizontally
vertical - true if the control's row should grow vertically
Returns:
this

minSize

public GridDataFactory minSize(int minX,
                               int minY)
Sets the minimum size for the control. The control will not be permitted to shrink below this size. Note: GridLayout treats a minimum size of 0 as an undocumented special value, so the smallest possible minimum size is a size of 1. A minimum size of SWT.DEFAULT indicates that the result of computeSize(int, int, boolean) should be used as the control's minimum size.

Parameters:
minX - minimum a value of 1 or more is a horizontal size of the control (pixels). SWT.DEFAULT indicates that the control's preferred size should be used. A size of 0 has special semantics defined by GridLayout.
minY - minimum a value of 1 or more is a vertical size of the control (pixels). SWT.DEFAULT indicates that the control's preferred size should be used. A size of 0 has special semantics defined by GridLayout.
Returns:
this

minSize

public GridDataFactory minSize(Point min)
Sets the minimum size for the control. The control will not be permitted to shrink below this size. Note: GridLayout treats a minimum size of 0 as an undocumented special value, so the smallest possible minimum size is a size of 1. A minimum size of SWT.DEFAULT indicates that the result of computeSize(int, int, boolean) should be used as the control's minimum size.

Parameters:
min - minimum size of the control
Returns:
this

exclude

public GridDataFactory exclude(boolean shouldExclude)
Instructs the GridLayout to ignore this control when performing layouts.

Parameters:
shouldExclude - true iff the control should be excluded from layouts
Returns:
this

create

public GridData create()
Creates a new GridData instance. All attributes of the GridData instance will be initialized by the factory.

Returns:
a new GridData instance

copy

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

Returns:
a copy of the reciever

copyData

public static GridData copyData(GridData data)
Returns a copy of the given GridData

Parameters:
data - GridData to copy
Returns:
a copy of the argument

applyTo

public void applyTo(Control control)
Sets the layout data on the given control. Creates a new GridData instance and assigns it to the control by calling control.setLayoutData.

Parameters:
control - control whose layout data will be initialized

Eclipse Platform
Release 3.2

Guidelines for using Eclipse APIs.

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