MAJ
This commit is contained in:
parent
5112569593
commit
96791614a2
4
bin/.gitignore
vendored
4
bin/.gitignore
vendored
@ -1,3 +1,7 @@
|
||||
/resources/
|
||||
/app/
|
||||
/MEPTL/
|
||||
/fichierAnalyse.png
|
||||
/fichier_analyse.svg
|
||||
/open.svg
|
||||
/open2.png
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -103,13 +103,17 @@ public class commandes {
|
||||
public static int analyse_tolerance_bleu = 30;
|
||||
public static long analyse_size = 48000000;
|
||||
public static String analyse_nameZip = "feedbackMoodle";
|
||||
public static String analyse_hash = "";
|
||||
|
||||
|
||||
//** Variables pour l'interface du logiciel
|
||||
public static String Titre = "analyseWriter";
|
||||
public static String filename="";
|
||||
public static boolean fichierAnalyseValide = false; //mise à jour de la valeur dans MEPTL.verificationFichierAnalyse
|
||||
public static String Annee ="2022";
|
||||
|
||||
public static int analyse_Nbre_Fichier_Student = 0;
|
||||
public static int analyse_index_Fichier_Student = 0;
|
||||
public static StringBuilder message = new StringBuilder();
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -1113,6 +1113,11 @@ public class meptl {
|
||||
commandes.analyse_date= commandes.sujet.getAttributs().get("date");
|
||||
}
|
||||
|
||||
//Charge le hash
|
||||
if(commandes.sujet.getAttributs().get("hash")!=null) {
|
||||
commandes.analyse_hash= commandes.sujet.getAttributs().get("hash");
|
||||
}
|
||||
|
||||
|
||||
//*****************************************************************
|
||||
//** chargement de la culture qui se trouve dans le node setting **
|
||||
@ -1196,6 +1201,167 @@ public class meptl {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Parcour l'ensemble des fichiers des étudiants, verification, analyse, création des feedbacks et CSV.
|
||||
* @throws IOException
|
||||
* @throws ParserConfigurationException
|
||||
* @throws SAXException
|
||||
* @throws CloneNotSupportedException
|
||||
*/
|
||||
public static void analyseVerifieHistoriqueLesFichiersEtudiantsEtExportNoteCSV() throws IOException, ParserConfigurationException, SAXException, CloneNotSupportedException {
|
||||
|
||||
commandes.message = new StringBuilder();
|
||||
commandes.message.append("LES FICHIERS EVALUES");
|
||||
commandes.message.append("\n");
|
||||
|
||||
Run a = new Run(commandes.path,commandes.Profil, commandes.fichierStudentMoodle);
|
||||
|
||||
|
||||
//**********************************************
|
||||
//** Chargement et verification du CVS fourni **
|
||||
//**********************************************
|
||||
node nodeCSV = null;
|
||||
if(commandes.fourniCSV) {
|
||||
nodeCSV = chargementFichierCSV(a, commandes.nameCSV);
|
||||
}
|
||||
|
||||
|
||||
//*****************************************
|
||||
//** Nombre de fichier writer à analyser **
|
||||
//*****************************************
|
||||
int nbFichierWriter = a.getLectDossiers().getEC().getListeContentWriter().size();
|
||||
commandes.analyse_Nbre_Fichier_Student = nbFichierWriter;
|
||||
|
||||
|
||||
|
||||
//***************************************
|
||||
//** -verif ou -use file.xml -verifcsv **
|
||||
//***************************************
|
||||
node verif = new node();
|
||||
if(commandes.verifHisto || commandes.verifHisto2) {
|
||||
node verification = new node();
|
||||
verification.setNomElt("verification");
|
||||
verification.getAttributs().put("nombre_fichier", String.valueOf(a.getLectDossiers().getEC().getListeFichierodt().size()));
|
||||
for(int i = 0 ; i < nbFichierWriter ; i++) {
|
||||
node nod = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i));
|
||||
node nodStudent = meptl.LectureFichierEtudiantPourVerification(nod,a,i);
|
||||
verification.getNodes().add(nodStudent);
|
||||
}
|
||||
//a.ecritureNodeEnXML(verification, "VerificationHistorique","",false); //écriture du node de l'étudiant
|
||||
verif = meptl.verificationHistorique(verification, a); // vérification des correspondances entre les fichiers
|
||||
|
||||
//********************************
|
||||
//** Ecriture du node verif.xml **
|
||||
//********************************
|
||||
Run.ecritureNodeEnXML(verif, "Verif",commandes.pathDestination,commandes.fourniDossierDestination, "Verif"); //écriture du node de vérification
|
||||
if(!commandes.analyse) {
|
||||
//** bye bye analyseWriter
|
||||
commandes.clotureApplication();
|
||||
}
|
||||
}
|
||||
|
||||
//*********************************************************
|
||||
//** Node contenant l'ensemble des analyses des étudiants **
|
||||
//*********************************************************
|
||||
node ensembleanalyse = new node();
|
||||
ensembleanalyse.setNomElt("analyses");
|
||||
|
||||
//*****************************************************
|
||||
//** Parcours l'ensemble des fichiers des étudiants ***
|
||||
//*****************************************************
|
||||
for(int i = 0 ; i < nbFichierWriter ; i++) {
|
||||
|
||||
//index de l'étudiant
|
||||
commandes.analyse_index_Fichier_Student = i;
|
||||
|
||||
//** Ne prends pas en compte le dossier destination créé par la commande -dest
|
||||
//** Si pas d'analyse alors le nom doit contenir le caractère $ dans le nom du dossier.
|
||||
if(commandes.fourniDossierDestination)if(a.getLectDossiers().getEC().getListeNomDossier().get(i).equals(commandes.pathDestination)) continue;
|
||||
|
||||
//***********************************************************
|
||||
//** Lecture et transformation en node du fichier étudiant **
|
||||
//***********************************************************
|
||||
node nod = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i));
|
||||
node nodStudent = meptl.LectureFichierEtudiantSousFormeDeNode(nod,a,i);
|
||||
//a.ecritureNodeEnXML(nodStudent, a.getLectDossiers().getEC().getListeNomDossier().get(i),"",false,""); //écriture du node de l'étudiant
|
||||
|
||||
//**********************************
|
||||
//** Analyse des fichiers student **
|
||||
//**********************************
|
||||
if(commandes.analyse||commandes.ecritNodeAnalyse) {
|
||||
|
||||
// Run.ecritureNodeEnXML(nodStudent, "fichier student","",false,""); //écriture du node nodStudent de l'étudiant
|
||||
node ana = meptl.analyse(nodStudent, commandes.sujet, i, a);
|
||||
|
||||
//**************************************************
|
||||
//** Ecriture des fichiers d'analyse des students **
|
||||
//**************************************************
|
||||
if(commandes.ecritNodeAnalyse) {
|
||||
Run.ecritureNodeEnXML(ana, "nodana"+ana.retourneFirstEnfantsByName("ouverture").getAttributs().get("dossier"),"",false,""); //écriture du node analyse de l'étudiant
|
||||
}
|
||||
|
||||
//****************************
|
||||
//** Création des feedbacks **
|
||||
//****************************
|
||||
if(!commandes.sansFeeback&&!commandes.ecritNodeAnalyse) {
|
||||
if(!commandes.zipfeedback) {
|
||||
//feedback(ana, verif); //classique directement dans le répertoire
|
||||
feedbacks.feedback(ana,verif, false);
|
||||
}
|
||||
if(commandes.zipfeedback) { // Dans une archive pour Moodle
|
||||
try {
|
||||
a.AddStreamToZip(feedbacks.feedback(ana, verif, true), meptl.retourneLeNomDuFeedback(a.getLectDossiers().getEC().getListeNomFichierFeedBack().get(i),ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
|
||||
} catch (ZipException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//********************************************************************************
|
||||
//** Ajoute au node ensembleanalyse lorsque -csv file.csv ou -verifcsv file.scv **
|
||||
//********************************************************************************
|
||||
if(commandes.ecritNoteCSV) ensembleanalyse.addNode(ana);
|
||||
|
||||
//*********************************************************
|
||||
//** Message dans la console sur l'analyse de l'étudiant **
|
||||
//*********************************************************
|
||||
commandes.message.append(meptl.messageSystem(ana).toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//*****************************************************
|
||||
//** Exportation au format CSV si -csv ou -verifcsv **
|
||||
//*****************************************************
|
||||
if(commandes.ecritNoteCSV && !commandes.fourniCSV) {
|
||||
if(!commandes.verifHisto2) ecritureCSV(ensembleanalyse);
|
||||
if(commandes.verifHisto2) ecritureCSV(ensembleanalyse,verif,a,commandes.sujet.retourneFirstEnfantsByName("setting"));
|
||||
//a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
|
||||
}
|
||||
|
||||
//***********************************************************************
|
||||
//** Exportation au format CSV si -csv file.csv ou -verifcsv file.csv **
|
||||
//***********************************************************************
|
||||
if(commandes.ecritNoteCSV && commandes.fourniCSV) {
|
||||
ecritureCSV(ensembleanalyse,verif,a,nodeCSV, commandes.sujet.retourneFirstEnfantsByName("setting"));
|
||||
//a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
|
||||
}
|
||||
|
||||
//**************************************
|
||||
//** Mise à jour du fichier d'analyse **
|
||||
//**************************************
|
||||
if(commandes.MAJFichierAnalyse||commandes.MAJnameAnalysisFile) {
|
||||
verificationFichierAnalyse.MiseAJourFichierAnalyse();
|
||||
verificationFichierAnalyse.messagMiseAJourFichierAnalyseAprèsAnalyse();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Début de l'analyse par comparaison du node étudiant avec le node sujet.
|
||||
* @param nodStudent, le node étudiant.
|
||||
@ -2392,6 +2558,15 @@ public class meptl {
|
||||
|
||||
}
|
||||
fichier.close();
|
||||
|
||||
commandes.message.append("\n");
|
||||
commandes.message.append("*************************");
|
||||
commandes.message.append("\n");
|
||||
commandes.message.append("\nLe fichier au format CSV a été généré.");
|
||||
commandes.message.append("\n" + outputFilePath.toString());
|
||||
commandes.message.append("\n");
|
||||
commandes.message.append("*************************");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2457,6 +2632,15 @@ public class meptl {
|
||||
|
||||
}
|
||||
fichier.close();
|
||||
|
||||
commandes.message.append("\n");
|
||||
commandes.message.append("*************************");
|
||||
commandes.message.append("\n");
|
||||
commandes.message.append("\nLe fichier au format CSV a été généré.");
|
||||
commandes.message.append("\n" + outputFilePath.toString());
|
||||
commandes.message.append("\n");
|
||||
commandes.message.append("*************************");
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -2651,6 +2835,14 @@ public class meptl {
|
||||
|
||||
}
|
||||
fichier.close();
|
||||
|
||||
commandes.message.append("\n");
|
||||
commandes.message.append("*************************");
|
||||
commandes.message.append("\n");
|
||||
commandes.message.append("\nLe fichier au format CSV a été généré.");
|
||||
commandes.message.append("\n" + outputFilePath.toString());
|
||||
commandes.message.append("\n");
|
||||
commandes.message.append("*************************");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -728,15 +728,35 @@ public class verificationFichierAnalyse {
|
||||
System.out.println();
|
||||
nodeCalculHash.getAttributs().put("hash", commandes.hash);
|
||||
nodeCalculHash.getAttributs().put("analysis_filename", commandes.nameSujet);
|
||||
Run.ecritureNodeEnXML(nodeCalculHash,commandes.nameSujet.substring(0, commandes.nameSujet.lastIndexOf(".")),commandes.pathDestination,false,"Sujet");
|
||||
|
||||
commandes.message.append("\n");
|
||||
commandes.message.append("\n┌────────────────────────────────────────────────────────────────────┐");
|
||||
commandes.message.append("\n│ Le hash du code de l'évaluation ou le nom du fichier d'analyse │");
|
||||
commandes.message.append("\n│ a été mise à jour dans le fichier d'analyse. │");
|
||||
commandes.message.append("\n│ │");
|
||||
commandes.message.append("\n│ Le hash du code de l'évaluation est : " + commandes.hash + new String(new char[nbespace]).replace("\0", " ") +"│" );
|
||||
commandes.message.append("\n│ Le nom du fichier d'analyse est : " + commandes.nameSujet + new String(new char[nbespace2]).replace("\0", " ") +"│" );
|
||||
commandes.message.append("\n│ │");
|
||||
commandes.message.append("\n└────────────────────────────────────────────────────────────────────┘");
|
||||
commandes.message.append("\n");
|
||||
|
||||
if(commandes.nameSujet.contains(".")) {
|
||||
Run.ecritureNodeEnXML(nodeCalculHash,commandes.nameSujet.substring(0, commandes.nameSujet.lastIndexOf(".")),commandes.pathDestination,false,"Sujet");
|
||||
}else {
|
||||
Run.ecritureNodeEnXML(nodeCalculHash,commandes.nameSujet,commandes.pathDestination,false,"Sujet");
|
||||
}
|
||||
}else {
|
||||
System.out.println("\t\t┌─────────────────────────────────────────────────────┐");
|
||||
System.out.println("\t\t│ Vérification du hash et du nom du fichier correct. │");
|
||||
System.out.println("\t\t└─────────────────────────────────────────────────────┘");
|
||||
System.out.println();
|
||||
commandes.message.append("\n┌─────────────────────────────────────────────────────┐");
|
||||
commandes.message.append("\n│ Vérification du hash et du nom du fichier correct. │");
|
||||
commandes.message.append("\n└─────────────────────────────────────────────────────┘");
|
||||
commandes.message.append("\n");
|
||||
}
|
||||
//** bye bye analyseWriter
|
||||
commandes.clotureApplication();
|
||||
if(commandes.console) commandes.clotureApplication();
|
||||
}
|
||||
|
||||
|
||||
|
@ -32,11 +32,15 @@ import cXML.Run;
|
||||
import cXML.node;
|
||||
import net.lingala.zip4j.exception.ZipException;
|
||||
import javax.swing.SwingConstants;
|
||||
import javax.swing.Timer;
|
||||
|
||||
import java.awt.GridLayout;
|
||||
import javax.swing.JTextArea;
|
||||
import javax.swing.JScrollPane;
|
||||
import java.awt.Component;
|
||||
import javax.swing.Box;
|
||||
import javax.swing.JEditorPane;
|
||||
import javax.swing.JProgressBar;
|
||||
|
||||
public class evaluate extends JFrame {
|
||||
|
||||
@ -51,7 +55,12 @@ public class evaluate extends JFrame {
|
||||
private JCheckBox chckbxZipfeedback = new JCheckBox();
|
||||
private JCheckBox chckbxnoFeedback = new JCheckBox();
|
||||
private JCheckBox chckbxNoNote = new JCheckBox();
|
||||
private JTextArea textAreaMessage = new JTextArea();
|
||||
private JCheckBox chckCSVNotes = new JCheckBox();
|
||||
private JTextPane txtpnmessages = new JTextPane();
|
||||
private JProgressBar progressBar = new JProgressBar();
|
||||
private JButton btnSelectFileAnalyse = new JButton();
|
||||
private JButton btnSelectFolder = new JButton();
|
||||
private JButton btnEvaluerLesFichiers = new JButton();
|
||||
|
||||
/**
|
||||
* Create the frame.
|
||||
@ -70,59 +79,19 @@ public class evaluate extends JFrame {
|
||||
JToolBar toolBar = new JToolBar();
|
||||
contentPane.add(toolBar, BorderLayout.NORTH);
|
||||
|
||||
JButton btnSelectFolder = new JButton("Selection dossier d'analyse");
|
||||
btnSelectFolder.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
|
||||
JFileChooser chooser = new JFileChooser();
|
||||
|
||||
chooser.setCurrentDirectory(new java.io.File(commandes.path));
|
||||
chooser.setDialogTitle("choosertitle");
|
||||
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
|
||||
chooser.setAcceptAllFileFilterUsed(false);
|
||||
|
||||
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
|
||||
System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory());
|
||||
System.out.println("getSelectedFile() : " + chooser.getSelectedFile().getAbsolutePath());
|
||||
commandes.path = chooser.getSelectedFile().getAbsolutePath();
|
||||
} else {
|
||||
System.out.println("No Selection ");
|
||||
}
|
||||
|
||||
refreshLabel();
|
||||
|
||||
}
|
||||
});
|
||||
btnSelectFolder = new JButton("Selection dossier d'analyse");
|
||||
btnSelectFolder.setIcon(new ImageIcon(evaluate.class.getResource("/resources/open2.png")));
|
||||
btnSelectFolder.setSelectedIcon(new ImageIcon(evaluate.class.getResource("/resources/evalwriter.png")));
|
||||
btnSelectFolder.setToolTipText("Sélectionner le dossier d'analyse (CTRL+O)");
|
||||
toolBar.add(btnSelectFolder);
|
||||
|
||||
JButton btnNewButton = new JButton("Evaluer les fichiers des étudiants");
|
||||
btnNewButton.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
try {
|
||||
evaluerLesFichiersEtudiants();
|
||||
} catch (ParserConfigurationException | SAXException | IOException | CloneNotSupportedException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
JButton btnSelectFileAnalyse = new JButton("Selection fichier analyse");
|
||||
btnSelectFileAnalyse.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new filechooserXML();
|
||||
refreshLabel();
|
||||
}
|
||||
});
|
||||
btnEvaluerLesFichiers = new JButton("Evaluer les fichiers des étudiants");
|
||||
btnSelectFileAnalyse = new JButton("Selection fichier analyse");
|
||||
btnSelectFileAnalyse.setToolTipText("Sélection du fichier d'analyse");
|
||||
btnSelectFileAnalyse.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierAnalyse.png")));
|
||||
toolBar.add(btnSelectFileAnalyse);
|
||||
btnNewButton.setIcon(new ImageIcon(evaluate.class.getResource("/resources/evaluate.png")));
|
||||
toolBar.add(btnNewButton);
|
||||
btnEvaluerLesFichiers.setIcon(new ImageIcon(evaluate.class.getResource("/resources/evaluate.png")));
|
||||
toolBar.add(btnEvaluerLesFichiers);
|
||||
|
||||
JPanel panel = new JPanel();
|
||||
contentPane.add(panel, BorderLayout.WEST);
|
||||
@ -154,6 +123,9 @@ public class evaluate extends JFrame {
|
||||
chckbxNoNote.setFont(new Font("Tahoma", Font.PLAIN, 12));
|
||||
panel.add(chckbxNoNote);
|
||||
|
||||
chckCSVNotes = new JCheckBox("Créer un fichier CSV des notes");
|
||||
panel.add(chckCSVNotes);
|
||||
|
||||
|
||||
JPanel panel_1 = new JPanel();
|
||||
contentPane.add(panel_1, BorderLayout.CENTER);
|
||||
@ -162,29 +134,38 @@ public class evaluate extends JFrame {
|
||||
JScrollPane scrollPane = new JScrollPane();
|
||||
panel_1.add(scrollPane);
|
||||
|
||||
textAreaMessage = new JTextArea();
|
||||
scrollPane.setViewportView(textAreaMessage);
|
||||
textAreaMessage.setText("");
|
||||
|
||||
progressBar = new JProgressBar();
|
||||
progressBar.setEnabled(false);
|
||||
scrollPane.setColumnHeaderView(progressBar);
|
||||
|
||||
txtpnmessages = new JTextPane();
|
||||
txtpnmessages.setText("Messages");
|
||||
scrollPane.setViewportView(txtpnmessages);
|
||||
|
||||
|
||||
CommandeListener();
|
||||
refreshLabel();
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Raffraichi les informations
|
||||
*/
|
||||
private void refreshLabel() {
|
||||
if(!commandes.fichierAnalyseValide) {
|
||||
textAreaMessage.setText(MEPTL.verificationFichierAnalyse.messageErreur.toString());
|
||||
txtpnmessages.setText(MEPTL.verificationFichierAnalyse.messageErreur.toString());
|
||||
chckbxfichiersEtudaints.setEnabled(false);
|
||||
chckbxZipfeedback.setEnabled(false);
|
||||
chckbxnoFeedback.setEnabled(false);
|
||||
chckbxNoNote.setEnabled(false);
|
||||
chckCSVNotes.setEnabled(false);
|
||||
}else {
|
||||
chckbxfichiersEtudaints.setEnabled(true);
|
||||
chckbxZipfeedback.setEnabled(true);
|
||||
chckbxnoFeedback.setEnabled(true);
|
||||
chckbxNoNote.setEnabled(true);
|
||||
chckCSVNotes.setEnabled(true);
|
||||
|
||||
StringBuilder text = new StringBuilder();
|
||||
|
||||
@ -197,14 +178,18 @@ public class evaluate extends JFrame {
|
||||
text.append("\n");
|
||||
if(commandes.analyse_baremeABC==true) {
|
||||
text.append("La notation est sous la forme d'un barème alphabétique ABCDE.");
|
||||
text.append("\n");
|
||||
text.append("\tLa progression est de " + String.valueOf(commandes.analyse_progression));
|
||||
}else {
|
||||
text.append("La notation est sous la forme d'une note numérique.");
|
||||
text.append("Le barème est sur " + String.valueOf(commandes.analyse_notefrom));
|
||||
text.append("\n");
|
||||
text.append("\tLe barème est sur " + String.valueOf(commandes.analyse_notefrom));
|
||||
text.append("\tLa progression est de " + String.valueOf(commandes.analyse_progression));
|
||||
}
|
||||
text.append("\n");
|
||||
|
||||
textAreaMessage.setText(text.toString());
|
||||
|
||||
|
||||
progressBar.setVisible(false);
|
||||
txtpnmessages.setText(text.toString());
|
||||
|
||||
}
|
||||
|
||||
@ -214,156 +199,217 @@ public class evaluate extends JFrame {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Les actionListener
|
||||
*/
|
||||
private void CommandeListener() {
|
||||
|
||||
// Sélectionne un dossier pour analyser le contenu
|
||||
btnSelectFolder.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
|
||||
JFileChooser chooser = new JFileChooser();
|
||||
|
||||
chooser.setCurrentDirectory(new java.io.File(commandes.path));
|
||||
chooser.setDialogTitle("choosertitle");
|
||||
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
|
||||
chooser.setAcceptAllFileFilterUsed(false);
|
||||
|
||||
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
|
||||
System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory());
|
||||
System.out.println("getSelectedFile() : " + chooser.getSelectedFile().getAbsolutePath());
|
||||
commandes.path = chooser.getSelectedFile().getAbsolutePath();
|
||||
} else {
|
||||
System.out.println("No Selection ");
|
||||
}
|
||||
|
||||
refreshLabel();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
// Sélectionne un fichier d'analyse
|
||||
btnSelectFileAnalyse.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
new filechooserXML();
|
||||
refreshLabel();
|
||||
}
|
||||
});
|
||||
|
||||
// Analyse le contenu du dossier
|
||||
btnEvaluerLesFichiers.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
try {
|
||||
evaluerLesFichiersEtudiants();
|
||||
} catch (ParserConfigurationException | SAXException | IOException | CloneNotSupportedException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private void evaluerLesFichiersEtudiants() throws ParserConfigurationException, SAXException, IOException, CloneNotSupportedException {
|
||||
|
||||
commandes.analyse=true;
|
||||
progressBar.setVisible(true);
|
||||
|
||||
if(chckbxfichiersEtudaints.isSelected()) commandes.fichierStudentMoodle=true;
|
||||
if(chckbxZipfeedback.isSelected()) commandes.zipfeedback=true;
|
||||
if(chckbxnoFeedback.isSelected()) commandes.sansFeeback=true;
|
||||
if(chckbxNoNote.isSelected()) commandes.noNote=true;
|
||||
if(chckCSVNotes.isSelected()) commandes.ecritNoteCSV=true;
|
||||
|
||||
Run a = new Run(commandes.path,commandes.Profil, commandes.fichierStudentMoodle);
|
||||
|
||||
//** Nouveau node qui permet de convertir le fichier contenant la liste des étudiants en node.
|
||||
node nodeCSV = null;
|
||||
|
||||
//*****************************************
|
||||
//** Nombre de fichier writer à analyser **
|
||||
//*****************************************
|
||||
int nbFichierWriter = a.getLectDossiers().getEC().getListeContentWriter().size();
|
||||
meptl.analyseVerifieHistoriqueLesFichiersEtudiantsEtExportNoteCSV();
|
||||
txtpnmessages.setText(commandes.message.toString());
|
||||
progressBar.setVisible(false);
|
||||
|
||||
|
||||
|
||||
//***************************************
|
||||
//** -verif ou -use file.xml -verifcsv **
|
||||
//***************************************
|
||||
node verif = new node();
|
||||
if(commandes.verifHisto || commandes.verifHisto2) {
|
||||
node verification = new node();
|
||||
verification.setNomElt("verification");
|
||||
verification.getAttributs().put("nombre_fichier", String.valueOf(a.getLectDossiers().getEC().getListeFichierodt().size()));
|
||||
for(int i = 0 ; i < nbFichierWriter ; i++) {
|
||||
node nod = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i));
|
||||
node nodStudent = meptl.LectureFichierEtudiantPourVerification(nod,a,i);
|
||||
verification.getNodes().add(nodStudent);
|
||||
}
|
||||
//a.ecritureNodeEnXML(verification, "VerificationHistorique","",false); //écriture du node de l'étudiant
|
||||
verif = meptl.verificationHistorique(verification, a); // vérification des correspondances entre les fichiers
|
||||
|
||||
//********************************
|
||||
//** Ecriture du node verif.xml **
|
||||
//********************************
|
||||
Run.ecritureNodeEnXML(verif, "Verif",commandes.pathDestination,commandes.fourniDossierDestination, "Verif"); //écriture du node de vérification
|
||||
if(!commandes.analyse) {
|
||||
//** bye bye analyseWriter
|
||||
commandes.clotureApplication();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
System.getProperty("file.encoding","UTF-8");
|
||||
|
||||
//*********************************************************
|
||||
//** Node contenant l'ensemble des analyses des étudiants **
|
||||
//*********************************************************
|
||||
node ensembleanalyse = new node();
|
||||
ensembleanalyse.setNomElt("analyses");
|
||||
|
||||
|
||||
StringBuilder textMessage = new StringBuilder();
|
||||
|
||||
//*****************************************************
|
||||
//** Parcours l'ensemble des fichiers des étudiants ***
|
||||
//*****************************************************
|
||||
for(int i = 0 ; i < nbFichierWriter ; i++) {
|
||||
|
||||
//** Ne prends pas en compte le dossier destination créé par la commande -dest
|
||||
//** Si pas d'analyse alors le nom doit contenir le caractère $ dans le nom du dossier.
|
||||
if(commandes.fourniDossierDestination)if(a.getLectDossiers().getEC().getListeNomDossier().get(i).equals(commandes.pathDestination)) continue;
|
||||
|
||||
//***********************************************************
|
||||
//** Lecture et transformation en node du fichier étudiant **
|
||||
//***********************************************************
|
||||
node nod = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i));
|
||||
node nodStudent = meptl.LectureFichierEtudiantSousFormeDeNode(nod,a,i);
|
||||
//a.ecritureNodeEnXML(nodStudent, a.getLectDossiers().getEC().getListeNomDossier().get(i),"",false,""); //écriture du node de l'étudiant
|
||||
|
||||
//**********************************
|
||||
//** Analyse des fichiers student **
|
||||
//**********************************
|
||||
if(commandes.analyse||commandes.ecritNodeAnalyse) {
|
||||
|
||||
// Run.ecritureNodeEnXML(nodStudent, "fichier student","",false,""); //écriture du node nodStudent de l'étudiant
|
||||
node ana = meptl.analyse(nodStudent, commandes.sujet, i, a);
|
||||
|
||||
//**************************************************
|
||||
//** Ecriture des fichiers d'analyse des students **
|
||||
//**************************************************
|
||||
if(commandes.ecritNodeAnalyse) {
|
||||
Run.ecritureNodeEnXML(ana, "nodana"+ana.retourneFirstEnfantsByName("ouverture").getAttributs().get("dossier"),"",false,""); //écriture du node analyse de l'étudiant
|
||||
}
|
||||
|
||||
//****************************
|
||||
//** Création des feedbacks **
|
||||
//****************************
|
||||
if(!commandes.sansFeeback&&!commandes.ecritNodeAnalyse) {
|
||||
if(!commandes.zipfeedback) {
|
||||
//feedback(ana, verif); //classique directement dans le répertoire
|
||||
feedbacks.feedback(ana,verif, false);
|
||||
}
|
||||
if(commandes.zipfeedback) { // Dans une archive pour Moodle
|
||||
try {
|
||||
a.AddStreamToZip(feedbacks.feedback(ana, verif, true), meptl.retourneLeNomDuFeedback(a.getLectDossiers().getEC().getListeNomFichierFeedBack().get(i),ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
|
||||
} catch (ZipException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//********************************************************************************
|
||||
//** Ajoute au node ensembleanalyse lorsque -csv file.csv ou -verifcsv file.scv **
|
||||
//********************************************************************************
|
||||
if(commandes.ecritNoteCSV) ensembleanalyse.addNode(ana);
|
||||
|
||||
//*********************************************************
|
||||
//** Message dans la console sur l'analyse de l'étudiant **
|
||||
//*********************************************************
|
||||
textMessage.append(meptl.messageSystem(ana).toString());
|
||||
textAreaMessage.setText(textMessage.toString());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(commandes.sujet!=null) {
|
||||
//*****************************************************
|
||||
//** Exportation au format CSV si -csv ou -verifcsv **
|
||||
//*****************************************************
|
||||
if(commandes.ecritNoteCSV && !commandes.fourniCSV) {
|
||||
if(!commandes.verifHisto2) meptl.ecritureCSV(ensembleanalyse);
|
||||
if(commandes.verifHisto2) meptl.ecritureCSV(ensembleanalyse,verif,a,commandes.sujet.retourneFirstEnfantsByName("setting"));
|
||||
//a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
|
||||
}
|
||||
|
||||
//***********************************************************************
|
||||
//** Exportation au format CSV si -csv file.csv ou -verifcsv file.csv **
|
||||
//***********************************************************************
|
||||
if(commandes.ecritNoteCSV && commandes.fourniCSV) {
|
||||
meptl.ecritureCSV(ensembleanalyse,verif,a,nodeCSV, commandes.sujet.retourneFirstEnfantsByName("setting"));
|
||||
//a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
|
||||
}
|
||||
|
||||
//**************************************
|
||||
//** Mise à jour du fichier d'analyse **
|
||||
//**************************************
|
||||
// if(commandes.MAJFichierAnalyse||commandes.MAJnameAnalysisFile) {
|
||||
// verificationFichierAnalyse.MiseAJourFichierAnalyse();
|
||||
// verificationFichierAnalyse.messagMiseAJourFichierAnalyseAprèsAnalyse();
|
||||
// Run a = new Run(commandes.path,commandes.Profil, commandes.fichierStudentMoodle);
|
||||
//
|
||||
// //** Nouveau node qui permet de convertir le fichier contenant la liste des étudiants en node.
|
||||
// node nodeCSV = null;
|
||||
//
|
||||
// //*****************************************
|
||||
// //** Nombre de fichier writer à analyser **
|
||||
// //*****************************************
|
||||
// int nbFichierWriter = a.getLectDossiers().getEC().getListeContentWriter().size();
|
||||
//
|
||||
//
|
||||
//
|
||||
// //***************************************
|
||||
// //** -verif ou -use file.xml -verifcsv **
|
||||
// //***************************************
|
||||
// node verif = new node();
|
||||
// if(commandes.verifHisto || commandes.verifHisto2) {
|
||||
// node verification = new node();
|
||||
// verification.setNomElt("verification");
|
||||
// verification.getAttributs().put("nombre_fichier", String.valueOf(a.getLectDossiers().getEC().getListeFichierodt().size()));
|
||||
// for(int i = 0 ; i < nbFichierWriter ; i++) {
|
||||
// node nod = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i));
|
||||
// node nodStudent = meptl.LectureFichierEtudiantPourVerification(nod,a,i);
|
||||
// verification.getNodes().add(nodStudent);
|
||||
// }
|
||||
}
|
||||
// //a.ecritureNodeEnXML(verification, "VerificationHistorique","",false); //écriture du node de l'étudiant
|
||||
// verif = meptl.verificationHistorique(verification, a); // vérification des correspondances entre les fichiers
|
||||
//
|
||||
// //********************************
|
||||
// //** Ecriture du node verif.xml **
|
||||
// //********************************
|
||||
// Run.ecritureNodeEnXML(verif, "Verif",commandes.pathDestination,commandes.fourniDossierDestination, "Verif"); //écriture du node de vérification
|
||||
// if(!commandes.analyse) {
|
||||
// //** bye bye analyseWriter
|
||||
// commandes.clotureApplication();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// System.getProperty("file.encoding","UTF-8");
|
||||
//
|
||||
// //*********************************************************
|
||||
// //** Node contenant l'ensemble des analyses des étudiants **
|
||||
// //*********************************************************
|
||||
// node ensembleanalyse = new node();
|
||||
// ensembleanalyse.setNomElt("analyses");
|
||||
//
|
||||
//
|
||||
// StringBuilder textMessage = new StringBuilder();
|
||||
//
|
||||
// //*****************************************************
|
||||
// //** Parcours l'ensemble des fichiers des étudiants ***
|
||||
// //*****************************************************
|
||||
// for(int i = 0 ; i < nbFichierWriter ; i++) {
|
||||
//
|
||||
// //** Ne prends pas en compte le dossier destination créé par la commande -dest
|
||||
// //** Si pas d'analyse alors le nom doit contenir le caractère $ dans le nom du dossier.
|
||||
// if(commandes.fourniDossierDestination)if(a.getLectDossiers().getEC().getListeNomDossier().get(i).equals(commandes.pathDestination)) continue;
|
||||
//
|
||||
// //***********************************************************
|
||||
// //** Lecture et transformation en node du fichier étudiant **
|
||||
// //***********************************************************
|
||||
// node nod = Run.XMLContent(a.getLectDossiers().getEC().getListeContentWriter().get(i));
|
||||
// node nodStudent = meptl.LectureFichierEtudiantSousFormeDeNode(nod,a,i);
|
||||
// //a.ecritureNodeEnXML(nodStudent, a.getLectDossiers().getEC().getListeNomDossier().get(i),"",false,""); //écriture du node de l'étudiant
|
||||
//
|
||||
// //**********************************
|
||||
// //** Analyse des fichiers student **
|
||||
// //**********************************
|
||||
// if(commandes.analyse||commandes.ecritNodeAnalyse) {
|
||||
//
|
||||
//// Run.ecritureNodeEnXML(nodStudent, "fichier student","",false,""); //écriture du node nodStudent de l'étudiant
|
||||
// node ana = meptl.analyse(nodStudent, commandes.sujet, i, a);
|
||||
//
|
||||
// //**************************************************
|
||||
// //** Ecriture des fichiers d'analyse des students **
|
||||
// //**************************************************
|
||||
// if(commandes.ecritNodeAnalyse) {
|
||||
// Run.ecritureNodeEnXML(ana, "nodana"+ana.retourneFirstEnfantsByName("ouverture").getAttributs().get("dossier"),"",false,""); //écriture du node analyse de l'étudiant
|
||||
// }
|
||||
//
|
||||
// //****************************
|
||||
// //** Création des feedbacks **
|
||||
// //****************************
|
||||
// if(!commandes.sansFeeback&&!commandes.ecritNodeAnalyse) {
|
||||
// if(!commandes.zipfeedback) {
|
||||
// //feedback(ana, verif); //classique directement dans le répertoire
|
||||
// feedbacks.feedback(ana,verif, false);
|
||||
// }
|
||||
// if(commandes.zipfeedback) { // Dans une archive pour Moodle
|
||||
// try {
|
||||
// a.AddStreamToZip(feedbacks.feedback(ana, verif, true), meptl.retourneLeNomDuFeedback(a.getLectDossiers().getEC().getListeNomFichierFeedBack().get(i),ana, verif),commandes.analyse_size,commandes.analyse_nameZip);
|
||||
// } catch (ZipException e) {
|
||||
// e.printStackTrace();
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// //********************************************************************************
|
||||
// //** Ajoute au node ensembleanalyse lorsque -csv file.csv ou -verifcsv file.scv **
|
||||
// //********************************************************************************
|
||||
// if(commandes.ecritNoteCSV) ensembleanalyse.addNode(ana);
|
||||
//
|
||||
// //*********************************************************
|
||||
// //** Message dans la console sur l'analyse de l'étudiant **
|
||||
// //*********************************************************
|
||||
// textMessage.append(meptl.messageSystem(ana).toString());
|
||||
// textAreaMessage.setText(textMessage.toString());
|
||||
//
|
||||
// }
|
||||
// }
|
||||
|
||||
// if(commandes.sujet!=null) {
|
||||
// //*****************************************************
|
||||
// //** Exportation au format CSV si -csv ou -verifcsv **
|
||||
// //*****************************************************
|
||||
// if(commandes.ecritNoteCSV && !commandes.fourniCSV) {
|
||||
// if(!commandes.verifHisto2) meptl.ecritureCSV(ensembleanalyse);
|
||||
// if(commandes.verifHisto2) meptl.ecritureCSV(ensembleanalyse,verif,a,commandes.sujet.retourneFirstEnfantsByName("setting"));
|
||||
// //a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
|
||||
// }
|
||||
//
|
||||
// //***********************************************************************
|
||||
// //** Exportation au format CSV si -csv file.csv ou -verifcsv file.csv **
|
||||
// //***********************************************************************
|
||||
// if(commandes.ecritNoteCSV && commandes.fourniCSV) {
|
||||
// meptl.ecritureCSV(ensembleanalyse,verif,a,nodeCSV, commandes.sujet.retourneFirstEnfantsByName("setting"));
|
||||
// //a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
|
||||
// }
|
||||
//
|
||||
// //**************************************
|
||||
// //** Mise à jour du fichier d'analyse **
|
||||
// //**************************************
|
||||
//// if(commandes.MAJFichierAnalyse||commandes.MAJnameAnalysisFile) {
|
||||
//// verificationFichierAnalyse.MiseAJourFichierAnalyse();
|
||||
//// verificationFichierAnalyse.messagMiseAJourFichierAnalyseAprèsAnalyse();
|
||||
//// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
@ -118,13 +118,8 @@ public class mainApp extends JFrame implements ActionListener{
|
||||
}
|
||||
|
||||
if(e.getSource()==actCharge) {
|
||||
if(!commandes.console) System.out.println( "Début chargement du fichier d'analyse." );
|
||||
new filechooserXML();
|
||||
|
||||
// tree.setModel(utils.getTree().getModel()) ;
|
||||
// textNodeSelect.setText("Le chargement de la nouvelle structure est réussi.");
|
||||
// create.this.MAJToolBar();
|
||||
|
||||
if(!commandes.console) System.out.println( "Début chargement du fichier d'analyse." );
|
||||
new filechooserXML();
|
||||
new evaluate();
|
||||
frmEvalwriter.dispose();
|
||||
}
|
||||
|
71
src/app/progress.java
Normal file
71
src/app/progress.java
Normal file
@ -0,0 +1,71 @@
|
||||
package app;
|
||||
|
||||
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JProgressBar;
|
||||
|
||||
|
||||
public class progress extends JFrame {
|
||||
public progress() {
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
// create a frame
|
||||
static JFrame f;
|
||||
|
||||
static JProgressBar b;
|
||||
|
||||
public static void main()
|
||||
{
|
||||
|
||||
// create a frame
|
||||
f = new JFrame("ProgressBar demo");
|
||||
|
||||
// create a panel
|
||||
JPanel p = new JPanel();
|
||||
|
||||
// create a progressbar
|
||||
b = new JProgressBar();
|
||||
|
||||
// set initial value
|
||||
b.setValue(0);
|
||||
|
||||
b.setStringPainted(true);
|
||||
|
||||
// add progressbar
|
||||
p.add(b);
|
||||
|
||||
// add panel
|
||||
f.getContentPane().add(p);
|
||||
|
||||
// set the size of the frame
|
||||
f.setSize(500, 500);
|
||||
f.setVisible(true);
|
||||
|
||||
fill();
|
||||
}
|
||||
|
||||
// function to increase progress
|
||||
public static void fill()
|
||||
{
|
||||
int i = 0;
|
||||
try {
|
||||
while (i <= 100) {
|
||||
// fill the menu bar
|
||||
b.setValue(i + 10);
|
||||
|
||||
// delay the thread
|
||||
Thread.sleep(1000);
|
||||
i += 20;
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user