package name.abuchen.portfolio.ui.views.columns;
import java.util.stream.Collectors;
import name.abuchen.portfolio.model.Adaptor;
import name.abuchen.portfolio.model.InvestmentVehicle;
import name.abuchen.portfolio.money.CurrencyUnit;
import name.abuchen.portfolio.ui.Messages;
import name.abuchen.portfolio.ui.util.viewers.Column;
import name.abuchen.portfolio.ui.util.viewers.ColumnViewerSorter;
import name.abuchen.portfolio.ui.util.viewers.ListEditingSupport;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.swt.SWT;
public class CurrencyColumn extends Column
{
private static class CurrencyColumnLabelProvider extends ColumnLabelProvider
{
@Override
public String getText(Object e)
{
InvestmentVehicle n = Adaptor.adapt(InvestmentVehicle.class, e);
return n != null ? n.getCurrencyCode() : null;
}
}
public static class CurrencyEditingSupport extends ListEditingSupport
{
public CurrencyEditingSupport()
{
super(InvestmentVehicle.class, "currencyCode", //$NON-NLS-1$
CurrencyUnit.getAvailableCurrencyUnits().stream() //
.map(u -> u.getCurrencyCode()).sorted().collect(Collectors.toList()));
}
}
public CurrencyColumn()
{
this("currency", Messages.ColumnCurrency, SWT.LEFT, 60); //$NON-NLS-1$
}
public CurrencyColumn(String id, String label, int style, int defaultWidth)
{
super(id, label, style, defaultWidth);
setLabelProvider(new CurrencyColumnLabelProvider());
setSorter(ColumnViewerSorter.create(InvestmentVehicle.class, "currencyCode")); //$NON-NLS-1$
}
}