Example usage for org.eclipse.jface.databinding.swt SWTObservables observeText

List of usage examples for org.eclipse.jface.databinding.swt SWTObservables observeText

Introduction

In this page you can find the example usage for org.eclipse.jface.databinding.swt SWTObservables observeText.

Prototype

@Deprecated
public static ISWTObservableValue observeText(Control control, int event) 

Source Link

Document

Returns an observable observing the text attribute of the provided control.

Usage

From source file:org.bonitasoft.studio.expression.editor.viewer.PatternExpressionViewer.java

License:Open Source License

protected void bindPatternExpression() {
    UpdateValueStrategy startegy = new UpdateValueStrategy();
    if (mandatoryFieldLabel != null) {
        startegy.setAfterConvertValidator(new EmptyInputValidator(mandatoryFieldLabel));
    }//from   w  w  w  .ja va2s.  c om
    if (patternBinding != null) {
        patternBinding.dispose();
        patternBinding = null;
    }
    expression.getReferencedElements().clear();
    patternBinding = context.bindValue(SWTObservables.observeText(viewer.getTextWidget(), SWT.Modify),
            EMFObservables.observeValue(expression, ExpressionPackage.Literals.EXPRESSION__CONTENT), startegy,
            null);
}

From source file:org.bonitasoft.studio.expression.editor.viewer.PatternExpressionViewer.java

License:Open Source License

protected void createTextViewer() {
    viewer = createViewer(mc);//from  ww w.  jav a  2s. c  om
    viewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    configureTextViewer();

    helpDecoration = new ControlDecoration(viewer.getControl(), SWT.TOP | SWT.RIGHT, this);
    helpDecoration.setImage(JFaceResources.getImage(Dialog.DLG_IMG_HELP));
    helpDecoration.setDescriptionText(Messages.patternViewerHelp);
    helpDecoration.setMarginWidth(2);
    helpDecoration.hide();

    hintDecoration = new ControlDecoration(viewer.getControl(), SWT.TOP | SWT.LEFT, this);
    hintDecoration.setImage(Pics.getImage(PicsConstants.hint));
    hintDecoration.setMarginWidth(2);
    hintDecoration.setShowHover(true);
    hintDecoration.setShowOnlyOnFocus(true);
    hintDecoration.hide();

    viewer.addTextListener(new ITextListener() {

        @Override
        public void textChanged(TextEvent event) {
            viewer.getTextWidget().notifyListeners(SWT.Modify, new Event());
        }
    });

    contentAssisProcessor = new ExpressionContentAssistProcessor(viewer.getDocument());
    final ContentAssistant assistant = new ContentAssistant();
    assistant.setContentAssistProcessor(contentAssisProcessor, IDocument.DEFAULT_CONTENT_TYPE);
    assistant.setShowEmptyList(true);
    assistant.enableAutoActivation(true);
    assistant.install(viewer);

    viewer.getTextWidget().addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {

            switch (e.keyCode) {
            case SWT.F1:
                assistant.showPossibleCompletions();
                break;
            default:
                //ignore everything else
            }
        }

        @Override
        public void keyReleased(KeyEvent e) {
            if ((e.stateMask == SWT.CTRL || e.stateMask == SWT.COMMAND) && e.keyCode == SWT.SPACE) {
                assistant.showPossibleCompletions();
            }
        }
    });

    ISWTObservableValue observable = SWTObservables.observeDelayedValue(400,
            SWTObservables.observeText(getTextControl(), SWT.Modify));
    observable.addValueChangeListener(new IValueChangeListener() {

        @Override
        public void handleValueChange(ValueChangeEvent event) {
            if (!expressionMode()) {
                updateExpressionDependencies();
            }
        }
    });

    helpDecoration.show();
}

