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

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

Introduction

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

Prototype

public TableViewerColumn(TableViewer viewer, TableColumn column) 

Source Link

Document

Creates a new viewer column for the given TableViewer on the given TableColumn .

Usage

From source file:at.bestsolution.efxclipse.tooling.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  www.  jav  a2s  .  co  m
    PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
            JavaFXUIPlugin.PLUGIN_ID + ".JFXBuildConfigurationEditor_overview");

    bean.setValue(task);

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

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

    initToolbar(form);

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

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

    {
        Section section = toolkit.createSection(sectionParent,
                Section.DESCRIPTION | Section.TITLE_BAR | Section.TWISTIE | Section.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 = toolkit.createComposite(section);
        sectionClient.setLayout(new GridLayout(4, false));

        {
            toolkit.createLabel(sectionClient, "Build Directory*:");
            final Text t = toolkit.createText(sectionClient, "", SWT.BORDER);
            t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
            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);
                            }
                        }
                    });
            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(editingDomain, ANT_TASK__BUILD_DIRECTORY);
            dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            toolkit.createLabel(sectionClient, "Vendor name*:");
            Text t = toolkit.createText(sectionClient, "", SWT.BORDER);
            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));
            dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

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

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

        {
            toolkit.createLabel(sectionClient, "Application class*:");
            final Text t = toolkit.createText(sectionClient, "", SWT.BORDER);
            t.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1));
            Button b = 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(editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__APPLICATION, APPLICATION__MAINCLASS));
            dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            toolkit.createLabel(sectionClient, "Preloader class:");
            final Text t = toolkit.createText(sectionClient, "", SWT.BORDER);
            t.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1));
            Button b = 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(editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__APPLICATION, APPLICATION__PRELOADERCLASS));
            dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            toolkit.createLabel(sectionClient, "Splash:");
            final Text t = toolkit.createText(sectionClient, "", SWT.BORDER);
            t.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1));
            Button b = 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(editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__SPLASH_IMAGE));
            dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            toolkit.createLabel(sectionClient, "Manifest-Attributes:")
                    .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 = 2;
            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.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 = toolkit.createComposite(sectionClient);
            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 (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");
                        }
                    }
                });
            }
            {
                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(editingDomain,
                        FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__APPLICATION, APPLICATION__TOOLKIT));
                dbc.bindValue(selChange.observe(c.getCombo()), prop.observeDetail(bean));
            }
            {
                Button b = 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(editingDomain,
                        FeaturePath.fromList(ANT_TASK__CSS_TO_BIN));
                dbc.bindValue(selChange.observe(b), prop.observeDetail(bean));
            }
        }

        section.setClient(sectionClient);
    }

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

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

        {
            FormText text = 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) {

                }

                @Override
                public void linkEntered(HyperlinkEvent e) {
                }

                @Override
                public void linkActivated(HyperlinkEvent e) {
                    try {
                        if ("generateAndRun".equals(e.getHref())) {
                            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:at.bestsolution.efxclipse.tooling.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 www. ja 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);

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

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

    initToolbar(form);

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

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

    {
        Section section = 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 = toolkit.createComposite(section);
        final int COLUMN_COUNT = 3;
        sectionClient.setLayout(new GridLayout(COLUMN_COUNT, false));

        {
            toolkit.createLabel(sectionClient, "Applet Width*:");
            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(editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__WIDTH));
            dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            toolkit.createLabel(sectionClient, "Applet Height*:");
            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(editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__HEIGHT));
            dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

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

        {
            Button b = 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(editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__EXTENSION));
            dbc.bindValue(selChange.observe(b), prop.observeDetail(bean));
        }

        {
            Button b = 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(editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__INCLUDE_DT));
            dbc.bindValue(selChange.observe(b), prop.observeDetail(bean));
        }

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

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

        {
            toolkit.createLabel(sectionClient, "Placeholder Ref.*:");
            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(editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__PLACEHOLDERREF));
            dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            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(editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__PLACEHOLDERID));
            dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            toolkit.createLabel(sectionClient, "HTML Template:");
            Text t = toolkit.createText(sectionClient, "", SWT.BORDER);
            t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
            IEMFValueProperty prop = EMFEditProperties.value(editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__TEMPLATE, TEMPLATE__FILE));
            dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
            Button b = 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() == ResourceSelectionDialog.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();
                            } 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(editingDomain, getTask().getDeploy(),
                                            DEPLOY__TEMPLATE, ParametersFactory.eINSTANCE.createTemplate());
                                    if (cmd.canExecute()) {
                                        cmd.execute();
                                    }
                                }
                                Command cmd = new SetCommand(editingDomain, getTask().getDeploy().getTemplate(),
                                        TEMPLATE__FILE, template);
                                if (cmd.canExecute()) {
                                    cmd.execute();
                                }
                            }
                        }
                    }
                }
            });
        }

        {
            toolkit.createLabel(sectionClient, "Template Output File:");
            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(editingDomain,
                    FeaturePath.fromList(ANT_TASK__DEPLOY, DEPLOY__TEMPLATE, TEMPLATE__TO_FILE));
            dbc.bindValue(textModify.observeDelayed(DELAY, t), prop.observeDetail(bean));
        }

        {
            toolkit.createLabel(sectionClient, "Webstart Splash:")
                    .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(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 = 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 (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 = 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 (handleAddIcon()) {
                            v.setInput(task.getDeploy().getInfo().getIcon());
                            v.setSelection(new StructuredSelection(task.getDeploy().getInfo().getIcon()
                                    .get(task.getDeploy().getInfo().getIcon().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) {
                        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");
                        }
                    }
                });
            }
        }

        {
            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 = 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 (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");
                        }
                    }
                });
            }
        }

        {
            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:at.medevit.elexis.gdt.ui.table.util.ColumnBuilder.java

License:Open Source License

/**
 * Builds the column and returns the TableViewerColumn
 *//*from  w  ww. j av  a 2  s .  co m*/
public TableViewerColumn build() {
    // create column
    TableViewerColumn viewerColumn = new TableViewerColumn(viewer, align);
    TableColumn column = viewerColumn.getColumn();
    column.setText(columnHeaderText);

    // set label provider
    if (customLabelProvider != null) {
        if (cellFormatter != null) {
            throw new RuntimeException("If you specify a custom label provider, it is not allowed "
                    + "to specify a cell formatter. You need to do the formatting in your labelprovider!");
        }
        viewerColumn.setLabelProvider(customLabelProvider);
    } else {
        viewerColumn
                .setLabelProvider(new PropertyCellLabelProvider(valueHandler, valueFormatter, cellFormatter));
    }

    // activate column sorting
    if (sortBy == null) {
        sortBy = valueHandler;
    }
    if (sortBy != null) {
        column.setData(SortColumnComparator.SORT_BY, sortBy);
        column.addSelectionListener(new ColumnSortSelectionListener(viewer));
        if (defaultSort) {
            viewer.getTable().setSortColumn(column);
            viewer.getTable().setSortDirection(SWT.UP);
        }
    }

    // set column layout data
    if (widthPixel != null && widthPercent != null) {
        throw new RuntimeException("You can specify a width in pixel OR in percent, but not both!");
    }
    if (widthPercent == null) {
        // default width of 100px if nothing specified
        ((TableColumnLayout) viewer.getTable().getParent().getLayout()).setColumnData(column,
                new ColumnPixelData(widthPixel == null ? 100 : widthPixel));
    } else {
        ((TableColumnLayout) viewer.getTable().getParent().getLayout()).setColumnData(column,
                new ColumnWeightData(widthPercent));
    }

    // set editing support
    if (editor != null) {
        if (valueHandler == null) {
            throw new RuntimeException(
                    "makeEditable() requires that the column is bound to some value using bindTo...()");
        }

        viewerColumn.setEditingSupport(new PropertyEditingSupport(viewer, valueHandler, editorFormat, editor));
    }

    return viewerColumn;
}

From source file:au.gov.ga.earthsci.application.parts.retrieve.RetrievePart.java

License:Apache License

private void createColumns() {
    TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("URL");
    column.getColumn().setWidth(300);//from w  w  w .j  a v a 2s .  com
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            IRetrieval retrieval = (IRetrieval) element;
            return retrieval.getURL().toString();
        }
    });

    column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("Caller(s)");
    column.getColumn().setWidth(200);
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            IRetrieval retrieval = (IRetrieval) element;
            StringBuilder sb = new StringBuilder();
            for (Object caller : retrieval.getCallers()) {
                sb.append(", " + caller.toString()); //$NON-NLS-1$
            }
            if (sb.length() == 0) {
                return sb.toString();
            }
            return sb.substring(2);
        }
    });

    column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("Progress");
    column.getColumn().setWidth(150);
    column.setLabelProvider(new OwnerDrawLabelProvider() {
        @Override
        protected void paint(Event event, Object element) {
            GC gc = event.gc;
            Color foreground = gc.getForeground();
            Color background = gc.getBackground();

            IRetrieval retrieval = (IRetrieval) element;
            float percentage = Math.max(0, retrieval.getPercentage());
            String text = positionString(retrieval);

            Rectangle bounds = ((TableItem) event.item).getBounds(event.index);
            int width = (int) ((bounds.width - 1) * percentage);
            gc.setBackground(downloadBackgroundColor);
            gc.fillRectangle(event.x, event.y, width, event.height);

            Point size = event.gc.textExtent(text);
            int offset = Math.max(0, (event.height - size.y) / 2);
            gc.setForeground(event.display.getSystemColor(SWT.COLOR_LIST_FOREGROUND));
            gc.drawText(text, event.x + 2, event.y + offset, true);

            gc.setForeground(background);
            gc.setBackground(foreground);
        }

        @Override
        protected void measure(Event event, Object element) {
        }
    });
}

