List of usage examples for org.eclipse.jface.viewers TreeViewerColumn TreeViewerColumn
public TreeViewerColumn(TreeViewer viewer, int style, int index)
From source file:org.dawnsci.plotting.tools.grid.GridTool.java
License:Open Source License
private void createColumns(TreeViewer viewer) { viewer.setColumnProperties(new String[] { "Name", "Value", "Unit" }); ColumnViewerToolTipSupport.enableFor(viewer); TreeViewerColumn var = new TreeViewerColumn(viewer, SWT.LEFT, 0); var.getColumn().setText("Name"); // Selected var.getColumn().setWidth(220); var.setLabelProvider(new NodeLabelProvider(0)); var = new TreeViewerColumn(viewer, SWT.LEFT, 1); var.getColumn().setText("Value"); // Selected var.getColumn().setWidth(140); var.setLabelProvider(new DelegatingProviderWithTooltip(new NodeLabelProvider(2))); var.setEditingSupport(new ValueEditingSupport(viewer)); var = new TreeViewerColumn(viewer, SWT.LEFT, 2); var.getColumn().setText("Unit"); // Selected var.getColumn().setWidth(90); var.setLabelProvider(new DelegatingProviderWithTooltip(new NodeLabelProvider(3))); var.setEditingSupport(new UnitEditingSupport(viewer)); }
From source file:org.dawnsci.plotting.tools.preference.DiffractionDefaultsPreferencePage.java
License:Open Source License
private void createColumns(TreeViewer viewer) { ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE); viewer.setColumnProperties(new String[] { "Name", "Original", "Value", "Unit" }); TreeViewerColumn var = new TreeViewerColumn(viewer, SWT.LEFT, 0); var.getColumn().setText("Name"); // Selected var.getColumn().setWidth(200); var.setLabelProvider(new ColumnLabelProvider()); var = new TreeViewerColumn(viewer, SWT.LEFT, 1); var.getColumn().setText("Original"); // Selected var.getColumn().setWidth(0); var.getColumn().setResizable(false); var.setLabelProvider(new DelegatingStyledCellLabelProvider(new NodeLabelProvider(1))); var = new TreeViewerColumn(viewer, SWT.LEFT, 2); var.getColumn().setText("Value"); // Selected var.getColumn().setWidth(100); var.setLabelProvider(new DelegatingStyledCellLabelProvider(new NodeLabelProvider(2))); var.setEditingSupport(new ValueEditingSupport(viewer)); var = new TreeViewerColumn(viewer, SWT.LEFT, 3); var.getColumn().setText("Unit"); // Selected var.getColumn().setWidth(90); var.setLabelProvider(new DelegatingStyledCellLabelProvider(new NodeLabelProvider(3))); var.setEditingSupport(new UnitEditingSupport(viewer)); }
From source file:org.dawnsci.plotting.tools.region.RegionEditorTool.java
License:Open Source License
private void createColumns(final TreeViewer viewer) { viewer.setColumnProperties(new String[] { "Name", "Value", "Unit", "Visible", "Active", "Mobile" }); ColumnViewerToolTipSupport.enableFor(viewer); TreeViewerColumn var = new TreeViewerColumn(viewer, SWT.LEFT, 0); var.getColumn().setText("Name"); var.getColumn().setWidth(190); var.getColumn().setMoveable(true); var.setLabelProvider(new DelegatingProviderWithTooltip(new RegionEditorLabelProvider(0))); var.setEditingSupport(new RegionEditorEditingSupport(viewer, 0)); var = new TreeViewerColumn(viewer, SWT.LEFT, 1); var.getColumn().setText("Value"); var.getColumn().setWidth(100); var.getColumn().setMoveable(true); var.setLabelProvider(new DelegatingProviderWithTooltip(new RegionEditorLabelProvider(1))); var.setEditingSupport(new RegionEditorEditingSupport(viewer, 1)); var = new TreeViewerColumn(viewer, SWT.LEFT, 2); var.getColumn().setText("Unit"); var.getColumn().setWidth(90); var.getColumn().setMoveable(true); var.setLabelProvider(new DelegatingProviderWithTooltip(new RegionEditorLabelProvider(2))); var.setEditingSupport(new UnitEditingSupport(viewer)); var = new TreeViewerColumn(viewer, SWT.LEFT, 3); var.getColumn().setText("Visible"); var.getColumn().setWidth(60); var.getColumn().setMoveable(true); var.setLabelProvider(new DelegatingProviderWithTooltip(new RegionEditorLabelProvider(3))); var.setEditingSupport(new RegionEditorEditingSupport(viewer, 3)); var = new TreeViewerColumn(viewer, SWT.LEFT, 4); var.getColumn().setText("Active"); var.getColumn().setWidth(60); var.getColumn().setMoveable(true); var.setLabelProvider(new DelegatingProviderWithTooltip(new RegionEditorLabelProvider(4))); var.setEditingSupport(new RegionEditorEditingSupport(viewer, 4)); var = new TreeViewerColumn(viewer, SWT.LEFT, 5); var.getColumn().setText("Mobile"); var.getColumn().setWidth(60); var.getColumn().setMoveable(true); var.setLabelProvider(new DelegatingProviderWithTooltip(new RegionEditorLabelProvider(5))); var.setEditingSupport(new RegionEditorEditingSupport(viewer, 5)); }
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(); }/* www . j av a 2 s.c o m*/ }); 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.table.ui.tools.internal.editor.DTableViewerManager.java
License:Open Source License
/** * Create the TreeViewer.//from w w w .j a va2 s. c om * * 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(); }
From source file:org.eclipse.sirius.table.ui.tools.internal.editor.DTableViewerManager.java
License:Open Source License
/** * Add a new column in the table.<BR> * /*from ww w .j a v a2 s .com*/ * @param newColumn * The new targetColumn * @param index * the index at which to place the newly created column * @param changeInput * true if we must change the input of the SWT tree to null * before adding the SWT column, false otherwise */ public void addNewColumn(final DColumn newColumn, final int index, final boolean changeInput) { DslCommonPlugin.PROFILER.startWork(SiriusTasksKey.ADD_SWT_COLUMN_KEY); if (treeViewer.getTree() != null) { for (TreeColumn tCol : treeViewer.getTree().getColumns()) { Object data = tCol.getData(TABLE_COLUMN_DATA); if (data != null && data.equals(newColumn)) { return; } } } final TreeViewerColumn treeViewerColumn = new TreeViewerColumn(treeViewer, SWT.LEFT, index); if (newColumn.getLabel() != null) { DslCommonPlugin.PROFILER.startWork(SiriusTasksKey.SET_COLUMN_NAME_KEY); TreeColumn treeColumn = treeViewerColumn.getColumn(); ILabelProvider dTableColumnHeaderLabelProvider = new DTableColumnHeaderLabelProvider(); String text = dTableColumnHeaderLabelProvider.getText(newColumn); treeColumn.setText(text); Image image = dTableColumnHeaderLabelProvider.getImage(newColumn); treeColumn.setImage(image); DslCommonPlugin.PROFILER.stopWork(SiriusTasksKey.SET_COLUMN_NAME_KEY); } if (newColumn.isVisible()) { if (newColumn.getWidth() != 0) { ((TreeColumnLayout) treeViewer.getControl().getParent().getLayout()) .setColumnData(treeViewerColumn.getColumn(), new ColumnPixelData(newColumn.getWidth())); if (treeViewerColumn.getColumn().getWidth() != newColumn.getWidth()) { treeViewerColumn.getColumn().setWidth(newColumn.getWidth()); } } else { ((TreeColumnLayout) treeViewer.getControl().getParent().getLayout()) .setColumnData(treeViewerColumn.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... treeViewerColumn.getColumn().pack(); } } } else { // Set the size of the column to 0 ((TreeColumnLayout) treeViewer.getControl().getParent().getLayout()) .setColumnData(treeViewerColumn.getColumn(), new ColumnPixelData(0)); } // Add the LabelProvider with decorating feature ILabelDecorator decorator = PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(); DTableDecoratingLabelProvider labelProvider = new DTableDecoratingLabelProvider(newColumn, decorator); treeViewerColumn.setLabelProvider(new DelegatingStyledCellLabelProvider(labelProvider)); if (newColumn instanceof DFeatureColumn) { treeViewerColumn.setEditingSupport( new DFeatureColumnEditingSupport(treeViewer, (DFeatureColumn) newColumn, getEditingDomain(), getAccessor(), getTableCommandFactory(), (AbstractDTableEditor) tableEditor)); } else if (newColumn instanceof DTargetColumn) { treeViewerColumn.setEditingSupport( new DTargetColumnEditingSupport(treeViewer, (DTargetColumn) newColumn, getEditingDomain(), getAccessor(), tableCommandFactory, (AbstractDTableEditor) tableEditor)); } treeViewerColumn.getColumn().setData(TABLE_COLUMN_DATA, newColumn); treeViewerColumn.getColumn().addControlListener(tableViewerListener); treeViewerColumn.getColumn().addListener(SWT.Selection, sortListener); DslCommonPlugin.PROFILER.stopWork(SiriusTasksKey.ADD_SWT_COLUMN_KEY); }
From source file:org.nfc.eclipse.plugin.NdefEditorPart.java
License:Open Source License
@Override public void createPartControl(Composite composite) { composite.setLayout(new FillLayout()); composite.setBackground(new Color(composite.getDisplay(), 0xFF, 0xFF, 0xFF)); form = new SashForm(composite, SWT.HORIZONTAL); form.setLayout(new FillLayout()); Composite wrapper = new Composite(form, SWT.NONE); wrapper.setLayout(new FillLayout()); treeViewer = new TreeViewer(wrapper, SWT.BORDER | SWT.FULL_SELECTION); treeViewer.getTree().setLinesVisible(true); treeViewer.getTree().setHeaderVisible(true); ColumnViewerToolTipSupport.enableFor(treeViewer); TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(treeViewer, new FocusCellOwnerDrawHighlighter(treeViewer)); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(treeViewer) { @Override//from w ww . j av a 2s. c om protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TreeViewerEditor.create(treeViewer, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); TreeViewerColumn column = new TreeViewerColumn(treeViewer, 0, SWT.NONE); column.getColumn().setWidth(200); column.getColumn().setMoveable(true); column.getColumn().setText("Record"); column.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { return element.toString(); } // add tooltip here }); column = new TreeViewerColumn(treeViewer, SWT.NONE); column.getColumn().setWidth(200); column.getColumn().setMoveable(true); column.getColumn().setText("Value"); column.setLabelProvider(new NdefRecordModelValueColumnLabelProvider()); column.setEditingSupport( new NdefRecordModelEditingSupport(treeViewer, this, operator.getNdefRecordFactory())); column = new TreeViewerColumn(treeViewer, SWT.NONE); column.getColumn().setWidth(50); column.getColumn().setMoveable(true); column.getColumn().setText("Size"); column.getColumn().setAlignment(SWT.CENTER); column.setLabelProvider(new NdefRecordModelSizeColumnLabelProvider()); // http://blog.eclipse-tips.com/2008/05/single-column-tableviewer-and.html column = new TreeViewerColumn(treeViewer, SWT.NONE); column.getColumn().setMoveable(true); column.getColumn().setResizable(false); column.getColumn().setText("Hint"); column.getColumn().setAlignment(SWT.LEFT); column.setLabelProvider(new NdefRecordModelHintColumnProvider()); column.getColumn().pack(); treeViewer.setContentProvider(new NdefRecordModelContentProvider()); treeViewer.setInput(operator.getModel()); new NdefRecordModelMenuListener(treeViewer, this, ndefMultiPageEditor, operator.getModel()); treeViewer.expandAll(); // we want the last column to 'fill' with the layout // trigger at key points: // first show composite.getDisplay().asyncExec(new Runnable() { public void run() { packAndFillLastColumn(); } }); // resize treeViewer.getTree().addControlListener(new ControlAdapter() { public void controlResized(ControlEvent e) { packAndFillLastColumn(); } }); // manual resizing of columns Tree tree = treeViewer.getTree(); for (int i = 0; i < tree.getColumnCount() - 1; i++) { tree.getColumn(i).addControlListener(new ControlAdapter() { public void controlResized(ControlEvent e) { packAndFillLastColumn(); } }); } // drag and drop Transfer[] types = new Transfer[] { LocalSelectionTransfer.getTransfer() }; int operations = DND.DROP_MOVE; treeViewer.addDragSupport(operations, types, new DragSourceListener() { @Override public void dragFinished(DragSourceEvent event) { // end drag } @Override public void dragSetData(DragSourceEvent event) { // do nothing for LocalSelectionTransfer } @Override public void dragStart(DragSourceEvent event) { int column = NdefEditorPart.this.getColumn(event.x); if (column == 0) { TreeSelection selection = (TreeSelection) treeViewer.getSelection(); Object node = selection.getFirstElement(); if (node instanceof NdefRecordModelRecord) { event.doit = true; NdefRecordModelRecord ndefRecordModelRecord = (NdefRecordModelRecord) node; if (ndefRecordModelRecord.getLevel() == 1) { Activator.info( "Start drag for " + ndefRecordModelRecord.getRecord().getClass().getSimpleName() + " at level " + ndefRecordModelRecord.getLevel()); event.data = node; event.doit = true; } else { Activator.info("Do not start drag for level " + ndefRecordModelRecord.getLevel()); event.doit = false; } } else { Activator.info("Do not start drag"); event.doit = false; } } else { Activator.info("Do not start drag for column " + column); event.doit = false; } } }); treeViewer.addDropSupport(operations, types, new TreeDropTargetEffect(treeViewer.getTree()) { /** * * Check out what kind of (visual) insert feedback to give user in GUI while dragging: insert before or after. * */ @Override public void dragOver(DropTargetEvent event) { Widget item = event.item; if (item instanceof TreeItem) { TreeItem treeItem = (TreeItem) item; NdefRecordModelNode node = (NdefRecordModelNode) treeItem.getData(); if (node instanceof NdefRecordModelRecord) { if (node.getLevel() == 1) { event.feedback = DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL; Point pt = event.display.map(null, treeViewer.getControl(), event.x, event.y); Rectangle bounds = treeItem.getBounds(); if (pt.y < bounds.y + bounds.height / 3) { event.feedback |= DND.FEEDBACK_INSERT_BEFORE; } else if (pt.y > bounds.y + 2 * bounds.height / 3) { event.feedback |= DND.FEEDBACK_INSERT_AFTER; } else { // event.feedback |= DND.FEEDBACK_SELECT; } } else { // ignore node } } else { // ignore node } } else if (item != null) { // ignore item } else if (item == null) { // ignore null item } super.dragOver(event); } public void drop(DropTargetEvent event) { Activator.info("Drop " + event.getSource() + " " + event.item); Widget item = event.item; if (item instanceof TreeItem) { TreeItem treeItem = (TreeItem) item; NdefRecordModelNode node = (NdefRecordModelNode) treeItem.getData(); if (node instanceof NdefRecordModelRecord) { if (node.getLevel() == 1) { TreeSelection selection = (TreeSelection) treeViewer.getSelection(); NdefRecordModelRecord source = (NdefRecordModelRecord) selection.getFirstElement(); if (source.getLevel() != 1) { return; } Point pt = event.display.map(null, treeViewer.getControl(), event.x, event.y); Rectangle bounds = treeItem.getBounds(); if (pt.y < bounds.y + bounds.height / 3) { Activator.info("Drop " + source + " before " + node); operator.move(source, node.getParent(), node.getParentIndex()); modified(true); } else if (pt.y > bounds.y + 2 * bounds.height / 3) { Activator.info("Drop " + source + " after " + node); operator.move(source, node.getParent(), node.getParentIndex() + 1); modified(true); } else { // event.feedback |= DND.FEEDBACK_SELECT; } } else { Activator.info("Ignore drop node " + node.getClass().getSimpleName() + " at level " + node.getLevel()); } } else { Activator.info("Ignore drop node " + node.getClass().getSimpleName()); } } else if (item != null) { Activator.info("Ignore drop item " + item.getClass().getSimpleName() + " " + item.getData()); } else if (item == null) { // ignore null item } } }); }
From source file:uk.ac.diamond.scisoft.analysis.rcp.results.navigator.DataNavigator.java
License:Apache License
/** * Create contents of the view part.//w w w. j av a2 s. co m * @param parent */ @Override public void createPartControl(Composite parent) { this.resultsViewer = new TreeViewer(parent, SWT.BORDER | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI); ColumnViewerToolTipSupport.enableFor(resultsViewer); final TreeViewerColumn name = new TreeViewerColumn(resultsViewer, SWT.NONE, 0); name.setLabelProvider(new IFileTreeColumnProvider()); name.getColumn().setText("Name"); name.getColumn().setWidth(350); name.getColumn().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { resultsViewer.setComparator(new AlphaNumericFileSorter()); } }); final TreeViewerColumn size = new TreeViewerColumn(resultsViewer, SWT.NONE, 1); size.getColumn().setText("Size"); size.getColumn().setWidth(100); size.getColumn().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { resultsViewer.setComparator(new SizeFileSorter()); } }); final TreeViewerColumn date = new TreeViewerColumn(resultsViewer, SWT.NONE, 2); date.getColumn().setText("Date Modified"); date.getColumn().setWidth(250); date.getColumn().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { resultsViewer.setComparator(new DateFileSorter()); } }); resultsViewer.setColumnProperties(new String[] { "Name", "Size", "Date Modified" }); resultsViewer.setUseHashlookup(true); resultsViewer.setContentProvider(new IFileTreeContentProvider(project)); resultsViewer.setLabelProvider(new IFileTreeLabelProvider()); resultsViewer.getTree().setHeaderVisible(true); //resultsViewer.setInput(rootFile); //resultsViewer.expandToLevel(3); try { setupProject(project, null); } catch (Exception e1) { logger.error("Cannot create project", e1); } IWorkingSetManager workingSetManager = PlatformUI.getWorkbench().getWorkingSetManager(); if (workingSetManager.getWorkingSet(DATA_WORKINGSET_NAME) == null) { workingSetManager.addWorkingSet( workingSetManager.createWorkingSet(DATA_WORKINGSET_NAME, new IAdaptable[] { project })); } getSite().setSelectionProvider(resultsViewer); createRightClickMenu(); createDragSupport(resultsViewer); createActions(); initializeToolBar(); initializeMenu(); addSelectionListener(resultsViewer); }