Example usage for org.eclipse.jface.viewers TreeViewerColumn getColumn

List of usage examples for org.eclipse.jface.viewers TreeViewerColumn getColumn

Introduction

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

Prototype

public TreeColumn getColumn() 

Source Link

Usage

From source file:fr.inria.linuxtools.tmf.ui.viewers.statistics.TmfStatisticsViewer.java

License:Open Source License

/**
 * Initialize the content that will be drawn in this viewer
 *
 * @param parent/*from  w ww . j a v a  2 s .c om*/
 *            The parent of the control to create
 */
protected void initContent(Composite parent) {
    final List<TmfBaseColumnData> columnDataList = getColumnDataProvider().getColumnData();

    fTreeViewer = new TreeViewer(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    fTreeViewer.setContentProvider(new TmfTreeContentProvider());
    fTreeViewer.getTree().setHeaderVisible(true);
    fTreeViewer.setUseHashlookup(true);

    // Creates the columns defined by the column data provider
    for (final TmfBaseColumnData columnData : columnDataList) {
        final TreeViewerColumn treeColumn = new TreeViewerColumn(fTreeViewer, columnData.getAlignment());
        treeColumn.getColumn().setText(columnData.getHeader());
        treeColumn.getColumn().setWidth(columnData.getWidth());
        treeColumn.getColumn().setToolTipText(columnData.getTooltip());

        // If is dummy column
        if (columnData == columnDataList.get(TmfBaseColumnDataProvider.StatsColumn.DUMMY.getIndex())) {
            treeColumn.getColumn().setResizable(false);
        }

        // A comparator is defined.
        if (columnData.getComparator() != null) {
            // Adds a listener on the columns header for sorting purpose.
            treeColumn.getColumn().addSelectionListener(new SelectionAdapter() {

                private ViewerComparator reverseComparator;

                @Override
                public void widgetSelected(SelectionEvent e) {
                    // Initializes the reverse comparator once.
                    if (reverseComparator == null) {
                        reverseComparator = new ViewerComparator() {
                            @Override
                            public int compare(Viewer viewer, Object e1, Object e2) {
                                return -1 * columnData.getComparator().compare(viewer, e1, e2);
                            }
                        };
                    }

                    if (fTreeViewer.getTree().getSortDirection() == SWT.UP
                            || fTreeViewer.getTree().getSortColumn() != treeColumn.getColumn()) {
                        /*
                         * Puts the descendant order if the old order was up
                         * or if the selected column has changed.
                         */
                        fTreeViewer.setComparator(columnData.getComparator());
                        fTreeViewer.getTree().setSortDirection(SWT.DOWN);
                    } else {
                        /*
                         * Puts the ascendant ordering if the selected
                         * column hasn't changed.
                         */
                        fTreeViewer.setComparator(reverseComparator);
                        fTreeViewer.getTree().setSortDirection(SWT.UP);
                    }
                    fTreeViewer.getTree().setSortColumn(treeColumn.getColumn());
                }
            });
        }
        treeColumn.setLabelProvider(columnData.getLabelProvider());
    }

    // Handler that will draw the percentages and the bar charts.
    fTreeViewer.getTree().addListener(SWT.EraseItem, new Listener() {
        @Override
        public void handleEvent(Event event) {
            if (columnDataList.get(event.index).getPercentageProvider() != null) {

                TmfStatisticsTreeNode node = (TmfStatisticsTreeNode) event.item.getData();

                // If node is hidden, exit immediately.
                if (TmfBaseColumnDataProvider.HIDDEN_FOLDER_LEVELS.contains(node.getName())) {
                    return;
                }

                // Otherwise, get percentage and draw bar and text if applicable.
                double percentage = columnDataList.get(event.index).getPercentageProvider().getPercentage(node);

                // The item is selected.
                if ((event.detail & SWT.SELECTED) > 0) {
                    // Draws our own background to avoid overwriting the bar.
                    event.gc.fillRectangle(event.x, event.y, event.width, event.height);
                    event.detail &= ~SWT.SELECTED;
                }

                // Drawing the percentage text
                // if events are present in top node
                // and the current node is not the top node
                // and if is total or partial events column.
                // If not, exit the method.
                if (!((event.index == TmfBaseColumnDataProvider.StatsColumn.TOTAL.getIndex()
                        || event.index == TmfBaseColumnDataProvider.StatsColumn.PARTIAL.getIndex())
                        && node != node.getTop())) {
                    return;
                }

                long eventValue = event.index == TmfBaseColumnDataProvider.StatsColumn.TOTAL.getIndex()
                        ? node.getTop().getValues().getTotal()
                        : node.getTop().getValues().getPartial();

                if (eventValue != 0) {

                    int oldAlpha = event.gc.getAlpha();
                    Color oldForeground = event.gc.getForeground();
                    Color oldBackground = event.gc.getBackground();

                    // Bar to draw
                    if (percentage != 0) {
                        /*
                         * Draws a transparent gradient rectangle from the
                         * color of foreground and background.
                         */
                        int barWidth = (int) ((fTreeViewer.getTree().getColumn(event.index).getWidth() - 8)
                                * percentage);
                        event.gc.setAlpha(64);
                        event.gc.setForeground(event.item.getDisplay().getSystemColor(SWT.COLOR_BLUE));
                        event.gc.setBackground(
                                event.item.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
                        event.gc.fillGradientRectangle(event.x, event.y, barWidth, event.height, true);
                        event.gc.drawRectangle(event.x, event.y, barWidth, event.height);

                        // Restore old values
                        event.gc.setBackground(oldBackground);
                        event.gc.setAlpha(oldAlpha);
                        event.detail &= ~SWT.BACKGROUND;

                    }

                    String percentageText = TmfStatisticsFormatter.toPercentageText(percentage);
                    String absoluteNumberText = TmfStatisticsFormatter.toColumnData(node,
                            TmfBaseColumnDataProvider.StatsColumn.getColumn(event.index));

                    if (event.width > event.gc.stringExtent(percentageText).x
                            + event.gc.stringExtent(absoluteNumberText).x) {
                        int textHeight = event.gc.stringExtent(percentageText).y;
                        event.gc.setForeground(event.item.getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY));
                        event.gc.drawText(percentageText, event.x, event.y + (event.height - textHeight) / 2,
                                true);
                    }

                    // Restores old values
                    event.gc.setForeground(oldForeground);

                }
            }
        }

    });

    // Initializes the comparator parameters
    fTreeViewer.setComparator(columnDataList.get(0).getComparator());
    fTreeViewer.getTree().setSortColumn(fTreeViewer.getTree().getColumn(0));
    fTreeViewer.getTree().setSortDirection(SWT.DOWN);
}

From source file:fr.inria.linuxtools.tmf.ui.viewers.tree.TmfTreeColumnData.java

License:Open Source License

/**
 * Create a TreeColumn with this column's data and adds it to a {@link Tree}
 *
 * @param treeViewer/*from  ww w. j a v  a 2  s .  c  o m*/
 *            The {@link TreeViewer} object to add the column to
 * @return The newly created {@link TreeViewerColumn}
 */
@NonNull
public TreeViewerColumn createColumn(final TreeViewer treeViewer) {
    final TreeViewerColumn column = new TreeViewerColumn(treeViewer, getAlignment());
    final TmfTreeColumnData columnData = this;
    column.getColumn().setText(getText());
    if (getWidth() != -1) {
        column.getColumn().setWidth(getWidth());
    }
    if (getTooltip() != null) {
        column.getColumn().setToolTipText(getTooltip());
    }
    column.getColumn().setMoveable(isMovable());

    /* Add the comparator to sort the column */
    if (getComparator() != null) {
        column.getColumn().addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {

                if (treeViewer.getTree().getSortDirection() == SWT.UP
                        || treeViewer.getTree().getSortColumn() != column.getColumn()) {
                    /*
                     * Puts the descendant order if the old order was up
                     * or if the selected column has changed.
                     */
                    treeViewer.setComparator(columnData.getComparator());
                    treeViewer.getTree().setSortDirection(SWT.DOWN);
                } else {
                    ViewerComparator reverseComparator;
                    /* Initializes the reverse comparator. */
                    reverseComparator = new ViewerComparator() {
                        @Override
                        public int compare(Viewer viewer, Object e1, Object e2) {
                            return -1 * columnData.getComparator().compare(viewer, e1, e2);
                        }
                    };

                    /*
                     * Puts the ascendant ordering if the selected
                     * column hasn't changed.
                     */
                    treeViewer.setComparator(reverseComparator);
                    treeViewer.getTree().setSortDirection(SWT.UP);
                }
                treeViewer.getTree().setSortColumn(column.getColumn());
            }
        });
    }

    return column;
}