From source file:org.bonitasoft.studio.groovy.ui.dialog.TestGroovyScriptDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    final Composite mainComposite = (Composite) super.createDialogArea(parent);
    mainComposite.setLayoutData(GridDataFactory.fillDefaults().hint(400, SWT.DEFAULT).create());
    mainComposite/* w w w  . j  ava  2s  .  c  om*/
            .setLayout(GridLayoutFactory.fillDefaults().extendedMargins(15, 15, 10, 0).spacing(0, 15).create());
    final Label descriptionLabel = new Label(mainComposite, SWT.WRAP);
    descriptionLabel.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    descriptionLabel.setText(Messages.testGroovyScriptDialogDescription);
    final Map<String, Serializable> procVariables = getProcessVariables(variables);
    final Map<String, Serializable> unknownVariables = getUnknownVariables(variables);

    if (!procVariables.isEmpty()) {
        createVariableGroup(mainComposite, Messages.processVariableLabel, procVariables);
    }

    if (!unknownVariables.isEmpty()) {
        createVariableGroup(mainComposite, Messages.unknownVariableLabel, unknownVariables);
    }

    final Composite buttonComposite = new Composite(mainComposite, SWT.NONE);
    buttonComposite
            .setLayoutData(GridDataFactory.fillDefaults().grab(false, false).align(SWT.END, SWT.FILL).create());
    buttonComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create());

    final Button closeButton = new Button(buttonComposite, SWT.PUSH);
    closeButton.setLayoutData(GridDataFactory.fillDefaults().hint(100, SWT.DEFAULT).create());
    closeButton.setText(IDialogConstants.CLOSE_LABEL);
    closeButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            close();
        }
    });

    final Button testButton = new Button(buttonComposite, SWT.PUSH);
    testButton.setLayoutData(GridDataFactory.fillDefaults().hint(100, SWT.DEFAULT).create());
    testButton.setText(Messages.testButtonLabel);
    testButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            try {
                ManageConnectorJarDialog mcjd = new ManageConnectorJarDialog(
                        Display.getDefault().getActiveShell());
                int retCode = mcjd.open();
                if (retCode == Window.OK) {
                    TestGroovyScriptUtil.evaluateExpression(unit.getSource(), returnType,
                            TestGroovyScriptUtil.getVariableValues(unit, nodes, widgetMap),
                            mcjd.getSelectedJars());
                }
            } catch (JavaModelException e1) {
                BonitaStudioLog.error(e1);
            }
        }
    });

    DataBindingContext dbc = new DataBindingContext();
    for (Entry<Label, Control> entry : widgetMap.entrySet()) {
        final UpdateValueStrategy strategy = new UpdateValueStrategy();
        //strategy.setAfterGetValidator(new EmptyInputValidator(entry.getKey().getText()));
        strategy.setConverter(new Converter(String.class, Boolean.class) {

            @Override
            public Object convert(Object fromObject) {
                if (fromObject == null || fromObject.toString().isEmpty()) {
                    return false;
                }
                return allWidgetFilled();
            }

        });
        dbc.bindValue(SWTObservables.observeEnabled(testButton),
                SWTObservables.observeText(entry.getValue(), SWT.Modify),
                new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), strategy);
    }
    return mainComposite;
}

From source file:org.bonitasoft.studio.groovy.ui.providers.GroovyScriptExpressionEditor.java

License:Open Source License

