diff --git a/bin/.gitignore b/bin/.gitignore index cc3666c..495731b 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1,3 +1,7 @@ /resources/ /app/ /MEPTL/ +/fichierAnalyse.png +/fichier_analyse.svg +/open.svg +/open2.png diff --git a/bin/MEPTL/commandes.class b/bin/MEPTL/commandes.class index 4b7976b..c392758 100644 Binary files a/bin/MEPTL/commandes.class and b/bin/MEPTL/commandes.class differ diff --git a/bin/MEPTL/meptl.class b/bin/MEPTL/meptl.class index b364931..bed4b22 100644 Binary files a/bin/MEPTL/meptl.class and b/bin/MEPTL/meptl.class differ diff --git a/bin/MEPTL/verificationFichierAnalyse.class b/bin/MEPTL/verificationFichierAnalyse.class index 1e2afbc..099e564 100644 Binary files a/bin/MEPTL/verificationFichierAnalyse.class and b/bin/MEPTL/verificationFichierAnalyse.class differ diff --git a/bin/app/evaluate$1.class b/bin/app/evaluate$1.class index a15f5ab..1bfc480 100644 Binary files a/bin/app/evaluate$1.class and b/bin/app/evaluate$1.class differ diff --git a/bin/app/evaluate$2.class b/bin/app/evaluate$2.class index ab19070..672d05e 100644 Binary files a/bin/app/evaluate$2.class and b/bin/app/evaluate$2.class differ diff --git a/bin/app/evaluate.class b/bin/app/evaluate.class index 72b4a84..7127b2f 100644 Binary files a/bin/app/evaluate.class and b/bin/app/evaluate.class differ diff --git a/bin/app/mainApp.class b/bin/app/mainApp.class index 9d2f758..69b9326 100644 Binary files a/bin/app/mainApp.class and b/bin/app/mainApp.class differ diff --git a/src/MEPTL/commandes.java b/src/MEPTL/commandes.java index dcf48d7..68837b3 100644 --- a/src/MEPTL/commandes.java +++ b/src/MEPTL/commandes.java @@ -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(); /** * diff --git a/src/MEPTL/meptl.java b/src/MEPTL/meptl.java index 5b334c7..de7fac3 100644 --- a/src/MEPTL/meptl.java +++ b/src/MEPTL/meptl.java @@ -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("*************************"); } /** diff --git a/src/MEPTL/verificationFichierAnalyse.java b/src/MEPTL/verificationFichierAnalyse.java index 7bfa506..c26b45b 100644 --- a/src/MEPTL/verificationFichierAnalyse.java +++ b/src/MEPTL/verificationFichierAnalyse.java @@ -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(); } diff --git a/src/app/evaluate.java b/src/app/evaluate.java index cbbce4a..d27213e 100644 --- a/src/app/evaluate.java +++ b/src/app/evaluate.java @@ -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,8 +55,13 @@ 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); @@ -153,6 +122,9 @@ public class evaluate extends JFrame { chckbxNoNote = new JCheckBox("Pas de note dans les feedbacks"); 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(); @@ -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(); +//// } +// } diff --git a/src/app/mainApp.java b/src/app/mainApp.java index cfbff36..cd5c582 100644 --- a/src/app/mainApp.java +++ b/src/app/mainApp.java @@ -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(); } diff --git a/src/app/progress.java b/src/app/progress.java new file mode 100644 index 0000000..679af4b --- /dev/null +++ b/src/app/progress.java @@ -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) { + } + } + +}