private PdfPTable buildProcedures(Fiche fiche) { PdfPCell cell; PdfPTable table = new PdfPTable(new float[] {1, 3, 1, 1}); table.setWidthPercentage(100); cell = new PdfPCell(new Phrase("4_ Procédures", FONT_NORMAL)); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setColspan(4); table.addCell(cell); /** Procedures */ cell = new PdfPCell(new Phrase("Catégories: ", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); boolean premiereProcedure = true; if (fiche.getProcedures() == null || fiche.getProcedures().isEmpty()) { cell = new PdfPCell(new Phrase("", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); cell = new PdfPCell(new Phrase("Numéros: ", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); cell = new PdfPCell(new Phrase("", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); } for (Procedure procedure : fiche.getProcedures()) { if (!premiereProcedure) { cell = new PdfPCell(new Phrase("", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); } cell = new PdfPCell(new Phrase(procedure.getCategorie().getLibelleLong(), FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); if (!premiereProcedure) { cell = new PdfPCell(new Phrase("", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); } else { cell = new PdfPCell(new Phrase("Numéros: ", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); premiereProcedure = false; } cell = new PdfPCell(new Phrase(procedure.getNumero(), FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); } table.setSpacingBefore(5); table.setSpacingAfter(5); return table; }
private PdfPTable buildTable(List<Fiche> fiches) throws DocumentException { PdfPTable table = new PdfPTable(9); table.setWidthPercentage(100); int[] widths = {14, 8, 28, 15, 20, 30, 30, 13, 33}; table.setWidths(widths); table.setHeaderRows(1); PdfPCell cell = new PdfPCell(new Phrase("N° Fiche", FONT_NORMAL)); cell.setFixedHeight(40); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); table.addCell(cell); cell = new PdfPCell(new Phrase("Heure", FONT_NORMAL)); cell.setFixedHeight(40); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); table.addCell(cell); cell = new PdfPCell(new Phrase("Nature des faits et nombre", FONT_NORMAL)); cell.setFixedHeight(40); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); table.addCell(cell); cell = new PdfPCell(new Phrase("Equipages", FONT_NORMAL)); cell.setFixedHeight(40); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); table.addCell(cell); cell = new PdfPCell(new Phrase("Quartier", FONT_NORMAL)); cell.setFixedHeight(40); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); table.addCell(cell); cell = new PdfPCell(new Phrase("Lieu", FONT_NORMAL)); cell.setFixedHeight(40); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); table.addCell(cell); cell = new PdfPCell(new Phrase("Personnes concernées", FONT_NORMAL)); cell.setFixedHeight(40); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); table.addCell(cell); cell = new PdfPCell(new Phrase("Procédures", FONT_NORMAL)); cell.setFixedHeight(40); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); table.addCell(cell); cell = new PdfPCell(new Phrase("Situation initiale", FONT_NORMAL)); cell.setFixedHeight(40); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_MIDDLE); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); table.addCell(cell); SimpleDateFormat hf = new SimpleDateFormat("HH:mm"); SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy"); DateTime currentDate = null; boolean addRowDate; for (Fiche f : fiches) { Historique creation = f.getHistoriques().iterator().next(); // Check if we need a new row to display the day addRowDate = false; if (currentDate == null) { currentDate = new DateTime(creation.getDateAction()); addRowDate = true; } else { DateTime lastDate = new DateTime(creation.getDateAction()); if (currentDate.getDayOfYear() != lastDate.getDayOfYear()) { currentDate = lastDate; addRowDate = true; } } if (addRowDate) { cell = new PdfPCell(new Phrase(df.format(currentDate.toDate()), FONT_NORMAL)); cell.setColspan(9); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); table.addCell(cell); } // N° Fiche cell = new PdfPCell(new Phrase(f.getReference(), FONT_NORMAL)); table.addCell(cell); // Heure d'arrivée #31569 cell = f.getGdhAppel() != null ? new PdfPCell(new Phrase(hf.format(f.getGdhAppel()), FONT_NORMAL)) : new PdfPCell(); cell.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(cell); // Faits StringBuilder sb = new StringBuilder(); boolean first = true; for (Fait fa : f.getFaits()) { if (first) { first = false; } else { sb.append("\n"); } sb.append(fa.getNombre()).append(" ").append(fa.getNature().getLibelleLong()); } cell = new PdfPCell(new Phrase(sb.toString(), FONT_NORMAL)); table.addCell(cell); // Equipages sb = new StringBuilder(); first = true; for (Patrouille pa : f.getPatrouilles()) { if (first) { first = false; } else { sb.append("\n"); } sb.append(pa.getIndicatif().getLibelleLong()); } cell = new PdfPCell(new Phrase(sb.toString(), FONT_NORMAL)); table.addCell(cell); // Quartier cell = new PdfPCell(new Phrase(f.getAdresse().getQuartier().getLibelle(), FONT_NORMAL)); table.addCell(cell); // Lieu cell = new PdfPCell( new Phrase( f.getAdresse().getNumeroVoie() + " " + f.getAdresse().getNomVoie().getLibelle(), FONT_NORMAL)); table.addCell(cell); // Personnes sb = new StringBuilder(); first = true; for (Personne pe : f.getPersonnes()) { if (first) { first = false; } else { sb.append("\n"); } sb.append(pe.getCategorie().getLibelleLong()) .append(" : ") .append(StringUtils.isEmpty(pe.getNom()) ? "-" : pe.getNom()); } cell = new PdfPCell(new Phrase(sb.toString(), FONT_NORMAL)); table.addCell(cell); // Procedures sb = new StringBuilder(); first = true; for (Procedure pr : f.getProcedures()) { if (first) { first = false; } else { sb.append("\n"); } sb.append(pr.getCategorie().getLibelleCourt()).append(" - ").append(pr.getNumero()); } cell = new PdfPCell(new Phrase(sb.toString(), FONT_NORMAL)); table.addCell(cell); // Titre de la situation initiale cell = new PdfPCell( new Phrase(FicheEventReportHelper.construitLibelleSituationInitiale(f), FONT_NORMAL)); table.addCell(cell); } return table; }