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

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

Introduction

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

Prototype

public TreeViewerColumn(TreeViewer viewer, TreeColumn column) 

Source Link

Document

Creates a new viewer column for the given TreeViewer on the given TreeColumn .

Usage

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

License:Open Source License

/**
 * create columns for the tree viewer//from w w  w .  j a  v  a2s. co m
 * 
 * @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 www.  j ava2  s .c  o  m
        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();

    {//from  ww w.ja  v a  2 s. c  om
        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/* w w  w. jav  a  2  s .c  om*/
        public void update(final ViewerCell cell) {
            cellUpdater.accept(cell);
        }
    });
    col.getColumn().setText(name);
    layout.setColumnData(col.getColumn(), new ColumnWeightData(weight));
}

From source file:de.dfki.iui.mmds.sdk.editors.grammar_rules.EObjectTreeViewerComposite.java

License:Creative Commons License

public EObjectTreeViewerComposite(Composite parent, int style, final RulesEditor editor,
        ContentListComposite connectedList) {
    super(parent, style);
    this.editor = editor;
    this.connectedList = connectedList;
    setLayout(new FormLayout());

    treeViewer = new TreeViewer(this, SWT.MULTI | SWT.BORDER);
    Tree tree = treeViewer.getTree();//  ww  w. ja v  a2s  .  co  m
    FormData fd_tree = new FormData();
    fd_tree.bottom = new FormAttachment(100, -MARGIN);
    fd_tree.right = new FormAttachment(100, -MARGIN);
    fd_tree.top = new FormAttachment(0, MARGIN);
    fd_tree.left = new FormAttachment(0, MARGIN);
    tree.setLayoutData(fd_tree);
    tree.setHeaderVisible(true);

    TreeViewerColumn treeViewerColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    TreeColumn trclmnInterpretation = treeViewerColumn.getColumn();
    trclmnInterpretation.setWidth(400);
    trclmnInterpretation.setText("Right click to enter an interpretation");

    // the default content and label providers provided from EMF are used
    treeViewer.setContentProvider(new AdapterFactoryContentProvider(this.editor.getAdapterFactory()));
    treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(this.editor.getAdapterFactory()));

    // on selection change the current viewer is set to the selected tree
    // viewer so the properties of the objects are shown in the properties
    // view
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        // This ensures that we handle selections correctly.
        //
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            if (selection != null) {
                editor.setCurrentViewer(treeViewer);
                editor.setSelection(selection);
            }
        }
    });
    createTreeViewerContextMenu();

    this.addFocusListener(new FocusListener() {

        @Override
        public void focusLost(FocusEvent e) {

        }

        @Override
        public void focusGained(FocusEvent e) {
            createTreeViewerContextMenu();
        }
    });
}

From source file:de.hentschel.visualdbc.statistic.ui.control.ProofReferenceComposite.java

License:Open Source License

/**
 * Constructor./*www . ja  va2  s. co  m*/
 * @param parent The parent {@link Composite}.
 * @param style The style to use.
 * @param editor The {@link IEditorPart} which provides the content.
 * @param proofReferenceProvider The {@link IProofReferenceProvider} to use.
 */
public ProofReferenceComposite(Composite parent, int style, IEditorPart editor,
        IProofReferenceProvider proofReferenceProvider) {
    super(parent, style);
    Assert.isNotNull(editor);
    Assert.isNotNull(proofReferenceProvider);
    this.editor = editor;
    this.proofReferenceProvider = proofReferenceProvider;
    editor.getEditorSite().getSelectionProvider().addSelectionChangedListener(selectionListener);
    // Create viewer
    TreeColumnLayout viewerLayout = new TreeColumnLayout();
    setLayout(viewerLayout);
    viewer = new TreeViewer(this, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
    viewer.getTree().setHeaderVisible(true);
    viewer.getTree().setLinesVisible(true);
    viewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            handleDoubleClick(event);
        }
    });
    // Add main column
    TreeViewerColumn mainColumn = new TreeViewerColumn(viewer, SWT.NONE);
    mainColumn.getColumn().setText("Selected Element");
    mainColumn.getColumn().setMoveable(true);
    viewerLayout.setColumnData(mainColumn.getColumn(), new ColumnWeightData(40));
    // Add direction column
    TreeViewerColumn directionColumn = new TreeViewerColumn(viewer, SWT.NONE);
    directionColumn.getColumn().setText("Direction");
    directionColumn.getColumn().setMoveable(true);
    viewerLayout.setColumnData(directionColumn.getColumn(), new ColumnWeightData(10));
    // Add kind column
    TreeViewerColumn kindColumn = new TreeViewerColumn(viewer, SWT.NONE);
    kindColumn.getColumn().setText("Kind");
    kindColumn.getColumn().setMoveable(true);
    viewerLayout.setColumnData(kindColumn.getColumn(), new ColumnWeightData(20));
    // Add direction target column
    TreeViewerColumn directionTargetColumn = new TreeViewerColumn(viewer, SWT.NONE);
    directionTargetColumn.getColumn().setText("Direction Target");
    directionTargetColumn.getColumn().setMoveable(true);
    viewerLayout.setColumnData(directionTargetColumn.getColumn(), new ColumnWeightData(40));
    // Update content in viewer
    updateContent(editor.getEditorSite().getSelectionProvider().getSelection());
}

From source file:de.hentschel.visualdbc.statistic.ui.control.StatisticComposite.java

License:Open Source License

/**
 * Adds the columns to the viewer.//  ww w . ja v a2 s  . co  m
 * @param viewer The parent {@link TreeViewer}
 * @param viewerLayout The layout to arrange the columns in the {@link TreeViewer}.
 * @param model The {@link DbcModel} that contains the available proof obligations.
 */
