Example usage for org.eclipse.jface.viewers ComboViewer ComboViewer

List of usage examples for org.eclipse.jface.viewers ComboViewer ComboViewer

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ComboViewer ComboViewer.

Prototype

public ComboViewer(Composite parent, int style) 

Source Link

Document

Creates a combo viewer on a newly-created combo control under the given parent.

Usage

From source file:eu.esdihumboldt.hale.ui.io.source.URLSource.java

License:Open Source License

/**
 * @see ImportSource#createControls(Composite)
 *//*from www.j a  va 2 s  .c om*/
@Override
public void createControls(Composite parent) {
    parent.setLayout(new GridLayout(3, false));

    detectImage = HALEUIPlugin.getImageDescriptor("icons/find_obj.gif").createImage();

    // source file
    sourceURL = new URLSourceURIFieldEditor("sourceURL", "Source URL:", parent) {

        @Override
        protected void onHistorySelected(URI location, IContentType contentType) {
            // select the content type associated with the recent URL
            types.setSelection(new StructuredSelection(contentType));
            updateState(false);
        }

    };
    sourceURL.setPage(getPage());

    // set content types for file field
    Collection<IOProviderDescriptor> factories = getConfiguration().getFactories();
    supportedTypes = new HashSet<IContentType>();
    for (IOProviderDescriptor factory : factories) {
        supportedTypes.addAll(factory.getSupportedTypes());
    }

    sourceURL.setContentTypes(supportedTypes);

    sourceURL.setPropertyChangeListener(new IPropertyChangeListener() {

        @Override
        public void propertyChange(PropertyChangeEvent event) {
            if (event.getProperty().equals(FieldEditor.IS_VALID)) {
                getPage().setMessage(null);
                updateState(false);
            } else if (event.getProperty().equals(FieldEditor.VALUE)) {
                getPage().setMessage(null);
                updateState(false);
            }
        }
    });

    // content type selection

    // label
    Label typesLabel = new Label(parent, SWT.NONE);
    typesLabel.setText("Content type");

    // types combo
    Composite group = new Composite(parent, SWT.NONE);
    group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
    group.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create());

    types = new ComboViewer(group, SWT.DROP_DOWN | SWT.READ_ONLY);
    types.getControl().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    types.setContentProvider(ArrayContentProvider.getInstance());
    types.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof IContentType) {
                return ((IContentType) element).getName();
            }
            return super.getText(element);
        }

    });
    types.setInput(supportedTypes);

    // process selection changes
    types.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            updateState(true);
        }
    });

    // detect button
    detect = new Button(group, SWT.PUSH);
    detect.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
    detect.setText("Detect");
    detect.setImage(detectImage);
    detect.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            runDetectContentType();
        }
    });

    // provider selection

    // label
    Label providerLabel = new Label(parent, SWT.NONE);
    providerLabel.setText("Import as");

    // create provider combo
    ComboViewer providers = createProviders(parent);
    providers.getControl().setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false, 2, 1));

    // initial state update
    updateState(true);
}

From source file:eu.esdihumboldt.hale.ui.io.target.URLTarget.java

License:Open Source License

/**
 * @see eu.esdihumboldt.hale.ui.io.ExportTarget#createControls(org.eclipse.swt.widgets.Composite)
 *//*from   w  w w  . j  a  v  a 2s.com*/
@Override
public void createControls(Composite parent) {
    parent.setLayout(new GridLayout(3, false));

    // source file
    targetURL = new URLTargetURIFieldEditor("targetURL", "Target URL", parent) {

        @Override
        protected void onHistorySelected(URI location) {
            updateState();
        }

    };
    targetURL.setPage(getPage());

    targetURL.setPropertyChangeListener(new IPropertyChangeListener() {

        @Override
        public void propertyChange(PropertyChangeEvent event) {
            if (event.getProperty().equals(FieldEditor.IS_VALID)) {
                getPage().setMessage(null);
                updateState();
            } else if (event.getProperty().equals(FieldEditor.VALUE)) {
                getPage().setMessage(null);
                updateState();
            }
        }
    });

    // content type selection

    // label
    Label typesLabel = new Label(parent, SWT.NONE);
    typesLabel.setText("Content type");

    // types combo
    Composite group = new Composite(parent, SWT.NONE);
    group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
    group.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create());

    types = new ComboViewer(group, SWT.DROP_DOWN | SWT.READ_ONLY);
    types.getControl().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    types.setContentProvider(ArrayContentProvider.getInstance());
    types.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof IContentType) {
                return ((IContentType) element).getName();
            }
            return super.getText(element);
        }

    });

    // process selection changes
    types.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            // update content type
            ISelection sel = event.getSelection();
            if (sel.isEmpty() || !(sel instanceof IStructuredSelection)) {
                setContentType(null);
            } else {
                setContentType((IContentType) ((IStructuredSelection) sel).getFirstElement());
            }
        }
    });
}

