package org.craftyourmod.mineclipse.ui.providers;
import java.io.File;
import org.craftyourmod.mineclipse.core.filemanager.BaseFile;
import org.craftyourmod.mineclipse.core.filemanager.BinaryFile;
import org.craftyourmod.mineclipse.core.filemanager.FileManager;
import org.craftyourmod.mineclipse.core.filemanager.SourceFile;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.StyledCellLabelProvider;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.swt.graphics.Image;
import org.eclipse.wb.swt.ResourceManager;
public class FileManagerLabelProvider extends StyledCellLabelProvider implements
ILabelProvider {
@Override
public void addListener(final ILabelProviderListener listener) {
}
@Override
public void dispose() {
}
@Override
public boolean isLabelProperty(final Object element, final String property) {
return false;
}
@Override
public void removeListener(final ILabelProviderListener listener) {
}
@Override
public Image getImage(final Object element) {
if ((element instanceof BinaryFile) || element.equals("BINS"))
return ResourceManager.getPluginImage(
"org.craftyourmod.mineclipse.ui", "icons/jar.gif");
if ((element instanceof SourceFile) || element.equals("SRCS"))
return ResourceManager.getPluginImage(
"org.craftyourmod.mineclipse.ui", "icons/source_java.gif");
return null;
}
// @Override
@Override
public String getText(final Object element) {
if (element.equals("ROOT"))
return "";
if (element.equals("BINS"))
return "Minecraft Binaries";
if (element.equals("SRCS"))
return "Minecraft Sources";
if (element instanceof BaseFile)
return ((BaseFile) element).getName();
if (element instanceof File)
return ((File) element).getName();
return "Unknow";
}
/*
* @Override public void update(final ViewerCell cell) {
* cell.setText(getText(cell.getElement()));
* cell.setImage(getImage(cell.getElement())); }
*
* @Override public Color getForeground(final Object element, final int
* columnIndex) { // TODO Auto-generated method stub return null; }
*
* @Override public Color getBackground(final Object element, final int
* columnIndex) { // TODO Auto-generated method stub return null; }
*/
public StyledString getStyledText(final Object element) {
if (element instanceof BaseFile) {
BaseFile f = (BaseFile) element;
StyledString s = new StyledString(f.getName());
s.append(" [" + f.getId() + "]", StyledString.DECORATIONS_STYLER);
s.append(" - " + f.getInput() + "", StyledString.QUALIFIER_STYLER);
return s;
}
StyledString s = new StyledString(getText(element));
if (element.equals("BINS")) {
int i = FileManager.INSTANCE.getBins().size();
s.append(" (" + i + ")", StyledString.COUNTER_STYLER);
}
if (element.equals("SRCS")) {
int i = FileManager.INSTANCE.getSrcs().size();
s.append(" (" + i + ")", StyledString.COUNTER_STYLER);
}
return s;
}
@Override
public void update(final ViewerCell cell) {
Object element = cell.getElement();
StyledString text = getStyledText(element);
cell.setText(text.toString());
cell.setStyleRanges(text.getStyleRanges());
cell.setImage(getImage(element));
super.update(cell);
}
}