From source file:au.gov.ga.earthsci.bookmark.part.BookmarksPart.java

License:Apache License

private void initList(Composite parent) {
    Composite tableHolder = new Composite(parent, SWT.NONE);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = true;//from  w  ww . ja v  a 2s  .co m
    gd.horizontalAlignment = GridData.FILL;
    tableHolder.setLayoutData(gd);

    TableColumnLayout layout = new TableColumnLayout();
    tableHolder.setLayout(layout);

    bookmarkListTableViewer = new TableViewer(tableHolder,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    bookmarkListTableViewer.getTable().setHeaderVisible(false);
    bookmarkListTableViewer.getTable().setLinesVisible(false);

    bookmarkListTableViewer.getTable().setLayoutData(gd);

    ObservableListContentProvider contentProvider = new ObservableListContentProvider();
    bookmarkListTableViewer.setContentProvider(contentProvider);

    IObservableMap labelMap = BeanProperties.value("name").observeDetail(contentProvider.getKnownElements()); //$NON-NLS-1$

    TableViewerColumn column = new TableViewerColumn(bookmarkListTableViewer, SWT.LEFT);
    column.setEditingSupport(new BookmarkNameEditingSupport(bookmarkListTableViewer));
    column.setLabelProvider(new ObservableMapCellLabelProvider(labelMap) {
        @Override
        public void update(ViewerCell cell) {
            super.update(cell);
            cell.setText(" " + ((IBookmark) cell.getElement()).getName()); //$NON-NLS-1$
            cell.setImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_BOOKMARKS));
        }
    });
    ColumnLayoutData cld = new ColumnWeightData(12);
    layout.setColumnData(column.getColumn(), cld);

    // Allow edit (rename) only via programmatic access (rename command) 
    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(
            bookmarkListTableViewer) {
        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };
    TableViewerEditor.create(bookmarkListTableViewer, activationStrategy,
            ColumnViewerEditor.KEYBOARD_ACTIVATION);

    // Populate the current selection with the actual bookmark items
    bookmarkListTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) bookmarkListTableViewer.getSelection();
            List<?> list = selection.toList();
            selectionService.setSelection(list.toArray(new IBookmark[list.size()]));
        }
    });

    // Apply the bookmark on double click
    bookmarkListTableViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            controller.apply((IBookmark) ((IStructuredSelection) event.getSelection()).getFirstElement());
        }
    });

    // Deselect when clicking outside a valid row
    bookmarkListTableViewer.getTable().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseUp(MouseEvent e) {
            if (bookmarkListTableViewer.getTable().getItem(new Point(e.x, e.y)) == null) {
                bookmarkListTableViewer.setSelection(null);
            }
        }
    });

}

