use of name.abuchen.portfolio.money.Money in project portfolio by buchen.
the class TaxonomyModel method visitActuals.
private void visitActuals(ClientSnapshot snapshot, TaxonomyNode node) {
MutableMoney actual = MutableMoney.of(snapshot.getCurrencyCode());
for (TaxonomyNode child : node.getChildren()) {
visitActuals(snapshot, child);
actual.add(child.getActual());
}
if (node.isAssignment()) {
Assignment assignment = node.getAssignment();
AssetPosition p = snapshot.getPositionsByVehicle().get(assignment.getInvestmentVehicle());
if (p != null) {
Money valuation = p.getValuation();
actual.add(Money.of(valuation.getCurrencyCode(), Math.round(valuation.getAmount() * assignment.getWeight() / (double) Classification.ONE_HUNDRED_PERCENT)));
}
}
node.setActual(actual.toMoney());
}
use of name.abuchen.portfolio.money.Money in project portfolio by buchen.
the class AccountListView method createTransactionTable.
protected Control createTransactionTable(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
TableColumnLayout layout = new TableColumnLayout();
container.setLayout(layout);
transactions = new TableViewer(container, SWT.FULL_SELECTION | SWT.MULTI);
ColumnViewerToolTipSupport.enableFor(transactions, ToolTip.NO_RECREATE);
ColumnEditingSupport.prepare(transactions);
transactionsColumns = new // $NON-NLS-1$
ShowHideColumnHelper(// $NON-NLS-1$
AccountListView.class.getSimpleName() + "@bottom5", getPreferenceStore(), transactions, layout);
Column column = new Column(Messages.ColumnDate, SWT.None, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
return Values.DateTime.format(((AccountTransaction) e).getDateTime());
}
@Override
public Color getForeground(Object element) {
return colorFor((AccountTransaction) element);
}
});
ColumnViewerSorter.create(new AccountTransaction.ByDateAmountTypeAndHashCode()).attachTo(column, SWT.DOWN);
// $NON-NLS-1$
new DateTimeEditingSupport(AccountTransaction.class, "dateTime").addListener(this).attachTo(column);
transactionsColumns.addColumn(column);
column = new Column(Messages.ColumnTransactionType, SWT.None, 100);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
AccountTransaction t = (AccountTransaction) e;
return t.getType().toString();
}
@Override
public Color getForeground(Object element) {
return colorFor((AccountTransaction) element);
}
});
// $NON-NLS-1$
column.setSorter(ColumnViewerSorter.create(AccountTransaction.class, "type"));
transactionsColumns.addColumn(column);
column = new Column(Messages.ColumnAmount, SWT.RIGHT, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
AccountTransaction t = (AccountTransaction) e;
long v = t.getAmount();
if (t.getType().isDebit())
v = -v;
return Values.Money.format(Money.of(t.getCurrencyCode(), v), getClient().getBaseCurrency());
}
@Override
public Color getForeground(Object element) {
return colorFor((AccountTransaction) element);
}
});
// $NON-NLS-1$
column.setSorter(ColumnViewerSorter.create(AccountTransaction.class, "amount"));
transactionsColumns.addColumn(column);
column = new Column(Messages.Balance, SWT.RIGHT, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
Money balance = transaction2balance.get(e);
return balance != null ? Values.Money.format(balance, getClient().getBaseCurrency()) : null;
}
});
column.setSorter(ColumnViewerSorter.create(new AccountTransaction.ByDateAmountTypeAndHashCode()));
transactionsColumns.addColumn(column);
column = new Column(Messages.ColumnSecurity, SWT.None, 250);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
AccountTransaction t = (AccountTransaction) e;
return t.getSecurity() != null ? String.valueOf(t.getSecurity()) : null;
}
@Override
public Color getForeground(Object element) {
return colorFor((AccountTransaction) element);
}
});
// $NON-NLS-1$
column.setSorter(ColumnViewerSorter.create(AccountTransaction.class, "security"));
transactionsColumns.addColumn(column);
column = new Column(Messages.ColumnShares, SWT.RIGHT, 80);
column.setLabelProvider(new SharesLabelProvider() {
@Override
public Long getValue(Object e) {
AccountTransaction t = (AccountTransaction) e;
if (t.getCrossEntry() instanceof BuySellEntry) {
return ((BuySellEntry) t.getCrossEntry()).getPortfolioTransaction().getShares();
} else if (t.getType() == Type.DIVIDENDS && t.getShares() != 0) {
return t.getShares();
} else {
return null;
}
}
@Override
public Color getForeground(Object element) {
return colorFor((AccountTransaction) element);
}
});
new // $NON-NLS-1$
ValueEditingSupport(// $NON-NLS-1$
AccountTransaction.class, // $NON-NLS-1$
"shares", // $NON-NLS-1$
Values.Share) {
@Override
public boolean canEdit(Object element) {
AccountTransaction t = (AccountTransaction) element;
return t.getType() == AccountTransaction.Type.DIVIDENDS;
}
}.addListener(this).attachTo(column);
transactionsColumns.addColumn(column);
column = new Column(Messages.ColumnPerShare, SWT.RIGHT, 80);
column.setDescription(Messages.ColumnPerShare_Description);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
AccountTransaction t = (AccountTransaction) e;
if (t.getCrossEntry() instanceof BuySellEntry) {
PortfolioTransaction pt = ((BuySellEntry) t.getCrossEntry()).getPortfolioTransaction();
return Values.Quote.format(pt.getGrossPricePerShare(), getClient().getBaseCurrency());
} else if (t.getType() == Type.DIVIDENDS && t.getShares() != 0) {
long dividendPerShare = Math.round(t.getAmount() * Values.Share.divider() * Values.Quote.factorToMoney() / t.getShares());
return Values.Quote.format(Quote.of(t.getCurrencyCode(), dividendPerShare), getClient().getBaseCurrency());
} else {
return null;
}
}
@Override
public Color getForeground(Object element) {
return colorFor((AccountTransaction) element);
}
});
transactionsColumns.addColumn(column);
column = new Column(Messages.ColumnOffsetAccount, SWT.None, 120);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
AccountTransaction t = (AccountTransaction) e;
return t.getCrossEntry() != null ? t.getCrossEntry().getCrossOwner(t).toString() : null;
}
@Override
public Color getForeground(Object element) {
return colorFor((AccountTransaction) element);
}
});
transactionsColumns.addColumn(column);
column = new Column(Messages.ColumnNote, SWT.None, 200);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
return ((AccountTransaction) e).getNote();
}
@Override
public Color getForeground(Object element) {
return colorFor((AccountTransaction) element);
}
@Override
public Image getImage(Object e) {
String note = ((AccountTransaction) e).getNote();
return note != null && note.length() > 0 ? Images.NOTE.image() : null;
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(AccountTransaction.class, "note").attachTo(column);
// $NON-NLS-1$
new StringEditingSupport(AccountTransaction.class, "note").addListener(this).attachTo(column);
transactionsColumns.addColumn(column);
transactionsColumns.createColumns();
transactions.getTable().setHeaderVisible(true);
transactions.getTable().setLinesVisible(true);
transactions.setContentProvider(ArrayContentProvider.getInstance());
hookContextMenu(transactions.getTable(), this::fillTransactionsContextMenu);
hookKeyListener();
return container;
}
use of name.abuchen.portfolio.money.Money in project portfolio by buchen.
the class SecuritiesChart method getMovingAveragePurchasePrice.
private Optional<Double> getMovingAveragePurchasePrice(Client filteredClient, CurrencyConverter currencyConverter, LocalDate date) {
ClientSnapshot snapshot = ClientSnapshot.create(filteredClient, currencyConverter, date);
AssetPosition position = snapshot.getPositionsByVehicle().get(security);
if (position == null)
return Optional.empty();
Money purchasePrice = position.getPosition().getMovingAveragePurchasePrice();
if (!purchasePrice.isZero())
return Optional.of(purchasePrice.getAmount() / Values.Amount.divider());
else
return Optional.empty();
}
use of name.abuchen.portfolio.money.Money in project portfolio by buchen.
the class SecuritiesChart method getPurchasePrice.
private Optional<Double> getPurchasePrice(Client filteredClient, CurrencyConverter currencyConverter, LocalDate date) {
ClientSnapshot snapshot = ClientSnapshot.create(filteredClient, currencyConverter, date);
AssetPosition position = snapshot.getPositionsByVehicle().get(security);
if (position == null)
return Optional.empty();
Money purchasePrice = position.getPosition().getFIFOPurchasePrice();
if (!purchasePrice.isZero())
return Optional.of(purchasePrice.getAmount() / Values.Amount.divider());
else
return Optional.empty();
}
use of name.abuchen.portfolio.money.Money in project portfolio by buchen.
the class ReviewExtractedItemsPage method addColumns.
private void addColumns(TableViewer viewer, TableColumnLayout layout) {
TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
column.getColumn().setText(Messages.ColumnStatus);
column.setLabelProvider(new // NOSONAR
FormattedLabelProvider() {
@Override
public Image getImage(ExtractedEntry element) {
Images image = null;
switch(element.getMaxCode()) {
case WARNING:
image = Images.WARNING;
break;
case ERROR:
image = Images.ERROR;
break;
case OK:
default:
}
return image != null ? image.image() : null;
}
@Override
public String getText(ExtractedEntry entry) {
// $NON-NLS-1$
return "";
}
});
layout.setColumnData(column.getColumn(), new ColumnPixelData(22, true));
column = new TableViewerColumn(viewer, SWT.NONE);
column.getColumn().setText(Messages.ColumnDate);
column.setLabelProvider(new // NOSONAR
FormattedLabelProvider() {
@Override
public String getText(ExtractedEntry entry) {
LocalDateTime date = entry.getItem().getDate();
return date != null ? Values.DateTime.format(date) : null;
}
});
layout.setColumnData(column.getColumn(), new ColumnPixelData(80, true));
column = new TableViewerColumn(viewer, SWT.NONE);
column.getColumn().setText(Messages.ColumnTransactionType);
column.setLabelProvider(new // NOSONAR
FormattedLabelProvider() {
@Override
public String getText(ExtractedEntry entry) {
return entry.getItem().getTypeInformation();
}
@Override
public Image getImage(ExtractedEntry entry) {
Annotated subject = entry.getItem().getSubject();
if (subject instanceof AccountTransaction)
return Images.ACCOUNT.image();
else if (subject instanceof PortfolioTransaction)
return Images.PORTFOLIO.image();
else if (subject instanceof Security)
return Images.SECURITY.image();
else if (subject instanceof BuySellEntry)
return Images.PORTFOLIO.image();
else if (subject instanceof AccountTransferEntry)
return Images.ACCOUNT.image();
else if (subject instanceof PortfolioTransferEntry)
return Images.PORTFOLIO.image();
else
return null;
}
});
layout.setColumnData(column.getColumn(), new ColumnPixelData(100, true));
column = new TableViewerColumn(viewer, SWT.RIGHT);
column.getColumn().setText(Messages.ColumnAmount);
column.setLabelProvider(new // NOSONAR
FormattedLabelProvider() {
@Override
public String getText(ExtractedEntry entry) {
Money amount = entry.getItem().getAmount();
return amount != null ? Values.Money.format(amount) : null;
}
});
layout.setColumnData(column.getColumn(), new ColumnPixelData(80, true));
column = new TableViewerColumn(viewer, SWT.RIGHT);
column.getColumn().setText(Messages.ColumnShares);
column.setLabelProvider(new // NOSONAR
FormattedLabelProvider() {
@Override
public String getText(ExtractedEntry entry) {
return Values.Share.formatNonZero(entry.getItem().getShares());
}
});
layout.setColumnData(column.getColumn(), new ColumnPixelData(80, true));
column = new TableViewerColumn(viewer, SWT.NONE);
column.getColumn().setText(Messages.ColumnSecurity);
column.setLabelProvider(new // NOSONAR
FormattedLabelProvider() {
@Override
public String getText(ExtractedEntry entry) {
Security security = entry.getItem().getSecurity();
return security != null ? security.getName() : null;
}
});
layout.setColumnData(column.getColumn(), new ColumnPixelData(250, true));
}
Aggregations