analyseWriter/src/MEPTL/commandes.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();
}
}