@Override
public void bindExpression(EMFDataBindingContext dataBindingContext, final EObject context,
        Expression inputExpression, ViewerFilter[] filters, final ExpressionViewer viewer) {
    this.inputExpression = inputExpression;
    this.context = context;

    IObservableValue dependenciesModelObservable = EMFObservables.observeValue(inputExpression,
            ExpressionPackage.Literals.EXPRESSION__REFERENCED_ELEMENTS);
    IObservableValue autoDepsModelObservable = EMFObservables.observeValue(inputExpression,
            ExpressionPackage.Literals.EXPRESSION__AUTOMATIC_DEPENDENCIES);

    inputExpression.setType(ExpressionConstants.SCRIPT_TYPE);
    inputExpression.setInterpreter(ExpressionConstants.GROOVY);

    groovyViewer.setContext(context, filters, viewer.getExpressionNatureProvider());
    nodes = groovyViewer.getFieldNodes();

    if (context == null && nodes == null) {
        dataCombo.add(Messages.noProcessVariableAvailable);
        dataCombo.getTableCombo().setText(Messages.noProcessVariableAvailable);
        dataCombo.getTableCombo().setEnabled(false);
    } else if (nodes != null) {
        dataCombo.setInput(nodes);//from   w w w.  j  ava2 s  .c  om
        dataCombo.setSelection(new StructuredSelection(ProcessVariableContentProvider.SELECT_ENTRY));
        if (nodes.isEmpty()) {
            dataCombo.getTableCombo().setEnabled(false);
        }
    } else {
        dataCombo.setInput(groovyViewer.getFieldNodes());
        dataCombo.setSelection(new StructuredSelection(ProcessVariableContentProvider.SELECT_ENTRY));
        if (groovyViewer.getFieldNodes().isEmpty()) {
            dataCombo.getTableCombo().setEnabled(false);
        }
    }

    bonitaDataCombo.setInput(GroovyUtil.getBonitaVariables(context, filters, isPageFlowContext));
    bonitaDataCombo.setSelection(new StructuredSelection(ProcessVariableContentProvider.SELECT_ENTRY));

    dataBindingContext.bindValue(ViewersObservables.observeInput(dependenciesViewer),
            dependenciesModelObservable);

    UpdateValueStrategy opposite = new UpdateValueStrategy();
    opposite.setConverter(new Converter(Boolean.class, Boolean.class) {

        @Override
        public Object convert(Object fromObject) {
            return !((Boolean) fromObject);
        }
    });

    dataBindingContext.bindValue(SWTObservables.observeSelection(automaticResolutionButton),
            autoDepsModelObservable);
    dataBindingContext.bindValue(SWTObservables.observeSelection(automaticResolutionButton),
            SWTObservables.observeEnabled(addDependencyButton), opposite,
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER));
    depndencySection.setExpanded(!automaticResolutionButton.getSelection());

    addDependencyButton.setEnabled(!inputExpression.isAutomaticDependencies());

    dependencyJob = new ComputeScriptDependenciesJob(sourceViewer.getDocument());
    dependencyJob.setContext(context);
    this.nodes.addAll(GroovyUtil.getBonitaVariables(context, filters, isPageFlowContext));
    dependencyJob.setNodes(nodes);

    final InputLengthValidator lenghtValidator = new InputLengthValidator("", GroovyViewer.MAX_SCRIPT_LENGTH);
    String content = inputExpression.getContent();
    if (content == null) {
        content = "";
    }
    sourceViewer.getTextWidget().setText(content);
    sourceViewer.getDocument().addDocumentListener(new IDocumentListener() {

        @Override
        public void documentChanged(DocumentEvent event) {
            final String text = event.getDocument().get();
            if (lenghtValidator.validate(text).isOK()) {
                GroovyScriptExpressionEditor.this.inputExpression.setContent(text);
            }
            if (automaticResolutionButton.getSelection()) {
                dependencyJob.schedule();
            }

        }

        @Override
        public void documentAboutToBeChanged(DocumentEvent event) {
        }
    });

    dependencyJob.addJobChangeListener(new IJobChangeListener() {

        @Override
        public void sleeping(IJobChangeEvent event) {
        }

        @Override
        public void scheduled(IJobChangeEvent event) {
        }

        @Override
        public void running(IJobChangeEvent event) {
        }

        @Override
        public void done(IJobChangeEvent event) {
            if (dependencyJob != null
                    && GroovyScriptExpressionEditor.this.inputExpression.isAutomaticDependencies()) {
                List<EObject> deps = dependencyJob.getDependencies(document.get());
                GroovyScriptExpressionEditor.this.inputExpression.getReferencedElements().clear();
                if (deps != null && !deps.isEmpty()) {
                    GroovyScriptExpressionEditor.this.inputExpression.getReferencedElements().addAll(deps);
                }
            }
        }

        @Override
        public void awake(IJobChangeEvent event) {
        }

        @Override
        public void aboutToRun(IJobChangeEvent event) {
        }

    });

    final ExpressionContentProvider provider = new ExpressionContentProvider();
    provider.setContext(context);

    final Set<Expression> filteredExpressions = new HashSet<Expression>();
    Expression[] expressions = provider.getExpressions();
    EObject input = provider.getContext();
    if (expressions != null) {
        filteredExpressions.addAll(Arrays.asList(expressions));
        if (input != null && filters != null) {
            for (Expression exp : expressions) {
                for (ViewerFilter filter : filters) {
                    if (filter != null && !filter.select(groovyViewer.getSourceViewer(), input, exp)) {
                        filteredExpressions.remove(exp);
                    }
                }
            }
        }
    }

    addDependencyButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            SelectDependencyDialog dialog = new SelectDependencyDialog(Display.getDefault().getActiveShell(),
                    filteredExpressions,
                    GroovyScriptExpressionEditor.this.inputExpression.getReferencedElements());
            dialog.open();
        }
    });

    final UpdateValueStrategy evaluateStrategy = new UpdateValueStrategy();
    evaluateStrategy.setConverter(new Converter(String.class, Boolean.class) {

        @Override
        public Object convert(Object fromObject) {
            if (fromObject == null || fromObject.toString().isEmpty()) {
                return false;
            }
            return true;
        }
    });
    dataBindingContext.bindValue(SWTObservables.observeEnabled(testButton),
            SWTObservables.observeText(groovyViewer.getSourceViewer().getTextWidget(), SWT.Modify), null,
            evaluateStrategy);
}

