Example usage for org.eclipse.jface.viewers TableViewer getControl

List of usage examples for org.eclipse.jface.viewers TableViewer getControl

Introduction

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

Prototype

@Override
    public Control getControl() 

Source Link

Usage

From source file:org.eclipse.emf.ecp.view.internal.editor.controls.TableColumnsDMRTableControl.java

License:Open Source License

/**
 * {@inheritDoc}//from   ww w .  j  a va  2 s  . com
 *
 * @see org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer#createControl(org.eclipse.swt.widgets.Composite)
 */
@Override
protected Control createControl(final Composite parent) throws DatabindingFailedException {
    final IObservableValue observableValue = Activator.getDefault().getEMFFormsDatabinding().getObservableValue(
            getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
    structuralFeature = (EStructuralFeature) observableValue.getValueType();
    eObject = (EObject) ((IObserving) observableValue).getObserved();
    observableValue.dispose();

    final Composite composite = new Composite(parent, SWT.NONE);
    composite.setBackgroundMode(SWT.INHERIT_FORCE);
    GridLayoutFactory.fillDefaults().numColumns(1).applyTo(composite);
    final Composite titleComposite = new Composite(composite, SWT.NONE);
    titleComposite.setBackgroundMode(SWT.INHERIT_FORCE);
    GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).applyTo(titleComposite);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.BEGINNING).grab(true, false).applyTo(titleComposite);

    final Label filler = new Label(titleComposite, SWT.NONE);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(filler);

    final Composite buttonComposite = new Composite(titleComposite, SWT.NONE);
    buttonComposite.setBackgroundMode(SWT.INHERIT_FORCE);
    GridLayoutFactory.fillDefaults().numColumns(3).equalWidth(true).applyTo(buttonComposite);
    GridDataFactory.fillDefaults().align(SWT.END, SWT.BEGINNING).grab(false, false).applyTo(buttonComposite);

    final Button buttonSort = new Button(buttonComposite, SWT.PUSH);
    buttonSort.setText("Sort"); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(false, false).applyTo(buttonSort);

    final Button buttonAdd = new Button(buttonComposite, SWT.PUSH);
    buttonAdd.setText("Add"); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(false, false).applyTo(buttonAdd);

    final Button buttonRemove = new Button(buttonComposite, SWT.PUSH);
    buttonRemove.setText("Remove"); //$NON-NLS-1$
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(false, false).applyTo(buttonRemove);

    final Composite tableComposite = new Composite(composite, SWT.NONE);
    tableComposite.setBackgroundMode(SWT.INHERIT_FORCE);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).hint(1, 100)
            .applyTo(tableComposite);
    final TableColumnLayout layout = new TableColumnLayout();
    tableComposite.setLayout(layout);

    final TableViewer viewer = new TableViewer(tableComposite);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(viewer.getControl());

    viewer.getTable().setHeaderVisible(true);
    viewer.getTable().setLinesVisible(true);
    final TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
    final TableColumn tableColumn = column.getColumn();
    final EMFFormsLabelProvider emfFormsLabelProvider = Activator.getDefault().getEMFFormsLabelProvider();// TODO
    try {
        final IObservableValue labelText = emfFormsLabelProvider.getDisplayName(
                getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
        final IObservableValue tooltip = emfFormsLabelProvider.getDescription(
                getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
        viewModelDBC.bindValue(WidgetProperties.text().observe(tableColumn), labelText);
        viewModelDBC.bindValue(WidgetProperties.tooltipText().observe(tableColumn), tooltip);
    } catch (final NoLabelFoundException e) {
        // FIXME Expectations?
        getReportService().report(new RenderingFailedReport(e));
        tableColumn.setText(e.getMessage());
        tableColumn.setToolTipText(e.toString());
    }

    layout.setColumnData(column.getColumn(), new ColumnWeightData(1, true));

    viewer.setLabelProvider(labelProvider);
    viewer.setContentProvider(new ObservableListContentProvider());
    addDragAndDropSupport(viewer, getEditingDomain(eObject));

    final IObservableList list = Activator.getDefault().getEMFFormsDatabinding()
            .getObservableList(getVElement().getDomainModelReference(), getViewModelContext().getDomainModel());
    viewer.setInput(list);

    tableControl = (VTableControl) getViewModelContext().getDomainModel();
    adapter = new TableControlAdapter(parent, viewer);
    tableControl.eAdapters().add(adapter);

    buttonSort.addSelectionListener(new SortSelectionAdapter());

    buttonAdd.addSelectionListener(new AddSelectionAdapter(tableComposite, viewer));

    buttonRemove.addSelectionListener(new RemoveSelectionAdapter(viewer));

    return composite;
}

From source file:org.eclipse.emf.example.databinding.project.ui.rcp.views.ProjectCommittersPart.java

License:Open Source License

private void init(IViewSite site, CTabFolder folder, DataBindingContext ctx, EditingDomain editingDomain,
        IObservableValue master) {//from   www  .  j a  va2  s  .  com
    final TableViewer viewer = new TableViewer(folder, SWT.FULL_SELECTION);

    {
        IValueProperty prop = EMFEditProperties.value(editingDomain,
                ProjectPackage.Literals.PROJECT__COMMITTERS);
        CTabItem item = new CTabItem(folder, SWT.NONE);
        item.setControl(viewer.getControl());

        ctx.bindValue(WidgetProperties.text().observe(item), prop.observeDetail(master),
                new EMFUpdateValueStrategy(), new EMFUpdateValueStrategy().setConverter(new LengthConverter()));
    }

    folder.setSelection(0);

    viewer.getTable().setHeaderVisible(true);
    ObservableListContentProvider cp = new ObservableListContentProvider();

    {
        IObservableMap[] attributeMap = new IObservableMap[2];
        attributeMap[0] = EMFEditProperties
                .value(editingDomain, FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP__PERSON,
                        ProjectPackage.Literals.PERSON__LASTNAME))
                .observeDetail(cp.getKnownElements());
        attributeMap[1] = EMFEditProperties
                .value(editingDomain,
                        FeaturePath.fromList(ProjectPackage.Literals.COMMITTER_SHIP__PERSON,
                                ProjectPackage.Literals.PERSON__FIRSTNAME))
                .observeDetail(cp.getKnownElements());

        TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
        column.getColumn().setText("Name");
        column.getColumn().setWidth(150);
        column.setLabelProvider(new GenericMapCellLabelProvider("{0}, {1}", attributeMap));
    }

    {
        IObservableMap attributeMap = EMFEditProperties
                .value(editingDomain, ProjectPackage.Literals.COMMITTER_SHIP__START)
                .observeDetail(cp.getKnownElements());
        TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
        column.getColumn().setText("Start");
        column.getColumn().setWidth(100);
        column.setLabelProvider(new GenericMapCellLabelProvider("{0,date,short}", attributeMap));
    }

    {
        IObservableMap attributeMap = EMFEditProperties
                .value(editingDomain, ProjectPackage.Literals.COMMITTER_SHIP__END)
                .observeDetail(cp.getKnownElements());
        TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
        column.getColumn().setText("End");
        column.getColumn().setWidth(100);
        column.setLabelProvider(new GenericMapCellLabelProvider("{0,date,short}", attributeMap));
    }

    IListProperty prop = EMFEditProperties.list(editingDomain, ProjectPackage.Literals.PROJECT__COMMITTERS);
    viewer.setContentProvider(cp);
    viewer.setInput(prop.observeDetail(master));

    MenuManager mgr = new MenuManager();
    mgr.add(new Action("Hide historic committers", IAction.AS_CHECK_BOX) {
        @Override
        public void run() {
            if (isChecked()) {
                viewer.addFilter(new ViewerFilterImpl());
            } else {
                viewer.setFilters(new ViewerFilter[0]);
            }
        }
    });

    viewer.getControl().setMenu(mgr.createContextMenu(viewer.getControl()));

    site.registerContextMenu(Activator.PLUGIN_ID + ".committers", mgr, viewer);
}

