This commit is contained in:
pablo rodriguez 2025-01-09 11:35:09 +01:00
parent cf41fae890
commit 1cc185f8eb
19 changed files with 235 additions and 177 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,87 +1,19 @@
nomEtudiant;note;pourcentage nomEtudiant;note;pourcentage
Alex Marechal;8.0;1.0 Alexine Zajac;5.869872701555869;0.5869872701555869
Alexandre Berthelin;2.527640449438202;0.31595505617977526 Anthony Logez;9.603960396039604;0.9603960396039604
Alexis Legrand;6.112359550561798;0.7640449438202247 Clara Dauchy;10.0;1.0
Alexy Lefebvre;6.000898876404494;0.7501123595505618 Clement Lespagnol;1.0608203677510608;0.10608203677510608
Amelie Bruniaux;6.238202247191011;0.7797752808988764 Colin Morel;10.0;1.0
Anais Blondel;4.5591011235955055;0.5698876404494382 Corentin Caffet;1.0891089108910892;0.10891089108910891
Anais Najdecki;3.358202247191011;0.4197752808988764 Elisa Deretz;10.0;1.0
Antoine Duponchelle;5.357303370786517;0.6696629213483146 Elsa Vasseur;2.14992927864215;0.214992927864215
Antoine Ponchel;6.202247191011236;0.7752808988764045 Eowyn Beugin;6.082036775106082;0.6082036775106082
Apolline Michel;6.159101123595506;0.7698876404494382 Gwendoline Labarre;9.92927864214993;0.9929278642149929
Arthur Willart;4.533932584269663;0.5667415730337079 Jennifer Sabatini;10.0;1.0
Aurelien Ben Yahia;6.03685393258427;0.7546067415730338 Kenza Kessad;4.766619519094767;0.4766619519094767
Axel Aoumat;4.5447191011235955;0.5680898876404494 Lila Lembrez;10.0;1.0
Axel Cadart;5.928988764044944;0.741123595505618 Lowan Corne;10.0;1.0
Aymeric Grenier;6.1986516853932585;0.7748314606741573 Marie Bouteleux;6.152758132956153;0.6152758132956153
Baptiste Fynnaert;3.9298876404494383;0.4912359550561798 Nathanael Ducatel;10.0;1.0
Camille Henneton - - Hecquet;6.112359550561798;0.7640449438202247 Paul Poire;10.0;1.0
Charles Carron;3.832808988764045;0.4791011235955056 Tom Outreman;10.0;1.0
Chloe Mazur;6.058426966292135;0.7573033707865169
Clara Bruneau;3.0921348314606742;0.3865168539325843
Clement Legrand;6.479101123595505;0.8098876404494382
Cyril Massart;4.264269662921349;0.5330337078651686
Doriane Bernard;5.296179775280899;0.6620224719101123
Elliot Pilawa;2.520993227990971;0.31512415349887135
Elodie Vaesken;5.094831460674158;0.6368539325842697
Enora-Lou Deplanque;2.3586516853932586;0.29483146067415733
Esteban Devos Devulder;3.487640449438202;0.43595505617977526
Gabriel Humain;6.166292134831461;0.7707865168539326
Helene Adjal;5.727640449438202;0.7159550561797753
Hugo Guffroy;5.544269662921348;0.6930337078651685
Imen Belaiche;6.0332584269662926;0.7541573033707866
Ines Aubier;5.713258426966292;0.7141573033707865
Ines El Karami;6.09438202247191;0.7617977528089888
Issam Benzemra--Petit;6.115955056179775;0.7644943820224719
Jane Gosset;6.101573033707865;0.7626966292134831
Jeremy Legros;3.8076404494382023;0.4759550561797753
Julie Rohart;4.296629213483146;0.5370786516853933
Justine Bertin;4.753258426966292;0.5941573033707865
Justine Mikolajczak;4.774831460674157;0.5968539325842697
Lali Vin;6.072808988764045;0.7591011235955056
Lea Denys;5.979325842696629;0.7474157303370786
Leo Marin;5.713258426966292;0.7141573033707865
Lilian Lamorille;3.671011235955056;0.458876404494382
Lisa Baran;6.223820224719101;0.7779775280898876
Lucas Canon;5.824719101123596;0.7280898876404495
Lucie Delong;5.051685393258427;0.6314606741573033
Luna Hemery;5.662921348314606;0.7078651685393258
Maeline Humez;6.464719101123595;0.8080898876404494
Manon Cassel;5.785168539325842;0.7231460674157303
Martin Pilot;5.288988764044944;0.661123595505618
Mateo Darras;3.8076404494382023;0.4759550561797753
Matheo Guerineau;6.195056179775281;0.7743820224719101
Matheo Normand;6.115955056179775;0.7644943820224719
Mathilde Carlier;2.912359550561798;0.36404494382022473
Mathilde Konury;5.547865168539325;0.6934831460674157
Mathis Carlier;6.173483146067416;0.771685393258427
Mathys Calesse;4.922247191011236;0.6152808988764045
Mehdi Boutchich;2.844044943820225;0.3555056179775281
Melanie Bouchoir;5.637752808988764;0.7047191011235955
Melusine Miletti;4.670561797752809;0.5838202247191011
Mickael Lenclud;3.102483069977427;0.38781038374717836
Noah Desfachelles;3.581123595505618;0.44764044943820225
Noah Halluin;1.1593679458239277;0.14492099322799096
Oceane Decroix;4.526741573033708;0.5658426966292135
Quentin Stautemas;5.641348314606741;0.7051685393258427
Raphael Rivaux;1.90561797752809;0.23820224719101124
Remi Delaval;3.221573033707865;0.40269662921348315
Remi Delvalle;5.4040449438202245;0.6755056179775281
Remy Maeght;2.782921348314607;0.34786516853932586
Romain Bruni;6.195056179775281;0.7743820224719101
Romain Delrue;5.831910112359551;0.7289887640449438
Ronan Bourdrel;6.004494382022472;0.750561797752809
Simon Ducrocq;6.777528089887641;0.8471910112359551
Solene Marien;6.115955056179775;0.7644943820224719
Stefan Gaudin;1.7474157303370788;0.21842696629213484
Tanguy Delavier;5.623370786516854;0.7029213483146067
Theo Duprez;4.965393258426967;0.6206741573033708
Theo Justin;4.156404494382023;0.5195505617977528
Theo Rouze;6.187865168539326;0.7734831460674157
Theo Verlet;5.993707865168539;0.7492134831460674
Thomas Renard;4.778426966292135;0.5973033707865169
Thomas Thevenin;3.688988764044944;0.461123595505618
Tristan Quesson;3.9370786516853933;0.49213483146067416
Tyffene Viseur;5.939775280898877;0.7424719101123596
Vytto Scilironi;3.376179775280899;0.4220224719101124
Yvonnick Levis;6.202247191011236;0.7752808988764045

