/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package com.python.pydev.analysis.actions;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import com.python.pydev.analysis.AnalysisPlugin;
import com.python.pydev.analysis.additionalinfo.IInfo;
/**
* Provides the labels and images for the top panel
*
* @author Fabio
*/
public class NameIInfoLabelProvider extends LabelProvider {
/**
* Should we should the whole name with the package structure or only the name of the token (if true
* shows it fully qualified)
*/
protected final boolean showCompleteName;
public NameIInfoLabelProvider(boolean showCompleteName) {
this.showCompleteName = showCompleteName;
}
@Override
public String getText(Object element) {
IInfo info = getInfo(element);
if (info == null) {
return "";
}
if (showCompleteName) {
return info.getName() + " - " + info.getDeclaringModuleName();
}
return info.getName();
}
@Override
public Image getImage(Object element) {
IInfo info = getInfo(element);
if (info == null) {
return null;
}
return AnalysisPlugin.getImageForTypeInfo(info);
}
/**
* Can return null (i.e. if we receive a string on a multiple selection)
*/
public static IInfo getInfo(Object element) {
if (element instanceof AdditionalInfoAndIInfo) {
element = ((AdditionalInfoAndIInfo) element).info;
}
if (!(element instanceof IInfo)) {
return null;
}
IInfo info = (IInfo) element;
return info;
}
}