From source file:org.bonitasoft.studio.groovy.ui.providers.GroovyScriptFileEditor.java

License:Open Source License

@Override
public void bindExpression(EMFDataBindingContext dataBindingContext, final EObject context,
        Expression inputExpression, ViewerFilter[] filters, ExpressionViewer expressionViewer) {
    this.inputExpression = inputExpression;
    this.context = context;

    IObservableValue contentModelObservable = EMFObservables.observeValue(inputExpression,
            ExpressionPackage.Literals.EXPRESSION__CONTENT);

    groovyViewer.getDocument().set(inputExpression.getContent());
    IExpressionNatureProvider natureProvider = null;
    if (expressionViewer != null) {
        natureProvider = expressionViewer.getExpressionNatureProvider();
    }//from   ww w. ja  va2  s .  com
    groovyViewer.setContext(context, filters, natureProvider);
    groovyViewer.getSourceViewer().getTextWidget().setData(BONITA_KEYWORDS_DATA_KEY, null);
    groovyViewer.getSourceViewer().getTextWidget().setData(PROCESS_VARIABLES_DATA_KEY, null);
    groovyViewer.getSourceViewer().getTextWidget().setData(CONTEXT_DATA_KEY, null);
    dataBindingContext.bindValue(SWTObservables.observeText(sourceViewer.getTextWidget(), SWT.Modify),
            contentModelObservable, new UpdateValueStrategy()
                    .setAfterGetValidator(new InputLengthValidator("", GroovyViewer.MAX_SCRIPT_LENGTH)),
            null);
    sourceViewer.addTextListener(new ITextListener() {
        @Override
        public void textChanged(TextEvent event) {
            sourceViewer.getTextWidget().notifyListeners(SWT.Modify, new Event());
        }
    });
}

From source file:org.bonitasoft.studio.parameters.expression.editor.ParameterEditor.java

License:Open Source License

