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
9 * Doug Schaefer (QNX) - Initial API and implementation
10 * Markus Schorn (Wind River Systems)
12 * Andrey Eremchenko (LEDAS)
13 *******************************************************************************/
14 package org.eclipse.cdt.internal.ui.search;
16 import org.eclipse.jface.viewers.StyledString;
18 import org.eclipse.cdt.core.model.ICElement;
20 import org.eclipse.cdt.internal.core.model.TranslationUnit;
22 import org.eclipse.cdt.internal.ui.util.Messages;
24 public class PDOMSearchTreeLabelProvider extends PDOMSearchLabelProvider {
26 public PDOMSearchTreeLabelProvider(PDOMSearchViewPage page) {
31 public String getText(Object element) {
32 final String text= super.getText(element);
33 final int count= getMatchCount(element);
37 return text + " " //$NON-NLS-1$
38 + Messages.format(CSearchMessages.CSearchResultCollector_matches, new Integer(count));
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);
47 final String matchesCount = " " //$NON-NLS-1$
48 + Messages.format(CSearchMessages.CSearchResultCollector_matches, new Integer(count));
49 styled.append(matchesCount, StyledString.COUNTER_STYLER);
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$
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));