From source file:eu.esdihumboldt.hale.ui.views.properties.cell.explanation.CellPrioritySection.java

License:Open Source License

@Override
public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
    super.createControls(parent, aTabbedPropertySheetPage);

    Composite page = getWidgetFactory().createComposite(parent);
    page.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).margins(8, 8).create());

    CLabel namespaceLabel = getWidgetFactory().createCLabel(page, Cell.PROPERTY_PRIORITY);
    namespaceLabel.setLayoutData(GridDataFactory.fillDefaults().create());

    comboViewer = new ComboViewer(page, SWT.READ_ONLY | SWT.FLAT | SWT.BORDER);
    comboViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    comboViewer.setContentProvider(EnumContentProvider.getInstance());
    comboViewer.setInput(Priority.class);
    comboViewer.addSelectionChangedListener(this);

}

From source file:eu.numberfour.n4js.n4mf.ui.wizard.N4MFWizardNewProjectCreationPage.java

License:Open Source License

@Override
public void createControl(final Composite parent) {
    super.createControl(parent); // We need to create the UI controls from the parent class.

    final Composite control = (Composite) getControl();
    control.setLayout(GridLayoutFactory.fillDefaults().create());
    control.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

    final DataBindingContext dbc = new DataBindingContext();
    control.addDisposeListener(e -> dbc.dispose());

    final ComboViewer projectType = new ComboViewer(control, READ_ONLY);
    projectType.setLabelProvider(new ProjectTypeLabelProvider());
    projectType.setContentProvider(ArrayContentProvider.getInstance());
    projectType.getControl().setLayoutData(fillDefaults().grab(true, false).create());
    projectType.setInput(ProjectType.values());

    // A composite to hold the changing UI component (additional library project options / additional test project
    // options)/*  w w  w . j  ava2  s . co m*/
    final Composite changingComposite = new Composite(control, NONE);
    StackLayout changingStackLayout = new StackLayout();
    changingComposite.setLayout(changingStackLayout);
    changingComposite.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

    Composite defaultOptions = initDefaultOptionsUI(dbc, changingComposite);
    Composite libraryProjectOptionsGroup = initLibraryOptionsUI(dbc, changingComposite);
    Composite testProjectOptionsGroup = initTestProjectUI(dbc, changingComposite);

    initProjectTypeBinding(dbc, projectType);

    // Configure stack layout to show advanced options
    projectType.addPostSelectionChangedListener(e -> {
        switch (projectInfo.getProjectType()) {
        case LIBRARY:
            changingStackLayout.topControl = libraryProjectOptionsGroup;
            break;
        case TEST:
            changingStackLayout.topControl = testProjectOptionsGroup;
            break;
        default:
            changingStackLayout.topControl = defaultOptions;
        }
        changingComposite.layout(true);
        setPageComplete(validatePage());
    });

    // IDs from: org.eclipse.jdt.internal.ui.workingsets.IWorkingSetIDs.class
    createWorkingSetGroup((Composite) getControl(), null,
            new String[] { "org.eclipse.ui.resourceWorkingSetPage", "org.eclipse.jdt.ui.JavaWorkingSetPage",
                    "org.eclipse.jdt.internal.ui.OthersWorkingSet" }); // $NON-NLS-1$
    Dialog.applyDialogFont(getControl());

    dbc.updateTargets();

    setControl(control);
}