From source file:org.eclipse.fx.ide.jdt.ui.internal.editors.JFXBuildConfigurationEditor.java

License:Open Source License

private void createPageOverview(final AntTask task) {
    Composite composite = new Composite(getContainer(), SWT.NONE);
    FillLayout layout = new FillLayout();
    composite.setLayout(layout);/*from  ww  w  . j  a  v a 2 s .c  om*/
    PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
            JavaFXUIPlugin.PLUGIN_ID + ".JFXBuildConfigurationEditor_overview"); //$NON-NLS-1$

    this.bean.setValue(task);

    this.toolkit = new FormToolkit(composite.getDisplay());

    final Form form = this.toolkit.createForm(composite);
    form.setText("FX Build Configuration");
    form.setImage(getTitleImage());
    form.getBody().setLayout(new FillLayout());
    this.toolkit.decorateFormHeading(form);

    initToolbar(form);

    ScrolledForm scrolledForm = this.toolkit.createScrolledForm(form.getBody());
    scrolledForm.getBody().setLayout(new GridLayout(2, false));
    Composite sectionParent = scrolledForm.getBody();

    this.dbc = new DataBindingContext();
    IWidgetValueProperty textModify = WidgetProperties.text(SWT.Modify);
    IWidgetValueProperty selChange = WidgetProperties.selection();

    {
        Section section = this.toolkit.createSection(sectionParent, Section.DESCRIPTION
                | ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
        section.setText("Build && Package Properties");
        section.setDescription("The following properties are needed to build the JavaFX-Application");
        section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        Composite sectionClient = this.toolkit.createComposite(section);
        sectionClient.setLayout(new GridLayout(4, false));

        {
            this.toolkit.createLabel(sectionClient, "Build Directory*:");
            final Text t = this.toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
            t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
            this.toolkit.createButton(sectionClient, "Filesystem ...", SWT.PUSH)
                    .addSelectionListener(new SelectionAdapter() {
                        @Override
                        public void widgetSelected(final SelectionEvent e) {
                            String dir = handleBuildFilesystemDirectorySelection(t.getShell());
                            if (dir != null) {
                                t.setText(dir);
                            }
                        }
                    });
            this.toolkit.createButton(sectionClient, "Workspace ...", SWT.PUSH)
                    .addSelectionListener(new SelectionAdapter() {
                        @Override
                        public void widgetSelected(final SelectionEvent e) {
                            String dir = handleBuildWorkbenchDirectorySelection(t.getShell());
                            if (dir != null) {
                                t.setText(dir);
                            }
                        }
                    });
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain, ANT_TASK__BUILD_DIRECTORY);
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            this.toolkit.createLabel(sectionClient, "Vendor name*:");
            Text t = this.toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
            t.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 3, 1));
            IEMFValueProperty prop = EMFEditProperties.value(editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__INFO, INFO__VENDOR));
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(this.bean));
        }

        {
            this.toolkit.createLabel(sectionClient, "Application title*:");
            Text t = this.toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
            t.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 3, 1));
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__INFO, INFO__TITLE));
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(this.bean));
        }

        {
            this.toolkit.createLabel(sectionClient, "Application version*:");
            Text t = this.toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
            t.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 3, 1));
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__APPLICATION, APPLICATION__VERSION));
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(this.bean));
        }

        {
            this.toolkit.createLabel(sectionClient, "Application class*:");
            final Text t = this.toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
            t.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1));
            Button b = this.toolkit.createButton(sectionClient, "Browse ...", SWT.PUSH);
            b.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    String name = handleRootclassSelection(t.getShell());
                    if (name != null) {
                        t.setText(name);
                    }
                }
            });
            b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false));
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__APPLICATION, APPLICATION__MAINCLASS));
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(this.bean));
        }

        {
            this.toolkit.createLabel(sectionClient, "Preloader class:");
            final Text t = this.toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
            t.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1));
            Button b = this.toolkit.createButton(sectionClient, "Browse ...", SWT.PUSH);
            b.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    String name = handlePreloaderclassSelection(t.getShell());
                    if (name != null) {
                        t.setText(name);
                    }
                }
            });
            b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false));
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__APPLICATION, APPLICATION__PRELOADERCLASS));
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(this.bean));
        }

        {
            this.toolkit.createLabel(sectionClient, "Splash:");
            final Text t = this.toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
            t.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1));
            Button b = this.toolkit.createButton(sectionClient, "Browse ...", SWT.PUSH);
            b.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    String name = handleSplashImage(t.getShell());
                    if (name != null) {
                        t.setText(name);
                    }
                }
            });
            b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false));
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__SPLASH_IMAGE));
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(this.bean));
        }

        {
            this.toolkit.createLabel(sectionClient, "Manifest-Attributes:")
                    .setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));
            Composite container = this.toolkit.createComposite(sectionClient);
            GridLayout gl = new GridLayout(2, false);
            gl.marginBottom = gl.marginHeight = gl.marginLeft = gl.marginRight = gl.marginTop = gl.marginWidth = 0;
            container.setLayout(gl);
            GridData gdContainer = new GridData(GridData.FILL_HORIZONTAL);
            gdContainer.horizontalSpan = 2;
            container.setLayoutData(gdContainer);

            Composite tableContainer = this.toolkit.createComposite(container);
            Table t = this.toolkit.createTable(tableContainer,
                    SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
            t.setHeaderVisible(true);
            t.setLinesVisible(true);

            GridData gdTable = new GridData(GridData.FILL_HORIZONTAL);
            gdTable.heightHint = t.getHeaderHeight() + t.getItemHeight() * 5;
            tableContainer.setLayoutData(gdTable);

            TableColumnLayout tablelayout = new TableColumnLayout();
            final TableViewer v = new TableViewer(t);
            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
            gd.heightHint = t.getHeaderHeight() + t.getItemHeight() * 5;
            v.getControl().setLayoutData(gd);
            v.setContentProvider(ArrayContentProvider.getInstance());

            {
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(final Object element) {
                        return ((Param) element).getName();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(33));
                c.getColumn().setText("Name");
            }

            {
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(final Object element) {
                        return ((Param) element).getValue();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(67));
                c.getColumn().setText("Value");
            }
            tableContainer.setLayout(tablelayout);
            v.setInput(task.getManifestEntries());

            Composite buttonComp = this.toolkit.createComposite(sectionClient);
            buttonComp.setLayoutData(new GridData(GridData.BEGINNING, GridData.END, false, false));
            buttonComp.setLayout(new GridLayout());

            {
                Button b = this.toolkit.createButton(buttonComp, "Add ...", SWT.PUSH);
                b.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
                b.addSelectionListener(new SelectionAdapter() {
                    @Override
                    public void widgetSelected(final SelectionEvent e) {
                        if (handleAddManifestAttr(getSite().getShell())) {
                            v.setInput(task.getManifestEntries());
                            v.setSelection(new StructuredSelection(
                                    task.getManifestEntries().get(task.getManifestEntries().size() - 1)));
                        }
                    }
                });
            }

            {
                Button b = toolkit.createButton(buttonComp, "Remove", SWT.PUSH);
                b.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
                b.addSelectionListener(new SelectionAdapter() {
                    @Override
                    public void widgetSelected(final SelectionEvent e) {
                        Param value = (Param) ((IStructuredSelection) v.getSelection()).getFirstElement();
                        if (value != null) {
                            if (handleRemoveManifestAttr(value)) {
                                v.setInput(task.getManifestEntries());
                            }
                        } else {
                            MessageDialog.openWarning(getSite().getShell(), "Warning",
                                    "Please select an entry");
                        }
                    }
                });
            }
            {
                this.toolkit.createLabel(sectionClient, "Toolkit Type:")
                        .setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));
                ComboViewer c = new ComboViewer(sectionClient);
                c.getCombo().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 3, 1));
                c.setContentProvider(new ArrayContentProvider());
                c.setInput(ApplicationToolkitType.VALUES);
                IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                        FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__APPLICATION, APPLICATION__TOOLKIT));
                this.dbc.bindValue(selChange.observe(c.getCombo()), prop.observeDetail(this.bean));
            }
            {
                this.toolkit.createLabel(sectionClient, "Packaging Format:")
                        .setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));
                ComboViewer c = new ComboViewer(sectionClient);
                c.getCombo().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 3, 1));
                c.setContentProvider(new ArrayContentProvider());
                c.setInput(PackagingFormat.VALUES);
                IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                        FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__PACKAGING_FORMAT));
                this.dbc.bindValue(selChange.observe(c.getCombo()), prop.observeDetail(this.bean));
            }
            {
                Button b = this.toolkit.createButton(sectionClient, "automatic Proxy Resolution", SWT.CHECK);
                b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 4, 1));
                IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                        FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__PROXY_RESOLUTION));
                this.dbc.bindValue(selChange.observe(b), prop.observeDetail(this.bean));
            }
            {
                Button b = this.toolkit.createButton(sectionClient, "Convert CSS into binary form", SWT.CHECK);
                b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 4, 1));
                IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                        FeaturePath.fromList(ANT_TASK__CSS_TO_BIN));
                this.dbc.bindValue(selChange.observe(b), prop.observeDetail(this.bean));
            }
            {
                Button b = this.toolkit.createButton(sectionClient,
                        "Enable verbose build mode (Not recommended)", SWT.CHECK);
                b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 4, 1));
                IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                        FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__VERBOSE));
                this.dbc.bindValue(selChange.observe(b), prop.observeDetail(this.bean));
            }
        }

        section.setClient(sectionClient);
    }

    {
        Section section = this.toolkit.createSection(sectionParent, Section.DESCRIPTION
                | ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
        section.setText("Building & Exporting");
        section.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, true, 1, 2));

        Composite sectionClient = this.toolkit.createComposite(section);
        sectionClient.setLayout(new GridLayout(1, false));

        {
            FormText text = this.toolkit.createFormText(sectionClient, false);
            text.setText(
                    "<p>To generate build instructions and export the project: <li style=\"bullet\" bindent=\"1\">Generate <a href=\"generateAnt\">ant build.xml</a> only</li><li style=\"bullet\" bindent=\"2\">Generate <a href=\"generateAndRun\">ant build.xml and run</a></li>&#160;</p>",
                    true, false);
            text.addHyperlinkListener(new IHyperlinkListener() {

                @Override
                public void linkExited(final HyperlinkEvent e) {
                    // nothing
                }

                @Override
                public void linkEntered(HyperlinkEvent e) {
                    // nothing
                }

                @Override
                public void linkActivated(HyperlinkEvent e) {
                    try {
                        if ("generateAndRun".equals(e.getHref())) { //$NON-NLS-1$
                            executeExport();
                        } else {
                            executeGenerateAnt();
                        }
                    } catch (Exception e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                }
            });
        }

        section.setClient(sectionClient);
    }

    int index = addPage(composite);
    setPageText(index, "Overview");
}

