This commit is contained in:
pablo rodriguez 2024-12-19 16:40:17 +01:00
parent c2324b01c8
commit cf41fae890
23 changed files with 272 additions and 211 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
bin/.gitignore vendored
View File

@ -1,3 +1,5 @@
/AnalyseCalc/ /AnalyseCalc/
/outils/ /outils/
/fenetres/ /fenetres/
/evaluer/
/xml/

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,87 +1,87 @@
nomEtudiant;note;pourcentage nomEtudiant;note;pourcentage
Alex Marechal;6.780620577027762;0.8475775721284703 Alex Marechal;8.0;1.0
Alexandre Berthelin;3.0615133369624385;0.3826891671203048 Alexandre Berthelin;2.527640449438202;0.31595505617977526
Alexis Legrand;5.4001088731627656;0.6750136091453457 Alexis Legrand;6.112359550561798;0.7640449438202247
Alexy Lefebvre;5.574305933587371;0.6967882416984214 Alexy Lefebvre;6.000898876404494;0.7501123595505618
Amelie Bruniaux;5.857376156777354;0.7321720195971693 Amelie Bruniaux;6.238202247191011;0.7797752808988764
Anais Blondel;4.415895481763745;0.5519869352204682 Anais Blondel;4.5591011235955055;0.5698876404494382
Anais Najdecki;2.900381056069679;0.3625476320087099 Anais Najdecki;3.358202247191011;0.4197752808988764
Antoine Duponchelle;4.489929232444203;0.5612411540555253 Antoine Duponchelle;5.357303370786517;0.6696629213483146
Antoine Ponchel;5.596080566140446;0.6995100707675558 Antoine Ponchel;6.202247191011236;0.7752808988764045
Apolline Michel;5.456722917800762;0.6820903647250952 Apolline Michel;6.159101123595506;0.7698876404494382
Arthur Willart;3.9891126837234623;0.4986390854654328 Arthur Willart;4.533932584269663;0.5667415730337079
Aurelien Ben Yahia;5.308655416439848;0.663581927054981 Aurelien Ben Yahia;6.03685393258427;0.7546067415730338
Axel Aoumat;3.2400653238976593;0.4050081654872074 Axel Aoumat;4.5447191011235955;0.5680898876404494
Axel Cadart;5.186717474142624;0.648339684267828 Axel Cadart;5.928988764044944;0.741123595505618
Aymeric Grenier;5.809471965160588;0.7261839956450735 Aymeric Grenier;6.1986516853932585;0.7748314606741573
Baptiste Fynnaert;3.723462166575939;0.46543277082199236 Baptiste Fynnaert;3.9298876404494383;0.4912359550561798
Charles Carron;3.780076211213936;0.472509526401742 Camille Henneton - - Hecquet;6.112359550561798;0.7640449438202247
Chloe Mazur;5.735438214480131;0.7169297768100164 Charles Carron;3.832808988764045;0.4791011235955056
Clara Bruneau;3.0571584104518235;0.38214480130647793 Chloe Mazur;6.058426966292135;0.7573033707865169
Clement Legrand;5.430593358737071;0.6788241698421339 Clara Bruneau;3.0921348314606742;0.3865168539325843
Cyril Massart;3.7974959172563962;0.47468698965704953 Clement Legrand;6.479101123595505;0.8098876404494382
Doriane Bernard;4.938486663037561;0.6173108328796951 Cyril Massart;4.264269662921349;0.5330337078651686
Elliot Pilawa;2.5834701696770663;0.3229337712096333 Doriane Bernard;5.296179775280899;0.6620224719101123
Elodie Vaesken;4.520413718018508;0.5650517147523135 Elliot Pilawa;2.520993227990971;0.31512415349887135
Enora-Lou Deplanque;2.6173108328796952;0.3271638541099619 Elodie Vaesken;5.094831460674158;0.6368539325842697
Esteban Devos Devulder;3.653783342406097;0.45672291780076213 Enora-Lou Deplanque;2.3586516853932586;0.29483146067415733
Gabriel Humain;5.539466521502449;0.6924333151878062 Esteban Devos Devulder;3.487640449438202;0.43595505617977526
Helene Adjal;4.507348938486663;0.5634186173108329 Gabriel Humain;6.166292134831461;0.7707865168539326
Hugo Guffroy;4.71638541099619;0.5895481763745237 Helene Adjal;5.727640449438202;0.7159550561797753
Imen Belaiche;5.613500272182907;0.7016875340228633 Hugo Guffroy;5.544269662921348;0.6930337078651685
Ines Aubier;4.794774088187262;0.5993467610234078 Imen Belaiche;6.0332584269662926;0.7541573033707866
Ines El Karami;5.596080566140446;0.6995100707675558 Ines Aubier;5.713258426966292;0.7141573033707865
Issam Benzemra--Petit;5.70930865541644;0.713663581927055 Ines El Karami;6.09438202247191;0.7617977528089888
Jane Gosset;5.365269461077844;0.6706586826347305 Issam Benzemra--Petit;6.115955056179775;0.7644943820224719
Jeremy Legros;3.618943930321176;0.452367991290147 Jane Gosset;6.101573033707865;0.7626966292134831
Julie Rohart;3.923788786064235;0.4904735982580294 Jeremy Legros;3.8076404494382023;0.4759550561797753
Justine Bertin;4.629286880783887;0.5786608600979859 Julie Rohart;4.296629213483146;0.5370786516853933
Justine Mikolajczak;4.350571584104518;0.5438214480130648 Justine Bertin;4.753258426966292;0.5941573033707865
Lali Vin;5.657049537289058;0.7071311921611323 Justine Mikolajczak;4.774831460674157;0.5968539325842697
Lea Denys;5.487207403375068;0.6859009254218835 Lali Vin;6.072808988764045;0.7591011235955056
Leo Marin;4.990745781164943;0.6238432226456179 Lea Denys;5.979325842696629;0.7474157303370786
Lilian Lamorille;2.9657049537289057;0.3707131192161132 Leo Marin;5.713258426966292;0.7141573033707865
Lisa Baran;5.2084921066957;0.6510615133369625 Lilian Lamorille;3.671011235955056;0.458876404494382
Lucas Canon;5.70930865541644;0.713663581927055 Lisa Baran;6.223820224719101;0.7779775280898876
Lucie Delong;4.72509526401742;0.5906369080021775 Lucas Canon;5.824719101123596;0.7280898876404495
Luna Hemery;5.295590636908003;0.6619488296135003 Lucie Delong;5.051685393258427;0.6314606741573033
Maeline Humez;5.652694610778443;0.7065868263473054 Luna Hemery;5.662921348314606;0.7078651685393258
Manon Cassel;5.4001088731627656;0.6750136091453457 Maeline Humez;6.464719101123595;0.8080898876404494
Martin Pilot;4.498639085465433;0.5623298856831791 Manon Cassel;5.785168539325842;0.7231460674157303
Mateo Darras;3.5710397387044095;0.4463799673380512 Martin Pilot;5.288988764044944;0.661123595505618
Matheo Guerineau;5.508982035928144;0.688622754491018 Mateo Darras;3.8076404494382023;0.4759550561797753
Matheo Normand;5.70930865541644;0.713663581927055 Matheo Guerineau;6.195056179775281;0.7743820224719101
Mathilde Carlier;2.970059880239521;0.3712574850299401 Matheo Normand;6.115955056179775;0.7644943820224719
Mathilde Konury;5.199782253674469;0.6499727817093086 Mathilde Carlier;2.912359550561798;0.36404494382022473
Mathis Carlier;5.569951007076756;0.6962438758845945 Mathilde Konury;5.547865168539325;0.6934831460674157
Mathys Calesse;4.489929232444203;0.5612411540555253 Mathis Carlier;6.173483146067416;0.771685393258427
Mehdi Boutchich;3.497005988023952;0.437125748502994 Mathys Calesse;4.922247191011236;0.6152808988764045
Melanie Bouchoir;5.221556886227545;0.6526946107784432 Mehdi Boutchich;2.844044943820225;0.3555056179775281
Melusine Miletti;4.25040827436037;0.5313010342950463 Melanie Bouchoir;5.637752808988764;0.7047191011235955
Mickael Lenclud;2.3645320197044337;0.2955665024630542 Melusine Miletti;4.670561797752809;0.5838202247191011
Noah Desfachelles;3.035383777898748;0.3794229722373435 Mickael Lenclud;3.102483069977427;0.38781038374717836
Noah Halluin;1.3267651888341543;0.16584564860426929 Noah Desfachelles;3.581123595505618;0.44764044943820225
Oceane Decroix;4.010887316276538;0.5013609145345672 Noah Halluin;1.1593679458239277;0.14492099322799096
Pablo Rodriguez;4.3810560696788245;0.5476320087098531 Oceane Decroix;4.526741573033708;0.5658426966292135
Quentin Stautemas;4.838323353293413;0.6047904191616766 Quentin Stautemas;5.641348314606741;0.7051685393258427
Raphael Rivaux;1.5764833968426784;0.1970604246053348 Raphael Rivaux;1.90561797752809;0.23820224719101124
Remi Delaval;3.9629831246597713;0.4953728905824714 Remi Delaval;3.221573033707865;0.40269662921348315
Remi Delvalle;5.204137180185084;0.6505171475231355 Remi Delvalle;5.4040449438202245;0.6755056179775281
Remy Maeght;2.569406641262929;0.3211758301578661 Remy Maeght;2.782921348314607;0.34786516853932586
Romain Bruni;5.500272182906913;0.6875340228633642 Romain Bruni;6.195056179775281;0.7743820224719101
Romain Delrue;5.0647795318454;0.633097441480675 Romain Delrue;5.831910112359551;0.7289887640449438
Ronan Bourdrel;5.583015786608601;0.6978769733260751 Ronan Bourdrel;6.004494382022472;0.750561797752809
Simon Ducrocq;5.552531301034295;0.6940664126292869 Simon Ducrocq;6.777528089887641;0.8471910112359551
Solene Marien;5.7180185084376705;0.7147523135547088 Solene Marien;6.115955056179775;0.7644943820224719
Stefan Gaudin;2.1774632553075666;0.2721829069134458 Stefan Gaudin;1.7474157303370788;0.21842696629213484
Tanguy Delavier;4.459444746869897;0.5574305933587371 Tanguy Delavier;5.623370786516854;0.7029213483146067
Theo Duprez;4.346216657593903;0.5432770821992379 Theo Duprez;4.965393258426967;0.6206741573033708
Theo Justin;4.446379967338051;0.5557974959172564 Theo Justin;4.156404494382023;0.5195505617977528
Theo Rouze;5.456722917800762;0.6820903647250952 Theo Rouze;6.187865168539326;0.7734831460674157
Theo Verlet;5.565596080566141;0.6956995100707676 Theo Verlet;5.993707865168539;0.7492134831460674
Thomas Renard;4.010887316276538;0.5013609145345672 Thomas Renard;4.778426966292135;0.5973033707865169
Thomas Thevenin;3.6668481219379423;0.4583560152422428 Thomas Thevenin;3.688988764044944;0.461123595505618
Tristan Quesson;3.5362003266194884;0.44202504082743604 Tristan Quesson;3.9370786516853933;0.49213483146067416
Tyffene Viseur;5.204137180185084;0.6505171475231355 Tyffene Viseur;5.939775280898877;0.7424719101123596
Vytto Scilironi;3.5449101796407185;0.4431137724550898 Vytto Scilironi;3.376179775280899;0.4220224719101124
Yvonnick Levis;5.517691888949374;0.6897114861186717 Yvonnick Levis;6.202247191011236;0.7752808988764045

