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:com.sonatype.buildserver.eclipse.ui.view.JobView.java

License:Open Source License

private TreeViewerColumn createServerColumn() {
    TreeViewerColumn toRet = new TreeViewerColumn(viewer, SWT.NONE);
    toRet.setLabelProvider(new JobLabelProvider(JobLabelProvider.SERVER_COLUMN));
    toRet.getColumn().setText(Messages.jobView_columns_server);
    toRet.getColumn().setWidth(30);//from ww  w .  ja  v  a  2 s.c  om
    toRet.getColumn().addSelectionListener(columnSelectionListener);
    return toRet;
}

From source file:com.sonatype.buildserver.eclipse.ui.view.JobView.java

License:Open Source License

private TreeViewerColumn createLastBuildColumn() {
    TreeViewerColumn toRet = new TreeViewerColumn(viewer, SWT.NONE);
    toRet.getColumn().setText(Messages.jobView_columns_lastBuild);
    toRet.getColumn().addSelectionListener(columnSelectionListener);
    toRet.getColumn().setWidth(30);//ww  w  .  j av a2s  .  com
    toRet.setLabelProvider(new JobLabelProvider(JobLabelProvider.LAST_BUILD_COLUMN));
    return toRet;
}

From source file:com.svcdelivery.liquibase.eclipse.internal.ui.DataSourceViewPart.java

License:Apache License

@Override
public final void createPartControl(final Composite parent) {
    dataSources = new TreeViewer(parent, SWT.VIRTUAL | SWT.FULL_SELECTION);
    final Tree dataSourcesTree = dataSources.getTree();
    TreeViewerColumn log = new TreeViewerColumn(dataSources, SWT.NONE);
    TreeViewerColumn id = new TreeViewerColumn(dataSources, SWT.NONE);
    TreeViewerColumn tag = new TreeViewerColumn(dataSources, SWT.NONE);
    TreeViewerColumn date = new TreeViewerColumn(dataSources, SWT.NONE);
    TreeViewerColumn type = new TreeViewerColumn(dataSources, SWT.NONE);
    TreeColumn logColumn = log.getColumn();
    TreeColumn idColumn = id.getColumn();
    TreeColumn tagColumn = tag.getColumn();
    TreeColumn dateColumn = date.getColumn();
    TreeColumn typeColumn = type.getColumn();
    logColumn.setText("");
    idColumn.setText("ID");
    tagColumn.setText("Tag");
    dateColumn.setText("Date Ran");
    typeColumn.setText("Type");
    logColumn.setWidth(300);//from   w  w w .  j  a v  a  2  s.  c  o  m
    idColumn.setWidth(150);
    tagColumn.setWidth(150);
    dateColumn.setWidth(150);
    typeColumn.setWidth(100);

    dataSourcesTree.setHeaderVisible(true);
    dataSourcesTree.setLinesVisible(true);
    dataSources.setUseHashlookup(true);
    dataSources.setContentProvider(new DataSourceContentProvider());
    dataSources.setLabelProvider(new DataSourceLabelProvider());
    dataSources.setInput(ProfileManager.getInstance());

    getSite().setSelectionProvider(dataSources);

    MenuManager mgr = new MenuManager();
    mgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
    mgr.addMenuListener(new IMenuListener() {

        @Override
        public void menuAboutToShow(final IMenuManager manager) {
            manager.removeAll();
            ISelection selection = dataSources.getSelection();
            if (selection instanceof StructuredSelection) {
                StructuredSelection ss = (StructuredSelection) selection;
                boolean rollback = true;
                boolean refresh = true;
                Iterator<?> i = ss.iterator();
                while (i.hasNext()) {
                    Object next = i.next();
                    if (!(next instanceof ChangeSetTreeItem)) {
                        rollback = false;
                        break;
                    }
                    if (!(next instanceof IConnectionProfile)) {
                        refresh = false;
                        break;
                    }
                }
                if (rollback) {
                    Shell shell = dataSourcesTree.getShell();
                    IAction action = new RollbackCommandHandler(shell, selection);
                    manager.add(action);
                }
                if (refresh) {
                    IAction action = new DataSourceRefreshCommandHandler(selection);
                    manager.add(action);
                }
            }
        }
    });
    getSite().registerContextMenu(mgr, dataSources);
    Menu menu = mgr.createContextMenu(dataSourcesTree);
    dataSourcesTree.setMenu(menu);

    Activator.getDefault().addDatabaseUpdateListener(this);
}

