Skip to content

Commit

Permalink
Use event broker to propagate user-provided configuration names
Browse files Browse the repository at this point in the history
Issue: #367
  • Loading branch information
buchen committed Nov 7, 2015
1 parent e8ffd40 commit 9d77bb0
Show file tree
Hide file tree
Showing 11 changed files with 95 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ protected final void updateTitle()
this.title.setText(getTitle());
}

protected final void updateTitle(String title)
{
this.title.setText(title);
}

/** called when some other view modifies the model */
public void notifyModelUpdated()
{}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ interface Log
String CREATED = "errorlog/created"; //$NON-NLS-1$
String CLEARED = "errorlog/cleared"; //$NON-NLS-1$
}

interface Configuration
{
String PICKED = "configuration/picked"; //$NON-NLS-1$
}
}

interface File
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

import name.abuchen.portfolio.model.Client;
import name.abuchen.portfolio.ui.Messages;
import name.abuchen.portfolio.ui.PortfolioPlugin;
import name.abuchen.portfolio.ui.UIConstants;

import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuListener;
Expand Down Expand Up @@ -202,6 +204,7 @@ private void createNew(Configuration template)
preferences.setValue(identifier + ACTIVE, configurations.size() - 1);

listener.onConfigurationPicked(active.getData());
PortfolioPlugin.getDefault().postEvent(UIConstants.Event.Configuration.PICKED, active.getName());
}

private void rename(Configuration config)
Expand All @@ -214,6 +217,7 @@ private void rename(Configuration config)

config.setName(dlg.getValue());
client.setProperty(identifier + '$' + configurations.indexOf(config), config.serialize());
PortfolioPlugin.getDefault().postEvent(UIConstants.Event.Configuration.PICKED, active.getName());
}

private void delete(Configuration config)
Expand All @@ -228,6 +232,7 @@ private void delete(Configuration config)
active = configurations.get(0);
storeConfigurations();
listener.onConfigurationPicked(active.getData());
PortfolioPlugin.getDefault().postEvent(UIConstants.Event.Configuration.PICKED, active.getName());
}

private void activate(Configuration config)
Expand All @@ -236,6 +241,7 @@ private void activate(Configuration config)
active = config;
preferences.setValue(identifier + ACTIVE, configurations.indexOf(config));
listener.onConfigurationPicked(config.getData());
PortfolioPlugin.getDefault().postEvent(UIConstants.Event.Configuration.PICKED, active.getName());
}

public void updateActive(String data)
Expand Down Expand Up @@ -291,6 +297,8 @@ private void loadConfigurations()
// make sure on configuration is active
if (active == null)
active = configurations.get(0);

PortfolioPlugin.getDefault().postEvent(UIConstants.Event.Configuration.PICKED, active.getName());
}

private void storeConfigurations()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,6 @@ public void create(Column column, Object option, Integer direction, int width)
private static final Pattern CONFIG_PATTERN = Pattern.compile("^([^=]*)=(?:(\\d*)\\|)?(?:(\\d*)\\$)?(\\d*)$"); //$NON-NLS-1$

private String identifier;
private boolean isUserConfigured = false;

private List<Column> columns = new ArrayList<Column>();
private Map<String, Column> id2column = new HashMap<String, Column>();
Expand Down Expand Up @@ -527,11 +526,6 @@ private void doRemoveGroup(String group)
}
}

public boolean isUserConfigured()
{
return isUserConfigured;
}