1 nomEtudiant note pourcentage
2 Alex Marechal 6.780620577027762 8.0 0.8475775721284703 1.0
3 Alexandre Berthelin 3.0615133369624385 2.527640449438202 0.3826891671203048 0.31595505617977526
4 Alexis Legrand 5.4001088731627656 6.112359550561798 0.6750136091453457 0.7640449438202247
5 Alexy Lefebvre 5.574305933587371 6.000898876404494 0.6967882416984214 0.7501123595505618
6 Amelie Bruniaux 5.857376156777354 6.238202247191011 0.7321720195971693 0.7797752808988764
7 Anais Blondel 4.415895481763745 4.5591011235955055 0.5519869352204682 0.5698876404494382
8 Anais Najdecki 2.900381056069679 3.358202247191011 0.3625476320087099 0.4197752808988764
9 Antoine Duponchelle 4.489929232444203 5.357303370786517 0.5612411540555253 0.6696629213483146
10 Antoine Ponchel 5.596080566140446 6.202247191011236 0.6995100707675558 0.7752808988764045
11 Apolline Michel 5.456722917800762 6.159101123595506 0.6820903647250952 0.7698876404494382
12 Arthur Willart 3.9891126837234623 4.533932584269663 0.4986390854654328 0.5667415730337079
13 Aurelien Ben Yahia 5.308655416439848 6.03685393258427 0.663581927054981 0.7546067415730338
14 Axel Aoumat 3.2400653238976593 4.5447191011235955 0.4050081654872074 0.5680898876404494
15 Axel Cadart 5.186717474142624 5.928988764044944 0.648339684267828 0.741123595505618
16 Aymeric Grenier 5.809471965160588 6.1986516853932585 0.7261839956450735 0.7748314606741573
17 Baptiste Fynnaert 3.723462166575939 3.9298876404494383 0.46543277082199236 0.4912359550561798
18 Charles Carron Camille Henneton - - Hecquet 3.780076211213936 6.112359550561798 0.472509526401742 0.7640449438202247
19 Chloe Mazur Charles Carron 5.735438214480131 3.832808988764045 0.7169297768100164 0.4791011235955056
20 Clara Bruneau Chloe Mazur 3.0571584104518235 6.058426966292135 0.38214480130647793 0.7573033707865169
21 Clement Legrand Clara Bruneau 5.430593358737071 3.0921348314606742 0.6788241698421339 0.3865168539325843
22 Cyril Massart Clement Legrand 3.7974959172563962 6.479101123595505 0.47468698965704953 0.8098876404494382
23 Doriane Bernard Cyril Massart 4.938486663037561 4.264269662921349 0.6173108328796951 0.5330337078651686
24 Elliot Pilawa Doriane Bernard 2.5834701696770663 5.296179775280899 0.3229337712096333 0.6620224719101123
25 Elodie Vaesken Elliot Pilawa 4.520413718018508 2.520993227990971 0.5650517147523135 0.31512415349887135
26 Enora-Lou Deplanque Elodie Vaesken 2.6173108328796952 5.094831460674158 0.3271638541099619 0.6368539325842697
27 Esteban Devos Devulder Enora-Lou Deplanque 3.653783342406097 2.3586516853932586 0.45672291780076213 0.29483146067415733
28 Gabriel Humain Esteban Devos Devulder 5.539466521502449 3.487640449438202 0.6924333151878062 0.43595505617977526
29 Helene Adjal Gabriel Humain 4.507348938486663 6.166292134831461 0.5634186173108329 0.7707865168539326
30 Hugo Guffroy Helene Adjal 4.71638541099619 5.727640449438202 0.5895481763745237 0.7159550561797753
31 Imen Belaiche Hugo Guffroy 5.613500272182907 5.544269662921348 0.7016875340228633 0.6930337078651685
32 Ines Aubier Imen Belaiche 4.794774088187262 6.0332584269662926 0.5993467610234078 0.7541573033707866
33 Ines El Karami Ines Aubier 5.596080566140446 5.713258426966292 0.6995100707675558 0.7141573033707865
34 Issam Benzemra--Petit Ines El Karami 5.70930865541644 6.09438202247191 0.713663581927055 0.7617977528089888
35 Jane Gosset Issam Benzemra--Petit 5.365269461077844 6.115955056179775 0.6706586826347305 0.7644943820224719
36 Jeremy Legros Jane Gosset 3.618943930321176 6.101573033707865 0.452367991290147 0.7626966292134831
37 Julie Rohart Jeremy Legros 3.923788786064235 3.8076404494382023 0.4904735982580294 0.4759550561797753
38 Justine Bertin Julie Rohart 4.629286880783887 4.296629213483146 0.5786608600979859 0.5370786516853933
39 Justine Mikolajczak Justine Bertin 4.350571584104518 4.753258426966292 0.5438214480130648 0.5941573033707865
40 Lali Vin Justine Mikolajczak 5.657049537289058 4.774831460674157 0.7071311921611323 0.5968539325842697
41 Lea Denys Lali Vin 5.487207403375068 6.072808988764045 0.6859009254218835 0.7591011235955056
42 Leo Marin Lea Denys 4.990745781164943 5.979325842696629 0.6238432226456179 0.7474157303370786
43 Lilian Lamorille Leo Marin 2.9657049537289057 5.713258426966292 0.3707131192161132 0.7141573033707865
44 Lisa Baran Lilian Lamorille 5.2084921066957 3.671011235955056 0.6510615133369625 0.458876404494382
45 Lucas Canon Lisa Baran 5.70930865541644 6.223820224719101 0.713663581927055 0.7779775280898876
46 Lucie Delong Lucas Canon 4.72509526401742 5.824719101123596 0.5906369080021775 0.7280898876404495
47 Luna Hemery Lucie Delong 5.295590636908003 5.051685393258427 0.6619488296135003 0.6314606741573033
48 Maeline Humez Luna Hemery 5.652694610778443 5.662921348314606 0.7065868263473054 0.7078651685393258
49 Manon Cassel Maeline Humez 5.4001088731627656 6.464719101123595 0.6750136091453457 0.8080898876404494
50 Martin Pilot Manon Cassel 4.498639085465433 5.785168539325842 0.5623298856831791 0.7231460674157303
51 Mateo Darras Martin Pilot 3.5710397387044095 5.288988764044944 0.4463799673380512 0.661123595505618
52 Matheo Guerineau Mateo Darras 5.508982035928144 3.8076404494382023 0.688622754491018 0.4759550561797753
53 Matheo Normand Matheo Guerineau 5.70930865541644 6.195056179775281 0.713663581927055 0.7743820224719101
54 Mathilde Carlier Matheo Normand 2.970059880239521 6.115955056179775 0.3712574850299401 0.7644943820224719
55 Mathilde Konury Mathilde Carlier 5.199782253674469 2.912359550561798 0.6499727817093086 0.36404494382022473
56 Mathis Carlier Mathilde Konury 5.569951007076756 5.547865168539325 0.6962438758845945 0.6934831460674157
57 Mathys Calesse Mathis Carlier 4.489929232444203 6.173483146067416 0.5612411540555253 0.771685393258427
58 Mehdi Boutchich Mathys Calesse 3.497005988023952 4.922247191011236 0.437125748502994 0.6152808988764045
59 Melanie Bouchoir Mehdi Boutchich 5.221556886227545 2.844044943820225 0.6526946107784432 0.3555056179775281
60 Melusine Miletti Melanie Bouchoir 4.25040827436037 5.637752808988764 0.5313010342950463 0.7047191011235955
61 Mickael Lenclud Melusine Miletti 2.3645320197044337 4.670561797752809 0.2955665024630542 0.5838202247191011
62 Noah Desfachelles Mickael Lenclud 3.035383777898748 3.102483069977427 0.3794229722373435 0.38781038374717836
63 Noah Halluin Noah Desfachelles 1.3267651888341543 3.581123595505618 0.16584564860426929 0.44764044943820225
64 Oceane Decroix Noah Halluin 4.010887316276538 1.1593679458239277 0.5013609145345672 0.14492099322799096
65 Pablo Rodriguez Oceane Decroix 4.3810560696788245 4.526741573033708 0.5476320087098531 0.5658426966292135
66 Quentin Stautemas 4.838323353293413 5.641348314606741 0.6047904191616766 0.7051685393258427
67 Raphael Rivaux 1.5764833968426784 1.90561797752809 0.1970604246053348 0.23820224719101124
68 Remi Delaval 3.9629831246597713 3.221573033707865 0.4953728905824714 0.40269662921348315
69 Remi Delvalle 5.204137180185084 5.4040449438202245 0.6505171475231355 0.6755056179775281
70 Remy Maeght 2.569406641262929 2.782921348314607 0.3211758301578661 0.34786516853932586
71 Romain Bruni 5.500272182906913 6.195056179775281 0.6875340228633642 0.7743820224719101
72 Romain Delrue 5.0647795318454 5.831910112359551 0.633097441480675 0.7289887640449438
73 Ronan Bourdrel 5.583015786608601 6.004494382022472 0.6978769733260751 0.750561797752809
74 Simon Ducrocq 5.552531301034295 6.777528089887641 0.6940664126292869 0.8471910112359551
75 Solene Marien 5.7180185084376705 6.115955056179775 0.7147523135547088 0.7644943820224719
76 Stefan Gaudin 2.1774632553075666 1.7474157303370788 0.2721829069134458 0.21842696629213484
77 Tanguy Delavier 4.459444746869897 5.623370786516854 0.5574305933587371 0.7029213483146067
78 Theo Duprez 4.346216657593903 4.965393258426967 0.5432770821992379 0.6206741573033708
79 Theo Justin 4.446379967338051 4.156404494382023 0.5557974959172564 0.5195505617977528
80 Theo Rouze 5.456722917800762 6.187865168539326 0.6820903647250952 0.7734831460674157
81 Theo Verlet 5.565596080566141 5.993707865168539 0.6956995100707676 0.7492134831460674
82 Thomas Renard 4.010887316276538 4.778426966292135 0.5013609145345672 0.5973033707865169
83 Thomas Thevenin 3.6668481219379423 3.688988764044944 0.4583560152422428 0.461123595505618
84 Tristan Quesson 3.5362003266194884 3.9370786516853933 0.44202504082743604 0.49213483146067416
85 Tyffene Viseur 5.204137180185084 5.939775280898877 0.6505171475231355 0.7424719101123596
86 Vytto Scilironi 3.5449101796407185 3.376179775280899 0.4431137724550898 0.4220224719101124
87 Yvonnick Levis 5.517691888949374 6.202247191011236 0.6897114861186717 0.7752808988764045

