diff --git a/+base_listes_etudiants.xml b/+base_listes_etudiants.xml new file mode 100644 index 0000000..93e06b0 --- /dev/null +++ b/+base_listes_etudiants.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/base_listes_etudiants.xml b/base_listes_etudiants.xml index 93e06b0..1c396f5 100644 --- a/base_listes_etudiants.xml +++ b/base_listes_etudiants.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/fichier analyse - Oxyneuf - version modifier pablo.xml b/fichier analyse - Oxyneuf - version modifier pablo.xml deleted file mode 100644 index 853512f..0000000 --- a/fichier analyse - Oxyneuf - version modifier pablo.xml +++ /dev/null @@ -1 +0,0 @@ - 2023-03-07T15:48:41.807000000 PT41M22S 10 LibreOffice/7.2.7.2$Windows_X86_64 LibreOffice_project/8d71d29d553c0f7dcbfa38fbfda25ee34cce99a2 John Deer 2023-03-28T09:41:37.167000000 John Bean L’Oxyneuf Premier auteur John Deer 07/03/23 Éditeur John Bean 28/03/23 L’Oxyneuf Rémi Garrel était en retard ce matin du mardi du 20 août 2298. Pourtant ça ne lui ressemblait pas : rigoureux, méticuleux, il aimait que chaque chose soit à sa place, mais ce matin, une manifestation l’avait retardé. Les manifestations d’asthmatiques se multipliaient : ils demandaient à l’état de trouver enfin une solution aux problèmes de pollution de l’air qui les empêchaient de respirer correctement. C’est pour cela que l’Etat avait subventionné de nombreux laboratoires, pour qu’ils trouvent enfin une solution à ce problème. Rémi était l’un de ces chercheurs. Il travaillait sur des moineaux, très sensibles à la qualité de l’air, qui pour la plupart mouraient intoxiqués par les gaz polluants. Rémi essayait de trouver un moyen de changer la composition de l’air, contrairement aux autres laboratoires qui tentaient de purifier l’air, de le nettoyer et non pas de le modifier. Avec son équipe, il en était déjà à son huitième essai. Pour chaque expérience, les chercheurs mettaient dix moineaux dans des cubes en verre hermétique, des cubes remplis d’air modifié. Aucun des moineaux sur lesquels ils travaillaient n’avait dépassé la barre des cinq jours, alors, après trois semaines d’absence, il se demandait dans quel état seraient les oiseaux, ça n’allait sûrement pas être beau à voir. Pendant ses vacances, Rémi avait confié cette expérience à l’un de ses collègues, qui n’avait pas pu s’en occuper à cause d’un problème de santé. La journée de Rémi ne commençait donc pas de la meilleure manière : il s’attendait déjà à jeter une dizaine de cadavres de moineaux à la poubelle et il détestait cela. Rémi rentra dans son laboratoire, ouvrit la porte de la salle des expériences et se dirigea vers le rouleau de sac poubelle ; c'est alors qu'il entendit des piaillements ! Il tourna la tête vers le cube d’expérience numéro 9 et vit que les moineaux étaient VIVANTS ! Il se précipita vers son ordinateur où l’on pouvait voir les pourcentages des gaz, et il enregistra bien la composition numéro 9 : 59 % d’oxygène ; 30 % de pollution (composé de monoxyde d’azote et de dioxyde d’azote) ; 8 % d’herbium (un nouveau gaz fait à partir de la combustion de l’herbe trouvé en 2240) ; 1 % d’argon et 2 % d’autres gaz classés sous l’appellation « gaz traces » Il endormit les moineaux dans le but d'étudier leurs poumons pour voir si la composition numéro 9 ne les avait pas endommagés. Il fit proprement et minutieusement les analyses. Il avait trouvé la combinaison miracle ! L’herbium éliminait le monoxyde d’azote. Enfin il n’aurait plus à se salir les mains en jetant les cadavres à la poubelle, au contraire, il aurait les mains propres pour trinquer à sa découverte. Les larmes aux yeux, il alla vite annoncer la nouvelle à son directeur et au reste de son équipe. Ensuite tout s’enchaîna très vite, il fallut d’abord vérifier que Rémi ne s’était pas trompé et refaire l’expérience sur des moineaux, ce qui fut un nouveau succès. Ensuite ils appelèrent des humains cobayes pour vérifier s’il n’y avait bien aucun effet secondaire sur les humains, ces analyses durèrent 3 mois, les volontaires devaient rester comme les moineaux dans des cubes en verre hermétique, dans lequel on injectait l’air modifié, la fameuse composition numéro 9. Au bout de trois mois, les poumons des volontaires étaient comme neuf, en meilleur état qu’avant le début de l’expérience. La composition numéro 9 était la découverte du siècle ! Le ministre de la Santé suivait de très près cette découverte et dès que les résultats spectaculaires sur les volontaires furent confirmés, le ministre organisa une conférence de presse pour annoncer que les chercheurs français avaient trouvé une solution révolutionnaire aux problèmes de la pollution de l’air : • Mes chers concitoyens, aujourd’hui est un jour qui restera dans nos mémoires, les chercheurs français sont les sauveurs de l’humanité, ils ont trouvé un moyen de changer la composition de l’air et de pouvoir enfin respirer correctement pour libérer nos hôpitaux saturés par tous ces patients sous assistance respiratoire. La France mettra tous ses moyens industriels pour diffuser ce nouvel oxygène, baptisé Oxyneuf, dans tout le territoire français. Rémi écoutait le discours du ministre de la Santé avec fierté, il ne s’était jamais senti si important. Il ne fallut pas plus d’une semaine pour que la nouvelle se répande dans le monde entier. La France fut le premier pays à diffuser l’Oxyneuf sur son territoire. Dans toutes les villes, des ouvriers venaient installer ces diffuseurs d’Oxyneuf, des diffuseurs qui ressemblaient à des petits canons ; au fond, une hélice ventilait l’Oxyneuf qui était stocké dans une cartouche pas plus longue qu’un bras. Ce fut une véritable prouesse technologique. Chaque pays fit ses recherches sur le sujet et tous finirent par diffuser l’oxyneuf dans leurs territoires. Tout le monde se réjouissait de pouvoir mieux respirer, les hôpitaux se vidèrent, les asthmatiques jetèrent leur ventoline, les parcs se remplissaient à nouveau de joggeurs, on pouvait entendre les grenouilles qui coassaient, les oiseaux qui chantaient plus fort. Cinq mois plus tard, grâce à l’argent gagné avec la découverte de l’Oxyneuf, Rémi avait déménagé dans une grande maison avec quatre chambres prévues pour ses futurs enfants. Ce matin-là, il buvait son café tranquillement en lisant sa revue scientifique préférée avant d’aller au travail. Il tomba sur un petit article déplorant une forte baisse de natalité au Luxembourg ; c'était du jamais vu, les maternités étaient vides. Rémi sentit son cœur se serrer car il savait que c’était l’endroit où avait été diffusé le plus d’Oxyneuf. L’après-midi, au travail, il entendit ses collègues : - Tu as vu ce qui se passe au Luxembourg ! -Oui ! Et il parait que c’est pareil en Italie Rémi se précipita vers son bureau et regarda les informations. Déjà les journalistes établissaient un lien entre la baisse de natalité et l’Oxyneuf. Rémi ne comprenait pas : les tests ne démontraient pourtant que ça ne rendrait pas les gens stériles. En un mois, les chiffres de la natalité chutèrent de façon vertigineuse dans le monde entier ; Rémi n’osait plus sortir de chez lui, il avait éteint son téléphone, il s’était coupé du monde et les quatre chambres prévues pour ses futurs enfants resteraient, il le savait maintenant, inhabitées. Rémi passa des nuits à réfléchir et il en déduisit que les tests n’avaient pas duré assez longtemps : ils n’avaient duré que trois mois, alors que les premiers cas de stérilité n'étaient apparus que cinq mois après la diffusion de l’Oxyneuf. Neuf mois plus tard le dernier bébé naquit. Cela ne faisait plus de Rémi le sauveur mais l’extincteur de l’humanité... choose the encoding from this list : UTF-8 US-ASCII ISO-8859-1 UTF-16BE UTF-16LE UTF-16 Menu Fichier/Propriétés-!br!-Onglet Description Menu Fichier/Propriétés-!br!-Onglet Description Menu Fichier/Propriétés-!br!-Onglet Propriétés personnalisées-!br!-Cliquez sur le bouton "Ajouter une propriété" pour ajouter une méta données.-!br!--!br!--!b!--!u!-ATTENTION-!/u!--!/b!-: Vous devez tapez comme nom de la méta donnée -!b!-Auteur2-!b!--!br!-Exactement ces caractères, ne tapez pas d'espace après le dernier caractère.-!br!-Sinon vous aurez une valeur -!b!-null-!/b!-. Menu Fichier/Propriétés-!br!-Onglet Propriétés personnalisées-!br!-Clique sur le bouton "Ajouter une propriété" pour ajouter une méta données.-!br!--!br!--!b!--!u!-ATTENTION-!/u!--!/b!-: Vous devez tapez comme nom de la méta donnée -!b!-Date du contrôle-!b!--!br!-Exactement ces caractères, ne tapez pas d'espace après le dernier caractère.-!br!-Sinon vous aurez une valeur -!b!-null-!/b!-. Menu Fichier/Propriétés-!br!-Onglet Propriétés personnalisées-!br!-Cliquez sur le bouton "Ajouter une propriété" pour ajouter une méta données.-!br!--!br!--!b!--!u!-ATTENTION-!/u!--!/b!-: Vous devez tapez comme nom de la méta donnée -!b!-Département-!b!--!br!-Exactement ces caractères, ne tapez pas d'espace après le dernier caractère.-!br!-Sinon vous aurez une valeur -!b!-null-!/b!-. Menu Fichier/Propriétés-!br!-Onglet Propriétés personnalisées-!br!-Clique sur le bouton "Ajouter une propriété" pour ajouter une méta données.-!br!--!br!--!b!--!u!-ATTENTION-!/u!--!/b!-: Vous devez tapez comme nom de la méta donnée -!b!-Groupe-!b!--!br!-Exactement ces caractères, ne tapez pas d'espace après le dernier caractère.-!br!-Sinon vous aurez une valeur -!b!-null-!/b!-. Menu Fichier/Propriétés-!br!-Onglet Propriétés personnalisées-!br!-Clique sur le bouton "Ajouter une propriété" pour ajouter une méta données. Le style de paragraphe doit insérer un saut de page. Les padding sont des marges intérieures. Les padding sont des marges intérieures. Les padding sont des marges intérieures. Les padding sont des marges intérieures. Exemple : #808080 0.176cm 0.176cm-!br!-La couleur : #808080-!br!-0.176cm : décalage X-!br!-0.176cm : décalage Y C'est l'ordre d'apparition de la page lorsque le mode "-!b!-Livre-!/b!-" est utilisé.-!br!-Dans le mode d'affichage "-!b!-Livre-!/b!-" toutes les pages s'affichent, y compris les pages vides. Si l'objet ne se nomme pas -!b!--!u!-EXACTEMENT-!/u!--!/b!- comme indiqué dans la consigne.-!br!--!br!-L'algorithme d'analyse ne pourra pas trouver l'objet.Vous aurez que des valeurs -!b!--!u!-NULL-!/u!--!/b!--!br!--!br!-Faites attention à la case (majuscule et minuscule). Ne tapez pas d'espace après le dernier caractère. Ne tapez pas de guillemet, etc. Pour insérer le champ "-!b!-Commentaires-!/b!-".-!br!-Sélectionner le menu Insertion/Champ/Autres champs...-!br!--!br!-Dans la boite de dialogue "Champ"-!br!-Onglet "Info document" Dans les -!b!-Propriétés-!/b!- du style de page-!br!-Onglet -!b!-Page-!/b!--!br!--!b!-Mise en page-!/b!- -!b!--!u!-Attention formatage local:-!/u!--!/b!--!br!-Si le texte n'a pas été trouvé.-!br!-Vous devez savoir que l'application recherche le texte par son contenu.-!br!-Mais aussi par le type d'élément, ici un formatage local.-!br!-Il est probable que tous les autres attributs (propriétés) de ce formatage local soient "null".-!br!-Vérifier le contenu textuel, ou vérifier que vous avez formaté localement ce text.-!br!-N'oubliez pas d'effacer le format avant de reformater le texte. -!b!--!u!-Attention paragraphe de texte:-!/u!--!/b!--!br!-Si le texte de ce paragraphe n'a pas été trouvé.-!br!-Vous devez savoir que l'application recherche le paragraphe par son contenu.-!br!-Mais aussi par le type de l'élément, ici un paragraphe.-!br!-Il est probable que tous les autres attributs (propriétés) de ce paragraphe soient "null".-!br!-Vérifier le contenu textuel de votre paragraphe, ou vérifier que c'est bien un paragraphe.-!br!- -!b!--!u!-Attention :-!/u!--!/b!--!br!-Ne tapez pas d'espace après le dernier guillemet du texte.-!br!-Ne tapez pas d'espace après le dernier caractère de votre condition. Menu Insertion/Champ/Autres champs...-!br!-Onglet "-!b!-Variables-!/b!-" Pour légender une image, il faut un clic droite sur l'image et sélectionner -!b!-Insérer une légende...-!/b!--!br!-Cependant, il faut retirer la protection du contenu. Dans la boite de dialogue -!b!-Propriétés-!/b!--!br!-Onglet Option-!br!-Vou devez cocher les protections (case à cocher) -!b!--!u!-Attention :-!/u!--!/b!--!br!-Il peut y avoir devant la numération un espace.-!br!--!br!-Par exemple : -!b!-§[espace]-!/b!- Dans la boite de dialogue "Numérotation des chapitres"-!br!-Onglet Position-!br!-Numerotation suivi par. Dans la boite de dialogue "Numérotation des chapitre"-!br!-Afficher les sous-niveaux. Le texte du lien qui permet d'atteindre le paragraphe. Ne tapez pas d'espace à la fin du nom de la colonne, Sinon Null. La variable de séquence permet de légender et de créer des index.-!br!-Pour ajouter une variable de séquence, vous devez sélectionner le menu-!br!-Insertion/Champ/Autres champs...-!br!-Onglet "-!b!-Variables-!/b!-". -!b!--!u!-Attention retour à la ligne:-!/u!--!/b!--!br!-Si le texte n'a pas été trouvé.-!br!-Vous devez savoir que l'application recherche le texte par son contenu.-!br!-Mais aussi par le type de l'élément, ici un retour à la ligne.-!br!-Il est probable que tous les autres attributs (propriétés) de ce paragraphe soient "null".-!br!-Vérifier le contenu textuel de votre paragraphe, ou vérifier que c'est bien un retour à la ligne.-!br!- Retour à la ligne-!br!-Un retour à la ligne est différent d'un paragraphe.-!br!-Pour réaliser un retour à la ligne vous devez taper-!br!--!b!-SHIFT (majuscule) + ENTRÉE-!/b!- Insertion d'un caractère tabulation Insertion du champ numéro de page Insertion du champ nombre de page Insertion du champ nombre de révision Paragraphe de texte-!br!-Un paragraphe de texte est créé avec la touche-!br!--!b!-ENTRÉE-!/b!- Le formatage direct-!br!-Lorsque l'on modifie localement les attributs d'un texte (Gras, italic, taille, soulignage, etc.) Un espace est inséré lorsque vous souhaitez un séparateur de mots à un endroit où un saut de ligne est acceptable. Un espace est inséré lorsque vous souhaitez un séparateur de mots à un endroit où un saut de ligne est acceptable. Le paragraphe juste avant doit être le même que celui indiqué dans la consigne. Menu Fichier/Propriétés-!br!-Onglet Description Retour à la ligne-!br!-Un retour à la ligne est différent d'un paragraphe.-!br!-Pour réaliser un retour à la ligne vous devez taper-!br!--!b!-SHIFT (majuscule) + ENTRÉE-!/b!- Insertion du champ numéro de page Un espace est inséré lorsque vous souhaitez un séparateur de mots à un endroit où un saut de ligne est acceptable. Menu Fichier/Propriétés-!br!-Onglet Description \ No newline at end of file diff --git a/src/MEPTL/meptl.java b/src/MEPTL/meptl.java index 0ab0431..e6a6e84 100644 --- a/src/MEPTL/meptl.java +++ b/src/MEPTL/meptl.java @@ -2043,6 +2043,12 @@ public class meptl { if(commandes.nodeCSV!=null) { csv = commandes.nodeCSV; + separator = commandes.nodeCSV.getAttributs().get("separator"); + encoding = commandes.nodeCSV.getAttributs().get("encoding"); + nameid = commandes.nodeCSV.getAttributs().get("id"); + nameemail = commandes.nodeCSV.getAttributs().get("email"); + nameStudent = commandes.nodeCSV.getAttributs().get("name"); + firstnameStudent = commandes.nodeCSV.getAttributs().get("firstname"); }else { csv = commandes.sujet.retourneFirstEnfantsByName("csv"); csv.getAttributs().put("nameListStudent", nameListStudent); @@ -2087,7 +2093,13 @@ public class meptl { if(!target[0].contains(separator)||!target[0].contains(nameid) ||!target[0].contains(nameemail)||!target[0].contains(nameStudent) ||!target[0].contains(firstnameStudent)) { - JOptionPane.showMessageDialog(null, "Le fichier CSV ne correspond pas\nà la définition des paramètres d'importation", "Erreur CSV", JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog(null, "

Le fichier CSV ne correspond pas à la définition des paramètres d'importation.

" + + "

Les paramètres d'importation sont :

" + + "
  1. Séparateur : "+separator +"
  2. " + + "
  3. Champ nom de l'étudiant : "+nameStudent+"
  4. " + + "
  5. Champ prénom de l'étudiant : "+firstnameStudent+"
  6. " + + "
  7. Champ identifiant de l'étudiant : " +nameid +"
  8. " + + "
  9. Champ email de l'étudiant : "+nameemail +"
", "Erreur CSV", JOptionPane.INFORMATION_MESSAGE); return false; } diff --git a/src/baseListesEtudiants/chargeListeEtudiants.java b/src/baseListesEtudiants/chargeListeEtudiants.java new file mode 100644 index 0000000..6973db1 --- /dev/null +++ b/src/baseListesEtudiants/chargeListeEtudiants.java @@ -0,0 +1,16 @@ +package baseListesEtudiants; + +import MEPTL.commandes; + +public class chargeListeEtudiants { + + public static void chargeDansleNodeCSVListeEtudiants(Integer index) { + if(commandes.listesEtudiants!=null) { + if(commandes.listesEtudiants.getNodes().size()>0) { + commandes.nodeCSV = commandes.listesEtudiants.getNodes().get(index); + commandes.fourniCSV=true; + } + } + } + +} diff --git a/src/baseListesEtudiants/recupeNodeBaseListesEtudiants.java b/src/baseListesEtudiants/recupeNodeBaseListesEtudiants.java index e7a0c63..b4e8c8c 100644 --- a/src/baseListesEtudiants/recupeNodeBaseListesEtudiants.java +++ b/src/baseListesEtudiants/recupeNodeBaseListesEtudiants.java @@ -42,8 +42,8 @@ public class recupeNodeBaseListesEtudiants { targetString.append(line); } String codeTexte = "" + targetString.toString().replace("\t","").replace("\r", "").replace("\n", ""); - - node nodRetourne = new node(codeTexte.replaceAll(">/{1,}<", "><")); //Le node A est nécessaire. + codeTexte = codeTexte.replaceAll(">/{1,}<", "><"); + node nodRetourne = new node(codeTexte); if(nodRetourne.getNomElt().equals("fichier")) { nodRetourne.setNomElt("ListesEtudiants"); diff --git a/src/fenetres/baseDonneesEvaluations.java b/src/fenetres/baseDonneesEvaluations.java index ec1dd13..65e497a 100644 --- a/src/fenetres/baseDonneesEvaluations.java +++ b/src/fenetres/baseDonneesEvaluations.java @@ -489,7 +489,6 @@ private void ListenerAction() { * Chargement d'une évaluation par double click. */ table.addMouseListener( new MouseListener() { - @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { @@ -661,371 +660,4 @@ private void ListenerAction() { } -///** -// * charge en mémoire l'évaluation sélectionnée.
-// * @param evaluation -// */ -//private void chargeEvaluationSelected(node evaluation) { -// -// //* Charge le node sujet provisoirement -// commandes.NameEvaluationCharger= evaluation.getAttributs().get("name"); -// commandes.path = evaluation.getAttributs().get("path"); //Dossier des fichiers des étudiants -// node sujetLoad = new node(Run.ecritureXMLDansStringBuilder(evaluation.retourneFirstEnfantsByName("fichier"), Run.TypeFile.Sujet).replace("\t","").replace("\r", "").replace("\n", "")); -// commandes.sujet = sujetLoad; -// -//// 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"); -// -// if(evaluation.getAttributs().get("analyse_nombres_modifications_simultané_maxi")!=null) { -// commandes.analyse_nombres_modifications_simultané_maxi = Integer.valueOf(evaluation.getAttributs().get("analyse_nombres_modifications_simultané_maxi")); -// } -// -// 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()) { -// -// if (recupereDateFichierAnalyseSource(file)!=null) { -// -// Date DateFichierSource = recupereDateFichierAnalyseSource(file); -// Date DateFichierAnalyseBase = calcul.formatDateWriter.dateNodeSujet(); -// -// if(DateFichierAnalyseBase.before(DateFichierSource)) { -// JFrame frame = new JFrame(); -// JLabel text = new JLabel(); -// text.setText("

Le fichier d'analyse est déjà chargé depuis la base de données.


" -// + "

Cependant, vous avez le fichier d'analyse qui se trouve dans le dossier :

" -// + "

"+CheminVersFileXML+"

" -// + "

Et dont la date est plus récente que le fichier d'analyse qui se trouve dans la base.



" -// + "

Voulez-vous le charger depuis ce dossier ?

"); -// if (JOptionPane.showConfirmDialog(frame, text, "WARNING",JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { -// chargeLeNodeSujet(file); -// commandes.path = evaluation.getAttributs().get("path"); //Recharge le chemin vers le dossier contenant les fichiers des étudiants -// -// } -// } -// -// -// } -// -// -// } -// -// -// commandes.initialiseParametresSettingProprietes(); -// try { -// commandes.sujetSauvegarde = commandes.sujet.clone(); -// } catch (CloneNotSupportedException e) { -// e.printStackTrace(); -// } -// -// //Chargement des paramètres du fichier d'analyse -// meptl.chargementParametresFichierAnalyse(); -// -// -// -// //** 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 Date recupereDateFichierAnalyseSource(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 { -// if(sujetLoad.getAttributs().get("date")!=null) { -// String dateString = sujetLoad.getAttributs().get("date"); -// return calcul.formatDateWriter.DateLibreOffice(dateString); -// } -// -// } -// -// } catch (UnsupportedEncodingException e1) { -// e1.printStackTrace(); -// } catch (FileNotFoundException e1) { -// e1.printStackTrace(); -// } catch (Exception e) { -// } -// return null; -// -//} - - - -//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); -// -// String directoryName = ""; -// if(commandes.PathBaseEvaluationDefaut) { -// directoryName = Paths.get("").toAbsolutePath().toString(); -// }else { -// directoryName = commandes.PathBaseEvaluations; -// } -// Run.ecritureNodeEnXML(evaluations, commandes.NameBaseEvaluations, directoryName, 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) ); -// evaluation.getAttributs().put("analyse_nombres_modifications_simultané_maxi", String.valueOf(commandes.analyse_nombres_modifications_simultané_maxi) ); -// -// //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 recupeNodeBaseEvaluations() { -// -//// File directory = new File(FileSystemView.getFileSystemView().getDefaultDirectory().getPath()); -// -// String directoryName = ""; -// File file = null; -// if(commandes.PathBaseEvaluationDefaut) { -// 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("

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


" -// +"

Vous pouvez charger la base de données depuis la fenêtre \"base de données d'évaluation\" de l'application.

" -// + "

Sinon, une nouvelle base de données sera créé dans le dossier de l'application.

"); -// JOptionPane.showMessageDialog(frame, texte); -// } -// } -// -//} - -//private void afficheInformationEvaluation() { -// node evaluation = commandes.evaluationsBase.getNodes().get(indexSelect); -// node fichieranalyse = evaluation.retourneFirstEnfantsByName("fichier"); -// String version = evaluation.getAttributs().get("version"); -// String auteur = fichieranalyse.getAttributs().get("auteur"); -// String path = evaluation.getAttributs().get("path"); -// String modesuivi = fichieranalyse.getAttributs().get("historiquePresent"); -// String baremeAlpha = fichieranalyse.getAttributs().get("baremeABC"); -// String dossierNominatif = evaluation.getAttributs().get("fichierStudentMoodle"); -// String bareme = ""; -// if(!Boolean.valueOf(fichieranalyse.getAttributs().get("baremeABC"))) { -// bareme = fichieranalyse.getAttributs().get("notefrom"); -// } -// String progression = fichieranalyse.getAttributs().get("progression"); -// -// textPane.setText("Version analyseWriter : " + version+ -// "\nAuteur : " + auteur + -// "\nLes fichiers des étudiants sont dans des dossiers nominatifs : " + dossierNominatif+ -// "\nBarème alphabétique : " + baremeAlpha + -// "\nMode de suivi activé : " + modesuivi); -// -// textPane_1.setText("Path des étudiants : " + path + -// "\nBarème : " + bareme + -// "\nCoef. de progression : " + progression); -//} - } diff --git a/src/fenetres/baseDonneesListesEtudiants.java b/src/fenetres/baseDonneesListesEtudiants.java index 13f76bc..c5c18a7 100644 --- a/src/fenetres/baseDonneesListesEtudiants.java +++ b/src/fenetres/baseDonneesListesEtudiants.java @@ -4,6 +4,8 @@ import java.awt.BorderLayout; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; import javax.swing.ImageIcon; import javax.swing.JButton; @@ -19,7 +21,7 @@ import javax.swing.event.ListSelectionListener; import javax.swing.table.TableColumnModel; import MEPTL.commandes; -import action.actAddStudentBaseListesEtudiants; +import baseListesEtudiants.chargeListeEtudiants; import baseListesEtudiants.myTableBaseListesEtudiants; import net.miginfocom.swing.MigLayout; @@ -158,6 +160,48 @@ public class baseDonneesListesEtudiants extends JFrame{ }); + table.addMouseListener(new MouseListener() { + @Override + public void mouseClicked(MouseEvent e) { + if (e.getClickCount() == 2) { + if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1) { + System.out.println("un click ou deux click"); + if(lsm!=null)if (!lsm.isSelectionEmpty()) { + indexSelect = lsm.getMinSelectionIndex(); + chargeListeEtudiants.chargeDansleNodeCSVListeEtudiants(indexSelect); + evaluate.getInstance(); + baseDonneesListesEtudiants.getInstance(); + } + } + } + } + + @Override + public void mousePressed(MouseEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseReleased(MouseEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseEntered(MouseEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseExited(MouseEvent e) { + // TODO Auto-generated method stub + + } + }); + + } } diff --git a/src/fenetres/evaluate.java b/src/fenetres/evaluate.java index 2cd7efc..85cafa3 100644 --- a/src/fenetres/evaluate.java +++ b/src/fenetres/evaluate.java @@ -419,12 +419,14 @@ public class evaluate extends JFrame { if(commandes.fourniCSV) { lblChargementFichierCSV.setBackground(new Color(40,180,40)); - lblChargementFichierCSV.setText("Liste des étudiants"); + if(commandes.nodeCSV.getAttributs().get("nameListStudent")==null) { + commandes.nodeCSV.getAttributs().put("nameListStudent","?"); + commandes.nodeCSV.getAttributs().put("year", "?"); + } + lblChargementFichierCSV.setText("Liste des étudiants : " + commandes.nodeCSV.getAttributs().get("nameListStudent")); lblChargementFichierCSV.setOpaque(true); -// lblFichierCSV.setText("Fichier CSV : " + commandes.nameCSV + ""); }else { lblChargementFichierCSV.setOpaque(false); -// lblFichierCSV.setText("Fichier CSV"); } @@ -579,10 +581,6 @@ public class evaluate extends JFrame { toolBar.add(btnSaveEvaluation); // JButton btnSaveEvluation = toolBar.add( new actSaveHistoriqueEvaluation() ); -// btnSaveEvluation.addActionListener(new ActionListener() { -// public void actionPerformed(ActionEvent e) { -// } -// }); // btnSaveEvluation.setIcon(new ImageIcon(create.class.getResource("/resources/sauvegardehistoriqueevaluation.png"))); // btnSaveEvluation.setHideActionText(true); // toolBar.add(btnSaveEvluation); @@ -746,12 +744,15 @@ public class evaluate extends JFrame { chckPasDeProgression.setEnabled(true); if(commandes.fourniCSV) { + if(commandes.nodeCSV.getAttributs().get("nameListStudent")==null) { + commandes.nodeCSV.getAttributs().put("nameListStudent","?"); + commandes.nodeCSV.getAttributs().put("year", "?"); + } lblChargementFichierCSV.setBackground(new Color(40,180,40)); - lblChargementFichierCSV.setText("Liste des étudiants"); + lblChargementFichierCSV.setText("Liste des étudiants : " + commandes.nodeCSV.getAttributs().get("nameListStudent")); lblChargementFichierCSV.setOpaque(true); }else { lblChargementFichierCSV.setOpaque(false); -// lblFichierCSV.setText("Fichier CSV"); } @@ -1192,8 +1193,12 @@ public class evaluate extends JFrame { if(commandes.fourniCSV) { + if(commandes.nodeCSV.getAttributs().get("nameListStudent")==null) { + commandes.nodeCSV.getAttributs().put("nameListStudent","?"); + commandes.nodeCSV.getAttributs().put("year", "?"); + } lblChargementFichierCSV.setBackground(new Color(40,180,40)); - lblChargementFichierCSV.setText("Liste des étudiants"); + lblChargementFichierCSV.setText("Liste des étudiants : " + commandes.nodeCSV.getAttributs().get("nameListStudent")); lblChargementFichierCSV.setOpaque(true); }else { lblChargementFichierCSV.setOpaque(false);