From source file:fr.inria.atlanmod.neoemf.eclipse.ui.wizard.SelectBlueprintsGraphTypeWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    initializeDialogUnits(parent);//from w  ww.j a  v  a2s  .  c o  m

    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(2, false));
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    Label typeLabel = new Label(composite, SWT.NONE);
    typeLabel.setText("Graph type:");

    comboViewer = new ComboViewer(composite, SWT.READ_ONLY);
    comboViewer.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
    comboViewer.setContentProvider(new ArrayContentProvider());
    comboViewer.setInput(GRAPH_TYPES);

    Label properties = new Label(composite, SWT.NONE);
    properties.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false, 2, 1));
    properties.setText("Additional properties:");

    Composite tableComposite = new Composite(composite, SWT.NONE);
    tableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    GridLayout tableLayout = new GridLayout(2, false);
    tableLayout.marginWidth = 0;
    tableLayout.marginHeight = 0;
    tableComposite.setLayout(tableLayout);

    Composite tableLayoutComposite = new Composite(tableComposite, SWT.NONE);
    tableLayoutComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tableLayoutComposite.setLayout(tableColumnLayout);

    tableViewer = new TableViewer(tableLayoutComposite, SWT.FULL_SELECTION | SWT.BORDER);
    tableViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    tableViewer.getTable().setHeaderVisible(true);
    tableViewer.getTable().setLinesVisible(true);

    createColumns();
    tableColumnLayout.setColumnData(tableViewer.getTable().getColumn(0), new ColumnWeightData(20, 200, true));
    tableColumnLayout.setColumnData(tableViewer.getTable().getColumn(1), new ColumnWeightData(20, 200, true));

    tableViewer.setContentProvider(new ArrayContentProvider());
    tableViewer.setInput(graphProperties);
    tableViewer.addSelectionChangedListener(event -> removeButton.setEnabled(!event.getSelection().isEmpty()));

    Composite buttonsComposite = new Composite(tableComposite, SWT.NONE);
    buttonsComposite.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, false, false));
    buttonsComposite.setLayout(new FillLayout(SWT.VERTICAL));

    addButton = new Button(buttonsComposite, SWT.PUSH);
    addButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ADD));
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            graphProperties.add(new GraphProperty("new.property.name", "value"));
            tableViewer.refresh();
        }
    });

    removeButton = new Button(buttonsComposite, SWT.PUSH);
    removeButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ETOOL_DELETE));
    removeButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection selection = IStructuredSelection.class.cast(tableViewer.getSelection());
            if (!selection.isEmpty()) {
                GraphProperty selectedElement = GraphProperty.class.cast(selection.getFirstElement());
                graphProperties.remove(selectedElement);
                tableViewer.refresh();
            }
        }
    });
    removeButton.setEnabled(false);

    configureDefaultValues();
    setErrorMessage(null);
    setMessage(null);
    setControl(composite);
}

From source file:fr.inria.atlanmod.neoemf.eclipse.ui.wizards.SelectBlueprintsGraphTypeWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    initializeDialogUnits(parent);/*from   w w  w . jav  a 2s  .co  m*/

    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(2, false));
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    Label typeLabel = new Label(composite, SWT.NONE);
    typeLabel.setText("Graph type:");

    comboViewer = new ComboViewer(composite, SWT.READ_ONLY);
    comboViewer.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
    comboViewer.setContentProvider(new ArrayContentProvider());
    comboViewer.setInput(GRAPH_TYPES);

    Label properties = new Label(composite, SWT.NONE);
    properties.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false, 2, 1));
    properties.setText("Additional properties:");

    Composite tableComposite = new Composite(composite, SWT.NONE);
    tableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    GridLayout tableLayout = new GridLayout(2, false);
    tableLayout.marginWidth = 0;
    tableLayout.marginHeight = 0;
    tableComposite.setLayout(tableLayout);

    Composite tableLayoutComposite = new Composite(tableComposite, SWT.NONE);
    tableLayoutComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tableLayoutComposite.setLayout(tableColumnLayout);

    tableViewer = new TableViewer(tableLayoutComposite, SWT.FULL_SELECTION | SWT.BORDER);
    tableViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    tableViewer.getTable().setHeaderVisible(true);
    tableViewer.getTable().setLinesVisible(true);

    createColumns();
    tableColumnLayout.setColumnData(tableViewer.getTable().getColumn(0), new ColumnWeightData(20, 200, true));
    tableColumnLayout.setColumnData(tableViewer.getTable().getColumn(1), new ColumnWeightData(20, 200, true));

    tableViewer.setContentProvider(new ArrayContentProvider());
    tableViewer.setInput(graphProperties);
    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            removeButton.setEnabled(!event.getSelection().isEmpty());
        }
    });

    Composite buttonsComposite = new Composite(tableComposite, SWT.NONE);
    buttonsComposite.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, false, false));
    buttonsComposite.setLayout(new FillLayout(SWT.VERTICAL));

    addButton = new Button(buttonsComposite, SWT.PUSH);
    addButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ADD));
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            graphProperties.add(new GraphProperty("new.property.name", "value"));
            tableViewer.refresh();
        }
    });

    removeButton = new Button(buttonsComposite, SWT.PUSH);
    removeButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ETOOL_DELETE));
    removeButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
            if (!selection.isEmpty()) {
                graphProperties.remove(selection.getFirstElement());
                tableViewer.refresh();
            }
        }
    });
    removeButton.setEnabled(false);

    configureDefaultValues();
    setErrorMessage(null);
    setMessage(null);
    setControl(composite);
}

