Example usage for com.itextpdf.text.pdf PdfPTable addCell

List of usage examples for com.itextpdf.text.pdf PdfPTable addCell

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf PdfPTable addCell.

Prototype

public void addCell(final Phrase phrase) 

Source Link

Document

Adds a cell element.

Usage

From source file:bodyfitness.relatorios.Relatorio.java

public void GeraRelatorioMaquinaSManutencao(String caminho) {
    Document documento = new Document();
    try {//  w w w  .ja  v a 2  s  . co  m
        PdfWriter.getInstance(documento, new FileOutputStream(caminho + "/MaquinaSManutencao.pdf"));
        documento.open();
        EquipamentoDAO dao = new EquipamentoDAO();
        List<Equipamento> equips = dao.consultarSemManutancao();
        PdfPTable tabela = new PdfPTable(3);
        tabela.addCell("ID");
        tabela.addCell("Nome");
        tabela.addCell("D. Ultima Mantencao");
        SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
        Paragraph p = new Paragraph("     Relatrio - Clientes Mquinas Sem Manuteno\n\n\n");
        documento.add(p);
        for (Equipamento e : equips) {
            tabela.addCell(e.getId().toString());
            tabela.addCell(e.getNome());
            tabela.addCell(formato.format(e.getDataDaUltimaManutencao()));
        }
        documento.add(tabela);
        documento.close();

    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, "Erro ao gerar documento:\n" + e.getMessage(), "Erro",
                JOptionPane.ERROR_MESSAGE);
    }
}

From source file:bodyfitness.relatorios.Relatorio.java

public void GeraRelatorioTreino(String caminho, Long id) {
    ClienteDAO cdao = new ClienteDAO();
    Cliente cliente = cdao.consultarPorId(id);
    Document documento = new Document();
    Paragraph p = new Paragraph("Nome: " + cliente.getNome() + "\n" + "Id: " + cliente.getId().toString() + "\n"
            + "Idade: " + cliente.getIdade().toString() + "\n\n");
    PdfPTable tabela = new PdfPTable(3);
    tabela.addCell("Maquina");
    tabela.addCell("Sries");
    tabela.addCell("Repeties");
    try {//from   ww  w  . jav a2s .com
        PdfWriter.getInstance(documento, new FileOutputStream(caminho + "/MaquinaSManutencao.pdf"));
        Treino t = cliente.getTreino();
        for (int i = 0; i < t.getSeries().size(); i++) {
            tabela.addCell(t.getSeries().get(i).getEquipamento().getNome());
            tabela.addCell(String.valueOf(t.getSeries().get(i).getQuantidadeDeSeries()));
            tabela.addCell(String.valueOf(t.getSeries().get(i).getRepeticoes()));
        }
        documento.add(p);
        documento.add(tabela);

    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, "Erro em relatrio de treino:\n" + e.getMessage());
    } finally {
        documento.close();
    }

}

From source file:bodyfitness.relatorios.Relatorio.java

