From 90467fd81e32fbeb7b05dfd9ebbc27f2a38cf0d9 Mon Sep 17 00:00:00 2001
From: pablo rodriguez <58742538+1-pablo-rodriguez@users.noreply.github.com>
Date: Tue, 11 Jul 2023 14:32:59 +0200
Subject: [PATCH] MAJ V1.0.5
---
base/base_sauvegarde.xml | 2 +-
src/Inscriptions/importInscriptionXLS.java | 5 +-
src/Windows/Window_demarre.java | 6 +-
...indow_parametreImportationInscription.java | 232 +++++++++++++++++
src/base/base.java | 2 +-
...correspondanceNomDeColonneInscription.java | 52 ++--
src/exportations/exportBaseToExcel.java | 233 +++++++++---------
src/gestion_version/VersionChecker.java | 205 +++++++++------
src/outils/commandes.java | 7 +-
9 files changed, 523 insertions(+), 221 deletions(-)
create mode 100644 src/Windows/Window_parametreImportationInscription.java
diff --git a/base/base_sauvegarde.xml b/base/base_sauvegarde.xml
index e5575b3..9846d94 100644
--- a/base/base_sauvegarde.xml
+++ b/base/base_sauvegarde.xml
@@ -1 +1 @@
-
"
+ + "Le nom de la feuille doit être : "+commandes.nomFeuilleExcel_Inscription+"");
return;
}
diff --git a/src/Windows/Window_demarre.java b/src/Windows/Window_demarre.java
index 280414d..f4b7c84 100644
--- a/src/Windows/Window_demarre.java
+++ b/src/Windows/Window_demarre.java
@@ -143,10 +143,9 @@ public class Window_demarre extends JFrame {
frmEvalwriter.setBounds(100, 100, 789, 636);
- if(commandes.newVersion) {
- frmEvalwriter.setBounds(100, 100, 789, 745);
- }
+ //Affiche le bouton "Nouvelle version dispoinible".
+ if(commandes.newVersion) frmEvalwriter.setBounds(100, 100, 789, 745);
int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth();
int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight();
@@ -243,6 +242,7 @@ public class Window_demarre extends JFrame {
btnNewButton.setForeground(Color.GRAY);
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
+ Window_parametreImportationInscription.Affiche();
}
});
btnNewButton.setFont(new Font("Arial", Font.BOLD, 16));
diff --git a/src/Windows/Window_parametreImportationInscription.java b/src/Windows/Window_parametreImportationInscription.java
new file mode 100644
index 0000000..5a9d4f1
--- /dev/null
+++ b/src/Windows/Window_parametreImportationInscription.java
@@ -0,0 +1,232 @@
+package Windows;
+
+import java.awt.EventQueue;
+
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.border.EmptyBorder;
+import javax.swing.JLabel;
+import java.awt.Font;
+import javax.swing.SwingConstants;
+import javax.swing.JTextField;
+import java.awt.Color;
+import javax.swing.JButton;
+
+/**
+ * Fenêtre permettant de changer les paramètres (nom de la feuille, noms des colonnes).
+ * Pour importer les inscriptions depuis un classeur Ms Excel.
+ * @author pabr6
+ *
+ */
+public class Window_parametreImportationInscription extends JFrame {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private JPanel contentPane;
+ private JTextField txtNomFeuille;
+ private JTextField txtNomColonneExcel_Formation;
+ private JTextField txtNomColonneExcel_NomEtudiant;
+ private JLabel lblleNomColonneExcel_PrenomEtudiant;
+ private JTextField txtNomColonneExcel_PrenomEtudiant;
+ private JLabel lblleNomColonneExcel_CodeEtudiant;
+ private JTextField txtNomColonneExcel_CodeEtudiant;
+ private JLabel lblleNomColonneExcel_ProfilEtudiant;
+ private JTextField txtNomColonneExcel_ProfilEtudiant;
+ private JLabel lblleNomColonneExcel_BacEtudiant;
+ private JTextField txtNomColonneExcel_BacEtudiant;
+ private JLabel lblleNomColonneExcel_PortableEtudiant;
+ private JTextField txtNomColonneExcel_PortableEtudiant;
+ private JLabel lblleNomColonneExcel_MailPersoEtudiant;
+ private JTextField txtNomColonneExcel_MailPersoEtudiant;
+ private JLabel lblleNomColonneExcel_MailPersoEtudiant_1;
+ private JTextField txtNomColonneExcel_MailUnivEtudiant;
+ private JButton btnEnregistrer;
+ private JLabel lblImage;
+
+ /**
+ * Lancement de l'affichage de la fenêtre.
+ */
+ public static void Affiche() {
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ try {
+ Window_parametreImportationInscription frame = new Window_parametreImportationInscription();
+ frame.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+ /**
+ * Crréation de la fenêtre.
+ */
+ public Window_parametreImportationInscription() {
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ contentPane = new JPanel();
+ contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
+
+ setContentPane(contentPane);
+
+ setTitle("Gestion des inscriptions et des groupes - langues - informatique - stage - rentrée");
+ setBounds(0, 0, 1200, 860);
+
+ int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth();
+ int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight();
+ setLocation(( (screenWidth) - getWidth()) / 2, (screenHeight - getHeight()) / 2);
+
+ setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
+ getContentPane().setLayout(null);
+
+ JLabel lblNomFeuilleExcel = new JLabel("Le nom de la feuille contenant
les inscriptions");
+ lblNomFeuilleExcel.setHorizontalAlignment(SwingConstants.LEFT);
+ lblNomFeuilleExcel.setFont(new Font("Arial", Font.BOLD, 14));
+ lblNomFeuilleExcel.setBounds(20, 527, 307, 34);
+ contentPane.add(lblNomFeuilleExcel);
+
+ txtNomFeuille = new JTextField();
+ txtNomFeuille.setText("Inscrits détail");
+ txtNomFeuille.setFont(new Font("Tahoma", Font.BOLD, 14));
+ txtNomFeuille.setBounds(326, 526, 244, 34);
+ contentPane.add(txtNomFeuille);
+ txtNomFeuille.setColumns(32);
+
+ JLabel lblleNomColonneExcel_Formation = new JLabel("Le nom de la colonne : formation");
+ lblleNomColonneExcel_Formation.setHorizontalAlignment(SwingConstants.LEFT);
+ lblleNomColonneExcel_Formation.setFont(new Font("Arial", Font.BOLD, 14));
+ lblleNomColonneExcel_Formation.setBounds(20, 570, 348, 34);
+ contentPane.add(lblleNomColonneExcel_Formation);
+
+ txtNomColonneExcel_Formation = new JTextField();
+ txtNomColonneExcel_Formation.setText("IAE - Version d'étape (lib. web)");
+ txtNomColonneExcel_Formation.setFont(new Font("Tahoma", Font.BOLD, 14));
+ txtNomColonneExcel_Formation.setColumns(60);
+ txtNomColonneExcel_Formation.setBounds(326, 571, 244, 34);
+ contentPane.add(txtNomColonneExcel_Formation);
+
+ JLabel lblNewLabel = new JLabel("
Si vous rencontrez des difficultés pour importer les données à partir du classeur fourni par le service de récupération des inscriptions des étudiants, il est probable que le nom de la feuille dans le classeur ou le nom des colonnes ne correspondent pas à ceux de l'application.
Pour résoudre ce problème, veuillez suivre les étapes suivantes :
\r\n1 - Ouvrez le classeur fourni.
\r\n2 - Copiez les différents noms des colonnes correspondant à chaque information requise par l'application.
\r\n3 - Collez ces noms dans les emplacements appropriés ci-dessous.
\r\n4 - Cliquez sur le bouton \"Enregistrer\"
Une fois ces étapes complétées, les informations seront importées et conservées dans la base de données de l'application. Cela devrait permettre une importation correcte des données et assurer leur enregistrement dans la base de données.
"); + lblNewLabel.setForeground(Color.BLUE); + lblNewLabel.setFont(new Font("Arial", Font.BOLD, 14)); + lblNewLabel.setVerticalAlignment(SwingConstants.TOP); + lblNewLabel.setHorizontalAlignment(SwingConstants.LEFT); + lblNewLabel.setBounds(10, 319, 1164, 201); + contentPane.add(lblNewLabel); + + JLabel lblleNomColonneExcel_NomEtudiant = new JLabel("Le nom de la colonne : nom de l'étudiant"); + lblleNomColonneExcel_NomEtudiant.setHorizontalAlignment(SwingConstants.LEFT); + lblleNomColonneExcel_NomEtudiant.setFont(new Font("Arial", Font.BOLD, 14)); + lblleNomColonneExcel_NomEtudiant.setBounds(20, 615, 348, 34); + contentPane.add(lblleNomColonneExcel_NomEtudiant); + + txtNomColonneExcel_NomEtudiant = new JTextField(); + txtNomColonneExcel_NomEtudiant.setText("Individu - Nom"); + txtNomColonneExcel_NomEtudiant.setFont(new Font("Tahoma", Font.BOLD, 14)); + txtNomColonneExcel_NomEtudiant.setColumns(60); + txtNomColonneExcel_NomEtudiant.setBounds(326, 614, 244, 34); + contentPane.add(txtNomColonneExcel_NomEtudiant); + + lblleNomColonneExcel_PrenomEtudiant = new JLabel("Le nom de la colonne : prénom deLa table de données est vide.
"); - panel.add(message); - JOptionPane.showMessageDialog(null, panel, "Erreur", JOptionPane.ERROR_MESSAGE); - return; - } - - - Object[][] data = new Object[1][33]; - - String formation = nTable.getFirstChild().getAttributes("IAE_-_Version_detape_lib._web"); - - - data[0][0] = nTable.getFirstChild().getAttributes("IAE_-_Version_detape_lib._web"); - data[0][1] = "Formation"; - data[0][2] = commandes.nomColonneFormation; //"Individu_-_Code_Etudiant"; - data[0][3] = commandes.nomColonnePrenomEtudiant;//"Individu_-_Prenom"; - data[0][4] = commandes.nomColonneNomEtudiant;//"Individu_-_Nom"; - data[0][5] = commandes.nomColonneProfilEtudiant;//"Profil_etudiant_lib."; - data[0][6] = commandes.nomColonnePortableEtudiant; //"Individu_-_Tel._portable"; - data[0][7] = commandes.nomColonneMailPersoEtudiant; //"Individu_-_Email_personnel"; - data[0][8] = commandes.nomColonneMailUnivEtudiant; //"Individu_-_Email"; - data[0][9] = "Groupe_Principal"; - data[0][10] = "Groupe_TD"; - data[0][11] = "Groupe_LV1"; - data[0][12] = "Groupe_LV2"; - data[0][13] = "Groupe_Informatique"; - data[0][14] = "Groupe_Projet"; - data[0][15] = "Groupe_Doc"; - data[0][16] = "Groupe_TP"; - data[0][17] = "LV1"; - data[0][18] = "LV2"; - data[0][19] = "Regime"; - data[0][20] = "Atelier-rentree_horaire"; - data[0][21] = "Atelier_pre-rentree_enseignant"; - data[0][22] = "Atelier_pre-rentree_salle"; - data[0][23] = "UE_Libre"; - data[0][24] = "Covoiturage"; - data[0][25] = "Etudiant_Covoiturage"; - data[0][26] = "Stage_1"; - data[0][27] = "Num_convention_1"; - data[0][28] = "Periode_1"; - data[0][29] = "Stage_2"; - data[0][30] = "Num_convention_2"; - data[0][31] = "Periode_2"; - - - String[][] data1 = new String[nTable.getChildren().size()][31]; - - int indexStudent = 0; - for(noeud nStudent : nTable.getChildren()) { - data1[indexStudent][0] = nStudent.getAttributes(commandes.nomColonneFormation);; - data1[indexStudent][1] = nStudent.getAttributes(commandes.nomColonneCodeEtudiant); - data1[indexStudent][2] = nStudent.getAttributes(commandes.nomColonnePrenomEtudiant); - data1[indexStudent][3] = nStudent.getAttributes(commandes.nomColonneNomEtudiant); - data1[indexStudent][4] = nStudent.getAttributes(commandes.nomColonneProfilEtudiant); - data1[indexStudent][5] = nStudent.getAttributes(commandes.nomColonnePortableEtudiant); - data1[indexStudent][6] = nStudent.getAttributes(commandes.nomColonneMailPersoEtudiant); - data1[indexStudent][7] = nStudent.getAttributes(commandes.nomColonneMailUnivEtudiant); - data1[indexStudent][8] = nStudent.getAttributes("Groupe_Principal"); - data1[indexStudent][9] = nStudent.getAttributes("Groupe_TD"); - data1[indexStudent][10] = nStudent.getAttributes("Groupe_LV1"); - data1[indexStudent][11] = nStudent.getAttributes("Groupe_LV2"); - data1[indexStudent][12] = nStudent.getAttributes("Groupe_Informatique"); - data1[indexStudent][13] = nStudent.getAttributes("Groupe_Projet"); - data1[indexStudent][14] = nStudent.getAttributes("Groupe_Doc"); - data1[indexStudent][15] = nStudent.getAttributes("Groupe_TP"); - data1[indexStudent][16] = nStudent.getAttributes("LV1"); - data1[indexStudent][17] = nStudent.getAttributes("LV2"); - data1[indexStudent][18] = nStudent.getAttributes("Regime"); - data1[indexStudent][19] = nStudent.getAttributes("Atelier-rentree_horaire"); - data1[indexStudent][20] = nStudent.getAttributes("Atelier_pre-rentree_enseignant"); - data1[indexStudent][21] = nStudent.getAttributes("Atelier_pre-rentree_salle"); - data1[indexStudent][22] = nStudent.getAttributes("UE_Libre"); - data1[indexStudent][23] = nStudent.getAttributes("Covoiturage"); - data1[indexStudent][24] = nStudent.getAttributes("Etudiant_Covoiturage"); - data1[indexStudent][25] = nStudent.getAttributes("Stage_1"); - data1[indexStudent][26] = nStudent.getAttributes("Num_convention_1"); - data1[indexStudent][27] = nStudent.getAttributes("Periode_1"); - data1[indexStudent][28] = nStudent.getAttributes("Stage_2"); - data1[indexStudent][29] = nStudent.getAttributes("Num_convention_2"); - data1[indexStudent][30] = nStudent.getAttributes("Periode_2"); - - data[0][32] = data1; - indexStudent++; - } + if(nTable.getFirstChild()==null) { + JPanel panel = new JPanel(); + JLabel message = new JLabel("La table de données est vide.
"); + panel.add(message); + JOptionPane.showMessageDialog(null, panel, "Erreur", JOptionPane.ERROR_MESSAGE); + return; + } + + + Object[][] data = new Object[1][33]; + + String formation = nTable.getFirstChild().getAttributes("IAE_-_Version_detape_lib._web"); + + + data[0][0] = nTable.getFirstChild().getAttributes("IAE_-_Version_detape_lib._web"); + data[0][1] = "Formation"; + data[0][2] = commandes.nomColonneFormation; //"Individu_-_Code_Etudiant"; + data[0][3] = commandes.nomColonnePrenomEtudiant;//"Individu_-_Prenom"; + data[0][4] = commandes.nomColonneNomEtudiant;//"Individu_-_Nom"; + data[0][5] = commandes.nomColonneProfilEtudiant;//"Profil_etudiant_lib."; + data[0][6] = commandes.nomColonnePortableEtudiant; //"Individu_-_Tel._portable"; + data[0][7] = commandes.nomColonneMailPersoEtudiant; //"Individu_-_Email_personnel"; + data[0][8] = commandes.nomColonneMailUnivEtudiant; //"Individu_-_Email"; + data[0][9] = "Groupe_Principal"; + data[0][10] = "Groupe_TD"; + data[0][11] = "Groupe_LV1"; + data[0][12] = "Groupe_LV2"; + data[0][13] = "Groupe_Informatique"; + data[0][14] = "Groupe_Projet"; + data[0][15] = "Groupe_Doc"; + data[0][16] = "Groupe_TP"; + data[0][17] = "LV1"; + data[0][18] = "LV2"; + data[0][19] = "Regime"; + data[0][20] = "Atelier-rentree_horaire"; + data[0][21] = "Atelier_pre-rentree_enseignant"; + data[0][22] = "Atelier_pre-rentree_salle"; + data[0][23] = "UE_Libre"; + data[0][24] = "Covoiturage"; + data[0][25] = "Etudiant_Covoiturage"; + data[0][26] = "Stage_1"; + data[0][27] = "Num_convention_1"; + data[0][28] = "Periode_1"; + data[0][29] = "Stage_2"; + data[0][30] = "Num_convention_2"; + data[0][31] = "Periode_2"; + + + String[][] data1 = new String[nTable.getChildren().size()][31]; + + int indexStudent = 0; + for(noeud nStudent : nTable.getChildren()) { + data1[indexStudent][0] = nStudent.getAttributes(commandes.nomColonneFormation);; + data1[indexStudent][1] = nStudent.getAttributes(commandes.nomColonneCodeEtudiant); + data1[indexStudent][2] = nStudent.getAttributes(commandes.nomColonnePrenomEtudiant); + data1[indexStudent][3] = nStudent.getAttributes(commandes.nomColonneNomEtudiant); + data1[indexStudent][4] = nStudent.getAttributes(commandes.nomColonneProfilEtudiant); + data1[indexStudent][5] = nStudent.getAttributes(commandes.nomColonnePortableEtudiant); + data1[indexStudent][6] = nStudent.getAttributes(commandes.nomColonneMailPersoEtudiant); + data1[indexStudent][7] = nStudent.getAttributes(commandes.nomColonneMailUnivEtudiant); + data1[indexStudent][8] = nStudent.getAttributes("Groupe_Principal"); + data1[indexStudent][9] = nStudent.getAttributes("Groupe_TD"); + data1[indexStudent][10] = nStudent.getAttributes("Groupe_LV1"); + data1[indexStudent][11] = nStudent.getAttributes("Groupe_LV2"); + data1[indexStudent][12] = nStudent.getAttributes("Groupe_Informatique"); + data1[indexStudent][13] = nStudent.getAttributes("Groupe_Projet"); + data1[indexStudent][14] = nStudent.getAttributes("Groupe_Doc"); + data1[indexStudent][15] = nStudent.getAttributes("Groupe_TP"); + data1[indexStudent][16] = nStudent.getAttributes("LV1"); + data1[indexStudent][17] = nStudent.getAttributes("LV2"); + data1[indexStudent][18] = nStudent.getAttributes("Regime"); + data1[indexStudent][19] = nStudent.getAttributes("Atelier-rentree_horaire"); + data1[indexStudent][20] = nStudent.getAttributes("Atelier_pre-rentree_enseignant"); + data1[indexStudent][21] = nStudent.getAttributes("Atelier_pre-rentree_salle"); + data1[indexStudent][22] = nStudent.getAttributes("UE_Libre"); + data1[indexStudent][23] = nStudent.getAttributes("Covoiturage"); + data1[indexStudent][24] = nStudent.getAttributes("Etudiant_Covoiturage"); + data1[indexStudent][25] = nStudent.getAttributes("Stage_1"); + data1[indexStudent][26] = nStudent.getAttributes("Num_convention_1"); + data1[indexStudent][27] = nStudent.getAttributes("Periode_1"); + data1[indexStudent][28] = nStudent.getAttributes("Stage_2"); + data1[indexStudent][29] = nStudent.getAttributes("Num_convention_2"); + data1[indexStudent][30] = nStudent.getAttributes("Periode_2"); + + data[0][32] = data1; + indexStudent++; + } - // Trier le data1 par ordre aphabétique de la troisième colonne (les noms) - Arrays.sort(data1, Comparator.comparing(row -> row[3])); - - if(data.length>0) { - - - FileSaveXLSX s = new FileSaveXLSX(); - s.save(data, formation, type); - - - }else { - JPanel panel = new JPanel(); - JLabel message = new JLabel("La table de données est vide.
"); - panel.add(message); - JOptionPane.showMessageDialog(null, panel, "Erreur", JOptionPane.ERROR_MESSAGE); - } - - - + // Trier le data1 par ordre aphabétique de la troisième colonne (les noms) + Arrays.sort(data1, Comparator.comparing(row -> row[3])); + + if(data.length>0) { + + + FileSaveXLSX s = new FileSaveXLSX(); + s.save(data, formation, type); + + + }else { + JPanel panel = new JPanel(); + JLabel message = new JLabel("La table de données est vide.
"); + panel.add(message); + JOptionPane.showMessageDialog(null, panel, "Erreur", JOptionPane.ERROR_MESSAGE); + } + } - - - } diff --git a/src/gestion_version/VersionChecker.java b/src/gestion_version/VersionChecker.java index 5a47c44..e5f4606 100644 --- a/src/gestion_version/VersionChecker.java +++ b/src/gestion_version/VersionChecker.java @@ -18,6 +18,13 @@ import outils.commandes; import outils.lectureXML; import outils.noeud; +/** + * Permet la vérification d'une nouvelle version disponible sur la forge de Chapril. + * Permet la mise à jour de la base pour prendre en cmopte les modifications de l'application. + * Permet de vérifier la compatibilité de la version de la base avec celle de l'application. + * @author pabr6 + * + */ public class VersionChecker { /** @@ -130,96 +137,25 @@ public class VersionChecker { String versionDeLaBase = nBase.getAttributes("version"); // les version 1.0.1 et 1.0.2 n'avaient pas l'attribut version dans le noeud de la base. - if(versionDeLaBase==null) { - versionDeLaBase = "1.0.2"; - } + if(versionDeLaBase==null) versionDeLaBase = "1.0.2"; - - String[] VersionApplicationSplit = commandes.version.split("\\."); - String[] VersionBaseSplit = versionDeLaBase.split("\\."); - - boolean newV = false; - - if( Integer.valueOf(VersionBaseSplit[0]) < Integer.valueOf(VersionApplicationSplit[0]) ) { - newV=true; - }else if ((Integer.valueOf(VersionBaseSplit[0])==Integer.valueOf(VersionApplicationSplit[0])) - && (Integer.valueOf(VersionBaseSplit[1]) < Integer.valueOf(VersionApplicationSplit[1]))) { - newV=true; - }else if ((Integer.valueOf(VersionBaseSplit[0])==Integer.valueOf(VersionApplicationSplit[0])) - && (Integer.valueOf(VersionBaseSplit[1]) == Integer.valueOf(VersionApplicationSplit[1])) - && (Integer.valueOf(VersionBaseSplit[2])