302 lines
14 KiB
Java
302 lines
14 KiB
Java
package MEPTL;
|
|
|
|
import java.io.IOException;
|
|
import java.nio.file.Paths;
|
|
import java.util.Date;
|
|
|
|
import javax.swing.JTree;
|
|
|
|
import cXML.node;
|
|
|
|
|
|
/**
|
|
*
|
|
* @author pablo rodriguez
|
|
*
|
|
*/
|
|
public class commandes {
|
|
|
|
//** Si la valeur est false alors c'est une application avec inteface graphique.
|
|
public static boolean console = true;
|
|
|
|
//** Le node du fichier d'analyse
|
|
public static node sujet = new node();
|
|
public static node sujetSauvegarde = new node();
|
|
|
|
//** Le node base de données des évaluations
|
|
public static node evaluationsBase = null;
|
|
public static node evaluationChargeEnMemoire = null;
|
|
|
|
//** L'arbre
|
|
public static JTree tree = new JTree();
|
|
|
|
//** Le node CSV - liste des étudiants
|
|
public static node nodeCSV = null;
|
|
|
|
//** Version
|
|
public static String version ="V4.4.8"; // La version actuelle
|
|
public static String branch = "Origin";
|
|
public static String Annee ="2023";
|
|
|
|
//***************************************************
|
|
//** 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 ecritCode = false; // -write : ecriture du code du sujet
|
|
public static boolean ecritSujet = false; // -sujet : ecriture 2 du code du sujet, uniquement les nodes évalués
|
|
public static boolean ecritNodeAnalyse = false;
|
|
public static boolean ecritNoteCSV = false; // ecriture note.csv
|
|
public static boolean writefiles = false; // -writefiles permet d'écrire tous les fichiers XML après la lecture en node
|
|
public static boolean calculLeHashDuFichier = false; // -hash retourne le hash du fichier d'analyse
|
|
public static boolean sansFeeback = false; // pas de feedback étudiant
|
|
public static boolean verifHisto = false; // vérification des historiques correspond à la commande -verif
|
|
public static boolean verifHisto2 = false; // vérification des historiques lorsqu'il y a aussi analyse
|
|
public static boolean fourniCSV = false; // fourni le fichier CSV contenant la liste des étudiants
|
|
public static boolean badCommand = false ; //erreur dans les commandes
|
|
public static boolean noNote =false; // pas de note dans les feedbacks
|
|
public static boolean noDetail = false; // pas de détail dans les feedbacks
|
|
public static boolean noLogo =false; // pas de logo dans les feedbacks
|
|
public static boolean newLogo=false; // un nouveau logo dans le feedback
|
|
public static boolean licence = false; // affiche la licence
|
|
public static boolean zipfeedback = false; // Les feedback dans une archive ZIP
|
|
public static boolean fichierStudentMoodle = false; // Les fichiers étudiants sont directement dans le dossier courant de l'application.
|
|
public static cXML.Run.UserStatus Profil = cXML.Run.UserStatus.TEACHER ; //Le profil TEACHER permet de lire dans les dossiers contenus dans le répertoire courant de l'application. Le profil STUDENT permet de lire au niveau du répertoire courant de l'application.
|
|
public static boolean fourniDossierDestination = false; //répertoire de destination des feedbacks et CSV;
|
|
public static String nameCSV = ""; //le nom du fichier contenant la liste des étudiants
|
|
public static String nameSVG =""; //le nom du nouveau logo
|
|
public static String contenuFichierSVG =""; // Le nouveau logo
|
|
public static String path ="";
|
|
public static String pathDestination =""; //Pour le mode console uniquement
|
|
public static String nomDeLaBranch = "Origin"; //Branche de développement
|
|
public static String Command =""; //récupère le texte de la commande dans la console
|
|
public static String os = System.getProperty("os.name");
|
|
|
|
//** setting valeur par défaut
|
|
public static String culture = "FR";
|
|
public static int tolerance_characters = 5;
|
|
public static double tolerance_text = 0.8;
|
|
public static int number_match = 2;
|
|
public static int mini_number_modification = 0;
|
|
public static int nombres_modifications_simultané_maxi = 5;
|
|
public static int tolerance_rouge = 30;
|
|
public static int tolerance_vert = 30;
|
|
public static int tolerance_bleu = 30;
|
|
|
|
//** Variables de mise à jour du fichier d'analyse
|
|
public static boolean MAJnameAnalysisFile =false;
|
|
public static boolean MAJFichierAnalyse = false;
|
|
public static String hash ="0";
|
|
|
|
//** Variables du fichier d'analyse
|
|
public static String analyse_culture = "FR";
|
|
public static String analyse_metaSujet="";
|
|
public static String analyse_auteur="";
|
|
public static String analyse_Initial_Creator="";
|
|
public static String analyse_version="";
|
|
public static String analyse_creationDate="";
|
|
public static Date analyse_modificationDateMini = null;
|
|
public static String analyse_titre="";
|
|
public static String analyse_link_sujet="";
|
|
public static String analyse_link_help="";
|
|
public static String analyse_date="";
|
|
public static boolean analyse_historiquePresent=false;
|
|
public static boolean analyse_presenceMetaSujet=false;
|
|
public static boolean analyse_controleDateCreation=false;
|
|
public static boolean analyse_controleDateModificationMini=false;
|
|
public static boolean analyse_controle_Initial_Creator=false;
|
|
public static boolean analyse_baremeABC=false;
|
|
public static double analyse_progression=1;
|
|
public static double analyse_notefrom=20;
|
|
public static int analyse_tolerance_characters = 5;
|
|
public static double analyse_tolerance_text = 0.8;
|
|
public static int analyse_number_match = 2;
|
|
public static int analyse_mini_number_modification = 0;
|
|
public static int analyse_nombres_modifications_simultané_maxi = 100;
|
|
public static int analyse_tolerance_rouge = 30;
|
|
public static int analyse_tolerance_vert = 30;
|
|
public static int analyse_tolerance_bleu = 30;
|
|
public static long analyse_size = 48000000;
|
|
public static String analyse_nameZip = "feedbackMoodle";
|
|
public static String analyse_hash = "";
|
|
public static String analysis_filename = "";
|
|
|
|
|
|
//** Variables pour l'interface du logiciel
|
|
public static String Titre = "analyseWriter";
|
|
public static String PathFilenameAnalysis=""; //Chemin vers le fichier d'analyse
|
|
public static boolean fichierAnalyseValide = false; //mise à jour de la valeur dans MEPTL.verificationFichierAnalyse
|
|
public static int analyse_Nbre_Fichier_Student = 0;
|
|
public static int analyse_index_Fichier_Student = 0;
|
|
public static StringBuilder message = new StringBuilder();
|
|
|
|
//** base de données des évaluations
|
|
public static String PathBaseEvaluations = Paths.get("").toAbsolutePath().toString(); //Chemin vers la base de données
|
|
public static boolean PathBaseEvaluationDefaut = true; //Flag si ce n'est pas le chemin par défaut vers la base de données
|
|
public static String NameBaseEvaluations="base_evaluations_analyseWriter.xml"; //Nom par défaut de la base de données
|
|
public static String NameEvaluationCharger = "";
|
|
public static int IndexEvaluationCharger = -1;
|
|
|
|
public static void initialiseParametresSettingProprietes() {
|
|
//** setting valeur par défaut
|
|
culture = "FR";
|
|
tolerance_characters = 5;
|
|
tolerance_text = 0.8;
|
|
number_match = 2;
|
|
mini_number_modification = 0;
|
|
nombres_modifications_simultané_maxi = 100;
|
|
tolerance_rouge = 30;
|
|
tolerance_vert = 30;
|
|
tolerance_bleu = 30;
|
|
|
|
|
|
//** Variables du fichier d'analyse
|
|
analyse_culture = "FR";
|
|
analyse_metaSujet="";
|
|
analyse_auteur="";
|
|
analyse_Initial_Creator="";
|
|
analyse_version="";
|
|
analyse_creationDate="";
|
|
analyse_titre="";
|
|
analyse_link_sujet="";
|
|
analyse_link_help="";
|
|
analyse_date="";
|
|
analyse_historiquePresent=false;
|
|
analyse_presenceMetaSujet=false;
|
|
analyse_controleDateCreation=false;
|
|
analyse_controleDateModificationMini=false;
|
|
analyse_controle_Initial_Creator=false;
|
|
analyse_baremeABC=false;
|
|
analyse_progression=1;
|
|
analyse_notefrom=20;
|
|
analyse_tolerance_characters = 5;
|
|
analyse_tolerance_text = 0.8;
|
|
analyse_number_match = 2;
|
|
analyse_mini_number_modification = 0;
|
|
analyse_nombres_modifications_simultané_maxi = 100;
|
|
analyse_tolerance_rouge = 30;
|
|
analyse_tolerance_vert = 30;
|
|
analyse_tolerance_bleu = 30;
|
|
analyse_size = 48000000;
|
|
analyse_nameZip = "feedbackMoodle";
|
|
|
|
//** Variables pour l'interface du logiciel
|
|
analyse_Nbre_Fichier_Student = 0;
|
|
analyse_index_Fichier_Student = 0;
|
|
message = new StringBuilder();
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Clôture avec une erreur de commande
|
|
*/
|
|
public static void clotureWithError() {
|
|
System.out.println();
|
|
System.out.println("\t\t┌─────────────────────────────────────────────┐");
|
|
System.out.println("\t\t│ Vous avez commis une erreur dans votre │");
|
|
System.out.println("\t\t│ commande. │");
|
|
System.out.println("\t\t│ │");
|
|
System.out.println("\t\t│ Lisez les informations ci-dessus et │");
|
|
System.out.println("\t\t│ recommencez. │");
|
|
System.out.println("\t\t│ │");
|
|
System.out.println("\t\t│ (')_(') │");
|
|
System.out.println("\t\t│ ( `.° ) │");
|
|
System.out.println("\t\t│ (\")__(\") .. à bientôt, analyseWriter. │");
|
|
System.out.println("\t\t└─────────────────────────────────────────────┘");
|
|
System.out.println();
|
|
System.exit(0);
|
|
}
|
|
|
|
|
|
/**
|
|
* Bye Bye the application
|
|
*/
|
|
public static void clotureApplication() {
|
|
System.out.println();
|
|
System.out.println("\t\t┌────────────────────────────────────────────────────┐");
|
|
System.out.println("\t\t│ (')_(') │");
|
|
System.out.println("\t\t│ ( `.° ) Bravo, vous avez travaillé très dur! │");
|
|
System.out.println("\t\t│ (\")__(\") ... Bye Bye analyseWriter. │");
|
|
System.out.println("\t\t└────────────────────────────────────────────────────┘");
|
|
System.out.println();
|
|
commandes.message.append("\n (')_(')");
|
|
commandes.message.append("\n ( `.° ) Bravo, vous avez travaillé très dur!");
|
|
commandes.message.append("\n (\")__(\") ... Bye Bye analyseWriter.");
|
|
commandes.message.append("\n");
|
|
if(commandes.console) System.exit(0);
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public static void clotureApplicationAvecErreur() {
|
|
System.out.println();
|
|
System.out.println("\t\t┌────────────────────────────────────────────────────┐");
|
|
System.out.println("\t\t│ (')_(') │");
|
|
System.out.println("\t\t│ ( ;.; ) Une erreur c'est produite. │");
|
|
System.out.println("\t\t│ (\")__(\") ... Bye Bye analyseWriter. │");
|
|
System.out.println("\t\t└────────────────────────────────────────────────────┘");
|
|
System.out.println();
|
|
System.exit(0);
|
|
}
|
|
|
|
|
|
|
|
public static void clotureWithHelp() {
|
|
System.out.println();
|
|
System.out.println("\t\t┌─────────────────────────────────────────────────────┐");
|
|
System.out.println("\t\t│ Au-dessus, vous avez la liste des commandes. │");
|
|
System.out.println("\t\t│ Mais vous avez aussi la documentation sur le │");
|
|
System.out.println("\t\t│ le serveur de github ou chapril. │");
|
|
System.out.println("\t\t│ │");
|
|
System.out.println("\t\t│ (')_(') │");
|
|
System.out.println("\t\t│ ( `.° ) │");
|
|
System.out.println("\t\t│ (\")__(\") .. à bientôt, analyseWriter. │");
|
|
System.out.println("\t\t└─────────────────────────────────────────────────────┘");
|
|
System.out.println();
|
|
System.exit(0);
|
|
System.exit(0);
|
|
}
|
|
|
|
public static void ErrorFile(String filename) {
|
|
int nbespace = 30-filename.length();
|
|
if (nbespace<0) nbespace=1;
|
|
System.out.println();
|
|
System.out.println("\t\t┌───────────────────────────────────────────────────────────┐");
|
|
System.out.println("\t\t│ Le fichier \""+ filename + "\" n'existe pas." + new String(new char[nbespace]).replace("\0", " ") +"│" );
|
|
System.out.println("\t\t│ │");
|
|
System.out.println("\t\t│ (')_(') │");
|
|
System.out.println("\t\t│ ( `.° ) │");
|
|
System.out.println("\t\t│ (\")__(\") .. see you soon, analyseWriter. │");
|
|
System.out.println("\t\t└───────────────────────────────────────────────────────────┘");
|
|
System.out.println();
|
|
|
|
commandes.message.append("\n");
|
|
commandes.message.append("\n*************************");
|
|
commandes.message.append("\nERREUR Le fichier \""+ filename + "\" n'existe pas.");
|
|
commandes.message.append("\n*************************");
|
|
commandes.message.append("\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Nettoyage de la console.<br/>
|
|
* <br/>
|
|
* @throws InterruptedException
|
|
* @throws IOException
|
|
*/
|
|
public static void CLS() throws InterruptedException, IOException {
|
|
new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|