Example usage for org.jfree.data.xy XYIntervalSeries add

List of usage examples for org.jfree.data.xy XYIntervalSeries add

Introduction

In this page you can find the example usage for org.jfree.data.xy XYIntervalSeries add.

Prototype

public void add(XYIntervalDataItem item, boolean notify) 

Source Link

Document

Adds a data item to the series and, if requested, sends a SeriesChangeEvent to all registered listeners.

Usage

From source file:com.att.aro.ui.view.diagnostictab.plot.GpsPlot.java

@Override
public void populate(XYPlot plot, AROTraceData analysis) {
    if (analysis == null) {
        logger.info("analysis data is null");
        return;//w  w  w.  j av a 2s.  c o  m
    }

    gpsData.removeAllSeries();
    locationData.removeAllSeries();

    TraceResultType resultType = analysis.getAnalyzerResult().getTraceresult().getTraceResultType();
    if (resultType.equals(TraceResultType.TRACE_FILE)) {
        logger.info("didn't get analysis trace data!");

    } else {

        try {
            image = ImageIO.read(GpsPlot.class.getResourceAsStream("/images/location.png"));
            image = ImageHelper.resize(image, 12, 12);
        } catch (IOException e) {
            e.printStackTrace();
        }

        // create the GPS dataset...
        Map<GpsState, XYIntervalSeries> seriesMap = new EnumMap<GpsState, XYIntervalSeries>(GpsState.class);
        for (GpsState eventType : GpsState.values()) {
            XYIntervalSeries series = new XYIntervalSeries(eventType);
            seriesMap.put(eventType, series);
            gpsData.addSeries(series);
        }

        series = new XYSeries("location");
        TraceDirectoryResult traceresult = (TraceDirectoryResult) analysis.getAnalyzerResult().getTraceresult();
        listLocationEvent = (ArrayList<LocationEvent>) traceresult.getLocationEventInfos();
        for (int idx = 0; idx < listLocationEvent.size(); idx++) {
            series.add(listLocationEvent.get(idx).getTimeRecorded(), 0.5);
        }
        locationData.addSeries(series);

        Iterator<GpsInfo> iter = analysis.getAnalyzerResult().getTraceresult().getGpsInfos().iterator();
        if (iter.hasNext()) {
            while (iter.hasNext()) {
                GpsInfo gpsEvent = iter.next();
                if (gpsEvent.getGpsState() != GpsState.GPS_DISABLED) {
                    seriesMap.get(gpsEvent.getGpsState()).add(gpsEvent.getBeginTimeStamp(),
                            gpsEvent.getBeginTimeStamp(), gpsEvent.getEndTimeStamp(), 0.5, 0, 1);
                }
            }
        }

        XYItemRenderer renderer = plot.getRenderer(0);
        // 0 - is the default renderer from XYItem renderer.
        // Looks like renderer is using the index descending order, so setting the index of the GPS background as 2 & location information index as 1.
        if (renderer == null) {
            renderer = plot.getRenderer(2);
        }
        renderer.setSeriesPaint(gpsData.indexOf(GpsState.GPS_STANDBY), Color.YELLOW);
        renderer.setSeriesPaint(gpsData.indexOf(GpsState.GPS_ACTIVE), new Color(34, 177, 76));

        // Assign ToolTip to renderer
        renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {
            @Override
            public String generateToolTip(XYDataset dataset, int series, int item) {
                GpsState eventType = (GpsState) gpsData.getSeries(series).getKey();
                return MessageFormat.format(ResourceBundleHelper.getMessageString("gps.tooltip"),
                        dataset.getX(series, item), ResourceBundleHelper.getEnumString(eventType));
            }
        });
        plot.setRenderer(2, renderer);

        // Assign ToolTip to renderer
        LocationImageRenderer renderer_loc = new LocationImageRenderer();
        plot.setRenderer(1, renderer_loc);
        renderer_loc.setBaseToolTipGenerator(new XYToolTipGenerator() {
            @Override
            public String generateToolTip(XYDataset dataset, int series, int item) {
                // Update tooltip of location data
                LocationEvent event = listLocationEvent.get(item);
                StringBuffer displayInfo = new StringBuffer(
                        ResourceBundleHelper.getMessageString("location.tooltip.prefix"));
                displayInfo.append(
                        MessageFormat.format(ResourceBundleHelper.getMessageString("location.tooltip.content"),
                                event.getTimeRecorded(), event.getLatitude(), event.getLongitude(),
                                event.getProvider(), event.getLocality()));
                displayInfo.append(ResourceBundleHelper.getMessageString("location.tooltip.suffix"));

                return displayInfo.toString();
            }
        });
    }
    plot.setDataset(2, gpsData);
    plot.setDataset(1, locationData);
}

From source file:msi.gama.outputs.layers.charts.ChartJFreeChartOutputScatter.java

