analyseCalc/analyseCalc/analyseCalc/analyseCalc/analyseCalc/src/AnalyseCalc/analyseCalc.java

288 lines
13 KiB
Java

package AnalyseCalc;
import java.text.DecimalFormat;
import java.util.Map.Entry;
import AnalyseCalc.Classeur2.feuille;
import calc.commandes;
import nodeAC.Ecriture;
import nodeAC.LecturesDossiers;
import nodeAC.constructionNodeAvecString;
import nodeAC.nodeAC;
import outils.feedback;
import outils.notation;
public class analyseCalc {
static DecimalFormat df = new DecimalFormat("###.##");
static String patch ="C:/";
static String SousVersion="0.1";
static boolean ecritCode = false; // ecriture du code du sujet
static boolean ecritNoteCSV = false; // ecriture note.csv
static boolean sansFeeback = false; // pas de feedback étudiant
static boolean exporteCodeSujet =false; // exporte le code d'un sujet
static boolean avecfichieranalyse = false; //fournie un fichier d'analyse
static String fichierAnalyse = "cc1chg.xml"; //nom du fichier d'analyse
static boolean pasdelogo = false; //pas de logo dans le feddback
static boolean analyseDossier = false; //par défaut chaque étudiant est dans un dossier Moodle
static boolean annule = false; // annule l'analyse
static boolean verifhisto = false; // vérification des historique avec une base de données XML
static boolean creerhisto = false; // génnère une base de données XML en utilisant une fichier d'analyse
static String fichierBaseHistorique = "baseHistorique.xml"; //nom par défaut à la création d'une base de données historique
static String fichierResource = "format1"; // fichier par défaut de la ressource
static boolean menupasdynamic = false; // pas de menu sticky
//
// public static void main(String[] args) throws Exception {
//
//
// System.getProperty("file.encoding","UTF-8");
//// Version = Run.UserStatus.ECRITURE_FILE_TABLEUR_CORRECTION;
// SousVersion="0.0.1 - 03 octobre 2020"; // version et date
// patch = System.getProperty("user.dir");
//// patch = "C:/Users/pabr6/Downloads/teste/";
//
//
//
// // annulation
// if(annule) {
// messageDernier();
// System.exit(0);
// }
//
// // Message initiale
// messagePremier();
//
//
// //Lecture des fichiers student ou de la correction
// System.out.println("\tDébut la lecture de l'ensemble des dossiers et/ou fichiers des étudiants");
// new LecturesDossiers(Ecriture.LocationFile.DansDossier, commandes.path);
//
//
// int NbrSujet = LecturesDossiers.getEC().getSize();
// if(!ecritCode) System.out.println("\r\tFin de la lecture de l'ensemble des dossiers et fichiers des étudiants ... nombre de dossiers étudiants : " + NbrSujet);
//
// // ecriture du code d'un fichier
// if(ecritCode) {
// System.out.println("\r\tFin de la lecture du fichier corrigé");
// if(LecturesDossiers.getEC().getListeFichierods().size()==0) {
// System.out.println("\r\tIl n'y a pas de fichier \".ods\" dans le répertoire de l'application.");
// System.exit(0);
// }
// }
//
// System.out.println();
//
//
//
//
// // Chargement sujet
// Classeur2 Sujet=null;
// if(!ecritCode) {
// if(avecfichieranalyse) {
// System.out.println("\tDébut du chargement du sujet ... fichier d'analyse : " + fichierAnalyse);
// Sujet = new Classeur2(fichierAnalyse);
// }
// if(!avecfichieranalyse && !fichierResource.isEmpty()) {
// System.out.println("\tDébut du chargement du sujet ... sujet ressource : " + fichierResource);
// Sujet = new Classeur2(fichierResource,false );
// }
// if(!avecfichieranalyse && fichierResource.isEmpty()) {
// System.out.println("\tQuelle est le fichier ressource ... sujet!?");
// System.exit(0);
// }
// System.out.println("\tChargement du sujet terminé (fichier d'analyse).");
// System.out.println();
// }
//
//
// // Verification de l'historique
//
//
//
// // boucle d'analyse
// for(int i = 0 ; i<LecturesDossiers.getEC().getSize();i++) {
// System.out.println("\tAnalyse");
// if(!ecritCode) System.out.println("\t\tDossier de l'étudiant : "+LecturesDossiers.getEC().getListeNomDossier().get(i));
// System.out.println("\t\tNom du fichier : "+LecturesDossiers.getEC().getListeFichierods().get(i));
// System.out.println();
//
// // Obtient le XMLContent de Calc de l'étudiant
// System.out.println("\t\tAmorçage de l'analyse (parse xml)");
// System.out.println();
// nodeAC XMLContent = new nodeAC();
// constructionNodeAvecString A = new constructionNodeAvecString();
// XMLContent = A.NewNode(LecturesDossiers.getEC().getListeContentTableur().get(i));
// System.out.println("\t\tAmorçage terminé");
// System.out.println();
//
// //Lecture du classeur de Student
// System.out.println("\t\tDébut lecture du fichier : "+LecturesDossiers.getEC().getListeFichierods().get(i));
// Classeur2 Student = new Classeur2(XMLContent,i);
// System.out.println("\t\tLecture terminée");
// System.out.println();
//
// // générère le fichier d'analyse
// if(ecritCode) {
// System.out.println("\t\tDébut écriture du fichier d'analyse : \"codeFichier.xml\"");
// Student.ecritureClasseur(patch);
// System.out.println("\t\tEcriture du fichier d'analyse terminée.");
// System.out.println();
// }
//
//
//
//
// if(!ecritCode && !verifhisto) {
// //Verification du fichier (sujet)
// System.out.println("\t\tDébut vérification du classeur");
// verifsujet verif = new verifsujet(Student,Sujet);
// if(verif.isSujetClasseurVerifier()) System.out.println("\t\tVérification terminée : " + verif.isSujetClasseurVerifier());
// if(!verif.isSujetClasseurVerifier()) System.out.println("\t\tCe n'est pas le bon classeur ... l'analyse de ce classeur ne pourra pas être réalisée.");
// System.out.println();
//
//
//
// AnalyseClasseur AClas = new AnalyseClasseur();
// AClas.addHistorique(Student.getHisto());
//
// if(verif.isSujetClasseurVerifier()) {
// //créer une analyse pour chaque feuille de calcul
// for (Entry<Integer, feuille> k : Sujet.getFeuilles().entrySet()) {
// if(k.getValue().getEvaluer().equals("true")) {
// //une feuille évaluée
// feuille feuilleSujet = k.getValue();
// feuille feuilleStudent = Student.retourneFeuilleByName(k.getValue().getNomFeuille());
// if(feuilleStudent!=null) {
// System.out.println("\t\tDébut de l'analyse --> feuille : " + k.getValue().getNomFeuille() );
// AnalyseFeuille AFeuil = new AnalyseFeuille(feuilleStudent, feuilleSujet,"A"+Integer.valueOf(k.getKey()));
// AClas.addFeuille(AFeuil,Student);
// System.out.println("\t\tAnalyse feuille terminée.");
// System.out.println();
// }else {
// // Si la feuille est supprime
// System.out.println("\t\tLa feuille \""+ k.getValue().getNomFeuille()+"\" n'existe pas dans le classeur de l'étudiant.");
// verifsujet.addMessageVerifClasseur("\t\tLa feuille \""+ k.getValue().getNomFeuille()+"\" n'existe pas dans le classeur de l'étudiant. Vous l'avez supprimé ou vous l'avez renommé.");
// AnalyseFeuille AFeuil = new AnalyseFeuille(feuilleSujet,"A"+Integer.valueOf(k.getKey()));
// AClas.addFeuille(AFeuil,Student);
// }
// }
// }
//
//
//
//
// if(AClas.isVide()) {
// // Il n'y a pas d'analyse
// System.out.println("\t\tErreur, l'analyse n'a pas pu se faire. Vérifier votre fichier d'analyse, il faut au moins une feuille à évaluer.");
// System.out.println();
// }else {
// if(!sansFeeback) {
// System.out.println("\t\tDébut d'écriture du feedback étudiant.");
// String fichierAnalyseXML = "";
// if(avecfichieranalyse) fichierAnalyseXML = fichierAnalyse;
// if(!avecfichieranalyse) fichierAnalyseXML = fichierResource + ".xml";
// feedback feedB = new feedback();
// String noteStudent = feedB.FeedBack(patch, LecturesDossiers.getEC().getListeNomDossier().get(i),
// LecturesDossiers.getEC().getListeFichierods().get(i), Sujet, verif,
// ecritNoteCSV, AClas, pasdelogo, fichierAnalyseXML, menupasdynamic);
//
// if(!AClas.getHisto().isTriche()) {
// System.out.println("\t\tfeedback terminée et sauvegardé au format HTML. ... note : " + noteStudent + "/" + calc.commandes.analyse_bareme);
// }else {
// System.out.println("\t\tfeedback terminée et sauvegardé au format HTML. ... note : " + noteStudent + " */" + calc.commandes.analyse_bareme);
// System.out.println("\t\t\t * Nombre de correspondance : " + AClas.getNombreOccurrenceIdentiqueHistorique() + "*");
// }
// System.out.println();
// }
// if(ecritNoteCSV && sansFeeback) {
// notation note = new notation(verif.isSujetClasseurVerifier(),ecritNoteCSV,LecturesDossiers.getEC().getListeNomDossier().get(i), AClas);
// System.out.println("La note est de : " + note.getNote() + "/" + calc.commandes.analyse_bareme);
// }
// }
//
//
//
// }else { // ce n'est pas le bon classeur, mais il faut une note
//
// if(!sansFeeback) {
// System.out.println("\t\tDébut d'écriture du feedback étudiant.");
// String fichierAnalyseXML = "";
// if(avecfichieranalyse) fichierAnalyseXML = fichierAnalyse;
// if(!avecfichieranalyse) fichierAnalyseXML = fichierResource + ".xml";
//
//
//
// feedback feedB = new feedback();
// feedB.FeedBack(patch, LecturesDossiers.getEC().getListeNomDossier().get(i), LecturesDossiers.getEC().getListeFichierods().get(i), Sujet, verif,
// ecritNoteCSV, AClas, pasdelogo, fichierAnalyseXML, menupasdynamic);
//
// System.out.println("\t\tfeedback terminée et sauvegardé au format HTML. ... note : 0.00/" + calc.commandes.analyse_bareme);
// System.out.println();
// }
// if(ecritNoteCSV && sansFeeback) {
// notation note = new notation(verif.isSujetClasseurVerifier(),ecritNoteCSV,LecturesDossiers.getEC().getListeNomDossier().get(i), AClas);
// System.out.println("La note est de : " + note.getNote() + "/" + calc.commandes.analyse_bareme);
// }
// }
// }
//
// }// boucle d'analyse
//
//// if(creerhisto) AnalyseClasseur.createBaseHistorique(patch);
//
// if(ecritNoteCSV) notation.publieNotesCSV(patch);
// messageDernier();
// }
//
/**
* Premier message sur la console
*/
private static void messagePremier() {
// Message préliminaire
System.out.println();
System.out.println ("╔════════════════════════════════════════════════════════╗");
System.out.println ("║ Analyse des fichiers LibreOffice Calc ║");
System.out.println ("║ Version juin 2020 - Licence GPLv3.0 ║");
System.out.println ("║ Ecriture ║");
System.out.println ("╚════════════════════════════════════════════════════════╝");
System.out.println ("\tLe répertoire courant est : " + patch);
if(analyseDossier)System.out.println ("\tChaque fichier d'étudiant est dans un dossier : " + analyseDossier);
if(analyseDossier)System.out.println ("\tTous les fichiers d'étudiant sont dans le répertoire courant : " + analyseDossier);
System.out.println();
System.out.println ("\tImportation des notes dans le fichier \"notes.csv\" : " + ecritNoteCSV);
System.out.println ("\tEcriture d'un fichier d'analyse \"codeFichier.xml\" : " + ecritCode);
System.out.println ("\tUn fichier d'analyse est fourni dans le répertoire courant: " + avecfichieranalyse);
if(avecfichieranalyse) System.out.println ("\tNom du fichier d'analyse : " + fichierAnalyse);
System.out.println ("\tPas de feedback : " + sansFeeback);
if(!sansFeeback)System.out.println ("\tAffiche le logo de l'université d'Artois dans le feedback : " + pasdelogo);
System.out.println();
}
/**
* Dernier message sur la console
*/
private static void messageDernier() {
System.out.println();
System.out.println ("╔══════════════════════════════════════════════════════════════════╗");
System.out.println ("╚══════════════════════════════════════════════════════════════════╝");
}
}