]> git.uio.no Git - ifi-stolz-refaktor.git/blame - case-study/jdt-before/ui/org/eclipse/jdt/internal/ui/search/PostfixLabelProvider.java
Case Study: adding data and statistics
[ifi-stolz-refaktor.git] / case-study / jdt-before / ui / org / eclipse / jdt / internal / ui / search / PostfixLabelProvider.java
CommitLineData
1b2798f6
EK
1/*******************************************************************************
2 * Copyright (c) 2000, 2011 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11package org.eclipse.jdt.internal.ui.search;
12
13import org.eclipse.swt.graphics.Image;
14
15import org.eclipse.jface.viewers.ITreeContentProvider;
16import org.eclipse.jface.viewers.StyledString;
17
18import org.eclipse.jdt.core.IClassFile;
19import org.eclipse.jdt.core.ICompilationUnit;
20import org.eclipse.jdt.core.IJavaModel;
21import org.eclipse.jdt.core.IType;
22
23import org.eclipse.jdt.ui.JavaElementLabels;
24
25
26public class PostfixLabelProvider extends SearchLabelProvider {
27 private ITreeContentProvider fContentProvider;
28
29 public PostfixLabelProvider(JavaSearchResultPage page) {
30 super(page);
31 fContentProvider= new LevelTreeContentProvider.FastJavaElementProvider();
32 }
33
34 @Override
35 public Image getImage(Object element) {
36 Image image= super.getImage(element);
37 if (image != null)
38 return image;
39 return getParticipantImage(element);
40 }
41
42 @Override
43 public String getText(Object element) {
44 String labelWithCounts= getLabelWithCounts(element, internalGetText(element));
45 return labelWithCounts + getQualification(element);
46 }
47
48 private String getQualification(Object element) {
49 StringBuffer res= new StringBuffer();
50
51 ITreeContentProvider provider= (ITreeContentProvider) fPage.getViewer().getContentProvider();
52 Object visibleParent= provider.getParent(element);
53 Object realParent= fContentProvider.getParent(element);
54 Object lastElement= element;
55 while (realParent != null && !(realParent instanceof IJavaModel) && !realParent.equals(visibleParent)) {
56 if (!isSameInformation(realParent, lastElement)) {
57 res.append(JavaElementLabels.CONCAT_STRING).append(internalGetText(realParent));
58 }
59 lastElement= realParent;
60 realParent= fContentProvider.getParent(realParent);
61 }
62 return res.toString();
63 }
64
65 @Override
66 protected boolean hasChildren(Object element) {
67 ITreeContentProvider contentProvider= (ITreeContentProvider) fPage.getViewer().getContentProvider();
68 return contentProvider.hasChildren(element);
69 }
70
71 private String internalGetText(Object element) {
72 String text= super.getText(element);
73 if (text != null && text.length() > 0)
74 return text;
75 return getParticipantText(element);
76 }
77
78 private StyledString internalGetStyledText(Object element) {
79 StyledString text= super.getStyledText(element);
80 if (text != null && text.length() > 0)
81 return text;
82 return getStyledParticipantText(element);
83 }
84
85 private boolean isSameInformation(Object realParent, Object lastElement) {
86 if (lastElement instanceof IType) {
87 IType type= (IType) lastElement;
88 if (realParent instanceof IClassFile) {
89 if (type.getClassFile().equals(realParent))
90 return true;
91 } else if (realParent instanceof ICompilationUnit) {
92 if (type.getCompilationUnit().equals(realParent))
93 return true;
94 }
95 }
96 return false;
97 }
98
99 /* (non-Javadoc)
100 * @see org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider#getStyledText(java.lang.Object)
101 */
102 @Override
103 public StyledString getStyledText(Object element) {
104 StyledString styledString= getColoredLabelWithCounts(element, internalGetStyledText(element));
105 styledString.append(getQualification(element), StyledString.QUALIFIER_STYLER);
106 return styledString;
107 }
108
109}