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:org.eclipse.recommenders.internal.models.rcp.ModelRepositoriesView.java

License:Open Source License

private void newColumn(TreeColumnLayout treeLayout, final String classifier, int minWidth) {
    TreeViewerColumn classifierViewerColumn = new TreeViewerColumn(treeViewer, SWT.CENTER);
    TreeColumn classifierColumn = classifierViewerColumn.getColumn();
    classifierColumn.setMoveable(true);//from w ww. jav  a 2  s  .co m
    classifierColumn.setResizable(false);
    treeLayout.setColumnData(classifierColumn, new ColumnPixelData(minWidth, false, true));
    classifierColumn.setText(classifier.toUpperCase());
    classifierColumn.pack();
    classifierViewerColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            return null;
        }

        @Override
        public String getToolTipText(Object element) {
            if (element instanceof KnownCoordinate) {
                KnownCoordinate v = (KnownCoordinate) element;

                if (!v.hasModelCoordinate(classifier)) {
                    return Messages.TABLE_CELL_TOOLTIP_UNAVAILABLE;
                } else if (v.isDownloaded(classifier)) {
                    return Messages.TABLE_CELL_TOOLTIP_AVAILABLE_LOCALLY;
                } else {
                    return Messages.TABLE_CELL_TOOLTIP_AVAILABLE_REMOTELY;
                }
            }
            return null;
        }

        @Override
        public Image getImage(Object element) {
            if (element instanceof KnownCoordinate) {
                KnownCoordinate v = (KnownCoordinate) element;
                if (!v.hasModelCoordinate(classifier)) {
                    return images.getImage(OBJ_CROSS_RED);
                } else if (v.isDownloaded(classifier)) {
                    return images.getImage(OBJ_CHECK_GREEN);
                } else {
                    return images.getImage(OBJ_BULLET_BLUE);
                }
            }
            return null;
        }
    });
}

From source file:org.eclipse.recommenders.internal.snipmatch.rcp.SnippetsView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayoutFactory.swtDefaults().applyTo(composite);

    txtSearch = new Text(composite, SWT.BORDER | SWT.ICON_SEARCH | SWT.SEARCH | SWT.CANCEL);
    txtSearch.setMessage(Messages.SEARCH_PLACEHOLDER_SEARCH_TEXT);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(1, 1).applyTo(txtSearch);
    txtSearch.addModifyListener(new ModifyListener() {

        @Override/*from   www  .  ja  va  2s . c o  m*/
        public void modifyText(ModifyEvent e) {
            refreshUI();
        }
    });
    txtSearch.setData(SWT_ID, SEARCH_FIELD);
    txtSearch.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.ARROW_DOWN && tree.getItemCount() != 0) {
                tree.setFocus();
                tree.setSelection(tree.getTopItem());
            }
        }
    });

    Composite treeComposite = new Composite(composite, SWT.NONE);

    TreeColumnLayout treeLayout = new TreeColumnLayout();
    treeComposite.setLayout(treeLayout);
    treeComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));

    treeViewer = new TreeViewer(treeComposite, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.VIRTUAL);
    ColumnViewerToolTipSupport.enableFor(treeViewer);
    tree = treeViewer.getTree();
    tree.setData(SWT_ID, TREE);
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    TreeViewerColumn snippetViewerColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    TreeColumn snippetColumn = snippetViewerColumn.getColumn();
    treeLayout.setColumnData(snippetColumn, new ColumnWeightData(1, ColumnWeightData.MINIMUM_WIDTH, true));
    snippetColumn.setText(Messages.TABLE_COLUMN_TITLE_SNIPPETS);
    snippetViewerColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();
            StyledString text = new StyledString();
            if (element instanceof SnippetRepositoryConfiguration) {
                SnippetRepositoryConfiguration config = (SnippetRepositoryConfiguration) element;

                text.append(config.getName());
                text.append(" "); //$NON-NLS-1$

                if (prefs.isRepositoryEnabled(config)) {
                    text.append(format(Messages.TABLE_CELL_SUFFIX_SNIPPETS, fetchNumberOfSnippets(config)),
                            StyledString.COUNTER_STYLER);
                } else {
                    text.append(Messages.TABLE_REPOSITORY_DISABLED, StyledString.COUNTER_STYLER);
                }

                cell.setImage(images.getImage(Images.OBJ_REPOSITORY));
            } else if (element instanceof KnownSnippet) {
                KnownSnippet knownSnippet = (KnownSnippet) element;
                text.append(toStringRepresentation.apply(knownSnippet));
            }
            cell.setText(text.toString());
            cell.setStyleRanges(text.getStyleRanges());
            super.update(cell);
        }
    });

    treeViewer.addOpenListener(new IOpenListener() {

        @Override
        public void open(OpenEvent event) {
            if (selectionConsistsOnlyElementsOf(KnownSnippet.class)) {
                editSnippets();
            }
        }
    });
    treeViewer.setUseHashlookup(true);
    treeViewer.setContentProvider(new ILazyTreeContentProvider() {

        @Override
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }

        @Override
        public void dispose() {
        }

        @Override
        public void updateElement(Object parent, int index) {
            if (parent instanceof IViewSite) {
                SnippetRepositoryConfiguration config = availableRepositories.get(index);
                treeViewer.replace(parent, index, config);
                treeViewer.setChildCount(config, getChildren(config).length);
            } else if (parent instanceof SnippetRepositoryConfiguration) {
                treeViewer.replace(parent, index, getChildren(parent)[index]);
            }
        }

        private Object[] getChildren(Object element) {
            if (element instanceof SnippetRepositoryConfiguration) {
                return filteredSnippetsGroupedByRepoName.get((SnippetRepositoryConfiguration) element)
                        .toArray();
            }
            return new Object[0];
        }

        @Override
        public void updateChildCount(Object element, int currentChildCount) {
            int count = 0;

            if (element instanceof IViewSite) {
                count = availableRepositories.size();
            }

            if (availableRepositories.contains(element)) {
                count = getChildren(element).length;
            }

            if (count != currentChildCount) {
                treeViewer.setChildCount(element, count);
            }
        }

        @Override
        public Object getParent(Object element) {
            if (element instanceof KnownSnippet) {
                KnownSnippet knownSnippet = (KnownSnippet) element;
                return knownSnippet.config;
            }
            return null;
        }
    });

    selection = ViewersObservables.observeMultiSelection(treeViewer);

    createActions(parent);
    addToolBar(parent);
    addContextMenu();

    refreshUI();
}