From source file:org.eclipse.fx.ide.jdt.ui.internal.editors.JFXBuildConfigurationEditor.java

License:Open Source License

private void createPageDeploy(final AntTask task) {
    Composite composite = new Composite(getContainer(), SWT.NONE);
    FillLayout layout = new FillLayout();
    composite.setLayout(layout);/*from  w  w w .j  a  va  2 s .c  o m*/
    PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
            JavaFXUIPlugin.PLUGIN_ID + ".JFXBuildConfigurationEditor_deploy");

    // TODO
    final WritableValue bean = new WritableValue();
    bean.setValue(task);

    this.toolkit = new FormToolkit(composite.getDisplay());

    final Form form = this.toolkit.createForm(composite);
    form.setText("FX Build Configuration");
    form.setImage(getTitleImage());
    form.getBody().setLayout(new FillLayout());
    this.toolkit.decorateFormHeading(form);

    initToolbar(form);

    ScrolledForm scrolledForm = this.toolkit.createScrolledForm(form.getBody());
    scrolledForm.getBody().setLayout(new GridLayout(2, false));
    Composite sectionParent = scrolledForm.getBody();

    IWidgetValueProperty textModify = WidgetProperties.text(SWT.Modify);
    IWidgetValueProperty selChange = WidgetProperties.selection();

    {
        Section section = this.toolkit.createSection(sectionParent,
                Section.DESCRIPTION | Section.TITLE_BAR | Section.TWISTIE | Section.EXPANDED);
        section.setText("Deploy Properties");
        section.setDescription("The following properties are needed to create a Java Webstart Deployment");
        section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        Composite sectionClient = this.toolkit.createComposite(section);
        final int COLUMN_COUNT = 3;
        sectionClient.setLayout(new GridLayout(COLUMN_COUNT, false));

        {
            this.toolkit.createLabel(sectionClient, "Applet Width*:");
            Text t = this.toolkit.createText(sectionClient, "", SWT.BORDER);
            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
            gd.horizontalSpan = COLUMN_COUNT - 1;
            t.setLayoutData(gd);
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__WIDTH));
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            this.toolkit.createLabel(sectionClient, "Applet Height*:");
            Text t = this.toolkit.createText(sectionClient, "", SWT.BORDER);
            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
            gd.horizontalSpan = COLUMN_COUNT - 1;
            t.setLayoutData(gd);
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__HEIGHT));
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            Button b = this.toolkit.createButton(sectionClient, "Embed JNLP", SWT.CHECK);
            b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, COLUMN_COUNT, 1));
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__EMBEDJNLP));
            this.dbc.bindValue(selChange.observe(b), prop.observeDetail(bean));
        }

        {
            Button b = this.toolkit.createButton(sectionClient, "Treat files as extensions", SWT.CHECK);
            b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, COLUMN_COUNT, 1));
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__EXTENSION));
            this.dbc.bindValue(selChange.observe(b), prop.observeDetail(bean));
        }

        {
            Button b = this.toolkit.createButton(sectionClient, "Include deployment toolkit", SWT.CHECK);
            b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, COLUMN_COUNT, 1));
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__INCLUDE_DT));
            this.dbc.bindValue(selChange.observe(b), prop.observeDetail(bean));
        }

        {
            Button b = this.toolkit.createButton(sectionClient, "Offline allowed", SWT.CHECK);
            b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, COLUMN_COUNT, 1));
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__OFFLINE_ALLOWED));
            this.dbc.bindValue(selChange.observe(b), prop.observeDetail(bean));
        }

        {
            this.toolkit.createLabel(sectionClient, "Placeholder Ref.*:");
            Text t = this.toolkit.createText(sectionClient, "", SWT.BORDER);
            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
            gd.horizontalSpan = COLUMN_COUNT - 1;
            t.setLayoutData(gd);
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__PLACEHOLDERREF));
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            this.toolkit.createLabel(sectionClient, "Placeholder ID*:");
            Text t = toolkit.createText(sectionClient, "", SWT.BORDER);
            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
            gd.horizontalSpan = COLUMN_COUNT - 1;
            t.setLayoutData(gd);
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__PLACEHOLDERID));
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            this.toolkit.createLabel(sectionClient, "HTML Template:");
            Text t = this.toolkit.createText(sectionClient, "", SWT.BORDER);
            t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__TEMPLATE, TEMPLATE__FILE));
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
            Button b = this.toolkit.createButton(sectionClient, "Workspace ...", SWT.NONE);
            b.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(final SelectionEvent e) {
                    FilteredResourcesSelectionDialog d = new FilteredResourcesSelectionDialog(
                            getSite().getShell(), false,
                            ((IFileEditorInput) getEditorInput()).getFile().getProject(), IResource.FILE) {
                        @Override
                        protected IStatus validateItem(final Object item) {
                            IFile f = (IFile) item;
                            if (f.getParent() instanceof IProject) {
                                return new Status(IStatus.ERROR, JavaFXUIPlugin.PLUGIN_ID,
                                        "The selected resource has to be part of the source folder");
                            }
                            if (!f.getName().endsWith(JavaFXUIPlugin.FILEEXTENSION_HTML_TEMPLATE)) {
                                return new Status(IStatus.ERROR, JavaFXUIPlugin.PLUGIN_ID,
                                        "The selected resource does not seem to be a html file");
                            }
                            return super.validateItem(item);
                        }
                    };

                    if (d.open() == Window.OK) {
                        Object[] rv = d.getResult();
                        if (rv.length == 1) {
                            IFile f = (IFile) rv[0];
                            IJavaElement j = JavaCore.create(f.getParent());
                            String template = null;
                            if (j instanceof IPackageFragment) {
                                IPackageFragment p = (IPackageFragment) j;
                                template = p.getElementName().replace('.', '/') + "/" + f.getName(); //$NON-NLS-1$
                            } else if (j instanceof IPackageFragmentRoot) {
                                IPackageFragmentRoot p = (IPackageFragmentRoot) j;
                                template = f.getName();
                            } else {
                                MessageDialog.openInformation(getSite().getShell(), "Not valid",
                                        "The selected resource has to be part of the source folder");
                            }
                            if (template != null) {
                                if (getTask().getDeploy().getTemplate() == null) {
                                    Command cmd = new SetCommand(JFXBuildConfigurationEditor.this.editingDomain,
                                            getTask().getDeploy(), DEPLOY__TEMPLATE,
                                            ParametersFactory.eINSTANCE.createTemplate());
                                    if (cmd.canExecute()) {
                                        cmd.execute();
                                    }
                                }
                                Command cmd = new SetCommand(JFXBuildConfigurationEditor.this.editingDomain,
                                        getTask().getDeploy().getTemplate(), TEMPLATE__FILE, template);
                                if (cmd.canExecute()) {
                                    cmd.execute();
                                }
                            }
                        }
                    }
                }
            });
        }

        {
            this.toolkit.createLabel(sectionClient, "Template Output File:");
            Text t = this.toolkit.createText(sectionClient, "", SWT.BORDER);
            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
            gd.horizontalSpan = COLUMN_COUNT - 1;
            t.setLayoutData(gd);
            IEMFValueProperty prop = EMFEditProperties.value(this.editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__TEMPLATE, TEMPLATE__TO_FILE));
            this.dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            this.toolkit.createLabel(sectionClient, "Webstart Splash:")
                    .setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));
            Composite container = this.toolkit.createComposite(sectionClient);
            GridLayout gl = new GridLayout(2, false);
            gl.marginBottom = gl.marginHeight = gl.marginLeft = gl.marginRight = gl.marginTop = gl.marginWidth = 0;
            container.setLayout(gl);
            GridData gdContainer = new GridData(GridData.FILL_HORIZONTAL);
            gdContainer.horizontalSpan = COLUMN_COUNT - 1;
            container.setLayoutData(gdContainer);

            Composite tableContainer = this.toolkit.createComposite(container);
            Table t = this.toolkit.createTable(tableContainer,
                    SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
            t.setHeaderVisible(true);
            t.setLinesVisible(true);

            GridData gdTable = new GridData(GridData.FILL_HORIZONTAL);
            gdTable.heightHint = t.getItemHeight() * 5;
            tableContainer.setLayoutData(gdTable);

            TableColumnLayout tablelayout = new TableColumnLayout();

            final TableViewer v = new TableViewer(t);
            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
            gd.heightHint = t.getItemHeight() * 5;
            v.getControl().setLayoutData(gd);
            v.setContentProvider(ArrayContentProvider.getInstance());

            {
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(final Object element) {
                        return ((Splash) element).getMode().getName();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(10, 100, false));
                c.getColumn().setText("Mode");
            }

            {
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(final Object element) {
                        return ((Splash) element).getHref();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(90));
                c.getColumn().setText("URL");
            }
            tableContainer.setLayout(tablelayout);
            v.setInput(task.getDeploy().getInfo().getSplash());

            Composite buttonComp = this.toolkit.createComposite(container);
            buttonComp.setLayoutData(new GridData(GridData.BEGINNING, GridData.END, false, false));
            buttonComp.setLayout(new GridLayout());

            {
                Button b = this.toolkit.createButton(buttonComp, "Add ...", SWT.PUSH);
                b.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
                b.addSelectionListener(new SelectionAdapter() {
                    @Override
                    public void widgetSelected(final SelectionEvent e) {
                        if (handleAddSplash()) {
                            v.setInput(task.getDeploy().getInfo().getSplash());
                            v.setSelection(new StructuredSelection(task.getDeploy().getInfo().getSplash()
                                    .get(task.getDeploy().getInfo().getSplash().size() - 1)));
                        }
                    }
                });
            }

            {
                Button b = toolkit.createButton(buttonComp, "Remove", SWT.PUSH);
                b.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
                b.addSelectionListener(new SelectionAdapter() {
                    @Override
                    public void widgetSelected(final SelectionEvent e) {
                        Splash value = (Splash) ((IStructuredSelection) v.getSelection()).getFirstElement();
                        if (value != null) {
                            if (handleRemoveSplash(value)) {
                                v.setInput(getTask().getDeploy().getInfo().getSplash());
                            }
                        } else {
                            MessageDialog.openWarning(getSite().getShell(), "Warning",
                                    "Please select an entry");
                        }
                    }
                });
            }
        }

        {
            toolkit.createLabel(sectionClient, "Webstart Icons:")
                    .setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));
            Composite container = toolkit.createComposite(sectionClient);
            GridLayout gl = new GridLayout(2, false);
            gl.marginBottom = gl.marginHeight = gl.marginLeft = gl.marginRight = gl.marginTop = gl.marginWidth = 0;
            container.setLayout(gl);
            GridData gdContainer = new GridData(GridData.FILL_HORIZONTAL);
            gdContainer.horizontalSpan = COLUMN_COUNT - 1;
            container.setLayoutData(gdContainer);

            Composite tableContainer = toolkit.createComposite(container);
            Table t = toolkit.createTable(tableContainer,
                    SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
            t.setHeaderVisible(true);
            t.setLinesVisible(true);

            GridData gdTable = new GridData(GridData.FILL_HORIZONTAL);
            gdTable.heightHint = t.getItemHeight() * 5;
            tableContainer.setLayoutData(gdTable);

            TableColumnLayout tablelayout = new TableColumnLayout();

            final TableViewer v = new TableViewer(t);
            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
            gd.heightHint = t.getItemHeight() * 5;
            v.getControl().setLayoutData(gd);
            v.setContentProvider(ArrayContentProvider.getInstance());

            {
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(Object element) {
                        return ((Icon) element).getDepth();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(10, 50, false));
                c.getColumn().setText("Depth");
            }

            {
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(Object element) {
                        return ((Icon) element).getKind().getName();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(10, 100, false));
                c.getColumn().setText("Kind");
            }

            {
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(Object element) {
                        return ((Icon) element).getWidth();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(10, 50, false));
                c.getColumn().setText("Width");
            }

            {
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(Object element) {
                        return ((Icon) element).getHeight();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(10, 50, false));
                c.getColumn().setText("Height");
            }

            {
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(Object element) {
                        return ((Icon) element).getHref();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(60));
                c.getColumn().setText("Url");
            }
            tableContainer.setLayout(tablelayout);
            v.setInput(task.getDeploy().getInfo().getIcon());

            Composite buttonComp = this.toolkit.createComposite(container);
            buttonComp.setLayoutData(new GridData(GridData.BEGINNING, GridData.END, false, false));
            buttonComp.setLayout(new GridLayout());

            {
                Button b = this.toolkit.createButton(buttonComp, "Add ...", SWT.PUSH);
                b.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
                b.addSelectionListener(new SelectionAdapter() {
                    @Override
                    public void widgetSelected(final SelectionEvent e) {
                        if (handleAddIcon()) {
                            v.setInput(task.getDeploy().getInfo().getIcon());
                            v.setSelection(new StructuredSelection(task.getDeploy().getInfo().getIcon()
                                    .get(task.getDeploy().getInfo().getIcon().size() - 1)));
                        }
                    }
                });
            }

            {
                Button b = this.toolkit.createButton(buttonComp, "Remove", SWT.PUSH);
                b.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
                b.addSelectionListener(new SelectionAdapter() {
                    @Override
                    public void widgetSelected(final SelectionEvent e) {
                        Icon value = (Icon) ((IStructuredSelection) v.getSelection()).getFirstElement();
                        if (value != null) {
                            if (handleRemoveIcon(value)) {
                                v.setInput(task.getDeploy().getInfo().getIcon());
                            }
                        } else {
                            MessageDialog.openWarning(getSite().getShell(), "Warning",
                                    "Please select an entry");
                        }
                    }
                });
            }
        }

        {
            this.toolkit.createLabel(sectionClient, "Additional META-INF files:")
                    .setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));
            Composite container = toolkit.createComposite(sectionClient);
            GridLayout gl = new GridLayout(2, false);
            gl.marginBottom = gl.marginHeight = gl.marginLeft = gl.marginRight = gl.marginTop = gl.marginWidth = 0;
            container.setLayout(gl);
            GridData gdContainer = new GridData(GridData.FILL_HORIZONTAL);
            gdContainer.horizontalSpan = COLUMN_COUNT - 1;
            container.setLayoutData(gdContainer);

            Composite tableContainer = toolkit.createComposite(container);
            Table t = toolkit.createTable(tableContainer,
                    SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
            t.setHeaderVisible(true);
            t.setLinesVisible(true);

            GridData gdTable = new GridData(GridData.FILL_HORIZONTAL);
            gdTable.heightHint = t.getItemHeight() * 5;
            tableContainer.setLayoutData(gdTable);

            TableColumnLayout tablelayout = new TableColumnLayout();

            final TableViewer v = new TableViewer(t);
            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
            gd.heightHint = t.getItemHeight() * 5;
            v.getControl().setLayoutData(gd);
            v.setContentProvider(ArrayContentProvider.getInstance());

            {
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(Object element) {
                        return ((KeyValuePair) element).getKey();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(33));
                c.getColumn().setText("Folder");
            }

            {
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(Object element) {
                        return ((KeyValuePair) element).getValue();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(67));
                c.getColumn().setText("File");
            }
            tableContainer.setLayout(tablelayout);
            v.setInput(task.getFiles());

            Composite buttonComp = this.toolkit.createComposite(container);
            buttonComp.setLayoutData(new GridData(GridData.BEGINNING, GridData.END, false, false));
            buttonComp.setLayout(new GridLayout());

            {
                Button b = this.toolkit.createButton(buttonComp, "Add ...", SWT.PUSH);
                b.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
                b.addSelectionListener(new SelectionAdapter() {
                    @Override
                    public void widgetSelected(final SelectionEvent e) {
                        if (handleAddMetaInfFile()) {
                            v.setInput(task.getFiles());
                            v.setSelection(
                                    new StructuredSelection(task.getFiles().get(task.getFiles().size() - 1)));
                        }
                    }
                });
            }

            {
                Button b = toolkit.createButton(buttonComp, "Remove", SWT.PUSH);
                b.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
                b.addSelectionListener(new SelectionAdapter() {
                    @Override
                    public void widgetSelected(final SelectionEvent e) {
                        KeyValuePair value = (KeyValuePair) ((IStructuredSelection) v.getSelection())
                                .getFirstElement();
                        if (value != null) {
                            if (handleRemoveMetaInfFile(value)) {
                                v.setInput(task.getFiles());
                            }
                        } else {
                            MessageDialog.openWarning(getSite().getShell(), "Warning",
                                    "Please select an entry");
                        }
                    }
                });
            }
        }

        {
            this.toolkit.createLabel(sectionClient, "Fonts:")
                    .setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));
            Composite container = toolkit.createComposite(sectionClient);
            GridLayout gl = new GridLayout(2, false);
            gl.marginBottom = gl.marginHeight = gl.marginLeft = gl.marginRight = gl.marginTop = gl.marginWidth = 0;
            container.setLayout(gl);
            GridData gdContainer = new GridData(GridData.FILL_HORIZONTAL);
            gdContainer.horizontalSpan = COLUMN_COUNT - 1;
            container.setLayoutData(gdContainer);

            Composite tableContainer = toolkit.createComposite(container);
            Table t = toolkit.createTable(tableContainer,
                    SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
            t.setHeaderVisible(true);
            t.setLinesVisible(true);

            GridData gdTable = new GridData(GridData.FILL_HORIZONTAL);
            gdTable.heightHint = t.getItemHeight() * 5;
            tableContainer.setLayoutData(gdTable);

            TableColumnLayout tablelayout = new TableColumnLayout();

            final TableViewer v = new TableViewer(t);
            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
            gd.heightHint = t.getItemHeight() * 5;
            v.getControl().setLayoutData(gd);
            final ArrayContentProvider cp = new ArrayContentProvider();
            v.setContentProvider(cp);

            {
                IEMFValueProperty prop = EMFEditProperties.value(editingDomain,
                        ParametersPackage.Literals.KEY_VALUE_PAIR__KEY);
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                TableColumn tc = c.getColumn();
                tc.setText("Font name");
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(Object element) {
                        return ((KeyValuePair) element).getKey();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(33));
            }

            {
                IEMFValueProperty prop = EMFEditProperties.value(editingDomain,
                        ParametersPackage.Literals.KEY_VALUE_PAIR__VALUE);
                TableViewerColumn c = new TableViewerColumn(v, SWT.NONE);
                TableColumn tc = c.getColumn();
                tc.setText("File");
                c.setLabelProvider(new ColumnLabelProvider() {
                    @Override
                    public String getText(Object element) {
                        return ((KeyValuePair) element).getValue();
                    }
                });
                tablelayout.setColumnData(c.getColumn(), new ColumnWeightData(67));
            }
            tableContainer.setLayout(tablelayout);
            v.setInput(task.getFonts());

            Composite buttonComp = toolkit.createComposite(container);
            buttonComp.setLayoutData(new GridData(GridData.BEGINNING, GridData.END, false, false));
            buttonComp.setLayout(new GridLayout());

            {
                Button b = toolkit.createButton(buttonComp, "Add ...", SWT.PUSH);
                b.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
                b.addSelectionListener(new SelectionAdapter() {
                    @Override
                    public void widgetSelected(final SelectionEvent e) {
                        if (handleAddFont()) {
                            final KeyValuePair newFont = task.getFonts().get(task.getFonts().size() - 1);
                            v.refresh();
                            v.setSelection(new StructuredSelection(newFont));
                        }
                    }
                });
            }

            {
                Button b = toolkit.createButton(buttonComp, "Remove", SWT.PUSH);
                b.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false));
                b.addSelectionListener(new SelectionAdapter() {
                    @Override
                    public void widgetSelected(final SelectionEvent e) {
                        KeyValuePair value = (KeyValuePair) ((IStructuredSelection) v.getSelection())
                                .getFirstElement();
                        if (value != null) {
                            if (handleRemoveFont(value)) {
                                v.setInput(task.getFonts());
                            }
                        } else {
                            MessageDialog.openWarning(getSite().getShell(), "Warning",
                                    "Please select an entry");
                        }
                    }
                });
            }
        }
        section.setClient(sectionClient);
    }
    int index = addPage(composite);
    setPageText(index, "Deploy");
}

