/*******************************************************************************
* Copyright (c) 2006, 2009 QNX Software Systems and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Doug Schaefer (QNX) - Initial API and implementation
* Markus Schorn (Wind River Systems)
* Ed Swartz (Nokia)
* Andrey Eremchenko (LEDAS)
*******************************************************************************/
package org.eclipse.cdt.internal.ui.search;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.internal.core.model.TranslationUnit;
import org.eclipse.cdt.internal.ui.util.Messages;
public class PDOMSearchTreeLabelProvider extends PDOMSearchLabelProvider {
public PDOMSearchTreeLabelProvider(PDOMSearchViewPage page) {
super(page);
}
@Override
public String getText(Object element) {
final String text= super.getText(element);
final int count= getMatchCount(element);
if (count <= 1) {
return text;
}
return text + " " //$NON-NLS-1$
+ Messages.format(CSearchMessages.CSearchResultCollector_matches, new Integer(count));
}
@Override
public StyledString getStyledText(Object element) {
if (element instanceof TranslationUnit) {
StyledString styled = new StyledString(super.getText(element));
final int count= getMatchCount(element);
if (count > 1) {
final String matchesCount = " " //$NON-NLS-1$
+ Messages.format(CSearchMessages.CSearchResultCollector_matches, new Integer(count));
styled.append(matchesCount, StyledString.COUNTER_STYLER);
return styled;
}
}
if (!(element instanceof LineSearchElement))
return new StyledString(getText(element));
LineSearchElement lineElement = (LineSearchElement) element;
String enclosingName = ""; //$NON-NLS-1$
ICElement enclosingElement = lineElement.getMatches()[0].getEnclosingElement();
if (fPage.isShowEnclosingDefinitions() && enclosingElement != null) {
enclosingName = enclosingElement.getElementName() + ", "; //$NON-NLS-1$
}
Integer lineNumber = lineElement.getLineNumber();
String prefix = Messages.format(CSearchMessages.CSearchResultCollector_line, enclosingName, lineNumber);
prefix += ": "; //$NON-NLS-1$
StyledString location = new StyledString(prefix, StyledString.QUALIFIER_STYLER);
return location.append(super.getStyledText(element));
}
}