From source file:com.vmware.vfabric.ide.eclipse.tcserver.insight.internal.ui.InsightPluginsSection.java

License:Open Source License

@Override
public void createSection(Composite parent) {
    super.createSection(parent);
    FormToolkit toolkit = getFormToolkit(parent.getDisplay());

    Section section = toolkit.createSection(parent, ExpandableComposite.TWISTIE | ExpandableComposite.TITLE_BAR
            | Section.DESCRIPTION | ExpandableComposite.FOCUS_TITLE | ExpandableComposite.EXPANDED);
    section.setText("Plugins");
    section.setDescription("Enable plug-ins to gather specific metrics.");
    section.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL));

    Composite composite = toolkit.createComposite(section, SWT.NONE);
    GridLayout layout = new GridLayout(2, false);
    layout.marginHeight = 8;//  w  w w  .j  a  va2s . c om
    layout.marginWidth = 8;
    composite.setLayout(layout);
    toolkit.paintBordersFor(composite);
    section.setClient(composite);

    CheckboxFilteredTree filteredTree = new CheckboxFilteredTree(composite, SWT.FULL_SELECTION | SWT.BORDER,
            new SubstringPatternFilter());
    GridDataFactory.fillDefaults().grab(true, true).hint(SWT.DEFAULT, 200).applyTo(filteredTree);
    pluginViewer = filteredTree.getCheckboxTreeViewer();
    // required to make filtering work
    pluginViewer.setLabelProvider(new PluginLabelProvider());
    pluginViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            InsightPlugin plugin = (InsightPlugin) event.getElement();
            execute(new EnablePluginsOperation(Collections.singletonList(plugin), event.getChecked()));
        }
    });
    pluginViewer.setCheckStateProvider(new ICheckStateProvider() {
        public boolean isChecked(Object element) {
            return ((InsightPlugin) element).isEnabled();
        }

        public boolean isGrayed(Object element) {
            return false;
        }
    });
    TreeViewerColumn nameColumn = new TreeViewerColumn(pluginViewer, SWT.NONE);
    nameColumn.getColumn().setText("Name");
    nameColumn.getColumn().setWidth(400);
    nameColumn.setLabelProvider(new DelegatingStyledCellLabelProvider(new PluginLabelProvider()));
    pluginViewer.setContentProvider(new ITreeContentProvider() {

        private InsightPluginModel input;

        private final Object[] EMPTY_ARRAY = new Object[0];

        public void dispose() {
            // ignore
        }

        public Object[] getChildren(Object parentElement) {
            return EMPTY_ARRAY;
        }

        public Object[] getElements(Object parent) {
            if (input != null) {
                return input.getPlugins().toArray();
            }
            return EMPTY_ARRAY;
        }

        public Object getParent(Object element) {
            return null;
        }

        public boolean hasChildren(Object element) {
            return false;
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            input = (InsightPluginModel) newInput;
        }

    });
    pluginViewer.setSorter(new ViewerSorter() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            InsightPlugin p1 = (InsightPlugin) e1;
            InsightPlugin p2 = (InsightPlugin) e2;
            return p1.getName().compareTo(p2.getName());
        }
    });

    Composite buttonComposite = new Composite(composite, SWT.NONE);
    GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.TOP).applyTo(buttonComposite);
    GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).extendedMargins(0, 0, 0, 0)
            .applyTo(buttonComposite);
    createButtons(buttonComposite);

    initialize();
}

From source file:cz.robotron.examples.parts._005_TreeWithViewerSupport.java

License:Open Source License

