2022-04-25 13:25:20 +02:00
package MEPTL ;
import java.io.IOException ;
2023-02-28 21:37:14 +01:00
import java.nio.file.Paths ;
2023-02-11 09:43:12 +01:00
import java.util.Date ;
2022-05-28 19:13:25 +02:00
2023-02-12 17:12:11 +01:00
import javax.swing.JTree ;
2022-04-25 13:25:20 +02:00
2023-02-12 17:12:11 +01:00
import cXML.node ;
2022-04-25 13:25:20 +02:00
/ * *
*
* @author pablo rodriguez
*
* /
public class commandes {
2022-12-03 16:14:35 +01:00
//** 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 ;
2023-04-01 09:54:28 +02:00
public static node evaluationChargeEnMemoire = null ;
2023-02-17 21:33:05 +01:00
//** L'arbre
2022-05-28 19:13:25 +02:00
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
2024-03-04 14:14:53 +01:00
public static String version = " V4.5.0 " ; // La version actuelle
2024-03-23 10:28:11 +01:00
public static String versionEvaluation = " " ;
2022-06-06 18:59:42 +02:00
public static String branch = " Origin " ;
2024-03-04 14:14:53 +01:00
public static String Annee = " 2024 " ;
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
2022-05-03 16:02:02 +02:00
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
2022-12-01 13:04:20 +01:00
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
2022-05-27 15:02:18 +02:00
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 ;
2022-12-23 19:24:59 +01:00
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 ;
2023-02-12 17:12:11 +01:00
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
2022-05-03 16:02:02 +02:00
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 = " " ;
2023-02-11 09:43:12 +01:00
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 = " " ;
2024-03-05 21:23:22 +01:00
public static boolean analyse_exclure_name_creator = false ;
public static String analyse_auteur_exclure_historique = " " ;
2022-05-24 18:25:41 +02:00
public static boolean analyse_historiquePresent = false ;
public static boolean analyse_presenceMetaSujet = false ;
public static boolean analyse_controleDateCreation = false ;
2023-02-11 09:43:12 +01:00
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 ;
2022-12-23 19:24:59 +01:00
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 ;
2022-05-25 10:43:11 +02:00
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
2022-05-23 21:01:17 +02:00
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 ( ) ;
2023-02-28 21:37:14 +01:00
//** base de données des évaluations
public static String PathBaseEvaluations = Paths . get ( " " ) . toAbsolutePath ( ) . toString ( ) ; //Chemin vers la base de données
2023-03-21 20:07:38 +01:00
public static boolean PathBaseEvaluationDefaut = true ; //Flag si ce n'est pas le chemin par défaut vers la base de données
2023-02-28 21:37:14 +01:00
public static String NameBaseEvaluations = " base_evaluations_analyseWriter.xml " ; //Nom par défaut de la base de données
2023-04-01 09:54:28 +02:00
public static String NameEvaluationCharger = " " ;
public static int IndexEvaluationCharger = - 1 ;
2023-02-28 21:37:14 +01:00
2022-07-08 11:13:46 +02:00
public static void initialiseParametresSettingProprietes ( ) {
2022-07-07 15:57:54 +02:00
//** setting valeur par défaut
culture = " FR " ;
tolerance_characters = 5 ;
2022-12-23 19:24:59 +01:00
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-08 11:13:46 +02:00
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 ;
2024-03-05 21:23:22 +01:00
analyse_exclure_name_creator = false ;
analyse_auteur_exclure_historique = " " ;
2022-07-07 15:57:54 +02:00
analyse_presenceMetaSujet = false ;
analyse_controleDateCreation = false ;
2023-02-11 09:43:12 +01:00
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 ;
2022-12-23 19:24:59 +01:00
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-05-03 16:02:02 +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┌─────────────────────────────────────────────┐ " ) ;
2022-05-03 16:02:02 +02:00
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│ │ " ) ;
2022-05-03 16:02:02 +02:00
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│ ( `.° ) │ " ) ;
2022-05-03 16:02:02 +02:00
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│ (')_(') │ " ) ;
2022-05-03 16:02:02 +02:00
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┌─────────────────────────────────────────────────────┐ " ) ;
2022-05-03 16:02:02 +02:00
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│ ( `.° ) │ " ) ;
2022-05-03 16:02:02 +02:00
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-05-28 19:13:25 +02:00
2022-04-25 13:25:20 +02:00
}