Example usage for org.jfree.chart ChartUtilities writeChartAsPNG

List of usage examples for org.jfree.chart ChartUtilities writeChartAsPNG

Introduction

In this page you can find the example usage for org.jfree.chart ChartUtilities writeChartAsPNG.

Prototype

public static void writeChartAsPNG(OutputStream out, JFreeChart chart, int width, int height)
        throws IOException 

Source Link

Document

Writes a chart to an output stream in PNG format.

Usage

From source file:com.hazelcast.monitor.server.InstanceChartGenerator.java

protected void doGet(HttpServletRequest req, HttpServletResponse response)
        throws javax.servlet.ServletException, java.io.IOException {
    String name = req.getParameter("name");
    String type = req.getParameter("type");
    SessionObject sessionObject = getSessionObject(req.getSession());
    List<? super InstanceStatistics> list = getPastStatistics(name, sessionObject);
    if (list == null) {
        return;/*  www.  ja v a 2 s.  c om*/
    }
    JFreeChart chart;
    if ("size".equals(type)) {
        chart = generateSizeChart(list);
    } else {
        chart = generateOperationStatsChart(list);
    }
    try {
        OutputStream out = response.getOutputStream();
        response.setContentType("image/png");
        ChartUtilities.writeChartAsPNG(out, chart, 390, 250);
    } catch (IOException ignore) {
    }
}

From source file:org.openmrs.module.vcttrac.web.view.chart.AbstractChartView.java

/**
 * @see org.springframework.web.servlet.view.AbstractView
 *///from w ww.  j a  va  2 s .co m
@Override
@SuppressWarnings("unchecked")
protected void renderMergedOutputModel(Map model, HttpServletRequest request, HttpServletResponse response)
        throws Exception {
    // Respond as a PNG image
    response.setContentType("image/png");

    // Disable caching
    response.setHeader("Pragma", "No-cache");
    response.setDateHeader("Expires", 0);
    response.setHeader("Cache-Control", "no-cache");

    int width = (request.getParameter("width") != null && request.getParameter("width").compareTo("") != 0)
            ? (Integer.valueOf(request.getParameter("width")))
            : 450;
    int height = (request.getParameter("height") != null && request.getParameter("height").compareTo("") != 0)
            ? (Integer.valueOf(request.getParameter("height")))
            : 350;

    JFreeChart chart = createChart(model, request);
    chart.setBackgroundPaint(Color.WHITE);
    chart.getPlot().setOutlineStroke(new BasicStroke(0));
    chart.getPlot().setOutlinePaint(getBackgroundColor());
    chart.getPlot().setBackgroundPaint(getBackgroundColor());

    chart.getPlot().setNoDataMessage(VCTTracUtil.getMessage("vcttrac.error.noDataAvailable", null));

    ChartUtilities.writeChartAsPNG(response.getOutputStream(), chart, width, height);
}

From source file:org.openmrs.web.servlet.AbstractGraphServlet.java

protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    try {/*from   ww  w.  j  a  v  a 2  s . c o  m*/
        // Set default values
        Integer width = Integer.valueOf(500);
        Integer height = Integer.valueOf(300);
        String mimeType = PNG_MIME_TYPE;

        // Retrieve custom values
        try {
            width = Integer.parseInt(request.getParameter("width"));
        } catch (Exception e) {
            log.error("Error during width parseInt", e);
        }

        try {
            height = Integer.parseInt(request.getParameter("height"));
        } catch (Exception e) {
            log.error("Error during height parseInt", e);
        }

        if (request.getParameter("mimeType") != null) {
            mimeType = request.getParameter("mimeType");
        }

        JFreeChart chart = createChart(request, response);

        // Modify response to disable caching
        response.setHeader("Pragma", "No-cache");
        response.setDateHeader("Expires", 0);
        response.setHeader("Cache-Control", "no-cache");

        // Write chart out to response as image 
        try {
            if (JPG_MIME_TYPE.equalsIgnoreCase(mimeType)) {
                response.setContentType(JPG_MIME_TYPE);
                ChartUtilities.writeChartAsJPEG(response.getOutputStream(), chart, width, height);
            } else if (PNG_MIME_TYPE.equalsIgnoreCase(mimeType)) {
                response.setContentType(PNG_MIME_TYPE);
                ChartUtilities.writeChartAsPNG(response.getOutputStream(), chart, width, height);
            } else {
                // Throw exception: unsupported mime type
            }
        } catch (IOException e) {
            log.error(e);
        }

    }
    // Add error handling above and remove this try/catch 
    catch (Exception e) {
        log.error(e);
    }
}

