diff --git a/base/archiveBase.zip b/base/archiveBase.zip
index a495f5e..0a0933f 100644
Binary files a/base/archiveBase.zip and b/base/archiveBase.zip differ
diff --git a/base/base.xml b/base/base.xml
index ae12f65..27df416 100644
--- a/base/base.xml
+++ b/base/base.xml
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/base/base_sauvegarde.xml b/base/base_sauvegarde.xml
index ae12f65..8ea656c 100644
--- a/base/base_sauvegarde.xml
+++ b/base/base_sauvegarde.xml
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/resources/Sans titre - Copie.png b/resources/Sans titre _2.png
similarity index 100%
rename from resources/Sans titre - Copie.png
rename to resources/Sans titre _2.png
diff --git a/resources/Sans titre_2.png b/resources/Sans titre_2.png
new file mode 100644
index 0000000..fa3ebb1
Binary files /dev/null and b/resources/Sans titre_2.png differ
diff --git a/src/baseUFRHG/FileEncodingDetector.java b/src/Inscriptions/FileEncodingDetector.java
similarity index 95%
rename from src/baseUFRHG/FileEncodingDetector.java
rename to src/Inscriptions/FileEncodingDetector.java
index e26687c..31f469b 100644
--- a/src/baseUFRHG/FileEncodingDetector.java
+++ b/src/Inscriptions/FileEncodingDetector.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package Inscriptions;
import java.io.File;
import java.io.FileInputStream;
diff --git a/src/Inscriptions/importInscriptionCSV.java b/src/Inscriptions/importInscriptionCSV.java
index 007755f..50f870d 100644
--- a/src/Inscriptions/importInscriptionCSV.java
+++ b/src/Inscriptions/importInscriptionCSV.java
@@ -6,10 +6,10 @@ import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
-import baseUFRHG.FileChooserCSV;
-import baseUFRHG.commandes;
-import baseUFRHG.noeud;
-import baseUFRHG.recupeBases;
+import base.recupeBases;
+import outils.FileChooserCSV;
+import outils.commandes;
+import outils.noeud;
public class importInscriptionCSV {
diff --git a/src/Inscriptions/importInscriptionXLS.java b/src/Inscriptions/importInscriptionXLS.java
index 96db7cf..05cb959 100644
--- a/src/Inscriptions/importInscriptionXLS.java
+++ b/src/Inscriptions/importInscriptionXLS.java
@@ -15,11 +15,11 @@ import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import baseUFRHG.commandes;
-import baseUFRHG.noeud;
-import baseUFRHG.recupeBases;
-import baseUFRHG.sauvegardeXMLBase;
-import baseUFRHG.supprimeCaracatresSpeciaux;
+import base.recupeBases;
+import base.sauvegardeXMLBase;
+import outils.commandes;
+import outils.noeud;
+import outils.supprimeCaracatresSpeciaux;
public class importInscriptionXLS {
diff --git a/src/Inscriptions/lectureCSV.java b/src/Inscriptions/lectureCSV.java
index 8cac042..b1392b8 100644
--- a/src/Inscriptions/lectureCSV.java
+++ b/src/Inscriptions/lectureCSV.java
@@ -9,9 +9,8 @@ import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
-import baseUFRHG.FileEncodingDetector;
-import baseUFRHG.noeud;
-import baseUFRHG.supprimeCaracatresSpeciaux;
+import outils.noeud;
+import outils.supprimeCaracatresSpeciaux;
public class lectureCSV {
diff --git a/src/Inscriptions/majBaseWithCSV.java b/src/Inscriptions/majBaseWithCSV.java
index 9f8e7eb..52dc420 100644
--- a/src/Inscriptions/majBaseWithCSV.java
+++ b/src/Inscriptions/majBaseWithCSV.java
@@ -2,10 +2,10 @@ package Inscriptions;
import javax.swing.JOptionPane;
-import baseUFRHG.noeud;
-import baseUFRHG.sauvegardeXMLBase;
-import baseUFRHG.supprimeCaracatresSpeciaux;
-import baseUFRHG.sauvegardeXMLBase.saveType;
+import base.sauvegardeXMLBase;
+import base.sauvegardeXMLBase.saveType;
+import outils.noeud;
+import outils.supprimeCaracatresSpeciaux;
public class majBaseWithCSV {
diff --git a/src/Windows/Window_demarre.java b/src/Windows/Window_demarre.java
index f7d8349..7c1e9ba 100644
--- a/src/Windows/Window_demarre.java
+++ b/src/Windows/Window_demarre.java
@@ -13,6 +13,7 @@ import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
+import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
@@ -27,14 +28,15 @@ import javax.swing.UIManager;
import Inscriptions.importInscriptionCSV;
import Inscriptions.importInscriptionXLS;
-import baseUFRHG.CreateUpdateZipArchive;
-import baseUFRHG.FileChooserXLSX;
-import baseUFRHG.VersionChecker;
-import baseUFRHG.commandes;
-import baseUFRHG.exportBaseToExcel;
-import baseUFRHG.importAllBaseToExcel;
-import baseUFRHG.recupeBases;
-import baseUFRHG.sauvegardeXMLBase;
+import base.CreateUpdateZipArchive;
+import base.Hash;
+import base.recupeBases;
+import base.sauvegardeXMLBase;
+import exportations.exportBaseToExcel;
+import gestion_version.VersionChecker;
+import importations.importAllBaseToExcel;
+import outils.FileChooserXLSX;
+import outils.commandes;
public class Window_demarre extends JFrame {
@@ -73,10 +75,12 @@ public class Window_demarre extends JFrame {
// mise à jour de la base de données si nouvelle version de l'application utilisé.
commandes.nBase=recupeBases.recupeLaBase();
+
VersionChecker.UpdateVersion(commandes.nBase);
if(commandes.blocageApplication) {
- JOptionPane.showMessageDialog(null, "Blocage de l'application.
Par pablo rodriguez");
+ JOptionPane.showMessageDialog(null, "Blocage de l'application.
"
+ + "Contacter votre administrateur réseau.
Erreur : Autorisation refusée.");
return;
}
@@ -95,8 +99,10 @@ public class Window_demarre extends JFrame {
@Override
public void run() {
// Appeler la méthode de sauvegarde ici
- sauvegardeXMLBase.saveSauvegarde(commandes.nBase);
- CreateUpdateZipArchive.save();
+ if(Hash.faireLaSauvegarde()) {
+ sauvegardeXMLBase.saveSauvegarde(commandes.nBase);
+ CreateUpdateZipArchive.save();
+ }
}
};
@@ -185,21 +191,16 @@ public class Window_demarre extends JFrame {
btnimporterDesInscriptionsdepuisClasseur.setBounds(397, 323, 366, 60);
frmEvalwriter.getContentPane().add(btnimporterDesInscriptionsdepuisClasseur);
- JLabel lblAuteurVersion = new JLabel("Pablo Rodriguez - 2023
Version "+ commandes.version+"");
- lblAuteurVersion.setVerticalAlignment(SwingConstants.TOP);
- lblAuteurVersion.setHorizontalAlignment(SwingConstants.LEFT);
- lblAuteurVersion.setFont(new Font("Tahoma", Font.BOLD, 16));
- lblAuteurVersion.setForeground(new Color(255, 255, 255));
- lblAuteurVersion.setBounds(22, 11, 307, 55);
- frmEvalwriter.getContentPane().add(lblAuteurVersion);
-
btnNAideMiseAJour.setForeground(Color.GRAY);
btnNAideMiseAJour.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 12));
btnNAideMiseAJour.setBounds(10, 561, 377, 30);
frmEvalwriter.getContentPane().add(btnNAideMiseAJour);
-
- ImageIcon imageIcon = new ImageIcon(Window_demarre.class.getResource("/resources/Sans titre.png"));
+ // Générer un nombre aléatoire entre 1 et 4 inclusivement
+ Random random = new Random();
+ int randomNumber = random.nextInt(16) + 1;
+ ImageIcon imageIcon = new ImageIcon(Window_demarre.class.getResource("/resources/Sans titre_"+ String.valueOf(randomNumber) +".jpg"));
+// imageIcon = new ImageIcon(Window_demarre.class.getResource("/resources/Sans titre_16.jpg"));
Image image = imageIcon.getImage();
// Détermination de la taille souhaitée pour l'image
@@ -209,9 +210,20 @@ public class Window_demarre extends JFrame {
// Redimensionnement de l'image pour qu'elle s'adapte à la taille souhaitée
Image resizedImage = image.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH);
+ JLabel lblAuteurVersion = new JLabel("Pablo Rodriguez - 2023
Version "+ commandes.version+"");
+ lblAuteurVersion.setVerticalAlignment(SwingConstants.TOP);
+ lblAuteurVersion.setHorizontalAlignment(SwingConstants.LEFT);
+ lblAuteurVersion.setFont(new Font("Tahoma", Font.BOLD, 16));
+ lblAuteurVersion.setForeground(new Color(255, 255, 255));
+ lblAuteurVersion.setBounds(22, 11, 307, 55);
+ frmEvalwriter.getContentPane().add(lblAuteurVersion);
+ if(randomNumber==3 || randomNumber==4 || randomNumber==7
+ || randomNumber==10 || randomNumber==11 || randomNumber==12
+ || randomNumber==14 || randomNumber==15) lblAuteurVersion.setForeground(new Color(0, 0, 0));
+
JLabel lblFondImage= new JLabel(new ImageIcon(resizedImage));
lblFondImage.setVerticalAlignment(SwingConstants.BOTTOM);
- lblFondImage.setBounds(10, -48, 753, 365);
+ lblFondImage.setBounds(10, 0, 753, 317);
frmEvalwriter.getContentPane().add(lblFondImage);
diff --git a/src/Windows/Window_gestionnaire.java b/src/Windows/Window_gestionnaire.java
index 2bb1dd7..ae52035 100644
--- a/src/Windows/Window_gestionnaire.java
+++ b/src/Windows/Window_gestionnaire.java
@@ -15,6 +15,7 @@ import java.awt.event.InputEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
@@ -54,15 +55,15 @@ import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
-import baseUFRHG.sauvegardeXMLBase.saveType;
-import baseUFRHG.FileChooserXML;
-import baseUFRHG.commandes;
-import baseUFRHG.noeud;
-import baseUFRHG.recupeBases;
-import baseUFRHG.sauvegardeXMLBase;
-import baseUFRHG.actions.exportEmargement;
-import baseUFRHG.actions.exportTable;
-import baseUFRHG.actions.saveTable;
+import actions.exportEmargement;
+import actions.exportTable;
+import actions.saveTable;
+import base.recupeBases;
+import base.sauvegardeXMLBase;
+import base.sauvegardeXMLBase.saveType;
+import outils.FileChooserXML;
+import outils.commandes;
+import outils.noeud;
public class Window_gestionnaire extends JFrame {
@@ -108,6 +109,7 @@ public class Window_gestionnaire extends JFrame {
private JTable table;
private String defautYear = null;
public noeud nTable = null;
+ public noeud nStudent = null;
String oldValue = null;
@@ -281,7 +283,8 @@ public class Window_gestionnaire extends JFrame {
cLangueLV1.setSelectedIndex(0);
cLangueLV2.setSelectedIndex(0);
cRegime.setSelectedIndex(0);
- majTableGroupes();
+ nStudent = null;
+ majTable();
}
});
@@ -301,7 +304,7 @@ public class Window_gestionnaire extends JFrame {
cGroupeTD.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- majTableGroupes();
+ majTable();
}
});
@@ -326,7 +329,7 @@ public class Window_gestionnaire extends JFrame {
cLangueLV1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- majTableGroupes();
+ majTable();
}
});
@@ -341,7 +344,7 @@ public class Window_gestionnaire extends JFrame {
cGroupePrincipal.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- majTableGroupes();
+ majTable();
}
});
@@ -353,12 +356,12 @@ public class Window_gestionnaire extends JFrame {
gbc_cGroupeProjet.gridy = 1;
panelFiltre.add(cGroupeProjet, gbc_cGroupeProjet);
- cGroupeProjet.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- majTableGroupes();
- }
- });
+ cGroupeProjet.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ majTable();
+ }
+ });
cLV1= new JComboBox();
GridBagConstraints gbc_cLV1 = new GridBagConstraints();
@@ -371,7 +374,7 @@ public class Window_gestionnaire extends JFrame {
cLV1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- majTableGroupes();
+ majTable();
}
});
@@ -386,7 +389,7 @@ public class Window_gestionnaire extends JFrame {
cProfil.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- majTableGroupes();
+ majTable();
}
});
textPaneNom.setFont(new Font("Tahoma", Font.BOLD, 12));
@@ -400,13 +403,13 @@ public class Window_gestionnaire extends JFrame {
@Override
public void insertUpdate(DocumentEvent e) {
- majTableGroupes();
+ majTable();
System.out.println("insertUpdate");
}
@Override
public void removeUpdate(DocumentEvent e) {
- majTableGroupes();
+ majTable();
System.out.println("removeUpdate");
}
@@ -465,8 +468,6 @@ public class Window_gestionnaire extends JFrame {
panelFiltre.add(lblLV2, gbc_lblLV2);
-
-
// Ajout d'un ActionListener à la JComboBox
cFormations = new JComboBox();
cFormations.setVisible(true);
@@ -480,11 +481,10 @@ public class Window_gestionnaire extends JFrame {
cFormations.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- majTableFormation();
+ majFiltres();
}
});
-
JLabel lblRegime = new JLabel("Régime");
lblRegime.setFont(new Font("Tahoma", Font.BOLD, 12));
@@ -534,8 +534,6 @@ public class Window_gestionnaire extends JFrame {
JMenu menuAffichage = new JMenu("Affichage");
menuAffichage.setFont(new Font("Segoe UI", Font.BOLD, 14));
menuBar.add(menuAffichage);
-
-
menuAffichage.add(chckToutesLesColonnes);
chckToutesLesColonnes.addItemListener(new ItemListener() {
@@ -659,6 +657,39 @@ public class Window_gestionnaire extends JFrame {
mnNewMenu.addSeparator();
+ JMenuItem menuSupprimeEtudiantDeLaBase = new JMenuItem("Supprimer de la base l'étudiant sélectionné.");
+ mnNewMenu.add(menuSupprimeEtudiantDeLaBase);
+ menuSupprimeEtudiantDeLaBase.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ if(nStudent!=null) {
+
+ String nomStudent = nStudent.getAttributes("Individu_-_Nom");
+ String prenomStudent = nStudent.getAttributes("Individu_-_Prenom");
+ String codeStudent = nStudent.getAttributes("Individu_-_Code_Etudiant");
+ String nomFormation = cFormations.getSelectedItem().toString();
+
+ int userChoice = JOptionPane.showConfirmDialog(null, "Vous êtes sur le point de supprimer de la formation : \"" + nomFormation +"\"
"
+ + "L'étudiant(e) : " +codeStudent + " - "+ prenomStudent + " " + nomStudent + "
"
+ + "Voulez-vous réellement le(a) retirer de cette formation ?", "Confirmation",JOptionPane.YES_NO_CANCEL_OPTION);
+
+ // Vérifier le choix de l'utilisateur
+ if (userChoice == JOptionPane.YES_OPTION) {
+ System.out.println("Vous avez choisi Oui.");
+ commandes.nBase.getChild(nomFormation).removeChild(nStudent);
+ majTable();
+ } else if (userChoice == JOptionPane.NO_OPTION) {
+ System.out.println("Vous avez choisi Non.");
+ } else if (userChoice == JOptionPane.CANCEL_OPTION) {
+ System.out.println("Vous avez choisi Annuler.");
+ } else {
+ System.out.println("Aucun choix n'a été fait.");
+ }
+ }
+ }
+ });
+
+ mnNewMenu.addSeparator();
+
JMenuItem menuSelectYearDefautl = new JMenuItem("Sélectionner une année universitaire par défaut");
mnNewMenu.add(menuSelectYearDefautl);
@@ -684,7 +715,7 @@ public class Window_gestionnaire extends JFrame {
cInformatique.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- majTableGroupes();
+ majTable();
}
});
@@ -698,7 +729,7 @@ public class Window_gestionnaire extends JFrame {
cLangueLV2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- majTableGroupes();
+ majTable();
}
});
@@ -709,11 +740,10 @@ public class Window_gestionnaire extends JFrame {
gbc_cDocumentation.gridx = 4;
gbc_cDocumentation.gridy = 3;
panelFiltre.add(cDocumentation, gbc_cDocumentation);
-
cDocumentation.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- majTableGroupes();
+ majTable();
}
});
@@ -724,11 +754,10 @@ public class Window_gestionnaire extends JFrame {
gbc_cLV2.gridx = 6;
gbc_cLV2.gridy = 3;
panelFiltre.add(cLV2, gbc_cLV2);
-
cLV2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- majTableGroupes();
+ majTable();
}
});
@@ -739,11 +768,10 @@ public class Window_gestionnaire extends JFrame {
gbc_cRegime.gridx = 7;
gbc_cRegime.gridy = 3;
panelFiltre.add(cRegime, gbc_cRegime);
-
cRegime.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- majTableGroupes();
+ majTable();
}
});
@@ -792,8 +820,10 @@ public class Window_gestionnaire extends JFrame {
if(rowData[indexPrenom]!=null && rowData[indexNom]!=null && rowData[indexCode]!=null) {
lblInformationStudent.setText(rowData[indexPrenom].toString() + " " + rowData[indexNom].toString() + " - " + rowData[indexCode].toString() );
+ nStudent = commandes.nBase.getChild(cFormations.getSelectedItem().toString()).getChild("n"+ rowData[indexCode]);
}else {
lblInformationStudent.setText("");
+ nStudent = null;
}
}
@@ -817,16 +847,42 @@ public class Window_gestionnaire extends JFrame {
}
});
-
+ // Ajouter un KeyListener à la JFrame
+ // détection de la touche escape pour remettre à null le noeud nStudent
+ // et réinitialise la selection de la ligne.
+ table.addKeyListener(new KeyListener() {
+ @Override
+ public void keyTyped(KeyEvent e) {
+ // Cette méthode n'est pas utilisée ici
+ }
+ @Override
+ public void keyPressed(KeyEvent e) {
+ // Vérifier si la touche Echap est pressée
+ if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
+ nStudent = null;
+ table.clearSelection();
+ System.out.println("La touche Echap a été pressée !");
+ }
+ }
+
+ @Override
+ public void keyReleased(KeyEvent e) {
+ // Cette méthode n'est pas utilisée ici
+ }
+ });
- majTableFormation();
- majTableGroupes();
+
+ majFiltres();
+ majTable();
frame.setVisible(true);
}
- public void majTableFormation() {
+ /**
+ * Mise à jour des combox
+ */
+ public void majFiltres() {
chargeAffichageColonne();
@@ -1058,7 +1114,7 @@ public class Window_gestionnaire extends JFrame {
/**
* Mise à jour de la table.
*/
- public void majTableGroupes() {
+ public void majTable() {
lblInformationStudent.setText("");
@@ -1386,8 +1442,8 @@ public class Window_gestionnaire extends JFrame {
table.setValueAt(oldValue, row, column);
}
- majTableFormation();
- majTableGroupes();
+ majFiltres();
+ majTable();
}
});
@@ -1453,6 +1509,11 @@ public class Window_gestionnaire extends JFrame {
return columnNames;
}
+ /**
+ * Permet de construire un dictionnaire qui permet
+ * d'associer au nom des colonnes de la table l'index de la colonne.
+ * @return
+ */
private Map getMapNamesColumnsIndexColumns(){
// Obtenir le modèle de la table
TableModel model = table.getModel();
@@ -1470,6 +1531,10 @@ public class Window_gestionnaire extends JFrame {
return MapColumnNames;
}
+ /**
+ * Mise à jour dans la table des chckMenu pour l'affichage de colonne.
+ * Enregistre dans la base l'état des chcMenu.
+ */
private void majAffichageDesChck() {
noeud nYears = commandes.nBase.getChild(cYears.getSelectedItem().toString());
@@ -1493,9 +1558,13 @@ public class Window_gestionnaire extends JFrame {
sauvegardeXMLBase.save(commandes.nBase, saveType.SANS_MESSAGE,"");
- majTableGroupes();
+ majTable();
}
+
+ /**
+ * Mise à jour de l'affichage des colonnes en fonction de l'information qui se trouve dans le noeud commandes.nBase.
+ */
private void chargeAffichageColonne() {
noeud nYears = commandes.nBase.getChild(cYears.getSelectedItem().toString());
diff --git a/src/baseUFRHG/actions/exportEmargement.java b/src/actions/exportEmargement.java
similarity index 86%
rename from src/baseUFRHG/actions/exportEmargement.java
rename to src/actions/exportEmargement.java
index 70784ba..100b0ae 100644
--- a/src/baseUFRHG/actions/exportEmargement.java
+++ b/src/actions/exportEmargement.java
@@ -1,4 +1,4 @@
-package baseUFRHG.actions;
+package actions;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
@@ -10,9 +10,9 @@ import javax.swing.ImageIcon;
import javax.swing.KeyStroke;
import Windows.Window_gestionnaire;
-import baseUFRHG.exportBaseToExcel;
-import baseUFRHG.exportBaseToExcel.exportType;
-import baseUFRHG.noeud;
+import exportations.exportBaseToExcel;
+import exportations.exportBaseToExcel.exportType;
+import outils.noeud;
@@ -38,7 +38,7 @@ public class exportEmargement extends AbstractAction{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
- instance.majTableGroupes();
+ instance.majTable();
this.nTable = instance.nTable;
if(nTable!=null) {
exportBaseToExcel.exportTable(nTable, exportType.EMARGEMENT);
diff --git a/src/baseUFRHG/actions/exportTable.java b/src/actions/exportTable.java
similarity index 86%
rename from src/baseUFRHG/actions/exportTable.java
rename to src/actions/exportTable.java
index a1a7e1a..d5065db 100644
--- a/src/baseUFRHG/actions/exportTable.java
+++ b/src/actions/exportTable.java
@@ -1,4 +1,4 @@
-package baseUFRHG.actions;
+package actions;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
@@ -11,9 +11,9 @@ import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
import Windows.Window_gestionnaire;
-import baseUFRHG.exportBaseToExcel;
-import baseUFRHG.exportBaseToExcel.exportType;
-import baseUFRHG.noeud;
+import exportations.exportBaseToExcel;
+import exportations.exportBaseToExcel.exportType;
+import outils.noeud;
@@ -39,7 +39,7 @@ public class exportTable extends AbstractAction{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
- instance.majTableGroupes();
+ instance.majTable();
this.nTable = instance.nTable;
if(nTable!=null) {
exportBaseToExcel.exportTable(nTable, exportType.TABLE);
diff --git a/src/baseUFRHG/actions/saveTable.java b/src/actions/saveTable.java
similarity index 73%
rename from src/baseUFRHG/actions/saveTable.java
rename to src/actions/saveTable.java
index 50f0ba8..9455232 100644
--- a/src/baseUFRHG/actions/saveTable.java
+++ b/src/actions/saveTable.java
@@ -1,4 +1,4 @@
-package baseUFRHG.actions;
+package actions;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
@@ -10,19 +10,15 @@ import javax.swing.ImageIcon;
import javax.swing.KeyStroke;
import Windows.Window_gestionnaire;
-import baseUFRHG.CreateUpdateZipArchive;
-import baseUFRHG.commandes;
-import baseUFRHG.sauvegardeXMLBase;
-import baseUFRHG.sauvegardeXMLBase.saveType;
+import base.CreateUpdateZipArchive;
+import base.sauvegardeXMLBase;
+import base.sauvegardeXMLBase.saveType;
+import outils.commandes;
public class saveTable extends AbstractAction{
-
- private Window_gestionnaire instance;
-
public saveTable(Window_gestionnaire instance) {
- this.instance = instance;
putValue( Action.NAME, "Sauvegarder les modifications" );
putValue( Action.SMALL_ICON, new ImageIcon(Window_gestionnaire.class.getResource("/resources/saveTable.png")) );
putValue( Action.LARGE_ICON_KEY, new ImageIcon(Window_gestionnaire.class.getResource("/resources/saveTable.png")) );
@@ -40,10 +36,6 @@ public class saveTable extends AbstractAction{
// Sauvegarde de la base
sauvegardeXMLBase.save(commandes.nBase,saveType.WITH_DEFAULT_MESSAGE,"");
- CreateUpdateZipArchive.save();
-
- instance.majTableFormation();
- instance.majTableGroupes();
-
+ CreateUpdateZipArchive.save();
}
}
diff --git a/src/baseUFRHG/CreateUpdateZipArchive.java b/src/base/CreateUpdateZipArchive.java
similarity index 96%
rename from src/baseUFRHG/CreateUpdateZipArchive.java
rename to src/base/CreateUpdateZipArchive.java
index a3142ce..fd1cd23 100644
--- a/src/baseUFRHG/CreateUpdateZipArchive.java
+++ b/src/base/CreateUpdateZipArchive.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package base;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
@@ -17,6 +17,8 @@ import java.util.Comparator;
import java.util.List;
import java.util.zip.ZipOutputStream;
+import outils.commandes;
+
public class CreateUpdateZipArchive {
diff --git a/src/base/Hash.java b/src/base/Hash.java
new file mode 100644
index 0000000..0f098cf
--- /dev/null
+++ b/src/base/Hash.java
@@ -0,0 +1,77 @@
+package base;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+import outils.commandes;
+import outils.noeud;
+
+public class Hash {
+
+ /**
+ * Retourne TRUE si doit réaliser une sauvegarde de la base.
+ * @return
+ */
+ public static boolean faireLaSauvegarde() {
+ boolean result = false;
+ noeud nSauvgardeBase = recupeBases.recupereLaSauvegardeBase();
+ String nSauvegardeBaseString = "";
+ String nBaseString = "";
+
+ boolean sauvegareExiste = false;
+ String defaut_Year = "";
+ if(nSauvgardeBase!=null) {
+ if(nSauvgardeBase.getAttributes("defaut_Year")!=null) {
+ defaut_Year = nSauvgardeBase.getAttributes("defaut_Year");
+ if(nSauvgardeBase.getChild(defaut_Year)!=null) {
+ nSauvegardeBaseString = nSauvgardeBase.getChild(defaut_Year).toWrite();
+ if(commandes.nBase.getChild(defaut_Year)!=null) {
+ nBaseString = commandes.nBase.getChild(defaut_Year).toWrite();
+ sauvegareExiste = true;
+ }
+
+ }
+ }
+ }else {
+ // Si le fichier de sauvegarde n'existe pas alors doit créer une sauvegarde.
+ result = true;
+ }
+
+ if(!sauvegareExiste) return result;
+
+ try {
+ // Calculer le hachage (hash) du contenu du fichier
+ String fileHashFileSave = calculateHash(nSauvegardeBaseString);
+
+ // Hachage de référence à comparer
+ String fileHashBase = calculateHash(nBaseString);
+
+ // Comparer les hachages
+ if (!fileHashFileSave.equals(fileHashBase)) {
+ System.out.println("Les hachages sont différents. Sauvegarde.");
+ result = true;
+ } else {
+ System.out.println("Les hachages sont identiques. Pas de sauvegarde.");
+ }
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+
+ return result;
+ }
+
+
+
+ private static String calculateHash(String input) throws NoSuchAlgorithmException {
+ MessageDigest md = MessageDigest.getInstance("SHA-256");
+ byte[] hashBytes = md.digest(input.getBytes());
+
+ StringBuilder hash = new StringBuilder();
+ for (byte b : hashBytes) {
+ hash.append(String.format("%02x", b));
+ }
+
+ return hash.toString();
+ }
+}
+
diff --git a/src/baseUFRHG/base.java b/src/base/base.java
similarity index 92%
rename from src/baseUFRHG/base.java
rename to src/base/base.java
index 8b98a45..44b1375 100644
--- a/src/baseUFRHG/base.java
+++ b/src/base/base.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package base;
import java.io.IOException;
import java.text.SimpleDateFormat;
@@ -10,7 +10,10 @@ import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
-import baseUFRHG.sauvegardeXMLBase.saveType;
+import base.sauvegardeXMLBase.saveType;
+import outils.commandes;
+import outils.noeud;
+import outils.supprimeCaracatresSpeciaux;
public class base {
diff --git a/src/baseUFRHG/recupeBases.java b/src/base/recupeBases.java
similarity index 66%
rename from src/baseUFRHG/recupeBases.java
rename to src/base/recupeBases.java
index c5131a8..8290280 100644
--- a/src/baseUFRHG/recupeBases.java
+++ b/src/base/recupeBases.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package base;
import java.io.File;
import java.nio.file.Paths;
@@ -7,6 +7,10 @@ import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
+import outils.lectureFileToString;
+import outils.lectureXML;
+import outils.noeud;
+
public class recupeBases {
/**
@@ -16,8 +20,6 @@ public class recupeBases {
String filePath = Paths.get("").toAbsolutePath().toString()+ "/base/base.xml";
File file = new File(filePath);
noeud nBase = null;
-
-
if (file.exists()) {
@@ -45,4 +47,23 @@ public class recupeBases {
}
+ public static noeud recupereLaSauvegardeBase() {
+ String filePath = Paths.get("").toAbsolutePath().toString()+ "/base/base_sauvegarde.xml";
+ File file = new File(filePath);
+ noeud nSauvegardeBase = null;
+
+
+
+
+ if (file.exists()) {
+ //lecture du fichier base.xml
+ String directoryName = Paths.get("").toAbsolutePath().toString()+ "/base/base_sauvegarde.xml";
+ String xmlString = lectureFileToString.lecture(directoryName);
+ nSauvegardeBase = lectureXML.lectureStringToNoeud(xmlString);
+
+ }
+
+ return nSauvegardeBase;
+ }
+
}
diff --git a/src/baseUFRHG/sauvegardeXMLBase.java b/src/base/sauvegardeXMLBase.java
similarity index 96%
rename from src/baseUFRHG/sauvegardeXMLBase.java
rename to src/base/sauvegardeXMLBase.java
index 5644d50..4038f87 100644
--- a/src/baseUFRHG/sauvegardeXMLBase.java
+++ b/src/base/sauvegardeXMLBase.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package base;
import java.io.BufferedWriter;
import java.io.File;
@@ -11,6 +11,8 @@ import java.util.Date;
import javax.swing.JOptionPane;
+import outils.noeud;
+
public class sauvegardeXMLBase {
public static enum saveType{
@@ -125,7 +127,7 @@ public class sauvegardeXMLBase {
} catch (IOException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.toString(), "Erreur dans la méthode saveSauvegarde.", JOptionPane.ERROR_MESSAGE);
- }
+ }
}
diff --git a/src/baseUFRHG/CreateCalcWorkbook.java b/src/exportations/CreateCalcWorkbook.java
similarity index 96%
rename from src/baseUFRHG/CreateCalcWorkbook.java
rename to src/exportations/CreateCalcWorkbook.java
index 3ec505c..88a0e67 100644
--- a/src/baseUFRHG/CreateCalcWorkbook.java
+++ b/src/exportations/CreateCalcWorkbook.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package exportations;
import java.awt.BorderLayout;
import java.awt.Dimension;
diff --git a/src/baseUFRHG/createEmargement.java b/src/exportations/createEmargement.java
similarity index 97%
rename from src/baseUFRHG/createEmargement.java
rename to src/exportations/createEmargement.java
index 8dc4931..62fd891 100644
--- a/src/baseUFRHG/createEmargement.java
+++ b/src/exportations/createEmargement.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package exportations;
import java.awt.BorderLayout;
import java.awt.Dimension;
diff --git a/src/baseUFRHG/exportBaseToExcel.java b/src/exportations/exportBaseToExcel.java
similarity index 96%
rename from src/baseUFRHG/exportBaseToExcel.java
rename to src/exportations/exportBaseToExcel.java
index d718ed8..f20fe52 100644
--- a/src/baseUFRHG/exportBaseToExcel.java
+++ b/src/exportations/exportBaseToExcel.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package exportations;
import java.util.Arrays;
import java.util.Comparator;
@@ -7,6 +7,10 @@ import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
+import outils.FileSaveXLSX;
+import outils.commandes;
+import outils.noeud;
+
public class exportBaseToExcel {
public static enum exportType {
diff --git a/src/baseUFRHG/VersionChecker.java b/src/gestion_version/VersionChecker.java
similarity index 95%
rename from src/baseUFRHG/VersionChecker.java
rename to src/gestion_version/VersionChecker.java
index 6b0c4b0..7bb2662 100644
--- a/src/baseUFRHG/VersionChecker.java
+++ b/src/gestion_version/VersionChecker.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package gestion_version;
import java.io.BufferedReader;
import java.io.IOException;
@@ -10,7 +10,12 @@ import java.util.regex.Pattern;
import javax.swing.JOptionPane;
-import baseUFRHG.sauvegardeXMLBase.saveType;
+import base.recupeBases;
+import base.sauvegardeXMLBase;
+import base.sauvegardeXMLBase.saveType;
+import outils.commandes;
+import outils.lectureXML;
+import outils.noeud;
public class VersionChecker {
diff --git a/src/baseUFRHG/importAllBaseToExcel.java b/src/importations/importAllBaseToExcel.java
similarity index 96%
rename from src/baseUFRHG/importAllBaseToExcel.java
rename to src/importations/importAllBaseToExcel.java
index c335068..f6cf7b9 100644
--- a/src/baseUFRHG/importAllBaseToExcel.java
+++ b/src/importations/importAllBaseToExcel.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package importations;
import java.io.File;
import java.io.FileInputStream;
@@ -13,6 +13,12 @@ import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import base.recupeBases;
+import base.sauvegardeXMLBase;
+import outils.commandes;
+import outils.noeud;
+import outils.supprimeCaracatresSpeciaux;
+
public class importAllBaseToExcel {
public static void lecture(File file) {
diff --git a/src/baseUFRHG/FileChooserCSV.java b/src/outils/FileChooserCSV.java
similarity index 95%
rename from src/baseUFRHG/FileChooserCSV.java
rename to src/outils/FileChooserCSV.java
index 65b0237..9811594 100644
--- a/src/baseUFRHG/FileChooserCSV.java
+++ b/src/outils/FileChooserCSV.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
import java.io.File;
diff --git a/src/baseUFRHG/FileChooserXLSX.java b/src/outils/FileChooserXLSX.java
similarity index 95%
rename from src/baseUFRHG/FileChooserXLSX.java
rename to src/outils/FileChooserXLSX.java
index 3aa2766..bfbd276 100644
--- a/src/baseUFRHG/FileChooserXLSX.java
+++ b/src/outils/FileChooserXLSX.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
import java.io.File;
diff --git a/src/baseUFRHG/FileChooserXML.java b/src/outils/FileChooserXML.java
similarity index 95%
rename from src/baseUFRHG/FileChooserXML.java
rename to src/outils/FileChooserXML.java
index 83477a2..8ad8a6e 100644
--- a/src/baseUFRHG/FileChooserXML.java
+++ b/src/outils/FileChooserXML.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
import java.io.File;
diff --git a/src/baseUFRHG/FileSaveXLSX.java b/src/outils/FileSaveXLSX.java
similarity index 91%
rename from src/baseUFRHG/FileSaveXLSX.java
rename to src/outils/FileSaveXLSX.java
index f602aeb..8270706 100644
--- a/src/baseUFRHG/FileSaveXLSX.java
+++ b/src/outils/FileSaveXLSX.java
@@ -1,10 +1,14 @@
-package baseUFRHG;
+package outils;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
+import exportations.CreateCalcWorkbook;
+import exportations.createEmargement;
+import exportations.exportBaseToExcel;
+
public class FileSaveXLSX {
Object[][] data = null;
String Formation = "";
diff --git a/src/baseUFRHG/TextComparator.java b/src/outils/TextComparator.java
similarity index 95%
rename from src/baseUFRHG/TextComparator.java
rename to src/outils/TextComparator.java
index 8e6fa96..a11430f 100644
--- a/src/baseUFRHG/TextComparator.java
+++ b/src/outils/TextComparator.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
public class TextComparator {
diff --git a/src/baseUFRHG/XMLParser.java b/src/outils/XMLParser.java
similarity index 95%
rename from src/baseUFRHG/XMLParser.java
rename to src/outils/XMLParser.java
index 8eb130b..da59eef 100644
--- a/src/baseUFRHG/XMLParser.java
+++ b/src/outils/XMLParser.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
diff --git a/src/baseUFRHG/XmlLoader.java b/src/outils/XmlLoader.java
similarity index 96%
rename from src/baseUFRHG/XmlLoader.java
rename to src/outils/XmlLoader.java
index 58f5108..9e740f2 100644
--- a/src/baseUFRHG/XmlLoader.java
+++ b/src/outils/XmlLoader.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
import java.io.File;
diff --git a/src/baseUFRHG/XmlWriter.java b/src/outils/XmlWriter.java
similarity index 95%
rename from src/baseUFRHG/XmlWriter.java
rename to src/outils/XmlWriter.java
index 796ca7e..576cb3d 100644
--- a/src/baseUFRHG/XmlWriter.java
+++ b/src/outils/XmlWriter.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
import java.io.FileOutputStream;
import java.io.IOException;
diff --git a/src/baseUFRHG/ZipExtractorGraphic.java b/src/outils/ZipExtractorGraphic.java
similarity index 96%
rename from src/baseUFRHG/ZipExtractorGraphic.java
rename to src/outils/ZipExtractorGraphic.java
index 12d9f90..b7bd7bb 100644
--- a/src/baseUFRHG/ZipExtractorGraphic.java
+++ b/src/outils/ZipExtractorGraphic.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
import java.io.ByteArrayOutputStream;
diff --git a/src/baseUFRHG/commandes.java b/src/outils/commandes.java
similarity index 94%
rename from src/baseUFRHG/commandes.java
rename to src/outils/commandes.java
index 433de8f..e1eb277 100644
--- a/src/baseUFRHG/commandes.java
+++ b/src/outils/commandes.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
public class commandes {
diff --git a/src/baseUFRHG/lectureFileToString.java b/src/outils/lectureFileToString.java
similarity index 93%
rename from src/baseUFRHG/lectureFileToString.java
rename to src/outils/lectureFileToString.java
index ad11bfa..1eade6c 100644
--- a/src/baseUFRHG/lectureFileToString.java
+++ b/src/outils/lectureFileToString.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
import java.io.BufferedReader;
import java.io.FileInputStream;
diff --git a/src/baseUFRHG/lectureXML.java b/src/outils/lectureXML.java
similarity index 95%
rename from src/baseUFRHG/lectureXML.java
rename to src/outils/lectureXML.java
index 8aa1655..12260fd 100644
--- a/src/baseUFRHG/lectureXML.java
+++ b/src/outils/lectureXML.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
import java.io.BufferedReader;
import java.io.File;
diff --git a/src/baseUFRHG/noeud.java b/src/outils/noeud.java
similarity index 96%
rename from src/baseUFRHG/noeud.java
rename to src/outils/noeud.java
index 6c6cd84..acbcec2 100644
--- a/src/baseUFRHG/noeud.java
+++ b/src/outils/noeud.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
import java.util.ArrayList;
diff --git a/src/baseUFRHG/supprimeCaracatresSpeciaux.java b/src/outils/supprimeCaracatresSpeciaux.java
similarity index 94%
rename from src/baseUFRHG/supprimeCaracatresSpeciaux.java
rename to src/outils/supprimeCaracatresSpeciaux.java
index 6bd44fa..9de115d 100644
--- a/src/baseUFRHG/supprimeCaracatresSpeciaux.java
+++ b/src/outils/supprimeCaracatresSpeciaux.java
@@ -1,4 +1,4 @@
-package baseUFRHG;
+package outils;
import java.text.Normalizer;
diff --git a/src/resources/Sans titre.png b/src/resources/Sans titre.png
deleted file mode 100644
index 7ef30f3..0000000
Binary files a/src/resources/Sans titre.png and /dev/null differ
diff --git a/src/resources/Sans titre_1.jpg b/src/resources/Sans titre_1.jpg
new file mode 100644
index 0000000..e160cd5
Binary files /dev/null and b/src/resources/Sans titre_1.jpg differ
diff --git a/src/resources/Sans titre_10.jpg b/src/resources/Sans titre_10.jpg
new file mode 100644
index 0000000..05f2475
Binary files /dev/null and b/src/resources/Sans titre_10.jpg differ
diff --git a/src/resources/Sans titre_11.jpg b/src/resources/Sans titre_11.jpg
new file mode 100644
index 0000000..9ee91c9
Binary files /dev/null and b/src/resources/Sans titre_11.jpg differ
diff --git a/src/resources/Sans titre_12.jpg b/src/resources/Sans titre_12.jpg
new file mode 100644
index 0000000..15e7409
Binary files /dev/null and b/src/resources/Sans titre_12.jpg differ
diff --git a/src/resources/Sans titre_13.jpg b/src/resources/Sans titre_13.jpg
new file mode 100644
index 0000000..8c1db05
Binary files /dev/null and b/src/resources/Sans titre_13.jpg differ
diff --git a/src/resources/Sans titre_14.jpg b/src/resources/Sans titre_14.jpg
new file mode 100644
index 0000000..18b81b1
Binary files /dev/null and b/src/resources/Sans titre_14.jpg differ
diff --git a/src/resources/Sans titre_15.jpg b/src/resources/Sans titre_15.jpg
new file mode 100644
index 0000000..44063d7
Binary files /dev/null and b/src/resources/Sans titre_15.jpg differ
diff --git a/src/resources/Sans titre_16.jpg b/src/resources/Sans titre_16.jpg
new file mode 100644
index 0000000..1215d52
Binary files /dev/null and b/src/resources/Sans titre_16.jpg differ
diff --git a/src/resources/Sans titre_2.jpg b/src/resources/Sans titre_2.jpg
new file mode 100644
index 0000000..fadb6de
Binary files /dev/null and b/src/resources/Sans titre_2.jpg differ
diff --git a/src/resources/Sans titre_3.jpg b/src/resources/Sans titre_3.jpg
new file mode 100644
index 0000000..8f0ed57
Binary files /dev/null and b/src/resources/Sans titre_3.jpg differ
diff --git a/src/resources/Sans titre_4.jpg b/src/resources/Sans titre_4.jpg
new file mode 100644
index 0000000..a8e9ed4
Binary files /dev/null and b/src/resources/Sans titre_4.jpg differ
diff --git a/src/resources/Sans titre_5.jpg b/src/resources/Sans titre_5.jpg
new file mode 100644
index 0000000..0920294
Binary files /dev/null and b/src/resources/Sans titre_5.jpg differ
diff --git a/src/resources/Sans titre_6.jpg b/src/resources/Sans titre_6.jpg
new file mode 100644
index 0000000..a0c07a0
Binary files /dev/null and b/src/resources/Sans titre_6.jpg differ
diff --git a/src/resources/Sans titre_7.jpg b/src/resources/Sans titre_7.jpg
new file mode 100644
index 0000000..06c315e
Binary files /dev/null and b/src/resources/Sans titre_7.jpg differ
diff --git a/src/resources/Sans titre_8.jpg b/src/resources/Sans titre_8.jpg
new file mode 100644
index 0000000..b3f8f37
Binary files /dev/null and b/src/resources/Sans titre_8.jpg differ
diff --git a/src/resources/Sans titre_9.jpg b/src/resources/Sans titre_9.jpg
new file mode 100644
index 0000000..95c2f21
Binary files /dev/null and b/src/resources/Sans titre_9.jpg differ