From source file:au.gov.ga.earthsci.bookmark.part.editor.LayersPropertyEditor.java

License:Apache License

@Override
public Control createControl(Composite parent) {
    container = new Composite(parent, SWT.NONE);
    container.setLayoutData(new GridData(GridData.FILL_BOTH));
    container.setLayout(new GridLayout(1, false));

    Label l = new Label(container, SWT.TITLE);
    l.setText(Messages.LayersPropertyEditor_LayerStateLabel);

    Table table = new Table(container,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.CHECK);

    layerTable = new CheckboxTableViewer(table);
    layerTable.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    layerTable.setContentProvider(ArrayContentProvider.getInstance());
    layerTable.getTable().setHeaderVisible(true);
    layerTable.getTable().setLinesVisible(true);

    TableViewerColumn col = new TableViewerColumn(layerTable, SWT.NONE);
    col.getColumn().setWidth(200);//www  .  j  a v  a2s.  co  m
    col.getColumn().setText(Messages.LayersPropertyEditor_LayerStateLabelColumnLabel);
    col.getColumn().setResizable(true);
    col.getColumn().setMoveable(false);

    col = new TableViewerColumn(layerTable, SWT.NONE);
    col.getColumn().setWidth(100);
    col.getColumn().setText(Messages.LayersPropertyEditor_LayerStateOpacityColumnLabel);
    col.getColumn().setResizable(true);
    col.getColumn().setMoveable(false);
    col.setEditingSupport(new EditingSupport(col.getViewer()) {

        @Override
        protected CellEditor getCellEditor(Object element) {
            TextCellEditor textCellEditor = new TextCellEditor(layerTable.getTable());
            textCellEditor.setValidator(new ICellEditorValidator() {
                @Override
                public String isValid(Object value) {
                    try {
                        Double.parseDouble((String) value);
                        return null;
                    } catch (Exception e) {
                        return Messages.LayersPropertyEditor_InvalidOpacityMessage;
                    }
                }
            });
            return textCellEditor;
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }

        @SuppressWarnings("unchecked")
        @Override
        protected Object getValue(Object element) {
            return Double.toString(((Entry<URI, Double>) element).getValue());
        }

        @SuppressWarnings("unchecked")
        @Override
        protected void setValue(Object element, Object value) {
            ((Entry<URI, Double>) element).setValue(Util.clamp(Double.parseDouble((String) value), 0, 1));
            layerTable.refresh(element, true);
        }

    });

    layerTable.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            @SuppressWarnings("unchecked")
            Entry<URI, Double> entry = (Entry<URI, Double>) cell.getElement();
            if (cell.getColumnIndex() == 0) {
                cell.setText(entry.getKey().toString());
            } else {
                cell.setText(Double.toString(entry.getValue()));
            }
        }
    });

    fillFieldsFromProperty(getProperty());

    return container;
}

