upload tizen1.0 source
[sdk/ide/product.git] / org.eclipse.cdt.ui / src / org / eclipse / cdt / internal / ui / search / PDOMSearchTreeLabelProvider.java
1 /*******************************************************************************
2  * Copyright (c) 2006, 2009 QNX Software Systems 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  *     Doug Schaefer (QNX) - Initial API and implementation
10  *     Markus Schorn (Wind River Systems)
11  *     Ed Swartz (Nokia)
12  *     Andrey Eremchenko (LEDAS)
13  *******************************************************************************/
14 package org.eclipse.cdt.internal.ui.search;
15
16 import org.eclipse.jface.viewers.StyledString;
17
18 import org.eclipse.cdt.core.model.ICElement;
19
20 import org.eclipse.cdt.internal.core.model.TranslationUnit;
21
22 import org.eclipse.cdt.internal.ui.util.Messages;
23
24 public class PDOMSearchTreeLabelProvider extends PDOMSearchLabelProvider {
25         
26         public PDOMSearchTreeLabelProvider(PDOMSearchViewPage page) {
27                 super(page);
28         }
29         
30         @Override
31         public String getText(Object element) {
32                 final String text= super.getText(element);
33                 final int count= getMatchCount(element);
34                 if (count <= 1) {
35                         return text;
36                 }
37                 return text + " " //$NON-NLS-1$
38                                 + Messages.format(CSearchMessages.CSearchResultCollector_matches, new Integer(count)); 
39         }
40
41         @Override
42         public StyledString getStyledText(Object element) {
43                 if (element instanceof TranslationUnit) {
44                         StyledString styled = new StyledString(super.getText(element));
45                         final int count= getMatchCount(element);
46                         if (count > 1) {
47                                 final String matchesCount = " " //$NON-NLS-1$
48                                         + Messages.format(CSearchMessages.CSearchResultCollector_matches, new Integer(count));
49                                 styled.append(matchesCount, StyledString.COUNTER_STYLER);
50                                 return styled;
51                         }
52                 }
53                 if (!(element instanceof LineSearchElement))
54                         return new StyledString(getText(element));
55                 LineSearchElement lineElement = (LineSearchElement) element;
56                 String enclosingName = ""; //$NON-NLS-1$
57                 ICElement enclosingElement = lineElement.getMatches()[0].getEnclosingElement();
58                 if (fPage.isShowEnclosingDefinitions() && enclosingElement != null) {
59                         enclosingName = enclosingElement.getElementName() + ", "; //$NON-NLS-1$
60                 }
61                 Integer lineNumber = lineElement.getLineNumber();
62                 String prefix = Messages.format(CSearchMessages.CSearchResultCollector_line, enclosingName, lineNumber);
63                 prefix += ":  "; //$NON-NLS-1$
64                 StyledString location = new StyledString(prefix, StyledString.QUALIFIER_STYLER);
65                 return location.append(super.getStyledText(element));
66         }
67
68 }