private void createTreeColumns(TreeViewer treeViewer, String[] propertyNames) {
    for (String name : propertyNames) {
        TreeViewerColumn viewerColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
        TreeColumn tableColumn = viewerColumn.getColumn();
        tableColumn.setText(name);/*from w w w  . ja  va 2 s .c  o  m*/
        tableColumn.setWidth(100);

    }

}

From source file:de.bmw.yamaica.common.ui.internal.dialogs.YamaicaWizardSelectionPage.java

License:Mozilla Public License

@Override
public void createControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(1, false));
    setControl(composite);//www.j  a v a2  s .c o m

    TreeColumnLayout tableColumnLayout = new TreeColumnLayout();

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

    tableViewer = new TreeViewer(tableComposite, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    tableViewer.setContentProvider(getContentProvider());
    tableViewer.setComparator(new WizardComparator());
    tableViewer.setFilters(new ViewerFilter[] { new YamaicaWizardActivityFilter() });

    TreeViewerColumn filenameViewerColumn = new TreeViewerColumn(tableViewer, SWT.LEAD);
    filenameViewerColumn.setLabelProvider((CellLabelProvider) getLabelProvider());

    tableColumnLayout.setColumnData(filenameViewerColumn.getColumn(), new ColumnWeightData(100, 80, false));

    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = event.getSelection();

            if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
                Object selectedElement = ((IStructuredSelection) selection).getFirstElement();

                if (selectedElement instanceof TreeNode)
                    selectedElement = ((TreeNode) selectedElement).getValue();
                if (selectedElement instanceof IWizardDescriptor) {
                    IWizardDescriptor wizardDescriptor = (IWizardDescriptor) selectedElement;
                    IWizardNode wizardNode = createWizardNode(wizardDescriptor);

                    setMessage(wizardDescriptor.getDescription());
                    setSelectedNode(wizardNode);
                }
            }
        }
    });

    tableViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            getContainer().showPage(getNextPage());
        }
    });

    Object viewerInput = getViewerInput();
    if (useWizardCategories)
        viewerInput = createTreeInput(viewerInput);
    tableViewer.setInput(viewerInput);
    tableViewer.expandAll();
}

From source file:de.byteholder.geoclipse.mapprovider.DialogMPProfile.java

License:Open Source License

/**
 * create columns for the tree viewer//from  www  . j  a  v  a 2 s. c om
 * 
 * @param pixelConverter
 */
