package AnalyseCalc; import java.io.BufferedWriter; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.Map.Entry; import java.util.TreeMap; import AnalyseCalc.Classeur2.feuille.colonne; import AnalyseCalc.Classeur2.feuille.graphic; import AnalyseCalc.Classeur2.feuille.ligne; import AnalyseCalc.Classeur2.feuille.ligne.cellule; import calc.commandes; import nodeAC.Ecriture; import nodeAC.Ecriture.typeFichier; import nodeAC.LecturesDossiers; import nodeAC.constructionNodeAvecString; import nodeAC.nodeAC; /** * Cette class permet de lire les feuilles de calcul de libreOffice Calc * @author Pablo * */ public class Classeur2 { private int NbreFeuille=0; private String Initial_Creator =""; private String auteur =""; private String dateCreation = ""; private String dateModification = ""; private String producteur=""; private TreeMap Feuilles = new TreeMap(); private String metaSujet=""; private String metaSujetContent=""; private static int nbmodification = 2000; private static int nbcopier = 100; private static boolean verification= true; private static String analyse = "dossier"; public historique Histo = new historique(); private String communication=""; private String link=""; private String link2=""; private String linktitle=""; private String linktitle2=""; private String title=""; private TreeMap nommageCellules = new TreeMap(); public modification Modif = new modification(); /** * Création des feuilles du classeur * @param nod : nodeAC permettant de rechercher les feuilles "table:table" * @throws CloneNotSupportedException * @throws IOException */ public Classeur2(nodeAC nod, Integer indexStudent, typeFichier type) throws CloneNotSupportedException, IOException { if(type.equals(Ecriture.typeFichier.fichier_analyse)) { if(nod.getAttributs().get("bareme")!=null)calc.commandes.analyse_bareme = Double.valueOf(nod.getAttributs().get("bareme")); if(nod.getAttributs().get("version")!=null)calc.commandes.version = nod.getAttributs().get("version"); if(nod.getAttributs().get("controleDateCreation")!=null)calc.commandes.analyse_controleDateCreation = Boolean.valueOf(nod.getAttributs().get("controleDateCreation")); if(nod.getAttributs().get("presenceMetaSujet")!=null)calc.commandes.analyse_presenceMetaSujet = Boolean.valueOf(nod.getAttributs().get("presenceMetaSujet")); if(nod.getAttributs().get("dateModification")!=null)calc.commandes.analyse_date = nod.getAttributs().get("dateModification"); if(nod.getAttributs().get("NbreFeuille")!=null) calc.commandes.analysis_nbr_feuilles = Integer.valueOf(nod.getAttributs().get("NbreFeuille")); if(nod.getAttributs().get("auteur")!=null) calc.commandes.analyse_auteur = nod.getAttributs().get("auteur"); if(nod.getAttributs().get("baremeABC")!=null) calc.commandes.analyse_baremeABC = Boolean.valueOf(nod.getAttributs().get("baremeABC")); if(nod.getAttributs().get("controle_Initial_Creator")!=null) calc.commandes.analyse_controle_Initial_Creator = Boolean.valueOf(nod.getAttributs().get("controle_Initial_Creator")); if(nod.getAttributs().get("historiquePresent")!=null) calc.commandes.analyse_historiquePresent = Boolean.valueOf(nod.getAttributs().get("historiquePresent")); if(nod.getAttributs().get("titre")!=null) calc.commandes.analyse_titre = nod.getAttributs().get("titre"); if(nod.getAttributs().get("filename")!=null) calc.commandes.analysis_filename = nod.getAttributs().get("filename"); if(nod.getAttributs().get("producteur")!=null) calc.commandes.analysis_producteur= nod.getAttributs().get("producteur"); if(nod.getAttributs().get("hash")!=null) calc.commandes.hash = nod.getAttributs().get("hash"); } //Les meta-données pour tous les classeurs analyse et students nodeAC nMeta = nod.retourneFirstEnfantsByName("office:meta"); if(nMeta!=null) { nodeAC n = nMeta.retourneFirstEnfantsByName("meta:creation-date"); if(n!=null) { dateCreation = n.getContenu().get(0); if(type.equals(Ecriture.typeFichier.fichier_analyse)) { calc.commandes.analyse_creationDate = dateCreation; } } n = nMeta.retourneFirstEnfantsByName("dc:date"); if(n!=null) { dateModification = n.getContenu().get(0); if(type.equals(Ecriture.typeFichier.fichier_analyse)) { calc.commandes.analyse_date = dateModification; } } n = nMeta.retourneFirstEnfantsByName("meta:initial-creator"); if(n!=null) { Initial_Creator = n.getContenu().get(0); if(type.equals(Ecriture.typeFichier.fichier_analyse)) { calc.commandes.analyse_Initial_Creator = Initial_Creator; } } n = nMeta.retourneFirstEnfantsByName("dc:creator"); if(n!=null) { auteur=n.getContenu().get(0); if(type.equals(Ecriture.typeFichier.fichier_analyse)) { calc.commandes.analyse_auteur = auteur; } } n = nMeta.retourneFirstEnfantsByName("meta:generator"); if(n!=null) { producteur=n.getContenu().get(0); if(type.equals(Ecriture.typeFichier.fichier_analyse)) { calc.commandes.analysis_producteur = producteur; } } } nodeAC n = nod.retourneFirstEnfantsByName("meta:user-defined"); if(n!=null) { if(n.getAttributs().get("meta:name").equalsIgnoreCase("sujet")) { metaSujet = n.getAttributs().get("meta:name"); if(type.equals(Ecriture.typeFichier.fichier_analyse)) { calc.commandes.analyse_metaSujet=metaSujet; } metaSujetContent = n.retourneLesContenusEnfants(""); } } // historique // ArrayList histo = a.XMLName(a.getEC().getListeHistoriqueTableur().get(indexStudent), "table:cell-content-change"); // Histo.addhistorique(histo,a, indexStudent); //feuilles. A partir des feuilles -> en partie lignes, cellules ArrayList feuilles = nod.retourneListEnfantsByName("table:table"); NbreFeuille = feuilles.size(); if(type.equals(Ecriture.typeFichier.fichier_analyse)) commandes.analysis_nbr_feuilles = NbreFeuille; for(int i = 0 ; i nommage = nod.retourneListEnfantsByName("table:named-expressions"); if(nommage.size()>0) { for(int i=0;i getFeuilles() { return Feuilles; } /** * Obtient le nombre de modification maximale * @return */ public static int getNbmodification() { return nbmodification; } /** * Modifier le nombre de modifications maximale * @param nbmodification */ public static void setNbmodification(int nbmodification) { Classeur2.nbmodification = nbmodification; } /** * Obtient le nombre de copier maximale * @return */ public static int getNbcopier() { return nbcopier; } /** * Modifier le nombre de copier maximale * @param nbcopier */ public static void setNbcopier(int nbcopier) { Classeur2.nbcopier = nbcopier; } /** * La verification du fichier * @return */ public boolean isVerification() { return verification; } /** * Modifier la verification du fichier * @param verification */ public void setVerification(boolean verification) { this.verification = verification; } /** * Retour le commentaire sur ce classeur * @return */ public String getCommunication() { return communication; } /** * lien vers une vidéo ou vers un support de cours * @return */ public String getLink() { return link; } /** * retourne le titre du lien * @return */ public String getLinktitle() { return linktitle; } /** * retourne le titre du commentaire * @return */ public String getTitle() { return title; } /** * retourne le lien 2 * @return */ public String getLink2() { return link2; } /** * retourne le titre du lien 2 * @return */ public String getLinktitle2() { return linktitle2; } /** * retourne le nommage des cellules * @return */ public TreeMap getNommageCellules() { return nommageCellules; } /** * Retourne une feuille en fonction de sont nom * @param nameFeuille * @return */ public feuille retourneFeuilleByName(String nameFeuille) { for(int i = 0 ; i < this.Feuilles.size();i++) { if(Feuilles.get(i).getNomFeuille().equalsIgnoreCase(nameFeuille)) { return Feuilles.get(i); } } return null; } /** * Historique * @author Pablo * */ public class historique{ boolean empty = true; private TreeMap dateModificationId = new TreeMap(); private HashMap IdModifications = new HashMap(); ArrayList ListeIdSimultane = new ArrayList(); ArrayList ListeRefSimultane = new ArrayList(); int NombreCopierColler = 0; boolean Triche = false; boolean TropModifications = false; boolean TropCopier= false; String Resultat=""; public historique() { } public void addhistorique(ArrayList hist, Integer indexStudent ) { LocalDateTime datetime1 = LocalDateTime.of(2017, 1, 14, 10, 34); ZonedDateTime zonedDateTime = null; long L1 = 0; if(hist.size()>0) empty=false; for(int i = 0 ; i < hist.size();i++) { String id = hist.get(i).getAttributs().get("table:id"); String col = (hist.get(i).retourneFirstEnfantsByName("table:cell-address").getAttributs().get("table:column")); String lig = (hist.get(i).retourneFirstEnfantsByName("table:cell-address").getAttributs().get("table:row")); String tab = (hist.get(i).retourneFirstEnfantsByName("table:cell-address").getAttributs().get("table:table")); String aut = (hist.get(i).retourneFirstEnfantsByName("dc:creator").getContenu().get(0)); String dat = (hist.get(i).retourneFirstEnfantsByName("dc:date").getContenu().get(0)); String ref = "tab"+tab+"Col"+col+"Lig"+lig+"-"; nodeAC c = hist.get(i).retourneFirstEnfantsByName("table:previous"); String idprevious = c.getAttributs().get("table:id"); nodeAC d = hist.get(i).retourneFirstEnfantsByName("table:change-track-table-cell"); String previousvalue = d.getAttributs().get("office:value"); String previousformula = d.getAttributs().get("table:formula"); String previousadress = d.getAttributs().get("table:cell-address"); L1=0; if(dat!=null) if(id!=null) { datetime1 = LocalDateTime.parse(dat); zonedDateTime = ZonedDateTime.of(datetime1, ZoneId.systemDefault()); L1 = zonedDateTime.toInstant().toEpochMilli(); if(L1!=0) { if(dateModificationId.get(L1)!=null) { dateModificationId.put(L1, id+ " " +dateModificationId.get(L1)); }else { dateModificationId.put(L1, id); } } } nodeAC e= new nodeAC(); e.getAttributs().put("Id", id); e.getAttributs().put("ref", ref); e.getAttributs().put("aut", aut); e.getAttributs().put("dat", dat); e.getAttributs().put("datlong", String.valueOf(L1)); if(idprevious!=null) e.getAttributs().put("idprevious", idprevious); if(previousvalue!=null) e.getAttributs().put("previousvalue", previousvalue); if(previousformula!=null) e.getAttributs().put("previousformula", previousformula); if(previousadress!=null) e.getAttributs().put("previousadress", previousadress); IdModifications.put(id, e); } if(IdModifications.size()>nbmodification) TropModifications=true; NombreCopierColler = getNombreDeCopierColler(); } public int getNombretotaldeModification(){ return IdModifications.size(); } /** * * @return */ private int getNombreDeCopierColler() { int compteur = 0; long L = 0 ; String newListe = ""; String ref = ""; for(Entry j : dateModificationId.entrySet() ) { if(j.getKey()> L+10) { // regroupe avec un intervalle de temps de 100 ms if(newListe.split(" ").length>1 && !newListe.isEmpty()) { compteur++; ListeIdSimultane.add(newListe); //liste des identifiants modifications simultanés ListeRefSimultane.add(ref); } newListe=""; ref=""; } L=j.getKey(); if(newListe.isEmpty()) { newListe = j.getValue(); }else { newListe = newListe+ " " + j.getValue(); } String ListId[] = j.getValue().split(" "); for(int i = 0 ; i < ListId.length; i++) { String ref1 = IdModifications.get(ListId[i]).getAttributs().get("ref"); if(!ref.contains(ref1)) ref = ref + ref1; } } if(compteur>nbcopier) TropCopier = true; return compteur; } /** * * @param S * @return */ public String getCopierCollerInterdit(Classeur2 S) { for(int i = 0 ; i < ListeRefSimultane.size() ; i++) { String a = ListeRefSimultane.get(i); for(Entry j : S.Modif.getModif().entrySet()) { String ListeRef[] = j.getValue().split(" "); for(int k = 0 ; k < ListeRef.length; k++) { if(!ListeRef[k].isEmpty() && a.contains(ListeRef[k]) && !Resultat.contains(j.getKey())) { Resultat = Resultat + j.getKey() + " "; } } } } if(!Resultat.isEmpty()) Triche=true; return Resultat; } public boolean isEmpty() { return empty; } public TreeMap getDateModificationId() { return dateModificationId; } public HashMap getIdModifications() { return IdModifications; } public int getNombreCopierColler() { return NombreCopierColler; } public boolean isTriche() { return Triche; } public boolean isTropModifications() { return TropModifications; } public boolean isTropCopier() { return TropCopier; } } /** * Permet de vérifier les modifications interdites * @author pabr6 * */ public class modification{ TreeMap modif = new TreeMap(); TreeMap message = new TreeMap(); public modification() { } public void addModification(nodeAC N) { String value =""; String Id = N.getAttributs().get("id"); for(int j = 0 ; j < N.getNodes().size();j++) { String ref = " tab"+ N.getNodes().get(j).getAttributs().get("table:table")+"Col"+N.getNodes().get(j).getAttributs().get("table:column")+"Lig"+N.getNodes().get(j).getAttributs().get("table:row")+"-"; value = value + ref; message.put(ref,N.getNodes().get(j).getAttributs().get("message")); } modif.put(Id, value); } public TreeMap getModif() { return modif; } public void setModif(TreeMap modif) { this.modif = modif; } public TreeMap getMessage() { return message; } public void setMessage(TreeMap message) { this.message = message; } } /******************************************************* * Class feuille * @author Pablo * *******************************************************/ public class feuille { private String nomFeuille; private String Poids= "1"; private String styleLigne ; private String evaluer = "false"; private String communication =""; private String link =""; private String linktitle =""; private TreeMap colonnes = new TreeMap(); private TreeMap lignes = new TreeMap(); private TreeMap graphics = new TreeMap(); private TreeMap nommageCellulesFeuille = new TreeMap(); /** * Chargement du sujet * @param fe */ public feuille(nodeAC fe) { // chargement du sujet if(fe.getAttributs().get("nomFeuille")!=null) nomFeuille=fe.getAttributs().get("nomFeuille"); if(fe.getAttributs().get("styleLigne")!=null) styleLigne=fe.getAttributs().get("styleLigne"); if(fe.getAttributs().get("Poids")!=null) Poids=fe.getAttributs().get("Poids"); if(fe.getAttributs().get("evaluer")!=null) evaluer=fe.getAttributs().get("evaluer"); if(fe.getAttributs().get("link")!=null) link=fe.getAttributs().get("link"); if(fe.getAttributs().get("linktitle")!=null) linktitle=fe.getAttributs().get("linktitle"); nodeAC comm = fe.retourneFirstEnfantsByName("communication"); if(!comm.isVide()) communication=comm.getContenu().get(0); //nommage for (Entry j : nommageCellules.entrySet()) { nommageCellulesFeuille.put(j.getKey(), j.getValue()); } ArrayList noms = fe.retourneListEnfantsByName("nommagecellulesfeuille"); for(int i=0; i < noms.size();i++) { nommageCellulesFeuille.put(noms.get(i).getAttributs().get("name"),noms.get(i).getAttributs().get("cells")); } //colonnes chargement sujet ArrayList nods= fe.retourneListEnfantsByName("colonne"); for(int i = 0 ; i < nods.size();i++) { colonnes.put( i , new colonne(nods.get(i),nods.get(i).getAttributs().get("RefColonne"))); } nods.clear(); //lignes chargement sujet nods= fe.retourneListEnfantsByName("ligne"); for(int i=0 ; i < nods.size();i++) { lignes.put(i, new ligne(nods.get(i), nods.get(i).getAttributs().get("RefLigne"))); } //graphics chargement sujet nods= fe.retourneListEnfantsByName("graphic"); for(int i=0 ; i < nods.size();i++) { graphics.put(i, new graphic(nods.get(i))); } } /** * Chargement d'une nouvelle feuille depuis le classeur * @param fe * @param XMLContent * @param a * @throws IOException */ public feuille(nodeAC fe, nodeAC nod, Integer indexStudent) throws IOException { //Ajoute des variables pour l'évaluation fe.getAttributs().put("poids","1"); fe.getAttributs().put("evaluer","false"); //Variable de nommage // for (Entry j : nommageCellules.entrySet()) { // nommageCellulesFeuille.put(j.getKey(), j.getValue()); // } ArrayList nommage = fe.retourneListEnfantsByName("table:named-expressions"); if(nommage.size()>0) { nommage = nommage.get(0).getNodes(); for(int i=0;i nods = fe.retourneListEnfantsByName("table:table-column"); System.out.println("Nbre de colonne = " + nods.size()); //int numCol = 0; int numRepeated = 0; for(int i = 0 ; i < nods.size();i++) { if(i>0) if(nods.get(i-1).getAttributs().get("table:number-columns-repeated")!=null) { numRepeated=numRepeated+Integer.valueOf(nods.get(i-1).getAttributs().get("table:number-columns-repeated"))-1; } //numCol++; colonnes.put( i , new colonne(nods.get(i),String.valueOf(i+1+numRepeated),nod)); } //lignes chargement nods=fe.retourneListEnfantsByName("table:table-row"); System.out.println("Nbre de ligne = " + nods.size()); int nombreRepetitionLigne = 0; for(int i=0 ; i < nods.size();i++) { if(i>0) if(lignes.get(i-1).getPropertiesRow().get("Repetition")!=null) { if(lignes.get(i-1).getPropertiesRow().get("Repetition")!=null) nombreRepetitionLigne = nombreRepetitionLigne + Integer.valueOf(lignes.get(i-1).getPropertiesRow().get("Repetition"))-1; } lignes.put(i, new ligne(nods.get(i),String.valueOf(i+1+nombreRepetitionLigne),nod, indexStudent)); } //graphics ancrer à la feuille chargement nodeAC LesGraphics = fe.retourneFirstEnfantsByName("table:shapes"); if(LesGraphics!=null) { ArrayList A = LesGraphics.retourneListEnfantsByName("draw:frame"); System.out.println("Nbr de graphique = " + A.size()); for(int i = 0 ; i < A.size();i++) { graphics.put(i, new graphic(A.get(i), nod, indexStudent)); } }else { System.out.println("Il n'y a pas de graphique"); } } /** * Obtient le poids de la feuille * @return */ public String getPoids() { return Poids; } /** * Obient evaluer * @return */ public String getEvaluer() { return evaluer; } /** * Obtient le nom de la feuille * @return */ public String getNomFeuille() { return nomFeuille; } /** * Modifie le nom de la feuille * @param nomFeuille */ public void setNomFeuille(String nomFeuille) { this.nomFeuille = nomFeuille; } /** * Obtient le style de la feuille * @return */ public String getStyleLigne() { return styleLigne; } /** * Modifie le style de la feuille * @param style */ public void setStyleLigne(String style) { this.styleLigne = style; } public TreeMap getColonnes() { return colonnes; } public TreeMap getLignes() { return lignes; } public TreeMap getGraphics() { return graphics; } /** * Retourne la communication sur cette feuille * @return */ public String getCommunication() { return communication; } /** * retourne le lien * @return */ public String getLink() { return link; } /** * retourne le titre du lien * @return */ public String getLinktitle() { return linktitle; } /** * Retourne une cellule en fonction du numéro de la colonne et du numéro de la ligne * @param RefCol * @param NumLigne */ public AnalyseCalc.Classeur2.feuille.ligne.cellule retourneCellule(Integer NumCol, Integer NumLigne) { ligne lig = null; for(int i =0 ; i < this.lignes.size();i++) { if(Integer.valueOf(this.lignes.get(i).getRefLigne())==NumLigne) { lig = this.lignes.get(i); break; } if(Integer.valueOf(this.lignes.get(i).getRefLigne())>NumLigne) { lig = this.lignes.get(i-1); break; } } if(lig!=null) { for(int i = 0 ; i < lig.getCellules().size(); i ++) { if(Integer.valueOf(lig.getCellules().get(i).getRefColonne())==NumCol) { return lig.getCellules().get(i); } if(Integer.valueOf(lig.getCellules().get(i).getRefColonne())>NumCol) { cellule cel = null; if(i>0) {cel = lig.getCellules().get(i-1);} else {cel = lig.getCellules().get(i);} colonne colcel = retourneColonne(String.valueOf(NumCol)); if(colcel!=null) { cel.setRefColonne(colcel.getRefColonne()); cel.setRefColDansClasseur(colcel.getRefColDansClasseur()); cel.getPropertiesCell().put("LargeurColonne", colcel.propertiesColumn.get("LargeurColonne")); return cel; }else { return cel; } } if(i==lig.getCellules().size()-1) { cellule cel = lig.getCellules().get(lig.getCellules().size()-1); if(Integer.valueOf(cel.getRefColonne())==NumCol) { return cel; }else { colonne colcel = retourneColonne(String.valueOf(NumCol)); if(colcel!=null) { cel.setRefColonne(colcel.getRefColonne()); cel.setRefColDansClasseur(colcel.getRefColDansClasseur()); cel.getPropertiesCell().put("LargeurColonne", colcel.propertiesColumn.get("LargeurColonne")); return cel; }else { return cel; } } } } } return null; } public TreeMap getNommageCellulesFeuille() { return nommageCellulesFeuille; } /** * Retourne une cellule en fonction de la référence de la colonne et du numéro de la ligne * @param RefCol * @param NumLigne * @return */ public AnalyseCalc.Classeur2.feuille.ligne.cellule retourneCellule(String Ref, Integer NumLigne) { ligne lig = null; int NumCol = ConvertirRefColonne(Ref); for(int i =0 ; i < this.lignes.size();i++) { if(Integer.valueOf(this.lignes.get(i).getRefLigne())==NumLigne) { lig = this.lignes.get(i); break; } if(Integer.valueOf(this.lignes.get(i).getRefLigne())>NumLigne) { lig = this.lignes.get(i-1); break; } } for(int i = 0 ; i < lig.getCellules().size(); i ++) { if(Integer.valueOf(lig.getCellules().get(i).getRefColonne())==NumCol) { return lig.getCellules().get(i); } if(Integer.valueOf(lig.getCellules().get(i).getRefColonne())>NumCol) { return lig.getCellules().get(i-1); } if(i==lig.getCellules().size()-1) { return lig.getCellules().get(lig.getCellules().size()-1); } } return null; } /** * Obtient la ligne en fonction de la référence de la ligne */ public ligne retourneLigne(String RefLigne) { for(int i = 0 ; i < lignes.size();i++) { if(lignes.get(i).getRefLigne().equals(RefLigne)) return lignes.get(i); if(Integer.valueOf(lignes.get(i).getRefLigne())>Integer.valueOf(RefLigne)) return lignes.get(i-1); } return null; } /** * Obtient la colonne en fonction de la référence de la colonne */ public colonne retourneColonne(String RefC) { int refColumn = Integer.valueOf(RefC); int numColonne = 0; for(int i = 0 ; i < colonnes.size();i++) { if(colonnes.get(i).getRefColonne().equals(RefC)) return colonnes.get(i); if(Integer.valueOf(colonnes.get(i).getRefColonne())NumLigne) { return this.lignes.get(i-1); } } return null; } /** * Retourne la nouvelle référence de la colonne sous forme d'un entier * @param RefCol * @return */ public Integer ConvertirRefColonne(String RefCol) { RefCol = RefCol.toUpperCase(); int ascii1 = 0; int ascii2 = 0; int ascii3 = 0; int longAlphabet = 26; int newRefCol = 0; char c1 = RefCol.charAt(0); char c2 = RefCol.charAt(0); char c3 = RefCol.charAt(0); if(RefCol.length()==1) { c1 = RefCol.charAt(0); ascii1 = c1; newRefCol = (ascii1 - 64); } if(RefCol.length()==2) { c1 = RefCol.charAt(1); c2 = RefCol.charAt(0); ascii1 = c1; ascii2 = c2; newRefCol = (ascii1 - 64) + (ascii2-64)*longAlphabet ; } if(RefCol.length()==3) { c1 = RefCol.charAt(2); c2 = RefCol.charAt(1); c3 = RefCol.charAt(0); ascii1 = c1; ascii2 = c2; ascii3 = c3; newRefCol = (ascii1 - 64) + (ascii2-64)*longAlphabet + (ascii3-64)*longAlphabet*longAlphabet ; } return newRefCol; } /** * Convertir une référence numérique en référence alphabetique * @param numCol * @return */ public String ConvertirNumColonneEnString(Integer numCol) { int nbreAlphabet1 = numCol / 26; int reste = numCol % 26; int nbreAlphabet2 = 0; if(reste==0) nbreAlphabet1= nbreAlphabet1-1; if(nbreAlphabet1>26) { nbreAlphabet1 = (numCol /26) - 26; nbreAlphabet2 = (numCol /26) / 26; if(nbreAlphabet1==0) nbreAlphabet2 = nbreAlphabet2-1; } char C1 = "Z".charAt(0); char C2 = "Z".charAt(0); char C3 = "Z".charAt(0); if(reste!=0) C1 = (char) (reste + 64); if(nbreAlphabet1!=0) C2 = (char) (nbreAlphabet1 + 64); if(nbreAlphabet2!=0) C3 = (char) (nbreAlphabet2 + 64); if(nbreAlphabet1==0 && nbreAlphabet2==0) return String.valueOf(C1); if(nbreAlphabet1>0 && nbreAlphabet1<27 && nbreAlphabet2==0) return String.valueOf(C2)+ String.valueOf(C1); if(nbreAlphabet2>0) return String.valueOf(C3)+ String.valueOf(C2)+ String.valueOf(C1); return null; } /****************************************************************** * Class colonne * @author Pablo * ******************************************************************/ public class colonne{ private String RefColonne = ""; private String RefColDansClasseur=""; private TreeMap propertiesColumn = new TreeMap(); /** * Chargement du sujet * @param col * @param numColonne */ public colonne(nodeAC col, String numColonne) { RefColonne=numColonne; RefColDansClasseur = ConvertirNumColonneEnString(Integer.valueOf(RefColonne)); if (col.getAttributs().get("LargeurColonne")!=null) propertiesColumn.put("LargeurColonne", col.getAttributs().get("LargeurColonne")); if (col.getAttributs().get("Style")!=null) propertiesColumn.put("Style", col.getAttributs().get("Style")); if (col.getAttributs().get("StyleDefautCell")!=null) propertiesColumn.put("StyleDefautCell", col.getAttributs().get("StyleDefautCell")); if (col.getAttributs().get("Repetition")!=null) propertiesColumn.put("Repetition", col.getAttributs().get("Repetition")); if (col.getAttributs().get("Visible")!=null) propertiesColumn.put("Visible", col.getAttributs().get("Visible")); } /** * Chargement d'un nouvelle colonne * @param col * @param numColonne * @param XMLContent * @param a */ public colonne(nodeAC col, String numColonne, nodeAC nod) { RefColonne = numColonne; RefColDansClasseur = ConvertirNumColonneEnString(Integer.valueOf(RefColonne)); // chargement if (col.getAttributs().get("table:style-name")!=null) propertiesColumn.put("Style", col.getAttributs().get("table:style-name")); if (col.getAttributs().get("table:default-cell-style-name")!=null) propertiesColumn.put("StyleDefautCell", col.getAttributs().get("table:default-cell-style-name")); if (col.getAttributs().get("table:number-columns-repeated")!=null) propertiesColumn.put("Repetition", col.getAttributs().get("table:number-columns-repeated")); if (col.getAttributs().get("table:visibility")!=null) propertiesColumn.put("Visible", col.getAttributs().get("table:visibility")); ArrayList s = nod.retourneListEnfantsByName("style:style", "style:name",propertiesColumn.get("Style")); if(s.size()>0) { nodeAC b = s.get(0).retourneFirstEnfantsByName("style:table-column-properties"); if(b.getAttributs().get("style:column-width")!=null) propertiesColumn.put("LargeurColonne",b.getAttributs().get("style:column-width")); } } public String getRefColDansClasseur() { return RefColDansClasseur; } public void setRefColDansClasseur(String refColDansClasseur) { RefColDansClasseur = refColDansClasseur; } public String getRefColonne() { return RefColonne; } public void setRefColonne(String refColonne) { RefColonne = refColonne; } public TreeMap getPropertiesColumn() { return propertiesColumn; } public void setPropertiesColumn(TreeMap propertiesColumn) { this.propertiesColumn = propertiesColumn; } } /******************************************** * * @author Pablo * ********************************************/ public class graphic{ private String evaluer = "false"; private String nomObjet = ""; private String TitreGraphique =""; private String TitreNettoyer =""; private String TitreAfficherFeedBack=""; private String type = ""; private String communication=""; private TreeMap propertiesGraphic = new TreeMap(); private TreeMap titre = new TreeMap(); private TreeMap soustitre = new TreeMap(); private TreeMap legend = new TreeMap(); private TreeMap airegraphic = new TreeMap(); private TreeMap axeXprincipal = new TreeMap(); private TreeMap axeXsecondaire = new TreeMap(); private TreeMap axeYprincipal = new TreeMap(); private TreeMap axeYsecondaire = new TreeMap(); private TreeMap series = new TreeMap(); public graphic(nodeAC nodeGraphic ) { //chargement sujet if(nodeGraphic.getAttributs().get("nomObjet")!=null) nomObjet = nodeGraphic.getAttributs().get("nomObjet"); if(nodeGraphic.getAttributs().get("type")!=null) type = nodeGraphic.getAttributs().get("type"); if(nodeGraphic.getAttributs().get("evaluer")!=null) evaluer = nodeGraphic.getAttributs().get("evaluer"); if(nodeGraphic.getAttributs().get("TitreGraphique")!=null) TitreAfficherFeedBack = nodeGraphic.getAttributs().get("TitreGraphique"); nodeAC b = nodeGraphic.retourneFirstEnfantsByName("communication"); if(b!=null) communication=b.getContenu().get(0); b = nodeGraphic.retourneFirstEnfantsByName("propertiesGraphic"); if(b.getAttributs().get("Type")!=null) propertiesGraphic.put("Type", b.getAttributs().get("Type")); if(b.getAttributs().get("style")!=null) propertiesGraphic.put("style", b.getAttributs().get("style")); if(b.getAttributs().get("positionY")!=null) propertiesGraphic.put("positionY", b.getAttributs().get("positionY")); if(b.getAttributs().get("positionX")!=null) propertiesGraphic.put("positionX", b.getAttributs().get("positionX")); if(b.getAttributs().get("hauteur")!=null) propertiesGraphic.put("hauteur", b.getAttributs().get("hauteur")); if(b.getAttributs().get("largeur")!=null) propertiesGraphic.put("largeur", b.getAttributs().get("largeur")); if(b.getAttributs().get("texteStyle")!=null) propertiesGraphic.put("texteStyle", b.getAttributs().get("texteStyle")); if(b.getAttributs().get("Data")!=null) propertiesGraphic.put("Data", b.getAttributs().get("Data")); if(b.getAttributs().get("EpaisseurBordures")!=null) propertiesGraphic.put("EpaisseurBordures", b.getAttributs().get("EpaisseurBordures")); if(b.getAttributs().get("TypeBordures")!=null) propertiesGraphic.put("TypeBordures", b.getAttributs().get("TypeBordures")); if(b.getAttributs().get("CouleurBordures")!=null) propertiesGraphic.put("CouleurBordures", b.getAttributs().get("CouleurBordures")); if(b.getAttributs().get("nom")!=null) propertiesGraphic.put("nom", b.getAttributs().get("nom")); if(b.getAttributs().get("titreObjet")!=null) propertiesGraphic.put("titreObjet", b.getAttributs().get("titreObjet")); if(b.getAttributs().get("description")!=null) propertiesGraphic.put("description", b.getAttributs().get("description")); b = nodeGraphic.retourneFirstEnfantsByName("titre"); if(b.getAttributs().get("Style")!=null) titre.put("Style", b.getAttributs().get("Style")); if(b.getAttributs().get("Titre")!=null) { titre.put("Titre", b.getAttributs().get("Titre")); TitreGraphique = titre.put("Titre", b.getAttributs().get("Titre")); try { TitreNettoyer = outils.outils.NetTexte(outils.outils.withoutPoint(TitreGraphique),""); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } if(b.getAttributs().get("Police")!=null) titre.put("Police", b.getAttributs().get("Police")); if(b.getAttributs().get("PositionAutomatique")!=null) titre.put("PositionAutomatique", b.getAttributs().get("PositionAutomatique")); if(b.getAttributs().get("StylePolice")!=null) titre.put("StylePolice", b.getAttributs().get("StylePolice")); if(b.getAttributs().get("StylePoliceWeight")!=null) titre.put("StylePoliceWeight", b.getAttributs().get("StylePoliceWeight")); if(b.getAttributs().get("TaillePolice")!=null) titre.put("TaillePolice", b.getAttributs().get("TaillePolice")); if(b.getAttributs().get("Rotation")!=null) titre.put("Rotation", b.getAttributs().get("Rotation")); if(b.getAttributs().get("EpaisseurSouslignement")!=null) titre.put("EpaisseurSouslignement", b.getAttributs().get("EpaisseurSouslignement")); if(b.getAttributs().get("StyleSouslignement")!=null) titre.put("StyleSouslignement", b.getAttributs().get("StyleSouslignement")); if(b.getAttributs().get("CouleurPolice")!=null) titre.put("CouleurPolice", b.getAttributs().get("CouleurPolice")); if(b.getAttributs().get("OmbrePolice")!=null) titre.put("OmbrePolice", b.getAttributs().get("OmbrePolice")); b = nodeGraphic.retourneFirstEnfantsByName("soustitre"); if(b.getAttributs().get("Style")!=null) soustitre.put("Style", b.getAttributs().get("Style")); if(b.getAttributs().get("SousTitre")!=null) soustitre.put("SousTitre", b.getAttributs().get("SousTitre")); if(b.getAttributs().get("PositionAutomatique")!=null) soustitre.put("PositionAutomatique", b.getAttributs().get("PositionAutomatique")); if(b.getAttributs().get("StylePolice")!=null) soustitre.put("StylePolice", b.getAttributs().get("StylePolice")); if(b.getAttributs().get("StylePoliceWeight")!=null) soustitre.put("StylePoliceWeight", b.getAttributs().get("StylePoliceWeight")); if(b.getAttributs().get("TaillePolice")!=null) soustitre.put("TaillePolice", b.getAttributs().get("TaillePolice")); if(b.getAttributs().get("Rotation")!=null) soustitre.put("Rotation", b.getAttributs().get("Rotation")); if(b.getAttributs().get("SousTitre")!=null) soustitre.put("SousTitre", b.getAttributs().get("SousTitre")); if(b.getAttributs().get("EpaisseurSouslignement")!=null) soustitre.put("EpaisseurSouslignement", b.getAttributs().get("EpaisseurSouslignement")); if(b.getAttributs().get("StyleSouslignement")!=null) soustitre.put("StyleSouslignement", b.getAttributs().get("StyleSouslignement")); if(b.getAttributs().get("CouleurPolice")!=null) soustitre.put("CouleurPolice", b.getAttributs().get("CouleurPolice")); if(b.getAttributs().get("OmbrePolice")!=null) soustitre.put("OmbrePolice", b.getAttributs().get("OmbrePolice")); b = nodeGraphic.retourneFirstEnfantsByName("airegraphic"); if(b.getAttributs().get("Style")!=null) airegraphic.put("Style", b.getAttributs().get("Style")); if(b.getAttributs().get("hauteur")!=null) airegraphic.put("hauteur", b.getAttributs().get("hauteur")); if(b.getAttributs().get("largeur")!=null) airegraphic.put("largeur", b.getAttributs().get("largeur")); if(b.getAttributs().get("EtiquettesData")!=null) airegraphic.put("EtiquettesData", b.getAttributs().get("EtiquettesData")); if(b.getAttributs().get("TableData")!=null) airegraphic.put("TableData", b.getAttributs().get("TableData")); b = nodeGraphic.retourneFirstEnfantsByName("axeXprincipal"); addAxeSujet(b,axeXprincipal); b = nodeGraphic.retourneFirstEnfantsByName("axeXsecondaire"); addAxeSujet(b,axeXsecondaire); b = nodeGraphic.retourneFirstEnfantsByName("axeYprincipal"); addAxeSujet(b,axeYprincipal); b = nodeGraphic.retourneFirstEnfantsByName("axeYsecondaire"); addAxeSujet(b,axeYsecondaire); b = nodeGraphic.retourneFirstEnfantsByName("legend"); if(b.getAttributs().get("LegendPosition")!=null) legend.put("LegendPosition", b.getAttributs().get("LegendPosition")); if(b.getAttributs().get("Style")!=null) legend.put("Style", b.getAttributs().get("Style")); if(b.getAttributs().get("CouleurArrierePlan")!=null) legend.put("CouleurArrierePlan", b.getAttributs().get("CouleurArrierePlan")); if(b.getAttributs().get("TypeArrierePlan")!=null) legend.put("TypeArrierePlan", b.getAttributs().get("TypeArrierePlan")); if(b.getAttributs().get("CouleurBordure")!=null) legend.put("CouleurBordure", b.getAttributs().get("CouleurBordure")); if(b.getAttributs().get("EpaisseurBordure")!=null) legend.put("EpaisseurBordure", b.getAttributs().get("EpaisseurBordure")); if(b.getAttributs().get("TaillePolice")!=null) legend.put("TaillePolice", b.getAttributs().get("TaillePolice")); if(b.getAttributs().get("StylePolice")!=null) legend.put("StylePolice", b.getAttributs().get("StylePolice")); if(b.getAttributs().get("StylePoliceWeight")!=null) legend.put("StylePoliceWeight", b.getAttributs().get("StylePoliceWeight")); if(b.getAttributs().get("Police")!=null) legend.put("Police", b.getAttributs().get("Police")); b = nodeGraphic.retourneFirstEnfantsByName("series"); if(b.getAttributs().get("Serie_1_AfficheCategorieEtiquetteDeValeur")!=null) series.put("Serie_1_AfficheCategorieEtiquetteDeValeur", b.getAttributs().get("Serie_1_AfficheCategorieEtiquetteDeValeur")); if(b.getAttributs().get("Serie_1_AfficheSymbolEtiquetteDeValeur")!=null) series.put("Serie_1_AfficheSymbolEtiquetteDeValeur", b.getAttributs().get("Serie_1_AfficheSymbolEtiquetteDeValeur")); if(b.getAttributs().get("Serie_1_AxeAssocier")!=null) series.put("Serie_1_AxeAssocier", b.getAttributs().get("Serie_1_AxeAssocier")); if(b.getAttributs().get("Serie_1_Bordures")!=null) series.put("Serie_1_Bordures", b.getAttributs().get("Serie_1_Bordures")); if(b.getAttributs().get("Serie_1_Couleur")!=null) series.put("Serie_1_Couleur", b.getAttributs().get("Serie_1_Couleur")); if(b.getAttributs().get("Serie_1_Data")!=null) series.put("Serie_1_Data", b.getAttributs().get("Serie_1_Data")); if(b.getAttributs().get("Serie_1_DataLierAlaSource")!=null) series.put("Serie_1_DataLierAlaSource", b.getAttributs().get("Serie_1_DataLierAlaSource")); if(b.getAttributs().get("Serie_1_FormatEtiquetteValeurSurGraphique")!=null) series.put("Serie_1_FormatEtiquetteValeurSurGraphique", b.getAttributs().get("Serie_1_FormatEtiquetteValeurSurGraphique")); if(b.getAttributs().get("Serie_1_LabelData")!=null) series.put("Serie_1_LabelData", b.getAttributs().get("Serie_1_LabelData")); if(b.getAttributs().get("Serie_1_Police")!=null) series.put("Serie_1_Police", b.getAttributs().get("Serie_1_Police")); if(b.getAttributs().get("Serie_1_StylePolice")!=null) series.put("Serie_1_StylePolice", b.getAttributs().get("Serie_1_StylePolice")); if(b.getAttributs().get("Serie_1_TaillePolice")!=null) series.put("Serie_1_TaillePolice", b.getAttributs().get("Serie_1_TaillePolice")); if(b.getAttributs().get("Serie_1_Type")!=null) series.put("Serie_1_Type", b.getAttributs().get("Serie_1_Type")); if(b.getAttributs().get("Serie_2_AfficheCategorieEtiquetteDeValeur")!=null) series.put("Serie_2_AfficheCategorieEtiquetteDeValeur", b.getAttributs().get("Serie_2_AfficheCategorieEtiquetteDeValeur")); if(b.getAttributs().get("Serie_2_AfficheSymbolEtiquetteDeValeur")!=null) series.put("Serie_2_AfficheSymbolEtiquetteDeValeur", b.getAttributs().get("Serie_2_AfficheSymbolEtiquetteDeValeur")); if(b.getAttributs().get("Serie_2_AxeAssocier")!=null) series.put("Serie_2_AxeAssocier", b.getAttributs().get("Serie_2_AxeAssocier")); if(b.getAttributs().get("Serie_2_Bordures")!=null) series.put("Serie_2_Bordures", b.getAttributs().get("Serie_2_Bordures")); if(b.getAttributs().get("Serie_2_Couleur")!=null) series.put("Serie_2_Couleur", b.getAttributs().get("Serie_2_Couleur")); if(b.getAttributs().get("Serie_2_Data")!=null) series.put("Serie_2_Data", b.getAttributs().get("Serie_2_Data")); if(b.getAttributs().get("Serie_2_DataLierAlaSource")!=null) series.put("Serie_2_DataLierAlaSource", b.getAttributs().get("Serie_2_DataLierAlaSource")); if(b.getAttributs().get("Serie_2_FormatEtiquetteValeurSurGraphique")!=null) series.put("Serie_2_FormatEtiquetteValeurSurGraphique", b.getAttributs().get("Serie_2_FormatEtiquetteValeurSurGraphique")); if(b.getAttributs().get("Serie_2_LabelData")!=null) series.put("Serie_2_LabelData", b.getAttributs().get("Serie_2_LabelData")); if(b.getAttributs().get("Serie_2_Police")!=null) series.put("Serie_2_Police", b.getAttributs().get("Serie_2_Police")); if(b.getAttributs().get("Serie_2_StylePolice")!=null) series.put("Serie_2_StylePolice", b.getAttributs().get("Serie_2_StylePolice")); if(b.getAttributs().get("Serie_2_TaillePolice")!=null) series.put("Serie_2_TaillePolice", b.getAttributs().get("Serie_2_TaillePolice")); if(b.getAttributs().get("Serie_2_Type")!=null) series.put("Serie_2_Type", b.getAttributs().get("Serie_2_Type")); } //Chargement public graphic(nodeAC nodeGraphic,nodeAC nod, Integer indexStudent ) throws IOException { if(nodeGraphic.getAttributs().get("draw:style-name")!=null) propertiesGraphic.put("Style", nodeGraphic.getAttributs().get("draw:style-name")); if(nodeGraphic.getAttributs().get("svg:y")!=null) propertiesGraphic.put("positionY", nodeGraphic.getAttributs().get("svg:y")); if(nodeGraphic.getAttributs().get("svg:x")!=null) propertiesGraphic.put("positionX", nodeGraphic.getAttributs().get("svg:x")); if(nodeGraphic.getAttributs().get("svg:height")!=null) propertiesGraphic.put("hauteur", nodeGraphic.getAttributs().get("svg:height")); if(nodeGraphic.getAttributs().get("svg:width")!=null) propertiesGraphic.put("largeur", nodeGraphic.getAttributs().get("svg:width")); if(nodeGraphic.getAttributs().get("draw:text-style-name")!=null) propertiesGraphic.put("texteStyle", nodeGraphic.getAttributs().get("draw:text-style-name")); if(nodeGraphic.getAttributs().get("draw:name")!=null) propertiesGraphic.put("nom", nodeGraphic.getAttributs().get("draw:name")); //chargement String numObjet[] = null; nodeAC b = nodeGraphic.retourneFirstEnfantsByName("draw:object"); if(b.getAttributs().get("xlink:href")!=null) { propertiesGraphic.put("nomObjet", b.getAttributs().get("xlink:href")); nomObjet = b.getAttributs().get("xlink:href"); nomObjet = nomObjet.substring(nomObjet.lastIndexOf("/")+1, nomObjet.length()); numObjet = nomObjet.split(" "); } if(b.getAttributs().get("draw:notify-on-update-of-ranges")!=null) { propertiesGraphic.put("Data", b.getAttributs().get("draw:notify-on-update-of-ranges")); } //TitreObjet b = nodeGraphic.retourneFirstEnfantsByName("svg:title"); if(b!=null) { propertiesGraphic.put("titreObjet", b.getContenu().get(0)); } //Description b = nodeGraphic.retourneFirstEnfantsByName("svg:desc"); if(b!=null) { propertiesGraphic.put("description", b.getContenu().get(0)); } //Style gri1, ... ArrayList C = nod.retourneListEnfantsByName("style:style", "style:name", propertiesGraphic.get("Style")); System.out.println("C.size() = " + C.size()); System.out.println("propertiesGraphic.get(\"Style\") = " + propertiesGraphic.get("Style")); if(C.size()>0) { nodeAC b1 = C.get(0).retourneFirstEnfantsByName("style:graphic-properties"); if(b1!=null) { if(b1.getAttributs().get("svg:stroke-width")!=null) propertiesGraphic.put("EpaisseurBordures", b1.getAttributs().get("svg:stroke-width")); if(b1.getAttributs().get("draw:stroke")!=null) propertiesGraphic.put("TypeBordures", b1.getAttributs().get("draw:stroke")); if(b1.getAttributs().get("svg:stroke-color")!=null) propertiesGraphic.put("CouleurBordures", b1.getAttributs().get("svg:stroke-color")); if(b1.getAttributs().get("svg:stroke-color")!=null) propertiesGraphic.put("CouleurBordures", b1.getAttributs().get("svg:stroke-color")); } } if(!nomObjet.isEmpty() && numObjet.length>1) { ArrayList XMLContentGraphic; constructionNodeAvecString A = new constructionNodeAvecString(); nodeAC B = A.NewNode(LecturesDossiers.getEC().getListeObjetGraphicTableur().get(indexStudent)); Ecriture.ecritureNodeEnXML(B, "Objet", commandes.PathFilenameAnalysis, typeFichier.fichier_etudiant); XMLContentGraphic = B.retourneListEnfantsByName("Object","num",numObjet[1]); //cloner if(XMLContentGraphic.size()>0) { // XMLContentGraphic = B.retourneListEnfantsByName("office:chart"); // System.out.println("XMLContentGraphic.size() = " + XMLContentGraphic.size()); // if(XMLContentGraphic.size()>0) { System.out.println(XMLContentGraphic.get(0).toString()); ajouteProperties(XMLContentGraphic.get(0)); // } } } } /******** * */ //** Uniquement pour le chargement ** public void ajouteProperties(nodeAC nodeGraphic) { nodeAC b = nodeGraphic.retourneFirstEnfantsByName("chart:chart"); if(b!=null) { type = b.getAttributs().get("chart:class"); propertiesGraphic.put("Type", type ); } // titre b = nodeGraphic.retourneFirstEnfantsByName("chart:title"); if(b!=null) { if(b.getAttributs().get("chart:style-name")!=null) titre.put("Style", b.getAttributs().get("chart:style-name")); b = b.retourneFirstEnfantsByName("text:p"); if(b!=null) { titre.put("Titre", b.retourneLesContenusEnfants("")); TitreGraphique = titre.put("Titre", b.retourneLesContenusEnfants("")); b = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", titre.get("Style")); if(b!=null) { nodeAC b2 = b.retourneFirstEnfantsByName("style:chart-properties"); if(b2!=null) { if(b2.getAttributs().get("chart:auto-position")!=null) titre.put("PositionAutomatique", b2.getAttributs().get("chart:auto-position")); if(b2.getAttributs().get("style:rotation-angle")!=null) titre.put("Rotation", b2.getAttributs().get("style:rotation-angle")); } b2 = b.retourneFirstEnfantsByName("style:text-properties"); if(b2!=null) { if(b2.getAttributs().get("fo:font-size")!=null) titre.put("TaillePolice", b2.getAttributs().get("fo:font-size")); if(b2.getAttributs().get("style:font-style-name")!=null) titre.put("StylePolice", b2.getAttributs().get("style:font-style-name")); if(b2.getAttributs().get("fo:font-weight")!=null) titre.put("StylePoliceWeight", b2.getAttributs().get("fo:font-weight")); if(b2.getAttributs().get("fo:font-family")!=null) titre.put("Police", b2.getAttributs().get("fo:font-family")); if(b2.getAttributs().get("style:text-underline-style")!=null) titre.put("StyleSouslignement", b2.getAttributs().get("style:text-underline-style")); if(b2.getAttributs().get("style:text-underline-width")!=null) titre.put("EpaisseurSouslignement", b2.getAttributs().get("style:text-underline-width")); if(b2.getAttributs().get("fo:color")!=null) titre.put("CouleurPolice", b2.getAttributs().get("fo:color")); if(b2.getAttributs().get("fo:text-shadow")!=null) titre.put("OmbrePolice", b2.getAttributs().get("fo:text-shadow")); } } } } // sous-titre b = nodeGraphic.retourneFirstEnfantsByName("chart:subtitle"); if(b!=null) { if(b.getAttributs().get("chart:style-name")!=null) soustitre.put("Style", b.getAttributs().get("chart:style-name")); b = b.retourneFirstEnfantsByName("text:p"); if(b!=null) { soustitre.put("SousTitre", b.retourneLesContenusEnfants("")); } b = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", soustitre.get("Style")); if(b!=null) { nodeAC b2 = b.retourneFirstEnfantsByName("style:chart-properties"); System.out.println("style:chart-properties = " + b2.toString()); if(b2!=null) { if(b2.getAttributs().get("chart:auto-position")!=null) soustitre.put("PositionAutomatique", b2.getAttributs().get("chart:auto-position")); if(b2.getAttributs().get("style:rotation-angle")!=null) soustitre.put("Rotation", b2.getAttributs().get("style:rotation-angle")); } b2 = b.retourneFirstEnfantsByName("style:text-properties"); if(b2!=null) { if(b2.getAttributs().get("fo:font-size")!=null) soustitre.put("TaillePolice", b2.getAttributs().get("fo:font-size")); if(b2.getAttributs().get("style:font-style-name")!=null) soustitre.put("StylePolice", b2.getAttributs().get("style:font-style-name")); if(b2.getAttributs().get("fo:font-weight")!=null) soustitre.put("StylePoliceWeight", b2.getAttributs().get("fo:font-weight")); if(b2.getAttributs().get("fo:font-family")!=null) soustitre.put("Police", b2.getAttributs().get("fo:font-family")); if(b2.getAttributs().get("style:text-underline-style")!=null) soustitre.put("StyleSouslignement", b2.getAttributs().get("style:text-underline-style")); if(b2.getAttributs().get("style:text-underline-width")!=null) soustitre.put("EpaisseurSouslignement", b2.getAttributs().get("style:text-underline-width")); if(b2.getAttributs().get("fo:color")!=null) soustitre.put("CouleurPolice", b2.getAttributs().get("fo:color")); if(b2.getAttributs().get("fo:text-shadow")!=null) soustitre.put("OmbrePolice", b2.getAttributs().get("fo:text-shadow")); } } } //legend b = nodeGraphic.retourneFirstEnfantsByName("chart:legend"); if(b!=null) { if(b.getAttributs().get("chart:legend-position")!=null) legend.put("LegendPosition", b.getAttributs().get("chart:legend-position")); if(b.getAttributs().get("chart:style-name")!=null) { legend.put("Style", b.getAttributs().get("chart:style-name")); b = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", legend.get("Style")); if(b!=null) { nodeAC b2 = b.retourneFirstEnfantsByName("style:graphic-properties"); if(b2!=null) { if(b2.getAttributs().get("draw:fill-color")!=null) legend.put("CouleurArrierePlan", b2.getAttributs().get("draw:fill-color")); if(b2.getAttributs().get("draw:fill")!=null) legend.put("TypeArrierePlan", b2.getAttributs().get("draw:fill")); if(b2.getAttributs().get("svg:stroke-color")!=null) legend.put("CouleurBordure", b2.getAttributs().get("svg:stroke-color")); if(b2.getAttributs().get("svg:stroke-width")!=null) legend.put("EpaisseurBordure", b2.getAttributs().get("svg:stroke-width")); } b2 = b.retourneFirstEnfantsByName("style:text-properties"); if(b2!=null) { if(b2.getAttributs().get("fo:font-size")!=null) legend.put("TaillePolice", b2.getAttributs().get("fo:font-size")); if(b2.getAttributs().get("style:font-style-name")!=null) legend.put("StylePolice", b2.getAttributs().get("style:font-style-name")); if(b2.getAttributs().get("fo:font-weight")!=null) legend.put("StylePoliceWeight", b2.getAttributs().get("fo:font-weight")); if(b2.getAttributs().get("fo:font-family")!=null) legend.put("Police", b2.getAttributs().get("fo:font-family")); if(b2.getAttributs().get("style:text-underline-style")!=null) legend.put("StyleSouslignement", b2.getAttributs().get("style:text-underline-style")); if(b2.getAttributs().get("style:text-underline-width")!=null) legend.put("EpaisseurSouslignement", b2.getAttributs().get("style:text-underline-width")); if(b2.getAttributs().get("fo:color")!=null) legend.put("CouleurPolice", b2.getAttributs().get("fo:color")); if(b2.getAttributs().get("fo:text-shadow")!=null) legend.put("OmbrePolice", b2.getAttributs().get("fo:text-shadow")); } } } } // Aire b = nodeGraphic.retourneFirstEnfantsByName("chart:plot-area"); if(b!=null) { if(b.getAttributs().get("chart:style-name")!=null) airegraphic.put("Style", b.getAttributs().get("chart:style-name")); if(b.getAttributs().get("svg:height")!=null) airegraphic.put("hauteur", b.getAttributs().get("svg:height")); if(b.getAttributs().get("svg:width")!=null) airegraphic.put("largeur", b.getAttributs().get("svg:width")); if(b.getAttributs().get("chart:data-source-has-labels")!=null) airegraphic.put("EtiquettesData", b.getAttributs().get("chart:data-source-has-labels")); if(b.getAttributs().get("table:cell-range-address")!=null) airegraphic.put("TableData", b.getAttributs().get("table:cell-range-address")); if(airegraphic.get("Style")!=null) { nodeAC b1 = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name",airegraphic.get("Style")); if(b1!=null) { nodeAC b2 = b1.retourneFirstEnfantsByName("style:chart-properties"); if(b2!=null) { if(b2.getAttributs().get("chart:data-label-number")!=null) airegraphic.put("FormatEtiquetteValeurSurGraphique", b2.getAttributs().get("chart:data-label-number")); if(b2.getAttributs().get("chart:data-label-symbol")!=null) airegraphic.put("AfficheSymbolCommeEtiquetteDeValeur", b2.getAttributs().get("chart:data-label-symbol")); if(b2.getAttributs().get("chart:data-label-text")!=null) airegraphic.put("AfficheCategorieCommeEtiquetteDeValeur", b2.getAttributs().get("chart:data-label-text")); } } } } // les axes ArrayList C = nodeGraphic.retourneListEnfantsByName("chart:axis"); for(int i = 0 ; i < C.size();i++) { // axe X principal if(C.get(i).getAttributs().get("chart:name").equals("primary-x")) { addAxeProperties(axeXprincipal,C.get(i),nodeGraphic); } // axe X secondaire if(C.get(i).getAttributs().get("chart:name").equals("secondary-x")) { addAxeProperties(axeXsecondaire,C.get(i),nodeGraphic); } // axe Y principal if(C.get(i).getAttributs().get("chart:name").equals("primary-y")) { addAxeProperties(axeYprincipal,C.get(i),nodeGraphic); } // axe Y secondaire if(C.get(i).getAttributs().get("chart:name").equals("secondary-y")) { addAxeProperties(axeYsecondaire,C.get(i),nodeGraphic); } } // les series C = nodeGraphic.retourneListEnfantsByName("chart:series"); for(int i = 0 ; i < C.size();i++) { addSerieProperties(series, C.get(i), i+1, nodeGraphic); } } private void addAxeSujet(nodeAC b, TreeMap axe) { //en premier lieu les valeurs par défauts axe.put("AfficherGrillePrincipale", "false"); // à vérifier axe.put("AfficherGrilleSecondaire", "false"); if(b.getAttributs().get("AfficheEtiquette")!=null) axe.put("AfficheEtiquette", b.getAttributs().get("AfficheEtiquette")); if(b.getAttributs().get("AfficherGrillePrincipale")!=null) axe.put("AfficherGrillePrincipale", b.getAttributs().get("AfficherGrillePrincipale")); if(b.getAttributs().get("AfficherGrilleSecondaire")!=null) axe.put("AfficherGrilleSecondaire", b.getAttributs().get("AfficherGrilleSecondaire")); if(b.getAttributs().get("CouleurGrillePrincipale")!=null) axe.put("CouleurGrillePrincipale", b.getAttributs().get("CouleurGrillePrincipale")); if(b.getAttributs().get("CouleurGrilleSecondaire")!=null) axe.put("CouleurGrilleSecondaire", b.getAttributs().get("CouleurGrilleSecondaire")); if(b.getAttributs().get("CouleurMarque")!=null) axe.put("CouleurMarque", b.getAttributs().get("CouleurMarque")); if(b.getAttributs().get("CouleurPoliceEtiquetteAxe")!=null) axe.put("CouleurPoliceEtiquetteAxe", b.getAttributs().get("CouleurPoliceEtiquetteAxe")); if(b.getAttributs().get("CroiserAutreAxe")!=null) axe.put("CroiserAutreAxe", b.getAttributs().get("CroiserAutreAxe")); if(b.getAttributs().get("Data")!=null) axe.put("Data", b.getAttributs().get("Data")); if(b.getAttributs().get("Dimension")!=null) axe.put("Dimension", b.getAttributs().get("Dimension")); if(b.getAttributs().get("EpaisseurGrillePrincipale")!=null) axe.put("EpaisseurGrillePrincipale", b.getAttributs().get("EpaisseurGrillePrincipale")); if(b.getAttributs().get("EpaisseurGrilleSecondaire")!=null) axe.put("EpaisseurGrilleSecondaire", b.getAttributs().get("EpaisseurGrilleSecondaire")); if(b.getAttributs().get("EpaisseurMarque")!=null) axe.put("EpaisseurMarque", b.getAttributs().get("EpaisseurMarque")); if(b.getAttributs().get("EpaisseurSouslignementEtiquetteAxe")!=null) axe.put("EpaisseurSouslignementEtiquetteAxe", b.getAttributs().get("EpaisseurSouslignementEtiquetteAxe")); if(b.getAttributs().get("FormatEtiquetteLierSource")!=null) axe.put("FormatEtiquetteLierSource", b.getAttributs().get("FormatEtiquetteLierSource")); if(b.getAttributs().get("Format_1_DecimalPlaceNombre")!=null) axe.put("Format_1_DecimalPlaceNombre", b.getAttributs().get("Format_1_DecimalPlaceNombre")); if(b.getAttributs().get("Format_1_MinimumDecimalNombre")!=null) axe.put("Format_1_MinimumDecimalNombre", b.getAttributs().get("Format_1_MinimumDecimalNombre")); if(b.getAttributs().get("Format_1_CouleurNombre")!=null) axe.put("Format_1_CouleurNombre", b.getAttributs().get("Format_1_CouleurNombre")); if(b.getAttributs().get("Format_2_CouleurNombre")!=null) axe.put("Format_2_CouleurNombre", b.getAttributs().get("Format_2_CouleurNombre")); if(b.getAttributs().get("Format_2_MinimumDecimalNombre")!=null) axe.put("Format_2_MinimumDecimalNombre", b.getAttributs().get("Format_2_MinimumDecimalNombre")); if(b.getAttributs().get("Format_2_DecimalPlaceNombre")!=null) axe.put("Format_2_DecimalPlaceNombre", b.getAttributs().get("Format_2_DecimalPlaceNombre")); if(b.getAttributs().get("FormatCondition")!=null) axe.put("FormatCondition", b.getAttributs().get("FormatCondition")); if(b.getAttributs().get("InverseDirection")!=null) axe.put("InverseDirection", b.getAttributs().get("InverseDirection")); if(b.getAttributs().get("IntervallePrincipal")!=null) axe.put("IntervallePrincipal", b.getAttributs().get("IntervallePrincipal")); if(b.getAttributs().get("Logarithmique")!=null) axe.put("Logarithmique", b.getAttributs().get("Logarithmique")); if(b.getAttributs().get("MarquePrincipaleExterieur")!=null) axe.put("MarquePrincipaleExterieur", b.getAttributs().get("MarquePrincipaleExterieur")); if(b.getAttributs().get("MarquePrincipaleInterieur")!=null) axe.put("MarquePrincipaleInterieur", b.getAttributs().get("MarquePrincipaleInterieur")); if(b.getAttributs().get("MarqueSecondaireExterieur")!=null) axe.put("MarqueSecondaireExterieur", b.getAttributs().get("MarqueSecondaireExterieur")); if(b.getAttributs().get("MarqueSecondaireInterieur")!=null) axe.put("MarqueSecondaireInterieur", b.getAttributs().get("MarqueSecondaireInterieur")); if(b.getAttributs().get("Maximum")!=null) axe.put("Maximum", b.getAttributs().get("Maximum")); if(b.getAttributs().get("Minium")!=null) axe.put("Minium", b.getAttributs().get("Minium")); if(b.getAttributs().get("NombreIntervalleSecondaire")!=null) axe.put("NombreIntervalleSecondaire", b.getAttributs().get("NombreIntervalleSecondaire")); if(b.getAttributs().get("OmbrePoliceEtiquetteAxe")!=null) axe.put("OmbrePoliceEtiquetteAxe", b.getAttributs().get("OmbrePoliceEtiquetteAxe")); if(b.getAttributs().get("Origine")!=null) axe.put("Origine", b.getAttributs().get("Origine")); if(b.getAttributs().get("PoliceTitreAxe")!=null) axe.put("PoliceTitreAxe", b.getAttributs().get("PoliceTitreAxe")); if(b.getAttributs().get("PoliceEtiquetteAxe")!=null) axe.put("PoliceEtiquetteAxe", b.getAttributs().get("PoliceEtiquetteAxe")); if(b.getAttributs().get("PositionEtiquette")!=null) axe.put("PositionEtiquette", b.getAttributs().get("PositionEtiquette")); if(b.getAttributs().get("PositionMarque")!=null) axe.put("PositionMarque", b.getAttributs().get("PositionMarque")); if(b.getAttributs().get("PositionAutomatiqueTitreAxe")!=null) axe.put("PositionAutomatiqueTitreAxe", b.getAttributs().get("PositionAutomatiqueTitreAxe")); if(b.getAttributs().get("RotationEtiquette")!=null) axe.put("RotationEtiquette", b.getAttributs().get("RotationEtiquette")); if(b.getAttributs().get("RotationTitreAxe")!=null) axe.put("RotationTitreAxe", b.getAttributs().get("RotationTitreAxe")); if(b.getAttributs().get("TaillePoliceEtiquetteAxe")!=null) axe.put("TaillePoliceEtiquetteAxe", b.getAttributs().get("TaillePoliceEtiquetteAxe")); if(b.getAttributs().get("TaillePoliceTitreAxe")!=null) axe.put("TaillePoliceTitreAxe", b.getAttributs().get("TaillePoliceTitreAxe")); if(b.getAttributs().get("TitreAxe")!=null) axe.put("TitreAxe", b.getAttributs().get("TitreAxe")); if(b.getAttributs().get("Type")!=null) axe.put("Type", b.getAttributs().get("Type")); if(b.getAttributs().get("TypeTraitGrillePrincipale")!=null) axe.put("TypeTraitGrillePrincipale", b.getAttributs().get("TypeTraitGrillePrincipale")); if(b.getAttributs().get("TypeTraitGrilleSecondaire")!=null) axe.put("TypeTraitGrilleSecondaire", b.getAttributs().get("TypeTraitGrilleSecondaire")); if(b.getAttributs().get("Style")!=null) axe.put("Style", b.getAttributs().get("Style")); if(b.getAttributs().get("StylePoliceTitreAxe")!=null) axe.put("StylePoliceTitreAxe", b.getAttributs().get("StylePoliceTitreAxe")); if(b.getAttributs().get("StylePoliceEtiquetteAxe")!=null) axe.put("StylePoliceEtiquetteAxe", b.getAttributs().get("StylePoliceEtiquetteAxe")); if(b.getAttributs().get("StyleSouslignementEtiquetteAxe")!=null) axe.put("StyleSouslignementEtiquetteAxe", b.getAttributs().get("StyleSouslignementEtiquetteAxe")); } /** * Ajoute les differents parametres au axes * @param axe * @param b * @param a */ public void addAxeProperties(TreeMap axe, nodeAC nodeAxe , nodeAC nodeGraphic) { // valeur par défaut axe.put("AfficherGrillePrincipale", "false"); axe.put("AfficherGrilleSecondaire", "false"); axe.put("TitreAxe", nodeAxe.retourneLesContenusEnfants("")); if(nodeAxe.getAttributs().get("chart:style-name")!=null) { axe.put("Style", nodeAxe.getAttributs().get("chart:style-name")); if(nodeAxe.getAttributs().get("chart:style-name")!=null) axe.put("Style", nodeAxe.getAttributs().get("chart:style-name")); if(nodeAxe.getAttributs().get("chartooo:axis-type")!=null) axe.put("Type", nodeAxe.getAttributs().get("chartooo:axis-type")); if(nodeAxe.getAttributs().get("chart:dimension")!=null) axe.put("Dimension", nodeAxe.getAttributs().get("chart:dimension")); nodeAC b = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", axe.get("Style")); if(b!=null) { //format nombre if(b.getAttributs().get("style:data-style-name")!=null) { nodeAC b1 = nodeGraphic.retourneFirstEnfantsByName("number:number-style", "style:name", b.getAttributs().get("style:data-style-name")); if(!b1.isVide()) { nodeAC b2 = b1.retourneFirstEnfantsByName("style:text-properties"); if(b2.getAttributs().get("fo:color")!=null) axe.put("Format_1_CouleurNombre", b2.getAttributs().get("fo:color")); b2 = b1.retourneFirstEnfantsByName("number:number"); if(b2.getAttributs().get("number:min-integer-digits")!=null) axe.put("Format_1_MinimumDigitNombre", b2.getAttributs().get("number:min-integer-digits")); if(b2.getAttributs().get("loext:min-decimal-places")!=null) axe.put("Format_1_MinimumDecimalNombre", b2.getAttributs().get("loext:min-decimal-places")); if(b2.getAttributs().get("number:decimal-places")!=null) axe.put("Format_1_DecimalPlaceNombre", b2.getAttributs().get("number:decimal-places")); b2 = b1.retourneFirstEnfantsByName("style:map"); if(b2.getAttributs().get("style:condition")!=null) axe.put("FormatCondition", b2.getAttributs().get("style:condition")); //format 2 if(b2.getAttributs().get("style:apply-style-name")!=null) { b1 = nodeGraphic.retourneFirstEnfantsByName("number:number-style", "style:name", b2.getAttributs().get("style:apply-style-name")); if(!b1.isVide()) { b2 = b1.retourneFirstEnfantsByName("style:text-properties"); if(b2.getAttributs().get("fo:color")!=null) axe.put("Format_2_CouleurNombre", b2.getAttributs().get("fo:color")); b2 = b1.retourneFirstEnfantsByName("number:number"); if(b2.getAttributs().get("number:min-integer-digits")!=null) axe.put("Format_2_MinimumDigitNombre", b2.getAttributs().get("number:min-integer-digits")); if(b2.getAttributs().get("loext:min-decimal-places")!=null) axe.put("Format_2_MinimumDecimalNombre", b2.getAttributs().get("loext:min-decimal-places")); if(b2.getAttributs().get("number:decimal-places")!=null) axe.put("Format_2_DecimalPlaceNombre", b2.getAttributs().get("number:decimal-places")); } } } } nodeAC b2 = b.retourneFirstEnfantsByName("style:chart-properties"); if(b2!=null) { if(b2.getAttributs().get("chart:interval-minor-divisor")!=null) axe.put("NombreIntervalleSecondaire", b2.getAttributs().get("chart:interval-minor-divisor")); if(b2.getAttributs().get("chart:interval-major")!=null) axe.put("IntervallePrincipal", b2.getAttributs().get("chart:interval-major")); if(b2.getAttributs().get("chart:origin")!=null) axe.put("Origine", b2.getAttributs().get("chart:origin")); if(b2.getAttributs().get("chart:maximum")!=null) axe.put("Maximum", b2.getAttributs().get("chart:maximum")); if(b2.getAttributs().get("chart:minimum")!=null) axe.put("Minium", b2.getAttributs().get("chart:minimum")); if(b2.getAttributs().get("chart:axis-label-position")!=null) axe.put("PositionEtiquette", b2.getAttributs().get("chart:axis-label-position")); if(b2.getAttributs().get("chart:axis-position")!=null) axe.put("CroiserAutreAxe", b2.getAttributs().get("chart:axis-position")); if(b2.getAttributs().get("chart:display-label")!=null) axe.put("AfficheEtiquette", b2.getAttributs().get("chart:display-label")); if(b2.getAttributs().get("chart:link-data-style-to-source")!=null) axe.put("FormatEtiquetteLierSource", b2.getAttributs().get("chart:link-data-style-to-source")); if(b2.getAttributs().get("chart:reverse-direction")!=null) axe.put("InverseDirection", b2.getAttributs().get("chart:reverse-direction")); if(b2.getAttributs().get("chart:logarithmic")!=null) axe.put("Logarithmique", b2.getAttributs().get("chart:logarithmic")); if(b2.getAttributs().get("style:rotation-angle")!=null) axe.put("RotationEtiquette", b2.getAttributs().get("style:rotation-angle")); if(b2.getAttributs().get("chart:tick-mark-position")!=null) axe.put("PositionMarque", b2.getAttributs().get("chart:tick-mark-position")); if(b2.getAttributs().get("chart:tick-marks-minor-outer")!=null) axe.put("MarqueSecondaireExterieur", b2.getAttributs().get("chart:tick-marks-minor-outer")); if(b2.getAttributs().get("chart:tick-marks-minor-inner")!=null) axe.put("MarqueSecondaireInterieur", b2.getAttributs().get("chart:tick-marks-minor-inner")); if(b2.getAttributs().get("chart:tick-marks-major-outer")!=null) axe.put("MarquePrincipaleExterieur", b2.getAttributs().get("chart:tick-marks-major-outer")); if(b2.getAttributs().get("chart:tick-marks-major-inner")!=null) axe.put("MarquePrincipaleInterieur", b2.getAttributs().get("chart:tick-marks-major-inner")); } b2 = b.retourneFirstEnfantsByName("style:graphic-properties"); if(b2!=null) { if(b2.getAttributs().get("svg:stroke-color")!=null) axe.put("CouleurMarque", b2.getAttributs().get("svg:stroke-color")); if(b2.getAttributs().get("svg:stroke-width")!=null) axe.put("EpaisseurMarque", b2.getAttributs().get("svg:stroke-width")); } b2 = b.retourneFirstEnfantsByName("style:text-properties"); if(b2!=null) { if(b2.getAttributs().get("fo:font-size")!=null) axe.put("TaillePoliceEtiquetteAxe", b2.getAttributs().get("fo:font-size")); if(b2.getAttributs().get("style:font-style-name")!=null) axe.put("StylePoliceEtiquetteAxe", b2.getAttributs().get("style:font-style-name")); if(b2.getAttributs().get("fo:font-family")!=null) axe.put("PoliceEtiquetteAxe", b2.getAttributs().get("fo:font-family")); if(b2.getAttributs().get("style:text-underline-style")!=null) axe.put("StyleSouslignementEtiquetteAxe", b2.getAttributs().get("style:text-underline-style")); if(b2.getAttributs().get("style:text-underline-width")!=null) axe.put("EpaisseurSouslignementEtiquetteAxe", b2.getAttributs().get("style:text-underline-width")); if(b2.getAttributs().get("fo:color")!=null) axe.put("CouleurPoliceEtiquetteAxe", b2.getAttributs().get("fo:color")); if(b2.getAttributs().get("fo:text-shadow")!=null) axe.put("OmbrePoliceEtiquetteAxe", b2.getAttributs().get("fo:text-shadow")); } } // titre axe b = nodeAxe.retourneFirstEnfantsByName("chart:title"); if(b!=null) { nodeAC b1 = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", b.getAttributs().get("chart:style-name")); if(b1!=null) { nodeAC b2 = b1.retourneFirstEnfantsByName("style:chart-properties"); if(b2!=null) { if(b2.getAttributs().get("style:rotation-angle")!=null) axe.put("RotationTitreAxe", b2.getAttributs().get("style:rotation-angle")); if(b2.getAttributs().get("chart:auto-position")!=null) axe.put("PositionAutomatiqueTitreAxe", b2.getAttributs().get("chart:auto-position")); } b2 = b1.retourneFirstEnfantsByName("style:text-properties"); if(b2!=null) { if(b2.getAttributs().get("fo:font-size")!=null) axe.put("TaillePoliceTitreAxe", b2.getAttributs().get("fo:font-size")); if(b2.getAttributs().get("fo:font-family")!=null) axe.put("PoliceTitreAxe", b2.getAttributs().get("fo:font-family")); if(b2.getAttributs().get("style:font-style-name")!=null) axe.put("StylePoliceTitreAxe", b2.getAttributs().get("style:font-style-name")); } } } // données b = nodeAxe.retourneFirstEnfantsByName("chart:categories"); if(b!=null) if(b.getAttributs().get("table:cell-range-address")!=null) axe.put("Data", b.getAttributs().get("table:cell-range-address")); // grille b = nodeAxe.retourneFirstEnfantsByName("chart:grid"); if(b!=null) { if(b.getAttributs().get("chart:class")!=null) if(b.getAttributs().get("chart:class").equals("major")) { axe.put("AfficherGrillePrincipale", "true"); nodeAC b1 = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", b.getAttributs().get("chart:style-name")); if(b1!=null) { nodeAC b2 = b1.retourneFirstEnfantsByName("style:graphic-properties"); if(b2!=null) { if(b2.getAttributs().get("svg:stroke-color")!=null) axe.put("CouleurGrillePrincipale", b2.getAttributs().get("svg:stroke-color")); if(b2.getAttributs().get("svg:stroke-width")!=null) axe.put("EpaisseurGrillePrincipale", b2.getAttributs().get("svg:stroke-width")); if(b2.getAttributs().get("draw:stroke")!=null) axe.put("TypeTraitGrillePrincipale", b2.getAttributs().get("draw:stroke")); } } } if(b.getAttributs().get("chart:class")!=null) if(b.getAttributs().get("chart:class").equals("minor")) { axe.put("AfficherGrilleSecondaire", "true"); nodeAC b1 = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", b.getAttributs().get("chart:style-name")); if(b1!=null) { nodeAC b2 = b1.retourneFirstEnfantsByName("style:graphic-properties"); if(b2!=null) { if(b2.getAttributs().get("svg:stroke-color")!=null) axe.put("CouleurGrilleSecondaire", b2.getAttributs().get("svg:stroke-color")); if(b2.getAttributs().get("svg:stroke-width")!=null) axe.put("EpaisseurGrilleSecondaire", b2.getAttributs().get("svg:stroke-width")); if(b2.getAttributs().get("draw:stroke")!=null) axe.put("TypeTraitGrilleSecondaire", b2.getAttributs().get("draw:stroke")); } } } } } } /** * * @param axe * @param nodeAxe * @param nodeGraphic * @param a */ public void addSerieProperties(TreeMap serie, nodeAC nodeSerie , Integer Num,nodeAC nodeGraphic) { serie.put("Serie_"+ Num + "_Type",nodeSerie.getAttributs().get("chart:class")); serie.put("Serie_"+ Num + "_LabelData",nodeSerie.getAttributs().get("chart:label-cell-address")); serie.put("Serie_"+ Num + "_Data",nodeSerie.getAttributs().get("chart:values-cell-range-address")); serie.put("Serie_"+ Num + "_AxeAssocier",nodeSerie.getAttributs().get("chart:attached-axis")); nodeAC b1 = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", nodeSerie.getAttributs().get("chart:style-name")); if(b1!=null) { nodeAC b2 = b1.retourneFirstEnfantsByName("style:chart-properties"); if(b2!=null) { if(b2.getAttributs().get("chart:link-data-style-to-source")!=null) serie.put("Serie_"+ Num + "_DataLierAlaSource", b2.getAttributs().get("chart:link-data-style-to-source")); if(b2.getAttributs().get("chart:data-label-symbol")!=null) serie.put("Serie_"+ Num + "_AfficheSymbolEtiquetteDeValeur", b2.getAttributs().get("chart:data-label-symbol")); if(b2.getAttributs().get("chart:data-label-text")!=null) serie.put("Serie_"+ Num + "_AfficheCategorieEtiquetteDeValeur", b2.getAttributs().get("chart:data-label-text")); if(b2.getAttributs().get("chart:data-label-number")!=null) serie.put("Serie_"+ Num + "_FormatEtiquetteValeurSurGraphique", b2.getAttributs().get("chart:data-label-number")); } b2 = b1.retourneFirstEnfantsByName("style:graphic-properties"); if(b2!=null) { if(b2.getAttributs().get("draw:stroke")!=null) serie.put("Serie_"+ Num + "_Bordures", b2.getAttributs().get("draw:stroke")); if(b2.getAttributs().get("draw:fill-color")!=null) serie.put("Serie_"+ Num + "_Couleur", b2.getAttributs().get("draw:fill-color")); } b2 = b1.retourneFirstEnfantsByName("style:text-properties"); if(b2!=null) { if(b2.getAttributs().get("fo:font-size")!=null) serie.put("Serie_"+ Num + "_TaillePolice", b2.getAttributs().get("fo:font-size")); if(b2.getAttributs().get("style:font-style-name")!=null) serie.put("Serie_"+ Num + "_StylePolice", b2.getAttributs().get("style:font-style-name")); if(b2.getAttributs().get("fo:font-family")!=null) serie.put("Serie_"+ Num + "_Police", b2.getAttributs().get("fo:font-family")); } } } public String getTitreAfficherFeedBack() { return TitreAfficherFeedBack; } public String getCommunication() { return communication; } public TreeMap getSeries() { return series; } public TreeMap getAiregraphic() { return airegraphic; } public TreeMap getSoustitre() { return soustitre; } public TreeMap getTitre() { return titre; } public String getTitreGraphique() { return TitreGraphique; } public String getTitreNettoyer() { return TitreNettoyer; } public TreeMap getLegend() { return legend; } public TreeMap getAxeXprincipal() { return axeXprincipal; } public TreeMap getAxeYprincipal() { return axeYprincipal; } public TreeMap getAxeXsecondaire() { return axeXsecondaire; } public TreeMap getAxeYsecondaire() { return axeYsecondaire; } public String getEvaluer() { return evaluer; } public String getType() { return type; } public TreeMap getPropertiesGraphic() { return propertiesGraphic; } public void setPropertiesGraphic(TreeMap propertiesGraphic) { this.propertiesGraphic = propertiesGraphic; } public String getNomObjet() { return nomObjet; } } /******************************************* * Class ligne * @author Pablo * *******************************************/ public class ligne{ private String RefLigne ; private String evaluer = "false"; private String communication =""; private String titre=""; private boolean saut = false; private String styletitrePrincipale = "H1"; private TreeMap propertiesRow = new TreeMap(); private TreeMap cellules = new TreeMap(); /** * Chargement du sujet * @param nodeLigne * @param numLigne */ public ligne(nodeAC nodeLigne, String numLigne) { //lecture sujet (propertiesRow) RefLigne = numLigne; nodeAC properties = nodeLigne.retourneFirstEnfantsByName("propertiesRow"); if(properties.getAttributs().get("Style")!=null) propertiesRow.put("Style", properties.getAttributs().get("Style")); if(properties.getAttributs().get("HauteurLigne")!=null) propertiesRow.put("HauteurLigne", properties.getAttributs().get("HauteurLigne")); if(properties.getAttributs().get("RefLigne")!=null) propertiesRow.put("RefLigne", properties.getAttributs().get("RefLigne")); if(properties.getAttributs().get("evaluer")!=null) propertiesRow.put("evaluer", properties.getAttributs().get("evaluer")); if(properties.getAttributs().get("styletitre")!=null) propertiesRow.put("styletitre", properties.getAttributs().get("styletitre")); nodeAC comm = nodeLigne.retourneFirstEnfantsByName("communication"); if(!comm.isVide()) communication=comm.retourneLesContenusEnfants(""); //lecture sujet les attributs de la ligne if(nodeLigne.getAttributs().get("evaluer")!=null) evaluer=nodeLigne.getAttributs().get("evaluer"); if(nodeLigne.getAttributs().get("titre")!=null) titre=nodeLigne.getAttributs().get("titre"); if(nodeLigne.getAttributs().get("saut")!=null) saut=Boolean.valueOf(nodeLigne.getAttributs().get("saut")); if(nodeLigne.getAttributs().get("styletitre")!=null) styletitrePrincipale=nodeLigne.getAttributs().get("styletitre"); // les cellules de la ligne ArrayList cels = nodeLigne.retourneListEnfantsByName("cellule"); for(int i = 0 ; i < cels.size();i++) { cellules.put(i , new cellule(cels.get(i),numLigne,cels.get(i).getAttributs().get("RefColonne"))); } } /** * Chragement d'une nouvelle ligne * @param nodeLigne : nodeAC de la ligne actuelle * @param numLigne : numéro de la ligne * @param XMLContent * @param a * @throws IOException */ public ligne(nodeAC nodeLigne, String numLigne,nodeAC nod, Integer indexStudent) throws IOException { RefLigne= numLigne; int numeroLigne = Integer.valueOf(numLigne); // chargement if(nodeLigne.getAttributs().get("table:style-name")!=null) propertiesRow.put("Style", nodeLigne.getAttributs().get("table:style-name")); if(nodeLigne.getAttributs().get("table:number-rows-repeated")!=null) propertiesRow.put("Repetition", nodeLigne.getAttributs().get("table:number-rows-repeated")); propertiesRow.put("RefLigne", numLigne); //chargement propertiesRow.put("evaluer", "false"); //Le style pour obtenir la hauteur de la ligne ArrayList cels = nod.retourneListEnfantsByName("style:style", "style:name", propertiesRow.get("Style")); if(cels.size()>0) { nodeAC b = cels.get(0).retourneFirstEnfantsByName("style:table-row-properties"); if(b!=null) { if(b.getAttributs().get("style:row-height")!=null) propertiesRow.put("HauteurLigne",b.getAttributs().get("style:row-height")); } } // chargement d'une nouvelle cellule cels = nodeLigne.retourneListEnfantsByName("table:table-cell"); // cels sont les cellules de la ligne actuelle int nombreRepetitioncolonne = 0; // concerne les cellules de la ligne actuelle (pas suivante) int nombreRepetitionligne = 0; for(int i = 0 ; i < cels.size();i++) { if(i>0) if(cellules.get(i-1).propertiesCell.get("RepetitionColumn")!=null || cellules.get(i-1).propertiesCell.get("FusionColumn")!=null ) { if(cellules.get(i-1).propertiesCell.get("RepetitionColumn")!=null ) nombreRepetitioncolonne = nombreRepetitioncolonne + Integer.valueOf(cellules.get(i-1).propertiesCell.get("RepetitionColumn"))-1; if(cellules.get(i-1).propertiesCell.get("FusionColumn")!=null ) nombreRepetitioncolonne = nombreRepetitioncolonne + Integer.valueOf(cellules.get(i-1).propertiesCell.get("FusionColumn"))-1; } //Fusion des lignes et des colonnes if(numeroLigne>1) { for(int k = 0; k < lignes.size();k++) { if(Integer.valueOf(lignes.get(k).getRefLigne())0) { for(int l = 0 ; l < lignes.get(k).getCellules().size();l++) { if(Integer.valueOf(lignes.get(k).getCellules().get(l).getRefColonne())<=i+1) { cellule ce = lignes.get(k).getCellules().get(l); String fusLigne = ce.getPropertiesCell().get("FusionRow"); if(fusLigne!=null) { if(Integer.valueOf(fusLigne)>1) { nombreRepetitioncolonne=0; int decalageColonne = Integer.valueOf(lignes.get(k).getCellules().get(l).getRefColonne())-Integer.valueOf(ce.getRefColonne()); int line = Integer.valueOf(ce.getRefLigne()); if(numeroLigne getPropertiesRow() { return propertiesRow; } public TreeMap getCellules() { return cellules; } public String getEvaluer() { return evaluer; } public String getCommunication() { return communication; } public String getTitre() { return titre; } public boolean isSaut() { return saut; } public String getStyletitrePrincipale() { return styletitrePrincipale; } /********************************************* * Class cellule * @author Pablo * ********************************************/ public class cellule{ private String evaluer = "false"; private String refLigne; private String refColonne; private String RefColDansClasseur; private String RefLigDansClasseur; private String styletitre = "H1"; private boolean Menu = true; private boolean FusionLigne = false; private boolean saut = false; private String titre=""; private validation val = new validation(); private TreeMap propertiesCell = new TreeMap(); private graphic Graph = null; /** * Sujet * @param cel * @param numLigne * @param numColonne */ public cellule(nodeAC cel,String numLigne,String numColonne) { refLigne = numLigne; refColonne = numColonne; RefColDansClasseur = ConvertirNumColonneEnString(Integer.valueOf(refColonne)); RefLigDansClasseur = refLigne; valeurParDefault(); nodeAC c = cel.retourneFirstEnfantsByName("propertiesCell"); if(c.getAttributs().get("Style")!=null) propertiesCell.put("Style",c.getAttributs().get("Style")); if(c.getAttributs().get("TypeValue")!=null) propertiesCell.put("TypeValue",c.getAttributs().get("TypeValue")); if(c.getAttributs().get("DateValue")!=null) propertiesCell.put("DateValue",c.getAttributs().get("DateValue")); if(c.getAttributs().get("NomValidation")!=null) propertiesCell.put("NomValidation",c.getAttributs().get("NomValidation")); if(c.getAttributs().get("Format_NombreMiniDigit")!=null) propertiesCell.put("Format_NombreMiniDigit",c.getAttributs().get("Format_NombreMiniDigit")); if(c.getAttributs().get("Format_NombreDecimale")!=null) propertiesCell.put("Format_NombreDecimale",c.getAttributs().get("Format_NombreDecimale")); if(c.getAttributs().get("Format_DateJour")!=null) propertiesCell.put("Format_DateJour",c.getAttributs().get("Format_DateJour")); if(c.getAttributs().get("Format_DateMois")!=null) propertiesCell.put("Format_DateMois",c.getAttributs().get("Format_DateMois")); if(c.getAttributs().get("Format_DateAnnee")!=null) propertiesCell.put("Format_DateAnnee",c.getAttributs().get("Format_DateAnnee")); if(c.getAttributs().get("Format_DateJourText")!=null) propertiesCell.put("Format_DateJourText",c.getAttributs().get("Format_DateJourText")); if(c.getAttributs().get("Format_DateTexte")!=null) propertiesCell.put("Format_DateTexte",c.getAttributs().get("Format_DateTexte")); if(c.getAttributs().get("Format_NotationScientifique")!=null) propertiesCell.put("Format_NotationScientifique",c.getAttributs().get("Format_NotationScientifique")); if(c.getAttributs().get("Format_SigneExposant")!=null) propertiesCell.put("Format_SigneExposant",c.getAttributs().get("Format_SigneExposant")); if(c.getAttributs().get("Format_IntervalleExposant")!=null) propertiesCell.put("Format_IntervalleExposant",c.getAttributs().get("Format_IntervalleExposant")); if(c.getAttributs().get("Format_NombreMiniDigitExposant")!=null) propertiesCell.put("Format_NombreMiniDigitExposant",c.getAttributs().get("Format_NombreMiniDigitExposant")); if(c.getAttributs().get("Format_NombreMiniEntierValeur")!=null) propertiesCell.put("Format_NombreMiniEntierValeur",c.getAttributs().get("Format_NombreMiniEntierValeur")); if(c.getAttributs().get("Format_NombreMiniDecimale")!=null) propertiesCell.put("Format_NombreMiniDecimale",c.getAttributs().get("Format_NombreMiniDecimale")); if(c.getAttributs().get("Format_NombreDecimale")!=null) propertiesCell.put("Format_NombreDecimale",c.getAttributs().get("Format_NombreDecimale")); if(c.getAttributs().get("Format_Fraction")!=null) propertiesCell.put("Format_Fraction",c.getAttributs().get("Format_Fraction")); if(c.getAttributs().get("Format_NombreMiniEntierValeur")!=null) propertiesCell.put("Format_NombreMiniEntierValeur",c.getAttributs().get("Format_NombreMiniEntierValeur")); if(c.getAttributs().get("Format_NombreMaxDenominateur")!=null) propertiesCell.put("Format_NombreMaxDenominateur",c.getAttributs().get("Format_NombreMaxDenominateur")); if(c.getAttributs().get("Format_NombreMiniDigitDenominateur")!=null) propertiesCell.put("Format_NombreMiniDigitDenominateur",c.getAttributs().get("Format_NombreMiniDigitDenominateur")); if(c.getAttributs().get("Format_NombreMaxEntierValeur")!=null) propertiesCell.put("Format_NombreMaxEntierValeur",c.getAttributs().get("Format_NombreMaxEntierValeur")); if(c.getAttributs().get("Format_NombreMaxNumerateur")!=null) propertiesCell.put("Format_NombreMaxNumerateur",c.getAttributs().get("Format_NombreMaxNumerateur")); if(c.getAttributs().get("Format_NombreMiniDigitNumerateur")!=null) propertiesCell.put("Format_NombreMiniDigitNumerateur",c.getAttributs().get("Format_NombreMiniDigitNumerateur")); if(c.getAttributs().get("Device")!=null) propertiesCell.put("Device",c.getAttributs().get("Device")); if(c.getAttributs().get("Symbol-Unit")!=null) propertiesCell.put("Symbol-Unit",c.getAttributs().get("Symbol-Unit")); if(c.getAttributs().get("Formule")!=null) propertiesCell.put("Formule",c.getAttributs().get("Formule")); if(c.getAttributs().get("FormuleMatrixLigne")!=null) propertiesCell.put("FormuleMatrixLigne",c.getAttributs().get("FormuleMatrixLigne")); if(c.getAttributs().get("FormuleMatrixColonne")!=null) propertiesCell.put("FormuleMatrixColonne",c.getAttributs().get("FormuleMatrixColonne")); if(c.getAttributs().get("FusionColumn")!=null) propertiesCell.put("FusionColumn",c.getAttributs().get("FusionColumn")); if(c.getAttributs().get("FusionRow")!=null) propertiesCell.put("FusionRow",c.getAttributs().get("FusionRow")); if(c.getAttributs().get("AjusteLeTexte")!=null) propertiesCell.put("AjusteLeTexte",c.getAttributs().get("AjusteLeTexte")); if(c.getAttributs().get("BordureHaute")!=null) propertiesCell.put("BordureHaute",c.getAttributs().get("BordureHaute")); if(c.getAttributs().get("BordureDroite")!=null) propertiesCell.put("BordureDroite",c.getAttributs().get("BordureDroite")); if(c.getAttributs().get("BordureGauche")!=null) propertiesCell.put("BordureGauche",c.getAttributs().get("BordureGauche")); if(c.getAttributs().get("BordureBasse")!=null) propertiesCell.put("BordureBasse",c.getAttributs().get("BordureBasse")); if(c.getAttributs().get("CouleurArrierPlan")!=null) propertiesCell.put("CouleurArrierPlan",c.getAttributs().get("CouleurArrierPlan")); if(c.getAttributs().get("CouleurPolice")!=null) propertiesCell.put("CouleurPolice",c.getAttributs().get("CouleurPolice")); if(c.getAttributs().get("AlignementVertical")!=null) propertiesCell.put("AlignementVertical",c.getAttributs().get("AlignementVertical")); if(c.getAttributs().get("Bordures")!=null) propertiesCell.put("Bordures",c.getAttributs().get("Bordures")); if(c.getAttributs().get("AlignementText")!=null) propertiesCell.put("AlignementText",c.getAttributs().get("AlignementText")); if(c.getAttributs().get("MargeGauche")!=null) propertiesCell.put("MargeGauche",c.getAttributs().get("MargeGauche")); if(c.getAttributs().get("CouleurRemplissage")!=null) propertiesCell.put("CouleurRemplissage",c.getAttributs().get("CouleurRemplissage")); if(c.getAttributs().get("Police")!=null) propertiesCell.put("Police",c.getAttributs().get("Police")); if(c.getAttributs().get("FontEpaisseur")!=null) propertiesCell.put("FontEpaisseur",c.getAttributs().get("fo:font-weight")); if(c.getAttributs().get("RepetitionColumn")!=null) propertiesCell.put("RepetitionColumn",c.getAttributs().get("RepetitionColumn")); if(c.getAttributs().get("contenuCell")!=null) propertiesCell.put("contenuCell",c.getAttributs().get("contenuCell")); if(c.getAttributs().get("xlink:type")!=null) propertiesCell.put("xlink:type",c.getAttributs().get("xlink:type")); if(c.getAttributs().get("xlink:ref")!=null) propertiesCell.put("xlink:ref",c.getAttributs().get("xlink:ref")); if(c.getAttributs().get("LargeurColonne")!=null) propertiesCell.put("LargeurColonne",c.getAttributs().get("LargeurColonne")); if(cel.getAttributs().get("evaluer")!=null) evaluer = cel.getAttributs().get("evaluer"); if(cel.getAttributs().get("menu")!=null) Menu = Boolean.valueOf(cel.getAttributs().get("menu")); if(cel.getAttributs().get("styletitre")!=null) styletitre = cel.getAttributs().get("styletitre"); if(cel.getAttributs().get("saut")!=null) saut = Boolean.valueOf(cel.getAttributs().get("saut")); if(cel.getAttributs().get("titre")!=null) titre = cel.getAttributs().get("titre"); // validation pour le sujet nodeAC nods = cel.retourneFirstEnfantsByName("validation"); if(!nods.isVide()) val.ajouteValidationProperties(nods); } /** * Chargement d'un nouvelle cellule * @param cel * @param numLigne * @param numColonne * @param XMLContent * @param a * @throws IOException */ public cellule(nodeAC cel,String numLigne,String numColonne,nodeAC nod, Integer indexStudent) throws IOException { refLigne = numLigne; refColonne = numColonne; RefColDansClasseur = ConvertirNumColonneEnString(Integer.valueOf(refColonne)); RefLigDansClasseur = refLigne; valeurParDefault(); propertiesCell.put("Style",cel.getAttributs().get("table:style-name")); if(cel.getAttributs().get("table:style-name")!=null) propertiesCell.put("Style",cel.getAttributs().get("table:style-name")); if(cel.getAttributs().get("calcext:value-type")!=null) propertiesCell.put("TypeValue",cel.getAttributs().get("calcext:value-type")); if(cel.getAttributs().get("office:currency")!=null) propertiesCell.put("Devise",cel.getAttributs().get("office:currency")); if(cel.getAttributs().get("office:date-value")!=null) propertiesCell.put("DateValue",cel.getAttributs().get("office:date-value")); if(cel.getAttributs().get("table:content-validation-name")!=null) propertiesCell.put("NomValidation",cel.getAttributs().get("table:content-validation-name")); if(cel.getAttributs().get("table:formula")!=null) propertiesCell.put("Formule",cel.getAttributs().get("table:formula")); if(cel.getAttributs().get("table:number-matrix-rows-spanned")!=null) propertiesCell.put("FormuleMatrixLigne",cel.getAttributs().get("table:number-matrix-rows-spanned")); if(cel.getAttributs().get("table:number-matrix-columns-spanned")!=null) propertiesCell.put("FormuleMatrixColonne",cel.getAttributs().get("table:number-matrix-columns-spanned")); if(cel.getAttributs().get("table:number-columns-repeated")!=null) propertiesCell.put("RepetitionColumn",cel.getAttributs().get("table:number-columns-repeated")); if(cel.getAttributs().get("table:number-columns-spanned")!=null) propertiesCell.put("FusionColumn",cel.getAttributs().get("table:number-columns-spanned")); if(cel.getAttributs().get("table:number-rows-spanned")!=null) { propertiesCell.put("FusionRow",cel.getAttributs().get("table:number-rows-spanned")); FusionLigne=true; } colonne col = retourneColonne(refColonne); if(col!=null) { String LargeurColonne = col.getPropertiesColumn().get("LargeurColonne"); if(LargeurColonne!=null) if(!LargeurColonne.isEmpty()) propertiesCell.put("LargeurColonne",LargeurColonne); } nodeAC c = cel.retourneFirstEnfantsByName("text:p"); if(c!=null) { propertiesCell.put("contenuCell", c.retourneLesContenusEnfants("")); c = c.retourneFirstEnfantsByName("text:a"); if(c!=null) { propertiesCell.put("TypeLien", c.getAttributs().get("xlink:type")); propertiesCell.put("Lien", c.getAttributs().get("xlink:ref")); } } // En premier lieu le style par défaut de la colonne ArrayList s1 = new ArrayList(); if(col!=null) { String st2 = col.getPropertiesColumn().get("Style"); s1 = nod.retourneListEnfantsByName("style:style", "style:name",st2); if(s1.size()>0) { nodeAC n1 = s1.get(0); addProperties(n1); } st2 = col.getPropertiesColumn().get("StyleDefautCell"); s1 = nod.retourneListEnfantsByName("style:style", "style:name",st2); if(s1.size()>0) { nodeAC n1 = s1.get(0); addProperties(n1); } } // En seconde lieu le style de la cellule qui écrase le style de la colonne s1 = nod.retourneListEnfantsByName("style:style", "style:name",propertiesCell.get("Style")); if(s1.size()>0) { nodeAC n1 = s1.get(0); addProperties(n1); //le style du format String styleFormatData = n1.getAttributs().get("style:data-style-name"); if(styleFormatData!=null) { s1 = nod.retourneListEnfantsByName("number:number-style", "style:name",styleFormatData); if(s1.size()>0) { n1 = s1.get(0); addProperties(n1); } s1 = nod.retourneListEnfantsByName("number:date-style", "style:name",styleFormatData); if(s1.size()>0) { n1 = s1.get(0); addProperties(n1); } s1 = nod.retourneListEnfantsByName("number:percentage-style", "style:name",styleFormatData); if(s1.size()>0) { n1 = s1.get(0); addProperties(n1); } } } // validation de données if(propertiesCell.get("NomValidation")!=null) { ArrayList v = nod.retourneListEnfantsByName("table:content-validation","table:name", propertiesCell.get("NomValidation")); if(v.size()>0) val.ajouteValidationProperties(v.get(0)); } // graphique ancrer à la cellule c = cel.retourneFirstEnfantsByName("draw:frame"); if(c!=null) { Graph = new graphic(c, nod, indexStudent); } } /** * Valeur par défaut */ public void valeurParDefault() { propertiesCell.put("MargeGauche","default"); propertiesCell.put("AlignementText","default"); propertiesCell.put("CouleurPolice","default"); propertiesCell.put("FontTaille","default"); propertiesCell.put("AlignementVertical","default"); propertiesCell.put("AjusteLeTexte","default"); } /** * Ajoute des propriétés à partir des différents styles (cellule, colonne) * @param n1 */ public void addProperties(nodeAC n1) { if(n1.getAttributs().get("style:data-style-name")!=null) getPropertiesCell().put("StyleDate",n1.getAttributs().get("style:data-style-name")); if(n1.getAttributs().get("style:parent-style-name")!=null) getPropertiesCell().put("StyleParent",n1.getAttributs().get("style:parent-style-name")); nodeAC n2 = n1.retourneFirstEnfantsByName("style:table-cell-properties"); if(n2!=null) { if(n2.getAttributs().get("fo:border")!=null) { getPropertiesCell().put("Bordures",n2.getAttributs().get("fo:border")); getPropertiesCell().remove("BordureHaute"); getPropertiesCell().remove("BordureDroite"); getPropertiesCell().remove("BordureGauche"); getPropertiesCell().remove("BordureBasse"); } if(n2.getAttributs().get("fo:border-top")!=null) { getPropertiesCell().put("BordureHaute",n2.getAttributs().get("fo:border-top"));getPropertiesCell().remove("Bordures");} if(n2.getAttributs().get("fo:border-right")!=null) { getPropertiesCell().put("BordureDroite",n2.getAttributs().get("fo:border-right"));getPropertiesCell().remove("Bordures");} if(n2.getAttributs().get("fo:border-left")!=null) { getPropertiesCell().put("BordureGauche",n2.getAttributs().get("fo:border-left"));getPropertiesCell().remove("Bordures");} if(n2.getAttributs().get("fo:border-bottom")!=null) { getPropertiesCell().put("BordureBasse",n2.getAttributs().get("fo:border-bottom"));getPropertiesCell().remove("Bordures");} if(n2.getAttributs().get("style:vertical-align")!=null) getPropertiesCell().put("AlignementVertical",n2.getAttributs().get("style:vertical-align")); if(n2.getAttributs().get("fo:background-color")!=null) getPropertiesCell().put("CouleurArrierPlan",n2.getAttributs().get("fo:background-color")); if(n2.getAttributs().get("fo:wrap-option")!=null) getPropertiesCell().put("AjusteLeTexte",n2.getAttributs().get("fo:wrap-option")); } n2 = n1.retourneFirstEnfantsByName("style:table-column-properties"); if(n2!=null) { if(n2.getAttributs().get("style:column-width")!=null) getPropertiesCell().put("LargeurColonne",n2.getAttributs().get("style:column-width")); } n2 = n1.retourneFirstEnfantsByName("style:paragraph-properties"); if(n2!=null) { if(n2.getAttributs().get("fo:margin-left")!=null) getPropertiesCell().put("MargeGauche",n2.getAttributs().get("fo:margin-left")); if(n2.getAttributs().get("fo:text-align")!=null) getPropertiesCell().put("AlignementText",n2.getAttributs().get("fo:text-align")); } n2 = n1.retourneFirstEnfantsByName("style:text-properties"); if(n2!=null) { if(n2.getAttributs().get("style:font-name")!=null) getPropertiesCell().put("Police",n2.getAttributs().get("style:font-name")); if(n2.getAttributs().get("fo:color")!=null) getPropertiesCell().put("CouleurPolice",n2.getAttributs().get("fo:color")); if(n2.getAttributs().get("fo:font-weight")!=null) getPropertiesCell().put("FontEpaisseur",n2.getAttributs().get("fo:font-weight")); if(n2.getAttributs().get("fo:font-size")!=null) getPropertiesCell().put("FontTaille",n2.getAttributs().get("fo:font-size")); } n2 = n1.retourneFirstEnfantsByName("number:number"); if(n2!=null) { if(n2.getAttributs().get("number:min-integer-digits")!=null) getPropertiesCell().put("Format_NombreMiniDigit",n2.getAttributs().get("number:min-integer-digits")); if(n2.getAttributs().get("number:decimal-places")!=null) getPropertiesCell().put("Format_NombreDecimale",n2.getAttributs().get("number:decimal-places")); n2 = n1.retourneFirstEnfantsByName("number:text"); if(n2!=null) if(n2.getContenu().size()>0) getPropertiesCell().put("Symbol-Unit",n2.getContenu().get(0)); } n2 = n1.retourneFirstEnfantsByName("number:scientific-number"); if(n2!=null) { getPropertiesCell().put("Format_NotationScientifique","true"); if(n2.getAttributs().get("loext:forced-exponent-sign")!=null) getPropertiesCell().put("Format_SigneExposant",n2.getAttributs().get("loext:forced-exponent-sign")); if(n2.getAttributs().get("loext:exponent-interval")!=null) getPropertiesCell().put("Format_IntervalleExposant",n2.getAttributs().get("loext:exponent-interval")); if(n2.getAttributs().get("number:min-exponent-digits")!=null) getPropertiesCell().put("Format_NombreMiniDigitExposant",n2.getAttributs().get("number:min-exponent-digits")); if(n2.getAttributs().get("number:min-integer-digits")!=null) getPropertiesCell().put("Format_NombreMiniEntierValeur",n2.getAttributs().get("number:min-integer-digits")); if(n2.getAttributs().get("loext:min-decimal-places")!=null) getPropertiesCell().put("Format_NombreMiniDecimale",n2.getAttributs().get("loext:min-decimal-places")); if(n2.getAttributs().get("number:decimal-places")!=null) getPropertiesCell().put("Format_NombreDecimale",n2.getAttributs().get("number:decimal-places")); } n2 = n1.retourneFirstEnfantsByName("number:fraction"); if(n2!=null) { getPropertiesCell().put("Format_Fraction","true"); if(n2.getAttributs().get("number:min-integer-digits")!=null) getPropertiesCell().put("Format_NombreMiniEntierValeur",n2.getAttributs().get("number:min-integer-digits")); if(n2.getAttributs().get("loext:max-denominator-value")!=null) getPropertiesCell().put("Format_NombreMaxDenominateur",n2.getAttributs().get("loext:max-denominator-value")); if(n2.getAttributs().get("number:min-denominator-digits")!=null) getPropertiesCell().put("Format_NombreMiniDigitDenominateur",n2.getAttributs().get("number:min-denominator-digits")); if(n2.getAttributs().get("loext:max-numerator-digits")!=null) getPropertiesCell().put("Format_NombreMaxEntierValeur",n2.getAttributs().get("loext:max-numerator-digits")); if(n2.getAttributs().get("loext:min-decimal-places")!=null) getPropertiesCell().put("Format_NombreMaxNumerateur",n2.getAttributs().get("loext:min-decimal-places")); if(n2.getAttributs().get("number:min-numerator-digits")!=null) getPropertiesCell().put("Format_NombreMiniDigitNumerateur",n2.getAttributs().get("number:min-numerator-digits")); } n2 = n1.retourneFirstEnfantsByName("number:percentage-style"); if(n2!=null) { if(n2.getAttributs().get("number:min-integer-digits")!=null) getPropertiesCell().put("Format_NombreMiniDigit",n2.getAttributs().get("number:min-integer-digits")); if(n2.getAttributs().get("number:decimal-places")!=null) getPropertiesCell().put("Format_NombreDecimale",n2.getAttributs().get("number:decimal-places")); } if(n1.getAttributs().get("number:format-source")!=null) getPropertiesCell().put("Format_DateTexte",n1.getAttributs().get("number:format-source")); n2 = n1.retourneFirstEnfantsByName("number:day"); if(n2!=null) { if(n2.getAttributs().size()==0) getPropertiesCell().put("Format_DateJour","default"); if(n2.getAttributs().get("number:style")!=null) getPropertiesCell().put("Format_DateJour",n2.getAttributs().get("number:style")); } n2 = n1.retourneFirstEnfantsByName("number:day-of-week"); if(n2!=null) { if(n2.getAttributs().get("number:style")!=null) getPropertiesCell().put("Format_DateJourText",n2.getAttributs().get("number:style")); } n2 = n1.retourneFirstEnfantsByName("number:month"); if(n2!=null) { if(n2.getAttributs().get("number:style")!=null) getPropertiesCell().put("Format_DateMois",n2.getAttributs().get("number:style")); if(n2.getAttributs().get("number:textual")!=null) getPropertiesCell().put("Format_DateMoisTextuel",n2.getAttributs().get("number:textual")); } n2 = n1.retourneFirstEnfantsByName("number:year"); if(n2!=null) { if(n2.getAttributs().size()==0) getPropertiesCell().put("Format_DateAnnee","default"); if(n2.getAttributs().get("number:style")!=null) getPropertiesCell().put("Format_DateAnnee",n2.getAttributs().get("number:style")); } } /** * Constructeur cellule vide */ public cellule() { } public graphic getGraph() { return Graph; } public String getEvaluer() { return evaluer; } public boolean isMenu() { return Menu; } public String getRefLigne() { return refLigne; } public void setRefLigne(String refLigne) { this.refLigne = refLigne; } public String getRefColonne() { return refColonne; } public String getTitre() { return titre; } public void setRefColonne(String refColonne) { this.refColonne = refColonne; } public String getRefColDansClasseur() { return RefColDansClasseur; } public void setRefColDansClasseur(String refColDansClasseur) { RefColDansClasseur = refColDansClasseur; } public String getRefLigDansClasseur() { return RefLigDansClasseur; } public validation getVal() { return val; } public TreeMap getPropertiesCell() { return propertiesCell; } public void setVal(validation val) { this.val = val; } public String getStyletitre() { return styletitre; } public boolean isFusionLigne() { return FusionLigne; } public void setFusionLigne(boolean fusionLigne) { FusionLigne = fusionLigne; } public boolean isSaut() { return saut; } /*************************************************** * Class validation de données * @author Pablo * ***************************************************/ public class validation{ private boolean evaluer = false; private boolean saut = false; private boolean empty = true; private String styletitre = "H1"; private TreeMap propertiesValidation = new TreeMap(); public void ajouteValidationProperties(nodeAC v) { //chargement if(v.getAttributs().get("table:name")!=null) propertiesValidation.put("Nom", v.getAttributs().get("table:name")); if(v.getAttributs().get("table:base-cell-address")!=null) propertiesValidation.put("StartCell", v.getAttributs().get("table:base-cell-address")); if(v.getAttributs().get("table:allow-empty-cell")!=null) propertiesValidation.put("AutoriseVide", v.getAttributs().get("table:allow-empty-cell")); if(v.getAttributs().get("table:condition")!=null) propertiesValidation.put("Condition", v.getAttributs().get("table:condition")); nodeAC v1 = v.retourneFirstEnfantsByName("table:help-message"); if(v1.getAttributs().get("table:title")!=null) propertiesValidation.put("TitreHelp", v1.getAttributs().get("table:title")); if(v1.getAttributs().get("table:display")!=null) propertiesValidation.put("AfficheHelp", v1.getAttributs().get("table:display")); v1 = v1.retourneFirstEnfantsByName("text:p"); propertiesValidation.put("ContenuMessageHelp", v1.retourneLesContenusEnfants("")); v1 = v.retourneFirstEnfantsByName("table:error-message"); if(v1.getAttributs().get("table:title")!=null) propertiesValidation.put("TitreError", v1.getAttributs().get("table:title")); if(v1.getAttributs().get("table:display")!=null) propertiesValidation.put("AfficheError", v1.getAttributs().get("table:display")); if(v1.getAttributs().get("table:message-type")!=null) propertiesValidation.put("TypeError", v1.getAttributs().get("table:message-type")); v1 = v1.retourneFirstEnfantsByName("text:p"); propertiesValidation.put("ContenuMessageError", v1.retourneLesContenusEnfants("")); //sujet if(v.getAttributs().get("Nom")!=null) propertiesValidation.put("Nom", v.getAttributs().get("Nom")); if(v.getAttributs().get("StartCell")!=null) propertiesValidation.put("StartCell", v.getAttributs().get("StartCell")); if(v.getAttributs().get("AutoriseVide")!=null) propertiesValidation.put("AutoriseVide", v.getAttributs().get("AutoriseVide")); if(v.getAttributs().get("Condition")!=null) propertiesValidation.put("Condition", v.getAttributs().get("Condition")); if(v.getAttributs().get("TitreHelp")!=null) propertiesValidation.put("TitreHelp", v.getAttributs().get("TitreHelp")); if(v.getAttributs().get("AfficheHelp")!=null) propertiesValidation.put("AfficheHelp", v.getAttributs().get("AfficheHelp")); if(v.getAttributs().get("ContenuMessageHelp")!=null) propertiesValidation.put("ContenuMessageHelp", v.getAttributs().get("ContenuMessageHelp")); if(v.getAttributs().get("TitreError")!=null) propertiesValidation.put("TitreError", v.getAttributs().get("TitreError")); if(v.getAttributs().get("AfficheError")!=null) propertiesValidation.put("AfficheError", v.getAttributs().get("AfficheError")); if(v.getAttributs().get("TypeError")!=null) propertiesValidation.put("TypeError", v.getAttributs().get("TypeError")); if(v.getAttributs().get("ContenuMessageError")!=null) propertiesValidation.put("ContenuMessageError", v.getAttributs().get("ContenuMessageError")); if(v.getAttributs().get("evaluer")!=null) evaluer = Boolean.valueOf(v.getAttributs().get("evaluer")); if(v.getAttributs().get("styletitre")!=null) styletitre = v.getAttributs().get("styletitre"); if(v.getAttributs().get("saut")!=null) saut = Boolean.valueOf(v.getAttributs().get("saut")); empty=false; } public validation() { } public String getStyletitre() { return styletitre; } public boolean isEmpty() { return empty; } public void setEmpty(boolean empty) { this.empty = empty; } public TreeMap getPropertiesValidation() { return propertiesValidation; } public boolean isSaut() { return saut; } public boolean isEvaluer() { return evaluer; } } //validation } //cellule } // ligne } // feuille // /** // * Ecriture des objets dans un fichier sans utiliser le JSON // * @param patch // * @throws IOException // */ // public void ecritureClasseur(String patch) throws IOException { // System.getProperty("file.encoding","UTF-8"); // // Path outputFilePath = Paths.get(patch + "/codeFichier.xml"); // BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8); // // fichier.write("\r\r"); // fichier.write("\r\r"); // fichier.write("\r\r"); // fichier.write("\r\r"); // fichier.write("\r\r"); // fichier.write("\r\r"); // fichier.write("\r\r"); // fichier.write("\r\r"); // fichier.write("\r\r"); // // fichier.newLine(); // // fichier.write("\r"); // fichier.newLine(); // fichier.write(""); // fichier.newLine(); // // // nommage des cellules // for (Entry j : nommageCellules.entrySet()) { // fichier.write(""); // fichier.newLine(); // } // // // //feuille // for (Entry k : Feuilles.entrySet()) { // fichier.newLine(); // fichier.write("\r"); // fichier.newLine(); // fichier.write("\t\r"); // fichier.newLine(); // // for (Entry j : k.getValue().getNommageCellulesFeuille().entrySet()) { // fichier.write("\t"); // fichier.newLine(); // } // // //colonne // for (Entry k1 : k.getValue().getColonnes().entrySet()) { // fichier.newLine(); // fichier.write("\t k2 : k1.getValue().getPropertiesColumn().entrySet()) { // fichier.write(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; // } // fichier.write(">\r"); // } // // //ligne // for (Entry k1 : k.getValue().getLignes().entrySet()) { // fichier.newLine(); // fichier.write("\t\r"); // fichier.newLine(); // fichier.write("\t\t" + k1.getValue().getCommunication() +"\r"); // fichier.newLine(); // fichier.write("\t\t k2 : k1.getValue().getPropertiesRow().entrySet()) { // fichier.write(" " + k2.getKey() + "=\"" + k2.getValue() + "\"") ; // } // fichier.write(">\r"); // // for (Entry k2 : k1.getValue().getCellules().entrySet()) { // fichier.newLine(); // fichier.write("\t\t\r" ); // // fichier.write("\t\t\t k3 : k2.getValue().getPropertiesCell().entrySet()) { // fichier.write(" " + k3.getKey() + "=\"" + k3.getValue() + "\"" ) ; // } // fichier.write(">\r"); // // fichier.newLine(); // fichier.write("\t\t\t k3 : k2.getValue().getVal().getPropertiesValidation().entrySet()) { // fichier.write(" " + k3.getKey() + "=\"" + k3.getValue() + "\"" ) ; // } // fichier.write(">\r"); // // fichier.newLine(); // if(k2.getValue().getGraph()!=null) { // ecritureGraphique(fichier,k2.getValue().getGraph(),"\t\t"); // } // // fichier.write("\t\t\r"); // // } // // fichier.write("\t\r"); // } // // //graphic // // for (Entry k1 : k.getValue().getGraphics().entrySet()) { // fichier.newLine(); // ecritureGraphique(fichier,k1.getValue(),""); // } // // // fichier.write("\r"); // } // // fichier.write("\r"); // fichier.close(); // } public nodeAC convertClasseurToNode(Ecriture.typeFichier type) throws IOException { StringBuilder fichier = new StringBuilder(); fichier.append(""); fichier.append(""); } // nommage des cellules for (Entry j : nommageCellules.entrySet()) { fichier.append(""); } //feuille for (Entry k : Feuilles.entrySet()) { fichier.append(""); fichier.append(""); for (Entry j : k.getValue().getNommageCellulesFeuille().entrySet()) { fichier.append(""); } //colonne for (Entry k1 : k.getValue().getColonnes().entrySet()) { fichier.append(" k2 : k1.getValue().getPropertiesColumn().entrySet()) { fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.append(">"); } //ligne for (Entry k1 : k.getValue().getLignes().entrySet()) { fichier.append(""); fichier.append("" + k1.getValue().getCommunication() +""); fichier.append(" k2 : k1.getValue().getPropertiesRow().entrySet()) { fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"") ; } fichier.append(">"); for (Entry k2 : k1.getValue().getCellules().entrySet()) { fichier.append("" ); fichier.append(" k3 : k2.getValue().getPropertiesCell().entrySet()) { fichier.append(" " + k3.getKey() + "=\"" + k3.getValue() + "\"" ) ; } fichier.append(">"); fichier.append(" k3 : k2.getValue().getVal().getPropertiesValidation().entrySet()) { fichier.append(" " + k3.getKey() + "=\"" + k3.getValue() + "\"" ) ; } fichier.append(">"); if(k2.getValue().getGraph()!=null) { ecritureGraphique(fichier,k2.getValue().getGraph(),""); } fichier.append(""); } fichier.append(""); } //graphic for (Entry k1 : k.getValue().getGraphics().entrySet()) { ecritureGraphique(fichier,k1.getValue(),""); } fichier.append(""); } fichier.append(""); constructionNodeAvecString A = new constructionNodeAvecString(); return A.NewNode(fichier.toString()); } /** * * @param fichier * @param k1 * @throws IOException */ private void ecritureGraphique(StringBuilder fichier, graphic k1, String prefix ) throws IOException { fichier.append(prefix+""); fichier.append("" ) ; fichier.append(prefix+" k2 : k1.getPropertiesGraphic().entrySet()) { fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.append(">"); fichier.append(prefix+" k2 : k1.getTitre().entrySet()) { fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.append(">"); fichier.append(prefix+" k2 : k1.getSoustitre().entrySet()) { fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.append(">"); fichier.append(prefix+" k2 : k1.getAiregraphic().entrySet()) { fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.append(">"); fichier.append(prefix+" k2 : k1.getAxeXprincipal().entrySet()) { fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.append(">"); fichier.append(prefix+" k2 : k1.getAxeYprincipal().entrySet()) { fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.append(">"); fichier.append(prefix+" k2 : k1.getAxeXsecondaire().entrySet()) { fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.append(">"); fichier.append(prefix+" k2 : k1.getAxeYsecondaire().entrySet()) { fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.append(">"); fichier.append(prefix+" k2 : k1.getLegend().entrySet()) { fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.append(">"); fichier.append(prefix+" k2 : k1.getSeries().entrySet()) { fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.append(">"); fichier.append(prefix+""); } private void ecritureGraphique(BufferedWriter fichier, graphic k1, String prefix ) throws IOException { fichier.write(prefix+"\t\r"); fichier.newLine(); fichier.write("\t\t" ) ; fichier.newLine(); fichier.newLine(); fichier.write(prefix+"\t\t k2 : k1.getPropertiesGraphic().entrySet()) { fichier.write(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.write(">\r"); fichier.newLine(); fichier.write(prefix+"\t\t k2 : k1.getTitre().entrySet()) { fichier.write(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.write(">\r"); fichier.newLine(); fichier.write(prefix+"\t\t k2 : k1.getSoustitre().entrySet()) { fichier.write(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.write(">\r"); fichier.newLine(); fichier.write(prefix+"\t\t k2 : k1.getAiregraphic().entrySet()) { fichier.write(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.write(">\r"); fichier.newLine(); fichier.write(prefix+"\t\t k2 : k1.getAxeXprincipal().entrySet()) { fichier.write(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.write(">\r"); fichier.newLine(); fichier.write(prefix+"\t\t k2 : k1.getAxeYprincipal().entrySet()) { fichier.write(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.write(">\r"); fichier.newLine(); fichier.write(prefix+"\t\t k2 : k1.getAxeXsecondaire().entrySet()) { fichier.write(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.write(">\r"); fichier.newLine(); fichier.write(prefix+"\t\t k2 : k1.getAxeYsecondaire().entrySet()) { fichier.write(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.write(">\r"); fichier.newLine(); fichier.write(prefix+"\t\t k2 : k1.getLegend().entrySet()) { fichier.write(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.write(">\r"); fichier.newLine(); fichier.write(prefix+"\t\t k2 : k1.getSeries().entrySet()) { fichier.write(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; } fichier.write(">\r"); fichier.write(prefix+"\t\r"); } // /** // * Constructeur pour le sujet // * @param a // * @return // * @throws Exception // */ // public Classeur2(String fichierResource, Boolean Erreur) throws Exception { // // if(Erreur) System.exit(0); // // ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); // InputStream is = classLoader.getResourceAsStream(fichierResource+".xml"); // // Reader initialReader = new BufferedReader(new InputStreamReader(is, "UTF-8")); // char[] arr = new char[8 * 1024]; // StringBuilder buffer = new StringBuilder(); // int numCharsRead; // while ((numCharsRead = initialReader.read(arr, 0, arr.length)) != -1) { // buffer.append(arr, 0, numCharsRead); // } // initialReader.close(); // // ! Important néttoyage du fichier avant lecture avec bXML // String targetString = buffer.toString(); // targetString = targetString.replace("\r", ""); // targetString = targetString.replace("\n", ""); // targetString = targetString.replace("\t", ""); // // // supprime les espaces multiples // Pattern p = Pattern.compile(" {2,}"); // targetString = p.matcher(targetString).replaceAll(" "); // // // Lecture avec nodeAC // constructionNodeAvecString A = new constructionNodeAvecString(); // nodeAC LeNodeSujet = A.NewNode(targetString); // // // calc.commandes.analyse_metaSujet = LeNodeSujet.getAttributs().get("metaSujet"); // metaSujetContent = LeNodeSujet.getAttributs().get("metaSujetContent"); // NbreFeuille = Integer.valueOf(LeNodeSujet.getAttributs().get("NbreFeuille")); // calc.commandes.analyse_progression = Double.valueOf(LeNodeSujet.getAttributs().get("progression")); // if(calc.commandes.analyse_progression>99) calc.commandes.analyse_progression = 99; // if(calc.commandes.analyse_progression<0.01) calc.commandes.analyse_progression = 0.01; // analyse = LeNodeSujet.getAttributs().get("analyse"); // // nodeAC comm = LeNodeSujet.retourneFirstEnfantsByName("communication"); // if(comm!=null) { // communication=comm.getContenu().get(0); // if(comm.getAttributs().get("link")!=null) link=comm.getAttributs().get("link"); // if(comm.getAttributs().get("linktitle")!=null) linktitle=comm.getAttributs().get("linktitle"); // if(comm.getAttributs().get("title")!=null) title=comm.getAttributs().get("title"); // if(comm.getAttributs().get("link2")!=null) link2=comm.getAttributs().get("link2"); // if(comm.getAttributs().get("linktitle2")!=null) linktitle2=comm.getAttributs().get("linktitle2"); // } // // ArrayList nodes = LeNodeSujet.retourneListEnfantsByName("nommage"); // for(int i = 0 ; i< nodes.size() ; i ++) { // nommageCellules.put(nodes.get(i).getAttributs().get("name"), nodes.get(i).getAttributs().get("cells")); // } // // ArrayList nodeFeuille = LeNodeSujet.retourneListEnfantsByName("feuille"); // for(int i = 0 ; i< nodeFeuille.size() ; i ++) { // Feuilles.put(i, new feuille(nodeFeuille.get(i))); // } // // } // // //Chargement d'un sujet à partir d'un fichier d'analyse // public Classeur2(String nameFile) throws Exception { // // String targetString = ""; // //read file into stream, try-with-resources // // @SuppressWarnings("resource") // BufferedReader br = new BufferedReader( // new InputStreamReader( // new FileInputStream(commandes.PathFilenameAnalysis + "/" + nameFile), "UTF-8")); // // String line; // while ((line = br.readLine()) != null) { // targetString = targetString + line; // } // // // if(!targetString.isEmpty()) { // // ! Important néttoyage du fichier avant lecture avec bXML // targetString = targetString.replace("\r", ""); // targetString = targetString.replace("\n", ""); // targetString = targetString.replace("\t", ""); // // supprime les espaces multiples // Pattern p = Pattern.compile(" {2,}"); // targetString = p.matcher(targetString).replaceAll(" "); // // // supprime les espaces entre " et > // p = Pattern.compile("\" {1,}>"); // targetString = p.matcher(targetString).replaceAll("\">"); // // // // Lecture avec NodeAC // constructionNodeAvecString A = new constructionNodeAvecString(); // nodeAC LeNodeSujet = A.NewNode(targetString); // // // calc.commandes.analyse_metaSujet = LeNodeSujet.getAttributs().get("metaSujet"); // metaSujetContent = LeNodeSujet.getAttributs().get("metaSujetContent"); // NbreFeuille = Integer.valueOf(LeNodeSujet.getAttributs().get("NbreFeuille")); // calc.commandes.analyse_progression = Double.valueOf(LeNodeSujet.getAttributs().get("progression")); // if(LeNodeSujet.getAttributs().get("bareme")!=null) { // calc.commandes.analyse_bareme = (Double.valueOf(LeNodeSujet.getAttributs().get("bareme"))); // } // if(LeNodeSujet.getAttributs().get("nbmodification")!=null) { // nbmodification = Integer.valueOf(LeNodeSujet.getAttributs().get("nbmodification")); // } // if(LeNodeSujet.getAttributs().get("nbcopier")!=null) { // nbcopier = Integer.valueOf(LeNodeSujet.getAttributs().get("nbcopier")); // } // if(LeNodeSujet.getAttributs().get("verification")!=null) { // verification = Boolean.valueOf(LeNodeSujet.getAttributs().get("verification")); // } // // // if(calc.commandes.analyse_progression>99) calc.commandes.analyse_progression = 99; // if(calc.commandes.analyse_progression<0.01) calc.commandes.analyse_progression = 0.01; // analyse = LeNodeSujet.getAttributs().get("analyse"); // // nodeAC comm = LeNodeSujet.retourneFirstEnfantsByName("communication"); // if(comm!=null) { // communication=comm.getContenu().get(0); // if(comm.getAttributs().get("link")!=null) link=comm.getAttributs().get("link"); // if(comm.getAttributs().get("linktitle")!=null) linktitle=comm.getAttributs().get("linktitle"); // if(comm.getAttributs().get("title")!=null) title=comm.getAttributs().get("title"); // if(comm.getAttributs().get("link2")!=null) link2=comm.getAttributs().get("link2"); // if(comm.getAttributs().get("linktitle2")!=null) linktitle2=comm.getAttributs().get("linktitle2"); // } // // ArrayList nodes = LeNodeSujet.retourneListEnfantsByName("nommage"); // System.out.println("\t\t-->début lecture nommage des cellules"); // for(int i = 0 ; i< nodes.size() ; i ++) { // nommageCellules.put(nodes.get(i).getAttributs().get("name"), nodes.get(i).getAttributs().get("cells")); // } // System.out.println("\t\t-->fin lecture nommage des cellules"); // // System.out.println(); // // ArrayList nodeFeuille = LeNodeSujet.retourneListEnfantsByName("feuille"); // for(int i = 0 ; i< nodeFeuille.size() ; i ++) { // System.out.println("\t\t-->début lecture feuille : " + nodeFeuille.get(i).getAttributs().get("nomFeuille")); // Feuilles.put(i, new feuille(nodeFeuille.get(i))); // System.out.println("\t\t-->fin lecture feuille : " + nodeFeuille.get(i).getAttributs().get("nomFeuille")); // } // // ArrayList modi= LeNodeSujet.retourneListEnfantsByName("modification"); // if(modi.size()>0) { // System.out.println("\t\t-->début lecture modification simultané"); // if(Boolean.valueOf(modi.get(0).getAttributs().get("evaluer"))){ // for(int i = 0 ; i< modi.get(0).getNodes().size() ; i ++) { // Modif.addModification(modi.get(0).getNodes().get(i)); // } // } // } // // // } // // // } // }