From source file:au.gov.ga.earthsci.bookmark.ui.BookmarksPart.java

License:Apache License

private void initList(Composite parent) {
    Composite tableHolder = new Composite(parent, SWT.NONE);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = true;//from   ww w .  j a v  a  2 s . co  m
    gd.horizontalAlignment = GridData.FILL;
    tableHolder.setLayoutData(gd);

    TableColumnLayout layout = new TableColumnLayout();
    tableHolder.setLayout(layout);

    bookmarkListTableViewer = new TableViewer(tableHolder,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    bookmarkListTableViewer.getTable().setHeaderVisible(false);
    bookmarkListTableViewer.getTable().setLinesVisible(false);

    bookmarkListTableViewer.getTable().setLayoutData(gd);

    ObservableListContentProvider<IBookmark> contentProvider = new ObservableListContentProvider<IBookmark>(
            IBookmark.class);
    bookmarkListTableViewer.setContentProvider(contentProvider);

    IObservableSet<IBookmark> knownElements = contentProvider.getKnownElements();
    IObservableMap<IBookmark, String> nameMap = BeanProperties.value(IBookmark.class, "name", String.class) //$NON-NLS-1$
            .observeDetail(knownElements);

    TableViewerColumn column = new TableViewerColumn(bookmarkListTableViewer, SWT.LEFT);
    column.setEditingSupport(new BookmarkNameEditingSupport(bookmarkListTableViewer));
    column.setLabelProvider(new ObservableMapCellLabelProvider<IBookmark, String>(nameMap) {
        @Override
        public void update(ViewerCell cell) {
            super.update(cell);
            cell.setText(" " + ((IBookmark) cell.getElement()).getName()); //$NON-NLS-1$
            cell.setImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_BOOKMARKS));
        }
    });
    ColumnLayoutData cld = new ColumnWeightData(12);
    layout.setColumnData(column.getColumn(), cld);

    // Allow edit (rename) only via programmatic access (rename command)
    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(
            bookmarkListTableViewer) {
        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };
    TableViewerEditor.create(bookmarkListTableViewer, activationStrategy,
            ColumnViewerEditor.KEYBOARD_ACTIVATION);

    // Populate the current selection with the actual bookmark items
    bookmarkListTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) bookmarkListTableViewer.getSelection();
            List<?> list = selection.toList();
            selectionService.setSelection(list.toArray(new IBookmark[list.size()]));
        }
    });

    // Apply the bookmark on double click
    bookmarkListTableViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            controller.apply((IBookmark) ((IStructuredSelection) event.getSelection()).getFirstElement());
        }
    });

    // Deselect when clicking outside a valid row
    bookmarkListTableViewer.getTable().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseUp(MouseEvent e) {
            if (bookmarkListTableViewer.getTable().getItem(new Point(e.x, e.y)) == null) {
                bookmarkListTableViewer.setSelection(null);
            }
        }
    });

}