From source file:org.eclipse.gyrex.admin.ui.context.internal.EditContextPrefsDialog.java

License:Open Source License

/**
 * sort method for sorting the preference table view
 * // w  w  w . j  a  v a 2 s  .  c  om
 * @param viewer
 * @param property
 * @param ascending
 */
@SuppressWarnings("unchecked")
private static void sort(final TableViewer viewer, final int property, final boolean ascending) {
    if ((viewer.getControl().getStyle() & SWT.VIRTUAL) != 0) {
        final List<KeyValuePair> input = (List<KeyValuePair>) viewer.getInput();
        Collections.sort(input, new KeyValuePairComparator(property, ascending));
        viewer.refresh();
    } else {
        viewer.setComparator(new KeyValuePairComparator(property, ascending));
    }
}

From source file:org.eclipse.ice.viz.csv.viewer.CSVDataTableViewer.java

License:Open Source License

/**
 * This function creates a new data table in the CSV Data Table Viewer to
 * display the new provider./*from   w  ww .java  2  s . c  om*/
 * 
 * @param newDataProvider
 *            The CSVDataProvider to populate the view
 */
public void refreshDataTable(CSVDataProvider newDataProvider) {

    logger.info(
            "CSVDataTableViewer Message: Refreshing the data " + "table: " + newDataProvider.getSourceInfo());

    // Iterates through the times
    for (Double time : newDataProvider.getTimes()) {

        // Sets the time for the provider
        newDataProvider.setTime(time);

        // FIXME We need a better check for existing tabs
        if (!tabs.contains(time.toString())) {
            // Create a new tab of the time for the loaded file
            TabItem newTimeTab = new TabItem(timesTabFolder, SWT.NONE);
            newTimeTab.setText(time.toString());

            // Add to the list of the existing tabs
            tabs.add(time.toString());

            // Get the independent variables and features from the
            // new data provider to be used to set up the columns
            ArrayList<String> independentVarsAndFeatures = new ArrayList<String>();
            independentVarsAndFeatures.addAll(newDataProvider.getIndependentVariables());
            independentVarsAndFeatures.addAll(newDataProvider.getFeaturesAtCurrentTime());
            // Get the number of columns
            int numColumns = independentVarsAndFeatures.size();

            // Creating the composite for the table viewer
            Composite tableViewerComp = new Composite(timesTabFolder, SWT.BORDER);
            tableViewerComp.setLayout(new GridLayout(1, false));
            tableViewerComp.setLayoutData(new GridData(SWT.DEFAULT, SWT.DEFAULT, true, true));
            // Sets the control of the tab to the composite for the table
            // view
            newTimeTab.setControl(tableViewerComp);

            // Creating the table viewer
            TableViewer viewer = new TableViewer(tableViewerComp, SWT.BORDER | SWT.FULL_SELECTION);
            // Creating the layout of columns
            TableLayout layout = new TableLayout();
            for (int k = 0; k < numColumns; k++) {
                layout.addColumnData(new ColumnWeightData(2, ColumnWeightData.MINIMUM_WIDTH, true));
            }
            viewer.getTable().setLayout(layout);
            // Setting the layout of the table
            viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
            // Showing the headers
            viewer.getTable().setLinesVisible(true);
            viewer.getTable().setHeaderVisible(true);
            // Set the content providers
            viewer.setContentProvider(new DataTableContentProvider());
            viewer.setLabelProvider(new DataTableLabelProvider());

            // Setting the column text
            for (String columnText : independentVarsAndFeatures) {
                TableColumn newColumn = new TableColumn(viewer.getTable(), SWT.CENTER);
                newColumn.setText(columnText);
            }
            // Setting the input
            viewer.setInput(newDataProvider);

            // Refreshing the composite so the table will show
            tableViewerComp.layout();
            timesTabFolder.layout();
        }
    }

    return;
}

