Search in sources :

Example 1 with ICustomPaintListener

use of org.swtchart.ICustomPaintListener 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)

Example 2 with ICustomPaintListener

use of org.swtchart.ICustomPaintListener in project netxms by netxms.

the class PlotArea method paintControl.

/*
	 * @see PaintListener#paintControl(PaintEvent)
	 */
public void paintControl(PaintEvent e) {
    Point p = getSize();
    final GC gc = e.gc;
    // draw the plot area background
    gc.setBackground(getBackground());
    gc.fillRectangle(0, 0, p.x, p.y);
    // draw grid
    for (IAxis axis : chart.getAxisSet().getAxes()) {
        ((Grid) axis.getGrid()).draw(gc, p.x, p.y);
    }
    // draw behind series
    for (ICustomPaintListener listener : paintListeners) {
        if (listener.drawBehindSeries()) {
            listener.paintControl(e);
        }
    }
    // draw series. The line series should be drawn on bar series.
    for (ISeries series : chart.getSeriesSet().getSeries()) {
        if (series instanceof IBarSeries) {
            ((Series) series).draw(gc, p.x, p.y);
        }
    }
    for (ISeries series : chart.getSeriesSet().getSeries()) {
        if (series instanceof ILineSeries) {
            ((Series) series).draw(gc, p.x, p.y);
        }
    }
    // draw over series
    for (ICustomPaintListener listener : paintListeners) {
        if (!listener.drawBehindSeries()) {
            listener.paintControl(e);
        }
    }
}
Also used : Series(org.swtchart.internal.series.Series) ISeries(org.swtchart.ISeries) IBarSeries(org.swtchart.IBarSeries) ILineSeries(org.swtchart.ILineSeries) ICustomPaintListener(org.swtchart.ICustomPaintListener) IBarSeries(org.swtchart.IBarSeries) ILineSeries(org.swtchart.ILineSeries) Point(org.eclipse.swt.graphics.Point) GC(org.eclipse.swt.graphics.GC) ISeries(org.swtchart.ISeries) IAxis(org.swtchart.IAxis)

Aggregations

IAxis (org.swtchart.IAxis)2 ICustomPaintListener (org.swtchart.ICustomPaintListener)2 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 GC (org.eclipse.swt.graphics.GC)1 Point (org.eclipse.swt.graphics.Point)1 Composite (org.eclipse.swt.widgets.Composite)1 IBarSeries (org.swtchart.IBarSeries)1 ILineSeries (org.swtchart.ILineSeries)1 IPlotArea (org.swtchart.IPlotArea)1 ISeries (org.swtchart.ISeries)1 Series (org.swtchart.internal.series.Series)1