From source file:org.eclipse.scada.ca.ui.importer.wizard.PreviewPage.java

License:Open Source License

@Override
public void createControl(final Composite parent) {
    final Composite wrapper = new Composite(parent, SWT.NONE);
    wrapper.setLayout(new GridLayout(1, false));

    this.viewer = new TreeViewer(wrapper, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.VIRTUAL);
    this.viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    final TableLayout layout = new TableLayout();
    this.viewer.getTree().setLayout(layout);

    this.resourceManager = new LocalResourceManager(JFaceResources.getResources(parent.getDisplay()),
            this.viewer.getControl());

    TreeViewerColumn col;
    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.PreviewPage_ColFactoryText);
    layout.addColumnData(new ColumnWeightData(10));
    col.setLabelProvider(new DiffEntryLabelProvider(this.resourceManager));

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.PreviewPage_ColConfigurationText);
    layout.addColumnData(new ColumnWeightData(20));
    col.setLabelProvider(new DiffEntryLabelProvider(this.resourceManager));

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.PreviewPage_ColOperationText);
    layout.addColumnData(new ColumnWeightData(10));
    col.setLabelProvider(new DiffEntryLabelProvider(this.resourceManager));

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.PreviewPage_ColDataText);
    layout.addColumnData(new ColumnWeightData(20));
    col.setLabelProvider(new DiffEntryLabelProvider(this.resourceManager));

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.PreviewPage_ColCurrentDataText);
    layout.addColumnData(new ColumnWeightData(20));
    col.setLabelProvider(new DiffEntryLabelProvider(this.resourceManager));

    this.viewer.getTree().setHeaderVisible(true);

    this.viewer.setContentProvider(new LazyDiffEntryTreeProvider());
    this.viewer.setUseHashlookup(true);

    this.statsLabel = new Label(wrapper, SWT.NONE);
    this.statsLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    setControl(wrapper);//from  w  w w . j  av  a2  s . c o  m
}

From source file:org.eclipse.scada.configuration.ui.component.ComponentOutputDialog.java

License:Open Source License