From source file:BaselinePlotGenerator.java

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    OutputStream out = response.getOutputStream();
    NssBaseline nssBaseline = new NssBaseline();
    String filename = "";
    try {/* w  ww  .  j a  v a2  s . co  m*/

        filename = request.getParameter("filename");
        nssBaseline.openFile(filename);
        nssBaseline.readAllData();

        JFreeChart chart = null;
        chart = createChart(filename, nssBaseline);
        if (chart != null) {
            response.setContentType("image/png");
            ChartUtilities.writeChartAsPNG(out, chart, 660, 400);
        }
    } catch (Exception e) {
        System.err.println("BaselinePlotGenerator: " + e + " for file: " + filename);
    } finally {
        out.close();
        nssBaseline.closeFile();
    }
}

From source file:org.openmrs.module.usagestatistics.web.view.chart.AbstractChartView.java

/**
 * @see org.springframework.web.servlet.view.AbstractView
 *//*ww  w .  j  a  v  a2s. c o m*/
@Override
@SuppressWarnings("unchecked")
protected void renderMergedOutputModel(Map model, HttpServletRequest request, HttpServletResponse response)
        throws Exception {
    // Respond as a PNG image
    response.setContentType("image/png");

    // Disable caching
    response.setHeader("Pragma", "No-cache");
    response.setDateHeader("Expires", 0);
    response.setHeader("Cache-Control", "no-cache");

    int width = ServletRequestUtils.getIntParameter(request, "width", 500);
    int height = ServletRequestUtils.getIntParameter(request, "height", 300);

    from = (Date) model.get("from");
    until = (Date) model.get("until");
    untilInclusive = (Date) model.get("untilInclusive");
    usageFilter = (ActionCriteria) model.get("usageFilter");
    location = (Location) model.get("location");

    JFreeChart chart = createChart(model, request);
    chart.setBackgroundPaint(Color.WHITE);
    chart.getPlot().setOutlineStroke(new BasicStroke(0));
    chart.getPlot().setOutlinePaint(getBackgroundColor());
    chart.getPlot().setBackgroundPaint(getBackgroundColor());

    ChartUtilities.writeChartAsPNG(response.getOutputStream(), chart, width, height);
}

From source file:presentation.webgui.vitroappservlet.VisualStyles.java

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    HttpSession session = request.getSession();
    this.uStyleId = request.getParameter("suid");
    Model3dStylesList myStylesIndex = Model3dStylesList.getModel3dStylesList();
    Model3dStylesEntry currStyleEntry = myStylesIndex.getStyleWithId(this.uStyleId);
    if (currStyleEntry != null) {
        response.setContentType("image/png");
        OutputStream out = response.getOutputStream();
        try {/*from ww  w  .  ja  v  a  2  s  .  c  o  m*/
            JFreeChart chart = StyleCreator.createDatasetAndChart(currStyleEntry);

            int chartHeight = 40;
            if (chart.getCategoryPlot().getDataset().getColumnKeys().size() > 1) {
                chartHeight = chart.getCategoryPlot().getDataset().getColumnKeys().size() * 22;
            }
            ChartUtilities.writeChartAsPNG(out, chart, 300, chartHeight);
        } catch (Exception e) {
            System.err.println(e.toString());
            response.setContentType("text/html");
            PrintWriter outPrintWriter = response.getWriter();
            outPrintWriter.print("<b>Error</b>:" + e.toString());
            outPrintWriter.flush();
            outPrintWriter.close();
        } finally {
            out.close();
        }
        return;
    } else {
        response.setContentType("text/html");
        PrintWriter outPrintWriter = response.getWriter();
        outPrintWriter.print("<b>No style defined</b>");
        outPrintWriter.flush();
        outPrintWriter.close();
    }
}