private void createUI116ViewerColumns(final TreeColumnLayout treeLayout, final PixelConverter pixelConverter) {

    TreeViewerColumn tvc;
    TreeColumn tc;

    /*
     * column: map provider
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_MapProvider);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_MapProvider_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final StyledString styledString = new StyledString();
            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();
                final MP mapProvider = mpWrapper.getMP();

                styledString.append(mapProvider.getName());

                cell.setImage(mpWrapper.isDisplayedInMap() ? _imageMap : _imagePlaceholder);

            } else if (element instanceof TVIWmsLayer) {

                final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer();

                styledString.append(mtLayer.getGeoLayer().getTitle());

                styledString.append("  (", StyledString.QUALIFIER_STYLER);//$NON-NLS-1$
                styledString.append(mtLayer.getGeoLayer().getName(), StyledString.QUALIFIER_STYLER);
                styledString.append(")", StyledString.QUALIFIER_STYLER);//$NON-NLS-1$

                cell.setImage(mtLayer.isDisplayedInMap() ? _imageLayer : _imagePlaceholder);

            } else {
                styledString.append(element.toString());
            }

            cell.setText(styledString.getString());
            cell.setStyleRanges(styledString.getStyleRanges());
        }
    });
    treeLayout.setColumnData(tc, new ColumnWeightData(100, true));

    /*
     * column: is visible
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_IsVisible);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_IsVisible_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                cell.setText(Boolean.toString(mpWrapper.isDisplayedInMap()));

            } else if (element instanceof TVIWmsLayer) {

                final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer();

                cell.setText(Boolean.toString(mtLayer.isDisplayedInMap()));

            } else {
                cell.setText(UI.EMPTY_STRING);
            }
        }
    });

    tvc.setEditingSupport(new EditingSupport(_treeViewer) {

        private final CheckboxCellEditor fCellEditor = new CheckboxCellEditor(_treeViewer.getTree());

        @Override
        protected boolean canEdit(final Object element) {

            if (element instanceof TVIMapProvider) {

                final TVIMapProvider tvi = (TVIMapProvider) element;
                final MP mapProvider = tvi.getMapProviderWrapper().getMP();

                if (mapProvider instanceof MPWms) {

                    // wms can be toggled when at least one layer is displayed

                    return canWmsBeDisplayed((MPWms) mapProvider);
                }
            }

            return true;
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            return fCellEditor;
        }

        @Override
        protected Object getValue(final Object element) {

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                return mpWrapper.isDisplayedInMap();

            } else if (element instanceof TVIWmsLayer) {

                final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer();

                return mtLayer.isDisplayedInMap();
            }

            return null;
        }

        @Override
        protected void setValue(final Object element, final Object value) {

            final boolean isChecked = ((Boolean) value);

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                mpWrapper.setIsDisplayedInMap(isChecked);

                if (isChecked) {

                    /*
                     * remove parent tiles from loading cache because they can have loading
                     * errors (from their children) which prevents them to be loaded again
                     */
                    _mpProfile.resetParentTiles();
                }

                enableProfileMapButton();

            } else if (element instanceof TVIWmsLayer) {

                final TVIWmsLayer tviLayer = (TVIWmsLayer) element;
                final MtLayer mtLayer = tviLayer.getMtLayer();

                mtLayer.setIsDisplayedInMap(isChecked);

                updateMVMapProvider(tviLayer);
            }

            // update viewer
            getViewer().update(element, null);

            updateLiveView();
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    /*
     * column: alpha
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_Alpha);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_Alpha_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                cell.setText(Integer.toString(mpWrapper.getAlpha()));

            } else {

                cell.setText(UI.EMPTY_STRING);
            }
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    /*
     * column: brightness
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_Brightness);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_Brightness_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                cell.setText(mpWrapper.isBrightnessForNextMp()
                        ? Integer.toString(mpWrapper.getBrightnessValueForNextMp())
                        : UI.EMPTY_STRING);

            } else {

                cell.setText(UI.EMPTY_STRING);
            }
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    /*
     * column: empty to prevent scrolling to the right when the right column is selected
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            /*
             * !!! label provider is necessary to prevent a NPE !!!
             */
        }
    });
    tc = tvc.getColumn();
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(4)));

}

From source file:de.dentrassi.eclipse.rpm.editor.ContentTable.java

License:Open Source License

private void createColumn(final TreeColumnLayout layout, final String label, final int weight, final int flags,
        final BiConsumer<Node, ViewerCell> consumer) {
    {//from   w ww. ja v a 2  s.com
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, flags);
        col.getColumn().setText(label);
        col.setLabelProvider(new CellLabelProvider() {

            @Override
            public void update(final ViewerCell cell) {
                final Object ele = cell.getElement();
                if (ele instanceof Node) {
                    final MetaInformation meta = ContentTable.this.meta.get(((Node) ele).getFullName());
                    if (meta == null) {
                        cell.setForeground(ContentTable.this.dimmedColor);
                    }
                    consumer.accept((Node) ele, cell);
                }
            }
        });
        layout.setColumnData(col.getColumn(), new ColumnWeightData(weight));
    }
}

From source file:de.dentrassi.eclipse.rpm.editor.DependenciesTable.java

License:Open Source License