From source file:fr.obeo.dsl.designer.documentation.generator.ui.internal.DocumentationGeneratorDialog.java

License:Open Source License

/**
 * Create contents of the dialog.//  w w  w . j  av  a2  s.c  o  m
 * 
 * @param parent
 */
@Override
protected Control createDialogArea(Composite parent) {
    Composite container = (Composite) super.createDialogArea(parent);
    container.setLayout(new GridLayout(4, false));

    //      Label lblToDirectory = new Label(container, SWT.NONE);
    //      lblToDirectory.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    //      lblToDirectory.setText("To directory :");
    //
    //      comboDirectory = new Combo(container, SWT.NONE);
    //      comboDirectory.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    //      initComboDirectory();
    //      comboDirectory.addModifyListener(new ModifyListener() {
    //         public void modifyText(ModifyEvent e) {
    //            validateDirectory(comboDirectory.getText());
    //         }
    //      });
    //
    //      Button btnBrowse = new Button(container, SWT.NONE);
    //      btnBrowse.setText("Browse...");
    //      btnBrowse.addSelectionListener(new SelectionAdapter() {
    //         @Override
    //         public void widgetSelected(SelectionEvent e) {
    //            handleBrowseButtonPressed();
    //         }
    //      });

    generatorComboViewer = new ComboViewer(container, SWT.NONE);
    generatorComboViewer.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    generatorComboViewer.setContentProvider(new ArrayContentProvider());
    generatorComboViewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            return ((IDocumentationGeneratorDescriptor) element).getLabel();
        }
    });
    ArrayList<IDocumentationGeneratorDescriptor> templatesList = Lists.newArrayList(templates);
    generatorComboViewer.setInput(templatesList);

    renderComboviewer = new ComboViewer(container, SWT.NONE);
    Composite composite = SWTUtil.createCompositeHorizontalFill(container, 2, false);
    renderComboviewer.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    renderComboviewer.setContentProvider(new ArrayContentProvider());
    renderComboviewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            return ((IDocumentationRendererDescriptor) element).getLabel();
        }
    });
    if (!templatesList.isEmpty()) {
        // TODO improve this
        IDocumentationGeneratorDescriptor defaultGen = templatesList.get(0);
        generatorComboViewer.setSelection(new StructuredSelection(defaultGen));
        setRenderComboInput(defaultGen);
    }

    ((GridData) composite.getLayoutData()).horizontalSpan = 4;
    lblImageErrorMessage = SWTUtil.createLabel(composite, errorImage);
    lblImageErrorMessage.setVisible(false);
    lblErrorMessage = SWTUtil.createLabel(composite, "");
    lblErrorMessage.setVisible(false);

    return container;
}

From source file:fr.opensagres.mongodb.ide.ui.wizards.AbstractSelectServerWizardPage.java

License:Open Source License

protected void createUIContent(Composite container) {

    // Display list of server.
    Label serverLabel = new Label(container, SWT.NONE);
    serverLabel.setText(Messages.server_label);
    serverViewer = new ComboViewer(container, SWT.BORDER | SWT.READ_ONLY);
    serverViewer.setLabelProvider(ServerLabelProvider.getInstance());
    serverViewer.setContentProvider(ServerContentProvider.getInstance());
    serverViewer.setInput(Platform.getServerManager().getServers());
    serverViewer.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    serverViewer.getCombo().addSelectionListener(new SelectionAdapter() {
        @Override/*  w ww.  ja va 2  s.  co  m*/
        public void widgetSelected(SelectionEvent e) {
            serverChanged();
        }

    });
}

