use of name.abuchen.portfolio.ui.util.viewers.ValueEditingSupport in project portfolio by buchen.
the class SecurityListView method createPricesTable.
// //////////////////////////////////////////////////////////////
// tab item: prices
// //////////////////////////////////////////////////////////////
protected Composite createPricesTable(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
TableColumnLayout layout = new TableColumnLayout();
container.setLayout(layout);
prices = new TableViewer(container, SWT.FULL_SELECTION | SWT.MULTI);
ColumnEditingSupport.prepare(prices);
ShowHideColumnHelper support = new // $NON-NLS-1$
ShowHideColumnHelper(// $NON-NLS-1$
SecurityListView.class.getSimpleName() + "@prices", getPreferenceStore(), prices, layout);
Column column = new Column(Messages.ColumnDate, SWT.None, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return Values.Date.format(((SecurityPrice) element).getDate());
}
@Override
public Color getBackground(Object element) {
SecurityPrice current = (SecurityPrice) element;
List<?> all = (List<?>) prices.getInput();
int index = all.indexOf(current);
if (index == 0)
return null;
SecurityPrice previous = (SecurityPrice) all.get(index - 1);
int days = Dates.daysBetween(previous.getDate(), current.getDate());
return days > 3 ? Colors.WARNING : null;
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(SecurityPrice.class, "date").attachTo(column, SWT.UP);
// $NON-NLS-1$
new DateEditingSupport(SecurityPrice.class, "date").addListener(this).attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnQuote, SWT.RIGHT, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
Security security = (Security) prices.getData(Security.class.toString());
SecurityPrice price = (SecurityPrice) element;
return Values.Quote.format(security.getCurrencyCode(), price.getValue(), getClient().getBaseCurrency());
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(SecurityPrice.class, "value").attachTo(column);
// $NON-NLS-1$
new ValueEditingSupport(SecurityPrice.class, "value", Values.Quote).addListener(this).attachTo(column);
support.addColumn(column);
support.createColumns();
prices.getTable().setHeaderVisible(true);
prices.getTable().setLinesVisible(true);
prices.setContentProvider(ArrayContentProvider.getInstance());
hookContextMenu(prices.getTable(), this::fillPricesContextMenu);
return container;
}
use of name.abuchen.portfolio.ui.util.viewers.ValueEditingSupport in project portfolio by buchen.
the class InvestmentPlanListView method addColumns.
private void addColumns(ShowHideColumnHelper support) {
// $NON-NLS-1$
Column column = new NameColumn("0", Messages.ColumnName, SWT.None, 100);
column.getEditingSupport().addListener(this);
support.addColumn(column);
column = new Column(Messages.ColumnSecurity, SWT.NONE, 250);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
return ((InvestmentPlan) e).getSecurity().getName();
}
@Override
public Image getImage(Object element) {
return Images.SECURITY.image();
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(Security.class, "name").attachTo(column);
List<Security> securities = new ArrayList<>(getClient().getSecurities());
Collections.sort(securities, new Security.ByName());
// $NON-NLS-1$
new ListEditingSupport(InvestmentPlan.class, "security", securities).addListener(this).attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnPortfolio, SWT.None, 120);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
return ((InvestmentPlan) e).getPortfolio().getName();
}
@Override
public Image getImage(Object element) {
return Images.PORTFOLIO.image();
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(InvestmentPlan.class, "portfolio").attachTo(column);
// $NON-NLS-1$
new ListEditingSupport(InvestmentPlan.class, "portfolio", getClient().getActivePortfolios()).addListener(this).attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnAccount, SWT.None, 120);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
InvestmentPlan plan = (InvestmentPlan) e;
return plan.getAccount() != null ? plan.getAccount().getName() : Messages.InvestmentPlanOptionDelivery;
}
@Override
public Image getImage(Object e) {
InvestmentPlan plan = (InvestmentPlan) e;
return plan.getAccount() != null ? Images.ACCOUNT.image() : null;
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(Account.class, "name").attachTo(column);
List<Account> accounts = new ArrayList<>();
accounts.add(InvestmentPlanModel.DELIVERY);
accounts.addAll(getClient().getAccounts());
// $NON-NLS-1$
new ListEditingSupport(InvestmentPlan.class, "account", accounts).addListener(this).attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnStartDate, SWT.None, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
return Values.Date.format(((InvestmentPlan) e).getStart());
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(InvestmentPlan.class, "start").attachTo(column);
// $NON-NLS-1$
new DateEditingSupport(InvestmentPlan.class, "start").addListener(this).attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnInterval, SWT.None, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
return MessageFormat.format(Messages.InvestmentPlanIntervalLabel, ((InvestmentPlan) e).getInterval());
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(InvestmentPlan.class, "interval").attachTo(column);
List<Integer> available = new ArrayList<>();
for (int ii = 1; ii <= 12; ii++) available.add(ii);
// $NON-NLS-1$
new ListEditingSupport(InvestmentPlan.class, "interval", available).addListener(this).attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnAmount, SWT.RIGHT, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
InvestmentPlan plan = (InvestmentPlan) e;
return Values.Money.format(Money.of(plan.getCurrencyCode(), plan.getAmount()));
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(InvestmentPlan.class, "amount").attachTo(column);
// $NON-NLS-1$
new ValueEditingSupport(InvestmentPlan.class, "amount", Values.Amount).addListener(this).attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnFees, SWT.RIGHT, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
InvestmentPlan plan = (InvestmentPlan) e;
return Values.Money.format(Money.of(plan.getCurrencyCode(), plan.getFees()));
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(InvestmentPlan.class, "fees").attachTo(column);
// $NON-NLS-1$
new ValueEditingSupport(InvestmentPlan.class, "fees", Values.Amount).addListener(this).attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnAutoGenerate, SWT.LEFT, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object e) {
// $NON-NLS-1$
return "";
}
@Override
public Image getImage(Object e) {
return ((InvestmentPlan) e).isAutoGenerate() ? Images.CHECK.image() : null;
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(InvestmentPlan.class, "autoGenerate").attachTo(column);
// $NON-NLS-1$
new BooleanEditingSupport(InvestmentPlan.class, "autoGenerate").addListener(this).attachTo(column);
support.addColumn(column);
column = new NoteColumn();
column.getEditingSupport().addListener(this);
column.setVisible(false);
support.addColumn(column);
}
use of name.abuchen.portfolio.ui.util.viewers.ValueEditingSupport in project portfolio by buchen.
the class PortfolioTransactionsViewer method addColumns.
private void addColumns() {
Column column = new Column(Messages.ColumnDate, SWT.None, 100);
column.setLabelProvider(new TransactionLabelProvider() {
@Override
public String getText(Object element) {
return Values.DateTime.format(((PortfolioTransaction) element).getDateTime());
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(PortfolioTransaction.class, "dateTime").attachTo(column, SWT.DOWN);
// $NON-NLS-1$
new DateTimeEditingSupport(PortfolioTransaction.class, "dateTime").addListener(this).attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnTransactionType, SWT.None, 80);
column.setLabelProvider(new TransactionLabelProvider() {
@Override
public String getText(Object element) {
return ((PortfolioTransaction) element).getType().toString();
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(PortfolioTransaction.class, "type").attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnSecurity, SWT.None, 250);
column.setLabelProvider(new TransactionLabelProvider() {
@Override
public String getText(Object element) {
PortfolioTransaction t = (PortfolioTransaction) element;
return t.getSecurity() != null ? String.valueOf(t.getSecurity()) : null;
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(PortfolioTransaction.class, "security").attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnShares, SWT.RIGHT, 80);
column.setLabelProvider(new SharesLabelProvider() {
private TransactionLabelProvider colors = new TransactionLabelProvider();
@Override
public Long getValue(Object element) {
return ((PortfolioTransaction) element).getShares();
}
@Override
public Color getForeground(Object element) {
return colors.getForeground(element);
}
@Override
public Color getBackground(Object element) {
return colors.getBackground(element);
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(PortfolioTransaction.class, "shares").attachTo(column);
// $NON-NLS-1$
new ValueEditingSupport(PortfolioTransaction.class, "shares", Values.Share).addListener(this).attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnQuote, SWT.RIGHT, 80);
column.setLabelProvider(new TransactionLabelProvider() {
@Override
public String getText(Object element) {
PortfolioTransaction t = (PortfolioTransaction) element;
return t.getShares() != 0 ? Values.Quote.format(t.getGrossPricePerShare(), owner.getClient().getBaseCurrency()) : null;
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(PortfolioTransaction.class, "grossPricePerShare").attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnAmount, SWT.RIGHT, 80);
column.setLabelProvider(new TransactionLabelProvider() {
@Override
public String getText(Object element) {
return Values.Money.format(((PortfolioTransaction) element).getGrossValue(), owner.getClient().getBaseCurrency());
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(PortfolioTransaction.class, "grossValueAmount").attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnFees, SWT.RIGHT, 80);
column.setLabelProvider(new TransactionLabelProvider() {
@Override
public String getText(Object element) {
PortfolioTransaction t = (PortfolioTransaction) element;
return Values.Money.format(t.getUnitSum(Transaction.Unit.Type.FEE), owner.getClient().getBaseCurrency());
}
});
support.addColumn(column);
column = new Column(Messages.ColumnTaxes, SWT.RIGHT, 80);
column.setLabelProvider(new TransactionLabelProvider() {
@Override
public String getText(Object element) {
PortfolioTransaction t = (PortfolioTransaction) element;
return Values.Money.format(t.getUnitSum(Transaction.Unit.Type.TAX), owner.getClient().getBaseCurrency());
}
});
support.addColumn(column);
column = new Column(Messages.ColumnNetValue, SWT.RIGHT, 80);
column.setLabelProvider(new TransactionLabelProvider() {
@Override
public String getText(Object element) {
PortfolioTransaction t = (PortfolioTransaction) element;
return Values.Money.format(t.getMonetaryAmount(), owner.getClient().getBaseCurrency());
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(PortfolioTransaction.class, "amount").attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnOffsetAccount, SWT.None, 120);
column.setLabelProvider(new TransactionLabelProvider() {
@Override
public String getText(Object e) {
PortfolioTransaction t = (PortfolioTransaction) e;
return t.getCrossEntry() != null ? t.getCrossEntry().getCrossOwner(t).toString() : null;
}
});
support.addColumn(column);
column = new Column(Messages.ColumnNote, SWT.None, 200);
column.setLabelProvider(new TransactionLabelProvider() {
@Override
public String getText(Object e) {
return ((PortfolioTransaction) e).getNote();
}
@Override
public Image getImage(Object e) {
String note = ((PortfolioTransaction) e).getNote();
return note != null && note.length() > 0 ? Images.NOTE.image() : null;
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(PortfolioTransaction.class, "note").attachTo(column);
// $NON-NLS-1$
new StringEditingSupport(PortfolioTransaction.class, "note").addListener(this).attachTo(column);
support.addColumn(column);
}
use of name.abuchen.portfolio.ui.util.viewers.ValueEditingSupport in project portfolio by buchen.
the class ConsumerPriceIndexListView method createTopTable.
@Override
protected void createTopTable(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
TableColumnLayout layout = new TableColumnLayout();
container.setLayout(layout);
indices = new TableViewer(container, SWT.FULL_SELECTION);
ColumnEditingSupport.prepare(indices);
ShowHideColumnHelper support = new ShowHideColumnHelper(// $NON-NLS-1$
ConsumerPriceIndexListView.class.getSimpleName() + "@bottom", // $NON-NLS-1$
getPreferenceStore(), // $NON-NLS-1$
indices, layout);
Column column = new Column(Messages.ColumnYear, SWT.None, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return String.valueOf(((ConsumerPriceIndex) element).getYear());
}
});
// $NON-NLS-1$ //$NON-NLS-2$
ColumnViewerSorter.create(ConsumerPriceIndex.class, "year", "month").attachTo(column, SWT.DOWN);
// $NON-NLS-1$
new ValueEditingSupport(ConsumerPriceIndex.class, "year", Values.Year).addListener(this).attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnMonth, SWT.None, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
int month = ((ConsumerPriceIndex) element).getMonth();
return Month.of(month).getDisplayName(TextStyle.FULL, Locale.getDefault());
}
});
// $NON-NLS-1$ //$NON-NLS-2$
ColumnViewerSorter.create(ConsumerPriceIndex.class, "month", "year").attachTo(column);
// $NON-NLS-1$
new MonthEditingSupport(ConsumerPriceIndex.class, "month").addListener(this).attachTo(column);
support.addColumn(column);
column = new Column(Messages.ColumnIndex, SWT.RIGHT, 80);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return Values.Index.format(((ConsumerPriceIndex) element).getIndex());
}
});
// $NON-NLS-1$
ColumnViewerSorter.create(ConsumerPriceIndex.class, "index").attachTo(column);
// $NON-NLS-1$
new ValueEditingSupport(ConsumerPriceIndex.class, "index", Values.Index).addListener(this).attachTo(column);
support.addColumn(column);
support.createColumns();
indices.getTable().setHeaderVisible(true);
indices.getTable().setLinesVisible(true);
indices.setContentProvider(ArrayContentProvider.getInstance());
indices.setInput(getClient().getConsumerPriceIndices());
indices.refresh();
hookContextMenu(indices.getTable(), new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
fillContextMenu(manager);
}
});
}
use of name.abuchen.portfolio.ui.util.viewers.ValueEditingSupport in project portfolio by buchen.
the class ReBalancingViewer method addDesiredAllocationColumn.
private void addDesiredAllocationColumn(ShowHideColumnHelper support) {
// $NON-NLS-1$
Column column = new Column("desiredAllocation", Messages.ColumnDesiredAllocation, SWT.RIGHT, 70);
column.setDescription(Messages.ColumnDesiredAllocation_Description);
column.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
TaxonomyNode node = (TaxonomyNode) element;
return node.isClassification() ? Values.Weight.format(node.getWeight()) : node.isUnassignedCategory() ? Messages.LabelNotAvailable : null;
}
@Override
public Color getForeground(Object element) {
TaxonomyNode node = (TaxonomyNode) element;
return node.isClassification() && getModel().hasWeightError(node) ? Display.getDefault().getSystemColor(SWT.COLOR_BLACK) : null;
}
@Override
public Color getBackground(Object element) {
TaxonomyNode node = (TaxonomyNode) element;
return node.isClassification() && getModel().hasWeightError(node) ? Colors.WARNING : null;
}
@Override
public Image getImage(Object element) {
TaxonomyNode node = (TaxonomyNode) element;
return node.isClassification() && getModel().hasWeightError(node) ? Images.QUICKFIX.image() : null;
}
});
new // $NON-NLS-1$
ValueEditingSupport(// $NON-NLS-1$
TaxonomyNode.class, // $NON-NLS-1$
"weight", // $NON-NLS-1$
Values.Weight) {
@Override
public boolean canEdit(Object element) {
TaxonomyNode node = (TaxonomyNode) element;
if (node.isAssignment() || node.isUnassignedCategory())
return false;
return super.canEdit(element);
}
}.addListener(this::onWeightModified).attachTo(column);
support.addColumn(column);
}
Aggregations