# SWT GroupLayout

GroupLayout is a LayoutManager that hierarchically groups components in order to position them in a Container. GroupLayout is intended for use by builders, but may be hand-coded as well. Grouping is done by instances of the Group class. GroupLayout supports two types of groups. A sequential group positions its child elements sequentially, one after another. A parallel group aligns its child elements in one of four ways.
Each group may contain any number of elements, where an element is a Group, Component, or gap. A gap can be thought of as an invisible component with a minimum, preferred and maximum size. In addition GroupLayout supports a preferred gap, whose value comes from LayoutStyle.
Elements are similar to a spring. Each element has a range as specified by a minimum, preferred and maximum. Gaps have either a developer-specified range, or a range determined by LayoutStyle. The range for Components is determined from the Component's getMinimumSize, getPreferredSize and getMaximumSize methods. In addition, when adding Components you may specify a particular range to use instead of that from the component. The range for a Group is determined by the type of group. A ParallelGroup's range is the maximum of the ranges of its elements. A SequentialGroup's range is the sum of the ranges of its elements.
GroupLayout treats each axis independently. That is, there is a group representing the horizontal axis, and a group representing the vertical axis. The horizontal group is responsible for determining the minimum, preferred and maximum size along the horizontal axis as well as setting the x and width of the components contained in it. The vertical group is responsible for determining the minimum, preferred and maximum size along the vertical axis as well as setting the y and height of the components contained in it. Each Component must exist in both a horizontal and vertical group, otherwise an IllegalStateException is thrown during layout, or when the minimum, preferred or maximum size is requested.

- Main Features
- Graphical Feedback

## Main Features

- Select GroupLayout from the Layouts palette and drop it on a Shell or Composite

- Graphical feedback is provided for all widget size and position operations

## Graphical Feedback

- Position and size widgets using GroupLayout constraints

> E

- Align widgets horizontally and vertically

- Indent widgets intelligently

- Insert widgets intelligently

- Align widgets along text baselines

- Align widgets to margins

- Anchor widgets to the left, right or both sides

- Anchor widgets to the top, bottom or both sides

- Set anchors via popup context menus

- Set widget anchoring and resizing via context menu

- Align and center widgets using toolbar

- Set alignment, size and spacing using floating layout assistant