From source file:fr.inria.soctrace.framesoc.ui.piechart.view.StatisticsPieChartView.java

License:Open Source License

private void createColumns() {
    for (final StatisticsTableColumn col : StatisticsTableColumn.values()) {
        TreeViewerColumn elemsViewerCol = new TreeViewerColumn(tableTreeViewer, SWT.NONE);

        if (col.equals(StatisticsTableColumn.NAME)) {
            // add a filter for this column
            nameFilter = new StatisticsTableRowFilter(col);
            tableTreeViewer.addFilter(nameFilter);
            // the label provider puts also the image
            StatisticsTableRowLabelProvider p = new StatisticsTableRowLabelProvider(col);
            nameProviders.add(p);/*from   ww w. jav a  2  s. co m*/
            elemsViewerCol.setLabelProvider(p);
        } else if (col.equals(StatisticsTableColumn.VALUE)) {
            elemsViewerCol.setLabelProvider(new ValueLabelProvider(col, this));
        } else {
            elemsViewerCol.setLabelProvider(new TableRowLabelProvider(col));
        }

        final TreeColumn elemsTableCol = elemsViewerCol.getColumn();
        elemsTableCol.setWidth(col.getWidth());
        elemsTableCol.setText(col.getHeader());
        elemsTableCol.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                comparator.setColumn(col);
                tableTreeViewer.getTree().setSortDirection(comparator.getDirection());
                tableTreeViewer.getTree().setSortColumn(elemsTableCol);
                tableTreeViewer.refresh();
            }
        });
    }
}