From source file:fr.sc.crator.application.ui.dialog.CRAConfiguringDialog.java

License:Open Source License

/**
 * {@inheritDoc}// ww w  .  ja va 2 s. co m
 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
 */
@Override
protected Control createDialogArea(Composite parent) {
    Composite container = new Composite(parent, SWT.NONE);
    container.setLayout(new GridLayout(2, true));
    container.setLayoutData(new GridData(GridData.FILL_BOTH));

    /* selector */
    Composite selector = new Composite(container, SWT.NONE);
    selector.setLayout(new GridLayout(1, false));
    selector.setLayoutData(new GridData(GridData.FILL_BOTH));
    craSelector = new ComboViewer(selector, SWT.DROP_DOWN);
    craSelector.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    craSelector.setContentProvider(new ArrayContentProvider());
    craSelector.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
    craSelector.setInput(input);
    craSelector.addSelectionChangedListener(getViewerSynchronizer());
    daySelector = new ListViewer(selector);
    daySelector.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
    daySelector.setContentProvider(new ArrayContentProvider());
    daySelector.setLabelProvider(new LabelProvider() {

        /**
         * {@inheritDoc}
         * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
         */
        @Override
        public String getText(Object element) {
            if (element.equals(2)) {
                return "Monday";
            } else if (element.equals(3)) {
                return "Tuesday";
            } else if (element.equals(4)) {
                return "Wednesday";
            } else if (element.equals(5)) {
                return "Thursday";
            } else if (element.equals(6)) {
                return "Friday";
            }
            return super.getText(element);
        }

    });
    List<Integer> days = Lists.newArrayList(2, 3, 4, 5, 6);
    daySelector.setInput(days);
    daySelector.addSelectionChangedListener(getViewerSynchronizer());

    /* EEF Viewer */
    viewer = new EEFViewer(container, SWT.NONE);
    viewer.setLayoutData(new GridData(GridData.FILL_BOTH));
    viewer.setContentProvider(new EEFContentProvider());
    return container;
}

From source file:fr.univnantes.termsuite.ui.dialogs.ConfigureTaggerDialog.java