@Override
protected Control createDialogArea(final Composite parent) {
    getShell().setText("Component Output");

    final Composite composite = (Composite) super.createDialogArea(parent);

    composite.setLayout(new FillLayout());

    final TableLayout layout = new TableLayout();

    this.viewer = new TreeViewer(composite, SWT.FULL_SELECTION | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
    this.viewer.setAutoExpandLevel(2);
    this.viewer.getTree().setHeaderVisible(true);
    this.viewer.getTree().setLayout(layout);

    this.viewer.setContentProvider(this.contentProvider = new ObservableSetTreeContentProvider(
            new ComponentOutputObservableFactory(), null));

    {//from w w  w .  ja v a  2s  .  c o  m
        final TreeViewerColumn col1 = new TreeViewerColumn(this.viewer, SWT.NONE);
        col1.getColumn().setText("Name");
        col1.setLabelProvider(
                new NameLabelProvider(getShell().getDisplay(), this.contentProvider.getKnownElements()));
        layout.addColumnData(new ColumnWeightData(150));
    }

    {
        final IObservableMap map = PojoProperties.value(ItemEntry.PROP_ITEM)
                .observeDetail(this.contentProvider.getKnownElements());
        final IObservableMap map2 = EMFProperties.value(OsgiPackage.Literals.ITEM__NAME).observeDetail(map);

        final TreeViewerColumn col2 = new TreeViewerColumn(this.viewer, SWT.NONE);
        col2.getColumn().setText("Item ID");
        col2.setLabelProvider(new ObservableMapStyledCellLabelProvider(map2));
        layout.addColumnData(new ColumnWeightData(150));
    }

    {
        final IObservableMap map = PojoProperties.value(ItemEntry.PROP_ITEM)
                .observeDetail(this.contentProvider.getKnownElements());
        final IObservableMap map2 = EMFProperties.value(OsgiPackage.Literals.ITEM__INFORMATION)
                .observeDetail(map);
        final IObservableMap map3 = EMFProperties.value(OsgiPackage.Literals.ITEM_INFORMATION__DESCRIPTION)
                .observeDetail(map2);

        final TreeViewerColumn col2 = new TreeViewerColumn(this.viewer, SWT.NONE);
        col2.getColumn().setText("Description");
        col2.setLabelProvider(new ObservableMapStyledCellLabelProvider(map3));
        layout.addColumnData(new ColumnWeightData(100));
    }

    {
        final IObservableMap map = PojoProperties.value(ItemEntry.PROP_CUSTOMIZATION_REQUEST)
                .observeDetail(this.contentProvider.getKnownElements());
        final IObservableMap map2 = PojoProperties.value("globalizationLevel").observeDetail(map);

        final TreeViewerColumn col2 = new TreeViewerColumn(this.viewer, SWT.NONE);
        col2.getColumn().setText("GL");
        col2.setLabelProvider(new ObservableMapStyledCellLabelProvider(map2));
        layout.addColumnData(new ColumnWeightData(25));
    }

    {
        final IObservableMap map = PojoProperties.value(ItemEntry.PROP_ITEM)
                .observeDetail(this.contentProvider.getKnownElements());

        final TreeViewerColumn col2 = new TreeViewerColumn(this.viewer, SWT.NONE);
        col2.getColumn().setText("Type");
        col2.setLabelProvider(new ObservableMapStyledCellLabelProvider(map) {
            @Override
            public void update(final ViewerCell cell) {
                final Object element = cell.getElement();
                final Item value = (Item) this.attributeMaps[0].get(element);
                if (value == null) {
                    return;
                }

                final StyledString s = new StyledString();
                s.append(value.eClass().getName());

                s.append(String.format(" (%s)", value.eClass().getEPackage().getName()), //$NON-NLS-1$
                        StyledString.QUALIFIER_STYLER);

                cell.setText(s.getString());
                cell.setStyleRanges(s.getStyleRanges());
            }
        });
        layout.addColumnData(new ColumnWeightData(50));
    }

    this.viewer.getControl().addDisposeListener(new DisposeListener() {

        @Override
        public void widgetDisposed(final DisposeEvent e) {
            handleDispose();
        }
    });
    this.viewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(final Viewer viewer, final Object e1, final Object e2) {
            final ItemEntry i1 = AdapterHelper.adapt(e1, ItemEntry.class);
            final ItemEntry i2 = AdapterHelper.adapt(e2, ItemEntry.class);
            if (i1 == i2) {
                return 0;
            }
            if (i1 == null) {
                return -1;
            }
            return StringHelper.join(i1.getLocal(), ".").compareTo(StringHelper.join(i2.getLocal(), ".")); //$NON-NLS-1$ //$NON-NLS-2$
        };
    });
    this.viewer.setInput(this.input);

    return composite;
}

