private IJavaElement[] getInputForCategories() { if (fInput == null) return new IJavaElement[0]; if (fOutlineContentProvider.isShowingInheritedMembers()) { IJavaElement p= fInput; if (p instanceof ITypeRoot) { p= ((ITypeRoot)p).findPrimaryType(); } while (p != null && !(p instanceof IType)) { p= p.getParent(); } if (!(p instanceof IType)) return new IJavaElement[] {fInput}; ITypeHierarchy hierarchy= getSuperTypeHierarchy((IType)p); if (hierarchy == null) return new IJavaElement[] {fInput}; IType[] supertypes= hierarchy.getAllSupertypes((IType)p); IJavaElement[] result= new IJavaElement[supertypes.length + 1]; result[0]= fInput; System.arraycopy(supertypes, 0, result, 1, supertypes.length); return result; } else { return new IJavaElement[] {fInput}; } }
fCategoryFilterActionGroup= new CategoryFilterActionGroup(treeViewer, getId(), getInputForCategories()); fOutlineContentProvider= new OutlineContentProvider(false); treeViewer.setContentProvider(fOutlineContentProvider); fOutlineSorter= new OutlineSorter();
@Override 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); // 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.jdt.ui.override.decorator")) //$NON-NLS-1$ fInnerLabelProvider.addLabelDecorator(new OverrideIndicatorLabelDecorator(null)); treeViewer.setLabelProvider(new ColoringLabelProvider(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; }
private IJavaElement[] getInputForCategories() { if (fInput == null) return new IJavaElement[0]; if (fOutlineContentProvider.isShowingInheritedMembers()) { IJavaElement p= fInput; if (p instanceof ITypeRoot) { p= ((ITypeRoot)p).findPrimaryType(); } while (p != null && !(p instanceof IType)) { p= p.getParent(); } if (!(p instanceof IType)) return new IJavaElement[] {fInput}; ITypeHierarchy hierarchy= getSuperTypeHierarchy((IType)p); if (hierarchy == null) return new IJavaElement[] {fInput}; IType[] supertypes= hierarchy.getAllSupertypes((IType)p); IJavaElement[] result= new IJavaElement[supertypes.length + 1]; result[0]= fInput; System.arraycopy(supertypes, 0, result, 1, supertypes.length); return result; } else { return new IJavaElement[] {fInput}; } }
@Override public Color getForeground(Object element) { if (fOutlineContentProvider.isShowingInheritedMembers()) { if (element instanceof IJavaElement) { IJavaElement je= (IJavaElement)element; if (fInput.getElementType() == IJavaElement.COMPILATION_UNIT) { je= je.getAncestor(IJavaElement.COMPILATION_UNIT); if (fInput.equals(je)) { return null; } } else { do { je= je.getAncestor(IJavaElement.CLASS_FILE); if (fInput.equals(je) || je == null) { return null; } je= ((IClassFile) je).getType().getDeclaringType(); } while (je != null); } } return JFaceResources.getColorRegistry().get(ColoredViewersManager.INHERITED_COLOR_NAME); } return null; }
@Override public Color getForeground(Object element) { if (fOutlineContentProvider.isShowingInheritedMembers()) { if (element instanceof IJavaElement) { IJavaElement je= (IJavaElement)element; if (fInput.getElementType() == IJavaElement.COMPILATION_UNIT) { je= je.getAncestor(IJavaElement.COMPILATION_UNIT); if (fInput.equals(je)) { return null; } } else { do { je= je.getAncestor(IJavaElement.CLASS_FILE); if (fInput.equals(je) || je == null || !(je instanceof IOrdinaryClassFile)) { return null; } je= ((IOrdinaryClassFile) je).getType().getDeclaringType(); } while (je != null); } } return JFaceResources.getColorRegistry().get(ColoredViewersManager.INHERITED_COLOR_NAME); } return null; }
@Override 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); // 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.jdt.ui.override.decorator")) //$NON-NLS-1$ fInnerLabelProvider.addLabelDecorator(new OverrideIndicatorLabelDecorator(null)); treeViewer.setLabelProvider(new ColoringLabelProvider(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; }
private IJavaElement[] getInputForCategories() { if (fInput == null) return new IJavaElement[0]; if (fOutlineContentProvider.isShowingInheritedMembers()) { IJavaElement p= fInput; if (p instanceof ITypeRoot) { p= ((ITypeRoot)p).findPrimaryType(); } while (p != null && !(p instanceof IType)) { p= p.getParent(); } if (!(p instanceof IType)) return new IJavaElement[] {fInput}; ITypeHierarchy hierarchy= getSuperTypeHierarchy((IType)p); if (hierarchy == null) return new IJavaElement[] {fInput}; IType[] supertypes= hierarchy.getAllSupertypes((IType)p); IJavaElement[] result= new IJavaElement[supertypes.length + 1]; result[0]= fInput; System.arraycopy(supertypes, 0, result, 1, supertypes.length); return result; } else { return new IJavaElement[] {fInput}; } }
public Color getForeground(Object element) { if (fOutlineContentProvider.isShowingInheritedMembers()) { if (element instanceof IJavaElement) { IJavaElement je= (IJavaElement)element; if (fInput.getElementType() == IJavaElement.CLASS_FILE) je= je.getAncestor(IJavaElement.CLASS_FILE); else je= je.getAncestor(IJavaElement.COMPILATION_UNIT); if (fInput.equals(je)) { return null; } } return JFaceResources.getColorRegistry().get(ColoredViewersManager.INHERITED_COLOR_NAME); } return null; }
@Override public boolean hasChildren(TreePath path) { return hasChildren(path.getLastSegment()); }
/** * {@inheritDoc} */ protected String getStatusFieldText() { KeySequence[] sequences= getInvokingCommandKeySequences(); if (sequences == null || sequences.length == 0) return ""; //$NON-NLS-1$ String keySequence= sequences[0].format(); if (fOutlineContentProvider.isShowingInheritedMembers()) return Messages.format(JavaUIMessages.JavaOutlineControl_statusFieldText_hideInheritedMembers, keySequence); else return Messages.format(JavaUIMessages.JavaOutlineControl_statusFieldText_showInheritedMembers, keySequence); }
@Override public Object[] getChildren(Object element) { return getChildren(new TreePath(new Object[] { element })); }
protected void toggleShowInheritedMembers() { long flags= fInnerLabelProvider.getTextFlags(); flags ^= JavaElementLabels.ALL_POST_QUALIFIED; fInnerLabelProvider.setTextFlags(flags); fOutlineContentProvider.toggleShowInheritedMembers(); updateStatusFieldText(); fCategoryFilterActionGroup.setInput(getInputForCategories()); }
@Override protected String getStatusFieldText() { KeySequence[] sequences= getInvokingCommandKeySequences(); if (sequences == null || sequences.length == 0) return ""; //$NON-NLS-1$ String keySequence= sequences[0].format(); if (fOutlineContentProvider.isShowingInheritedMembers()) return Messages.format(JavaUIMessages.JavaOutlineControl_statusFieldText_hideInheritedMembers, keySequence); else return Messages.format(JavaUIMessages.JavaOutlineControl_statusFieldText_showInheritedMembers, keySequence); }
protected void toggleShowInheritedMembers() { long flags= fInnerLabelProvider.getTextFlags(); flags ^= JavaElementLabels.ALL_POST_QUALIFIED; fInnerLabelProvider.setTextFlags(flags); fOutlineContentProvider.toggleShowInheritedMembers(); updateStatusFieldText(); fCategoryFilterActionGroup.setInput(getInputForCategories()); }
@Override public Object[] getChildren(Object element) { return getChildren(new TreePath(new Object[] { element })); }
@Override public boolean hasChildren(TreePath path) { return hasChildren(path.getLastSegment()); }
protected void toggleShowInheritedMembers() { long flags= fInnerLabelProvider.getTextFlags(); flags ^= JavaElementLabels.ALL_POST_QUALIFIED; fInnerLabelProvider.setTextFlags(flags); fOutlineContentProvider.toggleShowInheritedMembers(); updateStatusFieldText(); fCategoryFilterActionGroup.setInput(getInputForCategories()); }
@Override protected String getStatusFieldText() { TriggerSequence[] sequences= getInvokingCommandKeySequences(); if (sequences == null || sequences.length == 0) return ""; //$NON-NLS-1$ String keySequence= sequences[0].format(); if (fOutlineContentProvider.isShowingInheritedMembers()) return Messages.format(JavaUIMessages.JavaOutlineControl_statusFieldText_hideInheritedMembers, keySequence); else return Messages.format(JavaUIMessages.JavaOutlineControl_statusFieldText_showInheritedMembers, keySequence); }