From source file:au.gov.ga.earthsci.bookmark.ui.editor.LayersPropertyEditor.java

License:Apache License

/**
 * Creates a column with the given information
 * /*from w w  w  .  ja v  a  2  s.c o m*/
 * @param columnHeader
 *            The header title for the column
 * @param index
 *            The index at which this column will be created.
 * @param editSupport
 */
private void createTableColumn(String columnHeader, boolean editSupport) {
    colToName.put(layerTable.getTable().getColumnCount(), columnHeader);
    TableViewerColumn col = new TableViewerColumn(layerTable, SWT.NONE);

    col.getColumn().setWidth(200);
    col.getColumn().setText(columnHeader);
    col.getColumn().setResizable(true);
    col.getColumn().setMoveable(false);
    tableColumns.add(col);

    layerTable.setLabelProvider(labelProv);
    if (editSupport) {
        col.setEditingSupport(getEditorSupport(col));
    }
}

From source file:au.gov.ga.earthsci.common.ui.color.ColorMapEditor.java

License:Apache License

private void addEntriesList(Composite parent) {
    Composite tableContainer = new Composite(parent, SWT.NONE);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.horizontalSpan = 2;//from   w  ww  . ja va 2 s  .com
    tableContainer.setLayoutData(gd);
    TableColumnLayout layout = new TableColumnLayout();
    tableContainer.setLayout(layout);

    // Not sure why, but columns and column label providers only work when SWT.VIRTUAL is used
    entriesTable = new TableViewer(tableContainer, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER | SWT.VIRTUAL);
    entriesTable.setContentProvider(ArrayContentProvider.getInstance());
    entriesTable.getTable().setHeaderVisible(true);
    entriesTable.getTable().setLinesVisible(true);
    entriesTable.setInput(map.getEntries().entrySet());

    TableViewerColumn valueColumn = new TableViewerColumn(entriesTable, SWT.NONE);
    valueColumn.getColumn().setText(Messages.ColorMapEditor_TableValueColumnLabel);
    valueColumn.setLabelProvider(new ColumnLabelProvider() {
        @SuppressWarnings("unchecked")
        @Override
        public String getText(Object element) {
            Double value = ((Entry<Double, Color>) element).getKey();
            String result = "" + value; //$NON-NLS-1$
            if (map.isPercentageBased()) {
                result += " (" + (int) (value * 100) + "%)"; //$NON-NLS-1$ //$NON-NLS-2$
            }
            return result;
        }
    });
    layout.setColumnData(valueColumn.getColumn(), new ColumnPixelData(80, false));

    TableViewerColumn colorNameColumn = new TableViewerColumn(entriesTable, SWT.NONE);
    colorNameColumn.getColumn().setText(Messages.ColorMapEditor_TableColorColumnLabel);
    colorNameColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            Color color = getColorFromElement(element);
            return "RGBA(" + color.getRed() + ", " //$NON-NLS-1$ //$NON-NLS-2$
                    + color.getGreen() + ", " //$NON-NLS-1$
                    + color.getBlue() + ", " //$NON-NLS-1$
                    + color.getAlpha() + ")"; //$NON-NLS-1$
        }

        @Override
        public String getToolTipText(Object element) {
            return "#" + getColorKey(getColorFromElement(element)); //$NON-NLS-1$
        }

        @SuppressWarnings("unchecked")
        private Color getColorFromElement(Object element) {
            return ((Entry<Double, Color>) element).getValue();
        }

        private String getColorKey(Color color) {
            return Integer.toHexString(color.getRGB());
        }

    });
    layout.setColumnData(colorNameColumn.getColumn(), new ColumnWeightData(100, false));

    ColumnViewerToolTipSupport.enableFor(entriesTable, ToolTip.NO_RECREATE);
}