protected List<DbcProofObligation> addColumsnToViewer(TreeViewer viewer, TreeColumnLayout viewerLayout,
        DbcModel model) {
    TreeViewerColumn mainColumn = new TreeViewerColumn(viewer, SWT.NONE);
    mainColumn.getColumn().setText("Main");
    mainColumn.getColumn().setMoveable(true);
    viewerLayout.setColumnData(mainColumn.getColumn(), new ColumnWeightData(100));
    List<DbcProofObligation> result = new LinkedList<DbcProofObligation>();
    if (model != null) {
        for (DbcProofObligation obligation : model.getProofObligations()) {
            if (selectedObligations.contains(obligation)) {
                TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.NONE);
                column.getColumn().setText(obligation.getObligation());
                column.getColumn().setData(obligation);
                column.getColumn().setMoveable(true);
                viewerLayout.setColumnData(column.getColumn(), new ColumnWeightData(10));
                observedObligations.add(obligation);
                obligation.eAdapters().add(modelListener);
                result.add(obligation);
            }
        }
    }
    return result;
}

From source file:de.quamoco.adaptation.view.history.AdaptationHistoryFilteredTree.java

License:Apache License

@Override
protected void createColumns(TreeViewer treeViewer) {
    // Get the title, tool tips and bounds from Constants.TableColumns
    String titles[] = TableColumns.getTitles();
    String tooltips[] = TableColumns.getToolTips();
    int bounds[] = TableColumns.getBounds();

    for (int i = 0; i < titles.length; i++) {
        TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.NONE);
        column.getColumn().setText(titles[i]);
        column.getColumn().setToolTipText(tooltips[i]);
        column.getColumn().setWidth(bounds[i]);
        column.getColumn().setResizable(true);
        column.getColumn().setMoveable(true);

        // Add selection listener for sorting
        ColumnSelectionListener columnSelectionListener = new ColumnSelectionListener(treeViewer,
                column.getColumn(), i);//from w  w  w .  j  av  a  2  s . c  om
        column.getColumn().addSelectionListener(columnSelectionListener);

        // If default sorting column mark it
        if (i == TableColumns.DEFAULT_SORT_COLUMN) {
            // Mark column as default sort column
            columnSelectionListener.widgetSelected(null);
        }

        if (i == TableColumns.JUSTIFICATION.INDEX) {
            EditingSupport editingSupport = new JustificationColumnEditingSupport(column.getViewer());
            column.setEditingSupport(editingSupport);
        }
    }
}

From source file:de.quamoco.adaptation.view.tasks.AdaptationTasksFilteredTree.java

License:Apache License

/**
 * Creates the columns for the {@link AdaptationTasksFilteredTree}.
 *///from   ww w  . ja v a2 s.  c o m
@Override
protected void createColumns(TreeViewer treeViewer) {
    // Get the title, tool tips and bounds from Constants.TableColumns
    String titles[] = TableColumns.getTitles();
    String tooltips[] = TableColumns.getToolTips();
    int bounds[] = TableColumns.getBounds();

    for (int i = 0; i < titles.length; i++) {
        TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.NONE);
        column.getColumn().setText(titles[i]);
        column.getColumn().setToolTipText(tooltips[i]);
        column.getColumn().setWidth(bounds[i]);
        column.getColumn().setResizable(true);
        column.getColumn().setMoveable(true);

        // Add selection listener for sorting
        ColumnSelectionListener columnSelectionListener = new ColumnSelectionListener(treeViewer,
                column.getColumn(), i);
        column.getColumn().addSelectionListener(columnSelectionListener);

        // If default sorting column mark it
        if (i == TableColumns.DEFAULT_SORT_COLUMN) {
            // Mark column as default sort column
            columnSelectionListener.widgetSelected(null);
        }

        // Add editing support for the completed column
        if (i == TableColumns.COMPLETED.INDEX) {
            EditingSupport editingSupport = new CompletionColumnEditingSupport(column.getViewer());
            column.setEditingSupport(editingSupport);
            Image completeColumnHeader = Activator.getImageDescriptor("icons/header_complete.gif")
                    .createImage();
            column.getColumn().setImage(completeColumnHeader);
        }
    }
}

From source file:de.uni_hildesheim.sse.qmApp.dialogs.statistics.StatisticsDialog.java

License:Apache License

@Override
protected Control createDialogArea(Composite parent) {
    final Composite body = (Composite) super.createDialogArea(parent);

    final TreeViewer viewer = new TreeViewer(body, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
    Tree table = viewer.getTree();// w w  w  .j  a  v a 2 s .  c  o m
    table.setLinesVisible(true);
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    viewer.setContentProvider(new StatisticsContentProvider());

    TreeViewerColumn column1 = new TreeViewerColumn(viewer, SWT.NONE);
    column1.setLabelProvider(new StatisticsLabelProvider(0));
    TreeColumn tc1 = column1.getColumn();
    TreeViewerColumn column2 = new TreeViewerColumn(viewer, SWT.NONE);
    column2.setLabelProvider(new StatisticsLabelProvider(1));
    TreeColumn tc2 = column2.getColumn();

    tc1.setText("Type");
    tc2.setText("No. of Elements");
    tc1.setWidth(375);
    tc2.setWidth(180);
    table.setHeaderVisible(true);

    // Variables
    fillTable();
    viewer.setInput(dataModel);
    viewer.expandAll();

    //Capture ESC-Key.
    body.addListener(SWT.Traverse, new Listener() {

        public void handleEvent(Event evt) {
            if (evt.detail == SWT.TRAVERSE_ESCAPE) {
                body.getShell().close();
            }
        }
    });
    return body;
}