From source file:fr.openpeople.rdal.ide.view.traceability.navigator.AbstractShowHideOutlineCoverageActionDelegate.java

License:Open Source License

protected void setCoverageColumnVisible(final boolean pb_value) {
    final TreeViewer viewer = getTreeViewer(outlineView.getCurrentPage());

    if (viewer != null) {
        final Tree tree = viewer.getTree();

        if (pb_value) {
            if (tree.getColumnCount() != 2) {
                parentLayout = tree.getParent().getLayout();
                final TreeColumnLayout colLayout = new TreeColumnLayoutFixed();
                tree.getParent().setLayout(colLayout);
                final TreeColumn resourceColumn = new TreeColumn(tree, SWT.NONE);
                resourceColumn.setText("Resources");
                resourceColumn.setWidth(150);
                final ColumnWeightData colDataRes = new ColumnWeightData(50, 200);
                colLayout.setColumnData(resourceColumn, colDataRes);
                resourceColumn.setWidth(colDataRes.minimumWidth);

                final TreeViewerColumn coverageViewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
                coverageViewerColumn.setLabelProvider(new CoverageLabelProvider(coverageViewerColumn, viewer,
                        RdalIdePlugin.getDefault().getDefinedCoverageListers(),
                        RdalIdePlugin.getDefault().getExceptionHandler()));

                final TreeColumn coverageColumn = coverageViewerColumn.getColumn();
                coverageColumn.setText("Verif. Rate");
                final ColumnWeightData colDataCov = new ColumnWeightData(50, 80);
                colLayout.setColumnData(coverageColumn, colDataCov);
                // DB 30/05/2011 Set width now seems necessary. Change in JFace?
                coverageColumn.setWidth(colDataCov.minimumWidth);
            }/*from  ww w.ja v a  2  s  .  c o  m*/
        } else {
            for (final TreeColumn column : tree.getColumns()) {
                column.dispose();
            }

            tree.getParent().setLayout(parentLayout);
        }

        tree.setHeaderVisible(pb_value);
        tree.getParent().layout();
        viewer.refresh();
    }
}