From source file:fr.ensimag.biblio.controllers.StatImg.java

/**
 * Handles the HTTP <code>GET</code> method.
 *
 * @param request servlet request//  www.j  a  v  a 2s  .c om
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    OutputStream out = response.getOutputStream();
    response.setContentType("image/png");
    //int val1 = 40;
    //int val2 = 60;
    try {
        DefaultPieDataset dataset = new DefaultPieDataset();
        String title = "Statistiques";
        boolean legend = true;

        Map<String, String[]> params = request.getParameterMap();
        for (Map.Entry<String, String[]> param : params.entrySet()) {
            String key = param.getKey();
            String[] value = param.getValue();
            System.out.println("key : " + key + "value : " + value[0]);
            if (key.equals("legend"))
                legend = Boolean.parseBoolean(value[0]);
            else
                dataset.setValue(key, Double.parseDouble(value[0]));
        }

        //dataset.setValue("Valeur 1", val1);
        //dataset.setValue("Valeur 2", val2);
        JFreeChart chart = ChartFactory.createPieChart(title, dataset, legend, false, false);
        chart.setBackgroundPaint(Color.WHITE);
        ChartUtilities.writeChartAsPNG(out, chart, 500, 300);
    } finally {
        out.close();
    }
}

From source file:FILA.Produtor.java

@Override
public void run() {

    System.out.println("Produtor iniciado!");

    long lastTimeArrival, lastTimeExit, now;
    int multiplier = 1;
    int maxArrival = 5;
    int rngArrival;
    double yEntrada = 3.2;
    int indice = 1;

    now = new Date().getTime();

    JFreeChart grafico;//  ww w  .  j a v a2 s . c  o  m
    tempoAnterior = now;
    while (true) {
        now = new Date().getTime();
        if (tempoAnterior + multiplier * intervalo <= now) {
            timePassed += 1;
            if (timePassed % 5 == 0) {
                System.out.println(
                        "Passaram " + timePassed + " segundos/ " + fila.getSize() + " pessoas na fila.");
            }
            if (timePassed % 10 == 0) {
                System.out.println("teste");
                grafico = ChartFactory.createLineChart("Pessoas na fila", "Tempo", "Quantidade", dataset,
                        PlotOrientation.VERTICAL, true, true, false);
                OutputStream arquivo;
                try {
                    arquivo = new FileOutputStream("teste.png");
                    ChartUtilities.writeChartAsPNG(arquivo, grafico, 550, 400);
                } catch (FileNotFoundException ex) {
                    Logger.getLogger(Produtor.class.getName()).log(Level.SEVERE, null, ex);
                } catch (IOException ex) {
                    Logger.getLogger(Produtor.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            //System.out.println(timePassed);
            tempoAnterior = now;
            rngArrival = rng.nextInt(maxArrival + 1);
            rngResult = rng.nextDouble();
            //rngArrival = 2;
            if (isFullRandom) {
                if (rngResult < yEntrada) {
                    for (int i = 0; i < rngArrival; i++) {
                        //System.out.println("set");
                        fila.set(indice++);
                    }
                }
            } else {
                if (rngResult <= Poisson(yEntrada, rngArrival)) {
                    for (int i = 0; i < rngArrival; i++) {
                        //System.out.println("set");
                        fila.set(indice++);
                    }
                }
            }
            dataset.addValue(fila.getSize(), "", timePassed + "s");
        }
    }
}

From source file:org.gbif.portal.web.util.ChartUtils.java

/**
 * Writes out the image using the supplied file name.
 * /*w  w  w . ja  v a 2 s  .  c  o  m*/
 * @param legend
 * @param fileName
 * @return
 */
