MAJ V4.4.3

Chargement du fichier d'analyse source si la date est postérieure à la
date du fichier d'analyse base.
This commit is contained in:
pablo rodriguez 2023-03-02 12:31:59 +01:00
parent a52da79d76
commit 24c47febe7
9 changed files with 95 additions and 14 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -82,8 +82,8 @@ public class actOpenHistoriqueEvaluation extends AbstractAction{
}catch (Exception e) {
JFrame frame = new JFrame();
JLabel texte = new JLabel("<html><p>Il y a une erreur avec le fichier <b>base_evaluations_analyseWriter.xml</b></p>"
+ "<p>Probablement, il a été renommé ou supprimé.</p><br>"
+ "<p>Une nouvelle base sera créé.</p></html>");
+ "<p>Probablement, il a été renommé, ou supprimé, ou déplacé.</p><br>"
+ "<p>Une nouvelle base sera créé dans le dossier de l'application.</p></html>");
JOptionPane.showMessageDialog(frame, texte);
}
}

View File

@ -3,6 +3,7 @@ package action;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.text.ParseException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -50,7 +51,13 @@ public class actSave extends AbstractAction{
if(input==0) {
try {
verificationFichierAnalyse.MiseAJourHashNomFichierAnalyse(commandes.nameSujet);
//Mise à jour de la date d'enregistrement du fichier d'analyse
try {
commandes.sujet.getAttributs().put("date", calcul.formatDateWriter.dateTodayLibreOffice());
} catch (ParseException e1) {
e1.printStackTrace();
}
Run.ecritureNodeEnXML(commandes.sujet, commandes.nameSujet,commandes.PathFilenameAnalysis,Run.TypeFile.Sujet);
if(m.find()) {

View File

@ -4,6 +4,7 @@ import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -50,7 +51,13 @@ public class actSaveAs extends AbstractAction{
try {
verificationFichierAnalyse.MiseAJourHashNomFichierAnalyse(fileToSave.getName());
//Mise à jour de la date d'enregistrement du fichier d'analyse
try {
commandes.sujet.getAttributs().put("date", calcul.formatDateWriter.dateTodayLibreOffice());
} catch (ParseException e1) {
e1.printStackTrace();
}
if(commandes.os.contains("Win")) {
Run.ecritureNodeEnXML(commandes.sujet, fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")),Run.TypeFile.Sujet );
}else {

View File

@ -8,10 +8,13 @@ import java.util.regex.Pattern;
import javax.swing.JOptionPane;
import MEPTL.commandes;
public class formatDateWriter {
/**
* Retourne true sie le format est YYYY-MM-JJTHH:MM:SS.<br>
* C'est le format utilisé par LibreOffice.<br>
* @param date une String.
* @return retrourne true ou false.
*/
@ -86,6 +89,17 @@ public class formatDateWriter {
return DateLibreOffice(aujourdhui);
}
/**
* Retourne la date du fichier du node commandes.sujet<br>
* Si ne trouve pas la date alors retourne un null.
* @return
*/
public static Date dateNodeSujet() {
if(commandes.sujet.getAttributs().get("date")!=null) {
String dateString = commandes.sujet.getAttributs().get("date");
return calcul.formatDateWriter.DateLibreOffice(dateString);
}
return null;
}
}

View File

@ -320,18 +320,32 @@ private void chargeEvaluationSelected(node evaluation) {
File file = new File(CheminVersFileXML);
if(file.exists()) {
JFrame frame = new JFrame();
JLabel text = new JLabel();
text.setText("<html><p>Le fichier d'analyse est déjà chargé depuis la base de données.</p><br>"
+ "<p>Cependant, le fichier d'analyse se trouve aussi dans le dossier :</p>"
+ "<p>"+CheminVersFileXML+"</p><br><hr>"
+ "<p>Voulez-vous le charger depuis ce dossier ?</p></html>");
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
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("<html><p>Le fichier d'analyse est déjà chargé depuis la base de données.</p><br>"
+ "<p>Cependant, vous avez le fichier d'analyse qui se trouve dans le dossier :</p>"
+ "<p>"+CheminVersFileXML+"</p>"
+ "<p>Et dont la date est plus récente que le fichier d'analyse qui se trouve dans la base.</p><br><hr>"
+ "<p>Voulez-vous le charger depuis ce dossier ?</p></html>");
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
}
}
}
}
// else {
// JFrame frame = new JFrame();
// JLabel texte = new JLabel("<html><p>Le fichier d'analyse de l'évaluation, " + commandes.nameSujet + ", <b>a été renommé ou supprimé</b>.</p><br>"
@ -382,6 +396,7 @@ private void chargeLeNodeSujet(File file) {
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();
@ -401,6 +416,44 @@ private void chargeLeNodeSujet(File file) {
}
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);