From source file:fr.openpeople.rdal.ide.view.traceability.navigator.CoverageLabelProvider.java

License:Open Source License

public CoverageLabelProvider(final TreeViewerColumn p_column2, final TreeViewer p_commonViewer,
        final Collection<ICoverageLister> p_coverageListers, final IExceptionHandler p_exceptionHandler) {
    column = p_column2.getColumn();
    viewer = p_commonViewer;/*from   w w  w.j ava2s .  co  m*/
    coverageListers = p_coverageListers;
    exceptionHandler = p_exceptionHandler;
}

From source file:fr.openpeople.rdal.ide.view.traceability.navigator.ShowHideCommonNavigatorCoverageActionDelegate.java

License:Open Source License

private void setCoverageColumnVisible(final boolean pb_value) {
    final TreeViewer viewer = getTreeVIewer();
    final Tree tree = viewer.getTree();

    if (pb_value) {
        parentLayout = tree.getParent().getLayout();
        final TreeColumnLayout colLayout = new TreeColumnLayout();
        tree.getParent().setLayout(colLayout);
        final TreeColumn resourceColumn = new TreeColumn(tree, SWT.NONE);
        resourceColumn.setText("Resources");
        final ColumnWeightData colDataRes = new ColumnWeightData(70, 200);
        colLayout.setColumnData(resourceColumn, colDataRes);

        final TreeViewerColumn coverageViewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
        coverageViewerColumn.setLabelProvider(new CoverageLabelProvider(coverageViewerColumn, viewer,
                RdalIdePlugin.getDefault().getDefinedCoverageListers(),
                RdalIdePlugin.getDefault().getExceptionHandler()));

        final TreeColumn coverageColumn = coverageViewerColumn.getColumn();
        coverageColumn.setText("Verif. Rate");
        final ColumnWeightData colDataCov = new ColumnWeightData(30, 40);
        colLayout.setColumnData(coverageColumn, colDataCov);
    } else {//from  w  ww  .ja v a 2  s .c  om
        for (final TreeColumn column : tree.getColumns()) {
            column.dispose();
        }

        tree.getParent().setLayout(parentLayout);
    }

    // This works for both Windows and Linux
    tree.setHeaderVisible(pb_value);
    tree.getParent().layout();
    viewer.refresh();

    //      final TreeColumn coverageColumn = tree.getColumn( 1 );

    //      coverageColumn.setResizable( pb_value );
    // Set width does not work for Linux platforms
    //      coverageColumn.setWidth( pb_value ? 150 : 0 );
}

From source file:gov.nasa.arc.spife.core.plan.rules.view.PlanRulesTreeViewer.java

License:Open Source License