From source file:org.eclipse.scada.core.ui.connection.information.InformationViewPart.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    this.list = new ConnectionInformationList();

    parent.setLayout(new FillLayout());

    this.viewer = new TreeViewer(parent, SWT.FULL_SELECTION);

    this.viewer.getTree().setHeaderVisible(true);

    final TableLayout layout = new TableLayout();
    this.viewer.getTree().setLayout(layout);

    final ObservableSetTreeContentProvider contentProvider = new ObservableSetTreeContentProvider(
            new IObservableFactory() {

                @Override//  w ww.  j ava 2 s . c om
                public IObservable createObservable(final Object target) {
                    if (target instanceof IObservable) {
                        return (IObservable) target;
                    } else if (target instanceof ConnectionInformationProvider) {
                        return new ConnectionInformationWrapper((ConnectionInformationProvider) target);
                    }
                    return null;
                }
            }, new TreeStructureAdvisor() {
            });

    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        col.setLabelProvider(new LabelProvider(contentProvider.getRealizedElements()));
        layout.addColumnData(new ColumnWeightData(100));
    }
    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        col.setLabelProvider(new LabelProvider(contentProvider.getRealizedElements()));
        layout.addColumnData(new ColumnWeightData(50));
        col.getColumn().setText("Current");
    }
    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        col.setLabelProvider(new LabelProvider(contentProvider.getRealizedElements()));
        layout.addColumnData(new ColumnWeightData(50));
        col.getColumn().setText("Min");
    }
    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        col.setLabelProvider(new LabelProvider(contentProvider.getRealizedElements()));
        layout.addColumnData(new ColumnWeightData(50));
        col.getColumn().setText("Max");
    }

    this.viewer.setContentProvider(contentProvider);
    this.viewer.setInput(this.list.getList());
    this.viewer.setComparator(new InformationBeanComparator());

    getViewSite().setSelectionProvider(this.viewer);
    hookContextMenu(getViewSite());
}

From source file:org.eclipse.scada.da.ui.summary.explorer.SummaryExplorerViewPart.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    this.realm = SWTObservables.getRealm(parent.getDisplay());

    this.viewer = new TreeViewer(parent, SWT.FULL_SELECTION);
    final ObservableSetTreeContentProvider contentProvider = new ObservableSetTreeContentProvider(
            new FactoryImpl(), new TreeStructureAdvisor() {
            });/* ww  w .j a v a2 s.  c  o  m*/
    this.viewer.setContentProvider(contentProvider);
    this.viewer.getTree().setHeaderVisible(true);

    final TableLayout layout = new TableLayout();

    {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        final ListeningStyledCellLabelProvider labelProvider = new NameLabelProviderImpl(
                contentProvider.getRealizedElements());
        col.setLabelProvider(labelProvider);
        col.getColumn().setText("Name");
        layout.addColumnData(new ColumnWeightData(100));
        this.labelProviders.add(labelProvider);
    }

    for (final State state : State.values()) {
        final TreeViewerColumn col = new TreeViewerColumn(this.viewer, SWT.NONE);
        final ListeningStyledCellLabelProvider labelProvider = new StateLabelProviderImpl(
                contentProvider.getRealizedElements(), state);
        col.setLabelProvider(labelProvider);
        col.getColumn().setText(state.name());
        layout.addColumnData(new ColumnWeightData(25));
        this.labelProviders.add(labelProvider);
    }

    this.viewer.getTree().setLayout(layout);
}

From source file:org.eclipse.scada.da.ui.widgets.realtime.RealTimeListViewer.java

License:Open Source License

