/******************************************************************************* * Copyright (c) 2006, 2012 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: * 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.ViewerCell; import org.eclipse.cdt.core.index.IndexLocationFactory; import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.ui.CDTSharedImages; import org.eclipse.cdt.internal.ui.util.Messages; import org.eclipse.cdt.internal.ui.viewsupport.ColoringLabelProvider; /** * @author Doug Schaefer */ public class CSearchListLabelProvider extends ColoringLabelProvider { private final CSearchViewPage fPage; private final int fColumnIndex; public CSearchListLabelProvider(CSearchViewPage page, int columnIndex) { super(new CSearchLabelProvider(page)); fPage = page; fColumnIndex = columnIndex; } @Override public void update(ViewerCell cell) { Object element = cell.getElement(); switch (fColumnIndex) { case CSearchViewPage.LOCATION_COLUMN_INDEX: if (element instanceof LineSearchElement) { LineSearchElement lineElement = (LineSearchElement) element; String location = IndexLocationFactory.getPath(lineElement.getLocation()).toString(); int lineNumber = lineElement.getLineNumber(); cell.setText(Messages.format(CSearchMessages.CSearchResultCollector_location, location, lineNumber)); cell.setImage(CDTSharedImages.getImage(CDTSharedImages.IMG_OBJS_SEARCH_LINE)); } break; case CSearchViewPage.DEFINITION_COLUMN_INDEX: if (element instanceof LineSearchElement) { LineSearchElement lineElement = (LineSearchElement) element; ICElement enclosingElement = lineElement.getMatches()[0].getEnclosingElement(); if (fPage.isShowEnclosingDefinitions() && enclosingElement != null) { cell.setText(enclosingElement.getElementName()); cell.setImage(getImage(element)); } else { cell.setText(""); //$NON-NLS-1$ } } break; case CSearchViewPage.MATCH_COLUMN_INDEX: super.update(cell); cell.setImage(null); break; default: cell.setText(""); //$NON-NLS-1$ break; } } }