Example usage for org.jfree.chart.renderer.xy XYLine3DRenderer setLinesVisible

List of usage examples for org.jfree.chart.renderer.xy XYLine3DRenderer setLinesVisible

Introduction

In this page you can find the example usage for org.jfree.chart.renderer.xy XYLine3DRenderer setLinesVisible.

Prototype

public void setLinesVisible(Boolean visible) 

Source Link

Document

Sets a flag that controls whether or not lines are drawn between the items in ALL series, and sends a RendererChangeEvent to all registered listeners.

Usage

From source file:com.googlecode.psiprobe.controllers.RenderChartController.java

protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
        throws Exception {
    final int SERIES_NUM = 9; // the max number of series

    ///*from   ww w . j  a v a2 s. c om*/
    // get Series Color from the request
    //
    int[] seriesColor = new int[SERIES_NUM];
    seriesColor[0] = Utils.toIntHex(request.getParameter("s1c"), 0x9bd2fb);
    seriesColor[1] = Utils.toIntHex(request.getParameter("s2c"), 0xFF0606);
    for (int i = 2; i < SERIES_NUM; i++) {
        seriesColor[i] = Utils.toIntHex(request.getParameter("s" + (i + 1) + "c"), -1);
    }

    //
    // get Series Outline Color from the request
    //
    int[] seriesOutlineColor = new int[SERIES_NUM];
    seriesOutlineColor[0] = Utils.toIntHex(request.getParameter("s1o"), 0x0665aa);
    seriesOutlineColor[1] = Utils.toIntHex(request.getParameter("s2o"), 0x9d0000);
    for (int i = 2; i < SERIES_NUM; i++) {
        seriesOutlineColor[i] = Utils.toIntHex(request.getParameter("s" + (i + 1) + "o"), -1);
    }

    //
    // background color
    //
    int backgroundColor = Utils.toIntHex(request.getParameter("bc"), 0xFFFFFF);
    //
    // grid color
    //
    int gridColor = Utils.toIntHex(request.getParameter("gc"), 0);
    //
    // X axis title
    //
    String xLabel = ServletRequestUtils.getStringParameter(request, "xl", "");
    //
    // Y axis title
    //
    String yLabel = ServletRequestUtils.getStringParameter(request, "yl", "");
    //
    // image width
    //
    int width = ServletRequestUtils.getIntParameter(request, "xz", 800);
    //
    // image height
    //
    int height = ServletRequestUtils.getIntParameter(request, "yz", 400);
    //
    // show legend?
    //
    boolean showLegend = ServletRequestUtils.getBooleanParameter(request, "l", true);
    //
    // Series provider
    //
    String provider = ServletRequestUtils.getStringParameter(request, "p", null);
    //
    // Chart type
    //
    String chartType = ServletRequestUtils.getStringParameter(request, "ct", "area");

    DefaultTableXYDataset ds = new DefaultTableXYDataset();

    if (provider != null) {
        Object o = getApplicationContext().getBean(provider);
        if (o instanceof SeriesProvider) {
            ((SeriesProvider) o).populate(ds, statsCollection, request);
        } else {
            logger.error("SeriesProvider \"" + provider + "\" does not implement " + SeriesProvider.class);
        }

    }

    //
    // Build series data from the give statistic
    //

    JFreeChart chart = null;
    if ("area".equals(chartType)) {

        chart = ChartFactory.createXYAreaChart("", xLabel, yLabel, ds, PlotOrientation.VERTICAL, showLegend,
                false, false);

        ((XYAreaRenderer) chart.getXYPlot().getRenderer()).setOutline(true);

    } else if ("stacked".equals(chartType)) {

        chart = ChartFactory.createStackedXYAreaChart("", xLabel, yLabel, ds, PlotOrientation.VERTICAL,
                showLegend, false, false);

    } else if ("line".equals(chartType)) {

        chart = ChartFactory.createXYLineChart("", xLabel, yLabel, ds, PlotOrientation.VERTICAL, showLegend,
                false, false);

        final XYLine3DRenderer renderer = new XYLine3DRenderer();
        renderer.setDrawOutlines(true);
        renderer.setLinesVisible(true);
        renderer.setShapesVisible(true);
        renderer.setStroke(new BasicStroke(2));
        renderer.setXOffset(1);
        renderer.setYOffset(1);
        chart.getXYPlot().setRenderer(renderer);
    }

    if (chart != null) {
        chart.setAntiAlias(true);
        chart.setBackgroundPaint(new Color(backgroundColor));
        for (int i = 0; i < SERIES_NUM; i++) {
            if (seriesColor[i] >= 0) {
                chart.getXYPlot().getRenderer().setSeriesPaint(i, new Color(seriesColor[i]));
            }
            if (seriesOutlineColor[i] >= 0) {
                chart.getXYPlot().getRenderer().setSeriesOutlinePaint(i, new Color(seriesOutlineColor[i]));
            }
        }
        chart.getXYPlot().setDomainGridlinePaint(new Color(gridColor));
        chart.getXYPlot().setRangeGridlinePaint(new Color(gridColor));
        chart.getXYPlot().setDomainAxis(0, new DateAxis());
        chart.getXYPlot().setDomainAxis(1, new DateAxis());
        chart.getXYPlot().setInsets(new RectangleInsets(-15, 0, 0, 10));

        response.setHeader("Content-type", "image/png");
        response.getOutputStream().write(ChartUtilities.encodeAsPNG(chart.createBufferedImage(width, height)));
    }

    return null;
}