예제 #1
0
  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;
  }