// Copyright (c) 2003-2005 by Leif Frenzel - see http://leiffrenzel.de
package net.sf.eclipsefp.haskell.ui.dialog;
import net.sf.eclipsefp.haskell.core.util.ResourceUtil;
import net.sf.eclipsefp.haskell.ui.util.HaskellUIImages;
import net.sf.eclipsefp.haskell.ui.util.IImageNames;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
/** <p>a label provider for Haskell projects and their source folders.</p>
*
* @author Administrator
*/
public class DialogLabelProvider extends LabelProvider {
// interface methods of ILabelProvider
//////////////////////////////////////
@Override
public String getText( final Object element ) {
return ResourceUtil.findResource( element ).getName();
}
@Override
public Image getImage( final Object element ) {
Image result = null;
if( element instanceof IProject && ResourceUtil.hasHaskellNature( (IProject )element )) {
result = HaskellUIImages.getImage( IImageNames.HASKELL_PROJECT );
} else if( isSourceFolder( element ) ) {
result = HaskellUIImages.getImage( IImageNames.SOURCE_FOLDER );
} else if( element instanceof IFolder ) {
ISharedImages si = PlatformUI.getWorkbench().getSharedImages();
result = si.getImage( ISharedImages.IMG_OBJ_FOLDER );
} else if (element instanceof IProject){
result = HaskellUIImages.getImage( IImageNames.HASKELL_PROJECT );
}
return result;
}
// helping methods
//////////////////
private boolean isSourceFolder( final Object object ) {
return object instanceof IFolder
&& ResourceUtil.isSourceFolder( ( IFolder )object );
}
}