public void GeraRelatorioCondFisico(String caminho, Long id) {
    Document documento = new Document();
    ClienteDAO cdao = new ClienteDAO();
    Cliente c = cdao.consultarPorId(id);
    Paragraph p = new Paragraph("Nome: " + c.getNome() + "\n" + "Id: " + c.getId().toString() + "\n" + "Idade: "
            + c.getIdade().toString() + "\n\n");
    try {//from   w w  w .  j a  v a2 s .c  o m
        PdfWriter.getInstance(documento, new FileOutputStream(caminho + "/CondFisico.pdf"));
        documento.open();
        PdfPTable tabela = new PdfPTable(2);
        tabela.addCell("Aspecto");
        tabela.addCell("Valor");

        //SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
        CondicionamentoFisico cf = c.getCondicionamentoFisico();
        tabela.addCell("IMC");
        tabela.addCell(cf.getComposicaoCorporal().getImc().toString());
        tabela.addCell("Massa Gorda");
        tabela.addCell(cf.getComposicaoCorporal().getMassaGorda().toString());
        tabela.addCell("Massa Magra");
        tabela.addCell(cf.getComposicaoCorporal().getMassaMagra().toString());
        tabela.addCell("Percentual atual de gordura");
        tabela.addCell(cf.getComposicaoCorporal().getPercentualGorduraAtual().toString());
        tabela.addCell("Percentual ideal de gordura");
        tabela.addCell(cf.getComposicaoCorporal().getPercentualGorduraIdeal().toString());
        tabela.addCell("Abdominal");
        tabela.addCell(cf.getDobrasCutaneas().getAbdominal().toString());
        tabela.addCell("Axilar Media");
        tabela.addCell(cf.getDobrasCutaneas().getAxilarMedia().toString());
        tabela.addCell("Bicipital");
        tabela.addCell(cf.getDobrasCutaneas().getBicipital().toString());
        tabela.addCell("Coxa");
        tabela.addCell(cf.getDobrasCutaneas().getCoxa().toString());
        tabela.addCell("Panturrilha");
        tabela.addCell(cf.getDobrasCutaneas().getPanturrilha().toString());
        tabela.addCell("Peitoral");
        tabela.addCell(cf.getDobrasCutaneas().getPeitoral().toString());
        tabela.addCell("Subescapular");
        tabela.addCell(cf.getDobrasCutaneas().getSubescapular().toString());
        tabela.addCell("Supra iliaca");
        tabela.addCell(cf.getDobrasCutaneas().getSupraIliaca().toString());
        tabela.addCell("Tricipital");
        tabela.addCell(cf.getDobrasCutaneas().getTricipital().toString());
        tabela.addCell("Antebrao Direito");
        tabela.addCell(cf.getMembrosInferiores().getAnteBracoDireito().toString());
        tabela.addCell("Brao Contrado Direito");
        tabela.addCell(cf.getMembrosInferiores().getBracoContraidoDireito().toString());
        tabela.addCell("Brao Relaxado Direito");
        tabela.addCell(cf.getMembrosInferiores().getBracoRelaxadoDireito().toString());
        tabela.addCell("Brao Relaxado Esquerdo");
        tabela.addCell(cf.getMembrosInferiores().getBracoRelaxadoEsquerdo().toString());
        tabela.addCell("Coxa Esquerda");
        tabela.addCell(cf.getMembrosInferiores().getCoxaEsquerdo().toString());
        tabela.addCell("Panturrilha Direita");
        tabela.addCell(cf.getMembrosInferiores().getPanturrilhaDireito().toString());
        tabela.addCell("Abdome");
        tabela.addCell(cf.getMembrosSuperiores().getAbdome().toString());
        tabela.addCell("Cintura");
        tabela.addCell(cf.getMembrosSuperiores().getCintura().toString());
        tabela.addCell("Ombro");
        tabela.addCell(cf.getMembrosSuperiores().getOmbro().toString());
        tabela.addCell("Pescoo");
        tabela.addCell(cf.getMembrosSuperiores().getPescoco().toString());
        tabela.addCell("Quadril");
        tabela.addCell(cf.getMembrosSuperiores().getQuadril().toString());
        tabela.addCell("Torx");
        tabela.addCell(cf.getMembrosSuperiores().getToraxRelaxado().toString());
        documento.add(p);

        documento.add(tabela);

    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, "Erro ao gerar documento:\n" + e.getMessage(), "Erro",
                JOptionPane.ERROR_MESSAGE);
    } finally {
        documento.close();
    }
}

From source file:bookshopautomationsoftware.GenerateReceipt.java

