List of usage examples for org.eclipse.jface.viewers TreeViewer setAutoExpandLevel
public void setAutoExpandLevel(int level)
From source file:org.eclipse.scada.configuration.component.tools.dialog.DriverSelectionDialog.java
License:Open Source License
@Override protected Control createDialogArea(final Composite parent) { setTitle("Select driver"); setMessage("Choose a driver from the world model"); final Composite composite = (Composite) super.createDialogArea(parent); final ObservablesManager mgr = new ObservablesManager(); final TreeViewer viewer = new TreeViewer(composite); viewer.setAutoExpandLevel(2); viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override// w ww. j a v a2 s . c o m public void doubleClick(final DoubleClickEvent event) { handleDoubleClick(); } }); mgr.runAndCollect(new Runnable() { @Override public void run() { createDataModel(viewer); } }); return composite; }
From source file:org.eclipse.scada.configuration.component.tools.dialog.MasterSelectionDialog.java
License:Open Source License
@Override protected Control createDialogArea(final Composite parent) { setTitle("Select master server"); setMessage("Choose a master server from the world model"); final Composite composite = (Composite) super.createDialogArea(parent); final Composite wrapper = new Composite(composite, SWT.NONE); wrapper.setLayout(new GridLayout(1, true)); wrapper.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); final ObservablesManager mgr = new ObservablesManager(); final TreeViewer viewer = new TreeViewer(wrapper); viewer.setAutoExpandLevel(2); viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override//from www.j av a 2 s . co m public void doubleClick(final DoubleClickEvent event) { handleDoubleClick(); } }); final Button add = new Button(wrapper, SWT.RADIO); add.setText("Add master server"); add.setToolTipText("Assign the component to the selected master server in addition"); this.replace = new Button(wrapper, SWT.RADIO); this.replace.setText("Replace all master servers"); this.replace.setToolTipText("Assign the component soley to the selected master server"); this.replace.setSelection(true); this.delete = new Button(wrapper, SWT.RADIO); this.delete.setText("Remove master server"); this.delete.setToolTipText("Un-assign the component from the selected master server"); mgr.runAndCollect(new Runnable() { @Override public void run() { createDataModel(viewer); } }); if (this.lastSelection != null) { viewer.setSelection(new StructuredSelection(this.lastSelection)); viewer.reveal(this.lastSelection); } return composite; }
From source file:org.eclipse.tcf.te.ui.trees.AbstractTreeControl.java
License:Open Source License
/** * Configure the tree viewer.//from www .j a va2 s . co m * * @param viewer The tree viewer. Must not be <code>null</code>. */ protected void doConfigureTreeViewer(TreeViewer viewer) { Assert.isNotNull(viewer); viewer.setAutoExpandLevel(getAutoExpandLevel()); viewer.setLabelProvider(doCreateTreeViewerLabelProvider(this, viewer)); ITreeContentProvider mainContentProvider = doCreateTreeViewerContentProvider(viewer); Assert.isNotNull(mainContentProvider); final ITreeContentProvider contentProvider = new TreeViewerDelegatingContentProvider(this, mainContentProvider); InvocationHandler handler = new InvocationHandler() { @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (method.getName().equals("inputChanged")) { //$NON-NLS-1$ // Determine if the input really changed Object oldInput = args[1]; Object newInput = args[2]; if ((oldInput == null && newInput != null) || (oldInput != null && newInput == null) || (oldInput != null && !oldInput.equals(newInput))) { onInputChanged(oldInput, newInput); } } return method.invoke(contentProvider, args); } }; ClassLoader classLoader = getClass().getClassLoader(); Class<?>[] interfaces = new Class[] { ITreeContentProvider.class }; ITreeContentProvider proxy = (ITreeContentProvider) Proxy.newProxyInstance(classLoader, interfaces, handler); viewer.setContentProvider(proxy); viewer.setComparator(doCreateTreeViewerComparator(this, viewer)); viewer.getTree().setLayoutData(doCreateTreeViewerLayoutData(viewer)); // Attach the selection changed listener selectionChangedListener = doCreateTreeViewerSelectionChangedListener(viewer); if (selectionChangedListener != null) { viewer.addSelectionChangedListener(selectionChangedListener); } // Define an editor activation strategy for the common viewer so as to be invoked only programmatically. ColumnViewerEditorActivationStrategy activationStrategy = new TreeViewerEditorActivationStrategy( getViewerId(), viewer); TreeViewerEditor.create(viewer, null, activationStrategy, ColumnViewerEditor.DEFAULT); }
From source file:org.eclipse.tm.te.ui.trees.AbstractTreeControl.java
License:Open Source License
/** * Configure the tree viewer./*w w w .ja va 2 s. c o m*/ * * @param viewer The tree viewer. Must not be <code>null</code>. */ protected void configureTreeViewer(TreeViewer viewer) { Assert.isNotNull(viewer); viewer.setAutoExpandLevel(getAutoExpandLevel()); viewer.setLabelProvider(doCreateTreeViewerLabelProvider(viewer)); viewer.setContentProvider(doCreateTreeViewerContentProvider(viewer)); viewer.setComparator(doCreateTreeViewerComparator(viewer)); viewer.getTree().setLayoutData(doCreateTreeViewerLayoutData(viewer)); // Attach the selection changed listener selectionChangedListener = doCreateTreeViewerSelectionChangedListener(viewer); if (selectionChangedListener != null) { viewer.addSelectionChangedListener(selectionChangedListener); } }
From source file:org.eclipse.tracecompass.extension.internal.callstack.ui.views.stacktable.CallStackTableView.java
License:Open Source License
@Override public void createPartControl(@Nullable Composite parent) { super.createPartControl(parent); SashForm sf = new SashForm(parent, SWT.NONE); /* Build the tree viewer part of the view */ TreeViewer treeViewer = new TreeViewer(sf, SWT.FULL_SELECTION | SWT.H_SCROLL); fTreeViewer = treeViewer;/*from w w w. ja v a 2 s . co m*/ treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); final Tree tree = treeViewer.getTree(); tree.setHeaderVisible(true); tree.setLinesVisible(true); TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.LEFT); column.getColumn().setText("CallSite"); column.getColumn().setWidth(50); treeViewer.setContentProvider(new TreeContentProvider()); treeViewer.setLabelProvider(new TreeLabelProvider()); }
From source file:org.eclipse.tracecompass.internal.tmf.remote.ui.wizards.fetch.preferences.RemoteProfilesPreferencePage.java
License:Open Source License
@Override protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); composite.setLayoutData(gd);//from w w w . j av a 2s .c o m GridLayout gl = new GridLayout(2, false); composite.setLayout(gl); PatternFilter patternFilter = new PatternFilter() { // show all children of matching profiles or profiles with matching connection node @Override protected boolean isLeafMatch(Viewer viewer, Object element) { TreeViewer treeViewer = (TreeViewer) viewer; TracePackageContentProvider contentProvider = (TracePackageContentProvider) treeViewer .getContentProvider(); Object parentElement = element; while (!(parentElement instanceof RemoteImportProfileElement)) { parentElement = contentProvider.getParent(parentElement); if (parentElement instanceof TracePackageTraceElement) { // don't show children of trace element return false; } } RemoteImportProfileElement profile = (RemoteImportProfileElement) parentElement; if (super.isLeafMatch(viewer, profile)) { return true; } for (Object child : contentProvider.getChildren(profile)) { if ((child instanceof RemoteImportConnectionNodeElement) && (super.isLeafMatch(viewer, child))) { return true; } } return false; } }; final FilteredTree filteredTree = new FilteredTree(composite, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER, patternFilter, true); gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.heightHint = 0; filteredTree.setLayoutData(gd); final TreeViewer treeViewer = filteredTree.getViewer(); fTreeViewer = treeViewer; treeViewer.setContentProvider(new TracePackageContentProvider() { @Override public Object[] getElements(Object inputElement) { if (inputElement instanceof ArrayList) { return ((ArrayList<?>) inputElement).toArray(); } return super.getElements(inputElement); } @Override public boolean hasChildren(Object element) { if (element instanceof TracePackageTraceElement) { return false; } return super.hasChildren(element); } }); treeViewer.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof TracePackageTraceElement) { for (TracePackageElement files : ((TracePackageTraceElement) element).getChildren()) { if (files instanceof TracePackageFilesElement) { return ((TracePackageFilesElement) files).getFileName(); } } } else if (element instanceof TracePackageElement) { return ((TracePackageElement) element).getText(); } return super.getText(element); } @Override public Image getImage(Object element) { if (element instanceof TracePackageTraceElement) { for (TracePackageElement files : ((TracePackageTraceElement) element).getChildren()) { return files.getImage(); } } else if (element instanceof TracePackageElement) { return ((TracePackageElement) element).getImage(); } return super.getImage(element); } }); treeViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); TracePackageElement element = (TracePackageElement) (selection.size() == 1 ? selection.getFirstElement() : null); fDetailsPanel.refreshDetailsPanel(element); enableButtons(selection); fSelectedProfileName = null; while (element != null) { if (element instanceof RemoteImportProfileElement) { fSelectedProfileName = ((RemoteImportProfileElement) element).getProfileName(); } element = element.getParent(); } } }); createGlobalActions(); createContextMenu(); fProfiles = readProfiles(PROFILE_FILE_PATH, new NullProgressMonitor()); treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); treeViewer.setInput(fProfiles); treeViewer.expandAll(); Composite buttonBar = createVerticalButtonBar(composite); gd = new GridData(SWT.CENTER, SWT.BEGINNING, false, false); gd.verticalIndent = filteredTree.getFilterControl().computeSize(SWT.DEFAULT, SWT.DEFAULT).y + gl.verticalSpacing; buttonBar.setLayoutData(gd); enableButtons((IStructuredSelection) treeViewer.getSelection()); Composite details = new Composite(composite, SWT.NONE); gd = new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1); details.setLayoutData(gd); gl = new GridLayout(2, false); gl.marginWidth = 0; details.setLayout(gl); Label label = new Label(details, SWT.NONE); label.setText(RemoteMessages.RemoteProfilesPreferencePage_DetailsPanelLabel); gd = new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 2, 1); label.setLayoutData(gd); fDetailsPanel = new DetailsPanel(details); validate(); for (RemoteImportProfileElement profile : fProfiles) { if (profile.getProfileName().equals(fSelectedProfileName)) { fTreeViewer.setSelection(new StructuredSelection(profile)); } } Dialog.applyDialogFont(composite); return composite; }
From source file:org.eclipse.ui.internal.dialogs.CustomizePerspectiveDialog.java
License:Open Source License
private Composite createActionSetAvailabilityPage(Composite parent) { GridData data;//from ww w . j a v a 2 s .c o m Composite actionSetsComposite = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); actionSetsComposite.setLayout(layout); // Select... label Label label = new Label(actionSetsComposite, SWT.WRAP); label.setText(NLS.bind(WorkbenchMessages.ActionSetSelection_selectActionSetsLabel, perspective.getDesc().getLabel())); data = new GridData(SWT.FILL, SWT.CENTER, true, false); label.setLayoutData(data); Label sep = new Label(actionSetsComposite, SWT.HORIZONTAL | SWT.SEPARATOR); sep.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); SashForm sashComposite = new SashForm(actionSetsComposite, SWT.HORIZONTAL); data = new GridData(SWT.FILL, SWT.FILL, true, true); sashComposite.setLayoutData(data); // Action Set List Composite Composite actionSetGroup = new Composite(sashComposite, SWT.NONE); layout = new GridLayout(); layout.marginHeight = 0; layout.marginWidth = 0; actionSetGroup.setLayout(layout); actionSetGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); label = new Label(actionSetGroup, SWT.WRAP); label.setText(WorkbenchMessages.ActionSetSelection_availableActionSets); label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); final CheckboxTableViewer actionSetsViewer = CheckboxTableViewer.newCheckList(actionSetGroup, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); actionSetAvailabilityTable = actionSetsViewer; actionSetsViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); actionSetsViewer.setLabelProvider(new LabelProvider()); actionSetsViewer.setContentProvider(new ArrayContentProvider()); actionSetsViewer.setComparator(new WorkbenchViewerComparator()); actionSetsViewer.setCheckStateProvider(new ICheckStateProvider() { public boolean isChecked(Object element) { return ((ActionSet) element).isActive(); } public boolean isGrayed(Object element) { return false; } }); actionSetsViewer.setInput(actionSets.toArray()); Table table = actionSetsViewer.getTable(); new TableToolTip(table); final ActionSet[] selectedActionSet = { null }; // Filter to show only branches necessary for the selected action set. final ViewerFilter setFilter = new ViewerFilter() { public boolean select(Viewer viewer, Object parentElement, Object element) { if (selectedActionSet[0] == null) return false; return includeInSetStructure((DisplayItem) element, selectedActionSet[0]); } }; // Updates the check state of action sets actionSetsViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { final ActionSet actionSet = (ActionSet) event.getElement(); if (event.getChecked()) { actionSet.setActive(true); for (Iterator i = actionSet.contributionItems.iterator(); i.hasNext();) { DisplayItem item = (DisplayItem) i.next(); item.setCheckState(true); } } else { actionSet.setActive(false); } } }); // Menu and toolbar composite Composite actionGroup = new Composite(sashComposite, SWT.NONE); layout = new GridLayout(); layout.numColumns = 2; layout.makeColumnsEqualWidth = true; layout.marginHeight = 0; layout.marginWidth = 0; layout.horizontalSpacing = 0; actionGroup.setLayout(layout); actionGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); Composite menubarGroup = new Composite(actionGroup, SWT.NONE); layout = new GridLayout(); layout.marginHeight = 0; layout.marginWidth = 0; menubarGroup.setLayout(layout); menubarGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); label = new Label(menubarGroup, SWT.WRAP); label.setText(WorkbenchMessages.ActionSetSelection_menubarActions); label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); final TreeViewer actionSetMenuViewer = new TreeViewer(menubarGroup); actionSetMenuViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); actionSetMenuViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); actionSetMenuViewer.setUseHashlookup(true); actionSetMenuViewer.setContentProvider(TreeManager.getTreeContentProvider()); actionSetMenuViewer.setLabelProvider(TreeManager.getLabelProvider()); actionSetMenuViewer.addFilter(setFilter); actionSetMenuViewer.setInput(menuItems); Tree tree = actionSetMenuViewer.getTree(); new ItemDetailToolTip(actionSetMenuViewer, tree, false, true, setFilter); Composite toolbarGroup = new Composite(actionGroup, SWT.NONE); layout = new GridLayout(); layout.marginHeight = 0; layout.marginWidth = 0; toolbarGroup.setLayout(layout); toolbarGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); label = new Label(toolbarGroup, SWT.WRAP); label.setText(WorkbenchMessages.ActionSetSelection_toolbarActions); label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); final TreeViewer actionSetToolbarViewer = new TreeViewer(toolbarGroup); actionSetToolbarViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); actionSetToolbarViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); actionSetToolbarViewer.setContentProvider(TreeManager.getTreeContentProvider()); actionSetToolbarViewer.setLabelProvider(TreeManager.getLabelProvider()); actionSetToolbarViewer.addFilter(setFilter); actionSetToolbarViewer.setInput(toolBarItems); tree = actionSetToolbarViewer.getTree(); new ItemDetailToolTip(actionSetToolbarViewer, tree, false, true, setFilter); // Updates the menu item and toolbar items tree viewers when the // selection changes actionSetsViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { selectedActionSet[0] = (ActionSet) ((IStructuredSelection) event.getSelection()).getFirstElement(); actionSetMenuViewer.setInput(menuItems); actionSetToolbarViewer.setInput(toolBarItems); } }); sashComposite.setWeights(new int[] { 30, 70 }); return actionSetsComposite; }
From source file:org.eclipse.ui.internal.dialogs.NewWizardNewPage.java
License:Open Source License
/** * Create a new FilteredTree in the parent. * /*from ww w . ja v a 2 s . c o m*/ * @param parent the parent <code>Composite</code>. * @since 3.0 */ protected FilteredTree createFilteredTree(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.marginHeight = 0; layout.marginWidth = 0; composite.setLayout(layout); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.widthHint = SIZING_VIEWER_WIDTH; data.horizontalSpan = 2; data.grabExcessHorizontalSpace = true; data.grabExcessVerticalSpace = true; boolean needsHint = DialogUtil.inRegularFontMode(parent); //Only give a height hint if the dialog is going to be too small if (needsHint) { data.heightHint = SIZING_LISTS_HEIGHT; } composite.setLayoutData(data); filteredTreeFilter = new WizardPatternFilter(); FilteredTree filterTree = new FilteredTree(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER, filteredTreeFilter, true); filterTree.setQuickSelectionMode(true); final TreeViewer treeViewer = filterTree.getViewer(); treeViewer.setContentProvider(new WizardContentProvider()); treeViewer.setLabelProvider(new DelegatingLabelProviderWithTooltip(new WorkbenchLabelProvider(), PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(ContributingPluginDecorator.ID)) { protected Object unwrapElement(Object element) { if (element instanceof WorkbenchWizardElement) { element = ((WorkbenchWizardElement) element).getConfigurationElement(); } if (element instanceof WizardCollectionElement) { element = ((WizardCollectionElement) element).getConfigurationElement(); } return element; } }); treeViewer.setComparator(NewWizardCollectionComparator.INSTANCE); treeViewer.addSelectionChangedListener(this); ArrayList inputArray = new ArrayList(); for (int i = 0; i < primaryWizards.length; i++) { inputArray.add(primaryWizards[i]); } boolean expandTop = false; if (wizardCategories != null) { if (wizardCategories.getParent() == null) { IWizardCategory[] children = wizardCategories.getCategories(); for (int i = 0; i < children.length; i++) { inputArray.add(children[i]); } } else { expandTop = true; inputArray.add(wizardCategories); } } // ensure the category is expanded. If there is a remembered expansion it will be set later. if (expandTop) { treeViewer.setAutoExpandLevel(2); } AdaptableList input = new AdaptableList(inputArray); treeViewer.setInput(input); filterTree.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); treeViewer.getTree().setFont(parent.getFont()); treeViewer.addDoubleClickListener(new IDoubleClickListener() { /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent) */ public void doubleClick(DoubleClickEvent event) { IStructuredSelection s = (IStructuredSelection) event.getSelection(); selectionChanged(new SelectionChangedEvent(event.getViewer(), s)); Object element = s.getFirstElement(); if (treeViewer.isExpandable(element)) { treeViewer.setExpandedState(element, !treeViewer.getExpandedState(element)); } else if (element instanceof WorkbenchWizardElement) { page.advanceToNextPageOrFinish(); } } }); treeViewer.addFilter(filter); if (projectsOnly) { treeViewer.addFilter(projectFilter); } Dialog.applyDialogFont(filterTree); return filterTree; }
From source file:org.eclipse.wst.jsdt.internal.ui.text.JavaOutlineInformationControl.java
License:Open Source License
/** * {@inheritDoc}//from w w w .ja va 2 s . c om */ protected TreeViewer createTreeViewer(Composite parent, int style) { Tree tree = new Tree(parent, SWT.SINGLE | (style & ~SWT.MULTI)); GridData gd = new GridData(GridData.FILL_BOTH); gd.heightHint = tree.getItemHeight() * 12; tree.setLayoutData(gd); final TreeViewer treeViewer = new OutlineTreeViewer(tree); ColoredViewersManager.install(treeViewer); // Hard-coded filters treeViewer.addFilter(new NamePatternFilter()); treeViewer.addFilter(new MemberFilter()); fInnerLabelProvider = new OutlineLabelProvider(); fInnerLabelProvider.addLabelDecorator(new ProblemsLabelDecorator(null)); IDecoratorManager decoratorMgr = PlatformUI.getWorkbench().getDecoratorManager(); if (decoratorMgr.getEnabled("org.eclipse.wst.jsdt.ui.override.decorator")) //$NON-NLS-1$ fInnerLabelProvider.addLabelDecorator(new OverrideIndicatorLabelDecorator(null)); treeViewer.setLabelProvider(fInnerLabelProvider); fLexicalSortingAction = new LexicalSortingAction(treeViewer); fSortByDefiningTypeAction = new SortByDefiningTypeAction(treeViewer); fShowOnlyMainTypeAction = new ShowOnlyMainTypeAction(treeViewer); fCategoryFilterActionGroup = new CategoryFilterActionGroup(treeViewer, getId(), getInputForCategories()); fOutlineContentProvider = new OutlineContentProvider(false); treeViewer.setContentProvider(fOutlineContentProvider); fOutlineSorter = new OutlineSorter(); treeViewer.setComparator(fOutlineSorter); treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); treeViewer.getTree().addKeyListener(getKeyAdapter()); return treeViewer; }
From source file:org.eclipse.wst.jsdt.internal.ui.typehierarchy.HierarchyInformationControl.java
License:Open Source License
protected TreeViewer createTreeViewer(Composite parent, int style) { Tree tree = new Tree(parent, SWT.SINGLE | (style & ~SWT.MULTI)); GridData gd = new GridData(GridData.FILL_BOTH); gd.heightHint = tree.getItemHeight() * 12; tree.setLayoutData(gd);/*from w w w . j a v a2 s . c o m*/ TreeViewer treeViewer = new TreeViewer(tree); ColoredViewersManager.install(treeViewer); treeViewer.addFilter(new ViewerFilter() { public boolean select(Viewer viewer, Object parentElement, Object element) { return element instanceof IType; } }); fLifeCycle = new TypeHierarchyLifeCycle(false); treeViewer.setComparator(new HierarchyViewerSorter(fLifeCycle)); treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); fLabelProvider = new HierarchyLabelProvider(fLifeCycle); fLabelProvider.setFilter(new ViewerFilter() { public boolean select(Viewer viewer, Object parentElement, Object element) { return hasFocusMethod((IType) element); } }); fLabelProvider.setTextFlags(JavaScriptElementLabels.ALL_DEFAULT | JavaScriptElementLabels.T_POST_QUALIFIED); fLabelProvider.addLabelDecorator(new ProblemsLabelDecorator(null)); treeViewer.setLabelProvider(fLabelProvider); treeViewer.getTree().addKeyListener(getKeyAdapter()); return treeViewer; }