From source file:org.eclipse.ice.viz.plotviewer.CSVDataTableViewer.java

License:Open Source License

/**
 * This function creates a new data table in the CSV Data Table Viewer to
 * display the new provider./*from w  ww  . j a  va  2  s  .  c  om*/
 * 
 * @param newDataProvider
 *            The CSVDataProvider to populate the view
 */
public void refreshDataTable(CSVDataProvider newDataProvider) {

    System.out.println(
            "CSVDataTableViewer Message: Refreshing the data " + "table: " + newDataProvider.getSourceInfo());

    // Iterates through the times
    for (Double time : newDataProvider.getTimes()) {

        // Sets the time for the provider
        newDataProvider.setTime(time);

        // FIXME We need a better check for existing tabs
        if (!tabs.contains(time.toString())) {
            // Create a new tab of the time for the loaded file
            TabItem newTimeTab = new TabItem(timesTabFolder, SWT.NONE);
            newTimeTab.setText(time.toString());

            // Add to the list of the existing tabs
            tabs.add(time.toString());

            // Get the independent variables and features from the
            // new data provider to be used to set up the columns
            ArrayList<String> independentVarsAndFeatures = new ArrayList<String>();
            independentVarsAndFeatures.addAll(newDataProvider.getIndependentVariables());
            independentVarsAndFeatures.addAll(newDataProvider.getFeaturesAtCurrentTime());
            // Get the number of columns
            int numColumns = independentVarsAndFeatures.size();

            // Creating the composite for the table viewer
            Composite tableViewerComp = new Composite(timesTabFolder, SWT.BORDER);
            tableViewerComp.setLayout(new GridLayout(1, false));
            tableViewerComp.setLayoutData(new GridData(SWT.DEFAULT, SWT.DEFAULT, true, true));
            // Sets the control of the tab to the composite for the table
            // view
            newTimeTab.setControl(tableViewerComp);

            // Creating the table viewer
            TableViewer viewer = new TableViewer(tableViewerComp, SWT.BORDER | SWT.FULL_SELECTION);
            // Creating the layout of columns
            TableLayout layout = new TableLayout();
            for (int k = 0; k < numColumns; k++) {
                layout.addColumnData(new ColumnWeightData(2, ColumnWeightData.MINIMUM_WIDTH, true));
            }
            viewer.getTable().setLayout(layout);
            // Setting the layout of the table
            viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
            // Showing the headers
            viewer.getTable().setLinesVisible(true);
            viewer.getTable().setHeaderVisible(true);
            // Set the content providers
            viewer.setContentProvider(new DataTableContentProvider());
            viewer.setLabelProvider(new DataTableLabelProvider());

            // Setting the column text
            for (String columnText : independentVarsAndFeatures) {
                TableColumn newColumn = new TableColumn(viewer.getTable(), SWT.CENTER);
                newColumn.setText(columnText);
            }
            // Setting the input
            viewer.setInput(newDataProvider);

            // Refreshing the composite so the table will show
            tableViewerComp.layout();
            timesTabFolder.layout();
        }
    }

    return;
}

