Example usage for org.jfree.chart JFreeChart createBufferedImage

List of usage examples for org.jfree.chart JFreeChart createBufferedImage

Introduction

In this page you can find the example usage for org.jfree.chart JFreeChart createBufferedImage.

Prototype

public BufferedImage createBufferedImage(int width, int height) 

Source Link

Document

Creates and returns a buffered image into which the chart has been drawn.

Usage

From source file:biblioteca.database2.controladores.ControladorEstadisticas.java

public ArrayList<Element> estadisticasUsuariosRegistradosMultiplesTablas(boolean dow, boolean dom, boolean mes,
        String Year, String[] franja, String desde[], String[] hasta, boolean genero, boolean vinculo,
        boolean tipo, boolean estado, boolean area, int salida)
        throws BadElementException, MalformedURLException, IOException {
    BufferedImage bufferedImage;//from w w  w.j av a  2 s.c o  m
    Image image;
    ResultSet rs;
    ArrayList<Element> Salida = new ArrayList<Element>(100);
    ArrayList<Element> images = new ArrayList<Element>(100);
    DaoEstadisticas controlador = new DaoEstadisticas();
    JFreeChart chart;
    ArrayList<ArrayList<String>> resultadosTabla;
    ArrayList<String> Array2DtoArrayPlane;
    PdfPTable tabla = null;
    int total = 0;
    if (dow) {
        ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorDoW();
        float promedio = promedio(tmp, 2);
        Salida.add(new Paragraph("Resultados para los das de la semana"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(
                biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3));
        Salida.add(new Paragraph("Promedio " + promedio));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Pastel: Usuarios Registrados para los dias de la Semana"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp),
                "Usuarios Registrados para los das de la semana");
        bufferedImage = chart.createBufferedImage(400, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Barras: Usuarios Registrados para los dias de la Semana"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp),
                "Usuarios Registrados para los das de la semana", "Das de la Semana",
                "Cantidad de usuarios");
        bufferedImage = chart.createBufferedImage(700, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(400, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (dom) {
        rs = controlador.consultarUsuariosRegistradosPorDoM();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Resultados para los das del mes"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(
                new Paragraph("* Ver Anexo: Diagrama de Pastel: Usuarios Registrados para los dias del mes"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Usuarios Registrados para los das del mes");
        bufferedImage = chart.createBufferedImage(500, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 300);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Usuarios Registrados para los das del Mes", "Das del mes", "Cantidad de usuarios");
        bufferedImage = chart.createBufferedImage(1000, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(500, 250);
        image.setAlignment(Image.MIDDLE);
        Salida.add(
                new Paragraph("* Ver Anexo: Diagrama de Barras: Usuarios Registrados para los dias del mes"));
        Salida.add(new Paragraph("\r\n"));
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (mes) {
        ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorMes();
        Salida.add(new Paragraph("Resultados para los meses"));
        Salida.add(new Paragraph("\r\n"));
        float promedio = promedio(tmp, 2);
        Salida.add(
                biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3));
        Salida.add(new Paragraph("Promedio " + promedio));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("* Ver Anexo: Diagrama de Pastel: Usuarios Registrados para los meses"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp),
                "Usuarios Registrados para los meses");
        bufferedImage = chart.createBufferedImage(500, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(350, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("* Ver Anexo: Diagrama de Barras: Usuarios Registrados para los meses"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp),
                "Usuarios Registrados para los Meses", "Meses", "Cantidad de usuarios");
        bufferedImage = chart.createBufferedImage(1000, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(500, 300);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (Year != null) {
        ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorYear(Year);
        Salida.add(new Paragraph("Resultados para el ao seleccionado"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("Ao:" + tmp.get(0) + ", Resultados:" + tmp.get(1)));
        Salida.add(new Paragraph("\r\n"));
    }
    if (franja != null) {
        ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorFranja(franja[0], franja[1]);
        Salida.add(new Paragraph("Resultados para la franja seleccionada"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("Franja:" + tmp.get(0) + ", Resultados:" + tmp.get(1)));
        Salida.add(new Paragraph("\r\n"));
    }
    if (desde != null && hasta != null) {
        ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorIntervalo(
                desde[0] + "-" + desde[1] + "-" + desde[2], hasta[0] + "-" + hasta[1] + "-" + hasta[2]);
        Salida.add(new Paragraph("Resultados para el intervalo de tiempo seleccionado"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("Intervalo de Tiempo: " + tmp.get(0) + ", Resultados:" + tmp.get(1)));
        Salida.add(new Paragraph("\r\n"));
    }
    if (genero) {
        rs = controlador.consultarUsuariosRegistradosPorGenero();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        for (int i = 0; i < resultadosTabla.size(); i++) {
            if (resultadosTabla.get(i).get(0).equals("F") || resultadosTabla.get(i).get(0).equals("f"))
                resultadosTabla.get(i).set(0, "Femenino");
            if (resultadosTabla.get(i).get(0).equals("M") || resultadosTabla.get(i).get(0).equals("m"))
                resultadosTabla.get(i).set(0, "Masculino");
            if (resultadosTabla.get(i).get(0).equals("N") || resultadosTabla.get(i).get(0).equals("n")) {
                resultadosTabla.remove(i);
            }
        }
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Genero"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios Registrados por Genero"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Registrados por Genero");
        bufferedImage = chart.createBufferedImage(450, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Registrados por Genero", "Genero", "Cantidad de Usuarios");
        bufferedImage = chart.createBufferedImage(400, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(200, 200);
        image.setAlignment(Image.MIDDLE);
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Genero"));
        Salida.add(new Paragraph("\r\n"));
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (vinculo) {
        rs = controlador.consultarUsuariosRegistradosPorVinculo();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Vinculo"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios Registrados por Vinculo"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Registrados por Vinculo");
        bufferedImage = chart.createBufferedImage(500, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Registrados por Vinculo", "Vinculo", "Cantidad de Usuarios");
        bufferedImage = chart.createBufferedImage(500, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(200, 200);
        image.setAlignment(Image.MIDDLE);
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Vinculo"));
        Salida.add(new Paragraph("\r\n"));
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (tipo) {
        rs = controlador.consultarUsuariosRegistradosPorTipoUsuario();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        for (int i = 0; i < resultadosTabla.size(); i++) {
            if (resultadosTabla.get(i).get(0).equals("3"))
                resultadosTabla.get(i).set(0, "Normal");
            else if (resultadosTabla.get(i).get(0).equals("2"))
                resultadosTabla.get(i).set(0, "Catalogador");
            else if (resultadosTabla.get(i).get(0).equals("1"))
                resultadosTabla.get(i).set(0, "Administrador");
            else if (resultadosTabla.get(i).get(0).equals("0"))
                resultadosTabla.remove(i);
        }
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Tipo de Usuario"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios Tipo de Usuario"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Tipo de Usuario");
        bufferedImage = chart.createBufferedImage(450, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Registrados por Tipo de Usuario", "Tipo de Usuario",
                "Cantidad de Usuarios");
        bufferedImage = chart.createBufferedImage(600, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 200);
        image.setAlignment(Image.MIDDLE);
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Genero"));
        Salida.add(new Paragraph("\r\n"));
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (estado) {
        rs = controlador.consultarUsuariosRegistradosPorEstado();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        for (int i = 0; i < resultadosTabla.size(); i++) {
            if (resultadosTabla.get(i).get(0).equals("t") || resultadosTabla.get(i).get(0).equals("T"))
                resultadosTabla.get(i).set(0, "Activo");
            if (resultadosTabla.get(i).get(0).equals("f") || resultadosTabla.get(i).get(0).equals("F"))
                resultadosTabla.get(i).set(0, "Inactivo");
        }
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Estado de Cuenta"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios por Estado de Cuenta"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios por Estado de Cuenta");
        bufferedImage = chart.createBufferedImage(450, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Registrados por Estado de Cuenta", "Estado de Cuenta",
                "Cantidad de Usuarios");
        bufferedImage = chart.createBufferedImage(600, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 200);
        image.setAlignment(Image.MIDDLE);
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Estado de Cuenta"));
        Salida.add(new Paragraph("\r\n"));
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (area) {
        total = 0;
        rs = controlador.consultarUsuariosRegistradosPorArea();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Areas con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Areas con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Areas con ms Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(600, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 300);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Areas con ms Documentos Catalogados", "Area_ID", "Numero de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(900, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(450, 250);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (!images.isEmpty()) {
        Salida.add(new Paragraph("Anexos:"));
        Salida.add(new Paragraph("\r\n"));
    }
    for (int i = 0; i < images.size(); i++) {
        Salida.add(images.get(i));
    }
    return Salida;
}

From source file:biblioteca.database2.controladores.ControladorEstadisticas.java

public ArrayList<Element> ConsultarDocumentosCatalogados(boolean dow, boolean dom, boolean month, String year,
        String[] franja, String[] desde, String[] Hasta, boolean area, boolean autor, boolean doc_tipo,
        boolean pc, boolean usuario, int salida)
        throws BadElementException, MalformedURLException, IOException {

    ArrayList<Element> Salida = new ArrayList<Element>(100);
    ArrayList<Element> Images = new ArrayList<Element>(100);
    DaoEstadisticas controlador = new DaoEstadisticas();
    ResultSet rs;//from  www  . j av  a2s  .  c  om
    JFreeChart chart;
    BufferedImage bufferedImage;
    Image image;
    ArrayList<ArrayList<String>> resultadosTabla;
    ArrayList<String> Array2DtoArrayPlane;
    PdfPTable tabla = null;
    int total = 0;
    if (dow) {
        ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorDoW();
        float promedio = promedio(tmp, 2);
        Salida.add(new Paragraph("Resultados de Documentos Catalogados para los das de la semana"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(
                biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3));
        Salida.add(new Paragraph("Promedio " + promedio));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Pastel: Documentos Catalogados para los dias de la Semana"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp),
                "Documentos Catalogados para los Das de la Semana");
        bufferedImage = chart.createBufferedImage(400, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 200);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Barras: Documentos Catalogados para los Das de la Semana"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp),
                "Documentos Catalogados para los Das de la Semana", "Das de la Semana",
                "Cantidad de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(700, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(400, 200);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (dom) {
        rs = controlador.consultarDocumentosCatalogadosPorDoM();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Resultados de Documentos Catalogados para los das del mes"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(
                new Paragraph("* Ver Anexo: Diagrama de Pastel: Documentos Catalogados para los dias del mes"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Documentos Catalogados para los das del mes");
        bufferedImage = chart.createBufferedImage(500, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 300);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Documentos Catalogados para los das del Mes", "Das del mes", "Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(1000, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(500, 250);
        image.setAlignment(Image.MIDDLE);
        Salida.add(
                new Paragraph("* Ver Anexo: Diagrama de Barras: Documentos Catalogados para los dias del mes"));
        Salida.add(new Paragraph("\r\n"));
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (month) {
        ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorMes();
        Salida.add(new Paragraph("Resultados de Documentos Catalogados para los meses"));
        Salida.add(new Paragraph("\r\n"));
        float promedio = promedio(tmp, 2);
        Salida.add(
                biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3));
        Salida.add(new Paragraph("Promedio " + promedio));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("* Ver Anexo: Diagrama de Pastel: Documentos Catalogados para los meses"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp),
                "Documentos Catalogados para los meses");
        bufferedImage = chart.createBufferedImage(500, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(350, 200);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("* Ver Anexo: Diagrama de Barras: Documentos Catalogados para los meses"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp),
                "Documentos Catalogados para los Meses", "Meses", "Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(1000, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(500, 300);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (year != null) {
        ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorYear(year);
        Salida.add(new Paragraph("Resultados para el ao seleccionado"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("Ao: " + tmp.get(0) + ", Resultados:" + tmp.get(1)));
        Salida.add(new Paragraph("\r\n"));
    }
    if (franja != null) {
        ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorFranja(franja[0], franja[1]);
        Salida.add(new Paragraph("Resultados para la franja seleccionada"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("Franja:" + tmp.get(0) + ", Resultados:" + tmp.get(1)));
        Salida.add(new Paragraph("\r\n"));
    }
    if (desde != null && Hasta != null) {
        ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorIntervalo(
                desde[0] + "-" + desde[1] + "-" + desde[2], Hasta[0] + "-" + Hasta[1] + "-" + Hasta[2]);
        Salida.add(new Paragraph("Resultados para el intervalo de tiempo seleccionado"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("Intervalo de Tiempo: " + tmp.get(0) + ", Resultados:" + tmp.get(1)));
        Salida.add(new Paragraph("\r\n"));
    }
    if (area) {
        total = 0;
        rs = controlador.consultarDocumentosCatalogadosPorArea();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Areas con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Areas con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Areas con ms Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(600, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 300);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Areas con ms Documentos Catalogados", "Area_ID", "Numero de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(900, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(450, 250);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }

    if (autor) {
        total = 0;
        rs = controlador.consultarDocumentosCatalogadosPorAutor();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 1, 3);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Autores con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Autores con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Autores con ms Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(600, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 300);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Autores con ms Documentos Catalogados", "Nombre Autor", "Numero de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(1000, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(400, 300);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (doc_tipo) {
        total = 0;
        rs = controlador.consultarDocumentosCatalogadosPorTipoMaterial();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Tipos de Material con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Tipos de Material con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Tipos de Material con ms Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(600, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        bufferedImage = chart.createBufferedImage(300, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Tipos de Material con ms Documentos Catalogados", "Tipo de Material",
                "Numero de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(900, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(450, 250);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (pc) {
        total = 0;
        rs = controlador.consultarDocumentosCatalogadosPorPalabraClave();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Palabras Clave con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Palabras Clave con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Palabras Clave con ms Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(500, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 250);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Palabras Clave con ms Documentos Catalogados", "Palabras Clave",
                "Numero de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(900, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(450, 250);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (usuario) {
        total = 0;
        rs = controlador.consultarDocumentosCatalogadosPorUsuarios();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Usuarios que mas Catalogan Documentos"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Usuarios que mas Catalogan"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Usuarios que mas Catalogan");
        bufferedImage = chart.createBufferedImage(500, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 250);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Usuarios que mas Catalogan", "Username", "Numero de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(900, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(450, 250);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (!Images.isEmpty()) {
        Salida.add(new Paragraph("Anexos:"));
        Salida.add(new Paragraph("\r\n"));
    }
    for (int i = 0; i < Images.size(); i++) {
        Salida.add(Images.get(i));
    }
    return Salida;
}

From source file:org.pentaho.di.ui.spoon.trans.StepPerformanceSnapShotDialog.java

private void updateCanvas() {
    Rectangle bounds = canvas.getBounds();
    if (bounds.width <= 0 || bounds.height <= 0) {
        return;/*w  w w .java2s.  c om*/
    }

    // The list of snapshots : convert to JFreeChart dataset
    //
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();

    String[] selectedSteps = stepsList.getSelection();
    if (selectedSteps == null || selectedSteps.length == 0) {
        selectedSteps = new String[] { steps[0], }; // first step
        stepsList.select(0);
    }
    int[] dataIndices = dataList.getSelectionIndices();
    if (dataIndices == null || dataIndices.length == 0) {
        dataIndices = new int[] { DATA_CHOICE_WRITTEN, };
        dataList.select(0);
    }

    boolean multiStep = stepsList.getSelectionCount() > 1;
    boolean multiData = dataList.getSelectionCount() > 1;
    boolean calcMoving = !multiStep && !multiData; // A single metric shown for a single step
    List<Double> movingList = new ArrayList<Double>();
    int movingSize = 10;
    double movingTotal = 0;
    int totalTimeInSeconds = 0;

    for (int t = 0; t < selectedSteps.length; t++) {

        String stepNameCopy = selectedSteps[t];

        List<StepPerformanceSnapShot> snapShotList = stepPerformanceSnapShots.get(stepNameCopy);
        if (snapShotList != null && snapShotList.size() > 1) {
            totalTimeInSeconds = (int) Math
                    .round(((double) (snapShotList.get(snapShotList.size() - 1).getDate().getTime()
                            - snapShotList.get(0).getDate().getTime())) / 1000);
            for (int i = 0; i < snapShotList.size(); i++) {
                StepPerformanceSnapShot snapShot = snapShotList.get(i);
                if (snapShot.getTimeDifference() != 0) {

                    double factor = (double) 1000 / (double) snapShot.getTimeDifference();

                    for (int d = 0; d < dataIndices.length; d++) {

                        String dataType;
                        if (multiStep) {
                            dataType = stepNameCopy;
                        } else {
                            dataType = dataChoices[dataIndices[d]];
                        }
                        String xLabel = Integer.toString(Math.round(i * timeDifference / 1000));
                        Double metric = null;
                        switch (dataIndices[d]) {
                        case DATA_CHOICE_INPUT:
                            metric = snapShot.getLinesInput() * factor;
                            break;
                        case DATA_CHOICE_OUTPUT:
                            metric = snapShot.getLinesOutput() * factor;
                            break;
                        case DATA_CHOICE_READ:
                            metric = snapShot.getLinesRead() * factor;
                            break;
                        case DATA_CHOICE_WRITTEN:
                            metric = snapShot.getLinesWritten() * factor;
                            break;
                        case DATA_CHOICE_UPDATED:
                            metric = snapShot.getLinesUpdated() * factor;
                            break;
                        case DATA_CHOICE_REJECTED:
                            metric = snapShot.getLinesRejected() * factor;
                            break;
                        case DATA_CHOICE_INPUT_BUFFER_SIZE:
                            metric = (double) snapShot.getInputBufferSize();
                            break;
                        case DATA_CHOICE_OUTPUT_BUFFER_SIZE:
                            metric = (double) snapShot.getOutputBufferSize();
                            break;
                        default:
                            break;
                        }
                        if (metric != null) {
                            dataset.addValue(metric, dataType, xLabel);

                            if (calcMoving) {
                                movingTotal += metric;
                                movingList.add(metric);
                                if (movingList.size() > movingSize) {
                                    movingTotal -= movingList.get(0);
                                    movingList.remove(0);
                                }
                                double movingAverage = movingTotal / movingList.size();
                                dataset.addValue(movingAverage, dataType + "(Avg)", xLabel);
                                // System.out.println("moving average = "+movingAverage+", movingTotal="+movingTotal+", m");
                            }
                        }
                    }
                }
            }
        }
    }
    String chartTitle = title;
    if (multiStep) {
        chartTitle += " (" + dataChoices[dataIndices[0]] + ")";
    } else {
        chartTitle += " (" + selectedSteps[0] + ")";
    }
    final JFreeChart chart = ChartFactory.createLineChart(chartTitle, // chart title
            BaseMessages.getString(PKG, "StepPerformanceSnapShotDialog.TimeInSeconds.Label",
                    Integer.toString(totalTimeInSeconds), Long.toString(timeDifference)), // domain axis label
            BaseMessages.getString(PKG, "StepPerformanceSnapShotDialog.RowsPerSecond.Label"), // range axis label
            dataset, // data
            PlotOrientation.VERTICAL, // orientation
            true, // include legend
            true, // tooltips
            false); // urls       
    chart.setBackgroundPaint(Color.white);
    CategoryPlot plot = (CategoryPlot) chart.getPlot();
    plot.setBackgroundPaint(Color.white);
    plot.setForegroundAlpha(0.5f);
    plot.setRangeGridlinesVisible(true);

    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    CategoryAxis domainAxis = plot.getDomainAxis();
    domainAxis.setTickLabelsVisible(false);

    // Customize the renderer...
    //
    LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
    renderer.setBaseShapesVisible(true);
    renderer.setDrawOutlines(true);
    renderer.setUseFillPaint(true);
    renderer.setBaseFillPaint(Color.white);
    renderer.setSeriesStroke(0, new BasicStroke(1.5f));
    renderer.setSeriesOutlineStroke(0, new BasicStroke(1.5f));
    renderer.setSeriesStroke(1, new BasicStroke(2.5f));
    renderer.setSeriesOutlineStroke(1, new BasicStroke(2.5f));
    renderer.setSeriesShape(0, new Ellipse2D.Double(-3.0, -3.0, 6.0, 6.0));

    BufferedImage bufferedImage = chart.createBufferedImage(bounds.width, bounds.height);
    ImageData imageData = ImageUtil.convertToSWT(bufferedImage);

    // dispose previous image...
    //
    if (image != null) {
        image.dispose();
    }
    image = new Image(display, imageData);

    // Draw the image on the canvas...
    //
    canvas.redraw();
}

From source file:org.fhcrc.cpl.viewer.amt.commandline.AmtDatabaseDiagnosticCommandLineModule.java

/**
 * a great big switch statement/*from ww  w  .j  ava2  s .c om*/
 */
public void execute() throws CommandLineModuleExecutionException {

    try {
        ApplicationContext.infoMessage(amtDB.toString());
        JFreeChart chart = null;
        switch (mode) {
        case MODE_COMPARE_OBS_H_CALC_H:
            chart = compareObservedHAgainstCalculatedH();
            break;
        case MODE_COMPARE_CALC_H_TIME:
            chart = compareCalculatedHAgainstTime();
            break;
        case MODE_PLOT_T_H_MAPS:
            chart = showTimeHydMaps();
            break;
        case MODE_HIST_HYDRO_STD_DEV:
            chart = histogramHydroStdDev();
            break;
        case MODE_PLOT_RUN_HYDRO_DIFFS:
            chart = showMeanHydroDiffByRun();
            break;
        case MODE_SAVE_ALL_CHARTS:

            Map<String, JFreeChart> filenameChartMap = new HashMap<String, JFreeChart>();
            filenameChartMap.put("obsH_calcH.png", compareObservedHAgainstCalculatedH());

            filenameChartMap.put("calcH_time.png", compareCalculatedHAgainstTime());
            filenameChartMap.put("hist_peptide_hydro_stddev.png", histogramHydroStdDev());
            filenameChartMap.put("mean_diff_by_run.png", showMeanHydroDiffByRun());
            filenameChartMap.put("mass_obs_hydro.png", plotMassVersusObsHydroByRun());
            filenameChartMap.put("run_h_vs_median.png", plotRunHvsMedian());
            filenameChartMap.put("mass_h_all_entries.png", plotMassAndH());
            for (String filename : filenameChartMap.keySet()) {
                chart = filenameChartMap.get(filename);
                File outChartFile = new File(outDir.getAbsolutePath() + File.separatorChar + filename);
                ImageIO.write(chart.createBufferedImage(500, 400), "png", outChartFile);
                ApplicationContext.infoMessage("Wrote image file " + filename);
            }
            ApplicationContext.infoMessage("Done.");
            break;
        case MODE_PLOT_MASS_VS_OBS_HYDRO:
            chart = plotMassVersusObsHydroByRun();
            break;
        case MODE_BASIC_INFO:
            basicInfo();
            break;
        case MODE_HIST_MASSES:
            chart = histogramMasses();
            break;
        case MODE_PLOT_RUN_H_VS_MEDIAN:
            chart = plotRunHvsMedian();
            break;
        case MODE_PEPTIDE_DETAILS:
            peptideDetails();
            break;
        case MODE_PLOT_MASS_H:
            chart = plotMassAndH();
            break;
        case MODE_HIST_ID_PROBS:
            chart = histogramIDProbs();
            break;
        }
        if (chart != null && showCharts) {
            ChartDialog cd = new ChartDialog(chart);
            cd.setVisible(true);
        }

    } catch (Exception e) {
        throw new CommandLineModuleExecutionException(e);
    }

}

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

    ////www. ja va  2s .c  o  m
    // 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;
}

From source file:com.gargoylesoftware.htmlunit.general.ElementPropertiesTest.java

private static void saveChart() throws IOException {
    final JFreeChart chart = ChartFactory.createBarChart(
            "HtmlUnit implemented properties and methods for " + BROWSER_VERSION_.getNickname(), "Objects",
            "Count", DATASET_, PlotOrientation.HORIZONTAL, true, true, false);
    final CategoryPlot plot = (CategoryPlot) chart.getPlot();
    final NumberAxis axis = (NumberAxis) plot.getRangeAxis();
    axis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    final LayeredBarRenderer renderer = new LayeredBarRenderer();
    plot.setRenderer(renderer);/*from  w w w .  j ava 2s.co  m*/
    plot.setRowRenderingOrder(SortOrder.DESCENDING);
    renderer.setSeriesPaint(0, new GradientPaint(0, 0, Color.green, 0, 0, new Color(0, 64, 0)));
    renderer.setSeriesPaint(1, new GradientPaint(0, 0, Color.blue, 0, 0, new Color(0, 0, 64)));
    renderer.setSeriesPaint(2, new GradientPaint(0, 0, Color.red, 0, 0, new Color(64, 0, 0)));
    ImageIO.write(chart.createBufferedImage(1200, 2400), "png",
            new File(getTargetDirectory() + "/properties-" + BROWSER_VERSION_.getNickname() + ".png"));
}

From source file:org.geopublishing.atlasStyler.classification.RasterClassification.java

@Override
public BufferedImage createHistogramImage(boolean showMean, boolean showSd, int histogramBins,
        String label_xachsis) throws InterruptedException, IOException {
    HistogramDataset hds = new HistogramDataset();

    DoubleArrayList valuesAL;//from  w  w w .  j a  v  a  2s.  com
    valuesAL = getStatistics().elements();
    double[] elements = Arrays.copyOf(valuesAL.elements(), getStatistics().size());
    hds.addSeries(1, elements, histogramBins);

    /** Statically label the Y Axis **/
    String label_yachsis = ASUtil.R("QuantitiesClassificationGUI.Histogram.YAxisLabel");

    JFreeChart chart = org.jfree.chart.ChartFactory.createHistogram(null, label_xachsis, label_yachsis, hds,
            PlotOrientation.VERTICAL, false, true, true);

    /***********************************************************************
     * Paint the classes into the JFreeChart
     */
    int countLimits = 0;
    for (Double cLimit : getClassLimits()) {
        ValueMarker marker = new ValueMarker(cLimit);
        XYPlot plot = chart.getXYPlot();
        marker.setPaint(Color.orange);
        marker.setLabel(String.valueOf(countLimits));
        marker.setLabelAnchor(RectangleAnchor.TOP_LEFT);
        marker.setLabelTextAnchor(TextAnchor.TOP_RIGHT);
        plot.addDomainMarker(marker);

        countLimits++;
    }

    /***********************************************************************
     * Optionally painting SD and MEAN into the histogram
     */
    try {
        if (showSd) {
            ValueMarker marker;
            marker = new ValueMarker(getSD(), Color.green.brighter(), new BasicStroke(1.5f));
            XYPlot plot = chart.getXYPlot();
            marker.setLabel(ASUtil.R("QuantitiesClassificationGUI.Histogram.SD.ShortLabel"));
            marker.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT);
            marker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT);
            plot.addDomainMarker(marker);
        }

        if (showMean) {
            ValueMarker marker;
            marker = new ValueMarker(getMean(), Color.green.darker(), new BasicStroke(1.5f));
            XYPlot plot = chart.getXYPlot();
            marker.setLabel(ASUtil.R("QuantitiesClassificationGUI.Histogram.Mean.ShortLabel"));
            marker.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT);
            marker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT);
            plot.addDomainMarker(marker);
        }

    } catch (Exception e) {
        LOGGER.error("Painting SD and MEAN into the histogram", e);
    }

    /***********************************************************************
     * Render the Chart
     */
    BufferedImage image = chart.createBufferedImage(400, 200);

    return image;
}

From source file:psiprobe.controllers.RenderChartController.java

@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
        throws Exception {

    final int seriesMaxCount = 9; // the max number of series

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

    // get Series Outline Color from the request
    int[] seriesOutlineColor = new int[seriesMaxCount];
    seriesOutlineColor[0] = Utils.toIntHex(request.getParameter("s1o"), 0x0665aa);
    seriesOutlineColor[1] = Utils.toIntHex(request.getParameter("s2o"), 0x9d0000);
    for (int i = 2; i < seriesMaxCount; 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 labelX = ServletRequestUtils.getStringParameter(request, "xl", "");

    // Y axis title
    String labelY = 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 series = getApplicationContext().getBean(provider);
        if (series instanceof SeriesProvider) {
            ((SeriesProvider) series).populate(ds, statsCollection, request);
        } else {
            logger.error("SeriesProvider '{}' does not implement '{}'", provider, SeriesProvider.class);
        }

    }

    // Build series data from the give statistic
    JFreeChart chart = null;
    if ("area".equals(chartType)) {
        chart = ChartFactory.createXYAreaChart("", labelX, labelY, ds, PlotOrientation.VERTICAL, showLegend,
                false, false);

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

    } else if ("stacked".equals(chartType)) {
        chart = ChartFactory.createStackedXYAreaChart("", labelX, labelY, ds, PlotOrientation.VERTICAL,
                showLegend, false, false);

    } else if ("line".equals(chartType)) {
        chart = ChartFactory.createXYLineChart("", labelX, labelY, ds, PlotOrientation.VERTICAL, showLegend,
                false, false);

        final XYLine3DRenderer renderer = new XYLine3DRenderer();
        renderer.setDrawOutlines(true);
        for (int i = 0; i < seriesMaxCount; i++) {
            renderer.setSeriesLinesVisible(i, true);
            renderer.setSeriesShapesVisible(i, true);
            renderer.setSeriesStroke(i, 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 < seriesMaxCount; 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;
}

From source file:org.sakaiproject.sitestats.impl.ServerWideReportManagerImpl.java

private byte[] generateBoxAndWhiskerChart(BoxAndWhiskerCategoryDataset dataset, int width, int height) {
    JFreeChart chart = ChartFactory.createBoxAndWhiskerChart(null, null, null, dataset, false);

    // set background
    chart.setBackgroundPaint(parseColor(statsManager.getChartBackgroundColor()));

    // set chart border
    chart.setPadding(new RectangleInsets(10, 5, 5, 5));
    chart.setBorderVisible(true);//from  w w w  .j av  a  2s . c o  m
    chart.setBorderPaint(parseColor("#cccccc"));

    // set anti alias
    chart.setAntiAlias(true);

    CategoryPlot plot = (CategoryPlot) chart.getPlot();

    plot.setDomainGridlinePaint(Color.white);
    plot.setDomainGridlinesVisible(true);
    plot.setRangeGridlinePaint(Color.white);

    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    CategoryAxis domainAxis = (CategoryAxis) plot.getDomainAxis();
    domainAxis.setLowerMargin(0.0);
    domainAxis.setUpperMargin(0.0);

    BufferedImage img = chart.createBufferedImage(width, height);
    final ByteArrayOutputStream out = new ByteArrayOutputStream();
    try {
        ImageIO.write(img, "png", out);
    } catch (IOException e) {
        log.warn("Error occurred while generating SiteStats chart image data", e);
    }
    return out.toByteArray();
}

From source file:csds60analyzer.csds60analyzerGUI.java

public BufferedImage creaImagen() {
    BufferedImage imagen = null;/*from   w  ww.j a va  2s . c om*/
    try {
        SAXBuilder builder = new SAXBuilder(false);
        Document doc = null;
        TimeSeriesCollection datos = new TimeSeriesCollection();
        if (fichero != null) {
            doc = builder.build(fichero);
            Element raiz = doc.getRootElement();
            List<Element> dias = raiz.getChildren("dia");
            Iterator<Element> diasIT = dias.iterator();
            TimeSeries desayunoAntes = new TimeSeries("Desayuno antes");
            TimeSeries desayunoDespues = new TimeSeries("Desayuno despus");
            TimeSeries almuerzoAntes = new TimeSeries("Almuerzo antes");
            TimeSeries almuerzoDespues = new TimeSeries("Almuerzo despus");
            TimeSeries cenaAntes = new TimeSeries("Cena antes");
            TimeSeries cenaDespues = new TimeSeries("Cena despus");

            pdesayuno = 0;
            pdesant = 0;
            pdesdes = 0;
            palmuerzo = 0;
            palmant = 0;
            palmdes = 0;
            pcena = 0;
            pcenant = 0;
            pcendes = 0;

            contdesant = 0;
            contdesdes = 0;
            contalmant = 0;
            contalmdes = 0;
            contcenant = 0;
            contcendes = 0;

            while (diasIT.hasNext()) {
                Element diaActual = diasIT.next();
                Integer fechaActual = Integer.parseInt(diaActual.getChildText("fecha").substring(0, 10));

                Calendar fad = GregorianCalendar.getInstance();
                fad.setTimeInMillis(fechaActual.longValue() * 1000);

                int dia = fad.get(Calendar.DAY_OF_MONTH);
                int mes = fad.get(Calendar.MONTH) + 1;
                int ano = fad.get(Calendar.YEAR);

                if (diaActual.getChildren().toString().contains("desayunoantes")) {
                    int desayunoAntesActual = Integer.parseInt(diaActual.getChildText("desayunoantes"));
                    desayunoAntes.add(new Day(dia, mes, ano), desayunoAntesActual);
                    pdesant = pdesant + desayunoAntesActual;
                    contdesant++;
                }
                if (diaActual.getChildren().toString().contains("desayunodespues")) {
                    int desayunoDespuesActual = Integer.parseInt(diaActual.getChildText("desayunodespues"));
                    desayunoDespues.add(new Day(dia, mes, ano), desayunoDespuesActual);
                    pdesdes = pdesdes + desayunoDespuesActual;
                    contdesdes++;
                }
                if (diaActual.getChildren().toString().contains("almuerzoantes")) {
                    int almuerzoAntesActual = Integer.parseInt(diaActual.getChildText("almuerzoantes"));
                    almuerzoAntes.add(new Day(dia, mes, ano), almuerzoAntesActual);
                    palmant = palmant + almuerzoAntesActual;
                    contalmant++;
                }
                if (diaActual.getChildren().toString().contains("almuerzodespues")) {
                    int almuerzoDespuesActual = Integer.parseInt(diaActual.getChildText("almuerzodespues"));
                    almuerzoDespues.add(new Day(dia, mes, ano), almuerzoDespuesActual);
                    palmdes = palmdes + almuerzoDespuesActual;
                    contalmdes++;
                }
                if (diaActual.getChildren().toString().contains("cenaantes")) {
                    int cenaAntesActual = Integer.parseInt(diaActual.getChildText("cenaantes"));
                    cenaAntes.add(new Day(dia, mes, ano), cenaAntesActual);
                    pcenant = pcenant + cenaAntesActual;
                    contcenant++;
                }
                if (diaActual.getChildren().toString().contains("cenadespues")) {
                    int cenaDespuesActual = Integer.parseInt(diaActual.getChildText("cenadespues"));
                    cenaDespues.add(new Day(dia, mes, ano), cenaDespuesActual);
                    pcendes = pcendes + cenaDespuesActual;
                    contcendes++;
                }
            }
            //controlar la division por cero
            if ((contdesant + contdesdes) > 0)
                pdesayuno = (pdesant + pdesdes) / (contdesant + contdesdes);
            if (contdesant > 0)
                pdesant = pdesant / contdesant;
            if (contdesdes > 0)
                pdesdes = pdesdes / contdesdes;
            if ((contalmant + contalmdes) > 0)
                palmuerzo = (palmant + palmdes) / (contalmant + contalmdes);
            if (contalmant > 0)
                palmant = palmant / contalmant;
            if (contalmdes > 0)
                palmdes = palmdes / contalmdes;
            if ((contcenant + contcendes) > 0)
                pcena = (pcenant + pcendes) / (contcenant + contcendes);
            if (contcenant > 0)
                pcenant = pcenant / contcenant;
            if (contcendes > 0)
                pcendes = pcendes / contcendes;
            datos.addSeries(desayunoAntes);
            datos.addSeries(desayunoDespues);
            datos.addSeries(almuerzoAntes);
            datos.addSeries(almuerzoDespues);
            datos.addSeries(cenaAntes);
            datos.addSeries(cenaDespues);
        }
        JFreeChart graficaJfree = ChartFactory.createTimeSeriesChart("Anlisis", " ", "Glucosa (mg)", datos,
                true, true, false);
        XYPlot plot = (XYPlot) graficaJfree.getPlot();
        plot.setBackgroundPaint(Color.getHSBColor(0f, 0f, .88f));
        plot.setDomainGridlinePaint(Color.getHSBColor(0f, 0f, .35f));
        plot.setDomainTickBandPaint(Color.getHSBColor(0f, 0f, .93f));
        plot.setOutlinePaint(Color.getHSBColor(0f, 0f, 0.35f));
        plot.setRangeGridlinePaint(Color.getHSBColor(0f, 0f, 0.35f));
        XYLineAndShapeRenderer plot2 = (XYLineAndShapeRenderer) plot.getRenderer();
        if (!CBdesayunoantes.getState())
            plot2.setSeriesLinesVisible(0, false);
        plot2.setSeriesPaint(0, Color.getHSBColor(.3f, 1f, .5f));
        //plot2.setSeriesStroke(0,new BasicStroke(2.0f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND,1.0f));
        if (!CBdesayunodespues.getState())
            plot2.setSeriesLinesVisible(1, false);
        plot2.setSeriesPaint(1, Color.getHSBColor(.2f, 1f, .9f));
        if (!CBalmuerzoantes.getState())
            plot2.setSeriesLinesVisible(2, false);
        plot2.setSeriesPaint(2, Color.getHSBColor(.0f, 1f, .6f));
        if (!CBalmuerzodespues.getState())
            plot2.setSeriesLinesVisible(3, false);
        plot2.setSeriesPaint(3, Color.getHSBColor(.0f, 1f, .9f));
        if (!CBcenaantes.getState())
            plot2.setSeriesLinesVisible(4, false);
        plot2.setSeriesPaint(4, Color.getHSBColor(.6f, 1f, .4f));
        if (!CBcenadespues.getState())
            plot2.setSeriesLinesVisible(5, false);
        plot2.setSeriesPaint(5, Color.getHSBColor(.6f, 1f, 1f));
        imagen = graficaJfree.createBufferedImage(800, 600);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return imagen;
}