Source:
protected Control createSWTControl(Composite parent) throws DatabindingFailedException { final IObservableValue observableValue = getEMFFormsDatabinding() .getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel()); final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType(); final EObject eObject = (EObject) ((IObserving) observableValue).getObserved(); observableValue.dispose(); int numColumns = 1 + getNumButtons(); if (structuralFeature.isUnsettable()) { numColumns++; } final Composite composite = new Composite(parent, SWT.NONE); composite.setBackground(parent.getBackground()); GridLayoutFactory.fillDefaults().numColumns(numColumns).spacing(0, 0).equalWidth(false).applyTo(composite); GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.BEGINNING).applyTo(composite); mainComposite = new Composite(composite, SWT.NONE); mainComposite.setBackground(parent.getBackground()); GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).applyTo(mainComposite); stackLayout = new StackLayout(); mainComposite.setLayout(stackLayout); unsetLabel = new Label(mainComposite, SWT.NONE); unsetLabel.setText(getLocalizedString(MessageKeys.LinkControl_NotSet)); unsetLabel.setBackground(mainComposite.getBackground()); unsetLabel.setForeground(composite.getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY)); unsetLabel.setAlignment(SWT.CENTER); linkComposite = new Composite(mainComposite, SWT.NONE); GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(linkComposite); linkComposite.setBackground(mainComposite.getBackground()); createHyperlink(); GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).applyTo(linkComposite); if (eObject.eIsSet(structuralFeature)) { stackLayout.topControl = linkComposite; } else { stackLayout.topControl = unsetLabel; } createButtons(composite); return composite; }

Target:
protected Control createSWTControl(Composite parent) throws DatabindingFailedException { final IObservableValue observableValue = getEMFFormsDatabinding() .getObservableValue(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel()); final EStructuralFeature structuralFeature = (EStructuralFeature) observableValue.getValueType(); final EObject eObject = (EObject) ((IObserving) observableValue).getObserved(); observableValue.dispose(); final int numColumns = 1 + getNumButtons(); final Composite composite = new Composite(parent, SWT.NONE); composite.setBackground(parent.getBackground()); GridLayoutFactory.fillDefaults().numColumns(numColumns).spacing(0, 0).equalWidth(false).applyTo(composite); GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.BEGINNING).applyTo(composite); mainComposite = new Composite(composite, SWT.NONE); mainComposite.setBackground(parent.getBackground()); GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).applyTo(mainComposite); stackLayout = new StackLayout(); mainComposite.setLayout(stackLayout); unsetLabel = new Label(mainComposite, SWT.CENTER); unsetLabel.setText(getLocalizedString(MessageKeys.LinkControl_NotSet)); unsetLabel.setBackground(mainComposite.getBackground()); unsetLabel.setForeground(composite.getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY)); unsetLabel.setAlignment(SWT.CENTER); linkComposite = new Composite(mainComposite, SWT.NONE); GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(linkComposite); linkComposite.setBackground(mainComposite.getBackground()); createHyperlink(); GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).applyTo(linkComposite); if (eObject.eIsSet(structuralFeature)) { stackLayout.topControl = linkComposite; } else { stackLayout.topControl = unsetLabel; } createButtons(composite); return composite; }