Search in sources :

Example 1 with IPlotArea

use of org.swtchart.IPlotArea in project portfolio by buchen.

the class ReturnsVolatilityChartView method createBody.

@Override
protected Composite createBody(Composite parent) {
    cache = make(DataSeriesCache.class);
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
    resources = new LocalResourceManager(JFaceResources.getResources(), composite);
    chart = new ScatterChart(composite);
    chart.getTitle().setVisible(false);
    IAxis xAxis = chart.getAxisSet().getXAxis(0);
    xAxis.getTitle().setText(Messages.LabelVolatility);
    // $NON-NLS-1$
    xAxis.getTick().setFormat(new DecimalFormat("0.##%"));
    IAxis yAxis = chart.getAxisSet().getYAxis(0);
    yAxis.getTitle().setText(Messages.LabelPeformanceTTWROR);
    // $NON-NLS-1$
    yAxis.getTick().setFormat(new DecimalFormat("0.##%"));
    ((IPlotArea) chart.getPlotArea()).addCustomPaintListener(new ICustomPaintListener() {

        @Override
        public void paintControl(PaintEvent e) {
            int y = xAxis.getPixelCoordinate(0);
            e.gc.drawLine(y, 0, y, e.height);
            int x = yAxis.getPixelCoordinate(0);
            e.gc.drawLine(0, x, e.width, x);
        }

        @Override
        public boolean drawBehindSeries() {
            return true;
        }
    });
    configurator = new DataSeriesConfigurator(this, DataSeries.UseCase.RETURN_VOLATILITY);
    configurator.addListener(() -> updateChart());
    DataSeriesChartLegend legend = new DataSeriesChartLegend(composite, configurator);
    // $NON-NLS-1$ //$NON-NLS-2$
    updateTitle(Messages.LabelHistoricalReturnsAndVolatiltity + " (" + configurator.getConfigurationName() + ")");
    chart.getTitle().setText(getTitle());
    GridLayoutFactory.fillDefaults().numColumns(1).margins(0, 0).spacing(0, 0).applyTo(composite);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(chart);
    GridDataFactory.fillDefaults().grab(true, false).align(SWT.CENTER, SWT.FILL).applyTo(legend);
    setChartSeries();
    return composite;
}
Also used : ICustomPaintListener(org.swtchart.ICustomPaintListener) PaintEvent(org.eclipse.swt.events.PaintEvent) DataSeriesCache(name.abuchen.portfolio.ui.views.dataseries.DataSeriesCache) Composite(org.eclipse.swt.widgets.Composite) DataSeriesConfigurator(name.abuchen.portfolio.ui.views.dataseries.DataSeriesConfigurator) LocalResourceManager(org.eclipse.jface.resource.LocalResourceManager) ScatterChart(name.abuchen.portfolio.ui.util.chart.ScatterChart) DecimalFormat(java.text.DecimalFormat) IPlotArea(org.swtchart.IPlotArea) DataSeriesChartLegend(name.abuchen.portfolio.ui.views.dataseries.DataSeriesChartLegend) IAxis(org.swtchart.IAxis)

Aggregations

DecimalFormat (java.text.DecimalFormat)1 ScatterChart (name.abuchen.portfolio.ui.util.chart.ScatterChart)1 DataSeriesCache (name.abuchen.portfolio.ui.views.dataseries.DataSeriesCache)1 DataSeriesChartLegend (name.abuchen.portfolio.ui.views.dataseries.DataSeriesChartLegend)1 DataSeriesConfigurator (name.abuchen.portfolio.ui.views.dataseries.DataSeriesConfigurator)1 LocalResourceManager (org.eclipse.jface.resource.LocalResourceManager)1 PaintEvent (org.eclipse.swt.events.PaintEvent)1 Composite (org.eclipse.swt.widgets.Composite)1 IAxis (org.swtchart.IAxis)1 ICustomPaintListener (org.swtchart.ICustomPaintListener)1 IPlotArea (org.swtchart.IPlotArea)1