From source file:au.gov.ga.earthsci.common.ui.dialogs.SpatialReferenceSelectorDialog.java

License:Apache License

private void addReferencesTableViewer(Composite container) {
    Composite tableContainer = new Composite(container, SWT.NONE);
    tableContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
    TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tableContainer.setLayout(tableColumnLayout);

    referencesView = new TableViewer(tableContainer,
            SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.SINGLE | SWT.VIRTUAL | SWT.FULL_SELECTION);
    referencesView.setContentProvider(ArrayContentProvider.getInstance());
    referencesView.setInput(SpatialReferences.get());
    referencesView.getTable().setLinesVisible(true);
    referencesView.getTable().setHeaderVisible(true);

    TableViewerColumn epsgColumn = new TableViewerColumn(referencesView, SWT.NONE);
    epsgColumn.getColumn().setText(Messages.getString("SpatialReferenceSelectorDialog.CodeColumnTitle")); //$NON-NLS-1$
    tableColumnLayout.setColumnData(epsgColumn.getColumn(), new ColumnPixelData(80));
    epsgColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override/*from   w w w.  ja  v a  2  s.c o m*/
        public String getText(Object element) {
            return ((SpatialReferenceSummary) element).getEpsg();
        }
    });

    TableViewerColumn nameColumn = new TableViewerColumn(referencesView, SWT.NONE);
    nameColumn.getColumn().setText(Messages.getString("SpatialReferenceSelectorDialog.NameColumnTitle")); //$NON-NLS-1$
    tableColumnLayout.setColumnData(nameColumn.getColumn(), new ColumnWeightData(100));
    nameColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((SpatialReferenceSummary) element).getName();
        }
    });
}