1 nomEtudiant note pourcentage
2 Alex Marechal Alexine Zajac 8.0 5.869872701555869 1.0 0.5869872701555869
3 Alexandre Berthelin Anthony Logez 2.527640449438202 9.603960396039604 0.31595505617977526 0.9603960396039604
4 Alexis Legrand Clara Dauchy 6.112359550561798 10.0 0.7640449438202247 1.0
5 Alexy Lefebvre Clement Lespagnol 6.000898876404494 1.0608203677510608 0.7501123595505618 0.10608203677510608
6 Amelie Bruniaux Colin Morel 6.238202247191011 10.0 0.7797752808988764 1.0
7 Anais Blondel Corentin Caffet 4.5591011235955055 1.0891089108910892 0.5698876404494382 0.10891089108910891
8 Anais Najdecki Elisa Deretz 3.358202247191011 10.0 0.4197752808988764 1.0
9 Antoine Duponchelle Elsa Vasseur 5.357303370786517 2.14992927864215 0.6696629213483146 0.214992927864215
10 Antoine Ponchel Eowyn Beugin 6.202247191011236 6.082036775106082 0.7752808988764045 0.6082036775106082
11 Apolline Michel Gwendoline Labarre 6.159101123595506 9.92927864214993 0.7698876404494382 0.9929278642149929
12 Arthur Willart Jennifer Sabatini 4.533932584269663 10.0 0.5667415730337079 1.0
13 Aurelien Ben Yahia Kenza Kessad 6.03685393258427 4.766619519094767 0.7546067415730338 0.4766619519094767
14 Axel Aoumat Lila Lembrez 4.5447191011235955 10.0 0.5680898876404494 1.0
15 Axel Cadart Lowan Corne 5.928988764044944 10.0 0.741123595505618 1.0
16 Aymeric Grenier Marie Bouteleux 6.1986516853932585 6.152758132956153 0.7748314606741573 0.6152758132956153
17 Baptiste Fynnaert Nathanael Ducatel 3.9298876404494383 10.0 0.4912359550561798 1.0
18 Camille Henneton - - Hecquet Paul Poire 6.112359550561798 10.0 0.7640449438202247 1.0
19 Charles Carron Tom Outreman 3.832808988764045 10.0 0.4791011235955056 1.0
Chloe Mazur 6.058426966292135 0.7573033707865169
Clara Bruneau 3.0921348314606742 0.3865168539325843
Clement Legrand 6.479101123595505 0.8098876404494382
Cyril Massart 4.264269662921349 0.5330337078651686
Doriane Bernard 5.296179775280899 0.6620224719101123
Elliot Pilawa 2.520993227990971 0.31512415349887135
Elodie Vaesken 5.094831460674158 0.6368539325842697
Enora-Lou Deplanque 2.3586516853932586 0.29483146067415733
Esteban Devos Devulder 3.487640449438202 0.43595505617977526
Gabriel Humain 6.166292134831461 0.7707865168539326
Helene Adjal 5.727640449438202 0.7159550561797753
Hugo Guffroy 5.544269662921348 0.6930337078651685
Imen Belaiche 6.0332584269662926 0.7541573033707866
Ines Aubier 5.713258426966292 0.7141573033707865
Ines El Karami 6.09438202247191 0.7617977528089888
Issam Benzemra--Petit 6.115955056179775 0.7644943820224719
Jane Gosset 6.101573033707865 0.7626966292134831
Jeremy Legros 3.8076404494382023 0.4759550561797753
Julie Rohart 4.296629213483146 0.5370786516853933
Justine Bertin 4.753258426966292 0.5941573033707865
Justine Mikolajczak 4.774831460674157 0.5968539325842697
Lali Vin 6.072808988764045 0.7591011235955056
Lea Denys 5.979325842696629 0.7474157303370786
Leo Marin 5.713258426966292 0.7141573033707865
Lilian Lamorille 3.671011235955056 0.458876404494382
Lisa Baran 6.223820224719101 0.7779775280898876
Lucas Canon 5.824719101123596 0.7280898876404495
Lucie Delong 5.051685393258427 0.6314606741573033
Luna Hemery 5.662921348314606 0.7078651685393258
Maeline Humez 6.464719101123595 0.8080898876404494
Manon Cassel 5.785168539325842 0.7231460674157303
Martin Pilot 5.288988764044944 0.661123595505618
Mateo Darras 3.8076404494382023 0.4759550561797753
Matheo Guerineau 6.195056179775281 0.7743820224719101
Matheo Normand 6.115955056179775 0.7644943820224719
Mathilde Carlier 2.912359550561798 0.36404494382022473
Mathilde Konury 5.547865168539325 0.6934831460674157
Mathis Carlier 6.173483146067416 0.771685393258427
Mathys Calesse 4.922247191011236 0.6152808988764045
Mehdi Boutchich 2.844044943820225 0.3555056179775281
Melanie Bouchoir 5.637752808988764 0.7047191011235955
Melusine Miletti 4.670561797752809 0.5838202247191011
Mickael Lenclud 3.102483069977427 0.38781038374717836
Noah Desfachelles 3.581123595505618 0.44764044943820225
Noah Halluin 1.1593679458239277 0.14492099322799096
Oceane Decroix 4.526741573033708 0.5658426966292135
Quentin Stautemas 5.641348314606741 0.7051685393258427
Raphael Rivaux 1.90561797752809 0.23820224719101124
Remi Delaval 3.221573033707865 0.40269662921348315
Remi Delvalle 5.4040449438202245 0.6755056179775281
Remy Maeght 2.782921348314607 0.34786516853932586
Romain Bruni 6.195056179775281 0.7743820224719101
Romain Delrue 5.831910112359551 0.7289887640449438
Ronan Bourdrel 6.004494382022472 0.750561797752809
Simon Ducrocq 6.777528089887641 0.8471910112359551
Solene Marien 6.115955056179775 0.7644943820224719
Stefan Gaudin 1.7474157303370788 0.21842696629213484
Tanguy Delavier 5.623370786516854 0.7029213483146067
Theo Duprez 4.965393258426967 0.6206741573033708
Theo Justin 4.156404494382023 0.5195505617977528
Theo Rouze 6.187865168539326 0.7734831460674157
Theo Verlet 5.993707865168539 0.7492134831460674
Thomas Renard 4.778426966292135 0.5973033707865169
Thomas Thevenin 3.688988764044944 0.461123595505618
Tristan Quesson 3.9370786516853933 0.49213483146067416
Tyffene Viseur 5.939775280898877 0.7424719101123596
Vytto Scilironi 3.376179775280899 0.4220224719101124
Yvonnick Levis 6.202247191011236 0.7752808988764045