private static void createTable(Section subCatPart) throws BadElementException {
    PdfPTable table = new PdfPTable(4);

    // t.setBorderColor(BaseColor.GRAY);
    // t.setPadding(4);
    // t.setSpacing(4);
    // t.setBorderWidth(1);
    addEmptyLine(preface, 2);//from w  w  w. ja  v  a2s  . c o m
    PdfPCell c1 = new PdfPCell(new Phrase("slno"));
    c1.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(c1);

    c1 = new PdfPCell(new Phrase("isbn"));
    c1.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(c1);

    c1 = new PdfPCell(new Phrase("quantity"));
    c1.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(c1);

    c1 = new PdfPCell(new Phrase("price"));
    c1.setHorizontalAlignment(Element.ALIGN_CENTER);
    table.addCell(c1);

    table.setHeaderRows(1);

    try {
        Connection con = DriverManager.getConnection(DB_URL1, USER1, PASS1);
        Statement stmnt = con.createStatement();
        String sql = "SELECT slno,book,quantity FROM cart";
        Connection con1 = DriverManager.getConnection(DB_URL1, USER1, PASS1);
        Statement stmnt1 = con.createStatement();
        int count = 0;
        ResultSet rs = stmnt.executeQuery(sql);
        ResultSet rs1;
        float total = 0;
        while (rs.next()) {
            String sql1 = "SELECT isbn,price FROM booktable WHERE isbn = " + rs.getLong("book");
            rs1 = stmnt1.executeQuery(sql1);
            rs1.next();
            count++;
            table.addCell("" + rs.getInt("slno"));
            table.addCell("" + rs.getLong("book"));
            table.addCell("" + rs.getInt("quantity"));
            table.addCell("" + rs1.getFloat("price"));
            total += (rs1.getFloat("price")) * (rs.getInt("quantity"));

            //  model.addRow(new Object[]{(""+rs.getInt("slno")),""+rs.getLong("book"),""+rs.getInt("quantity")});
        }
        table.addCell("");
        table.addCell("");
        table.addCell("");
        table.addCell("" + total);
        if (count == 0) {
            // dispose();

            return;
        }

    } catch (Exception e) {
        System.out.println(" " + e + " is caught");
    }
    /*table.addCell("1.0");
    table.addCell("1.1");
    table.addCell("1.2");
    table.addCell("2.1");
    table.addCell("2.2");
    table.addCell("2.3");*/

    subCatPart.add(table);

}

From source file:bouttime.report.award.AwardInventoryReport.java

License:Open Source License

private static PdfPTable getDataTable(int[] awardCounts, int maxAward) throws DocumentException {
    Font detailFont = new Font(Font.FontFamily.TIMES_ROMAN, 10);

    // create and add the table
    PdfPTable datatable = new PdfPTable(2);
    int colWidths[] = { 90, 10 }; // percentage
    datatable.setWidths(colWidths);/* w  w w .ja v a 2 s .co m*/
    datatable.setWidthPercentage(100);
    datatable.getDefaultCell().setBorderWidth(1);
    datatable.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE);

    for (int i = 0; i < maxAward; i++) {
        if ((i % 2) == 0) {
            datatable.getDefaultCell().setGrayFill(0.9f);
        } else {
            datatable.getDefaultCell().setGrayFill(1);
        }

        String place = null;
        switch (i) {
        case 0:
            place = "1st Place";
            break;
        case 1:
            place = "2nd Place";
            break;
        case 2:
            place = "3rd Place";
            break;
        case 3:
            place = "4th Place";
            break;
        case 4:
            place = "5th Place";
            break;
        case 5:
            place = "6th Place";
            break;
        case 6:
            place = "7th Place";
            break;
        default:
            logger.warn("unexpected place value : " + i);
            place = "???";
            break;
        }

        datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
        datatable.addCell(new Phrase(place, detailFont));

        datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        datatable.addCell(new Phrase(Integer.toString(awardCounts[i]), detailFont));
    }

    datatable.setSpacingBefore(5f);
    datatable.setSpacingAfter(15f);

    return datatable;
}

From source file:bouttime.report.award.AwardReport.java

License:Open Source License

/**
 * Generate an award report./*from  ww w . jav  a2 s .c  o m*/
 * @param dao Dao object to use to retrieve data.
 * @param session Session to generate the report for.
 * @param group Group to generate report for.  This takes precedence, so
 * if not null, then the report will be generated for this group.
 * @return True if the report was generated.
 */
