/*******************************************************************************
* Copyright (c) 2009 STMicroelectronics.
* 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:
* Xavier Raynaud <xavier.raynaud@st.com> - initial API and implementation
*******************************************************************************/
package org.eclipse.linuxtools.internal.gprof.view.fields;
import org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTDataViewersField;
import org.eclipse.linuxtools.internal.gprof.Messages;
import org.eclipse.linuxtools.internal.gprof.view.GmonView;
import org.eclipse.linuxtools.internal.gprof.view.histogram.TreeElement;
import org.eclipse.swt.graphics.Color;
/**
* Column "name", or "location" of the displayed element
*
* @author Xavier Raynaud <xavier.raynaud@st.com>
*/
public class NameProfField extends AbstractSTDataViewersField {
@Override
public int compare(Object obj1, Object obj2) {
TreeElement e1 = (TreeElement) obj1;
TreeElement e2 = (TreeElement) obj2;
String s1 = e1.getName();
String s2 = e2.getName();
if (s1 == null) {
if (s2 == null) return 0;
return -1;
}
if (s2 == null) return 1;
return s1.compareTo(s2);
}
@Override
public String getColumnHeaderText() {
return Messages.NameProfField_NAME_AND_LOCATION;
}
@Override
public String getValue(Object obj) {
if (obj instanceof TreeElement) {
TreeElement e = (TreeElement) obj;
return e.getName();
}
return ""; //$NON-NLS-1$
}
@Override
public Color getBackground(Object element) {
return GmonView.getBackground(element);
}
@Override
public String getToolTipText(Object element) {
TreeElement elem = (TreeElement) element;
String s = elem.getSourcePath();
if (s != null && !"??".equals(s)) { //$NON-NLS-1$
int lineNumber = elem.getSourceLine();
if (lineNumber > 0) {
return s + ":" + lineNumber; //$NON-NLS-1$
}
return s;
}
return null;
}
@Override
public int getPreferredWidth() {
return 250;
}
}