@SuppressWarnings("unchecked")
@Override/*from  www  .  j a v  a2 s  .com*/
protected void resetSerie(final IScope scope, final String serieid) {
    // TODO Auto-generated method stub

    final ChartDataSeries dataserie = chartdataset.getDataSeries(scope, serieid);
    final XYIntervalSeries serie = ((XYIntervalSeriesCollection) jfreedataset
            .get(IdPosition.get(dataserie.getSerieId(scope)))).getSeries(0);
    serie.clear();
    final ArrayList<Double> XValues = dataserie.getXValues(scope);
    final ArrayList<Double> YValues = dataserie.getYValues(scope);
    final ArrayList<Double> SValues = dataserie.getSValues(scope);
    boolean secondaxis = false;
    if (dataserie.getMysource().getUseSecondYAxis(scope)) {
        secondaxis = true;
        this.setUseSecondYAxis(scope, true);

    }

    if (XValues.size() > 0) {
        final NumberAxis domainAxis = (NumberAxis) ((XYPlot) this.chart.getPlot()).getDomainAxis();
        NumberAxis rangeAxis = (NumberAxis) ((XYPlot) this.chart.getPlot()).getRangeAxis(0);
        int ids = IdPosition.get(dataserie.getSerieId(scope));
        if (secondaxis) {
            //         rangeAxis = (NumberAxis) ((XYPlot) this.chart.getPlot()).getRangeAxis(1);
            //            ((XYPlot) this.chart.getPlot()).setRangeAxis(IdPosition.get(dataserie.getSerieId(scope)),rangeAxis);
            //         ((XYPlot) this.chart.getPlot()).setRangeAxis(IdPosition.get(dataserie.getSerieId(scope)),rangeAxis);
            ((XYPlot) this.chart.getPlot()).mapDatasetToRangeAxis(ids, 1);
        } else {
            //            ((XYPlot) this.chart.getPlot()).setRangeAxis(IdPosition.get(dataserie.getSerieId(scope)),rangeAxis);
            ((XYPlot) this.chart.getPlot()).mapDatasetToRangeAxis(ids, 0);

        }
        domainAxis.setAutoRange(false);
        rangeAxis.setAutoRange(false);
        // domainAxis.setRange(Math.min((double)(Collections.min(XValues)),0),
        // Math.max(Collections.max(XValues),Collections.min(XValues)+1));
        // rangeAxis.setRange(Math.min((double)(Collections.min(YValues)),0),
        // Math.max(Collections.max(YValues),Collections.min(YValues)+1));
        XYIntervalDataItem newval;
        for (int i = 0; i < XValues.size(); i++) {
            if (dataserie.isUseYErrValues()) {
                if (dataserie.isUseXErrValues()) {
                    newval = new XYIntervalDataItem(XValues.get(i), dataserie.xerrvaluesmin.get(i),
                            dataserie.xerrvaluesmax.get(i), YValues.get(i), dataserie.yerrvaluesmin.get(i),
                            dataserie.yerrvaluesmax.get(i));
                    // serie.add(XValues.get(i),dataserie.xerrvaluesmin.get(i),dataserie.xerrvaluesmax.get(i),YValues.get(i),dataserie.yerrvaluesmin.get(i),dataserie.yerrvaluesmax.get(i));
                } else {
                    newval = new XYIntervalDataItem(XValues.get(i), XValues.get(i), XValues.get(i),
                            YValues.get(i), dataserie.yerrvaluesmin.get(i), dataserie.yerrvaluesmax.get(i));
                    // serie.add(XValues.get(i),XValues.get(i),XValues.get(i),YValues.get(i),dataserie.yerrvaluesmin.get(i),dataserie.yerrvaluesmax.get(i));
                }

            } else {
                if (dataserie.isUseXErrValues()) {
                    newval = new XYIntervalDataItem(XValues.get(i), dataserie.xerrvaluesmin.get(i),
                            dataserie.xerrvaluesmax.get(i), YValues.get(i), YValues.get(i), YValues.get(i));
                    // serie.add(XValues.get(i),dataserie.xerrvaluesmin.get(i),dataserie.xerrvaluesmax.get(i),YValues.get(i),YValues.get(i),YValues.get(i));
                } else {
                    newval = new XYIntervalDataItem(XValues.get(i), XValues.get(i), XValues.get(i),
                            YValues.get(i), YValues.get(i), YValues.get(i));
                    // serie.add(XValues.get(i),XValues.get(i),XValues.get(i),YValues.get(i),YValues.get(i),YValues.get(i));
                }

            }
            serie.add(newval, false);
        }
        // domainAxis.setAutoRange(true);
        // rangeAxis.setAutoRange(true);
    }
    // resetAutorange(scope);
    if (SValues.size() > 0) {
        MarkerScale.remove(serieid);
        final ArrayList<Double> nscale = (ArrayList<Double>) SValues.clone();
        MarkerScale.put(serieid, nscale);

    }

    this.resetRenderer(scope, serieid);

}