diff --git a/analyseWriter.exe b/analyseWriter.exe index 7ff05c7..03e44b9 100644 Binary files a/analyseWriter.exe and b/analyseWriter.exe differ diff --git a/analyseWriter.jar b/analyseWriter.jar index 121c8a6..2cf9aef 100644 Binary files a/analyseWriter.jar and b/analyseWriter.jar differ diff --git a/bin/MEPTL/commandes.class b/bin/MEPTL/commandes.class index f830a4d..76b9370 100644 Binary files a/bin/MEPTL/commandes.class and b/bin/MEPTL/commandes.class differ diff --git a/bin/calcul/formatDateWriter.class b/bin/calcul/formatDateWriter.class index 6f7ecbd..6097501 100644 Binary files a/bin/calcul/formatDateWriter.class and b/bin/calcul/formatDateWriter.class differ diff --git a/bin/fenetres/afficheText.class b/bin/fenetres/afficheText.class index 5deea25..8ce72cd 100644 Binary files a/bin/fenetres/afficheText.class and b/bin/fenetres/afficheText.class differ diff --git a/bin/fenetres/create$1.class b/bin/fenetres/create$1.class index 5b30ab0..de1471d 100644 Binary files a/bin/fenetres/create$1.class and b/bin/fenetres/create$1.class differ diff --git a/bin/fenetres/create$10.class b/bin/fenetres/create$10.class index 255b359..55810c0 100644 Binary files a/bin/fenetres/create$10.class and b/bin/fenetres/create$10.class differ diff --git a/bin/fenetres/create$11.class b/bin/fenetres/create$11.class index 5a4d6bb..c063c37 100644 Binary files a/bin/fenetres/create$11.class and b/bin/fenetres/create$11.class differ diff --git a/bin/fenetres/create$12.class b/bin/fenetres/create$12.class index 85c4788..4331b4e 100644 Binary files a/bin/fenetres/create$12.class and b/bin/fenetres/create$12.class differ diff --git a/bin/fenetres/create$13.class b/bin/fenetres/create$13.class index ef36b67..12b8117 100644 Binary files a/bin/fenetres/create$13.class and b/bin/fenetres/create$13.class differ diff --git a/bin/fenetres/create$14.class b/bin/fenetres/create$14.class index e14fc5a..90b4b3e 100644 Binary files a/bin/fenetres/create$14.class and b/bin/fenetres/create$14.class differ diff --git a/bin/fenetres/create$15.class b/bin/fenetres/create$15.class index 7f26e02..79ccae1 100644 Binary files a/bin/fenetres/create$15.class and b/bin/fenetres/create$15.class differ diff --git a/bin/fenetres/create$2.class b/bin/fenetres/create$2.class index eee2fe1..ac133b5 100644 Binary files a/bin/fenetres/create$2.class and b/bin/fenetres/create$2.class differ diff --git a/bin/fenetres/create$3.class b/bin/fenetres/create$3.class index eae78be..bbc0fe3 100644 Binary files a/bin/fenetres/create$3.class and b/bin/fenetres/create$3.class differ diff --git a/bin/fenetres/create$4.class b/bin/fenetres/create$4.class index 5b15972..923291b 100644 Binary files a/bin/fenetres/create$4.class and b/bin/fenetres/create$4.class differ diff --git a/bin/fenetres/create$5.class b/bin/fenetres/create$5.class index 1f4352a..4ae6022 100644 Binary files a/bin/fenetres/create$5.class and b/bin/fenetres/create$5.class differ diff --git a/bin/fenetres/create$6.class b/bin/fenetres/create$6.class index 9ba6bd7..dca8abc 100644 Binary files a/bin/fenetres/create$6.class and b/bin/fenetres/create$6.class differ diff --git a/bin/fenetres/create$7.class b/bin/fenetres/create$7.class index e3318f9..b1ccddf 100644 Binary files a/bin/fenetres/create$7.class and b/bin/fenetres/create$7.class differ diff --git a/bin/fenetres/create$8.class b/bin/fenetres/create$8.class index 241c492..3dab138 100644 Binary files a/bin/fenetres/create$8.class and b/bin/fenetres/create$8.class differ diff --git a/bin/fenetres/create$9.class b/bin/fenetres/create$9.class index d2a55b3..9a73f4f 100644 Binary files a/bin/fenetres/create$9.class and b/bin/fenetres/create$9.class differ diff --git a/bin/fenetres/create.class b/bin/fenetres/create.class index f26856a..df77ec3 100644 Binary files a/bin/fenetres/create.class and b/bin/fenetres/create.class differ diff --git a/bin/fenetres/evaluate$16.class b/bin/fenetres/evaluate$16.class index 8647906..09edc1a 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 dfaadd2..c91f4fd 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 ca25d90..d9e2561 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 7eebb98..607693c 100644 Binary files a/bin/fenetres/evaluate$19.class and b/bin/fenetres/evaluate$19.class differ diff --git a/bin/fenetres/evaluate$20.class b/bin/fenetres/evaluate$20.class index 0005374..6abefba 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 0c8bf4a..df95092 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 5aab643..9345997 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 e9c2a2b..7fb82e4 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 6c8aeef..41faeb2 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 1627273..a2e077a 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 0b8a1a2..3742e00 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 7b30ebd..b3eca1b 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 467e1e9..3ff6f75 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 1488597..518cf69 100644 Binary files a/bin/fenetres/evaluate$29.class and b/bin/fenetres/evaluate$29.class differ diff --git a/bin/fenetres/evaluate$30.class b/bin/fenetres/evaluate$30.class index 6fa8490..421b2c5 100644 Binary files a/bin/fenetres/evaluate$30.class and b/bin/fenetres/evaluate$30.class differ diff --git a/bin/fenetres/evaluate$31.class b/bin/fenetres/evaluate$31.class index f19ffb9..94fb24e 100644 Binary files a/bin/fenetres/evaluate$31.class and b/bin/fenetres/evaluate$31.class differ diff --git a/bin/fenetres/evaluate$32.class b/bin/fenetres/evaluate$32.class index f7c77de..3a9c23d 100644 Binary files a/bin/fenetres/evaluate$32.class and b/bin/fenetres/evaluate$32.class differ diff --git a/bin/fenetres/evaluate$33.class b/bin/fenetres/evaluate$33.class index a8ea2fd..9921f46 100644 Binary files a/bin/fenetres/evaluate$33.class and b/bin/fenetres/evaluate$33.class differ diff --git a/bin/fenetres/evaluate.class b/bin/fenetres/evaluate.class index c8eb485..e94aae9 100644 Binary files a/bin/fenetres/evaluate.class and b/bin/fenetres/evaluate.class differ diff --git a/bin/fenetres/savePreferences.class b/bin/fenetres/savePreferences.class deleted file mode 100644 index 2283c9c..0000000 Binary files a/bin/fenetres/savePreferences.class and /dev/null differ diff --git a/src/MEPTL/commandes.java b/src/MEPTL/commandes.java index 1c0f2df..2fed744 100644 --- a/src/MEPTL/commandes.java +++ b/src/MEPTL/commandes.java @@ -1,6 +1,7 @@ package MEPTL; import java.io.IOException; +import java.nio.file.Paths; import java.util.Date; import javax.swing.JTree; @@ -127,7 +128,12 @@ public class commandes { public static int analyse_Nbre_Fichier_Student = 0; public static int analyse_index_Fichier_Student = 0; public static StringBuilder message = new StringBuilder(); - + + //** base de données des évaluations + public static String PathBaseEvaluations = Paths.get("").toAbsolutePath().toString(); //Chemin vers la base de données + public static boolean PathBaseEvalationDefaut = true; //Flag si ce n'est pas le chemin par défaut vers la base de données + public static String NameBaseEvaluations="base_evaluations_analyseWriter.xml"; //Nom par défaut de la base de données + public static void initialiseParametresSettingProprietes() { //** setting valeur par défaut culture = "FR"; diff --git a/src/action/actOpenHistoriqueEvaluation.java b/src/action/actOpenHistoriqueEvaluation.java index cf42d44..d063de8 100644 --- a/src/action/actOpenHistoriqueEvaluation.java +++ b/src/action/actOpenHistoriqueEvaluation.java @@ -5,6 +5,8 @@ import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; +import java.nio.file.Paths; +import java.text.ParseException; import javax.swing.AbstractAction; import javax.swing.Action; @@ -12,12 +14,10 @@ import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; -import javax.swing.filechooser.FileSystemView; import MEPTL.commandes; import cXML.node; -import fenetres.SimpleTableDemo; -import fenetres.chargeEvaluations; +import fenetres.baseDonneesEvaluations; import fenetres.create; public class actOpenHistoriqueEvaluation extends AbstractAction{ @@ -30,59 +30,78 @@ public class actOpenHistoriqueEvaluation extends AbstractAction{ @Override public void actionPerformed(ActionEvent e) { - nodeEvaluations(); + recupeNodeBaseEvaluations(); if(commandes.evaluationsBase!=null) { -// chargeEvaluations.getInstance(); - new SimpleTableDemo(); + baseDonneesEvaluations.getInstance(); }else { - commandes.evaluationsBase = new node(); - commandes.evaluationsBase.setNomElt("evaluations"); - chargeEvaluations.getInstance(); + creationNewNodeBaseEvaluation(); + baseDonneesEvaluations.getInstance(); } } /** * Récupération du node base_evaluations_analyseWriter.xml.
*/ - private void nodeEvaluations() { + private void recupeNodeBaseEvaluations() { - File directory = new File(FileSystemView.getFileSystemView().getDefaultDirectory().getPath()); - if (directory.exists()){ - File file = null; - if(commandes.os.contains("Win")) { - file = new File(directory.getAbsolutePath() + "\\" + "base_evaluations_analyseWriter.xml"); - }else { - file = new File(directory.getAbsolutePath() + "/" + "base_evaluations_analyseWriter.xml"); - } - - if(file!=null) { - BufferedReader br; - try { - br = new BufferedReader( - new InputStreamReader( - new FileInputStream(file.getAbsoluteFile()), "UTF-8")); - String line; - StringBuilder targetString = new StringBuilder(); - while ((line = br.readLine()) != null) { - targetString.append(line); - } - 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")) { - commandes.evaluationsBase = evaluations; - } +// File directory = new File(FileSystemView.getFileSystemView().getDefaultDirectory().getPath()); + + String directoryName = ""; + File file = null; + if(commandes.PathBaseEvalationDefaut) { + directoryName = Paths.get("").toAbsolutePath().toString(); + }else { + directoryName = commandes.PathBaseEvaluations; + } + + if(commandes.os.contains("Win")) { + file = new File(directoryName + "\\" + commandes.NameBaseEvaluations); + }else { + file = new File(directoryName + "/" + commandes.NameBaseEvaluations); + } + + if(file!=null) { + BufferedReader br; + try { + br = new BufferedReader( + new InputStreamReader( + new FileInputStream(file.getAbsoluteFile()), "UTF-8")); + String line; + StringBuilder targetString = new StringBuilder(); + while ((line = br.readLine()) != null) { + targetString.append(line); + } + 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")) { + commandes.evaluationsBase = evaluations; } } - }catch (Exception e) { - JFrame frame = new JFrame(); - JLabel texte = new JLabel("

Il y a une erreur avec le fichier base_evaluations_analyseWriter.xml

" - + "

Probablement, il a été renommé ou supprimé.

" - + "Ou bien encore, il ne contient aucune évaluation."); - JOptionPane.showMessageDialog(frame, texte); } + }catch (Exception e) { + JFrame frame = new JFrame(); + JLabel texte = new JLabel("

Il y a une erreur avec le fichier base_evaluations_analyseWriter.xml

" + + "

Probablement, il a été renommé ou supprimé.


" + + "

Une nouvelle base sera créé.

"); + JOptionPane.showMessageDialog(frame, texte); } - } + } + } + /** + * Création du node evaluationBase.
+ */ + private void creationNewNodeBaseEvaluation() { + commandes.evaluationsBase = new node(); + commandes.evaluationsBase.setNomElt("evaluations"); + try { + commandes.evaluationsBase.getAttributs().put("date", calcul.formatDateWriter.dateTodayLibreOffice()); + } catch (ParseException e) { + e.printStackTrace(); + } + + } + } diff --git a/src/action/actPathBaseEvaluations.java b/src/action/actPathBaseEvaluations.java new file mode 100644 index 0000000..687508a --- /dev/null +++ b/src/action/actPathBaseEvaluations.java @@ -0,0 +1,26 @@ +package action; + +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; + +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.ImageIcon; + +import fenetres.ChargePathBaseEvaluation; +import fenetres.create; + +public class actPathBaseEvaluations extends AbstractAction{ + { + putValue( Action.NAME, "Indiquer le chemin vers la base des évaluations" ); + putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/sauvegardehistoriqueevaluationmini.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_O ); + putValue( Action.SHORT_DESCRIPTION, "Indiquer le chemin vers la base des évaluation" ); + } + private static final long serialVersionUID = 1L; + + @Override + public void actionPerformed(ActionEvent e) { + new ChargePathBaseEvaluation(); + } +} diff --git a/src/action/actSaveHistoriqueEvaluation.java b/src/action/actSaveHistoriqueEvaluation.java deleted file mode 100644 index 1b0c1a3..0000000 --- a/src/action/actSaveHistoriqueEvaluation.java +++ /dev/null @@ -1,171 +0,0 @@ -package action; - -import java.awt.event.ActionEvent; -import java.awt.event.KeyEvent; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.text.ParseException; -import java.util.Date; - -import javax.swing.AbstractAction; -import javax.swing.Action; -import javax.swing.ImageIcon; -import javax.swing.JOptionPane; -import javax.swing.filechooser.FileSystemView; - -import MEPTL.commandes; -import cXML.Run; -import cXML.node; -import fenetres.create; - -public class actSaveHistoriqueEvaluation extends AbstractAction{ - { - putValue( Action.NAME, "Sauvegarder l'évaluation" ); - putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/sauvegardehistoriqueevaluationmini.png")) ); - putValue( Action.MNEMONIC_KEY, KeyEvent.VK_O ); - putValue( Action.SHORT_DESCRIPTION, "Sauvegarder l'évaluation" ); - } - private static final long serialVersionUID = 1L; - - @Override - public void actionPerformed(ActionEvent e) { - if(commandes.fichierAnalyseValide) { - - - String name = JOptionPane.showInputDialog(null,"Donner un nom à cette évaluation ?","Nom de l'évaluation"); - - if(!name.isBlank()) { - node evaluations = nodeEvaluations(); - if(!isEvaluationExist(evaluations, name)) { - evaluations.getNodes().add(0, creationNodeEvaluation(new node(), name)); -// evaluations.getNodes().add(creationNodeEvaluation(new node(), name)); - }else { - evaluations.getNodes().add(creationNodeEvaluation(evaluations.retourneFirstNodeByNameAndAttributValueExactStrict("evaluation", "name", name), name)); - } - - //Mise à jour de la base de données - Date aujourdhui = new Date(); - evaluations.getAttributs().put("version", commandes.version); - try { - evaluations.getAttributs().put("date", calcul.formatDateWriter.DateLibreOffice(aujourdhui)); - ecritureBaseEvaluation(evaluations); - } catch (ParseException | IOException e1) { - e1.printStackTrace(); - } - - } - - - - } - } - - private boolean isEvaluationExist(node evaluations, String nameEvaluation) { - if(evaluations!=null) { - if(evaluations.retourneFirstNodeByNameAndAttributValueExactStrict("evaluation", "name", nameEvaluation)!=null) return true; - } - return false; - } - - - private node nodeEvaluations() { - node evaluations = new node(); - evaluations.setNomElt("evaluations"); - File directory = new File(FileSystemView.getFileSystemView().getDefaultDirectory().getPath()); - if (directory.exists()){ - File file = null; - if(commandes.os.contains("Win")) { - file = new File(directory.getAbsolutePath() + "\\" + "base_evaluations_analyseWriter.xml"); - }else { - file = new File(directory.getAbsolutePath() + "/" + "base_evaluations_analyseWriter.xml"); - } - if(file!=null) { - BufferedReader br; - try { - br = new BufferedReader( - new InputStreamReader( - new FileInputStream(file.getAbsoluteFile()), "UTF-8")); - String line; - StringBuilder targetString = new StringBuilder(); - while ((line = br.readLine()) != null) { - targetString.append(line); - } - evaluations = new node(targetString.toString().replace("\t","").replace("\r", "").replace("\n", "")); - }catch (Exception e) { - - } - } - } - return evaluations; - } - - private node creationNodeEvaluation(node evaluation, String name) { - evaluation.setNomElt("evaluation"); - Date aujourdhui = new Date(); - evaluation.getAttributs().put("version", commandes.version); - evaluation.getAttributs().put("name", name); - evaluation.getAttributs().put("PathFilenameAnalysis", commandes.PathFilenameAnalysis); - evaluation.getAttributs().put("path", commandes.path); - evaluation.getAttributs().put("fichierStudentMoodle", String.valueOf(commandes.fichierStudentMoodle)); - evaluation.getAttributs().put("sansFeeback", String.valueOf(commandes.sansFeeback) ); - evaluation.getAttributs().put("noDetail", String.valueOf(commandes.noDetail) ); - evaluation.getAttributs().put("noNote", String.valueOf(commandes.noNote) ); - evaluation.getAttributs().put("zipfeedback", String.valueOf(commandes.zipfeedback) ); - evaluation.getAttributs().put("verifHisto2", String.valueOf(commandes.verifHisto2) ); - evaluation.getAttributs().put("ecritNoteCSV", String.valueOf(commandes.ecritNoteCSV) ); - evaluation.getAttributs().put("newLogo", String.valueOf(commandes.newLogo) ); - evaluation.getAttributs().put("noLogo", String.valueOf(commandes.noLogo) ); - - evaluation.getNodes().add(commandes.sujet); - if(commandes.sujet.getAttributs().get("analysis_filename").contains(".xml")) { - evaluation.getAttributs().put("analysis_filename",commandes.sujet.getAttributs().get("analysis_filename")); - }else { - evaluation.getAttributs().put("analysis_filename",commandes.nameSujet); - } - - - evaluation.getAttributs().put("fourniCSV", String.valueOf(commandes.fourniCSV) ); - if(commandes.nameCSV!=null) { - evaluation.getAttributs().put("nameCSV", commandes.nameCSV ); - }else { - evaluation.getAttributs().put("nameCSV", ""); - } - - evaluation.getAttributs().put("fourniCSV", String.valueOf(commandes.fourniCSV) ); - if(commandes.nameSVG!=null) { - evaluation.getAttributs().put("nameSVG", commandes.nameSVG ); - }else { - evaluation.getAttributs().put("nameSVG", "" ); - } - - - - evaluation.getNodes().add(commandes.nodeCSV); - - try { - evaluation.getAttributs().put("date", calcul.formatDateWriter.DateLibreOffice(aujourdhui)); - } catch (ParseException e) { - e.printStackTrace(); - } - - if(commandes.nameSVG!=null) { - if(!commandes.nameSVG.isBlank() && !commandes.contenuFichierSVG.isBlank()) { - node SVG = new node(); - SVG.setNomElt("nodSVG"); - SVG.setContenu(commandes.contenuFichierSVG); - evaluation.getNodes().add(SVG); - } - } - - return evaluation; - - } - - private void ecritureBaseEvaluation(node evaluations) throws IOException { - File directory = new File(FileSystemView.getFileSystemView().getDefaultDirectory().getPath()); - Run.ecritureNodeEnXML(evaluations, "base_evaluations_analyseWriter.xml", directory.getAbsolutePath(), Run.TypeFile.Evaluation); - } -} diff --git a/src/calcul/formatDateWriter.java b/src/calcul/formatDateWriter.java index 7a167c8..249eba0 100644 --- a/src/calcul/formatDateWriter.java +++ b/src/calcul/formatDateWriter.java @@ -76,7 +76,15 @@ public class formatDateWriter { return d1; } - + /** + * Retourne sous la forme d'un string au format LibreOffice la date d'aujourd'hui.
+ * @return + * @throws ParseException + */ + public static String dateTodayLibreOffice() throws ParseException { + Date aujourdhui = new Date(); + return DateLibreOffice(aujourdhui); + } diff --git a/src/fenetres/ChargePathBaseEvaluation.java b/src/fenetres/ChargePathBaseEvaluation.java new file mode 100644 index 0000000..915789f --- /dev/null +++ b/src/fenetres/ChargePathBaseEvaluation.java @@ -0,0 +1,117 @@ +package fenetres; + +import java.awt.Component; +import java.awt.Dimension; +import java.awt.HeadlessException; +import java.awt.Image; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStreamReader; +import java.io.UnsupportedEncodingException; + +import javax.swing.ImageIcon; +import javax.swing.JDialog; +import javax.swing.JFileChooser; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.filechooser.FileNameExtensionFilter; + +import MEPTL.commandes; +import cXML.node; + +public class ChargePathBaseEvaluation extends JFileChooser { + + /** + * + */ + private static final long serialVersionUID = 1L; + + + public ChargePathBaseEvaluation() { + + setDialogTitle("Sélectionner la base de données des évaluations."); + + FileNameExtensionFilter filter = new FileNameExtensionFilter("Base de données des évaluations", "xml"); + setFileFilter(filter); + setPreferredSize(new Dimension(550, 420)); + + int response = showOpenDialog(null); + if(response == JFileChooser.APPROVE_OPTION) { + + + File file = new File(getSelectedFile().getAbsolutePath()); + String ext = file.getName().substring(file.getName().lastIndexOf(".")); + + if(ext.equals(".xml")){ + openFileXML(file); + } + } + } + + @Override + protected JDialog createDialog( Component parent ) throws HeadlessException { + JDialog dialog = super.createDialog( parent ); + Image img = new ImageIcon(getClass().getResource("/evalwriter.png") ).getImage(); + dialog.setIconImage(img); + return dialog; + } + + + /** + * + * @param file + */ + private void openFileXML(File file) { + + + if(commandes.os.contains("Win")) { + commandes.path = file.getPath().substring(0,file.getPath().lastIndexOf("\\")); // Sur Windows + }else { + commandes.path = file.getPath().substring(0,file.getPath().lastIndexOf("/")); // Sur mac & Linux + } + + String PathFilenameAnalysis = getCurrentDirectory().getPath(); + String nameSujet = file.getName().toString(); + + BufferedReader br; + try { + br = new BufferedReader( + new InputStreamReader( + new FileInputStream(file.getAbsoluteFile()), "UTF-8")); + String line; + StringBuilder targetString = new StringBuilder(); + while ((line = br.readLine()) != null) { + targetString.append(line); + } + + node nodeEvaluation = new node(targetString.toString().replace("\t","").replace("\r", "").replace("\n", "")); + + if(nodeEvaluation.getNomElt().equals("evaluations")) { + commandes.NameBaseEvaluations=nameSujet; + commandes.PathBaseEvaluations=PathFilenameAnalysis; + commandes.PathBaseEvalationDefaut=false; + if(!create.isDispose) create.getTextNodeSelect().afficheChargementCheminVersLaBase(); + if(!evaluate.isDispose) evaluate.getTxtpnmessages().afficheChargementCheminVersLaBase(); + }else { + commandes.PathBaseEvalationDefaut=false; + JFrame frame = new JFrame(); + JLabel texte = new JLabel("

Ce n'est pas une base de données des évaluations.

"); + JOptionPane.showMessageDialog(frame, texte); + } + + } catch (UnsupportedEncodingException e1) { + e1.printStackTrace(); + } catch (FileNotFoundException e1) { + e1.printStackTrace(); + } catch (Exception e) { + } + + } + + + + +} diff --git a/src/fenetres/afficheText.java b/src/fenetres/afficheText.java index b114a19..0435515 100644 --- a/src/fenetres/afficheText.java +++ b/src/fenetres/afficheText.java @@ -475,12 +475,28 @@ public class afficheText extends JEditorPane { text.append("


"); text.append("

Fichier d'analyse :

"); text.append("

"+commandes.analysis_filename+"

"); - + text.append("


"); + text.append("

La base de données des évaluations :

"); + text.append("

La base de données des évaluations se trouve : " + commandes.PathBaseEvaluations +"

" + + "

La base de données se nomme : " + commandes.NameBaseEvaluations +"

"); + + setContentType("text/html"); setText(text.toString()); } + public void afficheChargementCheminVersLaBase() { + StringBuilder text = new StringBuilder(); + text.append(baliseStyle.balise()); + text.append("

INFORMATIONS


" + + "

La base de données des évaluations se trouve : " + commandes.PathBaseEvaluations +"

" + + "

La base de données se nomme : " + commandes.NameBaseEvaluations +"

"); + setContentType("text/html"); + setText(text.toString()); + } + + /** * * @param TextErreur diff --git a/src/fenetres/SimpleTableDemo.java b/src/fenetres/baseDonneesEvaluations.java similarity index 91% rename from src/fenetres/SimpleTableDemo.java rename to src/fenetres/baseDonneesEvaluations.java index f990a86..b83bdce 100644 --- a/src/fenetres/SimpleTableDemo.java +++ b/src/fenetres/baseDonneesEvaluations.java @@ -15,6 +15,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; +import java.nio.file.Paths; import java.text.ParseException; import java.util.Date; @@ -30,7 +31,6 @@ import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import javax.swing.filechooser.FileSystemView; import MEPTL.commandes; import MEPTL.meptl; @@ -38,11 +38,11 @@ import MEPTL.verificationFichierAnalyse; import cXML.Run; import cXML.node; -public class SimpleTableDemo extends JFrame { /** +public class baseDonneesEvaluations extends JFrame { /** * */ private static final long serialVersionUID = 1L; - private static SimpleTableDemo instance; + private static baseDonneesEvaluations instance; JTable table = new JTable(); private JPanel panelHaut = new JPanel(); private JPanel panelBas = new JPanel(); @@ -57,7 +57,7 @@ public class SimpleTableDemo extends JFrame { /** String[] columnNames = {"Nom de l'évaluation","Date d'enregistrement","Titre de l'exercice","Propriété personnalisé Sujet","Nom du fichier d'analyse"}; JScrollPane scrollPane = new JScrollPane(); -public SimpleTableDemo() { +public baseDonneesEvaluations() { super(); @@ -126,7 +126,7 @@ public SimpleTableDemo() { //*Le haut String nombreEvluation = String.valueOf(commandes.evaluationsBase.getNodes().size()); - lblInformationBaseEvluation.setText("Date dernière modification : " +calcul.formatDateWriter.DateEnClairFR( calcul.formatDateWriter.DateLibreOffice(commandes.evaluationsBase.getAttributs().get("date"))) + " -- Nombre d'évaluation : " + nombreEvluation); + lblInformationBaseEvluation.setText("Date dernière modification : " + calcul.formatDateWriter.DateEnClairFR( calcul.formatDateWriter.DateLibreOffice(commandes.evaluationsBase.getAttributs().get("date"))) + " -- Nombre d'évaluation : " + nombreEvluation); add(panelHaut, BorderLayout.NORTH); lblInformationBaseEvluation.setFont(new Font("Tahoma", Font.BOLD, 14)); panelHaut.add(lblInformationBaseEvluation); @@ -159,10 +159,9 @@ public SimpleTableDemo() { } -public static SimpleTableDemo getInstance() { - if(chargeEvaluations.isDispose) instance = null; - if (instance == null) { - instance = new SimpleTableDemo(); +public static baseDonneesEvaluations getInstance() { + if (isDispose) { + instance = new baseDonneesEvaluations(); } instance.setVisible(true); isDispose=false; @@ -393,8 +392,17 @@ private void chargeLeNodeSujet(File file) { private void ecritureBaseEvaluation(node evaluations) throws IOException { - File directory = new File(FileSystemView.getFileSystemView().getDefaultDirectory().getPath()); - Run.ecritureNodeEnXML(evaluations, "base_evaluations_analyseWriter.xml", directory.getAbsolutePath(), Run.TypeFile.Evaluation); +// File directory = new File(FileSystemView.getFileSystemView().getDefaultDirectory().getPath()); +// Run.ecritureNodeEnXML(evaluations, "base_evaluations_analyseWriter.xml", directory.getAbsolutePath(), Run.TypeFile.Evaluation); + + String directoryName = ""; + if(commandes.PathBaseEvalationDefaut) { + directoryName = Paths.get("").toAbsolutePath().toString(); + }else { + directoryName = commandes.PathBaseEvaluations; + } + Run.ecritureNodeEnXML(evaluations, commandes.NameBaseEvaluations, directoryName, Run.TypeFile.Evaluation); + } diff --git a/src/fenetres/chargeEvaluations.java b/src/fenetres/chargeEvaluations.java deleted file mode 100644 index 970a5a9..0000000 --- a/src/fenetres/chargeEvaluations.java +++ /dev/null @@ -1,638 +0,0 @@ -package fenetres; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.FlowLayout; -import java.awt.Font; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.UnsupportedEncodingException; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Date; - -import javax.swing.Box; -import javax.swing.FocusManager; -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JRadioButton; -import javax.swing.JScrollPane; -import javax.swing.border.EmptyBorder; -import javax.swing.filechooser.FileSystemView; - -import MEPTL.commandes; -import MEPTL.meptl; -import MEPTL.verificationFichierAnalyse; -import action.actSaveHistoriqueEvaluation; -import cXML.Run; -import cXML.node; -import net.miginfocom.swing.MigLayout; - -public class chargeEvaluations extends JFrame { - - /** - * - */ - private static final long serialVersionUID = 1L; - private static chargeEvaluations instance; - private JPanel contentPane = new JPanel(); - JPanel panelCentre = new JPanel(); - ArrayList LeslabelsTitre = new ArrayList(); - ArrayList LeslabelsMeta = new ArrayList(); - ArrayList LeslabelsDate = new ArrayList(); - ArrayList LeslabelsFileNameAnalysis = new ArrayList(); - ArrayList LesRadioButtons = new ArrayList(); - JLabel lblInformationBaseEvluation = new JLabel(""); - public static boolean isDispose = true; - int indexSelect=0; - - - - /** - * Create the frame. - */ - public static chargeEvaluations getInstance() { - if(chargeEvaluations.isDispose) instance = null; - if (instance == null) { - instance = new chargeEvaluations(); - } - instance.setVisible(true); - isDispose=false; - return instance; - } - - - public chargeEvaluations() { - setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - - setBounds(100, 100, 1300, 600); - 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); - - ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") ); - setIconImage(img.getImage()); - setTitle(commandes.Titre + " - La base de données des évaluations"); - - - contentPane = new JPanel(); - contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); - setContentPane(contentPane); - contentPane.setLayout(new BorderLayout(2, 2)); - - JPanel panelGauche = new JPanel(); - contentPane.add(panelGauche, BorderLayout.WEST); - panelGauche.setLayout(new FlowLayout(FlowLayout.LEFT, 2, 2)); - - JPanel panelHaut = new JPanel(); - contentPane.add(panelHaut, BorderLayout.NORTH); - - - lblInformationBaseEvluation.setFont(new Font("Tahoma", Font.BOLD, 14)); - panelHaut.add(lblInformationBaseEvluation); - - JPanel panelBas = new JPanel(); - contentPane.add(panelBas, BorderLayout.SOUTH); - panelBas.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 10)); - - JButton btnSupprimeEvaluation = new JButton("Supprimer une évaluation"); - btnSupprimeEvaluation.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - } - }); - btnSupprimeEvaluation.setForeground(new Color(255, 0, 0)); - btnSupprimeEvaluation.setFont(new Font("Tahoma", Font.BOLD, 12)); - panelBas.add(btnSupprimeEvaluation); - - Component horizontalGlue = Box.createHorizontalGlue(); - panelBas.add(horizontalGlue); - - Component horizontalGlue_1 = Box.createHorizontalGlue(); - panelBas.add(horizontalGlue_1); - - JButton btnSaveEvaluation = new JButton("Enregistre l'évaluation actuelle"); - btnSaveEvaluation.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - new actSaveHistoriqueEvaluation(); - } - }); - btnSaveEvaluation.setForeground(new Color(0, 64, 128)); - btnSaveEvaluation.setFont(new Font("Tahoma", Font.BOLD, 12)); - panelBas.add(btnSaveEvaluation); - - JButton btnValide = new JButton("Charger l'évaluation"); - btnValide.setFont(new Font("Tahoma", Font.BOLD, 12)); - btnValide.setForeground(new Color(0, 128, 0)); - panelBas.add(btnValide); - - JScrollPane scrollPaneCentre = new JScrollPane(); - contentPane.add(scrollPaneCentre, BorderLayout.CENTER); - - - scrollPaneCentre.setViewportView(panelCentre); - panelCentre.setLayout(new MigLayout("gap rel 4", "[100px:n,grow][50px:n,grow][150px:n,grow 150][150px:n,grow 150][150px:n,grow 150]", "[20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0]")); - - JLabel lblNewLabel = new JLabel("Nom de l'évaluation"); - lblNewLabel.setForeground(new Color(0, 0, 255)); - lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 14)); - panelCentre.add(lblNewLabel, "cell 0 0"); - - JLabel lblNewLabel_1 = new JLabel("Date d'enregistrement"); - lblNewLabel_1.setForeground(new Color(0, 0, 255)); - lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 14)); - panelCentre.add(lblNewLabel_1, "cell 1 0"); - - JLabel lblNewLabel_2 = new JLabel("Nom du fichier d'analyse"); - lblNewLabel_2.setForeground(new Color(0, 0, 255)); - lblNewLabel_2.setFont(new Font("Tahoma", Font.BOLD, 14)); - panelCentre.add(lblNewLabel_2, "cell 2 0"); - - JLabel lblNewLabel_3 = new JLabel("Titre de l'exercice"); - lblNewLabel_3.setForeground(new Color(0, 0, 255)); - lblNewLabel_3.setFont(new Font("Tahoma", Font.BOLD, 14)); - panelCentre.add(lblNewLabel_3, "cell 3 0"); - - JLabel lblNewLabel_4 = new JLabel("Propriété personnalisé Sujet"); - lblNewLabel_4.setForeground(new Color(0, 0, 255)); - lblNewLabel_4.setFont(new Font("Tahoma", Font.BOLD, 14)); - panelCentre.add(lblNewLabel_4, "cell 4 0"); - - -// String dateDernierEnregistrement = commandes.evaluationsBase.getAttributs().get("date"); - - String nombreEvluation = String.valueOf(commandes.evaluationsBase.getNodes().size()); - - lblInformationBaseEvluation.setText("Date dernière modification : " +calcul.formatDateWriter.DateEnClairFR( calcul.formatDateWriter.DateLibreOffice(commandes.evaluationsBase.getAttributs().get("date"))) + " -- Nombre d'évaluation : " + nombreEvluation); - - for(int i = 0 ; i1) { - for(int i = 0; i < LesRadioButtons.size();i++) { - LesRadioButtons.get(i).setSelected(false); - } - }else { - for(int i = 0; i < LesRadioButtons.size();i++) { - if(LesRadioButtons.get(i).isSelected()) { - chargeEvaluationSelected(commandes.evaluationsBase.getNodes().get(i)); - isDispose=true; - dispose(); - } - } - } - } - }); - - - btnSupprimeEvaluation.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - int compteur = 0; - for(int i = 0; i < LesRadioButtons.size();i++) { - if(LesRadioButtons.get(i).isSelected()) compteur++; - } - if(compteur>1) { - for(int i = 0; i < LesRadioButtons.size();i++) { - LesRadioButtons.get(i).setSelected(false); - } - }else { - for(int i = 0; i < LesRadioButtons.size();i++) { - if(LesRadioButtons.get(i).isSelected()) { - commandes.evaluationsBase.getNodes().remove(i); - try { - ecritureBaseEvaluation(commandes.evaluationsBase); - } catch (IOException e1) { - e1.printStackTrace(); - } - actualise(); - } - } - } - } - }); - - - /** - * Bouton Sauvegarde de l'évaluation.
- */ - btnSaveEvaluation.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if(commandes.fichierAnalyseValide) { - - int compteur = 0; - String name ="Nom de l'évaluation"; - for(int i = 0; i < LesRadioButtons.size();i++) { - if(LesRadioButtons.get(i).isSelected()) compteur++; - } - if(compteur>1) { - for(int i = 0; i < LesRadioButtons.size();i++) { - LesRadioButtons.get(i).setSelected(false); - } - }else { - for(int i = 0; i < LesRadioButtons.size();i++) { - if(LesRadioButtons.get(i).isSelected()) { - name = LesRadioButtons.get(i).getText(); - } - } - } - - - name = JOptionPane.showInputDialog(null,"Donner un nom à cette évaluation ?",name); - - if(!name.isBlank()) { - if(!isEvaluationExist(name)) { - commandes.evaluationsBase.getNodes().add(0, creationNodeEvaluation(new node(), name));; - }else { - creationNodeEvaluation(commandes.evaluationsBase.retourneFirstNodeByNameAndAttributValueExactStrict("evaluation", "name", name), name); - } - - //Mise à jour de la base de données - Date aujourdhui = new Date(); - commandes.evaluationsBase.getAttributs().put("version", commandes.version); - try { - commandes.evaluationsBase.getAttributs().put("date", calcul.formatDateWriter.DateLibreOffice(aujourdhui)); - ecritureBaseEvaluation(commandes.evaluationsBase); - actualise(); - } catch (ParseException | IOException e1) { - e1.printStackTrace(); - } - } - } - } - }); - - ListenerAction(); - } - - //Quitte la fenêtre.
- private void ListenerAction() { - addWindowListener(new java.awt.event.WindowAdapter() { - @Override - public void windowClosing(java.awt.event.WindowEvent windowEvent) { - isDispose=true; - dispose(); - } - }); - } - - class MyMouseListener extends MouseAdapter { - public void mouseClicked(MouseEvent evt) { - - Component focusOwner = FocusManager.getCurrentManager().getFocusOwner(); - indexSelect = LesRadioButtons.indexOf(focusOwner); - - if (evt.getClickCount() == 3) { - System.out.println("triple-click"); - LesRadioButtons.get(indexSelect).setSelected(true); - } else if (evt.getClickCount() == 2) { - System.out.println("double-click"); - LesRadioButtons.get(indexSelect).setSelected(true); - } - else if (evt.getClickCount() == 1) { - System.out.println("click"); - LesRadioButtons.get(indexSelect).setSelected(true); - } - - - System.out.println("indexSelect = " + indexSelect); - - for(int i = 0; i < LesRadioButtons.size();i++) { - if(i!=indexSelect) LesRadioButtons.get(i).setSelected(false); - } - - } - } - - - - - /** - * charge en mémoire l'évaluation sélectionnée.
- * @param evaluation - */ - private void chargeEvaluationSelected(node evaluation) { - - //* Charge le node sujet provisoirement - commandes.path = evaluation.getAttributs().get("path"); //Dossier des fichiers des étudiants - commandes.sujet = evaluation.retourneFirstEnfantsByName("fichier"); // Chargement provisoire du node sujet depuis la base - commandes.nameSujet = evaluation.getAttributs().get("analysis_filename"); - commandes.PathFilenameAnalysis = evaluation.getAttributs().get("PathFilenameAnalysis"); - - //** Les paramètres - commandes.version = evaluation.getAttributs().get("version"); - commandes.fichierStudentMoodle = Boolean.valueOf(evaluation.getAttributs().get("fichierStudentMoodle")); - commandes.sansFeeback = Boolean.valueOf(evaluation.getAttributs().get("sansFeeback")); - commandes.noDetail = Boolean.valueOf(evaluation.getAttributs().get("noDetail")); - commandes.noNote = Boolean.valueOf(evaluation.getAttributs().get("noNote")); - commandes.zipfeedback = Boolean.valueOf(evaluation.getAttributs().get("zipfeedback")); - commandes.verifHisto2 = Boolean.valueOf(evaluation.getAttributs().get("verifHisto2")); - commandes.ecritNoteCSV = Boolean.valueOf(evaluation.getAttributs().get("ecritNoteCSV")); - commandes.newLogo = Boolean.valueOf(evaluation.getAttributs().get("newLogo")); - commandes.noLogo = Boolean.valueOf(evaluation.getAttributs().get("noLogo")); - - commandes.fourniCSV = Boolean.valueOf(evaluation.getAttributs().get("fourniCSV")); - commandes.nameCSV = evaluation.getAttributs().get("nameCSV"); - - commandes.fourniCSV = Boolean.valueOf(evaluation.getAttributs().get("fourniCSV")); - commandes.nameSVG = evaluation.getAttributs().get("nameSVG"); - - - commandes.nodeCSV = evaluation.retourneFirstEnfantsByName("fileCSV"); - - commandes.contenuFichierSVG = evaluation.retourneFirstEnfantsByName("nodSVG").retourneLesContenusEnfants(""); - - commandes.fichierAnalyseValide = true; - - - - //* Rechercher la source - String CheminVersFileXML = ""; - if(commandes.os.contains("Win")) { - commandes.PathFilenameAnalysis.replaceAll("/", "\\"); // Sur Windows - CheminVersFileXML = commandes.PathFilenameAnalysis + "\\" + commandes.nameSujet; - - }else { - commandes.PathFilenameAnalysis.replaceAll("\\", "/"); // Sur Windows // Sur mac & Linux - CheminVersFileXML = commandes.PathFilenameAnalysis + "/" + commandes.nameSujet; - } - - File file = new File(CheminVersFileXML); - if(file.exists()) { - chargeLeNodeSujet(file); - commandes.path = evaluation.getAttributs().get("path"); //Recharge le chemin vers le dossier contenant les fichiers des étudiants - }else { - JFrame frame = new JFrame(); - JLabel texte = new JLabel("

Le fichier d'analyse de l'évaluation, " + commandes.nameSujet + ", a été renommé ou supprimé.


" - + "

Le fichier d'analyse de l'évaluation est récupéré depuis la base de données des évaluations.

"); - JOptionPane.showMessageDialog(frame, texte); - } - - - //** Remise à zéro de la base dans la mémoire de l'application - commandes.evaluationsBase = null; - - //** Affichage de la fenêtre - if(!evaluate.isDispose) { - evaluate.getInstance(); - }; - if(!create.isDispose) { - create.getInstance(); - }; - - isDispose=true; - - } - - - /** - * Charge le fichier d'analyse de l'évaluation.
- * @param file - */ - private void chargeLeNodeSujet(File file) { - - BufferedReader br; - try { - br = new BufferedReader( - new InputStreamReader( - new FileInputStream(file.getAbsoluteFile()), "UTF-8")); - String line; - StringBuilder targetString = new StringBuilder(); - while ((line = br.readLine()) != null) { - targetString.append(line); - } - - //node.node2(targetString); - node sujetLoad = new node(targetString.toString().replace("\t","").replace("\r", "").replace("\n", "")); - - // Vérification de la conformité du fichier d'analyse - if(!ChargeFichierXML.fichierSujetValide(sujetLoad)) { - JOptionPane.showMessageDialog(null, "Le fichier d'analyse n'est pas valide."); - }else { - commandes.initialiseParametresSettingProprietes(); - commandes.sujet = sujetLoad; - commandes.sujetSauvegarde = commandes.sujet.clone(); - //Chargement des paramètres du fichier d'analyse - System.out.println( "Chargement des paramètres du fichier d'analyse"); - meptl.chargementParametresFichierAnalyse(); - - // Rechercher des erreurs dans le fichier d'analyse - System.out.println( "Vérification du fichier d'analyse" ); - new verificationFichierAnalyse(); - } - - } catch (UnsupportedEncodingException e1) { - e1.printStackTrace(); - } catch (FileNotFoundException e1) { - e1.printStackTrace(); - } catch (Exception e) { - } - - } - - - - - private void ecritureBaseEvaluation(node evaluations) throws IOException { - File directory = new File(FileSystemView.getFileSystemView().getDefaultDirectory().getPath()); - Run.ecritureNodeEnXML(evaluations, "base_evaluations_analyseWriter.xml", directory.getAbsolutePath(), Run.TypeFile.Evaluation); - } - - - private boolean isEvaluationExist(String nameEvaluation) { - if(commandes.evaluationsBase.retourneFirstNodeByNameAndAttributValueExactStrict("evaluation", "name", nameEvaluation)!=null) return true; - return false; - } - - - private node creationNodeEvaluation(node evaluation, String name) { - evaluation.setNomElt("evaluation"); - Date aujourdhui = new Date(); - evaluation.getAttributs().put("version", commandes.version); - evaluation.getAttributs().put("name", name); - evaluation.getAttributs().put("PathFilenameAnalysis", commandes.PathFilenameAnalysis); - evaluation.getAttributs().put("path", commandes.path); - evaluation.getAttributs().put("fichierStudentMoodle", String.valueOf(commandes.fichierStudentMoodle)); - evaluation.getAttributs().put("sansFeeback", String.valueOf(commandes.sansFeeback) ); - evaluation.getAttributs().put("noDetail", String.valueOf(commandes.noDetail) ); - evaluation.getAttributs().put("noNote", String.valueOf(commandes.noNote) ); - evaluation.getAttributs().put("zipfeedback", String.valueOf(commandes.zipfeedback) ); - evaluation.getAttributs().put("verifHisto2", String.valueOf(commandes.verifHisto2) ); - evaluation.getAttributs().put("ecritNoteCSV", String.valueOf(commandes.ecritNoteCSV) ); - evaluation.getAttributs().put("newLogo", String.valueOf(commandes.newLogo) ); - evaluation.getAttributs().put("noLogo", String.valueOf(commandes.noLogo) ); - - //Supprime le node fichier s'il existe. - node nodremove = evaluation.retourneFirstEnfantsByName("fichier"); - if(!nodremove.isVide()) evaluation.getNodes().remove(nodremove); - - evaluation.getNodes().add(commandes.sujet); - - if(commandes.sujet.getAttributs().get("analysis_filename").contains(".xml")) { - evaluation.getAttributs().put("analysis_filename",commandes.sujet.getAttributs().get("analysis_filename")); - }else { - evaluation.getAttributs().put("analysis_filename",commandes.nameSujet); - } - - - evaluation.getAttributs().put("fourniCSV", String.valueOf(commandes.fourniCSV) ); - if(commandes.nameCSV!=null) { - evaluation.getAttributs().put("nameCSV", commandes.nameCSV ); - }else { - evaluation.getAttributs().put("nameCSV", ""); - } - - evaluation.getAttributs().put("fourniCSV", String.valueOf(commandes.fourniCSV) ); - if(commandes.nameSVG!=null) { - evaluation.getAttributs().put("nameSVG", commandes.nameSVG ); - }else { - evaluation.getAttributs().put("nameSVG", "" ); - } - - - //Supprime le node fichier s'il existe. - nodremove = evaluation.retourneFirstEnfantsByName("fileCSV"); - if(!nodremove.isVide()) evaluation.getNodes().remove(nodremove); - - evaluation.getNodes().add(commandes.nodeCSV); - - try { - evaluation.getAttributs().put("date", calcul.formatDateWriter.DateLibreOffice(aujourdhui)); - } catch (ParseException e) { - e.printStackTrace(); - } - - if(commandes.nameSVG!=null) { - if(!commandes.nameSVG.isBlank() && !commandes.contenuFichierSVG.isBlank()) { - node SVG = new node(); - SVG.setNomElt("nodSVG"); - SVG.setContenu(commandes.contenuFichierSVG); - evaluation.getNodes().add(SVG); - } - } - - return evaluation; - - } - - - private void actualise() { - - LesRadioButtons.clear(); - LeslabelsDate.clear(); - LeslabelsTitre.clear(); - LeslabelsFileNameAnalysis.clear(); - LeslabelsMeta.clear(); - - panelCentre.removeAll(); - panelCentre.setLayout(new MigLayout("gap rel 4", "[100px:n,grow][50px:n,grow][150px:n,grow 150][150px:n,grow 150][150px:n,grow 150]", "[20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0][20px:20px:20px,shrinkprio 0,shrink 0]")); - - JLabel lblNewLabel = new JLabel("Nom de l'évaluation"); - lblNewLabel.setForeground(new Color(0, 0, 255)); - lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 14)); - panelCentre.add(lblNewLabel, "cell 0 0"); - - JLabel lblNewLabel_1 = new JLabel("Date d'enregistrement"); - lblNewLabel_1.setForeground(new Color(0, 0, 255)); - lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 14)); - panelCentre.add(lblNewLabel_1, "cell 1 0"); - - JLabel lblNewLabel_2 = new JLabel("Nom du fichier d'analyse"); - lblNewLabel_2.setForeground(new Color(0, 0, 255)); - lblNewLabel_2.setFont(new Font("Tahoma", Font.BOLD, 14)); - panelCentre.add(lblNewLabel_2, "cell 2 0"); - - JLabel lblNewLabel_3 = new JLabel("Titre de l'exercice"); - lblNewLabel_3.setForeground(new Color(0, 0, 255)); - lblNewLabel_3.setFont(new Font("Tahoma", Font.BOLD, 14)); - panelCentre.add(lblNewLabel_3, "cell 3 0"); - - JLabel lblNewLabel_4 = new JLabel("Propriété personnalisé Sujet"); - lblNewLabel_4.setForeground(new Color(0, 0, 255)); - lblNewLabel_4.setFont(new Font("Tahoma", Font.BOLD, 14)); - panelCentre.add(lblNewLabel_4, "cell 4 0"); - - - String dateDernierEnregistrement = commandes.evaluationsBase.getAttributs().get("date"); - - String nombreEvluation = String.valueOf(commandes.evaluationsBase.getNodes().size()); - - lblInformationBaseEvluation.setText("Date dernière modification : " + dateDernierEnregistrement + " -- Nombre d'évaluation : " + nombreEvluation); - - for(int i = 0 ; i