private static boolean doReport(Dao dao, String session, Group group) {
    if (!dao.isOpen()) {
        return false;
    }

    // step 1: creation of a document-object
    Document document = new Document();

    try {

        // step 2: creation of the writer
        FileOutputStream fos = createOutputFile();
        if (fos == null) {
            return false;
        }
        PdfWriter.getInstance(document, fos);

        // step 3: we open the document
        document.open();

        // step 4: create and add content

        // create and add the header
        Paragraph p1 = new Paragraph(new Paragraph(
                String.format("%s    %s %s, %s", dao.getName(), dao.getMonth(), dao.getDay(), dao.getYear()),
                FontFactory.getFont(FontFactory.HELVETICA, 10)));
        document.add(p1);

        Paragraph p2 = new Paragraph(
                new Paragraph("Award Report", FontFactory.getFont(FontFactory.HELVETICA, 14)));
        p2.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(p2);

        Font headerFont = new Font(Font.FontFamily.TIMES_ROMAN, 12);
        Font detailFont = new Font(Font.FontFamily.TIMES_ROMAN, 10);
        PdfPCell headerCell = new PdfPCell();
        headerCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
        headerCell.setPadding(3);
        headerCell.setBorderWidth(2);

        List<Group> groups;
        if (group != null) {
            groups = new ArrayList<Group>();
            groups.add(group);
        } else if (session != null) {
            groups = dao.getGroupsBySession(session);
        } else {
            groups = dao.getAllGroups();
        }

        for (Group g : groups) {

            // create and add the table
            PdfPTable datatable = new PdfPTable(4);
            int colWidths[] = { 30, 30, 30, 10 }; // percentage
            datatable.setWidths(colWidths);
            datatable.setWidthPercentage(100);
            datatable.getDefaultCell().setPadding(3);
            datatable.getDefaultCell().setBorderWidth(2);
            datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

            // The header has the group name
            headerCell.setPhrase(new Phrase(g.toString(), headerFont));
            headerCell.setColspan(4);
            datatable.addCell(headerCell);

            datatable.setHeaderRows(1); // this is the end of the table header

            datatable.getDefaultCell().setBorderWidth(1);
            datatable.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE);

            List<Wrestler> wList = getSortedAwardList(g);

            int i = 0;
            for (Wrestler w : wList) {
                if ((i++ % 2) == 0) {
                    datatable.getDefaultCell().setGrayFill(0.9f);
                } else {
                    datatable.getDefaultCell().setGrayFill(1);
                }

                datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
                datatable.addCell(new Phrase(w.getFirstName(), detailFont));
                datatable.addCell(new Phrase(w.getLastName(), detailFont));
                datatable.addCell(new Phrase(w.getTeamName(), detailFont));
                datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
                Integer place = w.getPlace();
                String placeStr = (place == null) ? "" : place.toString();
                datatable.addCell(new Phrase(placeStr, detailFont));
            }

            datatable.setSpacingBefore(5f);
            datatable.setSpacingAfter(15f);
            document.add(datatable);
        }

    } catch (DocumentException de) {
        logger.error("Document Exception", de);
        return false;
    }

    // step 5: we close the document
    document.close();

    return true;
}

From source file:bouttime.report.boutsequence.BoutSequenceReport.java

License:Open Source License

private static PdfPTable addBoutSequences(List<Wrestler> wList, String session) throws DocumentException {
    // create and add the table
    Font headerFont = new Font(Font.FontFamily.TIMES_ROMAN, 12);
    Font detailFont = new Font(Font.FontFamily.TIMES_ROMAN, 10);
    PdfPCell headerCell = new PdfPCell();
    headerCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
    headerCell.setPadding(3);//from  w  ww  .j  av  a2 s.  c o m
    headerCell.setBorderWidth(2);
    PdfPTable datatable = new PdfPTable(3);
    int colWidths[] = { 5, 25, 70 }; // percentage
    datatable.setWidths(colWidths);
    datatable.setWidthPercentage(100);
    datatable.getDefaultCell().setPadding(3);
    datatable.getDefaultCell().setBorderWidth(2);
    datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

    headerCell.setPhrase(new Phrase("Mat", headerFont));
    datatable.addCell(headerCell);

    headerCell.setPhrase(new Phrase("Name", headerFont));
    datatable.addCell(headerCell);

    headerCell.setPhrase(new Phrase("Bout Sequence", headerFont));
    datatable.addCell(headerCell);

    datatable.setHeaderRows(1); // this is the end of the table header

    datatable.getDefaultCell().setBorderWidth(1);
    datatable.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE);

    Collections.sort(wList, new WrestlerMatNameSort());

    int i = 0;
    for (Wrestler w : wList) {
        if (w.getGroup() == null) {
            logger.debug(String.format("Wrestler [%s] is not in a group, skipping.", w.getShortName()));
            continue;
        }

        if ((session != null) && !session.equalsIgnoreCase(w.getGroup().getSession())) {
            logger.debug(String.format("Wrestler [%s] is in a group but not in session %s, skipping.",
                    w.getShortName(), session));
            continue;
        }

        if ((i++ % 2) == 0) {
            datatable.getDefaultCell().setGrayFill(0.9f);
        } else {
            datatable.getDefaultCell().setGrayFill(1);
        }

        List<Bout> bList = BoutSequence.calculate(w);
        datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        datatable.addCell(new Phrase(w.getGroup().getMat(), detailFont));
        datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
        datatable.addCell(new Phrase(String.format("%s %s", w.getFirstName(), w.getLastName()), detailFont));
        datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
        String boutSequenceString = getBoutSequenceString(bList);
        datatable.addCell(new Phrase(boutSequenceString, detailFont));
    }

    datatable.setSpacingBefore(5f);
    datatable.setSpacingAfter(15f);
    return (i > 0 ? datatable : null);
}