public void createControl(final Composite parent) {
    parent.addDisposeListener(new DisposeListener() {

        @Override/*from ww  w  . j  a v a  2s .  c  om*/
        public void widgetDisposed(final DisposeEvent e) {
            dispose();
        }
    });

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

    TreeViewerColumn col;

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.RealTimeListViewer_Col_Text_Id);
    col.setLabelProvider(new ItemCellLabelProvider());

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.RealTimeListViewer_Col_Text_State);
    col.setLabelProvider(new ItemCellLabelProvider());

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.RealTimeListViewer_Col_Text_Type);
    col.setLabelProvider(new ItemCellLabelProvider());

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.RealTimeListViewer_Col_Text_Value);
    col.setLabelProvider(new ItemCellLabelProvider());

    col = new TreeViewerColumn(this.viewer, SWT.NONE);
    col.getColumn().setText(Messages.RealTimeListViewer_Col_Text_Timestamp);
    col.setLabelProvider(new ItemCellLabelProvider());

    this.viewer.getTree().setHeaderVisible(true);

    final TableLayout tableLayout = new TableLayout();
    applyInitialColWidth(tableLayout);
    this.viewer.getTree().setLayout(tableLayout);

    this.viewer.setContentProvider(this.contentProvider = new ItemListContentProvider());
    this.viewer.setComparator(new ListEntryComparator());
    this.viewer.setInput(this.list);

    this.viewer.addSelectionChangedListener(this.removeAction);

    addDragSupport();
    addDropSupport();
}

From source file:org.eclipse.scanning.device.ui.device.scannable.ControlTreeViewer.java

License:Open Source License

private void createColumns(TreeViewer viewer) {

    viewer.setColumnProperties(new String[] { "Name", "Value" });
    ColumnViewerToolTipSupport.enableFor(viewer);

    TreeViewerColumn nameColumn = new TreeViewerColumn(viewer, SWT.LEFT, 0);
    nameColumn.getColumn().setText("Name");
    nameColumn.getColumn().setWidth(200);
    nameColumn.setLabelProvider(new ColumnLabelProvider() {
        public String getText(Object element) {
            INamedNode node = (INamedNode) element;
            return node.getDisplayName();
        }/*from   w ww  .  ja v  a  2 s.com*/
    });
    nameColumn.setEditingSupport(new NameEditingSupport(this));

    TreeViewerColumn valueColumn = new TreeViewerColumn(viewer, SWT.LEFT, 1);
    valueColumn.getColumn().setText("Value");
    valueColumn.getColumn().setWidth(300);
    valueColumn.setLabelProvider(
            new DelegatingStyledCellLabelProvider(new ControlValueLabelProvider(cservice, this)));
    valueColumn.setEditingSupport(new ControlEditingSupport(viewer, cservice, controlViewerMode));
}

From source file:org.eclipse.sirius.common.ui.tools.api.profiler.view.TimeProfilerTreeView.java

License:Open Source License

/**
 * {@inheritDoc}//ww w .j  a  v  a 2 s.  c o  m
 * 
 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
 */
@Override
public void createPartControl(final Composite parent) {
    viewer = new TreeViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.getTree().setLinesVisible(true);
    viewer.getTree().setHeaderVisible(true);
    final String[] columnNames = { "Task Category", "Task Name", "Time", "Occurences" };
    final int[] columnWidths = { 100, 100, 100, 100 };
    final int[] columnAlignments = { SWT.LEFT, SWT.LEFT, SWT.RIGHT, SWT.RIGHT };
    for (int i = 0; i < columnNames.length; i++) {
        final TreeViewerColumn treeColumn = new TreeViewerColumn(viewer, columnAlignments[i]);
        treeColumn.getColumn().setText(columnNames[i]);
        treeColumn.getColumn().setWidth(columnWidths[i]);
        final int index = i;
        treeColumn.getColumn().addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(final SelectionEvent e) {
                setSorter(index);
            }
        });
    }

    viewer.setLabelProvider(new TimeProfilerTreeViewLabelProvider());
    viewer.setContentProvider(new TimeProfilerTreeViewContentProvider());

    // create actions.
    this.createActions();
    this.createContextMenu();
    this.createToolbarButtons();

    // sets the input.
    viewer.setInput(TreeItemWrapper.ROOT_ITEM);
}

From source file:org.eclipse.sirius.table.ui.tools.internal.editor.DTableViewerManager.java

License:Open Source License

/**
 * Create the TreeViewer./*from  www . jav a  2s  .  co  m*/
 * 
 * Problem for action on column header :
 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=23103
 * 
 * @param composite
 *            the parent composite
 */
