This commit is contained in:
pablo rodriguez 2024-12-14 15:20:04 +01:00
parent ab1bec6abb
commit f72f66af47
27 changed files with 368 additions and 141 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

1
nodStudent.xml Normal file

File diff suppressed because one or more lines are too long

View File

@ -16,14 +16,14 @@ import AnalyseCalc.Classeur2.feuille.graphic;
import AnalyseCalc.Classeur2.feuille.ligne;
import AnalyseCalc.Classeur2.feuille.ligne.cellule;
import calc.commandes;
import calcul.enumerations;
import calcul.enumerations.typeFichier;
import xml.EnsembleFichiers;
import xml.ecritureFileXML;
import xml.ecritureFileXML.typeFichier;
import xml.node;
import xml.transformeXLMtoNode;
/**
* Cette class permet de lire les feuilles de calcul de libreOffice Calc
* Cette class permet de lire les feuilles de calcul de libreOffice Calc.<br>
* @author Pablo
*
*/
@ -55,30 +55,34 @@ public class Classeur2 {
/**
* Création des feuilles du classeur
* @param nod : node permettant de rechercher les feuilles "table:table"
* Création des feuilles du classeur<br>
* Si typeFichier = fichier_analyse : Création d'un fichier pour analyser les fichiers des étudiants.<br>
* Si typeFichier = : Création d'un fichier étudiant à partir du classeur remis par l'étudiant.<br>
* @param nod : node permettant de rechercher les feuilles "table:table".
* @param indexStudent : index du fichier dans le répertoire contenant l'ensemble des dossiers ou fichiers remis par les étudiants.
* @param typeClasseurACreer : type de fichier à créer (analyse ou student).
* @throws CloneNotSupportedException
* @throws IOException
*/
public Classeur2(node nod, Integer indexStudent, typeFichier type) throws CloneNotSupportedException, IOException {
public Classeur2(node nod, Integer indexStudent, typeFichier typeClasseurACreer) throws CloneNotSupportedException, IOException {
if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) {
if(nod.getAttributs().get("bareme")!=null)calc.commandes.analyse_bareme = Double.valueOf(nod.getAttributs().get("bareme"));
if(nod.getAttributs().get("version")!=null)calc.commandes.version = nod.getAttributs().get("version");
if(nod.getAttributs().get("controleDateCreation")!=null)calc.commandes.analyse_controleDateCreation = Boolean.valueOf(nod.getAttributs().get("controleDateCreation"));
if(nod.getAttributs().get("presenceMetaSujet")!=null)calc.commandes.analyse_presenceMetaSujet = Boolean.valueOf(nod.getAttributs().get("presenceMetaSujet"));
if(nod.getAttributs().get("dateModification")!=null)calc.commandes.analyse_date = nod.getAttributs().get("dateModification");
if(nod.getAttributs().get("NbreFeuille")!=null) calc.commandes.analysis_nbr_feuilles = Integer.valueOf(nod.getAttributs().get("NbreFeuille"));
if(nod.getAttributs().get("auteur")!=null) calc.commandes.analyse_auteur = nod.getAttributs().get("auteur");
if(nod.getAttributs().get("baremeABC")!=null) calc.commandes.analyse_baremeABC = Boolean.valueOf(nod.getAttributs().get("baremeABC"));
if(nod.getAttributs().get("controle_Initial_Creator")!=null) calc.commandes.analyse_controle_Initial_Creator = Boolean.valueOf(nod.getAttributs().get("controle_Initial_Creator"));
if(nod.getAttributs().get("historiquePresent")!=null) calc.commandes.setting_historiquePresent = Boolean.valueOf(nod.getAttributs().get("historiquePresent"));
if(nod.getAttributs().get("titre")!=null) calc.commandes.analyse_titre = nod.getAttributs().get("titre");
if(nod.getAttributs().get("filename")!=null) calc.commandes.analysis_filename = nod.getAttributs().get("filename");
if(nod.getAttributs().get("producteur")!=null) calc.commandes.analysis_producteur= nod.getAttributs().get("producteur");
if(nod.getAttributs().get("hash")!=null) calc.commandes.hash = nod.getAttributs().get("hash");
// 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");
@ -87,49 +91,46 @@ public class Classeur2 {
node n = nMeta.retourneFirstEnfant("meta:creation-date");
if(n!=null) {
dateCreation = n.getContenu().get(0);
if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) {
if(typeClasseurACreer.equals(typeFichier.fichier_analyse)) {
calc.commandes.analyse_creationDate = dateCreation;
}
}
n = nMeta.retourneFirstEnfant("dc:date");
if(n!=null) {
dateModification = n.getContenu().get(0);
if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) {
if(typeClasseurACreer.equals(typeFichier.fichier_analyse)) {
calc.commandes.analyse_date = dateModification;
}
}
n = nMeta.retourneFirstEnfant("meta:initial-creator");
if(n!=null) {
Initial_Creator = n.getContenu().get(0);
if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) {
if(typeClasseurACreer.equals(typeFichier.fichier_analyse)) {
calc.commandes.analyse_Initial_Creator = Initial_Creator;
}
}
n = nMeta.retourneFirstEnfant("dc:creator");
if(n!=null) {
auteur=n.getContenu().get(0);
if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) {
if(typeClasseurACreer.equals(typeFichier.fichier_analyse)) {
calc.commandes.analyse_auteur = auteur;
}
}
n = nMeta.retourneFirstEnfant("meta:generator");
if(n!=null) {
producteur=n.getContenu().get(0);
if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) {
if(typeClasseurACreer.equals(typeFichier.fichier_analyse)) {
calc.commandes.analysis_producteur = producteur;
}
}
}
node n = nod.retourneFirstEnfant("meta:user-defined");
if(n!=null) {
if(n.getAttributs().get("meta:name").equalsIgnoreCase("sujet")) {
metaSujet = n.getAttributs().get("meta:name");
if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) {
if(typeClasseurACreer.equals(typeFichier.fichier_analyse)) {
calc.commandes.analyse_metaSujet=metaSujet;
}
metaSujetContent = n.getContenuAvecTousLesContenusDesEnfants();
@ -140,7 +141,7 @@ public class Classeur2 {
//feuilles. A partir des feuilles -> en partie lignes, cellules
ArrayList<node> feuilles = nod.retourneAllEnfants("table:table");
NbreFeuille = feuilles.size();
if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) commandes.analysis_nbr_feuilles = NbreFeuille;
if(typeClasseurACreer.equals(typeFichier.fichier_analyse)) commandes.analysis_nbr_feuilles = NbreFeuille;
for(int i = 0 ; i<feuilles.size();i++) {
Feuilles.put(i,new feuille(feuilles.get(i), nod , indexStudent));
}
@ -2614,12 +2615,12 @@ public class Classeur2 {
} // feuille
public node convertClasseurToNode(ecritureFileXML.typeFichier type) throws IOException {
public node convertClasseurToNode(typeFichier type) throws IOException {
StringBuilder fichier = new StringBuilder();
fichier.append("<classeur ");
if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) {
if(type.equals(typeFichier.fichier_analyse)) {
fichier.append("titre=\"" + calc.commandes.analyse_titre+ "\" ");
fichier.append("progression=\"" + calc.commandes.analyse_progression + "\" ");
fichier.append("bareme=\"" + calc.commandes.analyse_bareme + "\" ");
@ -2648,12 +2649,12 @@ public class Classeur2 {
}
fichier.append("metaSujetContent=\"" + metaSujetContent + "\" ");
if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) {
if(type.equals(typeFichier.fichier_analyse)) {
fichier.append("analyse=\"" + analyse +"\" nbmodification=\"1000\" nbcopier=\"100\" verification=\"true\">");
fichier.append("<communication link=\"\" linktitle=\"\" title=\"\"></communication>");
}
if(type.equals(ecritureFileXML.typeFichier.fichier_etudiant)) {
if(type.equals(typeFichier.fichier_etudiant)) {
fichier.append(">");
}

View File

@ -18,10 +18,11 @@ import org.xml.sax.SAXException;
import AnalyseCalc.Classeur2;
import calc.commandes;
import calcul.enumerations;
import calcul.enumerations.LocationFile;
import fenetres.evaluate;
import xml.EnsembleFichiers;
import xml.LecturesDossiers;
import xml.ecritureFileXML;
import xml.node;
import xml.transformeXLMtoNode;
@ -54,8 +55,7 @@ public class actNewFichierAnalyse extends AbstractAction{
System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory());
System.out.println("getSelectedFile() : " + chooser.getSelectedFile().getAbsolutePath());
// réinitialise les commandes
commandes.initialiseParametresSettingsProprietes();;
commandes.fichierAnalyseValide=true;
commandes.path = chooser.getCurrentDirectory().getAbsolutePath();
commandes.PathFilenameAnalysis = chooser.getCurrentDirectory().getAbsolutePath();
@ -65,55 +65,32 @@ public class actNewFichierAnalyse extends AbstractAction{
try {
new LecturesDossiers(ecritureFileXML.LocationFile.CreerFichierAnalyse, cheminVersFichier);
new LecturesDossiers(LocationFile.PourUnSeulFichier, cheminVersFichier);
new transformeXLMtoNode(EnsembleFichiers.getListeContentTableur().get(0), false, null);
node nod = transformeXLMtoNode.getNodeRoot();
Classeur2 ClasseurAnalyse;
try {
ClasseurAnalyse = new Classeur2(nod,0,ecritureFileXML.typeFichier.fichier_analyse);
node nodAnalyse = ClasseurAnalyse.convertClasseurToNode(ecritureFileXML.typeFichier.fichier_etudiant);
Classeur2 ClasseurAnalyse;
commandes.initialiseParametresEvaluation();
commandes.initialiseParametresSettingsProprietes();
ClasseurAnalyse = new Classeur2(nod,0,enumerations.typeFichier.fichier_analyse);
node nodAnalyse = ClasseurAnalyse.convertClasseurToNode(enumerations.typeFichier.fichier_analyse);
node styleAuto = nod.retourneFirstEnfant("office:document-content").retourneFirstEnfant("office:automatic-styles");
styleAuto.addAllEnfants(nod.retourneAllEnfants("office:document-styles"));
styleAuto.retourneFirstEnfant("office:document-styles").removeAllAttributs();
nodAnalyse.retourneFirstEnfant("classeur").addEnfant(styleAuto);
nodAnalyse.saveNodeEnXMLinNewFile("nodStudent.xml", commandes.pathApp);
commandes.sujet = nodAnalyse.retourneFirstEnfant("classeur");
} catch (CloneNotSupportedException | IOException e1) {
e1.printStackTrace();
}
// Classeur2 ClasseurAnalyse = new Classeur2(commandes.sujet,0,ecritureFileXML.typeFichier.fichier_analyse);
// commandes.sujet = ClasseurAnalyse.convertClasseurToNode(ecritureFileXML.typeFichier.fichier_analyse);
// node styleAuto = commandes.sujet.retourneFirstEnfant("office:document-content");
// if(styleAuto!=null) {
// styleAuto = styleAuto.retourneFirstEnfant("office:automatic-styles");
// styleAuto.addAllEnfants(commandes.sujet.retourneAllEnfants("office:document-styles"));
// styleAuto.retourneFirstEnfant("office:document-styles").removeAllAttributs();
// }else {
// styleAuto = transformeXLMtoNode.getNodeRoot().retourneFirstEnfant("office:document-styles");
// if(styleAuto!=null)styleAuto.retourneFirstEnfant("office:document-styles").removeAllAttributs();
// }
// if(styleAuto!=null) commandes.sujet.addEnfant(styleAuto);
// commandes.sujet = commandes.sujet.getEnfant(0);
commandes.sujet.getAttributs().put("analysis_filename",commandes.nameSujet);
// commandes.sujet.removeAllEnfantWithThisName("office:document-content");
// commandes.sujet.removeAllEnfantWithThisName("office:document-meta");
commandes.sujet.saveNodeEnXMLinNewFile("sujet1.xml", commandes.pathApp);
// new verificationFichierAnalyse();
if(commandes.fichierAnalyseValide) {
@ -125,9 +102,7 @@ public class actNewFichierAnalyse extends AbstractAction{
commandes.IndexEvaluationCharger=-1; //Car ce n'est pas une évaluation
commandes.NameEvaluationCharger = "";
commandes.analysis_filename = commandes.sujet.getAttributs().get("analysis_filename");
commandes.initialiseParametresEvaluation();
commandes.initialiseParametresSettingsProprietes();
commandes.chargementParametresDepuisNodeSujet();
fenetres.create.getTree().setVisible(true);
fenetres.create.constructionTree();
@ -149,7 +124,7 @@ public class actNewFichierAnalyse extends AbstractAction{
fenetres.create.getTextNodeSelect().refreshAffichage(null);
}
commandes.sujet.saveNodeEnXMLinNewFile("sujet.xml", commandes.pathApp);
commandes.ecritCode = true;
}

View File

@ -69,7 +69,7 @@ public class commandes {
//** Les commandes par défaut à travers la console **
//***************************************************
public static String nameSujet = ""; //sujet par défaut
public static boolean analyse = false; //analyse des fichiers étudiants
public static boolean analyse = false; //analyse les fichiers étudiants. Si vrai alors évalue les fichiers des étudiants.
public static boolean ecritCode = false; // -write : ecriture du code du sujet
public static boolean ecritSujet = false; // -sujet : ecriture 2 du code du sujet, uniquement lesnodeACs évalués
public static boolean ecritNodeAnalyse = false;
@ -102,10 +102,6 @@ public class commandes {
//** setting valeur par défaut
public static String culture = "FR";
//** Variables de mise à jour du fichier d'analyse
public static boolean MAJnameAnalysisFile =false;
public static boolean MAJFichierAnalyse = false;
@ -175,7 +171,9 @@ public class commandes {
public static int analyse_index_Fichier_Student = 0;
public static StringBuilder message = new StringBuilder();
/**
* Initialisation des paramètres pour l'application.<br>
*/
public static void initialiseParametresSettingsProprietes() {
//** setting valeur par défaut
@ -236,6 +234,9 @@ public class commandes {
message = new StringBuilder();
}
/**
* Initilalisation des paramètres pour l'évaluation des classeurs des étudiants.<br>
*/
public static void initialiseParametresEvaluation() {
fourniCSV=false;
ecritCode = false;
@ -259,6 +260,28 @@ public class commandes {
nameSVG="";
}
/**
* Chargment dans le fihier d'analyse venant d'être créer des paramètres pour les évaluations.<br>
* @param nodFichierAnalyseJusteCreer
*/
public static void chargementParametresDepuisNodeSujet() {
commandes.analyse_bareme = Double.valueOf(sujet.getAttributs().get("bareme"));
commandes.analyse_version = sujet.getAttributs().get("version");
commandes.analyse_controleDateCreation = Boolean.valueOf(sujet.getAttributs().get("controleDateCreation"));
commandes.analyse_presenceMetaSujet = Boolean.valueOf(sujet.getAttributs().get("presenceMetaSujet"));; //
commandes.analyse_date = sujet.getAttributs().get("dateModification");
commandes.analysis_nbr_feuilles = Integer.valueOf(sujet.getAttributs().get("NbreFeuille"));
commandes.analyse_auteur = sujet.getAttributs().get("auteur");
commandes.analyse_baremeABC = Boolean.valueOf(sujet.getAttributs().get("baremeABC"));
commandes.analyse_controle_Initial_Creator = Boolean.valueOf(sujet.getAttributs().get("controle_Initial_Creator"));
commandes.setting_historiquePresent = Boolean.valueOf(sujet.getAttributs().get("historiquePresent"));
commandes.analyse_titre = sujet.getAttributs().get("titre");
commandes.analysis_filename = sujet.getAttributs().get("filename");
commandes.analysis_producteur = sujet.getAttributs().get("producteur");
commandes.hash = sujet.getAttributs().get("hash");
}
/**
* Clôture avec une erreur de commande
*/

View File

@ -0,0 +1,30 @@
package calcul;
public class enumerations {
/**
*
* @author pabr6
*
*/
public enum LocationFile {
DansDossier,
UniquementFichier,
PourUnSeulFichier,
}
/**
*
* @author pabr6
*
*/
public enum typeFichier {
fichier_analyse,
verification_etudiant,
fichier_etudiant,
}
}

View File

@ -0,0 +1,40 @@
package evaluer;
import java.text.ParseException;
import java.util.Date;
import xml.node;
/**
*
* @author pabr6
*
*/
public class crearNodeAna {
node ana = new node("analyse");
/**
* Création du node analyse.<br>
* Ce node permet de stocker l'analyse (évaluation) du fichier remis par l'étudiant.<br>
*/
public crearNodeAna(String nomEtudiant , int indexStudent) {
ana.getAttributs().put("nomEtudiant", nomEtudiant);
ana.getAttributs().put("indexFichier", String.valueOf(indexStudent));
try {
ana.getAttributs().put("dateEvaluation", calcul.formatDateWriter.DateLibreOffice(new Date()));
} catch (ParseException e) {
e.printStackTrace();
}
}
public node getAna() {
return ana;
}
public void setAna(node ana) {
this.ana = ana;
}
}

59
src/evaluer/evaluer.java Normal file
View File

@ -0,0 +1,59 @@
package evaluer;
import javax.swing.JEditorPane;
import xml.EnsembleFichiers;
import xml.node;
public class evaluer {
public evaluer() {
}
public static node analyse(node nodStudent, node nodSujet, Integer indexStudent,JEditorPane txt, String texteAfficher) {
node ana = new node("evaluation");
// informations
node nodouverture = new node();
nodouverture.setNameNode("informations");
nodouverture.getAttributs().put("dossier",EnsembleFichiers.getListeNomDossier().get(indexStudent));
if(nodSujet.getAttributs().get("analysis_filename")!=null) nodouverture.getAttributs().put("filenameAnalyse", nodSujet.getAttributs().get("analysis_filename"));
if(nodStudent.getAttributs().get("producteur")!=null) nodouverture.getAttributs().put("producteur", nodStudent.getAttributs().get("producteur"));
if(nodStudent.getAttributs().get("dureeEdition")!=null) nodouverture.getAttributs().put("dureeEdition", nodStudent.getAttributs().get("dureeEdition"));
if(nodStudent.getAttributs().get("dateModification")!=null) nodouverture.getAttributs().put("dateModification", nodStudent.getAttributs().get("dateModification"));
if(nodSujet.getAttributs().get("historiquePresent")!=null) nodouverture.getAttributs().put("historiquePresent", nodSujet.getAttributs().get("historiquePresent"));
if(nodSujet.getAttributs().get("controleDateCreation")!=null) nodouverture.getAttributs().put("controleDateCreation", nodSujet.getAttributs().get("controleDateCreation"));
if(nodSujet.getAttributs().get("presenceMetaSujet")!=null) nodouverture.getAttributs().put("presenceMetaSujet", nodSujet.getAttributs().get("presenceMetaSujet"));
if(nodSujet.getAttributs().get("baremeABC")!=null) nodouverture.getAttributs().put("baremeABC", nodSujet.getAttributs().get("baremeABC"));
nodouverture.setNodeClose(true);
ana.addEnfant(nodouverture);
texteAfficher = texteAfficher + "\n" + nodouverture.getAttributs().get("dossier");
txt.setText(texteAfficher);
node note = new node("notation");
note.getAttributs().put("note", "0");
note.getAttributs().put("pointsWin", "0");
note.getAttributs().put("pointsTotal", "0");
note.getAttributs().put("commentaire", "");
note.getAttributs().put("proportioncorrect", "0");
note.getAttributs().put("baremeABC", "false");
if(nodSujet.getAttributs().get("baremeABC")!=null) note.getAttributs().put("baremeABC", nodSujet.getAttributs().get("baremeABC"));
note.setNodeClose(true);
ana.addEnfant(note);
node compare = new node("compare");
compare.setNodeClose(true);
ana.addEnfant(compare);
return ana;
}
}

View File

@ -0,0 +1,16 @@
package evaluer;
import xml.node;
public class evaluerAttributEtContenu {
public evaluerAttributEtContenu(node nodeSujet, node nodeEtudiant, node analyse) {
}
}

View File

@ -2,6 +2,7 @@ package evaluer;
import java.io.IOException;
import java.text.ParseException;
import java.util.zip.ZipException;
import javax.swing.JEditorPane;
import javax.xml.parsers.ParserConfigurationException;
@ -12,6 +13,8 @@ import AnalyseCalc.Classeur2;
import calc.Student;
import calc.commandes;
import calcul.calculIntervalleBaremeABCDE;
import calcul.enumerations;
import calcul.enumerations.typeFichier;
import fenetres.baliseStyle;
import xml.EnsembleFichiers;
import xml.LecturesDossiers;
@ -65,7 +68,7 @@ public class evaluerLesFichiersEtudiants implements Runnable{
if(commandes.fichierStudentMoodle) {
try {
new LecturesDossiers(ecritureFileXML.LocationFile.UniquementFichier, commandes.path);
new LecturesDossiers(enumerations.LocationFile.UniquementFichier, commandes.path);
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@ -78,7 +81,7 @@ public class evaluerLesFichiersEtudiants implements Runnable{
}
}else {
try {
new LecturesDossiers(ecritureFileXML.LocationFile.DansDossier, commandes.path);
new LecturesDossiers(enumerations.LocationFile.DansDossier, commandes.path);
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@ -175,17 +178,25 @@ public class evaluerLesFichiersEtudiants implements Runnable{
Classeur2 ClasseurStudent;
try {
ClasseurStudent = new Classeur2(nod,i,ecritureFileXML.typeFichier.fichier_etudiant);
node nodStudent = ClasseurStudent.convertClasseurToNode(ecritureFileXML.typeFichier.fichier_etudiant);
ClasseurStudent = new Classeur2(nod,i,typeFichier.fichier_etudiant);
node nodStudent = ClasseurStudent.convertClasseurToNode(typeFichier.fichier_etudiant);
node styleAuto = nod.retourneFirstEnfant("office:document-content").retourneFirstEnfant("office:automatic-styles");
styleAuto.addAllEnfants(nod.retourneAllEnfants("office:document-styles"));
styleAuto.retourneFirstEnfant("office:document-styles").removeAllAttributs();
nodStudent.retourneFirstEnfant("classeur").addEnfant(styleAuto);
nodStudent = nodStudent.retourneFirstEnfant("classeur");
String nomEtudiant = EnsembleFichiers.getListeNomDossier().get(i);
nodStudent.getAttributs().put("nomEtudiant", nomEtudiant);
nodStudent.saveNodeEnXMLinNewFile("nodStudent.xml", commandes.pathApp);
if(commandes.analyse) {
node ana = new crearNodeAna(nomEtudiant, i).getAna();
new evaluerNodesClasseurStudent(ana, nodStudent);
ana.saveNodeEnXMLinNewFile("ana.xml", commandes.pathApp);
}
// nodStudent.saveNodeEnXMLinNewFile("nodStudent.xml", commandes.pathApp);
} catch (CloneNotSupportedException | IOException e) {
@ -197,8 +208,11 @@ public class evaluerLesFichiersEtudiants implements Runnable{
//**********************************
if(commandes.analyse||commandes.ecritNodeAnalyse) {
// Run.ecritureNodeEnXML(nodStudent, "fichier student","",false,""); //écriture du node nodStudent de l'étudiant
node ana = analyseFichier.analyse(nodStudent, commandes.sujet, i, a, txt,texteAfficher);
// node ana = analyseFichier.analyse(nodStudent, commandes.sujet, i, a, txt,texteAfficher);
// try {
// Run.ecritureNodeEnXML(ana, "analyse", commandes.path, Run.TypeFile.Verif);
// } catch (IOException e1) {
@ -209,11 +223,14 @@ public class evaluerLesFichiersEtudiants implements Runnable{
//** Ecriture des fichiers d'analyse des students **
//**************************************************
if(commandes.ecritNodeAnalyse) {
try {
Run.ecritureNodeEnXML(ana, "nodana"+ana.retourneFirstEnfantsByName("ouverture").getAttributs().get("dossier"),commandes.path,Run.TypeFile.Analyse);
} catch (IOException e) {
e.printStackTrace();
}
// try {
//// Run.ecritureNodeEnXML(ana, "nodana"+ana.retourneFirstEnfantsByName("ouverture").getAttributs().get("dossier"),commandes.path,Run.TypeFile.Analyse);
// } catch (IOException e) {
// e.printStackTrace();
// }
}
//****************************
@ -222,44 +239,44 @@ public class evaluerLesFichiersEtudiants implements Runnable{
if(!commandes.sansFeeback&&!commandes.ecritNodeAnalyse) {
if(!commandes.zipfeedback) {
//feedback(ana, verif); //classique directement dans le répertoire
try {
feedbacks.feedback(ana,verif, false,false);
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
// try {
//// feedbacks.feedback(ana,verif, false,false);
// } catch (IOException e) {
// e.printStackTrace();
// } catch (ParseException e) {
// e.printStackTrace();
// }
}
if(commandes.zipfeedback) { // Dans une archive pour Moodle
try {
// a.AddStreamToZip(feedbacks.feedback(ana, verif, true,false), meptl.retourneLeNomDuFeedback(a.getLectDossiers().getEC().getListeNomFichierFeedBack().get(i),ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
// Modification imposé par Moodle 4
if(commandes.fichierStudentMoodle) {
a.AddStreamToZip(feedbacks.feedback(ana, verif, true,false), meptl.retourneLeNomDuFeedbackMoodle4(a.getLectDossiers().getEC().getListeFichierodt().get(i),ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
}else {
String nomFichiermoodle4 = a.getLectDossiers().getEC().getListeNomFichierFeedBack().get(i)+"_"+a.getLectDossiers().getEC().getListeFichierodt().get(i);
a.AddStreamToZip(feedbacks.feedback(ana, verif, true,false), meptl.retourneLeNomDuFeedbackMoodle4(nomFichiermoodle4,ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
}
} catch (ZipException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
// try {
//// a.AddStreamToZip(feedbacks.feedback(ana, verif, true,false), meptl.retourneLeNomDuFeedback(a.getLectDossiers().getEC().getListeNomFichierFeedBack().get(i),ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
// // Modification imposé par Moodle 4
// if(commandes.fichierStudentMoodle) {
//// a.AddStreamToZip(feedbacks.feedback(ana, verif, true,false), meptl.retourneLeNomDuFeedbackMoodle4(a.getLectDossiers().getEC().getListeFichierodt().get(i),ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
// }else {
//// String nomFichiermoodle4 = a.getLectDossiers().getEC().getListeNomFichierFeedBack().get(i)+"_"+a.getLectDossiers().getEC().getListeFichierodt().get(i);
//// a.AddStreamToZip(feedbacks.feedback(ana, verif, true,false), meptl.retourneLeNomDuFeedbackMoodle4(nomFichiermoodle4,ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
// }
//
// } catch (ZipException e) {
// e.printStackTrace();
// } catch (IOException e) {
// e.printStackTrace();
// } catch (ParseException e) {
// e.printStackTrace();
// }
}
}
//********************************************************************************
//** Ajoute au node ensembleanalyse lorsque -csv file.csv ou -verifcsv file.scv **
//********************************************************************************
if(commandes.ecritNoteCSV) ensembleanalyse.addNode(ana);
// if(commandes.ecritNoteCSV) ensembleanalyse.addNode(ana);
//*********************************************************
//** Message dans la console sur l'analyse de l'étudiant **
//*********************************************************
commandes.message.append(meptl.messageSystem(ana).toString());
// commandes.message.append(meptl.messageSystem(ana).toString());
}
}
//

View File

@ -0,0 +1,55 @@
package evaluer;
import calc.commandes;
import xml.node;
public class evaluerNodesClasseurStudent {
private node analyse = new node();
private node nodeEtudiant = new node();
public evaluerNodesClasseurStudent(node ana, node nodStudent) {
nodeEtudiant = nodStudent;
analyse = ana;
evaluerLesFeuilles();
analyse.getAttributs().put("test", "reussi");
}
/**
* Evaluer les feuilles les unes après les autres.
*/
private void evaluerLesFeuilles() {
for (node feuilleSujet : commandes.sujet.retourneAllEnfants("feuille")) {
if(feuilleSujet.isEvaluer()) {
node evaluerFeuille = new node("feuille");
evaluerFeuille.getAttributs().put("nomFeuille", feuilleSujet.getAttributs().get("nomFeuille"));
analyse.addEnfant(evaluerFeuille);
evaluerLesColonnes(feuilleSujet, evaluerFeuille);
}
}
}
/**
* Evaluer les colonnes les unes après les autres.
* @param feuilleSujet
* @param evaluerFeuille
*/
private void evaluerLesColonnes(node feuilleSujet, node evaluerFeuille) {
for (node colonne : feuilleSujet.retourneAllEnfants("colonne")) {
if(colonne.isEvaluer()) {
new evaluerAttributEtContenu(colonne,nodeEtudiant,analyse);
}
}
}
public node getAnalyse() {
return analyse;
}
public node getNodeEtudaint() {
return nodeEtudiant;
}
}

View File

@ -717,7 +717,7 @@ public final class proprieteFichierAnalyse extends JFrame {
}
/**
* Actualisation des zone de texte et des combos à l'ouverture de la fenêtre.</br>
* Actualisation des zones de texte et des combos à l'ouverture de la fenêtre.</br>
*/
public void actualise() {
if(commandes.sujet.getAttributs().get("titre")!=null){

View File

@ -15,6 +15,7 @@ import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
import calcul.enumerations.LocationFile;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.model.FileHeader;
@ -27,7 +28,7 @@ public class LecturesDossiers {
private static EnsembleFichiers EC = new EnsembleFichiers();
public LecturesDossiers( ecritureFileXML.LocationFile location, String patch) throws ParserConfigurationException, SAXException, IOException {
public LecturesDossiers( LocationFile location, String patch) throws ParserConfigurationException, SAXException, IOException {
String NomDossier = null;
String leNomDuRepertoire = patch;
String ContentT = null;
@ -38,7 +39,7 @@ public class LecturesDossiers {
File rep = new File(leNomDuRepertoire);
if(location==ecritureFileXML.LocationFile.DansDossier) {
if(location==LocationFile.DansDossier) {
System.out.println();
if(rep.isDirectory()) {
@ -100,7 +101,7 @@ public class LecturesDossiers {
}
if(location == ecritureFileXML.LocationFile.UniquementFichier) {
if(location == LocationFile.UniquementFichier) {
System.out.println();
File[] fichiers = rep.listFiles();
@ -146,7 +147,7 @@ public class LecturesDossiers {
}
}
if(location == ecritureFileXML.LocationFile.CreerFichierAnalyse) {
if(location == LocationFile.PourUnSeulFichier) {
System.out.println();
if(!rep.isFile()) return;

View File

@ -13,17 +13,20 @@ import java.nio.file.Paths;
public class ecritureFileXML {
public enum LocationFile {
DansDossier,
UniquementFichier,
CreerFichierAnalyse
}
public enum typeFichier {
fichier_analyse,
verification_etudiant,
fichier_etudiant,
}
// public enum LocationFile {
// DansDossier,
// UniquementFichier,
// /**
// * Permet de créer un fichier d'analyse
// */
// CreerFichierAnalyse
// }
//
// public enum typeFichier {
// fichier_analyse,
// verification_etudiant,
// fichier_etudiant,
// }

View File

@ -54,6 +54,12 @@ private boolean nodeClose = false;
this.nodeClose = nodeClose;
}
public boolean isEvaluer() {
if(!this.attributs.containsKey("evaluer")) return false;
if(!Boolean.valueOf(this.getAttributs().get("evaluer"))) return false;
return true;
}
public String getNameNode() {
if(this.equals(null)) return "";
return this.nameNode;

File diff suppressed because one or more lines are too long