From source file:bouttime.report.matkey.MatKeyReport.java

License:Open Source License

/**
 * Generate the Mat Key report./*from www  .j a  va2 s  .  com*/
 * This is a color-coded report that maps the groups to a mat.
 * @param dao Dao object to use to retrieve data.
 * @return True if the report was generated.
 */
public static boolean doReport(Dao dao) {
    if (!dao.isOpen()) {
        logger.warn("Cannot create report : DAO not open");
        return false;
    }

    String matValues = dao.getMatValues();
    if ((matValues == null) || matValues.isEmpty()) {
        JFrame mainFrame = BoutTimeApp.getApplication().getMainFrame();
        JOptionPane.showMessageDialog(mainFrame,
                "Mat values are not configured." + "\nSet the mat values in 'Edit -> Configuration'",
                "Mat Key Report error", JOptionPane.WARNING_MESSAGE);
        logger.warn("Cannot create report : mat values not configured");
        return false;
    }

    // step 1: creation of a document-object
    Document document = new Document();

    try {

        // step 2: creation of the writer
        FileOutputStream fos = createOutputFile();
        if (fos == null) {
            return false;
        }
        PdfWriter.getInstance(document, fos);

        // step 3: we open the document
        document.open();

        // step 4: create and add content

        // create and add the header
        Paragraph p1 = new Paragraph(new Paragraph(
                String.format("%s    %s %s, %s", dao.getName(), dao.getMonth(), dao.getDay(), dao.getYear()),
                FontFactory.getFont(FontFactory.HELVETICA, 10)));
        document.add(p1);

        Paragraph p2 = new Paragraph(
                new Paragraph("Mat Key Report", FontFactory.getFont(FontFactory.HELVETICA, 14)));
        p2.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(p2);

        int cols = 4; // Class, Div, Weight, Mat

        // create and add the table
        PdfPTable datatable = new PdfPTable(cols);
        //int colWidths[] = { 55, 15, 15, 15 };   // percentage
        //datatable.setWidths(colWidths);
        datatable.getDefaultCell().setPadding(3);
        datatable.getDefaultCell().setBorderWidth(2);
        datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

        datatable.addCell("Class");
        datatable.addCell("Div");
        datatable.addCell("Weight");
        datatable.addCell("Mat");
        datatable.setHeaderRows(1); // this is the end of the table header

        datatable.getDefaultCell().setBorderWidth(1);

        // Prepare the list of groups
        List<Group> groups = dao.getAllGroups();
        Collections.sort(groups, new GroupClassDivWtSort());

        // Prepare the list of mat values
        String[] mats = matValues.split(",");
        List<String> matList = new ArrayList<String>();
        for (String m : mats) {
            matList.add(m.trim());
        }

        for (Group g : groups) {
            String mat = g.getMat();
            int idx = matList.indexOf(mat);
            datatable.getDefaultCell().setBackgroundColor(colorMap.get(idx));

            datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
            datatable.addCell(g.getClassification());
            datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
            datatable.addCell(g.getAgeDivision());
            datatable.addCell(g.getWeightClass());
            datatable.addCell(g.getMat());
        }

        datatable.setSpacingBefore(15f); // space between title and table
        document.add(datatable);

    } catch (DocumentException de) {
        logger.error("Document Exception", de);
        return false;
    }

    // step 5: we close the document
    document.close();

    return true;
}

