use of name.abuchen.portfolio.ui.util.viewers.Column in project portfolio by buchen.
the class SecuritiesTable method addColumnLatestPrice.
private // NOSONAR
void addColumnLatestPrice() {
// $NON-NLS-1$
Column column = new Column("4", Messages.ColumnLatest, SWT.RIGHT, 60);
column.setMenuLabel(Messages.ColumnLatest_MenuLabel);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
Security security = (Security) e;
SecurityPrice latest = security.getSecurityPrice(LocalDate.now());
if (latest == null)
return null;
if (security.getCurrencyCode() == null)
return Values.Quote.format(latest.getValue());
else
return Values.Quote.format(security.getCurrencyCode(), latest.getValue(), getClient().getBaseCurrency());
}
});
column.setSorter(ColumnViewerSorter.create((o1, o2) -> {
SecurityPrice p1 = ((Security) o1).getSecurityPrice(LocalDate.now());
SecurityPrice p2 = ((Security) o2).getSecurityPrice(LocalDate.now());
if (p1 == null)
return p2 == null ? 0 : -1;
if (p2 == null)
return 1;
long v1 = p1.getValue();
long v2 = p2.getValue();
return v1 > v2 ? 1 : v1 == v2 ? 0 : -1;
}));
support.addColumn(column);
}
use of name.abuchen.portfolio.ui.util.viewers.Column in project portfolio by buchen.
the class SecurityListView method createEventsTable.
// //////////////////////////////////////////////////////////////
// tab item: transactions
// //////////////////////////////////////////////////////////////
protected Composite createEventsTable(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
TableColumnLayout layout = new TableColumnLayout();
container.setLayout(layout);
events = new TableViewer(container, SWT.FULL_SELECTION);
ShowHideColumnHelper support = new // $NON-NLS-1$
ShowHideColumnHelper(// $NON-NLS-1$
SecurityListView.class.getSimpleName() + "@events", getPreferenceStore(), events, layout);
Column column = new Column(Messages.ColumnDate, SWT.None, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return Values.Date.format(((SecurityEvent) element).getDate());
}
});
column.setSorter(ColumnViewerSorter.create(e -> ((SecurityEvent) e).getDate()), SWT.UP);
support.addColumn(column);
column = new Column(Messages.ColumnTransactionType, SWT.None, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((SecurityEvent) element).getType().toString();
}
});
support.addColumn(column);
column = new Column(Messages.ColumnDetails, SWT.None, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((SecurityEvent) element).getDetails();
}
});
support.addColumn(column);
support.createColumns();
events.getTable().setHeaderVisible(true);
events.getTable().setLinesVisible(true);
events.setContentProvider(ArrayContentProvider.getInstance());
return container;
}
use of name.abuchen.portfolio.ui.util.viewers.Column in project portfolio by buchen.
the class SecurityListView method createTransactionTable.
// //////////////////////////////////////////////////////////////
// tab item: transactions
// //////////////////////////////////////////////////////////////
protected Composite createTransactionTable(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
TableColumnLayout layout = new TableColumnLayout();
container.setLayout(layout);
transactions = new TableViewer(container, SWT.FULL_SELECTION);
ColumnViewerToolTipSupport.enableFor(transactions, ToolTip.NO_RECREATE);
ShowHideColumnHelper support = new ShowHideColumnHelper(// $NON-NLS-1$
SecurityListView.class.getSimpleName() + "@transactions4", // $NON-NLS-1$
getPreferenceStore(), // $NON-NLS-1$
transactions, layout);
Column column = new Column(Messages.ColumnDate, SWT.None, 100);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return Values.DateTime.format(((TransactionPair<?>) element).getTransaction().getDateTime());
}
});
column.setSorter(ColumnViewerSorter.create((o1, o2) -> ((TransactionPair<?>) o1).getTransaction().getDateTime().compareTo(((TransactionPair<?>) o2).getTransaction().getDateTime())), SWT.UP);
support.addColumn(column);
column = new Column(Messages.ColumnTransactionType, SWT.None, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
Transaction t = ((TransactionPair<?>) element).getTransaction();
if (t instanceof PortfolioTransaction)
return ((PortfolioTransaction) t).getType().toString();
else if (t instanceof AccountTransaction)
return ((AccountTransaction) t).getType().toString();
else
return null;
}
});
support.addColumn(column);
column = new Column(Messages.ColumnShares, SWT.RIGHT, 80);
column.setLabelProvider(new SharesLabelProvider() {
@Override
public Long getValue(Object element) {
Transaction t = ((TransactionPair<?>) element).getTransaction();
if (t instanceof PortfolioTransaction) {
return ((PortfolioTransaction) t).getShares();
} else if (t instanceof AccountTransaction) {
long shares = ((AccountTransaction) t).getShares();
return shares != 0 ? shares : null;
}
return null;
}
});
support.addColumn(column);
column = new Column(Messages.ColumnAmount, SWT.RIGHT, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
Transaction t = ((TransactionPair<?>) element).getTransaction();
return Values.Money.format(t.getMonetaryAmount(), getClient().getBaseCurrency());
}
});
column.setSorter(ColumnViewerSorter.create((o1, o2) -> {
long a1 = ((TransactionPair<?>) o1).getTransaction().getAmount();
long a2 = ((TransactionPair<?>) o2).getTransaction().getAmount();
return a1 > a2 ? 1 : a1 < a2 ? -1 : 0;
}));
support.addColumn(column);
column = new Column(Messages.ColumnPerShare, SWT.RIGHT, 80);
column.setDescription(Messages.ColumnPerShare_Description);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
Transaction t = ((TransactionPair<?>) element).getTransaction();
if (t instanceof PortfolioTransaction) {
return Values.Quote.format(((PortfolioTransaction) t).getGrossPricePerShare(), getClient().getBaseCurrency());
} else if (t instanceof AccountTransaction) {
long shares = ((AccountTransaction) t).getShares();
if (shares != 0) {
long perShare = Math.round(((AccountTransaction) t).getGrossValueAmount() * Values.Share.divider() * Values.Quote.factorToMoney() / shares);
return Values.Quote.format(Quote.of(t.getCurrencyCode(), perShare));
}
}
return null;
}
});
support.addColumn(column);
column = new Column(Messages.ColumnFees, SWT.RIGHT, 80);
column.setDescription(Messages.ColumnFees_Description);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
Transaction t = ((TransactionPair<?>) element).getTransaction();
return Values.Money.format(t.getUnitSum(Unit.Type.FEE), getClient().getBaseCurrency());
}
});
support.addColumn(column);
column = new Column(Messages.ColumnTaxes, SWT.RIGHT, 80);
column.setDescription(Messages.ColumnTaxes_Description);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
Transaction t = ((TransactionPair<?>) element).getTransaction();
return Values.Money.format(t.getUnitSum(Unit.Type.TAX), getClient().getBaseCurrency());
}
});
support.addColumn(column);
column = new Column(Messages.ColumnPortfolio, SWT.NONE, 120);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
TransactionOwner<?> owner = ((TransactionPair<?>) element).getOwner();
if (owner instanceof Portfolio)
return owner.toString();
return null;
}
});
support.addColumn(column);
column = new Column(Messages.ColumnOffsetAccount, SWT.NONE, 120);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
TransactionPair<?> pair = (TransactionPair<?>) element;
Transaction t = pair.getTransaction();
if (t instanceof PortfolioTransaction)
return t.getCrossEntry() != null ? t.getCrossEntry().getCrossOwner(t).toString() : null;
else
return pair.getOwner().toString();
}
});
support.addColumn(column);
column = new NoteColumn();
column.setEditingSupport(null);
support.addColumn(column);
support.createColumns();
transactions.getTable().setHeaderVisible(true);
transactions.getTable().setLinesVisible(true);
transactions.setContentProvider(ArrayContentProvider.getInstance());
hookContextMenu(transactions.getControl(), this::transactionMenuAboutToShow);
hookKeyListener();
return container;
}
use of name.abuchen.portfolio.ui.util.viewers.Column in project portfolio by buchen.
the class ExchangeRatesListView method createTopTable.
@Override
protected void createTopTable(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
TableColumnLayout layout = new TableColumnLayout();
container.setLayout(layout);
TableViewer indeces = new TableViewer(container, SWT.FULL_SELECTION);
ShowHideColumnHelper support = new // $NON-NLS-1$
ShowHideColumnHelper(// $NON-NLS-1$
ExchangeRatesListView.class.getSimpleName() + "@top2", getPreferenceStore(), indeces, layout);
Column column = new Column(Messages.ColumnBaseCurrency, SWT.None, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((ExchangeRateTimeSeries) element).getBaseCurrency();
}
});
// $NON-NLS-1$ //$NON-NLS-2$
ColumnViewerSorter.create(ExchangeRateTimeSeries.class, "baseCurrency", "termCurrency").attachTo(column, SWT.DOWN);
support.addColumn(column);
column = new Column(Messages.ColumnTermCurrency, SWT.None, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((ExchangeRateTimeSeries) element).getTermCurrency();
}
});
// $NON-NLS-1$ //$NON-NLS-2$
ColumnViewerSorter.create(ExchangeRateTimeSeries.class, "termCurrency", "baseCurrency").attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnCurrencyProvider, SWT.None, 150);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((ExchangeRateTimeSeries) element).getProvider().getName();
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(ExchangeRateTimeSeries.class, "provider").attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnDateLatestExchangeRate, SWT.None, 150);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
ExchangeRateTimeSeries series = (ExchangeRateTimeSeries) element;
List<ExchangeRate> rates = series.getRates();
return rates.isEmpty() ? null : Values.Date.format(rates.get(rates.size() - 1).getTime());
}
});
ColumnViewerSorter.create(element -> {
ExchangeRateTimeSeries series = (ExchangeRateTimeSeries) element;
List<ExchangeRate> rates = series.getRates();
return rates.isEmpty() ? null : rates.get(rates.size() - 1).getTime();
}).attachTo(column);
support.addColumn(column);
support.createColumns();
indeces.getTable().setHeaderVisible(true);
indeces.getTable().setLinesVisible(true);
indeces.setContentProvider(ArrayContentProvider.getInstance());
indeces.setInput(providerFactory.getAvailableTimeSeries());
indeces.refresh();
indeces.addSelectionChangedListener(event -> refreshChart((ExchangeRateTimeSeries) ((IStructuredSelection) event.getSelection()).getFirstElement()));
}
use of name.abuchen.portfolio.ui.util.viewers.Column in project portfolio by buchen.
the class PerformanceView method addFeesColumn.
private void addFeesColumn(ShowHideColumnHelper support) {
Column column = new Column(Messages.ColumnFees, SWT.RIGHT, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
Transaction t = ((TransactionPair<?>) element).getTransaction();
if (t instanceof AccountTransaction) {
AccountTransaction at = (AccountTransaction) t;
switch(at.getType()) {
case FEES:
return Values.Money.format(t.getMonetaryAmount(), getClient().getBaseCurrency());
case FEES_REFUND:
return Values.Money.format(t.getMonetaryAmount().multiply(-1), getClient().getBaseCurrency());
default:
}
}
return Values.Money.format(t.getUnitSum(Unit.Type.FEE), getClient().getBaseCurrency());
}
});
column.setSorter(ColumnViewerSorter.create(e -> ((TransactionPair<?>) e).getTransaction().getUnitSum(Unit.Type.FEE)));
support.addColumn(column);
}
Aggregations