This scenario will test out the features and behaviour of the Row layout manager in a java project with the SWT libraries added.
RowLayout is more commonly used than FillLayout because of its ability to wrap, and because it provides configurable margins and spacing.
RowLayout has a number of
configuration fields. In addition, the height and width of each widget in a
RowLayout can be specified by setting the widget’s RowData object using
setLayoutData.
In a Java Project with the SWT library added, create a new Visual Class.
On to the canvas, drag and drop a Shell from the SWT drawer on the palette.
Then go to the Properties view and verify that the default Layout for the Shell is null. Set the 'layout' property to 'RowLayout' in the property sheet and verify the code is generated correctly.

Drop a number of SWT components on to the Shell and verify that the size can not be selected and that the components have a default size.

Set Text to each component where possible and verify that said components expand to accommodate the text. And verify that as the components expand the ‘row’ of components expands and ‘wraps’ within the Shell container.

Verify that when the shell is resized that the components contained within wrap as expected.

Verify that the Layout Customization launches.

Verify that the Row orientation can be set from Horizontal, the default, to Vertical. And back again.

Verify that the row orientation can be changes from the source, at “type = org.eclipse.swt.SWT.VERTICAL”, and verify that these changes are reflected upon the Properties view and on the Shell container.
Verify that by default that ‘Wrap’ and ‘Pack’ are set to True, i.e. that these options are checked within the dialog.
Fill: Verify ‘Fill’ works as expected. And verify Fill with the Row Orientation is set to both HORIZONTAL and VERTICAL. Then verify that these controls can be changed in the Source view and in the Properties view.
Justify: Verify that if the justify field is true widgets in a RowLayout are spread across the available space from left to right. And verify that if the parent Composite grows wider, the extra space is distributed evenly among the widgets. The verify that if both pack and justify are true, widgets take their natural size, and the extra space is placed between the widgets in order to keep them fully justified. By default, RowLayout do not justify. And verify Justify with the Row Orientation is set to both HORIZONTAL and VERTICAL.
Then verify that these controls can be changed in the Source view and in the Properties view.
Pack: Verify that if the pack field is true, widgets in a RowLayout will take their natural size, and they will be aligned as far to the left as possible. Verify that if pack is false, widgets will fill the available space, similar to the widgets in a FillLayout. RowLayout Pack by default. And verify Wrap with the Row Orientation is set to both HORIZONTAL and VERTICAL.
Then verify that these controls can be changed in the Source view and in the Properties view.
Wrap: Verify that the wrap field controls whether or not the RowLayout will wrap widgets into the next row if there isn’t enough space in the current row. RowLayouts wrap by default. And verify Wrap with the Row Orientation is set to both HORIZONTAL and VERTICAL.
Then verify that these controls can be changed in the Source view and in the Properties view.
Verify the spacing, in pixels, of the controls in the dialog. These fields control the number of pixels between widgets (spacing) and the number of pixels between a widget and the side of the parent Composite (margin). By default, RowLayout leave 3 pixels for margins and spacing.

Select a widget and verify that these can be moved to another location on the Shell

Select a number of widgets and verify that these can be moved to another location on the Shell.