From source file:bouttime.report.team.TeamReport.java

License:Open Source License

/**
 * Generate a summary report of the teams in the tournament.
 * This report lists the teams and the number of wresters on the team.
 * @param dao Dao object to use to retrieve data.
 * @return True if the report was generated.
 *//*from  w w w.j a va 2s . c o  m*/
public static boolean doSummary(Dao dao) {
    if (!dao.isOpen()) {
        return false;
    }

    // step 1: creation of a document-object
    Document document = new Document();

    try {

        // step 2: creation of the writer
        FileOutputStream fos = createOutputFile();
        if (fos == null) {
            return false;
        }
        PdfWriter.getInstance(document, fos);

        // step 3: we open the document
        document.open();

        // step 4: create and add content

        // create and add the header
        Paragraph p1 = new Paragraph(new Paragraph(
                String.format("%s    %s %s, %s", dao.getName(), dao.getMonth(), dao.getDay(), dao.getYear()),
                FontFactory.getFont(FontFactory.HELVETICA, 10)));
        document.add(p1);

        Paragraph p2 = new Paragraph(
                new Paragraph("Team Summary Report", FontFactory.getFont(FontFactory.HELVETICA, 14)));
        p2.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(p2);

        int cols = 2; // Team name and Total
        String classVals = dao.getClassificationValues();
        String[] classes = null;
        if (classVals != null) {
            if (classVals.length() > 0) {
                classes = classVals.split(",");
                cols += classes.length;
            }
        }

        // create and add the table
        PdfPTable datatable = new PdfPTable(cols);
        //int colWidths[] = { 55, 15, 15, 15 };   // percentage
        //datatable.setWidths(colWidths);
        datatable.getDefaultCell().setPadding(3);
        datatable.getDefaultCell().setBorderWidth(2);
        datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

        datatable.addCell("Team Name");

        // Make a column for each classification value
        int[] classesTotals = null;
        if (classes != null) {
            for (String c : classes) {
                datatable.addCell(c.trim());
            }
            classesTotals = new int[classes.length];
            for (int i = 0; i < classesTotals.length; i++) {
                classesTotals[i] = 0;
            }
        }
        datatable.addCell("Total");
        datatable.setHeaderRows(1); // this is the end of the table header

        datatable.getDefaultCell().setBorderWidth(1);

        List<String> teams = dao.getTeams();

        int total = 0; // total count of all wrestlers in this method
        int i = 0;
        for (String t : teams) {
            if ((i++ % 2) == 0) {
                datatable.getDefaultCell().setGrayFill(0.9f);
            } else {
                datatable.getDefaultCell().setGrayFill(1);
            }

            List<Wrestler> wrestlers = dao.getWrestlersByTeam(t);
            int count = wrestlers.size();
            int rowTotal = 0;
            total += count;

            datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
            datatable.addCell(t);
            if (classes != null) {
                //for (String c : classes) {
                for (int idx = 0; idx < classes.length; idx++) {
                    String c = classes[idx].trim();
                    List<Wrestler> wrestlers2 = dao.getWrestlersByTeamClass(t, c);
                    datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
                    int count2 = wrestlers2.size();
                    datatable.addCell(Integer.toString(count2));
                    classesTotals[idx] += count2;
                    rowTotal += count2;
                }
            }

            datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
            datatable.addCell(Integer.toString(count));

            // Check if there is an error in the counts.
            if ((classes != null) && (rowTotal != count)) {
                JFrame mainFrame = BoutTimeApp.getApplication().getMainFrame();
                JOptionPane.showMessageDialog(mainFrame,
                        "There is an error" + " with the total count for team '" + t + "'.\n" + "This is "
                                + "most likely due to an incorrect classification value\nfor "
                                + "one or more wrestlers.",
                        "Team count error", JOptionPane.WARNING_MESSAGE);
            }
        }

        // Add totals row
        datatable.getDefaultCell().setGrayFill(0.7f);
        datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
        datatable.addCell("Total");
        datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
        if (classes != null) {
            for (int idx = 0; idx < classesTotals.length; idx++) {
                datatable.addCell(Integer.toString(classesTotals[idx]));
            }
        }

        datatable.addCell(Integer.toString(total));

        datatable.setSpacingBefore(15f);
        document.add(datatable);

    } catch (DocumentException de) {
        logger.error("Document Exception", de);
        return false;
    }

    // step 5: we close the document
    document.close();

    return true;
}