View File

@ -12,7 +12,8 @@ import java.util.Map.Entry;
import java.util.TreeMap; import java.util.TreeMap;
import AnalyseCalc.Classeur2.feuille.colonne; import AnalyseCalc.Classeur2.feuille.colonne;
import AnalyseCalc.Classeur2.feuille.formatConditionnel; import AnalyseCalc.Classeur2.feuille.formatsConditionnels;
import AnalyseCalc.Classeur2.feuille.formatsConditionnels.formatConditionnelConditions;
import AnalyseCalc.Classeur2.feuille.graphic; import AnalyseCalc.Classeur2.feuille.graphic;
import AnalyseCalc.Classeur2.feuille.ligne; import AnalyseCalc.Classeur2.feuille.ligne;
import AnalyseCalc.Classeur2.feuille.ligne.cellule; import AnalyseCalc.Classeur2.feuille.ligne.cellule;
@ -66,24 +67,6 @@ public class Classeur2 {
*/ */
public Classeur2(node nod, Integer indexStudent, typeFichier typeClasseurACreer) throws CloneNotSupportedException, IOException { public Classeur2(node nod, Integer indexStudent, typeFichier typeClasseurACreer) throws CloneNotSupportedException, IOException {
// if(typeClasseurACreer.equals(typeFichier.fichier_analyse)) {
// nod.getAttributs().put("bareme",String.valueOf(calc.commandes.analyse_bareme)) ; //= Double.valueOf(nod.getAttributs().get("bareme"));
// nod.getAttributs().put("version",String.valueOf(calc.commandes.version)); //= nod.getAttributs().get("version");
// nod.getAttributs().put("controleDateCreation",String.valueOf(calc.commandes.analyse_controleDateCreation)); // = Boolean.valueOf(nod.getAttributs().get("controleDateCreation"));
// nod.getAttributs().put("presenceMetaSujet", String.valueOf(calc.commandes.analyse_presenceMetaSujet)); // = Boolean.valueOf(nod.getAttributs().get("presenceMetaSujet"));
// nod.getAttributs().put("dateModification",String.valueOf(calc.commandes.analyse_date)); // = nod.getAttributs().get("dateModification");
// nod.getAttributs().put("NbreFeuille",String.valueOf(calc.commandes.analysis_nbr_feuilles)); // = Integer.valueOf(nod.getAttributs().get("NbreFeuille"));
// nod.getAttributs().put("auteur",String.valueOf(calc.commandes.analyse_auteur));// = nod.getAttributs().get("auteur");
// nod.getAttributs().put("baremeABC",String.valueOf(calc.commandes.analyse_baremeABC));// = Boolean.valueOf(nod.getAttributs().get("baremeABC"));
// nod.getAttributs().put("controle_Initial_Creator",String.valueOf(calc.commandes.analyse_controle_Initial_Creator));// = Boolean.valueOf(nod.getAttributs().get("controle_Initial_Creator"));
// nod.getAttributs().put("historiquePresent",String.valueOf(calc.commandes.setting_historiquePresent));// = Boolean.valueOf(nod.getAttributs().get("historiquePresent"));
// nod.getAttributs().put("titre", String.valueOf(calc.commandes.analyse_titre));// = nod.getAttributs().get("titre");
// nod.getAttributs().put("filename", String.valueOf(calc.commandes.analysis_filename));// = nod.getAttributs().get("filename");
// nod.getAttributs().put("producteur", String.valueOf(calc.commandes.analysis_producteur));//= nod.getAttributs().get("producteur");
// nod.getAttributs().put("hash", String.valueOf(calc.commandes.hash));// = nod.getAttributs().get("hash");
// }
//Les meta-données pour tous les classeurs analyse et students //Les meta-données pour tous les classeurs analyse et students
node nMeta = nod.retourneFirstEnfant("office:meta"); node nMeta = nod.retourneFirstEnfant("office:meta");
@ -665,7 +648,7 @@ public class Classeur2 {
private TreeMap<Integer,colonne> colonnes = new TreeMap<Integer,colonne>(); private TreeMap<Integer,colonne> colonnes = new TreeMap<Integer,colonne>();
private TreeMap<Integer,ligne> lignes = new TreeMap<Integer,ligne>(); private TreeMap<Integer,ligne> lignes = new TreeMap<Integer,ligne>();
private TreeMap<Integer,graphic> graphics = new TreeMap<Integer,graphic>(); private TreeMap<Integer,graphic> graphics = new TreeMap<Integer,graphic>();
private TreeMap<Integer,formatConditionnel> formatConditionnel = new TreeMap<Integer,formatConditionnel>(); 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>();
/** /**
@ -716,7 +699,7 @@ public class Classeur2 {
//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 formatConditionnel(nods.get(i))); formatConditionnel.put(i, new formatsConditionnels(nods.get(i)));
} }
} }
@ -724,7 +707,7 @@ public class Classeur2 {
/** /**
* Chargement d'une nouvelle feuille depuis le classeur * Chargement d'une nouvelle feuille depuis le classeur de l'étudiant.<br>
* @param fe * @param fe
* @param XMLContent * @param XMLContent
* @param a * @param a
@ -798,7 +781,7 @@ public class Classeur2 {
ArrayList<node> A = LesFormatsConditionnels.retourneAllEnfants("calcext:conditional-format"); ArrayList<node> A = LesFormatsConditionnels.retourneAllEnfants("calcext:conditional-format");
System.out.println("Nbr de format conditionnels = " + A.size()); System.out.println("Nbr de format conditionnels = " + A.size());
for(int i = 0 ; i < A.size();i++) { for(int i = 0 ; i < A.size();i++) {
formatConditionnel.put(i, new formatConditionnel(A.get(i), nod, indexStudent)); formatConditionnel.put(i, new formatsConditionnels(A.get(i), nod, indexStudent));
} }
}else { }else {
System.out.println("Il n'y a pas de graphique"); System.out.println("Il n'y a pas de graphique");
@ -862,7 +845,7 @@ public class Classeur2 {
return graphics; return graphics;
} }
public TreeMap<Integer, formatConditionnel> getFormatsConditionnels() { public TreeMap<Integer, formatsConditionnels> getFormatsConditionnels() {
return formatConditionnel; return formatConditionnel;
} }
/** /**
@ -2226,7 +2209,7 @@ public class Classeur2 {
/** /**
* Chargement d'un nouvelle cellule * Chargement d'une nouvelle cellule.<br>
* @param cel * @param cel
* @param numLigne * @param numLigne
* @param numColonne * @param numColonne
@ -2637,74 +2620,114 @@ public class Classeur2 {
* @author Pablo * @author Pablo
* *
*******************************************/ *******************************************/
public class formatConditionnel{ public class formatsConditionnels{
private TreeMap<String,String> conditionalformat = new TreeMap<String,String>(); private String targetRangeAddress = "";
private TreeMap<String,String> styleFormatConditionnel = new TreeMap<String,String>(); private TreeMap<Integer,formatConditionnelConditions> conditionalformatConditions = new TreeMap<Integer,formatConditionnelConditions>();
// chargement dans le node sujet. // chargement dans le node sujet.
public formatConditionnel(node nodeFormatsConditionnels ) { public formatsConditionnels(node nodeFormatsConditionnels ) {
if(nodeFormatsConditionnels.getAttributs().get("targetRangeAddress")!=null) conditionalformat.put("targetRangeAddress", nodeFormatsConditionnels.getAttributs().get("targetRangeAddress")); if(nodeFormatsConditionnels.getAttributs().get("targetRangeAddress")!=null) targetRangeAddress = nodeFormatsConditionnels.getAttributs().get("targetRangeAddress");
if(nodeFormatsConditionnels.getAttributs().get("styleName")!=null) conditionalformat.put("styleName", nodeFormatsConditionnels.getAttributs().get("styleName")); for (node enfant : nodeFormatsConditionnels.getEnfants()) {
if(nodeFormatsConditionnels.getAttributs().get("condition")!=null) conditionalformat.put("condition", nodeFormatsConditionnels.getAttributs().get("condition"));
if(nodeFormatsConditionnels.getAttributs().get("baseCellAddress")!=null) conditionalformat.put("baseCellAddress", nodeFormatsConditionnels.getAttributs().get("baseCellAddress"));
node b = nodeFormatsConditionnels.retourneFirstEnfant("styleFormatConditionnel");
if(b!=null) {
for (Entry<String, String> k1 : b.getAttributs().entrySet()) {
styleFormatConditionnel.put(k1.getKey() , k1.getValue()) ;
}
} }
} }
// Chargement depuis le classeur de l'étudiant. // Chargement depuis le classeur de l'étudiant.
public formatConditionnel(node nodeFormatConditionnel,node nod, Integer indexStudent ) { public formatsConditionnels(node nodeFormatConditionnel,node nod, Integer indexStudent ) {
if(nodeFormatConditionnel.getAttributs().get("calcext:target-range-address")!=null) conditionalformat.put("targetRangeAddress", nodeFormatConditionnel.getAttributs().get("calcext:target-range-address")); if(nodeFormatConditionnel.getAttributs().get("calcext:target-range-address")!=null) targetRangeAddress= nodeFormatConditionnel.getAttributs().get("calcext:target-range-address");
for (node condition : nodeFormatConditionnel.getEnfants()) { // les formats conditionnels conditions et style
if(condition.getAttributs().get("calcext:apply-style-name")!=null) conditionalformat.put("styleName", condition.getAttributs().get("calcext:apply-style-name")); int numCondition = 0;
if(condition.getAttributs().get("calcext:value")!=null) conditionalformat.put("condition", condition.getAttributs().get("calcext:value")); for (node conditions : nodeFormatConditionnel.getEnfants()) {
if(condition.getAttributs().get("calcext:base-cell-address")!=null) conditionalformat.put("baseCellAddress", condition.getAttributs().get("calcext:base-cell-address")); numCondition++;
conditionalformatConditions.put(numCondition, new formatConditionnelConditions(conditions,nod,indexStudent, numCondition));
String styleName = conditionalformat.get("styleName").replaceAll(" ", "_20_"); }
node nodeStyle = nod.retourneFirstEnfant("style:style", "style:name", styleName);
if(nodeStyle!=null) {
if(nodeStyle.getAttributs().get("style:family")!=null) styleFormatConditionnel.put("styleFamily", nodeStyle.getAttributs().get("style:family"));
if(nodeStyle.getAttributs().get("style:parent-style-name")!=null) styleFormatConditionnel.put("parentStyleName", nodeStyle.getAttributs().get("style:parent-style-name"));
if(nodeStyle.getAttributs().get("style:data-style-name")!=null) styleFormatConditionnel.put("dataStyleName", nodeStyle.getAttributs().get("style:data-style-name"));
node b = nodeStyle.retourneFirstEnfant("style:table-cell-properties");
if(b!=null) {
if(b.getAttributs().get("fo:background-color")!=null) styleFormatConditionnel.put("arrierPlan", b.getAttributs().get("fo:background-color"));
}
b = nodeStyle.retourneFirstEnfant("style:text-properties");
if(b!=null) {
if(b.getAttributs().get("style:font-name")!=null) styleFormatConditionnel.put("police", b.getAttributs().get("style:font-name"));
if(b.getAttributs().get("fo:font-family")!=null) styleFormatConditionnel.put("policeFamille", b.getAttributs().get("fo:font-family"));
if(b.getAttributs().get("style:font-style-name")!=null) styleFormatConditionnel.put("nomStylePolice", b.getAttributs().get("style:font-style-name"));
if(b.getAttributs().get("fo:font-size")!=null) styleFormatConditionnel.put("taille", b.getAttributs().get("fo:font-size"));
if(b.getAttributs().get("fo:font-style")!=null) styleFormatConditionnel.put("stylePolice", b.getAttributs().get("fo:font-style"));
if(b.getAttributs().get("fo:font-weight")!=null) styleFormatConditionnel.put("policeGras", b.getAttributs().get("fo:font-weight"));
}
}
}
} }
public TreeMap<String, String> getConditionalformat() { public String getTargetRangeAddress() {
return conditionalformat; return targetRangeAddress;
} }
public TreeMap<String, String> getStyleFormatConditionnel() { public TreeMap<Integer, formatConditionnelConditions> getConditionalformatConditions() {
return styleFormatConditionnel; return conditionalformatConditions;
} }
/**
* Les différentes conditions et style.<br>
* @author pabr6
*
*/
public class formatConditionnelConditions {
private TreeMap<String,String> formatConditionnel = new TreeMap<String,String>();
private TreeMap<String,String> styleFormatConditionnel = new TreeMap<String,String>();
// chargement depuis le sujet
public formatConditionnelConditions(node nodeFormatsConditionnels) {
if(nodeFormatsConditionnels.getAttributs().get("numCondition")!=null) formatConditionnel.put("numCondition", nodeFormatsConditionnels.getAttributs().get("numCondition"));
if(nodeFormatsConditionnels.getAttributs().get("styleName")!=null) formatConditionnel.put("styleName", nodeFormatsConditionnels.getAttributs().get("styleName"));
if(nodeFormatsConditionnels.getAttributs().get("condition")!=null) formatConditionnel.put("condition", nodeFormatsConditionnels.getAttributs().get("condition"));
if(nodeFormatsConditionnels.getAttributs().get("baseCellAddress")!=null) formatConditionnel.put("baseCellAddress", nodeFormatsConditionnels.getAttributs().get("baseCellAddress"));
}
// chargement depuis le classeur de l'étudiant.<br>
public formatConditionnelConditions(node conditions,node nod, Integer indexStudent, Integer numCondition) {
formatConditionnel.put("numCondition", String.valueOf(numCondition));
if(conditions.getAttributs().get("calcext:apply-style-name")!=null) formatConditionnel.put("styleName", conditions.getAttributs().get("calcext:apply-style-name"));
if(conditions.getAttributs().get("calcext:value")!=null) formatConditionnel.put("condition", conditions.getAttributs().get("calcext:value"));
if(conditions.getAttributs().get("calcext:base-cell-address")!=null) formatConditionnel.put("baseCellAddress", conditions.getAttributs().get("calcext:base-cell-address"));
String styleName = formatConditionnel.get("styleName").replaceAll(" ", "_20_");
node nodeStyle = nod.retourneFirstEnfant("style:style", "style:name", styleName);
if(nodeStyle!=null) {
if(nodeStyle.getAttributs().get("style:family")!=null) styleFormatConditionnel.put("styleFamily", nodeStyle.getAttributs().get("style:family"));
if(nodeStyle.getAttributs().get("style:parent-style-name")!=null) styleFormatConditionnel.put("parentStyleName", nodeStyle.getAttributs().get("style:parent-style-name"));
if(nodeStyle.getAttributs().get("style:data-style-name")!=null) styleFormatConditionnel.put("dataStyleName", nodeStyle.getAttributs().get("style:data-style-name"));
node b = nodeStyle.retourneFirstEnfant("style:table-cell-properties");
if(b!=null) {
if(b.getAttributs().get("fo:background-color")!=null) styleFormatConditionnel.put("arrierPlan", b.getAttributs().get("fo:background-color"));
}
b = nodeStyle.retourneFirstEnfant("style:text-properties");
if(b!=null) {
if(b.getAttributs().get("style:font-name")!=null) styleFormatConditionnel.put("police", b.getAttributs().get("style:font-name"));
if(b.getAttributs().get("fo:font-family")!=null) styleFormatConditionnel.put("policeFamille", b.getAttributs().get("fo:font-family"));
if(b.getAttributs().get("style:font-style-name")!=null) styleFormatConditionnel.put("nomStylePolice", b.getAttributs().get("style:font-style-name"));
if(b.getAttributs().get("fo:font-size")!=null) styleFormatConditionnel.put("taille", b.getAttributs().get("fo:font-size"));
if(b.getAttributs().get("fo:font-style")!=null) styleFormatConditionnel.put("stylePolice", b.getAttributs().get("fo:font-style"));
if(b.getAttributs().get("fo:font-weight")!=null) styleFormatConditionnel.put("policeGras", b.getAttributs().get("fo:font-weight"));
}
}
}
public TreeMap<String, String> getFormatConditionnel() {
return formatConditionnel;
}
public TreeMap<String, String> getStyleFormatConditionnel() {
return styleFormatConditionnel;
}
} // formatConditionnelConditions
} // formatConditionnel } // formatsConditionnels
} // feuille } // feuille
@ -2818,7 +2841,7 @@ public class Classeur2 {
} }
// formats conditionnels // formats conditionnels
for (Entry<Integer, formatConditionnel> k1 : k.getValue().getFormatsConditionnels().entrySet()) { for (Entry<Integer, formatsConditionnels> k1 : k.getValue().getFormatsConditionnels().entrySet()) {
ecritureFormatsConditionnels(fichier,k1.getValue(),""); ecritureFormatsConditionnels(fichier,k1.getValue(),"");
} }
@ -2914,24 +2937,21 @@ public class Classeur2 {
* @param prefix * @param prefix
* @throws IOException * @throws IOException
*/ */
private void ecritureFormatsConditionnels(StringBuilder fichier, formatConditionnel k1, String prefix ) throws IOException { private void ecritureFormatsConditionnels(StringBuilder fichier, formatsConditionnels k1, String prefix ) throws IOException {
fichier.append(prefix+"<formatsConditionnels evaluer=\"false\" styletitrePrincipale=\"H1\" saut=\"false\" titre=\"\">"); fichier.append(prefix+"<formatsConditionnels baseCellAddress=\"" +k1.getTargetRangeAddress()+ "\" evaluer=\"false\" styletitrePrincipale=\"H1\" saut=\"false\" titre=\"\">");
fichier.append("<communication></communication>" ) ; fichier.append("<communication></communication>" ) ;
fichier.append(prefix+"<formatConditionnel"); for(Entry<Integer, formatConditionnelConditions> k2 : k1.getConditionalformatConditions().entrySet()) {
for(Entry<String,String> k2 : k1.getConditionalformat().entrySet()) { fichier.append(prefix+"<formatConditionnel");
fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ; for(Entry<String,String> k3 : k2.getValue().getFormatConditionnel().entrySet()) {
fichier.append(" " + k3.getKey() + "=\"" + k3.getValue() + "\"" ) ;
}
fichier.append("><styleFormatConditionnel");
for(Entry<String,String> k3 : k2.getValue().getStyleFormatConditionnel().entrySet()) {
fichier.append(" " + k3.getKey() + "=\"" + k3.getValue() + "\"" ) ;
}
fichier.append("></styleFormatConditionnel></formatConditionnel>");
} }
fichier.append(">");
fichier.append("<styleFormatConditionnel");
for (Entry<String, String> k2 : k1.getStyleFormatConditionnel().entrySet()) {
fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ;
}
fichier.append("></styleFormatConditionnel>");
fichier.append("</formatConditionnel>");
fichier.append(prefix+"</formatsConditionnels>"); fichier.append(prefix+"</formatsConditionnels>");
} }

View File

@ -22,15 +22,19 @@ public class evaluerAttributs {
nEtudiant = nodeEtudiant; nEtudiant = nodeEtudiant;
nAnalyse = analyse; nAnalyse = analyse;
nSujet = nodeSujet; nSujet = nodeSujet;
if(nodeSujet.getNameNode().equals("colonne")) evaluerAttributColonne(); if(nodeSujet.getNameNode().equals("colonne")) {
evaluerAttributColonne();
}
if(nodeSujet.getNameNode().equals("ligne")) { if(nodeSujet.getNameNode().equals("ligne")) {
evaluerAttributLigne(); evaluerAttributLigne();
evaluerAttributCellule(); evaluerAttributCellule();
} }
if(nodeSujet.getNameNode().equals("formatConditionnel")) { if(nodeSujet.getNameNode().equals("formatsConditionnels")) {
evaluerAttributFormatConditionnel(); for (node nFormatConditionnelSujet : nSujet.getEnfants()) {
evaluerAttributStyleFormatConditionnel(); node nFormatConditionnelEtudiant = trouveFormatConditionnelEtudaint(nFormatConditionnelSujet.getAttributs().get("numCondition"));
evaluerAttributFormatConditionnel(nFormatConditionnelSujet,nFormatConditionnelEtudiant);
evaluerAttributStyleFormatConditionnel(nFormatConditionnelSujet,nFormatConditionnelEtudiant);
}
} }
if(nodeSujet.getNameNode().equals("graphic")) { if(nodeSujet.getNameNode().equals("graphic")) {
evaluerAttributGraphic(); evaluerAttributGraphic();
@ -100,12 +104,12 @@ public class evaluerAttributs {
/** /**
* Evaluer les attributs du node formatConditionnel.<br> * Evaluer les attributs du node formatConditionnel.<br>
*/ */
private void evaluerAttributFormatConditionnel() { private void evaluerAttributFormatConditionnel(node nFormatConditionnelSujet, node nFormatConditionnelEtudiant) {
for (Map.Entry<String, String> entry : nSujet.getAttributs().entrySet()){ for (Map.Entry<String, String> entry : nFormatConditionnelSujet.getAttributs().entrySet()){
if(nSujet.isAttributEvaluer(entry.getKey())) { if(nFormatConditionnelSujet.isAttributEvaluer(entry.getKey())) {
String valeurEtudiant = ""; String valeurEtudiant = "";
if(nEtudiant!=null) valeurEtudiant=nEtudiant.getAttributs().get(entry.getKey()); if(nFormatConditionnelEtudiant!=null) valeurEtudiant=nFormatConditionnelEtudiant.getAttributs().get(entry.getKey());
nAnalyse.retourneLastEnfant("formatConditionnel").addEnfant(new outils().Compare("formatConditionnel",entry.getKey(), entry.getValue(), valeurEtudiant)); nAnalyse.retourneLastEnfant("formatsConditionnels").addEnfant(new outils().Compare("formatConditionnel",entry.getKey(), entry.getValue(), valeurEtudiant));
} }
} }
} }
@ -113,16 +117,16 @@ public class evaluerAttributs {
/** /**
* Evaluer les attributs du node styleFormatConditionnel.<br> * Evaluer les attributs du node styleFormatConditionnel.<br>
*/ */
private void evaluerAttributStyleFormatConditionnel() { private void evaluerAttributStyleFormatConditionnel(node nFormatConditionnelSujet, node nFormatConditionnelEtudiant) {
node styleFormatConditionnel = nSujet.retourneFirstEnfant("styleFormatConditionnel"); node styleFormatConditionnel = nFormatConditionnelSujet.retourneFirstEnfant("styleFormatConditionnel");
if(styleFormatConditionnel.isEvaluer()) { if(styleFormatConditionnel.isEvaluer()) {
node styleFormatConditionnelEtudiant = null; node styleFormatConditionnelEtudiant = null;
if(nEtudiant!=null) styleFormatConditionnelEtudiant = nEtudiant.retourneFirstEnfant("styleFormatConditionnel"); if(nFormatConditionnelEtudiant!=null) styleFormatConditionnelEtudiant = nFormatConditionnelEtudiant.retourneFirstEnfant("styleFormatConditionnel");
for (Map.Entry<String, String> entry : styleFormatConditionnel.getAttributs().entrySet()){ for (Map.Entry<String, String> entry : styleFormatConditionnel.getAttributs().entrySet()){
if(styleFormatConditionnel.isAttributEvaluer(entry.getKey())) { if(styleFormatConditionnel.isAttributEvaluer(entry.getKey())) {
String valeurEtudiant = ""; String valeurEtudiant = "";
if(styleFormatConditionnelEtudiant!=null) if(styleFormatConditionnelEtudiant.getAttributs().get(entry.getKey())!=null) valeurEtudiant = styleFormatConditionnelEtudiant.getAttributs().get(entry.getKey()); if(styleFormatConditionnelEtudiant!=null) if(styleFormatConditionnelEtudiant.getAttributs().get(entry.getKey())!=null) valeurEtudiant = styleFormatConditionnelEtudiant.getAttributs().get(entry.getKey());
nAnalyse.retourneLastEnfant("formatConditionnel").addEnfant(new outils().Compare("formatConditionnel",entry.getKey(), entry.getValue(), valeurEtudiant )); nAnalyse.retourneLastEnfant("formatsConditionnels").addEnfant(new outils().Compare("formatConditionnel",entry.getKey(), entry.getValue(), valeurEtudiant ));
} }
} }
} }
@ -198,6 +202,17 @@ public class evaluerAttributs {
return nEtudiant.retourneFirstEnfant(nameNode); return nEtudiant.retourneFirstEnfant(nameNode);
} }
/**
* Trouve le format conditionnel par le numéro de la condition.<br>
* @param numCondition
* @return
*/
private node trouveFormatConditionnelEtudaint(String numCondition) {
numCondition = numCondition.substring(0,numCondition.indexOf(""));
if(nEtudiant==null) return null;
return nEtudiant.retourneFirstEnfant("formatConditionnel","numCondition", numCondition);
}
} }

View File

@ -66,6 +66,7 @@ public class evaluerLesFichiersEtudiants implements Runnable{
commandes.message.append("<hr>"); commandes.message.append("<hr>");
LecturesDossiers.getEC().Initialise(); LecturesDossiers.getEC().Initialise();
if(commandes.fichierStudentMoodle) { if(commandes.fichierStudentMoodle) {
commandes.tousLesResultats.clear(); commandes.tousLesResultats.clear();
txt.setText(""); txt.setText("");
@ -203,7 +204,9 @@ public class evaluerLesFichiersEtudiants implements Runnable{
creerNodeEvaluationEtudiant ana = new creerNodeEvaluationEtudiant(nomEtudiant, i); creerNodeEvaluationEtudiant ana = new creerNodeEvaluationEtudiant(nomEtudiant, i);
new evaluerNodesClasseurStudent(ana, nodStudent); new evaluerNodesClasseurStudent(ana, nodStudent);
ana.calculResultatDuNode(); ana.calculResultatDuNode();
ana.saveNodeEnXMLinNewFile(EnsembleFichiers.getListeNomFichierFeedBack().get(i), commandes.pathApp + "/feedback" );
fichierCSV.append(ana.retourneFirstEnfant("csv").getContenu(0)+"\n"); fichierCSV.append(ana.retourneFirstEnfant("csv").getContenu(0)+"\n");
commandes.tousLesResultats.addEnfant(ana); commandes.tousLesResultats.addEnfant(ana);
} }
commandes.tousLesResultats.saveNodeEnXMLinNewFile("ana.xml", commandes.pathApp); commandes.tousLesResultats.saveNodeEnXMLinNewFile("ana.xml", commandes.pathApp);

View File

@ -1,5 +1,8 @@
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;
@ -60,13 +63,13 @@ public class evaluerNodesClasseurStudent {
* evaluer les formats conditionnels.<br> * evaluer les formats conditionnels.<br>
*/ */
private void evaluerLesFormatsConditionnels() { private void evaluerLesFormatsConditionnels() {
for (node formatConditionnel : commandes.sujet.retourneAllEnfants("formatConditionnel")) { for (node formatsConditionnels : commandes.sujet.retourneAllEnfants("formatsConditionnels")) {
if(formatConditionnel.isEvaluer()) { if(formatsConditionnels.isEvaluer()) {
node formatConditionnelEtudiant = trouveLeFormatConditionnelEtudiant(formatConditionnel.getAttributs().get("baseCellAddress")); node formatConditionnelEtudiant = trouveLesFormatsConditionnelsEtudiant(formatsConditionnels.getAttributs().get("baseCellAddress"));
node anaFormatConditionnel = new node("formatConditionnel"); node anaFormatConditionnel = new node("formatsConditionnels");
anaFormatConditionnel.getAttributs().put("baseCellAddress", formatConditionnel.getAttributs().get("baseCellAddress")); anaFormatConditionnel.getAttributs().put("baseCellAddress", formatsConditionnels.getAttributs().get("baseCellAddress"));
nAna.addEnfant(anaFormatConditionnel); nAna.addEnfant(anaFormatConditionnel);
new evaluerAttributs(formatConditionnel, formatConditionnelEtudiant , nAna); new evaluerAttributs(formatsConditionnels, formatConditionnelEtudiant , nAna);
anaFormatConditionnel.calculPoints(); anaFormatConditionnel.calculPoints();
} }
} }
@ -84,6 +87,7 @@ public class evaluerNodesClasseurStudent {
/** /**
* Trouve le graphic de l'étudiant.<br> * Trouve le graphic de l'étudiant.<br>
* pour trouver le graphic, référence au nom de l'objet, puis titreGraphique, puis type, et enfin n'importe quel graphique.<br>
* @param nomObjet * @param nomObjet
* @return * @return
*/ */
@ -100,29 +104,36 @@ 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>
* @param baseCellAddress * @param baseCellAddress
* @return * @return
*/ */
private node trouveLeFormatConditionnelEtudiant(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(""));
if(baseCellAddress.matches("[0-9]")) { // 🔥 Regex pour capturer le texte avant et après le 2e nombre
String number = baseCellAddress.replaceAll("[^0-9]+", ""); // Supprime tout sauf les chiffres String regex = "(.*?)(\\d+)(.*?\\d+)";
// Supprimer tout ce qui suit le 2e nombre
String name = baseCellAddress.replaceAll(regex, "$1");
String number = baseCellAddress.replaceAll(regex, "$2"); // Supprime tout sauf les chiffres
int ligneCellSujet = Integer.parseInt(number); int ligneCellSujet = Integer.parseInt(number);
String name = baseCellAddress.replaceAll("[^a-zA-Z\\.]+", ""); String name1 = "^"+name+String.valueOf(ligneCellSujet)+".*";
String name2 = "^"+name+String.valueOf(ligneCellSujet-1)+".*";
String name3 = "^"+name+String.valueOf(ligneCellSujet+1)+".*";
if(nodeEtudiant!=null) { if(nodeEtudiant!=null) {
for (node enfantsEtudiant : nodeEtudiant.retourneAllEnfants("formatConditionnel")) { for (node enfantsEtudiant : nodeEtudiant.retourneAllEnfants("formatsConditionnels")) {
String A = enfantsEtudiant.getAttributs().get("baseCellAddress"); String A = enfantsEtudiant.getAttributs().get("baseCellAddress");
if(A!=null) { if(A!=null) {
if(A.equals(name+String.valueOf(ligneCellSujet)) || A.equals(name+String.valueOf(ligneCellSujet-1)) if(A.matches(name1) || A.matches(name2) || A.matches(name3)) {
|| A.equals(name+String.valueOf(ligneCellSujet-2)) || A.equals(name+String.valueOf(ligneCellSujet+1))
|| A.equals(name+String.valueOf(ligneCellSujet+2))) {
return enfantsEtudiant; return enfantsEtudiant;
} }
} }
} }
} }
}
return null; return null;
} }

View File

@ -995,12 +995,22 @@ protected boolean nodeClose = false;
* @return * @return
*/ */
public boolean saveNodeEnXMLinNewFile(String filenameWithExtension, String pathDestination) { public boolean saveNodeEnXMLinNewFile(String filenameWithExtension, String pathDestination) {
if(filenameWithExtension.contains(".xml")) { if(filenameWithExtension.contains(".xml")) {
filenameWithExtension = filenameWithExtension.substring(0,filenameWithExtension.lastIndexOf(".xml")); filenameWithExtension = filenameWithExtension.substring(0,filenameWithExtension.lastIndexOf(".xml"));
} }
Path outputFilePath = Paths.get(pathDestination +"/"+ filenameWithExtension + ".xml"); Path outputFilePath = Paths.get(pathDestination +"/"+ filenameWithExtension + ".xml");
if (!(Files.exists(outputFilePath.getParent()) && Files.isDirectory(outputFilePath.getParent()))) {
try {
Files.createDirectories(outputFilePath.getParent());
} catch (IOException e) {
e.printStackTrace();
}
}
try { try {
BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8); BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8);
fichier.write(this.ecritureXML().toString()); fichier.write(this.ecritureXML().toString());

File diff suppressed because one or more lines are too long