public PlanRulesTreeViewer(Composite parent) {
    super(parent, SWT.MULTI | SWT.FULL_SELECTION);
    addDoubleClickListener(new IDoubleClickListener() {
        @Override/* w  w w  . j a  va 2 s . c  om*/
        public void doubleClick(DoubleClickEvent event) {
            if (event.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection selection = (IStructuredSelection) event.getSelection();
                Object element = selection.getFirstElement();
                if (element != null) {
                    // do nothing
                }
            }
        }
    });
    Tree tree = getTree();
    tree.setData("name", "PlanRuleView.ruleTree");
    tree.setHeaderVisible(true);
    tree.addMouseMoveListener(new MouseMoveListener() {
        @Override
        public void mouseMove(MouseEvent e) {
            updateToolTip(e);
        }
    });
    setAutoExpandLevel(3);
    for (PlanRulesColumnSpecification spec : PlanRulesColumnSpecification.values()) {
        TreeViewerColumn viewerColumn = new TreeViewerColumn(this, SWT.NONE);
        final TreeColumn column = viewerColumn.getColumn();
        column.setData(PlanRulesColumnSpecification.class.getCanonicalName(), spec);
        column.setText(spec.getHeaderText());
        int defaultWidth = spec.getDefaultWidth();
        column.setWidth(defaultWidth);
        column.pack();
        if (defaultWidth > column.getWidth()) {
            // ensure pack only makes columns wider than default
            column.setWidth(defaultWidth);
        }
        final CellLabelProvider labelProvider;
        try {
            labelProvider = spec.getLabelProviderClass().newInstance();
        } catch (InstantiationException e) {
            Logger.getLogger(PlanRulesTreeViewer.class).error("failed to instantiate column", e);
            continue;
        } catch (IllegalAccessException e) {
            Logger.getLogger(PlanRulesTreeViewer.class).error("failed to instantiate column", e);
            continue;
        }
        viewerColumn.setLabelProvider(labelProvider);
        column.addSelectionListener(new SelectionListener() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                handleColumnSelected(labelProvider, column);
            }

            @Override
            public void widgetDefaultSelected(SelectionEvent e) {
                handleColumnSelected(labelProvider, column);
            }
        });
    }
    addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            Object element = event.getElement();
            refresh(element, true);
            Object object = getParentElement(element);
            while (object != null) {
                update(object, null);
                object = getParentElement(object);
            }
        }
    });
    setComparator(new PlanRulesViewerComparator());
}

From source file:gov.nasa.ensemble.core.plan.advisor.view.PlanAdvisorTreeViewer.java

License:Open Source License

public PlanAdvisorTreeViewer(Composite parent) {
    super(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    Tree tree = getTree();//w ww .jav a 2 s .  c  o  m
    tree.setData("name", "PlanAdvisorView.violationTree");
    tree.setLinesVisible(true);
    tree.setHeaderVisible(true);
    setAutoExpandLevel(1);
    TreeColumn sortColumn = null;
    ViolationViewerComparator violationViewerComparator = new ViolationViewerComparator();
    for (PlanAdvisorColumnSpecification spec : PlanAdvisorViewPreferences.getVisibleColumns()) {
        TreeViewerColumn viewerColumn = new TreeViewerColumn(this, SWT.NONE);
        final TreeColumn column = viewerColumn.getColumn();
        column.setData(PlanAdvisorColumnSpecification.class.getCanonicalName(), spec);
        column.setText(spec.getHeaderText());
        column.setMoveable(true);
        int defaultWidth = spec.getDefaultWidth();
        column.setWidth(defaultWidth);
        column.pack();
        if (defaultWidth > column.getWidth()) {
            // ensure pack only makes columns wider than default
            column.setWidth(defaultWidth);
        }
        final ViolationKey violationKey = spec.getViolationKey();
        ColumnLabelProvider labelProvider = new ViolationColumnLabelProvider(violationKey);
        viewerColumn.setLabelProvider(labelProvider);
        if (violationKey == violationViewerComparator.getKey()) {
            sortColumn = column;
        }
        column.addControlListener(new ControlListener() {
            @Override
            public void controlMoved(ControlEvent e) {
                updateOrder();
            }

            @Override
            public void controlResized(ControlEvent e) {
                // ignore resizes for now
            }
        });
        column.addSelectionListener(new SelectionListener() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                handleColumnSelected(violationKey, column);
            }

            @Override
            public void widgetDefaultSelected(SelectionEvent e) {
                handleColumnSelected(violationKey, column);
            }
        });
    }
    setComparator(violationViewerComparator);
    tree.setSortColumn(sortColumn);
    tree.setSortDirection(SWT.DOWN);
    tree.addListener(SWT.PaintItem, new PaintListener(tree));
}

From source file:gov.redhawk.ide.codegen.ui.internal.GenerateFilesDialog.java

License:Open Source License