From source file:org.eclipse.incquery.tooling.localsearch.ui.debugger.views.LocalSearchDebugView.java

License:Open Source License

private TableViewer createTableViewer(Composite parent) {
    TableViewer matchesViewer = new TableViewer(parent,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);

    matchesViewer.setContentProvider(new MatchTableContentProvider());

    GridData gridData = new GridData();
    gridData.verticalAlignment = GridData.FILL;
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    gridData.horizontalAlignment = GridData.FILL;
    matchesViewer.getControl().setLayoutData(gridData);

    final Table table = matchesViewer.getTable();
    table.setHeaderVisible(true);//from  w w  w .j a v  a  2s .  com
    table.setLinesVisible(true);

    return matchesViewer;

}

From source file:org.eclipse.jetty.osgi.pde.launch.ui.tabs.JavaProjectsAsWebappsBlock.java

License:Open Source License

/**
 * Calls create control of the super (which is final)
 * then go an tweak the created control so that its purpose is for jetty home
 * instead of a working directory selection.
 *///from  w ww  . j  a va 2  s.c o m
public void createControl(Composite parent) {
    parent = SWTFactory.createComposite(parent, 1, 2, GridData.FILL_BOTH);
    super.setControl(parent);
    GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    parent.setLayoutData(gridData);

    _webappsInJavaProjects = new HashMap<IProject, NaiveJavaProjectToWebappIdentifier>();

    Group grp = SWTFactory.createGroup(parent,
            JettyLauncherMessages.JavaProjectsAsWebappsBlock_Select_java_projects_to_run_as_webapps, 1, 1,
            GridData.FILL_BOTH);
    gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    grp.setLayoutData(gridData);

    _javaProjectsViewer = CheckboxTableViewer.newCheckList(grp, SWT.BORDER);
    Table table = _javaProjectsViewer.getTable();

    TableLayout layout = new TableLayout();

    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    TableColumn tc0 = new TableColumn(table, SWT.NONE, 0);
    TableColumn tc1 = new TableColumn(table, SWT.NONE, 1);
    TableColumn tc2 = new TableColumn(table, SWT.NONE, 2);
    //        TableColumn tc3 = new TableColumn(table,SWT.NONE, 3);
    tc0.setText(JettyLauncherMessages.JavaProjectsAsWebappsBlock_Column_JavaProject);
    tc1.setText(JettyLauncherMessages.JavaProjectsAsWebappsBlock_Column_ContextPath);
    tc2.setText(JettyLauncherMessages.JavaProjectsAsWebappsBlock_Column_WebappBaseFolder);
    //        tc3.setText(JettyLauncherMessages.JavaProjectsAsWebappsBlock_Column_JettyContextFilePathes);

    layout.addColumnData(new ColumnWeightData(28));
    layout.addColumnData(new ColumnWeightData(12));
    layout.addColumnData(new ColumnWeightData(60));

    table.setLayout(layout);

    _javaProjectsViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    _javaProjectsViewer.setContentProvider(new JavaProjectsOrWebBundlesContentProvider(true));
    _javaProjectsViewer.setLabelProvider(new JavaProjectsOrWebBundleLabelProvider());
    _javaProjectsViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            setDirty(true);
            updateLaunchConfigurationDialog();
        }
    });
    _javaProjectsViewer.setInput(ResourcesPlugin.getWorkspace().getRoot());

    //now for the read-only list of web-bundles.

    grp = SWTFactory.createGroup(parent, JettyLauncherMessages.JavaProjectsAsWebappsBlock_List_webbundles, 1, 1,
            GridData.FILL_BOTH);
    gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    grp.setLayoutData(gridData);

    TableViewer webBundles = new TableViewer(grp, SWT.BORDER);
    table = webBundles.getTable();
    layout = new TableLayout();

    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    tc0 = new TableColumn(table, SWT.NONE, 0);
    tc1 = new TableColumn(table, SWT.NONE, 1);
    tc2 = new TableColumn(table, SWT.NONE, 2);
    //        TableColumn tc3 = new TableColumn(table,SWT.NONE, 3);
    tc0.setText(JettyLauncherMessages.JavaProjectsAsWebappsBlock_Column_WebBundleProject);
    tc1.setText(JettyLauncherMessages.JavaProjectsAsWebappsBlock_Column_ContextPath);
    tc2.setText(JettyLauncherMessages.JavaProjectsAsWebappsBlock_Column_WebappBaseFolder);
    //        tc3.setText(JettyLauncherMessages.JavaProjectsAsWebappsBlock_Column_JettyContextFilePathes);

    layout.addColumnData(new ColumnWeightData(28));
    layout.addColumnData(new ColumnWeightData(12));
    layout.addColumnData(new ColumnWeightData(60));

    table.setLayout(layout);
    webBundles.setContentProvider(new JavaProjectsOrWebBundlesContentProvider(false));
    webBundles.setLabelProvider(new JavaProjectsOrWebBundleLabelProvider());
    webBundles.setInput(ResourcesPlugin.getWorkspace().getRoot());
    webBundles.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
}

From source file:org.eclipse.jface.snippets.viewers.Snippet017TableViewerHideShowColumns.java

License:Open Source License

private void addMenu(TableViewer v) {
    final MenuManager mgr = new MenuManager();
    Action action;//from  w  w w  .j a v  a2s . c  o  m

    for (int i = 0; i < v.getTable().getColumnCount(); i++) {
        final TableColumn column = v.getTable().getColumn(i);

        action = new Action(v.getTable().getColumn(i).getText(), SWT.CHECK) {
            @Override
            public void runWithEvent(Event event) {
                if (!isChecked()) {
                    ShrinkThread t = new ShrinkThread(column.getWidth(), column);
                    t.run();
                } else {
                    ExpandThread t = new ExpandThread(((Integer) column.getData("restoredWidth")).intValue(),
                            column);
                    t.run();
                }
            }

        };
        action.setChecked(true);
        mgr.add(action);
    }

    v.getControl().setMenu(mgr.createContextMenu(v.getControl()));
}