analyseWriter/src/MEPTL/commandes.java

302 lines
14 KiB
Java
Raw Normal View History

2022-04-25 13:25:20 +02:00
package MEPTL;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;
import javax.swing.JTree;
2022-04-25 13:25:20 +02:00
import cXML.node;
2022-04-25 13:25:20 +02:00
/**
*
* @author pablo rodriguez
*
*/
public class commandes {
//** Si la valeur est false alors c'est une application avec inteface graphique.
2022-05-24 18:25:41 +02:00
public static boolean console = true;
//** Le node du fichier d'analyse
public static node sujet = new node();
2022-06-09 09:13:46 +02:00
public static node sujetSauvegarde = new node();
2023-02-17 21:33:05 +01:00
//** Le node base de données des évaluations
public static node evaluationsBase = null;
public static node evaluationChargeEnMemoire = null;
2023-02-17 21:33:05 +01:00
//** L'arbre
public static JTree tree = new JTree();
2023-02-17 21:33:05 +01:00
//** Le node CSV - liste des étudiants
2022-05-27 11:40:08 +02:00
public static node nodeCSV = null;
2022-05-24 18:25:41 +02:00
2023-02-17 21:33:05 +01:00
//** Version
public static String version ="V4.4.8"; // La version actuelle
2022-06-06 18:59:42 +02:00
public static String branch = "Origin";
public static String Annee ="2023";
2022-06-06 09:50:45 +02:00
2022-05-24 18:25:41 +02:00
//***************************************************
//** Les commandes par défaut à travers la console **
//***************************************************
2022-05-26 20:10:24 +02:00
public static String nameSujet = ""; //sujet par défaut
2022-04-25 13:25:20 +02:00
public static boolean analyse = false; //analyse des fichiers étudiants
2022-04-29 19:17:58 +02:00
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
2022-05-09 21:22:50 +02:00
public static boolean ecritNodeAnalyse = false;
2022-04-25 13:25:20 +02:00
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
2022-04-25 13:25:20 +02:00
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
2022-04-25 13:44:14 +02:00
public static boolean noNote =false; // pas de note dans les feedbacks
public static boolean noDetail = false; // pas de détail dans les feedbacks
2022-04-25 13:44:14 +02:00
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
2022-04-25 13:25:20 +02:00
public static boolean zipfeedback = false; // Les feedback dans une archive ZIP
2022-04-25 18:46:58 +02:00
public static boolean fichierStudentMoodle = false; // Les fichiers étudiants sont directement dans le dossier courant de l'application.
2022-05-24 18:25:41 +02:00
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.
2022-04-25 13:25:20 +02:00
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
2022-04-25 13:44:14 +02:00
public static String contenuFichierSVG =""; // Le nouveau logo
2022-04-25 13:25:20 +02:00
public static String path ="";
2022-05-25 21:22:38 +02:00
public static String pathDestination =""; //Pour le mode console uniquement
public static String nomDeLaBranch = "Origin"; //Branche de développement
2022-05-24 18:25:41 +02:00
public static String Command =""; //récupère le texte de la commande dans la console
2022-11-24 21:49:39 +01:00
public static String os = System.getProperty("os.name");
2022-04-25 13:44:14 +02:00
//** setting valeur par défaut
2022-04-25 14:59:38 +02:00
public static String culture = "FR";
2022-04-25 13:25:20 +02:00
public static int tolerance_characters = 5;
public static double tolerance_text = 0.8;
2022-04-25 13:25:20 +02:00
public static int number_match = 2;
public static int mini_number_modification = 0;
public static int nombres_modifications_simultané_maxi = 5;
2022-04-25 13:25:20 +02:00
public static int tolerance_rouge = 30;
public static int tolerance_vert = 30;
public static int tolerance_bleu = 30;
2022-05-24 18:25:41 +02:00
//** Variables de mise à jour du fichier d'analyse
public static boolean MAJnameAnalysisFile =false;
public static boolean MAJFichierAnalyse = false;
public static String hash ="0";
2022-04-25 14:59:38 +02:00
2022-05-24 18:25:41 +02:00
//** 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;
2022-05-24 18:25:41 +02:00
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;
2022-05-24 18:25:41 +02:00
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;
2022-05-24 18:25:41 +02:00
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";
2022-05-25 18:21:23 +02:00
public static String analyse_hash = "";
2022-05-26 20:10:24 +02:00
public static String analysis_filename = "";
2023-03-03 18:08:16 +01:00
2022-05-24 18:25:41 +02:00
//** Variables pour l'interface du logiciel
public static String Titre = "analyseWriter";
2023-03-03 18:08:16 +01:00
public static String PathFilenameAnalysis=""; //Chemin vers le fichier d'analyse
2022-05-25 15:28:58 +02:00
public static boolean fichierAnalyseValide = false; //mise à jour de la valeur dans MEPTL.verificationFichierAnalyse
2022-05-25 18:21:23 +02:00
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() {
2022-07-07 15:57:54 +02:00
//** setting valeur par défaut
culture = "FR";
tolerance_characters = 5;
tolerance_text = 0.8;
2022-07-07 15:57:54 +02:00
number_match = 2;
mini_number_modification = 0;
nombres_modifications_simultané_maxi = 100;
tolerance_rouge = 30;
tolerance_vert = 30;
tolerance_bleu = 30;
2022-07-07 15:57:54 +02:00
//** 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;
2022-07-07 15:57:54 +02:00
analyse_controle_Initial_Creator=false;
analyse_baremeABC=false;
analyse_progression=1;
analyse_notefrom=20;
analyse_tolerance_characters = 5;
analyse_tolerance_text = 0.8;
2022-07-07 15:57:54 +02:00
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();
}
2022-05-27 11:40:08 +02:00
2022-04-25 13:25:20 +02:00
2022-04-25 13:25:20 +02:00
/**
* 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. │");
2022-04-25 13:25:20 +02:00
System.out.println("\t\t│ │");
System.out.println("\t\t│ Lisez les informations ci-dessus et │");
System.out.println("\t\t│ recommencez. │");
2022-04-25 13:25:20 +02:00
System.out.println("\t\t│ │");
System.out.println("\t\t│ (')_(') │");
System.out.println("\t\t│ ( `.° ) │");
System.out.println("\t\t│ (\")__(\") .. à bientôt, analyseWriter. │");
2022-04-25 13:25:20 +02:00
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! │");
2022-05-07 20:43:07 +02:00
System.out.println("\t\t│ (\")__(\") ... Bye Bye analyseWriter. │");
2022-04-25 13:25:20 +02:00
System.out.println("\t\t└────────────────────────────────────────────────────┘");
System.out.println();
2022-06-01 21:38:37 +02:00
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);
2022-04-25 13:25:20 +02:00
}
2022-05-07 20:43:07 +02:00
/**
*
*/
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);
}
2022-04-25 13:25:20 +02:00
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. │");
2022-04-25 13:25:20 +02:00
System.out.println("\t\t│ │");
System.out.println("\t\t│ (')_(') │");
System.out.println("\t\t│ ( `.° ) │");
System.out.println("\t\t│ (\")__(\") .. à bientôt, analyseWriter. │");
2022-04-25 13:25:20 +02:00
System.out.println("\t\t└─────────────────────────────────────────────────────┘");
System.out.println();
System.exit(0);
System.exit(0);
}
2023-03-03 18:54:53 +01:00
public static void ErrorFile(String filename) {
2022-04-25 13:25:20 +02:00
int nbespace = 30-filename.length();
if (nbespace<0) nbespace=1;
System.out.println();
System.out.println("\t\t┌───────────────────────────────────────────────────────────┐");
2022-05-26 20:10:24 +02:00
System.out.println("\t\t│ Le fichier \""+ filename + "\" n'existe pas." + new String(new char[nbespace]).replace("\0", " ") +"" );
2022-04-25 13:25:20 +02:00
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();
2022-05-25 21:22:38 +02:00
commandes.message.append("\n");
commandes.message.append("\n*************************");
2022-05-26 20:10:24 +02:00
commandes.message.append("\nERREUR Le fichier \""+ filename + "\" n'existe pas.");
2022-05-25 21:22:38 +02:00
commandes.message.append("\n*************************");
commandes.message.append("\n");
2022-04-25 13:25:20 +02:00
}
/**
* 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();
}
2022-04-25 13:25:20 +02:00
}