@Override
protected Control createDialogArea(final Composite parent) {
    final Composite container = (Composite) super.createDialogArea(parent);
    final GridLayout gridLayout = new GridLayout(2, false);
    container.setLayout(gridLayout);/* w  ww  .j av  a  2 s.c o m*/

    boolean warning = false;
    for (FileStatus s : this.fileStatus) {
        if (!s.getDoItDefault() && s.getType() != FileStatus.Type.USER) {
            warning = true;
            break;
        }
    }
    if (warning) {
        final Image image = parent.getDisplay().getSystemImage(SWT.ICON_WARNING);
        final Label warningLabel = new Label(container, SWT.NONE);
        warningLabel.setImage(image);
        warningLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));

        final Label label = new Label(container, SWT.NONE);
        label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false));
        label.setText("Selected files will be generated and their current contents will be lost.\n"
                + "Unselected files have had their content modified since last generation.");
    } else {
        final Image image = parent.getDisplay().getSystemImage(SWT.ICON_INFORMATION);
        final Label warningLabel = new Label(container, SWT.NONE);
        warningLabel.setImage(image);
        warningLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));

        final Label label = new Label(container, SWT.NONE);
        label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false));
        label.setText("Select files to be generated:");
    }

    Composite treeContainer = new Composite(container, SWT.None);
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1);
    data.widthHint = 600;
    treeContainer.setLayoutData(data);
    TreeColumnLayout layout = new TreeColumnLayout();
    treeContainer.setLayout(layout);
    this.treeViewer = new CheckboxTreeViewer(treeContainer,
            SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL);
    this.treeViewer.setContentProvider(new FileStatusContentProvider());
    this.treeViewer.getTree().setLinesVisible(true);
    this.treeViewer.getTree().setHeaderVisible(true);

    TreeViewerColumn column = new TreeViewerColumn(this.treeViewer, SWT.None);
    column.getColumn().setResizable(true);
    column.getColumn().setMoveable(false);
    column.getColumn().setText("File Name");
    column.setLabelProvider(new TreeColumnViewerLabelProvider(new LabelProvider()));
    layout.setColumnData(column.getColumn(), new ColumnWeightData(80, 80, true));

    column = new TreeViewerColumn(this.treeViewer, SWT.None);
    column.getColumn().setResizable(true);
    column.getColumn().setMoveable(false);
    column.getColumn().setText("Action");
    column.setLabelProvider(new TreeColumnViewerLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            return ((FileStatus) element).getDesiredAction().toString();
        }
    }));
    layout.setColumnData(column.getColumn(), new ColumnWeightData(10, 80, true));

    column = new TreeViewerColumn(this.treeViewer, SWT.None);
    column.getColumn().setResizable(true);
    column.getColumn().setMoveable(false);
    column.getColumn().setText("Type");
    column.setLabelProvider(new TreeColumnViewerLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            return ((FileStatus) element).getType().toString();
        }
    }));
    layout.setColumnData(column.getColumn(), new ColumnWeightData(10, 80, true));

    this.treeViewer.setCheckStateProvider(new ICheckStateProvider() {

        @Override
        public boolean isGrayed(Object element) {
            return false;
        }

        @Override
        public boolean isChecked(Object element) {
            if (element instanceof FileStatus) {
                return ((FileStatus) element).isDoIt();
            }
            return false;
        }
    });
    this.treeViewer.addCheckStateListener(new ICheckStateListener() {

        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            FileStatus s = (FileStatus) event.getElement();
            if (checkFile(event.getChecked(), s)) {
                s.setDoIt(event.getChecked());
            }
            treeViewer.refresh();
        }
    });
    this.treeViewer.addFilter(new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (((FileStatus) element).getType() == FileStatus.Type.USER) {
                return showUserFiles;
            }
            return true;
        }
    });
    this.treeViewer.setComparator(new ViewerComparator());

    this.treeViewer.setInput(this.fileStatus);

    Composite panel = new Composite(container, SWT.NO_FOCUS);
    panel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false, 2, 1));
    panel.setLayout(new RowLayout());

    final Button restore = new Button(panel, SWT.PUSH);
    restore.setText("Defaults");
    restore.setToolTipText("Clicking this will restore the selection to the default set of files");
    restore.addListener(SWT.Selection, new Listener() {
        @Override
        public void handleEvent(final Event event) {
            selectDefaults();
        }
    });

    final Button selectAll = new Button(panel, SWT.PUSH);
    selectAll.setText("Select All");
    selectAll.setToolTipText("Clicking this will select all files");
    selectAll.addListener(SWT.Selection, new Listener() {
        @Override
        public void handleEvent(final Event event) {
            selectAllFiles();
        }
    });

    final Button clear = new Button(panel, SWT.PUSH);
    clear.setText("Clear");
    clear.setToolTipText("Clicking this will deselect all files");
    clear.addListener(SWT.Selection, new Listener() {
        @Override
        public void handleEvent(final Event event) {
            GenerateFilesDialog.this.clear();
        }
    });

    panel = new Composite(container, SWT.NO_FOCUS);
    panel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false, 2, 1));
    panel.setLayout(new GridLayout(1, false));
    Button showUserButton = new Button(panel, SWT.CHECK);
    showUserButton.setText("Show User Files");
    showUserButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            showUserFiles = !showUserFiles;
            treeViewer.refresh();
        }
    });
    final Button alwaysButton = new Button(panel, SWT.CHECK);
    alwaysButton.setText("Always Generate Default Files Without Asking");
    final IPreferenceStore store = RedhawkCodegenUiActivator.getDefault().getPreferenceStore();
    alwaysButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            alwaysButton.getSelection();
            store.setValue(CodegenPreferenceConstants.P_ALWAYS_GENERATE_DEFAULTS, alwaysButton.getSelection());
        }
    });
    alwaysButton.setSelection(store.getBoolean(CodegenPreferenceConstants.P_ALWAYS_GENERATE_DEFAULTS));

    return container;
}

