private PdfPTable buildSaisine(Fiche fiche) { PdfPCell cell; PdfPTable table = new PdfPTable(new float[] {1, 2.6f, 1.2f, 1.2f}); table.setWidthPercentage(100); cell = new PdfPCell(new Phrase("1_ Saisine ", FONT_NORMAL)); cell.setBackgroundColor(BaseColor.LIGHT_GRAY); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setColspan(4); table.addCell(cell); cell = new PdfPCell(new Phrase("Agent Créateur: ", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); Agent a = fiche.getHistoriques().iterator().next().getUtilisateur().getAgent(); cell = new PdfPCell(new Phrase(a.getNom() + " " + a.getPrenom(), FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setColspan(3); table.addCell(cell); cell = new PdfPCell(new Phrase("Cat. saisine: ", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); String catSaisine = fiche.getCategorieSaisine().getLibelleLong(); cell = new PdfPCell(new Phrase(catSaisine, FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); cell = new PdfPCell(new Phrase("Contact interpolice: ", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); String contactInterpolice = fiche.getContactInterpolice().getLibelleLong(); cell = new PdfPCell(new Phrase(contactInterpolice, FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); table.addCell(cell); cell = new PdfPCell(new Phrase("Equipages: ", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); boolean premierePatrouille = true; if (fiche.getPatrouilles() == null || fiche.getPatrouilles().isEmpty()) { cell = new PdfPCell(new Phrase("", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setColspan(3); table.addCell(cell); } for (Patrouille patrouille : fiche.getPatrouilles()) { if (!premierePatrouille) { cell = new PdfPCell(new Phrase("", FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_RIGHT); cell.setBorder(0); table.addCell(cell); } else { premierePatrouille = false; } String libelleEquipage = patrouille.getIndicatif().getLibelleLong(); libelleEquipage = libelleEquipage.concat(" : "); if (patrouille.getAgents() != null && patrouille.getAgents().size() > 0) { int cpt = 1; for (Agent agentPatrouille : patrouille.getAgents()) { libelleEquipage = libelleEquipage.concat(agentPatrouille.getNom() + " " + agentPatrouille.getPrenom()); if (cpt != patrouille.getAgents().size()) { libelleEquipage = libelleEquipage.concat(", "); cpt++; } } } cell = new PdfPCell(new Phrase(libelleEquipage, FONT_NORMAL)); cell.setHorizontalAlignment(Element.ALIGN_LEFT); cell.setColspan(2); table.addCell(cell); String vehicule = ""; if (patrouille.getVehicule() != null) { vehicule = patrouille.getVehicule().getImmatriculation(); } cell = new PdfPCell(new Phrase(vehicule, 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; }