@Override
public void bindExpression(final EMFDataBindingContext dataBindingContext, final EObject context,
        final Expression inputExpression, final ViewerFilter[] filters,
        final ExpressionViewer expressionViewer) {
    final EObject finalContext = context;
    addExpressionButton.addSelectionListener(new SelectionAdapter() {

        @Override/*from  w  w w .j ava  2  s  .  c  o  m*/
        public void widgetSelected(final SelectionEvent e) {
            super.widgetSelected(e);
            expressionButtonListener(finalContext);
        }
    });
    editorInputExpression = inputExpression;
    fillViewerInput(context);

    final IObservableValue contentObservable = EMFObservables.observeValue(inputExpression,
            ExpressionPackage.Literals.EXPRESSION__CONTENT);
    final IObservableValue nameObservable = EMFObservables.observeValue(inputExpression,
            ExpressionPackage.Literals.EXPRESSION__NAME);
    final IObservableValue returnTypeObservable = EMFObservables.observeValue(inputExpression,
            ExpressionPackage.Literals.EXPRESSION__RETURN_TYPE);
    final IObservableValue referenceObservable = EMFObservables.observeValue(inputExpression,
            ExpressionPackage.Literals.EXPRESSION__REFERENCED_ELEMENTS);

    final UpdateValueStrategy selectionToName = new UpdateValueStrategy();
    final IConverter nameConverter = new Converter(Parameter.class, String.class) {

        @Override
        public Object convert(final Object parameter) {
            return ((Parameter) parameter).getName();
        }

    };
    selectionToName.setConverter(nameConverter);

    final UpdateValueStrategy selectionToContent = new UpdateValueStrategy();
    final IConverter contentConverter = new Converter(Parameter.class, String.class) {

        @Override
        public Object convert(final Object parameter) {
            return ((Parameter) parameter).getName();
        }

    };
    selectionToContent.setConverter(contentConverter);

    final UpdateValueStrategy selectionToReturnType = new UpdateValueStrategy();
    final IConverter returnTypeConverter = new Converter(Parameter.class, String.class) {

        @Override
        public Object convert(final Object parameter) {
            return ((Parameter) parameter).getTypeClassname();
        }

    };
    selectionToReturnType.setConverter(returnTypeConverter);

    final UpdateValueStrategy selectionToReferencedData = new UpdateValueStrategy();
    final IConverter referenceConverter = new Converter(Parameter.class, List.class) {

        @Override
        public Object convert(final Object parameter) {
            return Collections.singletonList(parameter);
        }

    };
    selectionToReferencedData.setConverter(referenceConverter);

    final UpdateValueStrategy referencedDataToSelection = new UpdateValueStrategy();
    final IConverter referencetoDataConverter = new Converter(List.class, Parameter.class) {

        @SuppressWarnings("unchecked")
        @Override
        public Object convert(final Object parameterList) {
            if (!((List<Parameter>) parameterList).isEmpty()) {
                final Parameter p = ((List<Parameter>) parameterList).get(0);
                final Collection<Parameter> inputParameters = (Collection<Parameter>) viewer.getInput();
                for (final Parameter param : inputParameters) {
                    if (param.getName().equals(p.getName())
                            && param.getTypeClassname().equals(p.getTypeClassname())) {
                        return param;
                    }
                }
            }
            return null;
        }

    };
    referencedDataToSelection.setConverter(referencetoDataConverter);

    dataBindingContext.bindValue(ViewersObservables.observeSingleSelection(viewer), nameObservable,
            selectionToName, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER));
    dataBindingContext.bindValue(ViewersObservables.observeSingleSelection(viewer), contentObservable,
            selectionToContent, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER));
    dataBindingContext.bindValue(ViewersObservables.observeSingleSelection(viewer), returnTypeObservable,
            selectionToReturnType, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER));
    dataBindingContext.bindValue(ViewersObservables.observeSingleSelection(viewer), referenceObservable,
            selectionToReferencedData, referencedDataToSelection);
    dataBindingContext.bindValue(SWTObservables.observeText(typeText, SWT.Modify), returnTypeObservable);
}

From source file:org.bonitasoft.studio.properties.form.sections.actions.contributions.AsynchronousSuggestBoxContribution.java

License:Open Source License

protected void bindWidgets() {
    if (dataBindingContext != null) {
        dataBindingContext.dispose();/*from w ww.j  a  v  a  2  s.  c o m*/
    }
    dataBindingContext = new EMFDataBindingContext();

    IObservableValue value = EMFEditObservables.observeValue(editingDomain, suggestBox,
            FormPackage.Literals.SUGGEST_BOX__ASYNCHRONOUS);
    value.addChangeListener(new IChangeListener() {

        public void handleChange(ChangeEvent event) {
            ISection extensibleGridPropertySection = section.getTabbedPropertySheetPage().getCurrentTab()
                    .getSections()[0];
            if (extensibleGridPropertySection instanceof DataPropertySection) {
                for (IExtensibleGridPropertySectionContribution contib : ((DataPropertySection) extensibleGridPropertySection)
                        .getContributions()) {
                    if (contib instanceof AvailableValueContribution) {
                        //((MultipleValuatedFieldContribution)contib).resetCombo() ;
                    }
                }
            }
        }
    });
    ;
    dataBindingContext.bindValue(SWTObservables.observeSelection(isAsynchronousCheckbox), EMFEditObservables
            .observeValue(editingDomain, suggestBox, FormPackage.Literals.SUGGEST_BOX__ASYNCHRONOUS));
    dataBindingContext.bindValue(
            EMFEditObservables.observeValue(editingDomain, suggestBox,
                    FormPackage.Literals.SUGGEST_BOX__ASYNCHRONOUS),
            SWTObservables.observeEnabled(delayText), null,
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER));
    dataBindingContext.bindValue(SWTObservables.observeText(delayText, SWT.Modify), EMFEditObservables
            .observeValue(editingDomain, suggestBox, FormPackage.Literals.SUGGEST_BOX__DELAY));

}