public static String writePieChartImageToTempFile(Map<String, Double> legend, String fileName) {

    String filePath = System.getProperty(tmpDirSystemProperty) + File.separator + fileName + defaultExtension;
    File fileToCheck = new File(filePath);
    if (fileToCheck.exists()) {
        return fileName + defaultExtension;
    }

    final DefaultPieDataset data = new DefaultPieDataset();
    Set<String> keys = legend.keySet();
    for (String key : keys) {
        logger.info("Adding key : " + key);
        data.setValue(key, legend.get(key));
    }

    // create a pie chart...
    final boolean withLegend = true;
    final JFreeChart chart = ChartFactory.createPieChart(null, data, withLegend, false, false);

    PiePlot piePlot = (PiePlot) chart.getPlot();
    piePlot.setLabelFont(new Font("Arial", Font.PLAIN, 10));
    piePlot.setLabelBackgroundPaint(Color.WHITE);

    LegendTitle lt = chart.getLegend();
    lt.setBackgroundPaint(Color.WHITE);
    lt.setWidth(300);
    lt.setBorder(0, 0, 0, 0);
    lt.setItemFont(new Font("Arial", Font.PLAIN, 11));

    chart.setPadding(new RectangleInsets(0, 0, 0, 0));
    chart.setBorderVisible(false);
    chart.setBackgroundImageAlpha(0);
    chart.setBackgroundPaint(Color.WHITE);
    chart.setBorderPaint(Color.LIGHT_GRAY);

    final BufferedImage image = new BufferedImage(300, 250, BufferedImage.TYPE_INT_RGB);
    KeypointPNGEncoderAdapter adapter = new KeypointPNGEncoderAdapter();
    adapter.setQuality(1);
    try {
        adapter.encode(image);
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
    }
    final Graphics2D g2 = image.createGraphics();
    g2.setFont(new Font("Arial", Font.PLAIN, 11));
    final Rectangle2D chartArea = new Rectangle2D.Double(0, 0, 300, 250);

    // draw
    chart.draw(g2, chartArea, null, null);

    try {
        FileOutputStream fOut = new FileOutputStream(fileToCheck);
        ChartUtilities.writeChartAsPNG(fOut, chart, 300, 250);
        return fileToCheck.getName();
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
        return null;
    }
}

From source file:org.openmrs.module.usagestatistics668.web.view.chart.AbstractChartView.java

/**
 * @see org.springframework.web.servlet.view.AbstractView
 *//*  ww w. j a v  a 2 s  .c om*/
@Override
@SuppressWarnings("unchecked")
protected void renderMergedOutputModel(Map model, HttpServletRequest request, HttpServletResponse response)
        throws Exception {
    // Respond as a PNG image
    response.setContentType("image/png");

    // Disable caching
    response.setHeader("Pragma", "No-cache");
    response.setDateHeader("Expires", 0);
    response.setHeader("Cache-Control", "no-cache");

    int width = ServletRequestUtils.getIntParameter(request, "width", 500);
    int height = ServletRequestUtils.getIntParameter(request, "height", 300);

    from = (Date) model.get("from");
    System.out.println(from);
    maxResults = (Integer) model.get("maxResults");
    until = (Date) model.get("until");
    untilInclusive = (Date) model.get("untilInclusive");
    usageFilter = (ActionCriteria) model.get("usageFilter");

    JFreeChart chart = createChart(model, request);
    chart.setBackgroundPaint(Color.WHITE);
    chart.getPlot().setOutlineStroke(new BasicStroke(0));
    chart.getPlot().setOutlinePaint(getBackgroundColor());
    chart.getPlot().setBackgroundPaint(getBackgroundColor());

    ChartUtilities.writeChartAsPNG(response.getOutputStream(), chart, width, height);
}