List of usage examples for org.eclipse.jface.viewers TreeViewer setContentProvider
@Override public void setContentProvider(IContentProvider provider)
TreeViewer
. From source file:org.caesarj.ui.editor.CaesarJContentOutlinePage.java
License:Open Source License
/** * Creates the JFace control that displays the content *//*from w w w. j a v a 2 s. c o m*/ public void createControl(Composite parent) { super.createControl(parent); contentProvider = new CaesarOutlineViewContentProvider(); // Creates the helper classes and associates them to the tree viewer TreeViewer viewer = getTreeViewer(); //viewer.setSorter(new CaesarOutlineViewLexicalSorter()); viewer.setSorter(new CaesarOutlineViewLineSorter()); viewer.setContentProvider(contentProvider); viewer.setLabelProvider(new CaesarOutlineViewLabelProvider()); viewer.addSelectionChangedListener(this); // Call update to create the initial state ProjectProperties properties = ProjectProperties.create(project); if (properties.getAsmManager() != null) { update(ProjectProperties.create(project)); } }
From source file:org.caleydo.data.tcga.internal.TCGABrowserStartupAddon.java
License:Open Source License
private TreeViewer createSelectionTree(final SashForm form, final WizardPage page, final Listener listener) { final TreeViewer v = new TreeViewer(form, SWT.VIRTUAL | SWT.BORDER); v.setLabelProvider(new LabelProvider()); v.setContentProvider(new MyContentProvider(v)); v.setUseHashlookup(true);/* w w w .j av a2s . c o m*/ v.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection s = (IStructuredSelection) event.getSelection(); Object f = s.getFirstElement(); if (f instanceof TumorProject) { selectedChoice = ((TumorProject) f).getProject(); // page.setPageComplete(true); } else { selectedChoice = null; // page.setPageComplete(false); } if (f instanceof TumorProject) { updateDetailInfo((TumorProject) f); form.setMaximizedControl(null); } else if (f instanceof RunOverview) { updateDetailInfo((RunOverview) f); clearDetailInfo(); form.setMaximizedControl(v.getControl()); } else { clearDetailInfo(); form.setMaximizedControl(v.getControl()); } // This is a bit hacky, but there is no way to register a swt listener to a treeviewer. listener.handleEvent(null); } }); return v; }
From source file:org.camunda.bpm.modeler.ui.dialog.importer.ModelProblemsDialog.java
License:Open Source License
private void createProblemsTreeView(Composite parent) { // clipboard to copy and paste from / to final Clipboard clipboard = new Clipboard(parent.getDisplay()); Composite treeColumnComposite = new Composite(parent, SWT.NONE); GridData treeColumnCompositeGridData = new GridData(SWT.FILL, SWT.TOP, true, false); treeColumnCompositeGridData.widthHint = 420; treeColumnCompositeGridData.heightHint = 128; treeColumnComposite.setLayoutData(treeColumnCompositeGridData); TreeColumnLayout treeColumnLayout = new TreeColumnLayout(); treeColumnComposite.setLayout(treeColumnLayout); final TreeViewer treeViewer = new TreeViewer(treeColumnComposite, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); Tree tree = treeViewer.getTree();/*from w ww . ja v a 2 s . c om*/ tree.setLinesVisible(true); treeViewer.setContentProvider(new ProblemsContentProvider()); treeViewer.setLabelProvider(new ProblemLabelProvider()); Menu menu = new Menu(parent.getShell(), SWT.POP_UP); final MenuItem copyItem = new MenuItem(menu, SWT.PUSH); copyItem.setText("Copy Stacktrace to Clipboard"); String imageName = ISharedImages.IMG_TOOL_COPY; copyItem.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(imageName)); copyItem.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection(); Problem problem = (Problem) selection.getFirstElement(); copyToClipboard(clipboard, problem); } }); treeViewer.getTree().setMenu(menu); List<Problem> problems = populateProblems(); // Expand the tree treeViewer.setAutoExpandLevel(2); // Provide the input to the ContentProvider treeViewer.setInput(problems); }
From source file:org.cfeclipse.cfml.views.contentoutline.CFContentOutlineView.java
License:Open Source License
public void createControl(Composite parent) { super.createControl(parent); DocItem root = getRootInput();/*from w ww .j a v a2 s. c om*/ TreeViewer viewer = getTreeViewer(); viewer.setContentProvider(new OutlineContentProvider(root)); viewer.setLabelProvider(new OutlineLabelProvider()); viewer.addSelectionChangedListener(this); // this listener listens to the editor (vs. this outline view) getSite().getPage().addPostSelectionListener(this); createActions(); createToolbar(); createContextMenu(); hookGlobalActions(); hookDoubleClickAction(); reload(root); }
From source file:org.cheetahplatform.tdm.explorer.TDMProjectExplorerView.java
License:Open Source License
@Override public void createPartControl(Composite parent) { composite = new TDMProjectExplorerComposite(parent, SWT.NONE); model = new TDMProjectExplorerModel(); TreeViewer viewer = composite.getTreeViewer(); viewer.setContentProvider(model.createContentProvider()); viewer.setLabelProvider(model.createLabelProvider()); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override// ww w. j a v a 2s. c o m public void doubleClick(DoubleClickEvent event) { openTestEditor(); } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { openTestEditor(); } }); if (CheetahPlatformConfigurator.getBoolean(IConfiguration.ALLOW_MODIFICATION_OF_TESTS)) { addContextMenu(); } }
From source file:org.chromium.debug.ui.liveedit.LiveEditDiffViewer.java
License:Open Source License
private void configureTreeViewer(TreeViewer treeViewer, TreeViewer opposite, Side side) { treeViewer.setContentProvider(new FunctionTreeContentProvider()); treeViewer.setLabelProvider(new LabelProviderImpl(side)); treeViewer.addSelectionChangedListener(new SelectionChangeListener(opposite)); treeViewer.addTreeListener(new TreeListenerImpl(opposite)); treeViewer.getTree().getVerticalBar().addListener(SWT.Selection, new TreeScrollBarListener(opposite)); }
From source file:org.codecover.eclipse.views.controls.RedundancyViewerFactory.java
License:Open Source License
private static void configureViewer(final TreeViewer viewer, final boolean withTestSessionColumn, final Runnable disposeRunnable) { TreeColumnLayout layout = new TreeColumnLayout(); TreeColumn column;//ww w . j av a 2 s . co m viewer.getTree().setRedraw(false); viewer.getTree().getParent().setLayout(layout); // set providers viewer.setContentProvider(new ViewerContentProvider(disposeRunnable)); viewer.setLabelProvider(new ViewerLabelProvider(withTestSessionColumn)); // add columns to viewer viewer.getTree().setHeaderVisible(true); // name column column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.NAME.getIndex(withTestSessionColumn)); column.setText(Columns.NAME.getText()); column.setWidth(120); layout.setColumnData(column, new ColumnWeightData(52, 120)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_NAME }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { return Collator.getInstance().compare( this.lblProvider.getColumnText(o1, Columns.NAME.getIndex(withTestSessionColumn)), this.lblProvider.getColumnText(o2, Columns.NAME.getIndex(withTestSessionColumn))); } }; // test session column (optional) if (withTestSessionColumn) { column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.TESTSESSION.getIndex(withTestSessionColumn)); column.setText(Columns.TESTSESSION.getText()); column.setWidth(100); layout.setColumnData(column, new ColumnWeightData(16, 100)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_NAME }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { return Collator.getInstance().compare( this.lblProvider.getColumnText(o1, Columns.TESTSESSION.getIndex(withTestSessionColumn)), this.lblProvider.getColumnText(o2, Columns.TESTSESSION.getIndex(withTestSessionColumn))); } }; } // Redundancy columns: column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.ST_REDUNDANCY.getIndex(withTestSessionColumn)); column.setText(Columns.ST_REDUNDANCY.getText()); column.setWidth(80); layout.setColumnData(column, new ColumnWeightData(16, 80)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { String str1 = this.lblProvider.getColumnText(o1, Columns.ST_REDUNDANCY.getIndex(withTestSessionColumn)); String str2 = this.lblProvider.getColumnText(o2, Columns.ST_REDUNDANCY.getIndex(withTestSessionColumn)); if (str1.compareTo("NaN") == 0) { return 1; } else if (str2.compareTo("NaN") == 0) { return -1; } else { double d1 = Double.parseDouble(str1); double d2 = Double.parseDouble(str2); if (d1 <= d2) { return 1; } else { return -1; } } } }; column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.BR_REDUNDANCY.getIndex(withTestSessionColumn)); column.setText(Columns.BR_REDUNDANCY.getText()); column.setWidth(80); layout.setColumnData(column, new ColumnWeightData(16, 80)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { String str1 = this.lblProvider.getColumnText(o1, Columns.BR_REDUNDANCY.getIndex(withTestSessionColumn)); String str2 = this.lblProvider.getColumnText(o2, Columns.BR_REDUNDANCY.getIndex(withTestSessionColumn)); if (str1.compareTo("NaN") == 0) { return 1; } else if (str2.compareTo("NaN") == 0) { return -1; } else { double d1 = Double.parseDouble(str1); double d2 = Double.parseDouble(str2); if (d1 <= d2) { return 1; } else { return -1; } } } }; column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.COND_REDUNDANCY.getIndex(withTestSessionColumn)); column.setText(Columns.COND_REDUNDANCY.getText()); column.setWidth(80); layout.setColumnData(column, new ColumnWeightData(16, 80)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { String str1 = this.lblProvider.getColumnText(o1, Columns.COND_REDUNDANCY.getIndex(withTestSessionColumn)); String str2 = this.lblProvider.getColumnText(o2, Columns.COND_REDUNDANCY.getIndex(withTestSessionColumn)); if (str1.compareTo("NaN") == 0) { return 1; } else if (str2.compareTo("NaN") == 0) { return -1; } else { double d1 = Double.parseDouble(str1); double d2 = Double.parseDouble(str2); if (d1 <= d2) { return 1; } else { return -1; } } } }; column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.LOOP_REDUNDANCY.getIndex(withTestSessionColumn)); column.setText(Columns.LOOP_REDUNDANCY.getText()); column.setWidth(80); layout.setColumnData(column, new ColumnWeightData(16, 80)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { String str1 = this.lblProvider.getColumnText(o1, Columns.LOOP_REDUNDANCY.getIndex(withTestSessionColumn)); String str2 = this.lblProvider.getColumnText(o2, Columns.LOOP_REDUNDANCY.getIndex(withTestSessionColumn)); if (str1.compareTo("NaN") == 0) { return 1; } else if (str2.compareTo("NaN") == 0) { return -1; } else { double d1 = Double.parseDouble(str1); double d2 = Double.parseDouble(str2); if (d1 <= d2) { return 1; } else { return -1; } } } }; column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.REDUNDANCY.getIndex(withTestSessionColumn)); column.setText(Columns.REDUNDANCY.getText()); column.setWidth(80); layout.setColumnData(column, new ColumnWeightData(16, 80)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { String str1 = this.lblProvider.getColumnText(o1, Columns.REDUNDANCY.getIndex(withTestSessionColumn)); String str2 = this.lblProvider.getColumnText(o2, Columns.REDUNDANCY.getIndex(withTestSessionColumn)); if (str1.compareTo("NaN") == 0) { return 1; } else if (str2.compareTo("NaN") == 0) { return -1; } else { double d1 = Double.parseDouble(str1); double d2 = Double.parseDouble(str2); if (d1 <= d2) { return 1; } else { return -1; } } } }; // Covered Items columns: column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.ST_COVEREDITEMS.getIndex(withTestSessionColumn)); column.setText(Columns.ST_COVEREDITEMS.getText()); column.setWidth(60); layout.setColumnData(column, new ColumnWeightData(16, 60)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { int a = Integer.parseInt(this.lblProvider.getColumnText(o1, Columns.ST_COVEREDITEMS.getIndex(withTestSessionColumn))); int b = Integer.parseInt(this.lblProvider.getColumnText(o2, Columns.ST_COVEREDITEMS.getIndex(withTestSessionColumn))); if (a <= b) { return 1; } else { return -1; } } }; column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.BR_COVEREDITEMS.getIndex(withTestSessionColumn)); column.setText(Columns.BR_COVEREDITEMS.getText()); column.setWidth(60); layout.setColumnData(column, new ColumnWeightData(16, 60)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { int a = Integer.parseInt(this.lblProvider.getColumnText(o1, Columns.BR_COVEREDITEMS.getIndex(withTestSessionColumn))); int b = Integer.parseInt(this.lblProvider.getColumnText(o2, Columns.BR_COVEREDITEMS.getIndex(withTestSessionColumn))); if (a <= b) { return 1; } else { return -1; } } }; column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.COND_COVEREDITEMS.getIndex(withTestSessionColumn)); column.setText(Columns.COND_COVEREDITEMS.getText()); column.setWidth(60); layout.setColumnData(column, new ColumnWeightData(16, 60)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { int a = Integer.parseInt(this.lblProvider.getColumnText(o1, Columns.COND_COVEREDITEMS.getIndex(withTestSessionColumn))); int b = Integer.parseInt(this.lblProvider.getColumnText(o2, Columns.COND_COVEREDITEMS.getIndex(withTestSessionColumn))); if (a <= b) { return 1; } else { return -1; } } }; column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.LOOP_COVEREDITEMS.getIndex(withTestSessionColumn)); column.setText(Columns.LOOP_COVEREDITEMS.getText()); column.setWidth(60); layout.setColumnData(column, new ColumnWeightData(16, 60)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { int a = Integer.parseInt(this.lblProvider.getColumnText(o1, Columns.LOOP_COVEREDITEMS.getIndex(withTestSessionColumn))); int b = Integer.parseInt(this.lblProvider.getColumnText(o2, Columns.LOOP_COVEREDITEMS.getIndex(withTestSessionColumn))); if (a <= b) { return 1; } else { return -1; } } }; column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.COVEREDITEMS.getIndex(withTestSessionColumn)); column.setText(Columns.COVEREDITEMS.getText()); column.setWidth(60); layout.setColumnData(column, new ColumnWeightData(16, 60)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { int a = Integer.parseInt( this.lblProvider.getColumnText(o1, Columns.COVEREDITEMS.getIndex(withTestSessionColumn))); int b = Integer.parseInt( this.lblProvider.getColumnText(o2, Columns.COVEREDITEMS.getIndex(withTestSessionColumn))); if (a <= b) { return 1; } else { return -1; } } }; viewer.getTree().setRedraw(true); }
From source file:org.codecover.eclipse.views.controls.TestSessionsViewerFactory.java
License:Open Source License
private static void configureViewer(final TreeViewer viewer, final boolean withTestSessionColumn, final Runnable disposeRunnable) { TreeColumnLayout layout = new TreeColumnLayout(); TreeColumn column;/*w ww .j av a2 s .co m*/ viewer.getTree().setRedraw(false); viewer.getTree().getParent().setLayout(layout); // set providers viewer.setContentProvider(new ViewerContentProvider(disposeRunnable)); viewer.setLabelProvider(new ViewerLabelProvider(withTestSessionColumn)); // add columns to viewer viewer.getTree().setHeaderVisible(true); // name column column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.NAME.getIndex(withTestSessionColumn)); column.setText(Columns.NAME.getText()); column.setWidth(120); layout.setColumnData(column, new ColumnWeightData(52, 120)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_NAME }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { return Collator.getInstance().compare( this.lblProvider.getColumnText(o1, Columns.NAME.getIndex(withTestSessionColumn)), this.lblProvider.getColumnText(o2, Columns.NAME.getIndex(withTestSessionColumn))); } }; // test session column (optional) if (withTestSessionColumn) { column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.TESTSESSION.getIndex(withTestSessionColumn)); column.setText(Columns.TESTSESSION.getText()); column.setWidth(100); layout.setColumnData(column, new ColumnWeightData(16, 100)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_NAME }) { private final ITableLabelProvider lblProvider = (ITableLabelProvider) viewer.getLabelProvider(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { return Collator.getInstance().compare( this.lblProvider.getColumnText(o1, Columns.TESTSESSION.getIndex(withTestSessionColumn)), this.lblProvider.getColumnText(o2, Columns.TESTSESSION.getIndex(withTestSessionColumn))); } }; } // date column column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.DATE.getIndex(withTestSessionColumn)); column.setText(Columns.DATE.getText()); column.setWidth(80); layout.setColumnData(column, new ColumnWeightData(16, 80)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) { private final DateComparator comparator = new DateComparator(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { return this.comparator.compare(viewer, o1, o2); } }; // time column column = new TreeColumn(viewer.getTree(), SWT.LEAD, Columns.TIME.getIndex(withTestSessionColumn)); column.setText(Columns.TIME.getText()); column.setWidth(60); layout.setColumnData(column, new ColumnWeightData(16, 60)); new ViewerSorter(viewer, column, new String[] { UPDATE_PROPERTY_DATE }) { private final DateComparator comparator = new DateComparator(); @Override protected int doCompare(Viewer viewer, Object o1, Object o2) { return this.comparator.compare(viewer, o1, o2); } }; viewer.getTree().setRedraw(true); }
From source file:org.cs3.pdt.analysis.views.AbstractAnalysisView.java
License:Open Source License
protected TreeViewer createResultTreeViewer(Composite parent) { final TreeViewer treeViewer = new TreeViewer(parent, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); GridData gridData = new GridData(); gridData.grabExcessHorizontalSpace = true; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessVerticalSpace = true; gridData.verticalAlignment = GridData.FILL; Tree tree = treeViewer.getTree();/*from ww w . j a va2 s.c o m*/ tree.addMouseListener(new MouseListener() { @Override public void mouseUp(MouseEvent e) { } @Override public void mouseDown(MouseEvent e) { } @Override public void mouseDoubleClick(MouseEvent e) { ISelection selection = treeViewer.getSelection(); if (selection instanceof ITreeSelection) { Object o = ((ITreeSelection) selection).getFirstElement(); if (o instanceof IResult) { selectResultInEditor((IResult) o); } } } }); tree.setLayoutData(gridData); tree.setHeaderVisible(true); tree.setLinesVisible(true); resultContentProvider = new ResultTableContentProvider(getResultModel()); treeViewer.setContentProvider(resultContentProvider); treeViewer.setInput(new Object()); resultTreeViewerColumns = new TreeViewerColumn[3]; for (int i = 0; i < resultTreeViewerColumns.length; i++) { resultTreeViewerColumns[i] = new TreeViewerColumn(treeViewer, SWT.NONE); resultTreeViewerColumns[i].getColumn().setMoveable(true); } resultTreeViewerColumns[0].getColumn().setWidth(300); resultTreeViewerColumns[0].getColumn().setText("Description"); resultTreeViewerColumns[0].setLabelProvider(new ResultTableDescriptionColumnLabelProvider()); resultTreeViewerColumns[1].getColumn().setWidth(150); resultTreeViewerColumns[1].getColumn().setText("Resource"); resultTreeViewerColumns[1].setLabelProvider(new ResultTableResourceColumnLabelProvider()); resultTreeViewerColumns[2].getColumn().setWidth(100); resultTreeViewerColumns[2].getColumn().setText("Location"); resultTreeViewerColumns[2].setLabelProvider(new ResultTableLocationColumnLabelProvider()); return treeViewer; }
From source file:org.cs3.pdt.common.search.PrologSearchResultPage.java
License:Open Source License
@Override protected void configureTreeViewer(TreeViewer viewer) { viewer.setLabelProvider(new DecoratingPrologSearchLabelProvider(new PrologSearchLabelProvider())); ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE); // viewer.setLabelProvider(new DecoratingLabelProvider(new PrologSearchLabelProvider(), // PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator())); fContentProvider = new PrologSearchTreeContentProvider(this); viewer.setContentProvider(fContentProvider); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override/*ww w . j a va 2s .c o m*/ public void doubleClick(DoubleClickEvent event) { ISelection selection = event.getSelection(); if (selection instanceof TreeSelection) { Object firstElement = ((TreeSelection) selection).getFirstElement(); Match m = null; if (firstElement instanceof SearchModuleElement) { m = ((SearchModuleElement) firstElement).getMatch(); } else if (firstElement instanceof SearchPredicateElement) { m = ((SearchPredicateElement) firstElement).getFirstOccurrence(); } else if (firstElement instanceof SearchFileTreeElement) { m = ((SearchFileTreeElement) firstElement).getFirstMatch(); } if (m != null) { final Match match = m; UIJob job = new UIJob("Show Match") { @Override public IStatus runInUIThread(IProgressMonitor monitor) { try { showMatch(match, match.getOffset(), match.getLength(), true); } catch (PartInitException e) { Debug.report(e); } return Status.OK_STATUS; } }; job.schedule(); } } } }); viewer.addTreeListener(new ITreeViewerListener() { @Override public void treeExpanded(TreeExpansionEvent event) { final AbstractTreeViewer treeViewer = event.getTreeViewer(); PrologSearchTreeContentProvider contentProvider = (PrologSearchTreeContentProvider) treeViewer .getContentProvider(); final Object element = event.getElement(); int expandLevel = 1; Object[] children = contentProvider.getChildren(element); while (children.length == 1) { expandLevel++; children = contentProvider.getChildren(children[0]); } if (expandLevel > 1) { final int finalExpandLevel = expandLevel; treeViewer.getControl().getDisplay().asyncExec(new Runnable() { @Override public void run() { treeViewer.expandToLevel(element, finalExpandLevel); } }); } } @Override public void treeCollapsed(TreeExpansionEvent event) { } }); }