<
literal 0
HcmV?d00001
diff --git a/src/MEPTL/commandes.java b/src/MEPTL/commandes.java
index 0c6e57c..0c42742 100644
--- a/src/MEPTL/commandes.java
+++ b/src/MEPTL/commandes.java
@@ -20,6 +20,9 @@ public class commandes {
public static boolean console = true;
//** Le node du fichier d'analyse
+ /**
+ * Le node fichier (correspond au fichier de l'analyse)
+ */
public static node sujet = new node();
public static node sujetSauvegarde = new node();
@@ -208,6 +211,7 @@ public class commandes {
}
public static void initialiseParametresEvaluation() {
+ fourniCSV=false;
ecritCode = false;
ecritSujet = false;
ecritNodeAnalyse = false;
@@ -226,6 +230,7 @@ public class commandes {
licence = false;
zipfeedback = false;
fichierStudentMoodle = false;
+ nameSVG="";
}
diff --git a/src/action/actNewFichierAnalyse.java b/src/action/actNewFichierAnalyse.java
index 36e5799..60f67f4 100644
--- a/src/action/actNewFichierAnalyse.java
+++ b/src/action/actNewFichierAnalyse.java
@@ -30,9 +30,13 @@ import MEPTL.meptl;
import MEPTL.verificationFichierAnalyse_node_commandesSujet;
import cXML.Run;
import cXML.node;
-import evaluer.evaluation;
import fenetres.evaluate;
+/**
+ * Création d'un nouveau fichier d'analyse.
+ * @author pabr6
+ *
+ */
public class actNewFichierAnalyse extends AbstractAction{
/**
@@ -102,14 +106,10 @@ public class actNewFichierAnalyse extends AbstractAction{
placeIsDoublonInStylePage(commandes.sujet.retourneFirstEnfantsByName("style:style"));
placeIsDoublonInStylePage(commandes.sujet.retourneFirstEnfantsByName("frames"));
-
commandes.sujet.getAttributs().put("analysis_filename","sujet.xml");
commandes.sujet = ecritureSujet.nodePourEcritureSujet(commandes.sujet,b,0);
- // chargemnt de la traduction
- evaluation.chargeTraduction(Run.translation());
-
// try {
// Run.ecritureNodeEnXML(commandes.sujet , commandes.nameSujet+".xml",commandes.path,"Sujet");
// } catch (IOException e1) {
@@ -117,8 +117,6 @@ public class actNewFichierAnalyse extends AbstractAction{
// e1.printStackTrace();
// }
-
-
new verificationFichierAnalyse_node_commandesSujet();
@@ -127,9 +125,12 @@ public class actNewFichierAnalyse extends AbstractAction{
commandes.evaluationChargeEnMemoire = null;
commandes.evaluationsBase=null;
- commandes.IndexEvaluationCharger=-1;
+ commandes.IndexEvaluationCharger=-1; //Car ce n'est pas une évaluation
commandes.NameEvaluationCharger = "";
commandes.analysis_filename = commandes.sujet.getAttributs().get("analysis_filename");
+
+ commandes.initialiseParametresEvaluation();
+ commandes.initialiseParametresSettingProprietes();
fenetres.create.getTree().setVisible(true);
fenetres.create.constructionTree();
diff --git a/src/action/actSaveEvaluation.java b/src/action/actSaveEvaluation.java
index d9b4eae..89a4e76 100644
--- a/src/action/actSaveEvaluation.java
+++ b/src/action/actSaveEvaluation.java
@@ -43,7 +43,6 @@ public class actSaveEvaluation extends AbstractAction{
commandes.IndexEvaluationCharger=0;
commandes.NameEvaluationCharger=name;
new recupeNodeBaseEvaluations();
- JOptionPane.showMessageDialog(null,"L'évaluation encours " + name + " a été enregistrée\ndans la base des évaluations.");
}else {
JOptionPane.showMessageDialog(null,"L'évaluation encours n'a pas été enregistrée\ndans la base des évaluations.");
}
diff --git a/src/baseEvaluations/chargeEvaluationSelected.java b/src/baseEvaluations/chargeEvaluation.java
similarity index 71%
rename from src/baseEvaluations/chargeEvaluationSelected.java
rename to src/baseEvaluations/chargeEvaluation.java
index a005c69..d281476 100644
--- a/src/baseEvaluations/chargeEvaluationSelected.java
+++ b/src/baseEvaluations/chargeEvaluation.java
@@ -16,15 +16,24 @@ import javax.swing.JOptionPane;
import MEPTL.commandes;
import MEPTL.meptl;
import MEPTL.verificationFichierAnalyse_node_commandesSujet;
-import cXML.Run;
import cXML.node;
import fenetres.ChargeFichierXML;
-public class chargeEvaluationSelected {
+/**
+ * Charge le node évaluation avec le node sujet.
+ * @author pabr6
+ *
+ */
+public class chargeEvaluation {
- public chargeEvaluationSelected(Integer index) {
+ /**
+ * Charge en mémoire le node évaluation avec le node sujet.
+ * Le node commandes.evaluationChargeEnMemoire en mémoire.
+ * Le node commandes.nameSujet en mémoire.
+ * @param index
+ */
+ public static void chargeEnMémoireEvaluationSelected(Integer index) {
- //* Relecture du node de l'évaluation car le node n'est pas complet
String directoryName = "";
File file = null;
node evaluation = new node();
@@ -54,10 +63,8 @@ public class chargeEvaluationSelected {
}
evaluation = evaluation.chargeNodeEvaluationIndex(index,targetString.toString().replace("\t","").replace("\r", "").replace("\n", ""));
}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.
");
+ JFrame frame = new JFrame("Erreur");
+ JLabel texte = new JLabel("Erreur
L'évaluation n'a pas été trouvé dans la base de données.
");
JOptionPane.showMessageDialog(frame, texte);
}
@@ -66,14 +73,13 @@ public class chargeEvaluationSelected {
commandes.evaluationChargeEnMemoire = evaluation;
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
+ // Chargement du node sujet depuis la base
commandes.nameSujet = evaluation.getAttributs().get("analysis_filename");
+ commandes.sujet = evaluation.retourneFirstEnfantsByName("fichier");
commandes.PathFilenameAnalysis = evaluation.getAttributs().get("PathFilenameAnalysis");
- //** Les paramètres
+ //** Les paramètres de l'évaluation
commandes.versionEvaluation = evaluation.getAttributs().get("version");
commandes.fichierStudentMoodle = Boolean.valueOf(evaluation.getAttributs().get("fichierStudentMoodle"));
commandes.sansFeeback = Boolean.valueOf(evaluation.getAttributs().get("sansFeeback"));
@@ -87,6 +93,7 @@ public class chargeEvaluationSelected {
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"));
}
@@ -102,44 +109,6 @@ public class chargeEvaluationSelected {
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 = 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) {
@@ -149,8 +118,6 @@ public class chargeEvaluationSelected {
//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;
@@ -158,12 +125,53 @@ public class chargeEvaluationSelected {
}
-
+ /**
+ * Retourne le node évaluation sélectionné.
+ * @param index
+ * @return
+ */
+ public static node retourneEvaluationSelected(Integer index) {
+ String directoryName = "";
+ File file = null;
+ node evaluation = new node();
+ 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);
+ }
+ evaluation = evaluation.chargeNodeEvaluationIndex(index,targetString.toString().replace("\t","").replace("\r", "").replace("\n", ""));
+ }catch (Exception e) {
+ JFrame frame = new JFrame("Erreur");
+ JLabel texte = new JLabel("Erreur
L'évaluation n'a pas été trouvé dans la base de données.
");
+ JOptionPane.showMessageDialog(frame, texte);
+ }
+ }
+ return evaluation;
+ }
/**
* Charge le fichier d'analyse de l'évaluation.
* @param file
*/
+ @SuppressWarnings("unused")
private void chargeLeNodeSujet(File file) {
BufferedReader br;
@@ -212,6 +220,7 @@ public class chargeEvaluationSelected {
* @param file
* @return
*/
+ @SuppressWarnings("unused")
private Date recupereDateFichierAnalyseSource(File file) {
BufferedReader br;
try {
diff --git a/src/baseEvaluations/creerNouvelleEvaluation.java b/src/baseEvaluations/creerNouvelleEvaluation.java
index 2265278..84eb86e 100644
--- a/src/baseEvaluations/creerNouvelleEvaluation.java
+++ b/src/baseEvaluations/creerNouvelleEvaluation.java
@@ -13,18 +13,25 @@ public class creerNouvelleEvaluation {
/**
- * Mise à jour d'une évaluation
+ * Mise à jour d'une évaluation.
* @param evaluation
*/
public creerNouvelleEvaluation(node evaluation) {
this.majBase=true;
- commandes.evaluationChargeEnMemoire = nouvelleEvaluation(evaluation, evaluation.getAttributs().get("name"));
+ nouvelleEvaluation(evaluation, evaluation.getAttributs().get("name"));
}
-
+ /**
+ * Pour réaliser une mise à jour ou une création.
+ * majBase = true pour une mise à jour.
+ * majBase = false pour une création.
+ * @param evaluation
+ * @param name
+ * @param majBase
+ */
public creerNouvelleEvaluation(node evaluation, String name, boolean majBase) {
this.majBase = majBase;
- commandes.evaluationChargeEnMemoire = nouvelleEvaluation(evaluation, name);
+ nouvelleEvaluation(evaluation, name);
}
@@ -40,8 +47,8 @@ public class creerNouvelleEvaluation {
//nouvelle évaluation
evaluation.getAttributs().put("date", calcul.formatDateWriter.DateLibreOffice(aujourdhui));
evaluation.getAttributs().put("dateModification", calcul.formatDateWriter.DateLibreOffice(aujourdhui));
- commandes.initialiseParametresSettingProprietes();
- commandes.initialiseParametresEvaluation();
+ evaluation.getNodes().add(commandes.sujet);
+ commandes.evaluationChargeEnMemoire = evaluation;
}else {
//Mise à jour
evaluation.getAttributs().put("dateModification", calcul.formatDateWriter.DateLibreOffice(aujourdhui));
@@ -67,19 +74,16 @@ public class creerNouvelleEvaluation {
evaluation.getAttributs().put("analyse_nombres_modifications_simultané_maxi", String.valueOf(commandes.analyse_nombres_modifications_simultané_maxi) );
- //Supprime le node fichier s'il existe, déjà pour le remplacer par le node commandes.sujet
- 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);
- }
+// // le nom du fichier d'analyse doit correspondre
+// if(commandes.sujet.getAttributs().get("analysis_filename")!=null) {
+// evaluation.getAttributs().put("analysis_filename",commandes.sujet.getAttributs().get("analysis_filename"));
+// evaluation.retourneFirstEnfantsByName("fichier").getAttributs().put("filenameAnalyse", 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 );
@@ -87,16 +91,17 @@ public class creerNouvelleEvaluation {
evaluation.getAttributs().put("nameCSV", "");
}
- evaluation.getAttributs().put("fourniCSV", String.valueOf(commandes.fourniCSV) );
if(commandes.nameSVG!=null) {
- evaluation.getAttributs().put("nameSVG", commandes.nameSVG );
+ if(!commandes.nameSVG.isBlank()) {
+ evaluation.getAttributs().put("nameSVG", commandes.nameSVG );
+ }
}else {
evaluation.getAttributs().put("nameSVG", "" );
}
-
+
//Supprime le node CSV s'il existe, pour le remplacer par le node commandes.nodeCSV
- nodremove = evaluation.retourneFirstEnfantsByName("fileCSV");
+ node nodremove = evaluation.retourneFirstEnfantsByName("fileCSV");
if(!nodremove.isVide()) evaluation.getNodes().remove(nodremove);
if(commandes.nodeCSV!=null) {
diff --git a/src/baseEvaluations/ecritureBaseEvaluation.java b/src/baseEvaluations/ecritureBaseEvaluation.java
index 1e61f1b..ad85547 100644
--- a/src/baseEvaluations/ecritureBaseEvaluation.java
+++ b/src/baseEvaluations/ecritureBaseEvaluation.java
@@ -13,12 +13,25 @@ import java.nio.file.Paths;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+
import MEPTL.commandes;
import cXML.Run;
import cXML.node;
+/**
+ * Ecriture d'une évaluation.
+ * @author pabr6
+ *
+ */
public class ecritureBaseEvaluation {
-
+
+ /**
+ * Ecriture d'une évaluation
+ * @param evaluation
+ */
public ecritureBaseEvaluation(node evaluation) {
String directoryName = "";
@@ -82,10 +95,16 @@ public class ecritureBaseEvaluation {
try {
// écriture du node
- Path outputFilePath = Paths.get("C:/Users/pabr6/Downloads/test.xml");
+ Path outputFilePath = file.toPath();
BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8);
fichier.write(XMLBase);
- fichier.close();
+ fichier.close();
+
+ JFrame frame = new JFrame();
+ JLabel texte = new JLabel("Enregistrement réussi
L'évaluation "+evaluation.getAttributs().get("name")+ " a été enregistrée dans la base de données.
"
+ + ""+ file.getAbsolutePath() +"
");
+ JOptionPane.showMessageDialog(frame, texte);
+
} catch (IOException e) {
// TODO Auto-generated catch block
diff --git a/src/baseEvaluations/recupeNodeBaseEvaluations.java b/src/baseEvaluations/recupeNodeBaseEvaluations.java
index 50c1bec..3eb272e 100644
--- a/src/baseEvaluations/recupeNodeBaseEvaluations.java
+++ b/src/baseEvaluations/recupeNodeBaseEvaluations.java
@@ -33,9 +33,6 @@ public class recupeNodeBaseEvaluations {
file = new File(directoryName + "/" + commandes.NameBaseEvaluations);
}
-
-
-
if(file!=null) {
BufferedReader br;
try {
diff --git a/src/baseEvaluations/removeEvaluation.java b/src/baseEvaluations/removeEvaluation.java
new file mode 100644
index 0000000..f60fb8c
--- /dev/null
+++ b/src/baseEvaluations/removeEvaluation.java
@@ -0,0 +1,101 @@
+package baseEvaluations;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+
+import MEPTL.commandes;
+import cXML.Run;
+import cXML.node;
+
+public class removeEvaluation {
+
+ public removeEvaluation(node evaluation) {
+ 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);
+ }
+
+
+ String debut="";
+ String fin="";
+ String XMLBase="";
+
+ if(file!=null) {
+ //Lecture de la base de données
+ 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);
+ }
+ 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);
+
+
+
+ if(m.find()) {
+ //Supprime le node évluation pour le remplacer par le nouveau.
+ debut = baseToString.substring(0,m.start());
+ fin = baseToString.substring(m.end());
+ XMLBase = debut + fin;
+ }
+
+
+ try {
+ // écriture du node
+ Path outputFilePath = file.toPath();
+ BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8);
+ fichier.write(XMLBase);
+ fichier.close();
+
+ JFrame frame = new JFrame();
+ JLabel texte = new JLabel("Enregistrement réussi
L'évaluation "+evaluation.getAttributs().get("name")+ " a été enregistrée dans la base de données.
"
+ + ""+ file.getAbsolutePath() +"
");
+ JOptionPane.showMessageDialog(frame, texte);
+
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }catch (Exception e) {
+
+ }
+ }
+
+ }
+}
+
+
diff --git a/src/fenetres/baseDonneesEvaluations.java b/src/fenetres/baseDonneesEvaluations.java
index 5044403..23005a2 100644
--- a/src/fenetres/baseDonneesEvaluations.java
+++ b/src/fenetres/baseDonneesEvaluations.java
@@ -33,11 +33,11 @@ import javax.swing.table.TableColumnModel;
import MEPTL.commandes;
import action.actOpenBaseEvaluation;
-import baseEvaluations.chargeEvaluationSelected;
+import baseEvaluations.chargeEvaluation;
import baseEvaluations.creerNouvelleEvaluation;
-import baseEvaluations.evaluationExist;
import baseEvaluations.myTableBaseEvaluation;
import baseEvaluations.recupeNodeBaseEvaluations;
+import baseEvaluations.removeEvaluation;
import baseEvaluations.trierParDateDecroissanteLaBase;
import cXML.Run;
import cXML.node;
@@ -57,8 +57,8 @@ public class baseDonneesEvaluations extends JFrame { /**
private JPanel panelGauche = new JPanel();
private JLabel lblInformationBaseEvluation = new JLabel("");
private JButton btnSupprimeEvaluation = new JButton("Supprimer une
évaluation");
- private JButton btnSaveEvaluation = new JButton("Enregistrer l'évaluation
actuelle en mémoire");
- private JButton btnRenommeFichierAnalyse = new JButton("Renommer le fichier
d'analyse");
+ private JButton btnSaveEvaluation = new JButton("Enregistrer l'évaluation
chargée en mémoire.");
+ private JButton btnRenommeFichierAnalyse = new JButton("Renommer le fichier d'analyse
de l'évaluation sélectionnée");
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;
@@ -70,9 +70,9 @@ public class baseDonneesEvaluations extends JFrame { /**
private final JButton btnFermer = new JButton("Femer");
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("Importer");
- private final JButton btnChargerFichierAnalyse = new JButton("Charger un fichier
d'analyse");
+ private final JButton btnExtraireFileAnalysis = new JButton("Extraire le fichier d'analyse
de l'évaluation sélectionnée");
+ private final JButton btnFusionnerBase = new JButton("Importer des évaluations
depuis une autre base");
+ private final JButton btnChargerFichierAnalyse = new JButton("Créer une évaluation à
partir d'un fichier d'analyse");
private final static JLabel lblCheminVersBase = new JLabel(commandes.PathBaseEvaluations);
private final JButton btnArchiveBase = new JButton("Copie de sauvegarde");
@@ -132,7 +132,10 @@ public baseDonneesEvaluations() {
lblCheminVersBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/chargehistoriqueevaluationmini.png")));
panelBas.add(lblCheminVersBase);
-
+ if(commandes.evaluationChargeEnMemoire!=null) {
+ textPane.setText("Evaluation chargée en mémoire : " + commandes.evaluationChargeEnMemoire.getAttributs().get("name"));
+ }
+
//*Le haut
getContentPane().add(panelHaut, BorderLayout.NORTH);
@@ -148,61 +151,66 @@ public baseDonneesEvaluations() {
scrollPaneBoutons = new JScrollPane(panelGauche);
getContentPane().add(scrollPaneBoutons, BorderLayout.WEST);
- panelGauche.setLayout(new MigLayout("", "[:300px:400px,fill]", "[53px][][][][][][][][][30.00][][][][]"));
+ panelGauche.setLayout(new MigLayout("", "[:300px:400px,fill]", "[53px][][][][][][][][][30.00][20px:n][][][]"));
+ btndefautBaseEvaluation.setToolTipText("Recharge la base de données par défaut.");
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.setFont(new Font("Tahoma", Font.BOLD, 18));
btndefautBaseEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/defautBaseEvaluation.png")));
+ btnChargerNewBase.setToolTipText("Charge les évaluations d'une autre base de données.");
btnChargerNewBase.setHorizontalAlignment(SwingConstants.LEFT);
btnChargerNewBase.setForeground(new Color(0, 128, 192));
panelGauche.add(btnChargerNewBase, "cell 0 1,growx,aligny top");
- btnChargerNewBase.setFont(new Font("Tahoma", Font.BOLD, 16));
+ btnChargerNewBase.setFont(new Font("Tahoma", Font.BOLD, 15));
btnChargerNewBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/sauvegardehistoriqueevaluation.png")));
+ btnSaveEvaluation.setToolTipText("Enregistre l'évaluation chargée en mémoire.");
btnSaveEvaluation.setHorizontalAlignment(SwingConstants.LEFT);
btnSaveEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/saveEvaluation.png")));
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));
+ btnSaveEvaluation.setFont(new Font("Tahoma", Font.BOLD, 15));
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 4,growx,aligny top");
btnRenommerEvaluation.setForeground(new Color(153, 50, 204));
- btnRenommerEvaluation.setFont(new Font("Tahoma", Font.BOLD, 16));
+ btnRenommerEvaluation.setFont(new Font("Tahoma", Font.BOLD, 15));
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));
+ btnFusionnerBase.setFont(new Font("Tahoma", Font.BOLD, 15));
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.setFont(new Font("Tahoma", Font.BOLD, 15));
btnArchiveBase.setHorizontalAlignment(SwingConstants.LEFT);
btnArchiveBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/saveZipEvaluation.png")));
panelGauche.add(btnArchiveBase, "cell 0 6,growx,aligny top");
+ btnChargerFichierAnalyse.setToolTipText("Création d'une évaluation à partir d'un fichier d'analyse au format XML.");
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));
+ btnChargerFichierAnalyse.setFont(new Font("Tahoma", Font.BOLD, 15));
panelGauche.add(btnChargerFichierAnalyse, "cell 0 7,growx,aligny top");
+ btnExtraireFileAnalysis.setToolTipText("Extraire le fichier d'analyse de l'évaluation sélectionnée.");
btnExtraireFileAnalysis.setHorizontalAlignment(SwingConstants.LEFT);
btnExtraireFileAnalysis.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/extraireFichierAnalyse.png")));
btnExtraireFileAnalysis.setForeground(new Color(209, 105, 35));
- btnExtraireFileAnalysis.setFont(new Font("Tahoma", Font.BOLD, 16));
+ btnExtraireFileAnalysis.setFont(new Font("Tahoma", Font.BOLD, 15));
panelGauche.add(btnExtraireFileAnalysis, "cell 0 8,growx,aligny top");
btnRenommeFichierAnalyse.setHorizontalAlignment(SwingConstants.LEFT);
@@ -212,16 +220,16 @@ public baseDonneesEvaluations() {
btnRenommeFichierAnalyse.setForeground(new Color(255, 140, 0));
- btnRenommeFichierAnalyse.setFont(new Font("Tahoma", Font.BOLD, 16));
+ btnRenommeFichierAnalyse.setFont(new Font("Tahoma", Font.BOLD, 15));
btnSupprimeEvaluation.setHorizontalAlignment(SwingConstants.LEFT);
btnSupprimeEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/removeEvaluaton.png")));
panelGauche.add(btnSupprimeEvaluation, "cell 0 11,growx,aligny top");
btnSupprimeEvaluation.setForeground(new Color(255, 0, 0));
- btnSupprimeEvaluation.setFont(new Font("Tahoma", Font.BOLD, 16));
+ btnSupprimeEvaluation.setFont(new Font("Tahoma", Font.BOLD, 15));
btnFermer.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/quitteEvaluation.png")));
btnFermer.setHorizontalAlignment(SwingConstants.LEFT);
- btnFermer.setFont(new Font("Tahoma", Font.BOLD, 16));
+ btnFermer.setFont(new Font("Tahoma", Font.BOLD, 15));
panelGauche.add(btnFermer, "cell 0 12,growx,aligny top");
@@ -328,37 +336,48 @@ private void ListenerAction() {
if(lsm!=null) {
if (!lsm.isSelectionEmpty()) {
- new chargeEvaluationSelected(indexSelect);
- node evaluation = commandes.evaluationChargeEnMemoire;
+ node evaluation = chargeEvaluation.retourneEvaluationSelected(indexSelect);
String nameFile = evaluation.getAttributs().get("analysis_filename");
JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("Enregistrer sous...");
File file = null;
+ String analysis_filename ="";
if(!evaluation.getAttributs().get("analysis_filename").isEmpty()) {
- file = new File(commandes.PathFilenameAnalysis ); //+ "\\" + utils.filename + ".xml"
+ file = new File(commandes.PathBaseEvaluations);
+ analysis_filename = evaluation.getAttributs().get("analysis_filename");
}
fileChooser.setCurrentDirectory(file);
fileChooser.setSelectedFile(new File(nameFile));
int userSelection = fileChooser.showSaveDialog(null);
-
+ boolean notError = false;
if (userSelection == JFileChooser.APPROVE_OPTION) {
File fileToSave = fileChooser.getSelectedFile();
try {
if(commandes.os.contains("Win")) {
- Run.ecritureNodeEnXML(evaluation, fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")),Run.TypeFile.Sujet );
- JOptionPane.showMessageDialog(null,"Le fichier d'analyse a été extrait.");
+ notError = Run.ecritureNodeEnXML(evaluation.retourneFirstEnfantsByName("fichier"), fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")),Run.TypeFile.Sujet );
}else {
- Run.ecritureNodeEnXML(evaluation, fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("/")),Run.TypeFile.Sujet );
- JOptionPane.showMessageDialog(null,"Le fichier d'analyse a été extrait.");
+ notError = Run.ecritureNodeEnXML(evaluation.retourneFirstEnfantsByName("fichier"), fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("/")),Run.TypeFile.Sujet );
+ }
+ if(notError) {
+ JFrame frame = new JFrame("Extration");
+ JLabel texte = new JLabel("Extration réussie
Le fichier d'analyse "+ analysis_filename +" a été extrait de la base.
"
+ + ""+fileToSave.getAbsolutePath()+"
");
+ JOptionPane.showMessageDialog(frame, texte);
+ }else {
+ JFrame frame = new JFrame("Erreur");
+ JLabel texte = new JLabel("
Erreur
Le fichier d'analyse n'a pas été extrait de la base.
"
+ + "");
+ JOptionPane.showMessageDialog(frame, texte);
}
} catch (IOException e1) {
e1.printStackTrace();
}
System.out.println("Save as file: " + fileToSave.getAbsolutePath());
+ new recupeNodeBaseEvaluations();
}
System.out.println( "Save as" );
}
@@ -471,12 +490,12 @@ private void ListenerAction() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1) {
- System.out.println("double clicked");
+ System.out.println("un click ou deux click");
if(lsm!=null) {
if (!lsm.isSelectionEmpty()) {
indexSelect = lsm.getMinSelectionIndex();
// new chargeEvaluationSelected(commandes.evaluationsBase.getNodes().get(indexSelect));
- new chargeEvaluationSelected(indexSelect);
+ chargeEvaluation.chargeEnMémoireEvaluationSelected(indexSelect);
commandes.IndexEvaluationCharger = indexSelect;
if(!create.isDispose) {
create.getInstance();
@@ -511,42 +530,32 @@ private void ListenerAction() {
/**
- * Bouton Sauvegarde de l'évaluation en cours.
+ * Bouton Sauvegarde de l'évaluation en cours
+ * avec renommage de l'évaluation.
*/
btnSaveEvaluation.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
- if(commandes.fichierAnalyseValide) {
- String name ="Nom de l'évaluation";
- if(lsm!=null) {
- if (!lsm.isSelectionEmpty()) {
- indexSelect = lsm.getMinSelectionIndex();
- name = model.getNameEvaluation(indexSelect);
- }
- }
- name = JOptionPane.showInputDialog(null,"Donner un nom ou renommer l'évaluation.",name);
+ if(commandes.evaluationChargeEnMemoire!=null) {
+ String name = commandes.evaluationChargeEnMemoire.getAttributs().get("name");
+ name = JOptionPane.showInputDialog(null,"Voulez-vous renommer l'évaluation ?",name);
if(name!=null) {
if(!name.isBlank()) {
-
- if(evaluationExist.isEvaluationExist(commandes.evaluationChargeEnMemoire.getAttributs().get("date"))) {
- //L'évaluation existe déjà
- new creerNouvelleEvaluation(commandes.evaluationChargeEnMemoire, name,true);
- }else {
- // Nouvelle évaluation
- new creerNouvelleEvaluation(new node(), name, false);
- }
-
- new trierParDateDecroissanteLaBase();
- new recupeNodeBaseEvaluations();
-
- model.addOrUpdate();
- table.setModel(model);
- selectRow(commandes.IndexEvaluationCharger);
+ new creerNouvelleEvaluation(commandes.evaluationChargeEnMemoire, name,true);
}
}
-
}else {
- JOptionPane.showMessageDialog(null, "Le fichier d'analyse n'est pas valide.");
+ String name = JOptionPane.showInputDialog(null,"Voulez-vous renommer l'évaluation ?","Nouvelle évaluation");
+ if(name!=null) {
+ if(!name.isBlank()) {
+ new creerNouvelleEvaluation(new node(), name,false);
+ }
+ }
}
+ new trierParDateDecroissanteLaBase();
+ new recupeNodeBaseEvaluations();
+ model.addOrUpdate();
+ table.setModel(model);
+ selectRow(commandes.IndexEvaluationCharger);
}
});
@@ -561,23 +570,12 @@ private void ListenerAction() {
"Suppression", JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE)==JOptionPane.YES_OPTION) {
indexSelect = lsm.getMinSelectionIndex();
- if(commandes.IndexEvaluationCharger==indexSelect) {
- if(JOptionPane.showConfirmDialog(null,"Vous êtes sur le point de supprimer l'évaluation encours d'utilisation.\n"
- + "Voulez-vous vraiment supprimer cette évaluation?",
- "Suppression", JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE)==JOptionPane.YES_OPTION) {
- commandes.evaluationsBase.getNodes().remove(indexSelect);
- commandes.IndexEvaluationCharger=-1;
- commandes.evaluationChargeEnMemoire=null;
- }
- }else {
- commandes.evaluationsBase.getNodes().remove(indexSelect);
- if(commandes.IndexEvaluationCharger>indexSelect) commandes.IndexEvaluationCharger--;
- }
+ node evaluation = chargeEvaluation.retourneEvaluationSelected(indexSelect);
+ new removeEvaluation(evaluation);
new recupeNodeBaseEvaluations();
model.addOrUpdate();
table.setModel(model);
- //selectRow(commandes.IndexEvaluationCharger);
}
}
}
@@ -591,7 +589,9 @@ private void ListenerAction() {
public void actionPerformed(ActionEvent e) {
if(lsm!=null)if (!lsm.isSelectionEmpty()) {
// indexSelect = lsm.getMinSelectionIndex();
- node evaluation = commandes.evaluationsBase.getNodes().get(indexSelect);
+
+ node evaluation = chargeEvaluation.retourneEvaluationSelected(indexSelect);
+
String nomFichierAnalyse = "";
if(evaluation.retourneFirstEnfantsByName("fichier").getAttributs().get("analysis_filename")!=null) {
nomFichierAnalyse = evaluation.retourneFirstEnfantsByName("fichier").getAttributs().get("analysis_filename");
@@ -615,7 +615,12 @@ private void ListenerAction() {
evaluation.retourneFirstEnfantsByName("fichier").getAttributs().put("analysis_filename", nomFichierAnalyse);
evaluation.retourneFirstEnfantsByName("fichier").getAttributs().put("filenameAnalyse", nomFichierAnalyse);
evaluation.getAttributs().put("analysis_filename", nomFichierAnalyse);
- new recupeNodeBaseEvaluations();
+
+
+ new creerNouvelleEvaluation(evaluation);
+
+ new recupeNodeBaseEvaluations();
+
model.addOrUpdate();
table.setModel(model);
}
@@ -627,13 +632,13 @@ private void ListenerAction() {
});
/**
- * Renommer une évaluation
+ * Renommer une évaluation sélectionnée.
*/
btnRenommerEvaluation.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(lsm!=null)if (!lsm.isSelectionEmpty()) {
indexSelect = lsm.getMinSelectionIndex();
- node evaluation = commandes.evaluationsBase.getNodes().get(indexSelect);
+ node evaluation = chargeEvaluation.retourneEvaluationSelected(indexSelect);
String nomEvaluation = "";
if(evaluation.getAttributs().get("name")!=null) {
nomEvaluation = evaluation.getAttributs().get("name");
@@ -645,7 +650,6 @@ private void ListenerAction() {
model.addOrUpdate();
table.setModel(model);
}
-
}
}
});
diff --git a/src/fenetres/chargeBaseAuDemarrage.java b/src/fenetres/chargeBaseAuDemarrage.java
index da10017..fa80306 100644
--- a/src/fenetres/chargeBaseAuDemarrage.java
+++ b/src/fenetres/chargeBaseAuDemarrage.java
@@ -23,7 +23,7 @@ import javax.swing.event.ListSelectionListener;
import MEPTL.commandes;
import action.actOpenBaseEvaluation;
-import baseEvaluations.chargeEvaluationSelected;
+import baseEvaluations.chargeEvaluation;
import baseEvaluations.myTableBaseEvaluation;
import net.miginfocom.swing.MigLayout;
@@ -145,7 +145,7 @@ private void ListenerAction() {
if(lsm!=null) {
if (!lsm.isSelectionEmpty()) {
indexSelect = lsm.getMinSelectionIndex();
- new chargeEvaluationSelected(indexSelect);
+ chargeEvaluation.chargeEnMémoireEvaluationSelected(indexSelect);
commandes.IndexEvaluationCharger = indexSelect;
evaluate.getInstance();
dispose();
diff --git a/src/fenetres/create.java b/src/fenetres/create.java
index bf90f11..eed6903 100644
--- a/src/fenetres/create.java
+++ b/src/fenetres/create.java
@@ -498,6 +498,10 @@ public final class create extends JFrame {
toolBarPrincipal.addSeparator();
JButton btnSaveEvaluation = toolBarPrincipal.add( new actSaveEvaluation() );
+ btnSaveEvaluation.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ }
+ });
btnSaveEvaluation.setIcon(new ImageIcon(create.class.getResource("/resources/saveEvaluation.png")));
btnSaveEvaluation.setHideActionText(true);
toolBarPrincipal.add(btnSaveEvaluation);