package name.abuchen.portfolio.ui.util.viewers;
import java.util.function.Function;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import name.abuchen.portfolio.money.Money;
import name.abuchen.portfolio.money.Values;
import name.abuchen.portfolio.ui.Images;
public final class MoneyColorLabelProvider extends ColumnLabelProvider
{
private final Function<Object, Money> provider;
private final String baseCurrency;
public MoneyColorLabelProvider(Function<Object, Money> provider, String baseCurrency)
{
this.provider = provider;
this.baseCurrency = baseCurrency;
}
@Override
public Color getForeground(Object element)
{
Money money = provider.apply(element);
if (money == null)
return null;
return Display.getCurrent().getSystemColor(money.getAmount() >= 0 ? SWT.COLOR_DARK_GREEN : SWT.COLOR_DARK_RED);
}
@Override
public Image getImage(Object element)
{
Money money = provider.apply(element);
if (money == null)
return null;
return money.getAmount() >= 0 ? Images.GREEN_ARROW.image() : Images.RED_ARROW.image();
}
@Override
public String getText(Object element)
{
Money money = provider.apply(element);
if (money == null)
return null;
return Values.Money.format(money, baseCurrency);
}
}