From source file:org.bonitasoft.studio.properties.form.sections.actions.contributions.FileGridPropertySectionContribution.java

License:Open Source License

protected void bindResourceText() {
    if (resourceText != null && element.getInputType() == FileWidgetInputType.RESOURCE
            && !resourceText.isDisposed()) {
        dataBindingContext.bindValue(SWTObservables.observeText(resourceText, SWT.Modify), EMFEditObservables
                .observeValue(editingDomain, element, FormPackage.Literals.FILE_WIDGET__INITIAL_RESOURCE_PATH));
    }/* w ww .  j a v  a  2 s .c o  m*/
}

From source file:org.bonitasoft.studio.properties.form.sections.general.contributions.NameGridPropertySectionContribution.java

License:Open Source License

@Override
protected void createBinding(EMFDataBindingContext context) {

    Converter convertToId = new Converter(String.class, String.class) {

        public Object convert(final Object fromObject) {
            updatePropertyTabTitle();//from w  w  w  .  j  av a  2 s . c o m
            /*Update the tab of the editor if the form name change*/
            if (element instanceof Form) {
                FormDiagramEditor editor = (FormDiagramEditor) PlatformUI.getWorkbench()
                        .getActiveWorkbenchWindow().getActivePage().getActiveEditor();
                editor.setPartName(text.getText());
            }

            return fromObject;
        }
    };
    labelTargetToModelUpdate = new UpdateValueStrategy();
    labelTargetToModelUpdate.setConverter(convertToId);
    List<IValidator> validators = new ArrayList<IValidator>();
    validators.add(new GroovyReferenceValidator(Messages.name, true, false));
    validators.add(getWidgetValidator());
    MultiValidator multiValidation = new MultiValidator(validators);
    labelTargetToModelUpdate.setAfterGetValidator(multiValidation);
    labelTargetToModelUpdate.setBeforeSetValidator(new InputLengthValidator(Messages.name, 50));
    ISWTObservableValue observable = SWTObservables.observeDelayedValue(400,
            SWTObservables.observeText(text, SWT.Modify));
    ControlDecorationSupport.create(context.bindValue(observable,
            EMFEditObservables.observeValue(editingDomain, element, ProcessPackage.Literals.ELEMENT__NAME),
            labelTargetToModelUpdate, null), SWT.LEFT);
}

From source file:org.bonitasoft.studio.properties.form.sections.options.HtmlAttributesPropertySection.java

License:Open Source License

public void createControl(Composite composite, TabbedPropertySheetWidgetFactory widgetFactory,
        ExtensibleGridPropertySection extensibleGridPropertySection) {
    composite.setLayout(new GridLayout(1, false));
    composite.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    if (dataBinding != null) {
        dataBinding.dispose();//from w  ww. j  av a2  s  . c om
    }
    dataBinding = new DataBindingContext();
    Text text = widgetFactory.createText(composite, "", SWT.MULTI | SWT.BORDER);
    GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, true);
    gd.heightHint = 80;
    text.setLayoutData(gd);
    dataBinding.bindValue(SWTObservables.observeText(text, SWT.Modify), EMFEditObservables
            .observeValue(editingDomain, widget, FormPackage.Literals.WIDGET__REAL_HTML_ATTRIBUTES));

    /*Set an example beside*/
    Label example = widgetFactory.createLabel(composite, Messages.OptionsSection_HtmlAttr_example, SWT.NONE);
    example.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1));
    example.setFont(BonitaStudioFontRegistry.getCommentsFont());
}