/**
* (c) 2011, Alejandro Serrano
* Released under the terms of the EPL.
*/
package net.sf.eclipsefp.haskell.browser.views.packages;
import net.sf.eclipsefp.haskell.browser.Database;
import net.sf.eclipsefp.haskell.browser.util.ImageCache;
import net.sf.eclipsefp.haskell.ui.internal.util.UITexts;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.swt.graphics.Image;
/**
* Label provider for packages.
* @author Alejandro Serrano
*
*/
public class PackagesLabelProvider implements ILabelProvider {
@Override
public Image getImage(final Object element) {
return element instanceof Database ? ImageCache.DATABASE : ImageCache.PACKAGE;
}
@Override
public String getText(final Object element) {
if (element instanceof Database) {
switch (((Database) element).getType()) {
case ALL:
return UITexts.browser_allDatabases;
case HACKAGE:
return UITexts.browser_hackageDatabase;
case LOCAL:
return UITexts.browser_localDatabase;
case PACKAGE:
return UITexts.browser_packageDatabase;
}
return "";
} else {
PackagesItem pkg = (PackagesItem)element;
return pkg.getPackage().getIdentifier().toString();
}
}
// Listeners: not used
@Override
public void addListener(final ILabelProviderListener listener) {
// Do nothing
}
@Override
public void dispose() {
// Do nothing
}
@Override
public boolean isLabelProperty(final Object element, final String property) {
// Do nothing
return false;
}
@Override
public void removeListener(final ILabelProviderListener listener) {
// Do nothing
}
}