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/
/outils/
/fenetres/
/evaluer/
/xml/

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,87 +1,87 @@
nomEtudiant;note;pourcentage
Alex Marechal;6.780620577027762;0.8475775721284703
Alexandre Berthelin;3.0615133369624385;0.3826891671203048
Alexis Legrand;5.4001088731627656;0.6750136091453457
Alexy Lefebvre;5.574305933587371;0.6967882416984214
Amelie Bruniaux;5.857376156777354;0.7321720195971693
Anais Blondel;4.415895481763745;0.5519869352204682
Anais Najdecki;2.900381056069679;0.3625476320087099
Antoine Duponchelle;4.489929232444203;0.5612411540555253
Antoine Ponchel;5.596080566140446;0.6995100707675558
Apolline Michel;5.456722917800762;0.6820903647250952
Arthur Willart;3.9891126837234623;0.4986390854654328
Aurelien Ben Yahia;5.308655416439848;0.663581927054981
Axel Aoumat;3.2400653238976593;0.4050081654872074
Axel Cadart;5.186717474142624;0.648339684267828
Aymeric Grenier;5.809471965160588;0.7261839956450735
Baptiste Fynnaert;3.723462166575939;0.46543277082199236
Charles Carron;3.780076211213936;0.472509526401742
Chloe Mazur;5.735438214480131;0.7169297768100164
Clara Bruneau;3.0571584104518235;0.38214480130647793
Clement Legrand;5.430593358737071;0.6788241698421339
Cyril Massart;3.7974959172563962;0.47468698965704953
Doriane Bernard;4.938486663037561;0.6173108328796951
Elliot Pilawa;2.5834701696770663;0.3229337712096333
Elodie Vaesken;4.520413718018508;0.5650517147523135
Enora-Lou Deplanque;2.6173108328796952;0.3271638541099619
Esteban Devos Devulder;3.653783342406097;0.45672291780076213
Gabriel Humain;5.539466521502449;0.6924333151878062
Helene Adjal;4.507348938486663;0.5634186173108329
Hugo Guffroy;4.71638541099619;0.5895481763745237
Imen Belaiche;5.613500272182907;0.7016875340228633
Ines Aubier;4.794774088187262;0.5993467610234078
Ines El Karami;5.596080566140446;0.6995100707675558
Issam Benzemra--Petit;5.70930865541644;0.713663581927055
Jane Gosset;5.365269461077844;0.6706586826347305
Jeremy Legros;3.618943930321176;0.452367991290147
Julie Rohart;3.923788786064235;0.4904735982580294
Justine Bertin;4.629286880783887;0.5786608600979859
Justine Mikolajczak;4.350571584104518;0.5438214480130648
Lali Vin;5.657049537289058;0.7071311921611323
Lea Denys;5.487207403375068;0.6859009254218835
Leo Marin;4.990745781164943;0.6238432226456179
Lilian Lamorille;2.9657049537289057;0.3707131192161132
Lisa Baran;5.2084921066957;0.6510615133369625
Lucas Canon;5.70930865541644;0.713663581927055
Lucie Delong;4.72509526401742;0.5906369080021775
Luna Hemery;5.295590636908003;0.6619488296135003
Maeline Humez;5.652694610778443;0.7065868263473054
Manon Cassel;5.4001088731627656;0.6750136091453457
Martin Pilot;4.498639085465433;0.5623298856831791
Mateo Darras;3.5710397387044095;0.4463799673380512
Matheo Guerineau;5.508982035928144;0.688622754491018
Matheo Normand;5.70930865541644;0.713663581927055
Mathilde Carlier;2.970059880239521;0.3712574850299401
Mathilde Konury;5.199782253674469;0.6499727817093086
Mathis Carlier;5.569951007076756;0.6962438758845945
Mathys Calesse;4.489929232444203;0.5612411540555253
Mehdi Boutchich;3.497005988023952;0.437125748502994
Melanie Bouchoir;5.221556886227545;0.6526946107784432
Melusine Miletti;4.25040827436037;0.5313010342950463
Mickael Lenclud;2.3645320197044337;0.2955665024630542
Noah Desfachelles;3.035383777898748;0.3794229722373435
Noah Halluin;1.3267651888341543;0.16584564860426929
Oceane Decroix;4.010887316276538;0.5013609145345672
Pablo Rodriguez;4.3810560696788245;0.5476320087098531
Quentin Stautemas;4.838323353293413;0.6047904191616766
Raphael Rivaux;1.5764833968426784;0.1970604246053348
Remi Delaval;3.9629831246597713;0.4953728905824714
Remi Delvalle;5.204137180185084;0.6505171475231355
Remy Maeght;2.569406641262929;0.3211758301578661
Romain Bruni;5.500272182906913;0.6875340228633642
Romain Delrue;5.0647795318454;0.633097441480675
Ronan Bourdrel;5.583015786608601;0.6978769733260751
Simon Ducrocq;5.552531301034295;0.6940664126292869
Solene Marien;5.7180185084376705;0.7147523135547088
Stefan Gaudin;2.1774632553075666;0.2721829069134458
Tanguy Delavier;4.459444746869897;0.5574305933587371
Theo Duprez;4.346216657593903;0.5432770821992379
Theo Justin;4.446379967338051;0.5557974959172564
Theo Rouze;5.456722917800762;0.6820903647250952
Theo Verlet;5.565596080566141;0.6956995100707676
Thomas Renard;4.010887316276538;0.5013609145345672
Thomas Thevenin;3.6668481219379423;0.4583560152422428
Tristan Quesson;3.5362003266194884;0.44202504082743604
Tyffene Viseur;5.204137180185084;0.6505171475231355
Vytto Scilironi;3.5449101796407185;0.4431137724550898
Yvonnick Levis;5.517691888949374;0.6897114861186717
Alex Marechal;8.0;1.0
Alexandre Berthelin;2.527640449438202;0.31595505617977526
Alexis Legrand;6.112359550561798;0.7640449438202247
Alexy Lefebvre;6.000898876404494;0.7501123595505618
Amelie Bruniaux;6.238202247191011;0.7797752808988764
Anais Blondel;4.5591011235955055;0.5698876404494382
Anais Najdecki;3.358202247191011;0.4197752808988764
Antoine Duponchelle;5.357303370786517;0.6696629213483146
Antoine Ponchel;6.202247191011236;0.7752808988764045
Apolline Michel;6.159101123595506;0.7698876404494382
Arthur Willart;4.533932584269663;0.5667415730337079
Aurelien Ben Yahia;6.03685393258427;0.7546067415730338
Axel Aoumat;4.5447191011235955;0.5680898876404494
Axel Cadart;5.928988764044944;0.741123595505618
Aymeric Grenier;6.1986516853932585;0.7748314606741573
Baptiste Fynnaert;3.9298876404494383;0.4912359550561798
Camille Henneton - - Hecquet;6.112359550561798;0.7640449438202247
Charles Carron;3.832808988764045;0.4791011235955056
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 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 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.ligne;
import AnalyseCalc.Classeur2.feuille.ligne.cellule;
@ -66,24 +67,6 @@ public class Classeur2 {
*/
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
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,ligne> lignes = new TreeMap<Integer,ligne>();
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>();
/**
@ -716,7 +699,7 @@ public class Classeur2 {
//format conditionnel
nods= fe.retourneAllEnfants("formatsConditionnels");
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 XMLContent
* @param a
@ -798,7 +781,7 @@ public class Classeur2 {
ArrayList<node> A = LesFormatsConditionnels.retourneAllEnfants("calcext:conditional-format");
System.out.println("Nbr de format conditionnels = " + A.size());
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 {
System.out.println("Il n'y a pas de graphique");
@ -862,7 +845,7 @@ public class Classeur2 {
return graphics;
}
public TreeMap<Integer, formatConditionnel> getFormatsConditionnels() {
public TreeMap<Integer, formatsConditionnels> getFormatsConditionnels() {
return formatConditionnel;
}
/**
@ -2226,7 +2209,7 @@ public class Classeur2 {
/**
* Chargement d'un nouvelle cellule
* Chargement d'une nouvelle cellule.<br>
* @param cel
* @param numLigne
* @param numColonne
@ -2637,74 +2620,114 @@ public class Classeur2 {
* @author Pablo
*
*******************************************/
public class formatConditionnel{
private TreeMap<String,String> conditionalformat = new TreeMap<String,String>();
private TreeMap<String,String> styleFormatConditionnel = new TreeMap<String,String>();
public class formatsConditionnels{
private String targetRangeAddress = "";
private TreeMap<Integer,formatConditionnelConditions> conditionalformatConditions = new TreeMap<Integer,formatConditionnelConditions>();
// chargement dans le node sujet.
public formatConditionnel(node nodeFormatsConditionnels ) {
if(nodeFormatsConditionnels.getAttributs().get("targetRangeAddress")!=null) conditionalformat.put("targetRangeAddress", nodeFormatsConditionnels.getAttributs().get("targetRangeAddress"));
if(nodeFormatsConditionnels.getAttributs().get("styleName")!=null) conditionalformat.put("styleName", nodeFormatsConditionnels.getAttributs().get("styleName"));
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()) ;
}
public formatsConditionnels(node nodeFormatsConditionnels ) {
if(nodeFormatsConditionnels.getAttributs().get("targetRangeAddress")!=null) targetRangeAddress = nodeFormatsConditionnels.getAttributs().get("targetRangeAddress");
for (node enfant : nodeFormatsConditionnels.getEnfants()) {
}
}
// Chargement depuis le classeur de l'étudiant.
public formatConditionnel(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"));
for (node condition : nodeFormatConditionnel.getEnfants()) {
if(condition.getAttributs().get("calcext:apply-style-name")!=null) conditionalformat.put("styleName", condition.getAttributs().get("calcext:apply-style-name"));
if(condition.getAttributs().get("calcext:value")!=null) conditionalformat.put("condition", condition.getAttributs().get("calcext:value"));
if(condition.getAttributs().get("calcext:base-cell-address")!=null) conditionalformat.put("baseCellAddress", condition.getAttributs().get("calcext:base-cell-address"));
public formatsConditionnels(node nodeFormatConditionnel,node nod, Integer indexStudent ) {
if(nodeFormatConditionnel.getAttributs().get("calcext:target-range-address")!=null) targetRangeAddress= nodeFormatConditionnel.getAttributs().get("calcext:target-range-address");
// les formats conditionnels conditions et style
int numCondition = 0;
for (node conditions : nodeFormatConditionnel.getEnfants()) {
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 String getTargetRangeAddress() {
return targetRangeAddress;
}
public TreeMap<Integer, formatConditionnelConditions> getConditionalformatConditions() {
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> getConditionalformat() {
return conditionalformat;
}
public TreeMap<String, String> getStyleFormatConditionnel() {
return styleFormatConditionnel;
}
}
} // formatConditionnel
public TreeMap<String, String> getFormatConditionnel() {
return formatConditionnel;
}
public TreeMap<String, String> getStyleFormatConditionnel() {
return styleFormatConditionnel;
}
} // formatConditionnelConditions
} // formatsConditionnels
} // feuille
@ -2818,7 +2841,7 @@ public class Classeur2 {
}
// formats conditionnels
for (Entry<Integer, formatConditionnel> k1 : k.getValue().getFormatsConditionnels().entrySet()) {
for (Entry<Integer, formatsConditionnels> k1 : k.getValue().getFormatsConditionnels().entrySet()) {
ecritureFormatsConditionnels(fichier,k1.getValue(),"");
}
@ -2914,24 +2937,21 @@ public class Classeur2 {
* @param prefix
* @throws IOException
*/
private void ecritureFormatsConditionnels(StringBuilder fichier, formatConditionnel k1, String prefix ) throws IOException {
fichier.append(prefix+"<formatsConditionnels evaluer=\"false\" styletitrePrincipale=\"H1\" saut=\"false\" titre=\"\">");
private void ecritureFormatsConditionnels(StringBuilder fichier, formatsConditionnels k1, String prefix ) throws IOException {
fichier.append(prefix+"<formatsConditionnels baseCellAddress=\"" +k1.getTargetRangeAddress()+ "\" evaluer=\"false\" styletitrePrincipale=\"H1\" saut=\"false\" titre=\"\">");
fichier.append("<communication></communication>" ) ;
fichier.append(prefix+"<formatConditionnel");
for(Entry<String,String> k2 : k1.getConditionalformat().entrySet()) {
fichier.append(" " + k2.getKey() + "=\"" + k2.getValue() + "\"" ) ;
for(Entry<Integer, formatConditionnelConditions> k2 : k1.getConditionalformatConditions().entrySet()) {
fichier.append(prefix+"<formatConditionnel");
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>");
}

View File

@ -22,15 +22,19 @@ public class evaluerAttributs {
nEtudiant = nodeEtudiant;
nAnalyse = analyse;
nSujet = nodeSujet;
if(nodeSujet.getNameNode().equals("colonne")) evaluerAttributColonne();
if(nodeSujet.getNameNode().equals("colonne")) {
evaluerAttributColonne();
}
if(nodeSujet.getNameNode().equals("ligne")) {
evaluerAttributLigne();
evaluerAttributCellule();
}
if(nodeSujet.getNameNode().equals("formatConditionnel")) {
evaluerAttributFormatConditionnel();
evaluerAttributStyleFormatConditionnel();
if(nodeSujet.getNameNode().equals("formatsConditionnels")) {
for (node nFormatConditionnelSujet : nSujet.getEnfants()) {
node nFormatConditionnelEtudiant = trouveFormatConditionnelEtudaint(nFormatConditionnelSujet.getAttributs().get("numCondition"));
evaluerAttributFormatConditionnel(nFormatConditionnelSujet,nFormatConditionnelEtudiant);
evaluerAttributStyleFormatConditionnel(nFormatConditionnelSujet,nFormatConditionnelEtudiant);
}
}
if(nodeSujet.getNameNode().equals("graphic")) {
evaluerAttributGraphic();
@ -100,12 +104,12 @@ public class evaluerAttributs {
/**
* Evaluer les attributs du node formatConditionnel.<br>
*/
private void evaluerAttributFormatConditionnel() {
for (Map.Entry<String, String> entry : nSujet.getAttributs().entrySet()){
if(nSujet.isAttributEvaluer(entry.getKey())) {
private void evaluerAttributFormatConditionnel(node nFormatConditionnelSujet, node nFormatConditionnelEtudiant) {
for (Map.Entry<String, String> entry : nFormatConditionnelSujet.getAttributs().entrySet()){
if(nFormatConditionnelSujet.isAttributEvaluer(entry.getKey())) {
String valeurEtudiant = "";
if(nEtudiant!=null) valeurEtudiant=nEtudiant.getAttributs().get(entry.getKey());
nAnalyse.retourneLastEnfant("formatConditionnel").addEnfant(new outils().Compare("formatConditionnel",entry.getKey(), entry.getValue(), valeurEtudiant));
if(nFormatConditionnelEtudiant!=null) valeurEtudiant=nFormatConditionnelEtudiant.getAttributs().get(entry.getKey());
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>
*/
private void evaluerAttributStyleFormatConditionnel() {
node styleFormatConditionnel = nSujet.retourneFirstEnfant("styleFormatConditionnel");
private void evaluerAttributStyleFormatConditionnel(node nFormatConditionnelSujet, node nFormatConditionnelEtudiant) {
node styleFormatConditionnel = nFormatConditionnelSujet.retourneFirstEnfant("styleFormatConditionnel");
if(styleFormatConditionnel.isEvaluer()) {
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()){
if(styleFormatConditionnel.isAttributEvaluer(entry.getKey())) {
String valeurEtudiant = "";
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);
}
/**
* 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>");
LecturesDossiers.getEC().Initialise();
if(commandes.fichierStudentMoodle) {
commandes.tousLesResultats.clear();
txt.setText("");
@ -203,7 +204,9 @@ public class evaluerLesFichiersEtudiants implements Runnable{
creerNodeEvaluationEtudiant ana = new creerNodeEvaluationEtudiant(nomEtudiant, i);
new evaluerNodesClasseurStudent(ana, nodStudent);
ana.calculResultatDuNode();
ana.saveNodeEnXMLinNewFile(EnsembleFichiers.getListeNomFichierFeedBack().get(i), commandes.pathApp + "/feedback" );
fichierCSV.append(ana.retourneFirstEnfant("csv").getContenu(0)+"\n");
commandes.tousLesResultats.addEnfant(ana);
}
commandes.tousLesResultats.saveNodeEnXMLinNewFile("ana.xml", commandes.pathApp);

View File

@ -1,5 +1,8 @@
package evaluer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import calc.commandes;
import xml.creerNodeEvaluationEtudiant;
import xml.node;
@ -60,13 +63,13 @@ public class evaluerNodesClasseurStudent {
* evaluer les formats conditionnels.<br>
*/
private void evaluerLesFormatsConditionnels() {
for (node formatConditionnel : commandes.sujet.retourneAllEnfants("formatConditionnel")) {
if(formatConditionnel.isEvaluer()) {
node formatConditionnelEtudiant = trouveLeFormatConditionnelEtudiant(formatConditionnel.getAttributs().get("baseCellAddress"));
node anaFormatConditionnel = new node("formatConditionnel");
anaFormatConditionnel.getAttributs().put("baseCellAddress", formatConditionnel.getAttributs().get("baseCellAddress"));
for (node formatsConditionnels : commandes.sujet.retourneAllEnfants("formatsConditionnels")) {
if(formatsConditionnels.isEvaluer()) {
node formatConditionnelEtudiant = trouveLesFormatsConditionnelsEtudiant(formatsConditionnels.getAttributs().get("baseCellAddress"));
node anaFormatConditionnel = new node("formatsConditionnels");
anaFormatConditionnel.getAttributs().put("baseCellAddress", formatsConditionnels.getAttributs().get("baseCellAddress"));
nAna.addEnfant(anaFormatConditionnel);
new evaluerAttributs(formatConditionnel, formatConditionnelEtudiant , nAna);
new evaluerAttributs(formatsConditionnels, formatConditionnelEtudiant , nAna);
anaFormatConditionnel.calculPoints();
}
}
@ -84,6 +87,7 @@ public class evaluerNodesClasseurStudent {
/**
* 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
* @return
*/
@ -100,29 +104,36 @@ public class evaluerNodesClasseurStudent {
/**
* Trouve le format conditionnel de l'étudiant.<br>
* Pour trouver le format conditionnel, référence à baseCellAddress avec + ou - 2 lignes.<br>
* @param baseCellAddress
* @return
*/
private node trouveLeFormatConditionnelEtudiant(String baseCellAddress) {
private node trouveLesFormatsConditionnelsEtudiant(String baseCellAddress) {
if(baseCellAddress.indexOf("")!=-1) baseCellAddress = baseCellAddress.substring(0, baseCellAddress.indexOf(""));
if(baseCellAddress.matches("[0-9]")) {
String number = baseCellAddress.replaceAll("[^0-9]+", ""); // Supprime tout sauf les chiffres
// 🔥 Regex pour capturer le texte avant et après le 2e nombre
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);
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) {
for (node enfantsEtudiant : nodeEtudiant.retourneAllEnfants("formatConditionnel")) {
for (node enfantsEtudiant : nodeEtudiant.retourneAllEnfants("formatsConditionnels")) {
String A = enfantsEtudiant.getAttributs().get("baseCellAddress");
if(A!=null) {
if(A.equals(name+String.valueOf(ligneCellSujet)) || A.equals(name+String.valueOf(ligneCellSujet-1))
|| A.equals(name+String.valueOf(ligneCellSujet-2)) || A.equals(name+String.valueOf(ligneCellSujet+1))
|| A.equals(name+String.valueOf(ligneCellSujet+2))) {
if(A.matches(name1) || A.matches(name2) || A.matches(name3)) {
return enfantsEtudiant;
}
}
}
}
}
return null;
}

View File

@ -995,12 +995,22 @@ protected boolean nodeClose = false;
* @return
*/
public boolean saveNodeEnXMLinNewFile(String filenameWithExtension, String pathDestination) {
if(filenameWithExtension.contains(".xml")) {
filenameWithExtension = filenameWithExtension.substring(0,filenameWithExtension.lastIndexOf(".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 {
BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8);
fichier.write(this.ecritureXML().toString());

File diff suppressed because one or more lines are too long