private PdfPTable buildPersonnes(Fiche fiche) { PdfPCell cell; PdfPTable table = new PdfPTable(new float[] {1, 1.5f, 2.5f, 1}); table.setWidthPercentage(100); cell = new PdfPCell(new Phrase("3_ Personnes concernées", FONT_NORMAL)); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setColspan(4); table.addCell(cell); /** Appelants */ cell = new PdfPCell(new Phrase("Requérants: ", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); boolean premierAppelant = true; if (fiche.getAppelants() == null || fiche.getAppelants().isEmpty()) { cell = new PdfPCell(new Phrase("", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setColspan(2); table.addCell(cell); cell = new PdfPCell(new Phrase("", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); } for (Appelant appelant : fiche.getAppelants()) { if (!premierAppelant) { cell = new PdfPCell(new Phrase("", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); } else { premierAppelant = false; } cell = new PdfPCell(new Phrase(appelant.getRequerant(), FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setColspan(2); table.addCell(cell); cell = new PdfPCell(new Phrase(appelant.getNumero(), FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); } /** Personnes */ cell = new PdfPCell(new Phrase("Personnes: ", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); boolean premierePersonne = true; if (fiche.getPersonnes() == null || fiche.getPersonnes().isEmpty()) { cell = new PdfPCell(new Phrase("", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); cell = new PdfPCell(new Phrase("", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setColspan(2); table.addCell(cell); } for (Personne personne : fiche.getPersonnes()) { if (!premierePersonne) { cell = new PdfPCell(new Phrase("", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); } else { premierePersonne = false; } cell = new PdfPCell( new Phrase( (personne.getNombre() == null ? "" : (personne.getNombre() + " - ")) + personne.getCategorie().getLibelleLong(), FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); String nomAvecDetails = personne.getNom(); if (StringUtils.isNotBlank(personne.getDetails())) { nomAvecDetails += " - " + personne.getDetails(); } cell = new PdfPCell(new Phrase(nomAvecDetails, FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setColspan(2); 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; }