maj
This commit is contained in:
parent
c2324b01c8
commit
cf41fae890
File diff suppressed because one or more lines are too long
2
bin/.gitignore
vendored
2
bin/.gitignore
vendored
@ -1,3 +1,5 @@
|
||||
/AnalyseCalc/
|
||||
/outils/
|
||||
/fenetres/
|
||||
/evaluer/
|
||||
/xml/
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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
|
||||
|
|
@ -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"));
|
||||
|
||||
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 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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public TreeMap<String, String> getConditionalformat() {
|
||||
return conditionalformat;
|
||||
public String getTargetRangeAddress() {
|
||||
return targetRangeAddress;
|
||||
}
|
||||
|
||||
public TreeMap<String, String> getStyleFormatConditionnel() {
|
||||
return styleFormatConditionnel;
|
||||
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> getFormatConditionnel() {
|
||||
return formatConditionnel;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public TreeMap<String, String> getStyleFormatConditionnel() {
|
||||
return styleFormatConditionnel;
|
||||
}
|
||||
|
||||
|
||||
} // formatConditionnelConditions
|
||||
|
||||
|
||||
|
||||
} // formatConditionnel
|
||||
} // 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>");
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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());
|
||||
|
Loading…
Reference in New Issue
Block a user