From source file:gov.redhawk.ide.ui.wizard.RedhawkImportWizardPage2.java

License:Open Source License

private void createColumns(Composite workArea, final TreeViewer viewer) {
    TreeViewerColumn nameColumn = new TreeViewerColumn(viewer, SWT.NONE);
    nameColumn.getColumn().setWidth(300);
    nameColumn.getColumn().setText("Project: ");
    nameColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override//from ww w.  j a v  a2s . com
        public String getText(Object element) {
            if (element instanceof ProjectRecord) {
                ProjectRecord project = (ProjectRecord) element;
                String dir = project.projectSystemFile.getParentFile().getAbsolutePath();
                return NLS.bind(DataTransferMessages.WizardProjectsImportPage_projectLabel,
                        project.getProjectName(), dir);
            }
            if (element instanceof ImplWrapper) {
                ImplWrapper implWrapper = (ImplWrapper) element;
                return implWrapper.getImpl().getId() + " (implementation)";
            }
            return "";
        }
    });

    // Get a String array of accepted template id's
    CodeGeneratorTemplatesRegistry reg = new CodeGeneratorTemplatesRegistry();
    ITemplateDesc[] templateDescriptions = reg.getTemplates();
    final String[] templates = new String[templateDescriptions.length];
    for (int i = 0; i < templateDescriptions.length; i++) {
        templates[i] = templateDescriptions[i].getId();
    }

    final TreeViewerColumn templateColumn = new TreeViewerColumn(viewer, SWT.NONE);
    templateColumn.getColumn().setWidth(500);
    templateColumn.getColumn().setText("Template: ");
    templateColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof ImplWrapper) {
                ImplWrapper implWrapper = (ImplWrapper) element;
                return implWrapper.getTemplate();
            } else {
                return "";
            }
        }
    });
    templateColumn.setEditingSupport(new EditingSupport(viewer) {

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

        @Override
        protected CellEditor getCellEditor(Object element) {
            ComboBoxCellEditor cellEditor = new ComboBoxCellEditor(viewer.getTree(), templates, SWT.READ_ONLY);
            return cellEditor;
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof ImplWrapper) {
                ImplWrapper implWrapper = (ImplWrapper) element;
                String templateID = implWrapper.getTemplate();
                int index = Arrays.asList(templates).indexOf(templateID);
                return index;
            } else {
                return 0;
            }
        }

        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof ImplWrapper) {
                ImplWrapper implWrapper = (ImplWrapper) element;
                String template = templates[(Integer) value];
                implWrapper.setTemplate(template);
                viewer.update(element, null);
            }
        }
    });
}