From source file:bouttime.report.team.TeamReport.java

License:Open Source License

/**
 * Generate a detail report of the teams in the tournament.
 * This report includes the teams and all of the wrestlers on the team.
 * @param dao Dao object to use to retrieve data.
 * @return True if the report was generated.
 *///from   w  ww.  ja v  a  2 s. c  o m
public static boolean doDetail(Dao dao) {
    if (!dao.isOpen()) {
        return false;
    }

    // step 1: creation of a document-object
    Document document = new Document();

    try {

        // step 2: creation of the writer
        FileOutputStream fos = createOutputFile();
        if (fos == null) {
            return false;
        }
        PdfWriter.getInstance(document, fos);

        // step 3: we open the document
        document.open();

        // step 4: create and add content

        // create and add the header
        Paragraph p1 = new Paragraph(new Paragraph(
                String.format("%s    %s %s, %s", dao.getName(), dao.getMonth(), dao.getDay(), dao.getYear()),
                FontFactory.getFont(FontFactory.HELVETICA, 10)));
        document.add(p1);

        Paragraph p2 = new Paragraph(
                new Paragraph("Team Detail Report", FontFactory.getFont(FontFactory.HELVETICA, 14)));
        p2.setAlignment(Paragraph.ALIGN_CENTER);
        document.add(p2);

        Font headerFont = new Font(Font.FontFamily.TIMES_ROMAN, 12);
        Font detailFont = new Font(Font.FontFamily.TIMES_ROMAN, 10);
        PdfPCell headerCell = new PdfPCell();
        headerCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
        headerCell.setPadding(3);
        headerCell.setBorderWidth(2);

        List<String> teams = dao.getTeams();

        for (String t : teams) {

            List<Wrestler> wrestlers = dao.getWrestlersByTeam(t);
            int count = wrestlers.size();

            // create and add the table
            PdfPTable datatable = new PdfPTable(5);
            int colWidths[] = { 30, 30, 20, 10, 10 }; // percentage
            datatable.setWidths(colWidths);
            datatable.setWidthPercentage(100);
            datatable.getDefaultCell().setPadding(3);
            datatable.getDefaultCell().setBorderWidth(2);
            datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

            // The header has the team name and the number of entries
            headerCell.setPhrase(new Phrase(t, headerFont));
            headerCell.setColspan(3);
            datatable.addCell(headerCell);

            headerCell.setPhrase(new Phrase(String.format("Entries : %d", count), headerFont));
            headerCell.setColspan(2);
            datatable.addCell(headerCell);

            datatable.setHeaderRows(1); // this is the end of the table header

            datatable.getDefaultCell().setBorderWidth(1);
            datatable.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE);

            int i = 0;
            for (Wrestler w : wrestlers) {
                if ((i++ % 2) == 0) {
                    datatable.getDefaultCell().setGrayFill(0.9f);
                } else {
                    datatable.getDefaultCell().setGrayFill(1);
                }

                datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
                datatable.addCell(new Phrase(w.getFirstName(), detailFont));
                datatable.addCell(new Phrase(w.getLastName(), detailFont));
                datatable.addCell(new Phrase(w.getClassification(), detailFont));
                datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
                datatable.addCell(new Phrase(w.getAgeDivision(), detailFont));
                datatable.addCell(new Phrase(w.getWeightClass(), detailFont));
            }

            datatable.setSpacingBefore(5f);
            datatable.setSpacingAfter(15f);
            document.add(datatable);
        }

    } catch (DocumentException de) {
        logger.error("Document Exception", de);
        return false;
    }

    // step 5: we close the document
    document.close();

    return true;
}