diff --git a/bin/.gitignore b/bin/.gitignore index 5d16125..441f14e 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -174,3 +174,6 @@ /zipstudent.png /zipstudent.svg /zipstudentmini.png +/resources/ +/defautBaseEvaluation.png +/defautBaseEvaluation.svg diff --git a/bin/MEPTL/commandes.class b/bin/MEPTL/commandes.class index 340d413..c44b994 100644 Binary files a/bin/MEPTL/commandes.class and b/bin/MEPTL/commandes.class differ diff --git a/bin/MEPTL/verificationFichierAnalyse.class b/bin/MEPTL/verificationFichierAnalyse.class deleted file mode 100644 index d1add2a..0000000 Binary files a/bin/MEPTL/verificationFichierAnalyse.class and /dev/null differ diff --git a/bin/action/actNewFichierAnalyse.class b/bin/action/actNewFichierAnalyse.class index ec95e79..f30cc1e 100644 Binary files a/bin/action/actNewFichierAnalyse.class and b/bin/action/actNewFichierAnalyse.class differ diff --git a/bin/action/actPathBaseEvaluations.class b/bin/action/actPathBaseEvaluations.class index 5ff56e1..c6c64fa 100644 Binary files a/bin/action/actPathBaseEvaluations.class and b/bin/action/actPathBaseEvaluations.class differ diff --git a/bin/action/actSaveAs.class b/bin/action/actSaveAs.class index 650c9fb..01114e1 100644 Binary files a/bin/action/actSaveAs.class and b/bin/action/actSaveAs.class differ diff --git a/bin/fenetres/ChargeFichierXML.class b/bin/fenetres/ChargeFichierXML.class index 35eaf0f..41f7bc0 100644 Binary files a/bin/fenetres/ChargeFichierXML.class and b/bin/fenetres/ChargeFichierXML.class differ diff --git a/bin/fenetres/evaluate$1.class b/bin/fenetres/evaluate$1.class index 45eb521..d288abc 100644 Binary files a/bin/fenetres/evaluate$1.class and b/bin/fenetres/evaluate$1.class differ diff --git a/bin/fenetres/evaluate$10.class b/bin/fenetres/evaluate$10.class index 2b37880..75d6056 100644 Binary files a/bin/fenetres/evaluate$10.class and b/bin/fenetres/evaluate$10.class differ diff --git a/bin/fenetres/evaluate$11.class b/bin/fenetres/evaluate$11.class index 01f0417..5e7697c 100644 Binary files a/bin/fenetres/evaluate$11.class and b/bin/fenetres/evaluate$11.class differ diff --git a/bin/fenetres/evaluate$12.class b/bin/fenetres/evaluate$12.class index 7247778..d8b5d4c 100644 Binary files a/bin/fenetres/evaluate$12.class and b/bin/fenetres/evaluate$12.class differ diff --git a/bin/fenetres/evaluate$13.class b/bin/fenetres/evaluate$13.class index 4f3e3df..9673106 100644 Binary files a/bin/fenetres/evaluate$13.class and b/bin/fenetres/evaluate$13.class differ diff --git a/bin/fenetres/evaluate$14.class b/bin/fenetres/evaluate$14.class index 2519a90..105fa0c 100644 Binary files a/bin/fenetres/evaluate$14.class and b/bin/fenetres/evaluate$14.class differ diff --git a/bin/fenetres/evaluate$15.class b/bin/fenetres/evaluate$15.class index 3eb6afc..48394c8 100644 Binary files a/bin/fenetres/evaluate$15.class and b/bin/fenetres/evaluate$15.class differ diff --git a/bin/fenetres/evaluate$16.class b/bin/fenetres/evaluate$16.class index 5c0b424..f134b03 100644 Binary files a/bin/fenetres/evaluate$16.class and b/bin/fenetres/evaluate$16.class differ diff --git a/bin/fenetres/evaluate$17.class b/bin/fenetres/evaluate$17.class index e04b4c5..ad33a8f 100644 Binary files a/bin/fenetres/evaluate$17.class and b/bin/fenetres/evaluate$17.class differ diff --git a/bin/fenetres/evaluate$18.class b/bin/fenetres/evaluate$18.class index 40aabc0..71424a9 100644 Binary files a/bin/fenetres/evaluate$18.class and b/bin/fenetres/evaluate$18.class differ diff --git a/bin/fenetres/evaluate$19.class b/bin/fenetres/evaluate$19.class index 17d6269..b03fbb1 100644 Binary files a/bin/fenetres/evaluate$19.class and b/bin/fenetres/evaluate$19.class differ diff --git a/bin/fenetres/evaluate$2.class b/bin/fenetres/evaluate$2.class index 5819214..793e08c 100644 Binary files a/bin/fenetres/evaluate$2.class and b/bin/fenetres/evaluate$2.class differ diff --git a/bin/fenetres/evaluate$20.class b/bin/fenetres/evaluate$20.class index 4b49b0d..a106b99 100644 Binary files a/bin/fenetres/evaluate$20.class and b/bin/fenetres/evaluate$20.class differ diff --git a/bin/fenetres/evaluate$21.class b/bin/fenetres/evaluate$21.class index b016d53..eedd23d 100644 Binary files a/bin/fenetres/evaluate$21.class and b/bin/fenetres/evaluate$21.class differ diff --git a/bin/fenetres/evaluate$22.class b/bin/fenetres/evaluate$22.class index 45c7ff3..a486cb3 100644 Binary files a/bin/fenetres/evaluate$22.class and b/bin/fenetres/evaluate$22.class differ diff --git a/bin/fenetres/evaluate$23.class b/bin/fenetres/evaluate$23.class index 7ce08ea..e1e7902 100644 Binary files a/bin/fenetres/evaluate$23.class and b/bin/fenetres/evaluate$23.class differ diff --git a/bin/fenetres/evaluate$24.class b/bin/fenetres/evaluate$24.class index 50fd8d9..ce5d04e 100644 Binary files a/bin/fenetres/evaluate$24.class and b/bin/fenetres/evaluate$24.class differ diff --git a/bin/fenetres/evaluate$25.class b/bin/fenetres/evaluate$25.class index 6d59825..cf5671b 100644 Binary files a/bin/fenetres/evaluate$25.class and b/bin/fenetres/evaluate$25.class differ diff --git a/bin/fenetres/evaluate$26.class b/bin/fenetres/evaluate$26.class index 97cabac..5a529f1 100644 Binary files a/bin/fenetres/evaluate$26.class and b/bin/fenetres/evaluate$26.class differ diff --git a/bin/fenetres/evaluate$27.class b/bin/fenetres/evaluate$27.class index 4937f35..1627299 100644 Binary files a/bin/fenetres/evaluate$27.class and b/bin/fenetres/evaluate$27.class differ diff --git a/bin/fenetres/evaluate$28.class b/bin/fenetres/evaluate$28.class index ba1039b..02c39c5 100644 Binary files a/bin/fenetres/evaluate$28.class and b/bin/fenetres/evaluate$28.class differ diff --git a/bin/fenetres/evaluate$29.class b/bin/fenetres/evaluate$29.class index bc9c87f..91bbbae 100644 Binary files a/bin/fenetres/evaluate$29.class and b/bin/fenetres/evaluate$29.class differ diff --git a/bin/fenetres/evaluate$3.class b/bin/fenetres/evaluate$3.class index c4e0881..4cd1af4 100644 Binary files a/bin/fenetres/evaluate$3.class and b/bin/fenetres/evaluate$3.class differ diff --git a/bin/fenetres/evaluate$30.class b/bin/fenetres/evaluate$30.class index 4b95e80..028b2da 100644 Binary files a/bin/fenetres/evaluate$30.class and b/bin/fenetres/evaluate$30.class differ diff --git a/bin/fenetres/evaluate$4.class b/bin/fenetres/evaluate$4.class index 3d01e4f..516b563 100644 Binary files a/bin/fenetres/evaluate$4.class and b/bin/fenetres/evaluate$4.class differ diff --git a/bin/fenetres/evaluate$5.class b/bin/fenetres/evaluate$5.class index 2169641..9c51ef7 100644 Binary files a/bin/fenetres/evaluate$5.class and b/bin/fenetres/evaluate$5.class differ diff --git a/bin/fenetres/evaluate$6.class b/bin/fenetres/evaluate$6.class index 1d7f2b7..b70de1f 100644 Binary files a/bin/fenetres/evaluate$6.class and b/bin/fenetres/evaluate$6.class differ diff --git a/bin/fenetres/evaluate$7.class b/bin/fenetres/evaluate$7.class index c6876f5..2102100 100644 Binary files a/bin/fenetres/evaluate$7.class and b/bin/fenetres/evaluate$7.class differ diff --git a/bin/fenetres/evaluate$8.class b/bin/fenetres/evaluate$8.class index bea65ce..02210e7 100644 Binary files a/bin/fenetres/evaluate$8.class and b/bin/fenetres/evaluate$8.class differ diff --git a/bin/fenetres/evaluate$9.class b/bin/fenetres/evaluate$9.class index 5664d9b..9f5eaa7 100644 Binary files a/bin/fenetres/evaluate$9.class and b/bin/fenetres/evaluate$9.class differ diff --git a/bin/fenetres/evaluate.class b/bin/fenetres/evaluate.class index 76a5164..88a0b2d 100644 Binary files a/bin/fenetres/evaluate.class and b/bin/fenetres/evaluate.class differ diff --git a/bin/fenetres/mainApp$1.class b/bin/fenetres/mainApp$1.class index 388531e..760ba17 100644 Binary files a/bin/fenetres/mainApp$1.class and b/bin/fenetres/mainApp$1.class differ diff --git a/bin/fenetres/mainApp$2.class b/bin/fenetres/mainApp$2.class index 7c43a49..9c87a50 100644 Binary files a/bin/fenetres/mainApp$2.class and b/bin/fenetres/mainApp$2.class differ diff --git a/bin/fenetres/mainApp.class b/bin/fenetres/mainApp.class index d0ef675..e965593 100644 Binary files a/bin/fenetres/mainApp.class and b/bin/fenetres/mainApp.class differ diff --git a/icons/defautBaseEvaluation.png b/icons/defautBaseEvaluation.png new file mode 100644 index 0000000..34c5aa9 Binary files /dev/null and b/icons/defautBaseEvaluation.png differ diff --git a/icons/defautBaseEvaluation.svg b/icons/defautBaseEvaluation.svg new file mode 100644 index 0000000..8cc8780 --- /dev/null +++ b/icons/defautBaseEvaluation.svg @@ -0,0 +1,231 @@ + + + +XLSX diff --git a/src/MEPTL/commandes.java b/src/MEPTL/commandes.java index fb6f7e2..0c6e57c 100644 --- a/src/MEPTL/commandes.java +++ b/src/MEPTL/commandes.java @@ -136,8 +136,8 @@ public class commandes { */ public static String Titre = "analyseWriter"; /** - * Chemin absolue vers le fichier d'analyse
- * Le chemain contient le nom du fichier. + * Chemin absolu vers le fichier d'analyse
+ * Le chemin contient le nom du fichier. */ public static String PathFilenameAnalysis=""; /** @@ -207,7 +207,26 @@ public class commandes { message = new StringBuilder(); } - + public static void initialiseParametresEvaluation() { + ecritCode = false; + ecritSujet = false; + ecritNodeAnalyse = false; + ecritNoteCSV = false; + writefiles = false; + calculLeHashDuFichier = false; + sansFeeback = false; + verifHisto = false; + verifHisto2 = false; + fourniCSV = false; + badCommand = false; + noNote =false; + noDetail = false; + noLogo =false; + newLogo=false; + licence = false; + zipfeedback = false; + fichierStudentMoodle = false; + } /** diff --git a/src/MEPTL/verificationFichierAnalyse.java b/src/MEPTL/verificationFichierAnalyse_node_commandesSujet.java similarity index 98% rename from src/MEPTL/verificationFichierAnalyse.java rename to src/MEPTL/verificationFichierAnalyse_node_commandesSujet.java index 5fd057e..78b14e7 100644 --- a/src/MEPTL/verificationFichierAnalyse.java +++ b/src/MEPTL/verificationFichierAnalyse_node_commandesSujet.java @@ -19,13 +19,13 @@ import evaluer.evaluation; * Vérification du fichier d'analyse. * */ -public class verificationFichierAnalyse { +public class verificationFichierAnalyse_node_commandesSujet { public static boolean erreur = false; public static StringBuilder messageErreur = new StringBuilder(); static node verifSujet = new node(); - public verificationFichierAnalyse() throws CloneNotSupportedException{ + public verificationFichierAnalyse_node_commandesSujet() throws CloneNotSupportedException{ erreur=false; //réïnitialise la variable erreur. diff --git a/src/action/actNewFichierAnalyse.java b/src/action/actNewFichierAnalyse.java index d018730..36e5799 100644 --- a/src/action/actNewFichierAnalyse.java +++ b/src/action/actNewFichierAnalyse.java @@ -27,7 +27,7 @@ import org.xml.sax.SAXException; import MEPTL.commandes; import MEPTL.ecritureSujet; import MEPTL.meptl; -import MEPTL.verificationFichierAnalyse; +import MEPTL.verificationFichierAnalyse_node_commandesSujet; import cXML.Run; import cXML.node; import evaluer.evaluation; @@ -119,7 +119,7 @@ public class actNewFichierAnalyse extends AbstractAction{ - new verificationFichierAnalyse(); + new verificationFichierAnalyse_node_commandesSujet(); if(commandes.fichierAnalyseValide) { diff --git a/src/action/actPathBaseEvaluations.java b/src/action/actPathBaseEvaluations.java index e789fc4..2a74699 100644 --- a/src/action/actPathBaseEvaluations.java +++ b/src/action/actPathBaseEvaluations.java @@ -22,7 +22,7 @@ public class actPathBaseEvaluations extends AbstractAction{ @Override public void actionPerformed(ActionEvent e) { - new ChargePathBaseEvaluation(false); + new ChargePathBaseEvaluation(); baseDonneesEvaluations.getInstance(); } } diff --git a/src/action/actSaveAs.java b/src/action/actSaveAs.java index a96de64..e8cc0b1 100644 --- a/src/action/actSaveAs.java +++ b/src/action/actSaveAs.java @@ -14,7 +14,7 @@ import javax.swing.ImageIcon; import javax.swing.JFileChooser; import MEPTL.commandes; -import MEPTL.verificationFichierAnalyse; +import MEPTL.verificationFichierAnalyse_node_commandesSujet; import cXML.Run; public class actSaveAs extends AbstractAction{ @@ -50,7 +50,7 @@ public class actSaveAs extends AbstractAction{ File fileToSave = fileChooser.getSelectedFile(); try { - verificationFichierAnalyse.MiseAJourHashNomFichierAnalyse(fileToSave.getName()); + verificationFichierAnalyse_node_commandesSujet.MiseAJourHashNomFichierAnalyse(fileToSave.getName()); //Mise à jour de la date d'enregistrement du fichier d'analyse try { commandes.sujet.getAttributs().put("date", calcul.formatDateWriter.dateTodayLibreOffice()); diff --git a/src/action/actSaveFileAnalysis.java b/src/action/actSaveFileAnalysis.java index 716d36a..e008750 100644 --- a/src/action/actSaveFileAnalysis.java +++ b/src/action/actSaveFileAnalysis.java @@ -12,7 +12,7 @@ import javax.swing.ImageIcon; import javax.swing.JOptionPane; import MEPTL.commandes; -import MEPTL.verificationFichierAnalyse; +import MEPTL.verificationFichierAnalyse_node_commandesSujet; import cXML.Run; public class actSaveFileAnalysis extends AbstractAction{ @@ -46,7 +46,7 @@ public class actSaveFileAnalysis extends AbstractAction{ if(input==0) { try { - verificationFichierAnalyse.MiseAJourHashNomFichierAnalyse(commandes.nameSujet); + verificationFichierAnalyse_node_commandesSujet.MiseAJourHashNomFichierAnalyse(commandes.nameSujet); //Mise à jour de la date d'enregistrement du fichier d'analyse try { commandes.sujet.getAttributs().put("date", calcul.formatDateWriter.dateTodayLibreOffice()); diff --git a/src/baseEvaluations/chargeEvaluationSelected.java b/src/baseEvaluations/chargeEvaluationSelected.java index d9a43e4..a005c69 100644 --- a/src/baseEvaluations/chargeEvaluationSelected.java +++ b/src/baseEvaluations/chargeEvaluationSelected.java @@ -15,7 +15,7 @@ import javax.swing.JOptionPane; import MEPTL.commandes; import MEPTL.meptl; -import MEPTL.verificationFichierAnalyse; +import MEPTL.verificationFichierAnalyse_node_commandesSujet; import cXML.Run; import cXML.node; import fenetres.ChargeFichierXML; @@ -194,7 +194,7 @@ public class chargeEvaluationSelected { // Rechercher des erreurs dans le fichier d'analyse System.out.println( "Vérification du fichier d'analyse" ); - new verificationFichierAnalyse(); + new verificationFichierAnalyse_node_commandesSujet(); } } catch (UnsupportedEncodingException e1) { diff --git a/src/baseEvaluations/creerNouvelleEvaluation.java b/src/baseEvaluations/creerNouvelleEvaluation.java index 686aa95..2265278 100644 --- a/src/baseEvaluations/creerNouvelleEvaluation.java +++ b/src/baseEvaluations/creerNouvelleEvaluation.java @@ -25,7 +25,6 @@ public class creerNouvelleEvaluation { public creerNouvelleEvaluation(node evaluation, String name, boolean majBase) { this.majBase = majBase; commandes.evaluationChargeEnMemoire = nouvelleEvaluation(evaluation, name); -// if(!majBase) commandes.evaluationChargeEnMemoire = evaluation; } @@ -38,8 +37,13 @@ public class creerNouvelleEvaluation { Date aujourdhui = new Date(); try { if(!majBase) { + //nouvelle évaluation evaluation.getAttributs().put("date", calcul.formatDateWriter.DateLibreOffice(aujourdhui)); + evaluation.getAttributs().put("dateModification", calcul.formatDateWriter.DateLibreOffice(aujourdhui)); + commandes.initialiseParametresSettingProprietes(); + commandes.initialiseParametresEvaluation(); }else { + //Mise à jour evaluation.getAttributs().put("dateModification", calcul.formatDateWriter.DateLibreOffice(aujourdhui)); } } catch (ParseException e) { diff --git a/src/baseEvaluations/ecritureBaseEvaluation.java b/src/baseEvaluations/ecritureBaseEvaluation.java index 2f92b59..1e61f1b 100644 --- a/src/baseEvaluations/ecritureBaseEvaluation.java +++ b/src/baseEvaluations/ecritureBaseEvaluation.java @@ -37,7 +37,12 @@ public class ecritureBaseEvaluation { } + String debut=""; + String fin=""; + String XMLBase=""; + if(file!=null) { + //Lecture de la base de données BufferedReader br; try { br = new BufferedReader( @@ -51,20 +56,27 @@ public class ecritureBaseEvaluation { String baseToString = targetString.toString().replace("\t","").replace("\r", "").replace("\n", "").replaceAll(">/{1,}<","><"); Pattern p = Pattern.compile("<\\bevaluation\\b.{1,500}\\bdate\\b=\\\""+ evaluation.getAttributs().get("date") +"\\\".*?<\\/\\bevaluation\\b>"); - Matcher m = p.matcher(baseToString.trim()); + Matcher m = p.matcher(baseToString); - String debut; - String fin; - String XMLBase=""; + if(m.find()) { - System.out.println("match start ="+ m.start()); - System.out.println("match end ="+ m.end()); - //Supprime le node évluation pour le remplacer + //Supprime le node évluation pour le remplacer par le nouveau. debut = baseToString.substring(0,m.start()); fin = baseToString.substring(m.end()); String codeXMLEvaluation = Run.ecritureNode(evaluation, 0).toString().replace("\t","").replace("\r", "").replace("\n", "").replaceAll(">/{1,}<","><"); XMLBase = debut + codeXMLEvaluation + fin; + }else { + //Ajoute une nouvelle évaluation au début de la base + p = Pattern.compile(""); + m = p.matcher(baseToString); + if(m.find()) { + debut = baseToString.substring(0,m.end()); + fin = baseToString.substring(m.end()); + String codeXMLEvaluation = Run.ecritureNode(evaluation, 0).toString().replace("\t","").replace("\r", "").replace("\n", "").replaceAll(">/{1,}<","><"); + XMLBase = debut + codeXMLEvaluation + fin; + } + } try { diff --git a/src/baseEvaluations/evaluationExist.java b/src/baseEvaluations/evaluationExist.java index de9a86c..19185cd 100644 --- a/src/baseEvaluations/evaluationExist.java +++ b/src/baseEvaluations/evaluationExist.java @@ -8,13 +8,10 @@ import MEPTL.commandes; * */ public class evaluationExist { - - public static Boolean isEvaluationExist(String date) { if(commandes.evaluationsBase.retourneFirstNodeByNameAndAttributValueExactStrict("evaluation", "date", date)!=null) { return true; } return false; - } - + } } diff --git a/src/baseEvaluations/recupeNodeBaseEvaluations.java b/src/baseEvaluations/recupeNodeBaseEvaluations.java index 8dcbc64..50c1bec 100644 --- a/src/baseEvaluations/recupeNodeBaseEvaluations.java +++ b/src/baseEvaluations/recupeNodeBaseEvaluations.java @@ -32,6 +32,8 @@ public class recupeNodeBaseEvaluations { }else { file = new File(directoryName + "/" + commandes.NameBaseEvaluations); } + + if(file!=null) { @@ -49,8 +51,7 @@ public class recupeNodeBaseEvaluations { node evaluations = new node(); evaluations = evaluations.allFirstNodesEvaluationFichierOnly(targetString.toString().replace("\t","").replace("\r", "").replace("\n", "")); - //node evaluations = new node(targetString.toString().replace("\t","").replace("\r", "").replace("\n", "")); - + if(evaluations!=null) { if(evaluations.getNodes().size()>0) { if(evaluations.getNomElt().equals("evaluations")) { @@ -91,10 +92,10 @@ public class recupeNodeBaseEvaluations { while ((line = br.readLine()) != null) { targetString.append(line); } - node evaluations = new node(); + evaluations = evaluations.allFirstNodesEvaluationFichierOnly(targetString.toString().replace("\t","").replace("\r", "").replace("\n", "")); - + if(evaluations!=null) { if(evaluations.getNodes().size()>0) { if(evaluations.getNomElt().equals("evaluations")) { @@ -105,7 +106,7 @@ public class recupeNodeBaseEvaluations { } } } - + }catch (Exception e) { JFrame frame = new JFrame(); JLabel texte = new JLabel("

La base de données ne se trouve pas dans le même dossier que celui de l'application.


" diff --git a/src/evaluer/evaluerLesFichiersEtudiants.java b/src/evaluer/evaluerLesFichiersEtudiants.java index ebe3a79..9950808 100644 --- a/src/evaluer/evaluerLesFichiersEtudiants.java +++ b/src/evaluer/evaluerLesFichiersEtudiants.java @@ -12,7 +12,7 @@ import MEPTL.VerificationHistorique; import MEPTL.commandes; import MEPTL.feedbacks; import MEPTL.meptl; -import MEPTL.verificationFichierAnalyse; +import MEPTL.verificationFichierAnalyse_node_commandesSujet; import cXML.Run; import cXML.node; import calcul.calculIntervalleBaremeABCDE; @@ -287,11 +287,11 @@ public class evaluerLesFichiersEtudiants implements Runnable{ //************************************** if(commandes.MAJFichierAnalyse||commandes.MAJnameAnalysisFile) { try { - verificationFichierAnalyse.MiseAJourFichierAnalyse(); + verificationFichierAnalyse_node_commandesSujet.MiseAJourFichierAnalyse(); } catch (CloneNotSupportedException | IOException e) { e.printStackTrace(); } - verificationFichierAnalyse.messagMiseAJourFichierAnalyseAprèsAnalyse(); + verificationFichierAnalyse_node_commandesSujet.messagMiseAJourFichierAnalyseAprèsAnalyse(); } txt.setContentType("text/html"); diff --git a/src/fenetres/ChargeFichierXML.java b/src/fenetres/ChargeFichierXML.java index 0c70983..cd7621f 100644 --- a/src/fenetres/ChargeFichierXML.java +++ b/src/fenetres/ChargeFichierXML.java @@ -19,17 +19,22 @@ import javax.swing.filechooser.FileNameExtensionFilter; import MEPTL.commandes; import MEPTL.meptl; -import MEPTL.verificationFichierAnalyse; +import MEPTL.verificationFichierAnalyse_node_commandesSujet; import cXML.node; - +/** + * Chargement d'un fichier d'analyse + * @author pabr6 + * + */ public class ChargeFichierXML extends JFileChooser { - /** - * - */ + private static final long serialVersionUID = 1L; - + /** + * Chragement d'un fichier d'analyse.
+ * Le premier node doit être le node fichier. + */ public ChargeFichierXML() { setDialogTitle("Sélectionner un fichier d'analyse"); @@ -124,7 +129,7 @@ public class ChargeFichierXML extends JFileChooser { // Rechercher des erreurs dans le fichier d'analyse System.out.println( "Vérification du fichier d'analyse" ); - new verificationFichierAnalyse(); + new verificationFichierAnalyse_node_commandesSujet(); } } catch (UnsupportedEncodingException e1) { @@ -148,11 +153,6 @@ public class ChargeFichierXML extends JFileChooser { if(!SujetLoad.getNomElt().equals("fichier")){ System.out.println("Pas de node fichier."); return false; - }else { - if(SujetLoad.getAttributs().get("progression")==null) { - System.out.println("Pas de node fichier."); - return false; - } } return true; } diff --git a/src/fenetres/ChargePathBaseEvaluation.java b/src/fenetres/ChargePathBaseEvaluation.java index cf28702..a675d40 100644 --- a/src/fenetres/ChargePathBaseEvaluation.java +++ b/src/fenetres/ChargePathBaseEvaluation.java @@ -12,7 +12,11 @@ import javax.swing.filechooser.FileNameExtensionFilter; import MEPTL.commandes; import baseEvaluations.recupeNodeBaseEvaluations; - +/** + * + * @author pabr6 + * + */ public class ChargePathBaseEvaluation extends JFileChooser { /** @@ -25,8 +29,8 @@ public class ChargePathBaseEvaluation extends JFileChooser { * * @param avecFusion : Si True ajoute les évaluations de la seconde base */ - public ChargePathBaseEvaluation(boolean avecFusion) { - this.avecFusion = avecFusion; + public ChargePathBaseEvaluation() { + setDialogTitle("Sélectionner la base de données des évaluations."); FileNameExtensionFilter filter = new FileNameExtensionFilter("Base de données des évaluations", "xml"); diff --git a/src/fenetres/baseDonneesEvaluations.java b/src/fenetres/baseDonneesEvaluations.java index 3f48d44..5044403 100644 --- a/src/fenetres/baseDonneesEvaluations.java +++ b/src/fenetres/baseDonneesEvaluations.java @@ -11,6 +11,7 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.File; import java.io.IOException; +import java.nio.file.Paths; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -43,6 +44,7 @@ import cXML.node; import net.lingala.zip4j.exception.ZipException; import net.miginfocom.swing.MigLayout; + public class baseDonneesEvaluations extends JFrame { /** * */ @@ -58,6 +60,7 @@ public class baseDonneesEvaluations extends JFrame { /** private JButton btnSaveEvaluation = new JButton("Enregistrer l'évaluation
actuelle en mémoire"); private JButton btnRenommeFichierAnalyse = new JButton("Renommer le fichier
d'analyse"); private JButton btnRenommerEvaluation = new JButton("Renommer l'évaluation
sélectionnée"); + private JButton btndefautBaseEvaluation = new JButton("Base par défaut"); public static boolean isDispose = true; int indexSelect=0; ListSelectionModel lsm = null; @@ -68,18 +71,22 @@ public class baseDonneesEvaluations extends JFrame { /** private final JTextPane textPane = new JTextPane(); private final JTextPane textPane_1 = new JTextPane(); private final JButton btnExtraireFileAnalysis = new JButton("Extraire le fichier
d'analyse"); - private final JButton btnFusionnerBase = new JButton("Fusionner deux bases
d'évaluation"); + private final JButton btnFusionnerBase = new JButton("Importer"); private final JButton btnChargerFichierAnalyse = new JButton("Charger un fichier
d'analyse"); private final static JLabel lblCheminVersBase = new JLabel(commandes.PathBaseEvaluations); - private final JButton btnArchiveBase = new JButton("Archive la base des évaluations "); + private final JButton btnArchiveBase = new JButton("Copie de sauvegarde"); public baseDonneesEvaluations() { super(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - - setBounds(100, 100, 1400, 850); - int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth(); + setLocationRelativeTo( null ); +// setBounds(100, 100, 1400, 850); +// int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth(); +// int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight(); +// setLocation(( (screenWidth) - getWidth()) / 2, (screenHeight - getHeight()) / 2); + setSize(1600,900); + int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth(); int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight(); setLocation(( (screenWidth) - getWidth()) / 2, (screenHeight - getHeight()) / 2); @@ -141,44 +148,55 @@ public baseDonneesEvaluations() { scrollPaneBoutons = new JScrollPane(panelGauche); getContentPane().add(scrollPaneBoutons, BorderLayout.WEST); - panelGauche.setLayout(new MigLayout("", "[247px]", "[53px][][][][][][][][30.00][][][][]")); + panelGauche.setLayout(new MigLayout("", "[:300px:400px,fill]", "[53px][][][][][][][][][30.00][][][][]")); + + btndefautBaseEvaluation.setHorizontalAlignment(SwingConstants.LEFT); + btndefautBaseEvaluation.setForeground(new Color(0, 128, 192)); + panelGauche.add(btndefautBaseEvaluation, "cell 0 0,grow"); + btndefautBaseEvaluation.setFont(new Font("Tahoma", Font.BOLD, 16)); + btndefautBaseEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/defautBaseEvaluation.png"))); + btnChargerNewBase.setHorizontalAlignment(SwingConstants.LEFT); btnChargerNewBase.setForeground(new Color(0, 128, 192)); - panelGauche.add(btnChargerNewBase, "cell 0 0,growx,aligny top"); + panelGauche.add(btnChargerNewBase, "cell 0 1,growx,aligny top"); btnChargerNewBase.setFont(new Font("Tahoma", Font.BOLD, 16)); btnChargerNewBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/sauvegardehistoriqueevaluation.png"))); btnSaveEvaluation.setHorizontalAlignment(SwingConstants.LEFT); btnSaveEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/saveEvaluation.png"))); - panelGauche.add(btnSaveEvaluation, "flowy,cell 0 1,growx,aligny top"); - + panelGauche.add(btnSaveEvaluation, "flowy,cell 0 2,growx,aligny top"); + btnSaveEvaluation.setForeground(new Color(0, 64, 128)); btnSaveEvaluation.setFont(new Font("Tahoma", Font.BOLD, 16)); + btnRenommerEvaluation.setToolTipText("Renommer l'évaluation sélectionnée."); btnRenommerEvaluation.setHorizontalAlignment(SwingConstants.LEFT); btnRenommerEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/renommeEvaluaton.png"))); - panelGauche.add(btnRenommerEvaluation, "cell 0 2,growx,aligny top"); + panelGauche.add(btnRenommerEvaluation, "cell 0 4,growx,aligny top"); btnRenommerEvaluation.setForeground(new Color(153, 50, 204)); btnRenommerEvaluation.setFont(new Font("Tahoma", Font.BOLD, 16)); + btnFusionnerBase.setToolTipText("Importer des évaluations dans la base par défaut depuis une autre base."); btnFusionnerBase.setForeground(new Color(56, 184, 149)); btnFusionnerBase.setHorizontalAlignment(SwingConstants.LEFT); btnFusionnerBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/fusionneBaseEvaluation.png"))); btnFusionnerBase.setFont(new Font("Tahoma", Font.BOLD, 16)); - panelGauche.add(btnFusionnerBase, "cell 0 3,growx,aligny top"); - + panelGauche.add(btnFusionnerBase, "cell 0 5,growx,aligny top"); + btnFusionnerBase.setEnabled(false); + btnArchiveBase.setToolTipText("Archiver la base de données pour la sauvegarder et la réutiliser."); + btnArchiveBase.setForeground(new Color(128, 128, 192)); btnArchiveBase.setFont(new Font("Tahoma", Font.BOLD, 16)); btnArchiveBase.setHorizontalAlignment(SwingConstants.LEFT); btnArchiveBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/saveZipEvaluation.png"))); - panelGauche.add(btnArchiveBase, "cell 0 4,growx,aligny top"); + panelGauche.add(btnArchiveBase, "cell 0 6,growx,aligny top"); btnChargerFichierAnalyse.setForeground(new Color(0, 64, 128)); btnChargerFichierAnalyse.setHorizontalAlignment(SwingConstants.LEFT); btnChargerFichierAnalyse.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/fichierAnalyse.png"))); btnChargerFichierAnalyse.setFont(new Font("Tahoma", Font.BOLD, 16)); - panelGauche.add(btnChargerFichierAnalyse, "cell 0 5,growx,aligny top"); + panelGauche.add(btnChargerFichierAnalyse, "cell 0 7,growx,aligny top"); btnExtraireFileAnalysis.setHorizontalAlignment(SwingConstants.LEFT); @@ -186,18 +204,18 @@ public baseDonneesEvaluations() { btnExtraireFileAnalysis.setForeground(new Color(209, 105, 35)); btnExtraireFileAnalysis.setFont(new Font("Tahoma", Font.BOLD, 16)); - panelGauche.add(btnExtraireFileAnalysis, "cell 0 6,growx,aligny top"); + panelGauche.add(btnExtraireFileAnalysis, "cell 0 8,growx,aligny top"); btnRenommeFichierAnalyse.setHorizontalAlignment(SwingConstants.LEFT); btnRenommeFichierAnalyse.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/fichierAnalyseRenomme.png"))); - panelGauche.add(btnRenommeFichierAnalyse, "cell 0 7,growx,aligny top"); + panelGauche.add(btnRenommeFichierAnalyse, "cell 0 9,growx,aligny top"); btnRenommeFichierAnalyse.setForeground(new Color(255, 140, 0)); btnRenommeFichierAnalyse.setFont(new Font("Tahoma", Font.BOLD, 16)); btnSupprimeEvaluation.setHorizontalAlignment(SwingConstants.LEFT); btnSupprimeEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/removeEvaluaton.png"))); - panelGauche.add(btnSupprimeEvaluation, "cell 0 9,growx,aligny top"); + panelGauche.add(btnSupprimeEvaluation, "cell 0 11,growx,aligny top"); btnSupprimeEvaluation.setForeground(new Color(255, 0, 0)); btnSupprimeEvaluation.setFont(new Font("Tahoma", Font.BOLD, 16)); @@ -205,7 +223,7 @@ public baseDonneesEvaluations() { btnFermer.setHorizontalAlignment(SwingConstants.LEFT); btnFermer.setFont(new Font("Tahoma", Font.BOLD, 16)); - panelGauche.add(btnFermer, "cell 0 10,growx,aligny top"); + panelGauche.add(btnFermer, "cell 0 12,growx,aligny top"); //*Détection de la ligne sélectionnée table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); @@ -310,7 +328,8 @@ private void ListenerAction() { if(lsm!=null) { if (!lsm.isSelectionEmpty()) { - node evaluation = commandes.evaluationsBase.getNodes().get(indexSelect).retourneFirstEnfantsByName("fichier"); + new chargeEvaluationSelected(indexSelect); + node evaluation = commandes.evaluationChargeEnMemoire; String nameFile = evaluation.getAttributs().get("analysis_filename"); JFileChooser fileChooser = new JFileChooser(); @@ -354,15 +373,19 @@ private void ListenerAction() { btnChargerFichierAnalyse.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new ChargeFichierXML(); + + //Encapsulation du node d'analyse fichier dans un node evaluation. node evaluation = new node(); evaluation.setNomElt("evaluation"); String name = "Nouvelle évaluation"; + evaluation.getNodes().add(commandes.sujet); name = JOptionPane.showInputDialog(null,"Donner un nom à cette évaluation ?",name); if(name!=null) { if(!name.isBlank()) { - new creerNouvelleEvaluation(new node(),name,true); + evaluation.getNodes().add(commandes.sujet); + new creerNouvelleEvaluation(evaluation,name,false); new recupeNodeBaseEvaluations(); model.addOrUpdate(); table.setModel(model); @@ -382,7 +405,7 @@ private void ListenerAction() { @Override public void actionPerformed(ActionEvent e) { - new ChargePathBaseEvaluation(true); + new ChargePathBaseEvaluation(); new trierParDateDecroissanteLaBase(); model.addOrUpdate(); table.setModel(model); @@ -408,7 +431,7 @@ private void ListenerAction() { */ btnChargerNewBase.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - new ChargePathBaseEvaluation(false); + new ChargePathBaseEvaluation(); new actOpenBaseEvaluation(); if(commandes.PathBaseEvaluationDefaut) { lblCheminVersBase.setText(commandes.PathBaseEvaluations); @@ -420,6 +443,25 @@ private void ListenerAction() { } }); + /** + * Charge la base par défaut + */ + btndefautBaseEvaluation.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + commandes.PathBaseEvaluations = Paths.get("").toAbsolutePath().toString(); + commandes.NameBaseEvaluations = "base_evaluations_analyseWriter.xml"; + commandes.PathBaseEvaluationDefaut = true; + new recupeNodeBaseEvaluations(); + if(commandes.PathBaseEvaluationDefaut) { + lblCheminVersBase.setText(commandes.PathBaseEvaluations); + }else { + lblCheminVersBase.setText(commandes.PathBaseEvaluations+"/"+commandes.NameBaseEvaluations); + } + model.addOrUpdate(); + table = new JTable(model); + } + }); + /** * Chargement d'une évaluation par double click. */ @@ -597,13 +639,11 @@ private void ListenerAction() { nomEvaluation = evaluation.getAttributs().get("name"); } nomEvaluation = JOptionPane.showInputDialog(null,"Renommer cette évaluation ?",nomEvaluation); - if(!nomEvaluation.isBlank()) { evaluation.getAttributs().put("name",nomEvaluation); - new recupeNodeBaseEvaluations(); + new creerNouvelleEvaluation(evaluation); model.addOrUpdate(); table.setModel(model); -// table.setRowSelectionInterval(0, 0); } } diff --git a/src/fenetres/chargeBaseAuDemarrage.java b/src/fenetres/chargeBaseAuDemarrage.java index db8584e..da10017 100644 --- a/src/fenetres/chargeBaseAuDemarrage.java +++ b/src/fenetres/chargeBaseAuDemarrage.java @@ -179,7 +179,7 @@ private void ListenerAction() { */ btnCheminVersBaseDonnees.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - new ChargePathBaseEvaluation(false); + new ChargePathBaseEvaluation(); new actOpenBaseEvaluation(); label.setText(commandes.PathBaseEvaluations); model.addOrUpdate(); diff --git a/src/fenetres/evaluate.java b/src/fenetres/evaluate.java index 06a9ff4..0b028fb 100644 --- a/src/fenetres/evaluate.java +++ b/src/fenetres/evaluate.java @@ -32,6 +32,7 @@ import javax.swing.event.ChangeListener; import javax.swing.filechooser.FileNameExtensionFilter; import MEPTL.commandes; import MEPTL.meptl; +import MEPTL.verificationFichierAnalyse_node_commandesSujet; import action.actAbout; import action.actDocumentation; import action.actExit; @@ -724,8 +725,8 @@ public class evaluate extends JFrame { private static void refreshLabel() { if(!commandes.fichierAnalyseValide) { System.out.println( "Erreur du fichier d'analyse" ); - if(!MEPTL.verificationFichierAnalyse.messageErreur.toString().isEmpty()) { - txtpnmessages.setText(MEPTL.verificationFichierAnalyse.messageErreur.toString()); + if(!verificationFichierAnalyse_node_commandesSujet.messageErreur.toString().isEmpty()) { + txtpnmessages.setText(verificationFichierAnalyse_node_commandesSujet.messageErreur.toString()); } chckbxfichiersEtudiants.setEnabled(false); chckbxZipfeedback.setEnabled(false); diff --git a/src/fenetres/mainApp.java b/src/fenetres/mainApp.java index 1d95adb..cee92ad 100644 --- a/src/fenetres/mainApp.java +++ b/src/fenetres/mainApp.java @@ -49,8 +49,11 @@ public class mainApp extends JFrame implements ActionListener{ * Initialize the contents of the frame. */ private void initialize() { - - new verificationNewVersion(); + try { + new verificationNewVersion(); + }catch (Exception e) { + System.out.println("Pas de connexion internet."); + } frmEvalwriter = new JFrame(); frmEvalwriter.setResizable(false); diff --git a/src/resources/defautBaseEvaluation.png b/src/resources/defautBaseEvaluation.png new file mode 100644 index 0000000..34c5aa9 Binary files /dev/null and b/src/resources/defautBaseEvaluation.png differ