@Override
protected Control createDialogArea(final Composite parent) {
    Composite container = (Composite) super.createDialogArea(parent);
    DataBindingContext dbc = new DataBindingContext();
    FormToolkit toolkit = new FormToolkit(container.getDisplay());
    form = toolkit.createScrolledForm(container);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(container);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(form);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(form.getBody());
    form.getBody().setLayout(new GridLayout());
    //       GridLayoutFactory.fillDefaults().margins(10,  10).numColumns(2).applyTo(form.getBody());
    Section helpSection = toolkit.createSection(form.getBody(), SWT.None);
    helpSection.setText("Help");
    helpSection.setExpanded(true);//from   ww  w  . j  a  v a2s  .  co m
    GridDataFactory.fillDefaults().grab(true, true).applyTo(helpSection);

    Section configureSection = toolkit.createSection(form.getBody(), Section.TITLE_BAR);
    configureSection.setText("Configure");
    configureSection.setExpanded(true);
    GridDataFactory.fillDefaults().grab(false, false).span(1, 1).applyTo(configureSection);

    Section errorSection = toolkit.createSection(form.getBody(), SWT.None);
    errorSection.setText("Status");
    errorSection.setExpanded(true);
    toolkit.decorateFormHeading(form.getForm());
    toolkit.paintBordersFor(form.getBody());
    GridDataFactory.fillDefaults().grab(false, false).span(1, 1).applyTo(errorSection);

    // Explaination notice
    Composite helpSectionClient = toolkit.createComposite(helpSection);
    helpSection.setClient(helpSectionClient);
    helpSectionClient.setLayout(new GridLayout());
    FormText notice = toolkit.createFormText(helpSectionClient, true);
    GridDataFactory.fillDefaults().hint(400, SWT.DEFAULT).applyTo(notice);
    //       notice.setLayoutData(new TableWrapData(TableWrapData.FILL));
    //      GridDataFactory.fillDefaults().grab(false, false).span(2, 1).applyTo(notice);
    StringBuffer buf = new StringBuffer();
    buf.append("<form>");
    buf.append(
            "<p>Due to license concerns, you need to install a 3rd party POS tagger to your computer. You need to have at least one of the two currently supported taggers installed:</p>");
    buf.append(
            "<li>1. Tree Tagger (recommended) - download TreeTagger and its languages models. See official installation <a href=\"tt\">intructions</a></li>");
    buf.append(
            "<li>2. Mate - download <a href=\"mate\">mate language models</a> (Mate's algorithm is already embedded in TermSuite) </li>");
    buf.append(
            "<p>Once installed, pay a special attention to TermSuite's naming convention for TreeTagger and Mate models.</p>");
    buf.append(
            "<p>For detailed information about 3rd party tagger installation, read TermSuite's official documentation on <a href=\"doc\">installing 3rd party tagger (and lemmatizer)</a></p>");
    buf.append("</form>");
    notice.setText(buf.toString(), true, false);
    FormTextUtil.bindToExternalLink(notice, "doc", TermSuiteUI.WEB_SITE_TAGGER_DOC_URL);
    FormTextUtil.bindToExternalLink(notice, "tt", TermSuiteUI.URL_TREE_TAGGER);
    FormTextUtil.bindToExternalLink(notice, "mate", TermSuiteUI.URL_MATE);

    Composite configureSectionClient = toolkit.createComposite(configureSection);
    configureSection.setClient(configureSectionClient);
    GridLayoutFactory.fillDefaults().margins(10, 10).numColumns(2).applyTo(configureSectionClient);
    // Tagger type
    toolkit.createLabel(configureSectionClient, "3rd party tagger:");
    ComboViewer taggerComboViewer = new ComboViewer(configureSectionClient, SWT.DROP_DOWN);
    //      toolkit.adapt(taggerComboViewer.getControl(), true, true);
    taggerComboViewer.setContentProvider(ArrayContentProvider.getInstance());
    taggerComboViewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            ETagger tagger = (ETagger) element;
            return TaggerUtil.getTaggerName(tagger);
        };
    });
    taggerComboViewer.setInput(ETagger.VALUES);
    dbc.bindValue(ViewerProperties.singleSelection().observe(taggerComboViewer), EMFProperties
            .value(TermsuiteuiPackage.Literals.ETAGGER_CONFIG__TAGGER_TYPE).observe(this.taggerConfig));

    // Tagger path
    toolkit.createLabel(configureSectionClient, "Path to tagger's installation directory:");
    BrowseDirText taggerPath = new BrowseDirText(configureSectionClient, SWT.NONE);
    toolkit.adapt(taggerPath, true, true);

    GridDataFactory.fillDefaults().grab(true, false).applyTo(taggerPath);
    dbc.bindValue(new BrowseDirText.TextValueProperty().observe(taggerPath),
            EMFProperties.value(TermsuiteuiPackage.Literals.ETAGGER_CONFIG__PATH).observe(this.taggerConfig));

    Composite errorSectionClient = toolkit.createComposite(errorSection);
    errorSection.setClient(errorSectionClient);
    GridLayoutFactory.fillDefaults().margins(10, 10).numColumns(2).applyTo(errorSectionClient);

    GridLayoutFactory.fillDefaults().margins(10, 10).numColumns(2).applyTo(errorSection);
    // Language viewer
    languageLabel = toolkit.createLabel(errorSectionClient,
            "Languages supported by your current tagger's installation:");
    GridDataFactory.fillDefaults().minSize(0, 20).grab(true, true).span(2, 1).applyTo(languageLabel);
    languageViewer = new TableViewer(errorSectionClient, SWT.BORDER);
    GridDataFactory.fillDefaults().minSize(0, 100).grab(true, true).span(2, 1)
            .applyTo(languageViewer.getControl());
    languageViewer.setContentProvider(new ArrayContentProvider());
    TableViewerColumn column1 = new TableViewerColumn(languageViewer, SWT.LEFT);
    column1.getColumn().setWidth(200);
    column1.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return LangUtil.getTermsuiteLang((ELang) element).getName();
        }

        @Override
        public Image getImage(Object element) {
            Image flag = TermsuiteImg.INSTANCE.getFlag((ELang) element);
            return flag;
        }
    });
    toolkit.adapt(languageViewer.getControl(), true, true);

    dbc.updateTargets();
    updateTaggerName();
    return form.getBody();
}