@Override
protected void createTreeViewer(final Composite composite) {
    // Create a composite to hold the children
    final GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_BOTH);
    composite.setLayoutData(gridData);
    final TreeColumnLayout treeLayout = new TreeColumnLayout();
    composite.setLayout(treeLayout);
    // Create and setup the TreeViewer
    final int style = SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.MULTI;
    treeViewer = new DTableTreeViewer(composite, style, this);
    // Add a focus listener to deactivate the EMF actions on the Tree
    treeViewer.getTree().addFocusListener(new DTableTreeFocusListener(tableEditor, treeViewer.getTree()));
    initializeDragSupport();
    sortListener = new DLinesSorter(getEditingDomain(), getEditor().getTableModel());
    // 1st column with line labels
    DslCommonPlugin.PROFILER.startWork(SiriusTasksKey.ADD_SWT_COLUMN_KEY);
    final TreeViewerColumn headerTreeColumn = new TreeViewerColumn(treeViewer, SWT.CENTER, 0);
    DslCommonPlugin.PROFILER.startWork(SiriusTasksKey.SET_COLUMN_NAME_KEY);
    headerTreeColumn.getColumn().setText("");
    DslCommonPlugin.PROFILER.stopWork(SiriusTasksKey.SET_COLUMN_NAME_KEY);

    ILabelDecorator decorator = PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator();
    CellLabelProvider lineheaderColumnLabelProvider = new DTableLineLabelProvider(decorator) {
        /* Display gray background for the OS other than GTK. */
        @Override
        public Color getBackground(final Object element) {
            if (IS_GTK_OS) {
                // We could desactivate the gray background color for Linux
                // return super.getBackground(element);
                return Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW);
            } else {
                return Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW);
            }
        }
    };
    headerTreeColumn.setLabelProvider(lineheaderColumnLabelProvider);
    int headerColumnWidth = ((DTable) dRepresentation).getHeaderColumnWidth();
    if (headerColumnWidth != 0) {
        treeLayout.setColumnData(headerTreeColumn.getColumn(), new ColumnPixelData(headerColumnWidth));
        if (headerTreeColumn.getColumn().getWidth() != headerColumnWidth) {
            headerTreeColumn.getColumn().setWidth(headerColumnWidth);
        }
    } else {
        treeLayout.setColumnData(headerTreeColumn.getColumn(), new ColumnWeightData(1));
        if (IS_GTK_OS) {
            // Do not launch treeViewerColumn.getColumn().pack() here
            // for windows because the size is computed only with the
            // headerText and under windows this size is fixed with this
            // value for the next pack. Under linux it's better with this
            // pack() here.
            // Not really understood...
            headerTreeColumn.getColumn().pack();
        }
    }

    headerTreeColumn.getColumn().addListener(SWT.Selection, sortListener);
    DslCommonPlugin.PROFILER.stopWork(SiriusTasksKey.ADD_SWT_COLUMN_KEY);

    // Next columns
    int index = 1;
    for (final DColumn column : ((DTable) dRepresentation).getColumns()) {
        addNewColumn(column, index++);
    }
    treeViewer.setUseHashlookup(true);
    tableUIUpdater = new TableUIUpdater(this, dRepresentation);
    descriptionFileChangedNotifier = new DescriptionFileChangedNotifier(this);
    dTableContentProvider = new DTableContentProvider();
    treeViewer.setContentProvider(dTableContentProvider);
    // The input for the table viewer is the instance of DTable
    treeViewer.setInput(dRepresentation);

    treeViewer.getTree().setLinesVisible(true);
    treeViewer.getTree().setHeaderVisible(true);
    fillMenu();
    triggerColumnSelectedColumn();

    // Expands the line according to the model
    treeViewer.setExpandedElements(TableHelper.getExpandedLines((DTable) dRepresentation).toArray());

    // Pack after expand for resize column on all subLines
    for (int i = 0; i < treeViewer.getTree().getColumnCount(); i++) {
        // Do the pack only if the ColumnData is a ColumnWeightData
        final Object data = treeViewer.getTree().getColumn(i).getData(AbstractDTableViewerManager.LAYOUT_DATA);
        if (data instanceof ColumnWeightData) {
            treeViewer.getTree().getColumn(i).pack();
        }
    }
    treeViewer.addTreeListener(tableViewerListener);
    // Manage height of the lines, selected colors,
    triggerCustomDrawingTreeItems();

    // Create a new CellFocusManager
    final TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(treeViewer,
            new FocusCellOwnerDrawHighlighter(treeViewer));
    // Create a TreeViewerEditor with focusable cell
    TreeViewerEditor.create(treeViewer, focusCellManager,
            new DTableColumnViewerEditorActivationStrategy(treeViewer),
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
    // Set after the setInput to avoid layout call it several time for
    // nothing at opening
    headerTreeColumn.getColumn().addControlListener(tableViewerListener);
    initializeKeyBindingSupport();
}