@Override
  protected void createClient(Composite parent) {
    FlatFormData data;

    Composite composite = parentComposite = createFlatFormComposite(parent);
    Label description =
        getWidgetFactory()
            .createLabel(
                composite, "Declare a variable that is in scope only for this structured activity");
    data = new FlatFormData();
    data.left = new FlatFormAttachment(0, 0);
    data.top = new FlatFormAttachment(0, IDetailsAreaConstants.VSPACE);
    description.setLayoutData(data);

    Label nameLabel = getWidgetFactory().createLabel(composite, "Variable Name:");

    variableName = fWidgetFactory.createText(composite, EMPTY_STRING);
    data = new FlatFormData();
    data.left =
        new FlatFormAttachment(
            0, BPELUtil.calculateLabelWidth(nameLabel, STANDARD_LABEL_WIDTH_AVG));
    data.right = new FlatFormAttachment(100, (-2) * IDetailsAreaConstants.HSPACE);
    data.top = new FlatFormAttachment(description, 10, SWT.LEFT);
    variableName.setLayoutData(data);

    data = new FlatFormData();
    data.left = new FlatFormAttachment(0, 0);
    data.right = new FlatFormAttachment(variableName, -IDetailsAreaConstants.HSPACE);
    data.top = new FlatFormAttachment(variableName, 0, SWT.CENTER);
    nameLabel.setLayoutData(data);

    variableTypeSelector =
        new VariableTypeSelector(
            composite, SWT.NONE, getBPELEditor(), fWidgetFactory, new VariableTypeCallback());
    data = new FlatFormData();
    data.top = new FlatFormAttachment(nameLabel, 0, SWT.LEFT);
    data.left = new FlatFormAttachment(0, 0);
    data.right = new FlatFormAttachment(100, 0);
    data.bottom = new FlatFormAttachment(100, 0);
    variableTypeSelector.setLayoutData(data);

    createChangeTrackers();
  }
 public void updateVariableTypeSelector() {
   if (getActivity() != null) {
     Variable variable = getActivity().getVariable();
     variableTypeSelector.setVariable(variable);
   }
 }