protected String layoutBeforeChild( Control control, String labelText, String elementName, Map<String, String> attributes, Composite composite, SwtMetawidget metawidget) { // Add label if (SimpleLayoutUtils.needsLabel(labelText, elementName)) { Label label = new Label(composite, SWT.None); label.setData(NAME, attributes.get(NAME) + LABEL_NAME_SUFFIX); if (mLabelFont != null) { label.setFont(mLabelFont); } if (mLabelForeground != null) { label.setForeground(mLabelForeground); } label.setAlignment(mLabelAlignment); // Required String labelTextToUse = labelText; if (mRequiredText != null && TRUE.equals(attributes.get(REQUIRED)) && !WidgetBuilderUtils.isReadOnly(attributes) && !metawidget.isReadOnly()) { if (mRequiredAlignment == SWT.CENTER) { labelTextToUse += mRequiredText; } else if (mRequiredAlignment == SWT.LEFT) { labelTextToUse = mRequiredText + labelTextToUse; } } if (mLabelSuffix != null) { labelTextToUse += mLabelSuffix; } label.setText(labelTextToUse); GridData labelLayoutData = new GridData(); labelLayoutData.horizontalAlignment = SWT.FILL; labelLayoutData.verticalAlignment = SWT.FILL; label.setLayoutData(labelLayoutData); label.moveAbove(control); } return labelText; }