/** * Obtenir le contenu d'un message a partir de son ID et le stocke dans un String * * @param p_idMessage * @return */ public String getContenuFromIdForString(int p_idMessage) { String requette = "SELECT " + EnStructMailRecu.CONTENU.getNomChamp() + " FROM " + EnTable.MAIL_RECU.getNomTable() + " WHERE " + EnStructMailRecu.ID_MESSAGE.getNomChamp() + "=" + p_idMessage; return requeteFact.get1Champ(requette); }
/** * Obtenir le contenu d'un message a partir de son id et le stocke dans un File * * @param p_idMessage * @param p_pleinecran * @return le contenu sous forme de File */ public File getContenuFromIdForFile(int p_idMessage, boolean p_pleinecran) { String requette = "SELECT " + EnStructMailRecu.CONTENU.getNomChamp() + " FROM " + EnTable.MAIL_RECU.getNomTable() + " WHERE " + EnStructMailRecu.ID_MESSAGE.getNomChamp() + "=" + p_idMessage; File contenuHTML; if (p_pleinecran) { contenuHTML = new File(GestionRepertoire.RecupRepTravail() + "/tempo/contenu_p.html"); } else { contenuHTML = new File(GestionRepertoire.RecupRepTravail() + "/tempo/contenu.html"); } if (contenuHTML.exists()) { contenuHTML.delete(); } contenuHTML.deleteOnExit(); return requeteFact.writeBlobToFile(requette, contenuHTML); }
/** * Enregistre un message dans la base * * @param m */ public void createNewMessage(MlMessage m) { int idCompte = m.getIdCompte(); int idDossierStockage = m.getIdDossier(); String uidMessage = m.getUIDMessage(); String expediteur = encodeHTMLforBase(m.getExpediteur()); List<String> listeDestinataire = m.getDestinataire(); List<String> listCopy = m.getDestinataireCopy(); List<String> listCachee = m.getDestinataireCache(); File fileToBlobDestinataires = createBlobFileFromlist(listeDestinataire, "destinataire"); File fileToBlobDestCopy = createBlobFileFromlist(listCopy, "dest_copy"); File fileToBlobDestHide = createBlobFileFromlist(listCachee, "hide_dest"); String sujet = encodeHTMLforBase(m.getSujet()); String contenu = m.getContenu(); File fileToBlobContenu = createFileForBlob(contenu, "contenu"); String dateReception = RecupDate.getTimeStamp(m.getDateReception()); int tailleStringBuilder = uidMessage.length() + expediteur.length() /* + destinataires.length() */ + sujet.length() + 500; // on construit la requette StringBuilder requette = new StringBuilder(tailleStringBuilder); requette.ensureCapacity(tailleStringBuilder); requette.append("INSERT INTO " + EnTable.MAIL_RECU.getNomTable()); // requette.append("("); // requette.append(EnStructMailRecu.ID_COMPTE.getNomChamp() + ","); // requette.append(EnStructMailRecu.ID_DOSSIER.getNomChamp() + ","); // requette.append(EnStructMailRecu.UID.getNomChamp() + ","); // requette.append(EnStructMailRecu.EXPEDITEUR.getNomChamp() + ","); // requette.append(EnStructMailRecu.DEST.getNomChamp() + ","); // requette.append(EnStructMailRecu.DEST_COPY.getNomChamp() + ","); // requette.append(EnStructMailRecu.DEST_CACHE.getNomChamp() + ","); // requette.append(EnStructMailRecu.SUJET.getNomChamp() + ","); // requette.append(EnStructMailRecu.CONTENU.getNomChamp() + ","); // requette.append(EnStructMailRecu.DATE_RECEPTION.getNomChamp() + ","); // requette.append(EnStructMailRecu.STATUT.getNomChamp() + ")"); // requette.append("VALUES ("); // requette.append(idCompte + ","); // requette.append(idDossierStockage + ",'"); // requette.append(uidMessage + "','"); // requette.append(expediteur + "',"); // requette.append("?,"); // lstDest requette.append("?,"); // lstDestCC requette.append("?,'"); // lstDestBCC requette.append(sujet + "',"); requette.append("?,'"); // c'est pour le contenu qui sera stocké dans un // blob requette.append(dateReception + "',"); // if (m.isLu()) { requette.append("'T')"); } else { requette.append("'F')"); } // le status de lecture du message (F= nonlu,T=lu) // on l'execute boolean succes = requeteFact.executeRequeteWithBlob( requette.toString(), fileToBlobContenu, fileToBlobDestinataires, fileToBlobDestCopy, fileToBlobDestHide); if (succes) { // on recupere le nouvel id du message que l'on vient d'enregistrer String getMaxId = "SELECT max (" + EnStructMailRecu.ID_MESSAGE.getNomChamp() + ") FROM " + EnTable.MAIL_RECU.getNomTable(); String maxId = requeteFact.get1Champ(getMaxId); // ("l'id de message que l'on vient d'enregistrer est: " // + maxId); // lst.add(); // updateStatusLecture(lst, false); JTreeFactory treeFact = new JTreeFactory(); MlListeMessageGrille lst = new MlListeMessageGrille(); lst.add(new MlMessageGrille(Integer.parseInt(maxId))); treeFact.majUnreadCount(lst); verifEtSuppressionBlob(new File(m.getCheminPhysique())); verifEtSuppressionBlob(fileToBlobContenu); verifEtSuppressionBlob(fileToBlobDestinataires); verifEtSuppressionBlob(fileToBlobDestCopy); verifEtSuppressionBlob(fileToBlobDestHide); // on insere le contenu en base // si des pieces jointe sont presente, on enregistre leur chemin en // base avec l'id du message for (File f1 : m.getListePieceJointe()) { if (requeteFact.enregistrePieceJointe(maxId, f1)) { f1.delete(); } } } }