View File

@ -581,7 +581,7 @@ public class Classeur2 {
/** /**
* Permet de vérifier les modifications interdites * Permet de vérifier les modifications interdites.<br>
* @author pabr6 * @author pabr6
* *
*/ */
@ -651,58 +651,58 @@ public class Classeur2 {
private TreeMap<Integer,formatsConditionnels> formatConditionnel = new TreeMap<Integer,formatsConditionnels>(); private TreeMap<Integer,formatsConditionnels> formatConditionnel = new TreeMap<Integer,formatsConditionnels>();
private TreeMap<String,String> nommageCellulesFeuille = new TreeMap<String,String>(); private TreeMap<String,String> nommageCellulesFeuille = new TreeMap<String,String>();
/** // /**
* Chargement du sujet // * Chargement du sujet
* @param fe // * @param fe
*/ // */
public feuille(node fe) { // public feuille(node fe) {
// chargement du sujet // // chargement du sujet
if(fe.getAttributs().get("nomFeuille")!=null) nomFeuille=fe.getAttributs().get("nomFeuille"); // 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("styleLigne")!=null) styleLigne=fe.getAttributs().get("styleLigne");
if(fe.getAttributs().get("Poids")!=null) Poids=fe.getAttributs().get("Poids"); // 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("evaluer")!=null) evaluer=fe.getAttributs().get("evaluer");
if(fe.getAttributs().get("link")!=null) link=fe.getAttributs().get("link"); // if(fe.getAttributs().get("link")!=null) link=fe.getAttributs().get("link");
if(fe.getAttributs().get("linktitle")!=null) linktitle=fe.getAttributs().get("linktitle"); // if(fe.getAttributs().get("linktitle")!=null) linktitle=fe.getAttributs().get("linktitle");
//
node comm = fe.retourneFirstEnfant("communication"); // node comm = fe.retourneFirstEnfant("communication");
if(!comm.isVide()) communication=comm.getContenu().get(0); // if(!comm.isVide()) communication=comm.getContenu().get(0);
//
//nommage // //nommage
for (Entry<String, String> j : nommageCellules.entrySet()) { // for (Entry<String, String> j : nommageCellules.entrySet()) {
nommageCellulesFeuille.put(j.getKey(), j.getValue()); // nommageCellulesFeuille.put(j.getKey(), j.getValue());
} // }
ArrayList<node> noms = fe.retourneAllEnfants("nommagecellulesfeuille"); // ArrayList<node> noms = fe.retourneAllEnfants("nommagecellulesfeuille");
for(int i=0; i < noms.size();i++) { // for(int i=0; i < noms.size();i++) {
nommageCellulesFeuille.put(noms.get(i).getAttributs().get("name"),noms.get(i).getAttributs().get("cells")); // nommageCellulesFeuille.put(noms.get(i).getAttributs().get("name"),noms.get(i).getAttributs().get("cells"));
} // }
//
//colonnes chargement sujet // //colonnes chargement sujet
ArrayList<node> nods= fe.retourneAllEnfants("colonne"); // ArrayList<node> nods= fe.retourneAllEnfants("colonne");
for(int i = 0 ; i < nods.size();i++) { // for(int i = 0 ; i < nods.size();i++) {
colonnes.put( i , new colonne(nods.get(i),nods.get(i).getAttributs().get("RefColonne"))); // colonnes.put( i , new colonne(nods.get(i),nods.get(i).getAttributs().get("RefColonne")));
} // }
nods.clear(); // nods.clear();
//
//lignes chargement sujet // //lignes chargement sujet
nods= fe.retourneAllEnfants("ligne"); // nods= fe.retourneAllEnfants("ligne");
for(int i=0 ; i < nods.size();i++) { // for(int i=0 ; i < nods.size();i++) {
if(i>commandes.analysis_nbr_Ligne_maxi) break; // if(i>commandes.analysis_nbr_Ligne_maxi) break;
lignes.put(i, new ligne(nods.get(i), nods.get(i).getAttributs().get("RefLigne"))); // lignes.put(i, new ligne(nods.get(i), nods.get(i).getAttributs().get("RefLigne")));
} // }
//
//graphics chargement sujet // //graphics chargement sujet
nods= fe.retourneAllEnfants("graphic"); // nods= fe.retourneAllEnfants("graphic");
for(int i=0 ; i < nods.size();i++) { // for(int i=0 ; i < nods.size();i++) {
graphics.put(i, new graphic(nods.get(i))); // graphics.put(i, new graphic(nods.get(i)));
} // }
//
//format conditionnel // //format conditionnel
nods= fe.retourneAllEnfants("formatsConditionnels"); // nods= fe.retourneAllEnfants("formatsConditionnels");
for(int i=0 ; i < nods.size();i++) { // for(int i=0 ; i < nods.size();i++) {
formatConditionnel.put(i, new formatsConditionnels(nods.get(i))); // formatConditionnel.put(i, new formatsConditionnels(nods.get(i)));
} // }
//
} // }
@ -755,10 +755,12 @@ public class Classeur2 {
nods=fe.retourneAllEnfants("table:table-row"); nods=fe.retourneAllEnfants("table:table-row");
System.out.println("Nbre de ligne = " + nods.size()); System.out.println("Nbre de ligne = " + nods.size());
int nombreRepetitionLigne = 0; int nombreRepetitionLigne = 0;
for(int i=0 ; i < nods.size();i++) { int nombreLigneMax = nods.size();
if(i>0 && i<commandes.analysis_nbr_Ligne_maxi) if(lignes.get(i-1).getPropertiesRow().get("Repetition")!=null) { if(nombreLigneMax>commandes.analysis_nbr_Ligne_maxi) nombreLigneMax = commandes.analysis_nbr_Ligne_maxi;
for(int i=0 ; i < nombreLigneMax;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; 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)); lignes.put(i, new ligne(nods.get(i),String.valueOf(i+1+nombreRepetitionLigne),nod, indexStudent));
} }
@ -2625,13 +2627,13 @@ public class Classeur2 {
private TreeMap<Integer,formatConditionnelConditions> conditionalformatConditions = new TreeMap<Integer,formatConditionnelConditions>(); private TreeMap<Integer,formatConditionnelConditions> conditionalformatConditions = new TreeMap<Integer,formatConditionnelConditions>();
// chargement dans le node sujet. // // chargement dans le node sujet.
public formatsConditionnels(node nodeFormatsConditionnels ) { // public formatsConditionnels(node nodeFormatsConditionnels ) {
if(nodeFormatsConditionnels.getAttributs().get("targetRangeAddress")!=null) targetRangeAddress = nodeFormatsConditionnels.getAttributs().get("targetRangeAddress"); // if(nodeFormatsConditionnels.getAttributs().get("targetRangeAddress")!=null) targetRangeAddress = nodeFormatsConditionnels.getAttributs().get("targetRangeAddress");
for (node enfant : nodeFormatsConditionnels.getEnfants()) { // for (node enfant : nodeFormatsConditionnels.getEnfants()) {
//
} // }
} // }
// Chargement depuis le classeur de l'étudiant. // Chargement depuis le classeur de l'étudiant.
public formatsConditionnels(node nodeFormatConditionnel,node nod, Integer indexStudent ) { public formatsConditionnels(node nodeFormatConditionnel,node nod, Integer indexStudent ) {

View File

@ -189,6 +189,7 @@ public class evaluerAttributs {
private node trouveCelluleEtudiant(node cellule) { private node trouveCelluleEtudiant(node cellule) {
if(nEtudiant==null) return null; if(nEtudiant==null) return null;
node Tempo = trouveLigneEtudiant(); node Tempo = trouveLigneEtudiant();
if(Tempo==null) return null;
return Tempo.retourneFirstEnfant("cellule", "RefLigne", cellule.getAttributs().get("RefLigne"), "RefColonne", cellule.getAttributs().get("RefColonne")); return Tempo.retourneFirstEnfant("cellule", "RefLigne", cellule.getAttributs().get("RefLigne"), "RefColonne", cellule.getAttributs().get("RefColonne"));
} }

View File

@ -1,8 +1,5 @@
package evaluer; package evaluer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import calc.commandes; import calc.commandes;
import xml.creerNodeEvaluationEtudiant; import xml.creerNodeEvaluationEtudiant;
import xml.node; import xml.node;
@ -104,25 +101,21 @@ public class evaluerNodesClasseurStudent {
/** /**
* Trouve le format conditionnel de l'étudiant.<br> * Trouve le format conditionnel de l'étudiant.<br>
* Pour trouver le format conditionnel, référence à baseCellAddress avec + ou - 2 lignes.<br> * Pour trouver le format conditionnel, référence à baseCellAddress avec + ou - 1 ligne.<br>
* @param baseCellAddress * @param baseCellAddress
* @return * @return
*/ */
private node trouveLesFormatsConditionnelsEtudiant(String baseCellAddress) { private node trouveLesFormatsConditionnelsEtudiant(String baseCellAddress) {
if(baseCellAddress.indexOf("")!=-1) baseCellAddress = baseCellAddress.substring(0, baseCellAddress.indexOf("")); if(baseCellAddress.indexOf("")!=-1) baseCellAddress = baseCellAddress.substring(0, baseCellAddress.indexOf(""));
// 🔥 Regex pour capturer le texte avant et après le 2e nombre // 🔥 Regex pour capturer le texte avant et après le 2e nombre
String regex = "(.*?)(\\d+)(.*?\\d+)"; String regex = "(.*?)(\\d+)(.*?\\d+)";
// Supprimer tout ce qui suit le 2e nombre // Supprimer tout ce qui suit le 2e nombre
String name = baseCellAddress.replaceAll(regex, "$1"); String name = baseCellAddress.replaceAll(regex, "$1");
String number = baseCellAddress.replaceAll(regex, "$2"); // Supprime tout sauf les chiffres String number = baseCellAddress.replaceAll(regex, "$2"); // Supprime tout sauf les chiffres
int ligneCellSujet = Integer.parseInt(number); int ligneCellSujet = Integer.parseInt(number);
String name1 = "^"+name+String.valueOf(ligneCellSujet)+".*"; String name1 = "^"+name+String.valueOf(ligneCellSujet)+".*";
String name2 = "^"+name+String.valueOf(ligneCellSujet-1)+".*"; String name2 = "^"+name+String.valueOf(ligneCellSujet-1)+".*";
String name3 = "^"+name+String.valueOf(ligneCellSujet+1)+".*"; String name3 = "^"+name+String.valueOf(ligneCellSujet+1)+".*";
if(nodeEtudiant!=null) { if(nodeEtudiant!=null) {
for (node enfantsEtudiant : nodeEtudiant.retourneAllEnfants("formatsConditionnels")) { for (node enfantsEtudiant : nodeEtudiant.retourneAllEnfants("formatsConditionnels")) {
String A = enfantsEtudiant.getAttributs().get("baseCellAddress"); String A = enfantsEtudiant.getAttributs().get("baseCellAddress");
@ -133,7 +126,6 @@ public class evaluerNodesClasseurStudent {
} }
} }
} }
return null; return null;
} }

View File

@ -10,7 +10,7 @@ import java.text.DateFormat;
import java.util.Date; import java.util.Date;
import java.util.Map.Entry; import java.util.Map.Entry;
import AnalyseCalc.AnalyseClasseur; import AnalyseCalc.analyseCalc;
import AnalyseCalc.Classeur2; import AnalyseCalc.Classeur2;
import AnalyseCalc.sousTotal; import AnalyseCalc.sousTotal;
import AnalyseCalc.verifsujet; import AnalyseCalc.verifsujet;

View File

@ -16,8 +16,6 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
public class node implements Cloneable{ public class node implements Cloneable{
protected String nameNode = ""; protected String nameNode = "";
@ -33,25 +31,51 @@ protected boolean nodeClose = false;
* @author pablo rodriguez * @author pablo rodriguez
* *
*/ */
/**
public node() { * Constructeur d'un node vide.<br>
} */
public node() { }
/**
* Constructeur d'un node ayant le nom nameNode.<br>
* @param nameNode : le nom du node.
*/
public node(String nameNode) { public node(String nameNode) {
setNameNode(nameNode); setNameNode(nameNode);
} }
/**
* Constructeur d'un node ayant le nom nameNode, de père le node parent.<br>
* @param nameNode : le nom du node.
* @param parent : le node père de ce node.
*/
public node(String nameNode, node parent) { public node(String nameNode, node parent) {
setNameNode(nameNode); setNameNode(nameNode);
if(parent!=null) parent.addEnfant(this); if(parent!=null) parent.addEnfant(this);
} }
/**
* Constructeur d'un node ayant le nom nameNode, de père le node parent, d'attribut nameAttribut ayant la valeur valueAttribut.<br>
* @param nameNode : le nom du node.
* @param parent : le node père de ce node.
* @param nameAttribut : le nom de l'attribut.
* @param valueAttribut : la valeur de l'attribut.
*/
public node(String nameNode, node parent, String nameAttribut, String valueAttribut) { public node(String nameNode, node parent, String nameAttribut, String valueAttribut) {
setNameNode(nameNode); setNameNode(nameNode);
if(parent!=null) parent.addEnfant(this); if(parent!=null) parent.addEnfant(this);
if(nameAttribut!=null) this.attributs.put(nameAttribut, valueAttribut); if(nameAttribut!=null) this.attributs.put(nameAttribut, valueAttribut);
} }
/**
* Constructeur d'un node ayant le nom nameNode, de père le node parent, d'attributs nameAttribut1 et nameAttribut2 ayant les valeurs valueAttribut1 et valueAttribut2.<br>
* @param nameNode : le nom du node.
* @param parent : le node père de ce node.
* @param nameAttribut1 : le nom de l'attribut1.
* @param valueAttribut1 : la valeur de l'attribut1.
* @param nameAttribut2 : le nom de l'attribut2.
* @param valueAttribut2 : la valeur de l'attribut2.
*/
public node(String nameNode, node parent, String nameAttribut1, String valueAttribut1,String nameAttribut2, String valueAttribut2) { public node(String nameNode, node parent, String nameAttribut1, String valueAttribut1,String nameAttribut2, String valueAttribut2) {
setNameNode(nameNode); setNameNode(nameNode);
if(parent!=null) parent.addEnfant(this); if(parent!=null) parent.addEnfant(this);
@ -59,54 +83,105 @@ protected boolean nodeClose = false;
if(nameAttribut2!=null) this.attributs.put(nameAttribut2, valueAttribut2); if(nameAttribut2!=null) this.attributs.put(nameAttribut2, valueAttribut2);
} }
/**
* Retourne TRUE si le node est fermé.<br>
* Retourne FALSE si le node est ouvert.<br>
* @return
*/
public boolean isNodeClose() { public boolean isNodeClose() {
return nodeClose; return nodeClose;
} }
/**
* Ferme ou ouvre le node.<br>
* @param nodeClose : TRUE pour fermer ou FALSE pour ouvrir ce node.
*/
public void setNodeClose(boolean nodeClose) { public void setNodeClose(boolean nodeClose) {
this.nodeClose = nodeClose; this.nodeClose = nodeClose;
} }
/**
* Retourne TRUE si ce node contient l'attribut evaluer avec comme valeur true.<br>
* Sinon retourne FALSE.<br>
* @return
*/
public boolean isEvaluer() { public boolean isEvaluer() {
if(!this.attributs.containsKey("evaluer")) return false; if(!this.attributs.containsKey("evaluer")) return false;
if(!Boolean.valueOf(this.getAttributs().get("evaluer"))) return false; if(!Boolean.valueOf(this.getAttributs().get("evaluer"))) return false;
return true; return true;
} }
public boolean isAttributEvaluer(String key) { /**
return this.attributs.get(key).contains(""); * Retourne TRUE si ce node contient l'attribut nameAttribut qui est évalué.<br>
* C'est à dire que la valeur de l'attribut nameAttribut contient le caractère .<br>
* @param nameAttribut : nom de l'attribut.
* @return TRUE si cet attribut est évalué. Sinon retourne FALSE.
*/
public boolean isAttributEvaluer(String nameAttribut) {
if(this.attributs.get(nameAttribut)==null) return false;
return this.attributs.get(nameAttribut).contains("");
} }
/**
* Retourne le nom de ce node.<br>
* @return
*/
public String getNameNode() { public String getNameNode() {
if(this.equals(null)) return ""; if(this.equals(null)) return "";
return this.nameNode; return this.nameNode;
} }
/**
* Nomme ou renomme ce node par le nom nameNode.<br>
* @param nameNode
*/
public void setNameNode(String nameNode) { public void setNameNode(String nameNode) {
this.nameNode = nameNode; this.nameNode = nameNode;
} }
/**
* Retourne TRUE si ce node contient au moins un attribut.<br>
* Sinon retourne FALSE.<br>
* @return
*/
public boolean isHasAttributs() { public boolean isHasAttributs() {
if(this.attributs.size()>0) return true; if(this.attributs.size()>0) return true;
return false; return false;
} }
/**
* Retourne TRUE si ce node contient un attribut nameNode.<br>
* Sinon retourne FALSE.<br>
* @param nameAttribut
* @return
*/
public boolean isHasAttributs(String nameAttribut) { public boolean isHasAttributs(String nameAttribut) {
if(this.attributs.get(nameAttribut)==null) return false; if(this.attributs.get(nameAttribut)==null) return false;
return true; return true;
} }
/**
* Retourne TRUE si ce node possède au moins un enfant.<br>
* Sinon retourne FALSE.<br>
* @return
*/
public boolean isHasEnfant() { public boolean isHasEnfant() {
if(this.enfants.size()>0) return true; if(this.enfants.size()>0) return true;
return false; return false;
} }
/**
* Retourne le nombre d'enfant de ce node.<br>
* @return : Un interger.
*/
public int getNbrEnfants() { public int getNbrEnfants() {
return this.enfants.size(); return this.enfants.size();
} }
/**
* Retourne la liste des enfants (ArrayList<node>) de ce node;<br>
* @return ArrayList<node>
*/
public ArrayList<node> getEnfants() { public ArrayList<node> getEnfants() {
return this.enfants; return this.enfants;
} }
@ -185,15 +260,25 @@ protected boolean nodeClose = false;
} }
} }
/**
* Supprime tous les nodes enfants.<br>
*/
public void removeAllEnfants() { public void removeAllEnfants() {
this.enfants.clear(); this.enfants.clear();
} }
/**
* Supprime tous les enfants fournis dans l'ArrayList enfants.<br>
* @param enfants
*/
public void removeEnfants(ArrayList<node> enfants) { public void removeEnfants(ArrayList<node> enfants) {
this.enfants.removeAll(enfants); this.enfants.removeAll(enfants);
} }
/**
* Retourne le premier enfants.<br>
* @return
*/
public node retourneFirstEnfant() { public node retourneFirstEnfant() {
if(this.enfants.size()>0) return this.enfants.get(0); if(this.enfants.size()>0) return this.enfants.get(0);
return null; return null;
@ -201,7 +286,7 @@ protected boolean nodeClose = false;
/** /**
* Retourne le premier enfant ayant le nom nameNode.<br> * Retourne le premier enfant ayant le nom nameNode.<br>
* Sinon retourne un null. * Sinon retourne un null.<br>
* @param nameNode : le nom de l'enfant. * @param nameNode : le nom de l'enfant.
* @return * @return
*/ */
@ -214,6 +299,13 @@ protected boolean nodeClose = false;
return null; return null;
} }
/**
* Retourne le premier enfant ayant le nom nameNode et l'attribut nameAttribut.<br>
* Sinon retourne un null.<br>
* @param nameNode
* @param nameAttribut
* @return
*/
public node retourneFirstEnfant(String nameNode, String nameAttribut) { public node retourneFirstEnfant(String nameNode, String nameAttribut) {
if(this.nameNode.equals(nameNode) && this.attributs.containsKey(nameAttribut)) return this; if(this.nameNode.equals(nameNode) && this.attributs.containsKey(nameAttribut)) return this;
for (node nod : enfants) { for (node nod : enfants) {
@ -279,6 +371,9 @@ protected boolean nodeClose = false;
return null; return null;
} }
/**
* Retourne le frère suivant de ce node.<br>
*/
public node retourneNextBrother() { public node retourneNextBrother() {
if(this.parent!=null) { if(this.parent!=null) {
int indexOfThis = this.parent.enfants.indexOf(this); int indexOfThis = this.parent.enfants.indexOf(this);
@ -291,14 +386,17 @@ protected boolean nodeClose = false;
} }
/** /**
* Retourne tous les frères du node, lui compris.</br> * Retourne tous les frères du node, ce node compris.</br>
* @return * @return
*/ */
public ArrayList<node> retourneAllBroters(){ public ArrayList<node> retourneAllBroters(){
return this.parent.getEnfants(); return this.parent.getEnfants();
} }
/**
* Retourne le frère précédenr de ce node.<br>
* @return
*/
public node retournePreviousBrother() { public node retournePreviousBrother() {
if(this.parent!=null) { if(this.parent!=null) {
int indexOfThis = this.parent.enfants.indexOf(this); int indexOfThis = this.parent.enfants.indexOf(this);
@ -310,6 +408,10 @@ protected boolean nodeClose = false;
return null; return null;
} }
/**
* Retourne le premier frère de ce node.<br>
* @return
*/
public node retourneFirstBrother() { public node retourneFirstBrother() {
if(this.parent!=null) { if(this.parent!=null) {
if(this.parent.enfants.get(0)!=null) return this.parent.enfants.get(0); if(this.parent.enfants.get(0)!=null) return this.parent.enfants.get(0);
@ -317,6 +419,10 @@ protected boolean nodeClose = false;
return null; return null;
} }
/**
* Retourne le dernier frère de ce node.<br>
* @return
*/
public node retourneLastBrother() { public node retourneLastBrother() {
if(this.parent!=null) { if(this.parent!=null) {
int indexLast = this.parent.enfants.size()-1; int indexLast = this.parent.enfants.size()-1;
@ -325,14 +431,18 @@ protected boolean nodeClose = false;
return null; return null;
} }
/**
* Retourne le dernier enfant ce ce node.<br>
* Sinon retourne un null.<br>
* @return
*/
public node retourneLastEnfant() { public node retourneLastEnfant() {
if(this.enfants.size()>0) return this.enfants.get(this.enfants.size()-1); if(this.enfants.size()>0) return this.enfants.get(this.enfants.size()-1);
return null; return null;
} }
/** /**
* Retourne la liste des nodes ayant tous les mêmes noms. * Retourne la liste (ArrayList<node>) des nodes ayant tous le même nom nameNode.<br>
* @param nameNode * @param nameNode
* @return * @return
*/ */
@ -352,22 +462,43 @@ protected boolean nodeClose = false;
return ListeNodes; return ListeNodes;
} }
/**
* Retourne le nombre d'attribut de ce node.<br>
* @return
*/
public int getNbrAttributs() { public int getNbrAttributs() {
return attributs.size(); return attributs.size();
} }
/**
* Retourne la liste des attributs (LinkedHashMap<String, String>) de ce node.<br>
* @return
*/
public LinkedHashMap<String, String> getAttributs() { public LinkedHashMap<String, String> getAttributs() {
return attributs; return attributs;
} }
/**
* Ajoute la liste des attributs LinkedHashMap<String,String>.<br>
* @param attributs
*/
public void addAttributs(LinkedHashMap<String,String> attributs) { public void addAttributs(LinkedHashMap<String,String> attributs) {
this.attributs = attributs; this.attributs = attributs;
} }
/**
* Ajoute un attribut de ce node.<br>
* @param key : La clé.
* @param value : la valeur de la clé.
*/
public void addAttribut(String key, String value) { public void addAttribut(String key, String value) {
this.attributs.put(key, value); this.attributs.put(key, value);
} }
/**
* Supprime l'attribut ayant la clé key de ce node.<br>
* @param key : La clé.
*/
public void removeAttribut(String key) { public void removeAttribut(String key) {
this.attributs.remove(key); this.attributs.remove(key);
} }

File diff suppressed because one or more lines are too long