public void addColumn(Column column)
{
// columns used to be identified by index only
Expand All @@ -546,11 +540,7 @@ public void createColumns()
{
createFromColumnConfig();

if (policy.getColumnCount() > 0)
{
isUserConfigured = true;
}
else
if (policy.getColumnCount() == 0)
{
for (Column column : columns)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@ public void configure(IBarSeries series)
}
}

@FunctionalInterface
public interface Listener
{
void onUpdate();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import java.util.Collections;
import java.util.Date;

import javax.inject.Inject;

import name.abuchen.portfolio.model.AccountTransaction;
import name.abuchen.portfolio.model.PortfolioTransaction;
import name.abuchen.portfolio.model.Security;
Expand All @@ -17,6 +19,7 @@
import name.abuchen.portfolio.snapshot.security.SecurityPerformanceSnapshot;
import name.abuchen.portfolio.ui.Messages;
import name.abuchen.portfolio.ui.PortfolioPlugin;
import name.abuchen.portfolio.ui.UIConstants;
import name.abuchen.portfolio.ui.dnd.SecurityDragListener;
import name.abuchen.portfolio.ui.dnd.SecurityTransfer;
import name.abuchen.portfolio.ui.util.Column;
Expand All @@ -36,6 +39,8 @@
import name.abuchen.portfolio.ui.views.columns.NoteColumn;
import name.abuchen.portfolio.ui.views.columns.TaxonomyColumn;

import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.di.UIEventTopic;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IMenuListener;
Expand Down Expand Up @@ -71,6 +76,13 @@ protected String getTitle()
return Messages.LabelSecurityPerformance;
}

@Inject
@Optional
private void onConfigurationPicked(@UIEventTopic(UIConstants.Event.Configuration.PICKED) String name)
{
updateTitle(Messages.LabelSecurityPerformance + " (" + name + ")"); //$NON-NLS-1$ //$NON-NLS-2$);
}

@Override
protected void addButtons(ToolBar toolBar)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import java.util.Map;
import java.util.Set;

import javax.inject.Inject;

import name.abuchen.portfolio.model.Account;
import name.abuchen.portfolio.model.Classification;
import name.abuchen.portfolio.model.Client;
Expand All @@ -25,13 +27,16 @@
import name.abuchen.portfolio.ui.Messages;
import name.abuchen.portfolio.ui.PortfolioPart;
import name.abuchen.portfolio.ui.PortfolioPlugin;
import name.abuchen.portfolio.ui.UIConstants;
import name.abuchen.portfolio.ui.util.AbstractCSVExporter;
import name.abuchen.portfolio.ui.util.AbstractDropDown;
import name.abuchen.portfolio.ui.util.chart.TimelineChart;
import name.abuchen.portfolio.ui.util.chart.TimelineChartCSVExporter;
import name.abuchen.portfolio.ui.views.ChartConfigurator.ClientDataSeries;
import name.abuchen.portfolio.ui.views.ChartConfigurator.DataSeries;

import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.di.UIEventTopic;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IMenuManager;
Expand Down Expand Up @@ -64,6 +69,13 @@ protected String getTitle()
return Messages.LabelPerformanceChart;
}

@Inject
@Optional
private void onConfigurationPicked(@UIEventTopic(UIConstants.Event.Configuration.PICKED) String name)
{
updateTitle(Messages.LabelPerformanceChart + " (" + name + ")"); //$NON-NLS-1$ //$NON-NLS-2$);
}

@Override
public void init(PortfolioPart part, Object parameter)
{
Expand Down Expand Up @@ -132,14 +144,7 @@ protected Composite createBody(Composite parent)
chart.getToolTip().setValueFormat(new DecimalFormat("0.##%")); //$NON-NLS-1$

picker = new ChartConfigurator(composite, this, ChartConfigurator.Mode.PERFORMANCE);
picker.setListener(new ChartConfigurator.Listener()
{
@Override
public void onUpdate()
{
updateChart();
}
});
picker.setListener(() -> updateChart());

GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 0).applyTo(composite);
GridDataFactory.fillDefaults().grab(true, true).applyTo(chart);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import java.util.Map;
import java.util.Set;

import javax.inject.Inject;

import name.abuchen.portfolio.math.Risk.Volatility;
import name.abuchen.portfolio.model.Account;
import name.abuchen.portfolio.model.Classification;
Expand All @@ -22,13 +24,16 @@
import name.abuchen.portfolio.snapshot.ReportingPeriod;
import name.abuchen.portfolio.ui.Messages;
import name.abuchen.portfolio.ui.PortfolioPlugin;
import name.abuchen.portfolio.ui.UIConstants;
import name.abuchen.portfolio.ui.util.AbstractCSVExporter;
import name.abuchen.portfolio.ui.util.AbstractDropDown;
import name.abuchen.portfolio.ui.util.chart.ScatterChart;
import name.abuchen.portfolio.ui.util.chart.ScatterChartCSVExporter;
import name.abuchen.portfolio.ui.views.ChartConfigurator.ClientDataSeries;
import name.abuchen.portfolio.ui.views.ChartConfigurator.DataSeries;

import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.di.UIEventTopic;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IMenuManager;
Expand Down Expand Up @@ -60,6 +65,13 @@ protected String getTitle()
return Messages.LabelHistoricalReturnsAndVolatiltity;
}

@Inject
@Optional
private void onConfigurationPicked(@UIEventTopic(UIConstants.Event.Configuration.PICKED) String name)
{
updateTitle(Messages.LabelHistoricalReturnsAndVolatiltity + " (" + name + ")"); //$NON-NLS-1$ //$NON-NLS-2$);
}

@Override
protected void addButtons(ToolBar toolBar)
{
Expand Down Expand Up @@ -133,14 +145,7 @@ public boolean drawBehindSeries()
});

picker = new ChartConfigurator(composite, this, ChartConfigurator.Mode.RETURN_VOLATILITY);
picker.setListener(new ChartConfigurator.Listener()
{
@Override
public void onUpdate()
{
updateChart();
}
});
picker.setListener(() -> updateChart());

GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 0).applyTo(composite);
GridDataFactory.fillDefaults().grab(true, true).applyTo(chart);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import java.util.List;
import java.util.regex.Pattern;

import javax.inject.Inject;

import name.abuchen.portfolio.model.AccountTransaction;
import name.abuchen.portfolio.model.Portfolio;
import name.abuchen.portfolio.model.PortfolioTransaction;
Expand All @@ -24,6 +26,7 @@
import name.abuchen.portfolio.ui.Messages;
import name.abuchen.portfolio.ui.PortfolioPart;
import name.abuchen.portfolio.ui.PortfolioPlugin;
import name.abuchen.portfolio.ui.UIConstants;
import name.abuchen.portfolio.ui.util.Column;
import name.abuchen.portfolio.ui.util.ColumnEditingSupport;
import name.abuchen.portfolio.ui.util.ColumnEditingSupport.ModificationListener;
Expand All @@ -41,6 +44,8 @@
import name.abuchen.portfolio.ui.wizards.security.EditSecurityDialog;
import name.abuchen.portfolio.util.Dates;

import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.di.UIEventTopic;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IMenuListener;
Expand Down Expand Up @@ -111,6 +116,13 @@ protected String getTitle()
return watchlist == null ? Messages.LabelSecurities : Messages.LabelSecurities + " " + watchlist.getName(); //$NON-NLS-1$
}

@Inject
@Optional
private void onConfigurationPicked(@UIEventTopic(UIConstants.Event.Configuration.PICKED) String name)
{
updateTitle(getTitle() + " (" + name + ")"); //$NON-NLS-1$ //$NON-NLS-2$);
}

@Override
protected int[] getDefaultWeights(Control[] children)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import java.util.List;
import java.util.Map;

import javax.inject.Inject;

import name.abuchen.portfolio.model.Account;
import name.abuchen.portfolio.model.Classification;
import name.abuchen.portfolio.model.Client;
Expand All @@ -14,11 +16,14 @@
import name.abuchen.portfolio.snapshot.PerformanceIndex;
import name.abuchen.portfolio.ui.Messages;
import name.abuchen.portfolio.ui.PortfolioPlugin;
import name.abuchen.portfolio.ui.UIConstants;
import name.abuchen.portfolio.ui.util.chart.TimelineChart;
import name.abuchen.portfolio.ui.util.chart.TimelineChartCSVExporter;
import name.abuchen.portfolio.ui.views.ChartConfigurator.ClientDataSeries;
import name.abuchen.portfolio.ui.views.ChartConfigurator.DataSeries;

import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.di.UIEventTopic;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IMenuListener;
Expand Down Expand Up @@ -48,6 +53,13 @@ protected String getTitle()
return Messages.LabelStatementOfAssetsHistory;
}

@Inject
@Optional
private void onConfigurationPicked(@UIEventTopic(UIConstants.Event.Configuration.PICKED) String name)
{
updateTitle(Messages.LabelStatementOfAssetsHistory + " (" + name + ")"); //$NON-NLS-1$ //$NON-NLS-2$);
}

protected void addButtons(ToolBar toolBar)
{
super.addButtons(toolBar);
Expand Down Expand Up @@ -138,14 +150,7 @@ protected Composite createBody(Composite parent)
chart.getTitle().setVisible(false);

picker = new ChartConfigurator(composite, this, ChartConfigurator.Mode.STATEMENT_OF_ASSETS);
picker.setListener(new ChartConfigurator.Listener()
{
@Override
public void onUpdate()
{
updateChart();
}
});
picker.setListener(() -> updateChart());

GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 0).applyTo(composite);
GridDataFactory.fillDefaults().grab(true, true).applyTo(chart);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
package name.abuchen.portfolio.ui.views;

import javax.inject.Inject;

import name.abuchen.portfolio.snapshot.ClientSnapshot;
import name.abuchen.portfolio.ui.AbstractFinanceView;
import name.abuchen.portfolio.ui.Messages;
import name.abuchen.portfolio.ui.PortfolioPlugin;
import name.abuchen.portfolio.ui.UIConstants;
import name.abuchen.portfolio.ui.util.TableViewerCSVExporter;
import name.abuchen.portfolio.util.Dates;

import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.di.UIEventTopic;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IMenuListener;
Expand All @@ -25,6 +30,13 @@ protected String getTitle()
return Messages.LabelStatementOfAssets;
}

@Inject
@Optional
private void onConfigurationPicked(@UIEventTopic(UIConstants.Event.Configuration.PICKED) String name)
{
updateTitle(Messages.LabelStatementOfAssets + " (" + name + ")"); //$NON-NLS-1$ //$NON-NLS-2$);
}

@Override
public void notifyModelUpdated()
{
Expand Down

0 comments on commit 9d77bb0

Please sign in to comment.