public DependenciesTable(final Composite parent) {
    this.wrapper = new Composite(parent, SWT.NO_BACKGROUND);
    parent.setLayout(new FillLayout());

    this.viewer = new TreeViewer(this.wrapper, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);

    final TreeColumnLayout layout = new TreeColumnLayout();

    {//  w w  w.  j  av a  2 s. c  o m
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Name");
        col.setLabelProvider(new CellLabelProvider() {

            @Override
            public void update(final ViewerCell cell) {
                final Object ele = cell.getElement();
                if (ele instanceof Map.Entry<?, ?>) {
                    final String label = ((Map.Entry<?, ?>) ele).getKey().toString();
                    cell.setText(label);
                } else if (ele instanceof Dependency) {
                    final Dependency dep = (Dependency) ele;
                    cell.setText(dep.getName());
                }
            }
        });
        layout.setColumnData(col.getColumn(), new ColumnWeightData(5));
    }

    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Op");
        col.setLabelProvider(new CellLabelProvider() {

            @Override
            public void update(final ViewerCell cell) {
                final Object ele = cell.getElement();
                if (ele instanceof Dependency) {
                    final Dependency dep = (Dependency) ele;

                    final EnumSet<RpmDependencyFlags> flags = dep.getFlags();

                    final StringBuilder sb = new StringBuilder();

                    for (final RpmDependencyFlags flag : flags) {
                        switch (flag) {
                        case LESS:
                            sb.append("<");
                            break;
                        case EQUAL:
                            sb.append("=");
                            break;
                        case GREATER:
                            sb.append(">");
                            break;
                        default:
                            break;
                        }
                    }

                    cell.setText(sb.toString());
                }
            }
        });
        layout.setColumnData(col.getColumn(), new ColumnWeightData(1));
    }

    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Version");
        col.setLabelProvider(new CellLabelProvider() {

            @Override
            public void update(final ViewerCell cell) {
                final Object ele = cell.getElement();
                if (ele instanceof Dependency) {
                    final Dependency dep = (Dependency) ele;
                    cell.setText(dep.getVersion());
                }
            }
        });
        layout.setColumnData(col.getColumn(), new ColumnWeightData(5));
    }

    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText("Flags");
        col.setLabelProvider(new CellLabelProvider() {

            @Override
            public void update(final ViewerCell cell) {
                final Object ele = cell.getElement();
                if (ele instanceof Dependency) {
                    final Dependency dep = (Dependency) ele;

                    final EnumSet<RpmDependencyFlags> flags = dep.getFlags();

                    final String text = flags.stream().map(RpmDependencyFlags::name)
                            .collect(Collectors.joining(", "));

                    cell.setText(text);
                }
            }
        });
        layout.setColumnData(col.getColumn(), new ColumnWeightData(5));
    }

    this.wrapper.setLayout(layout);
    this.viewer.getTree().setHeaderVisible(true);

    final ITreePathContentProvider p = new ITreePathContentProvider() {

        @Override
        public boolean hasChildren(final TreePath path) {
            final Object[] children = getChildren(path);
            return children != null && children.length > 0;
        }

        @Override
        public TreePath[] getParents(final Object element) {
            return new TreePath[0];
        }

        @Override
        public Object[] getElements(final Object inputElement) {
            if (inputElement instanceof Map<?, ?>) {
                return ((Map<?, ?>) inputElement).entrySet().toArray();
            } else if (inputElement instanceof Map.Entry<?, ?>) {
                final Object val = ((Map.Entry<?, ?>) inputElement).getValue();
                if (val instanceof Collection<?>) {
                    return ((Collection<?>) val).toArray();
                }
            }
            return null;
        }

        @Override
        public Object[] getChildren(final TreePath parentPath) {
            return getElements(parentPath.getLastSegment());
        }
    };
    this.viewer.setContentProvider(p);
}

From source file:de.dentrassi.eclipse.rpm.editor.HeaderTable.java

License:Open Source License

private void createColumnCell(final AbstractColumnLayout layout, final String name, final int weight,
        final Consumer<ViewerCell> cellUpdater) {
    final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.setLabelProvider(new StyledCellLabelProvider() {

        @Override//from ww  w .j a  v  a  2 s .  com
        public void update(final ViewerCell cell) {
            cellUpdater.accept(cell);
        }
    });
    col.getColumn().setText(name);
    layout.setColumnData(col.getColumn(), new ColumnWeightData(weight));
}