diff --git a/.classpath b/.classpath
index 25591d2..a8a136f 100644
--- a/.classpath
+++ b/.classpath
@@ -1,7 +1,7 @@
-
+
@@ -19,5 +19,6 @@
+
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index d20db39..cb538c0 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -21,9 +21,9 @@ org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -126,6 +126,6 @@ org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.source=1.7
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/GestionDesInscriptions_1.jar b/GestionDesInscriptions_1.jar
index 0dc5bfd..17edc42 100644
Binary files a/GestionDesInscriptions_1.jar and b/GestionDesInscriptions_1.jar differ
diff --git a/GestionDesInscriptions_2.jar b/GestionDesInscriptions_2.jar
index 4f91e43..7f16d31 100644
Binary files a/GestionDesInscriptions_2.jar and b/GestionDesInscriptions_2.jar differ
diff --git a/GestionDesInscriptions_3.jar b/GestionDesInscriptions_3.jar
index 7505b9f..225e0d2 100644
Binary files a/GestionDesInscriptions_3.jar and b/GestionDesInscriptions_3.jar differ
diff --git a/base.xlsx b/base.xlsx
index 137cdc7..886bcb8 100644
Binary files a/base.xlsx and b/base.xlsx differ
diff --git a/base.xml b/base.xml
index 13a6799..be7073b 100644
--- a/base.xml
+++ b/base.xml
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/baseUFRHG/base.java b/src/baseUFRHG/base.java
index ec23c3c..896ad12 100644
--- a/src/baseUFRHG/base.java
+++ b/src/baseUFRHG/base.java
@@ -8,10 +8,13 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
+import javax.swing.JPanel;
public class base {
@@ -29,32 +32,70 @@ public class base {
String defaultValue = "2022-2023";
String userInput = JOptionPane.showInputDialog("Quelle est l'année universitaire ? ",defaultValue);
-
- userInput = "Years_" + supprimeCaracatresSpeciaux.TousLesCaracatresSpeciaux(userInput);
- if(!userInput.isEmpty()) {
- nBase.addChild(new noeud(userInput));
- nBase.setAttribut("defaut_Year", userInput);
-
- String directoryName = Paths.get("").toAbsolutePath().toString()+ "/base.xml";
- Path outputFilePath = Paths.get(directoryName);
- try {
- BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8);
- fichier.write(nBase.toWrite());
- fichier.close();
-
- JFrame frame = new JFrame();
- JLabel texte = new JLabel("
La base de données a été créée.
");
- JOptionPane.showMessageDialog(frame, texte);
-
- } catch (IOException e) {
- e.printStackTrace();
- }
- return nBase;
-
- }
+
+
+
+
+
+
+ String regex = "(\\d{4})-(\\d{4})";
+
+ Pattern pattern = Pattern.compile(regex);
+ Matcher matcher = pattern.matcher(userInput);
+
+ if (matcher.matches()) {
+ int firstNumber = Integer.parseInt(matcher.group(1));
+ int secondNumber = Integer.parseInt(matcher.group(2));
+
+ if (firstNumber < secondNumber) {
+
+ if(!userInput.isEmpty()) {
+ userInput = "Years_" + supprimeCaracatresSpeciaux.TousLesCaracatresSpeciaux(userInput);
+ nBase.addChild(new noeud(userInput));
+ nBase.setAttribut("defaut_Year", userInput);
+
+ String directoryName = Paths.get("").toAbsolutePath().toString()+ "/base.xml";
+ Path outputFilePath = Paths.get(directoryName);
+ try {
+ BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8);
+ fichier.write(nBase.toWrite());
+ fichier.close();
+
+ JFrame frame = new JFrame();
+ JLabel texte = new JLabel("La base de données a été créée.
");
+ JOptionPane.showMessageDialog(frame, texte);
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return nBase;
+
+ }
+
+
+ } else {
+ System.out.println("Le format est valide, mais le premier nombre n'est pas inférieur au second nombre.");
+ JPanel panel = new JPanel();
+ JLabel message = new JLabel("Le format est valide, la première année n'est pas inférieure à la seconde année.
"
+ + "Exemple de format : 2023-2024
");
+ panel.add(message);
+ JOptionPane.showMessageDialog(null, panel, "Erreur", JOptionPane.ERROR_MESSAGE);
+
+ }
+ } else {
+ System.out.println("Le format est invalide.");
+ JPanel panel = new JPanel();
+ JLabel message = new JLabel("Le format est invalide.
"
+ + "Exemple de format : 2023-2024
");
+ panel.add(message);
+ JOptionPane.showMessageDialog(null, message, "Erreur", JOptionPane.ERROR_MESSAGE);
+
+ }
+
+
+
- JOptionPane.showMessageDialog(null, "Erreur détectée !", "Erreur", JOptionPane.ERROR_MESSAGE);
return null;
diff --git a/src/baseUFRHG/commandes.java b/src/baseUFRHG/commandes.java
new file mode 100644
index 0000000..a48b67c
--- /dev/null
+++ b/src/baseUFRHG/commandes.java
@@ -0,0 +1,8 @@
+package baseUFRHG;
+
+public class commandes {
+
+ public static noeud nBase = null;
+
+
+}
diff --git a/src/baseUFRHG/demarre.java b/src/baseUFRHG/demarre.java
index bb6be39..98c1816 100644
--- a/src/baseUFRHG/demarre.java
+++ b/src/baseUFRHG/demarre.java
@@ -9,6 +9,8 @@ import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
import javax.swing.SwingConstants;
public class demarre extends JFrame {
@@ -60,9 +62,11 @@ public class demarre extends JFrame {
btnCreate.setIcon(new ImageIcon(demarre.class.getResource("/resources/exportbasetoexcel.png")));
btnCreate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
- noeud nBase = recupeBases.recupeLaBase();
+ if(commandes.nBase==null) {
+ commandes.nBase = recupeBases.recupeLaBase();
+ }
//Exporte la base dans un classeur Excel.
- exportBaseToExcel.export(nBase);
+ exportBaseToExcel.export();
}
});
btnCreate.setHorizontalAlignment(SwingConstants.LEFT);
@@ -114,7 +118,10 @@ public class demarre extends JFrame {
btnTutoriels.setIcon(new ImageIcon(demarre.class.getResource("/resources/gestionnaire.png")));
btnTutoriels.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
- new gestionnaire();
+ if(commandes.nBase==null) {
+ commandes.nBase = recupeBases.recupeLaBase();
+ }
+ afficheGestionnaire();
}
});
// btnTutoriels.setIcon(new ImageIcon(demarre.class.getResource("/resources/tutoriel.png")));
@@ -163,4 +170,36 @@ public class demarre extends JFrame {
btnNewButton_1.setBounds(10, 378, 356, 30);
frmEvalwriter.getContentPane().add(btnNewButton_1);
}
+
+
+ private void afficheGestionnaire() {
+ if(commandes.nBase.getNumberChildren()>0) {
+ if(commandes.nBase.getAttributes("defaut_Year")!=null) {
+ String defautYear = commandes.nBase.getAttributes("defaut_Year");
+ if(commandes.nBase.getChild(defautYear)!=null) {
+ if(commandes.nBase.getChild(defautYear).getNumberChildren()>0) {
+ new gestionnaire();
+ }else {
+ JPanel panel = new JPanel();
+ JLabel message = new JLabel("Dans la base de données, il n'y a pas de donnée"
+ + "
pour l'année universitaire " + defautYear +"
");
+ panel.add(message);
+ JOptionPane.showMessageDialog(null, panel, "Erreur", JOptionPane.ERROR_MESSAGE);
+ }
+ }
+ }else {
+ JPanel panel = new JPanel();
+ JLabel message = new JLabel("Dans la base de données, il n'y a pas d'année universitaire par défaut.
");
+ panel.add(message);
+ JOptionPane.showMessageDialog(null, panel, "Erreur", JOptionPane.ERROR_MESSAGE);
+ }
+ }else {
+ JPanel panel = new JPanel();
+ JLabel message = new JLabel("Dans la base de données est vide.
");
+ panel.add(message);
+ JOptionPane.showMessageDialog(null, panel, "Erreur", JOptionPane.ERROR_MESSAGE);
+ }
+ }
+
+
}
diff --git a/src/baseUFRHG/exportBaseToExcel.java b/src/baseUFRHG/exportBaseToExcel.java
index 2394602..2618bfe 100644
--- a/src/baseUFRHG/exportBaseToExcel.java
+++ b/src/baseUFRHG/exportBaseToExcel.java
@@ -1,18 +1,22 @@
package baseUFRHG;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
public class exportBaseToExcel {
- public static void export(noeud nBase) {
+ public static void export() {
// Données
- Object[][] data = new Object[nBase.getChild(nBase.getAttributes("defaut_Year")).getNumberChildren()][29];
+ Object[][] data = new Object[commandes.nBase.getChild(commandes.nBase.getAttributes("defaut_Year")).getNumberChildren()][29];
int indexFormation = 0 ;
- for(noeud formation : nBase.getChild(nBase.getAttributes("defaut_Year")).getChildren()) {
+ for(noeud formation : commandes.nBase.getChild(commandes.nBase.getAttributes("defaut_Year")).getChildren()) {
@@ -85,7 +89,15 @@ public class exportBaseToExcel {
indexFormation++;
}
- new CreateCalcWorkbook(data);
+ if(data.length>0) {
+ new CreateCalcWorkbook(data);
+ }else {
+ JPanel panel = new JPanel();
+ JLabel message = new JLabel("La base de données est nulle.
");
+ panel.add(message);
+ JOptionPane.showMessageDialog(null, panel, "Erreur", JOptionPane.ERROR_MESSAGE);
+ }
+
diff --git a/src/baseUFRHG/gestionnaire.java b/src/baseUFRHG/gestionnaire.java
index 74913b8..d6f23a2 100644
--- a/src/baseUFRHG/gestionnaire.java
+++ b/src/baseUFRHG/gestionnaire.java
@@ -13,6 +13,9 @@ import java.util.Map;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
@@ -29,7 +32,6 @@ public class gestionnaire extends JFrame {
*
*/
private static final long serialVersionUID = 1L;
- noeud nBase = null;
private JPanel contentPane;
private JFrame frame;
@@ -40,23 +42,28 @@ public class gestionnaire extends JFrame {
private JTable table;
private JScrollPane scrollPane_1;
private JLabel lblNewLabel;
+ private String defautYear = null;
+ private JPanel panelNorth;
+ private JMenu mnNewMenu;
+
+
/**
* Create the frame.
*/
public gestionnaire() {
+ setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
getContentPane().setLayout(null);
-
-
-
+ if(commandes.nBase==null) {
+ commandes.nBase = recupeBases.recupeLaBase();
+ }
initialize();
}
-
private void initialize() {
frame = new JFrame();
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setBounds(100, 100, 1200, 651);
frame.setTitle("Gestionnaire Base des inscriptions des étudiants");
frame.setLocationRelativeTo(null); // Centre la fenêtre à l'écran
@@ -66,9 +73,7 @@ public class gestionnaire extends JFrame {
frame.setContentPane(contentPane);
-
-
- nBase = recupeBases.recupeLaBase();
+
cYears = new JComboBox();
cYears.setLocation(10, 25);
cYears.setSize(168, 32);
@@ -84,25 +89,39 @@ public class gestionnaire extends JFrame {
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
List lGroupeTD = new ArrayList();
- for(noeud nChild : nBase.getChildren()) {
+ lGroupeTD.add(" - ");
+ for(noeud nChild : commandes.nBase.getChildren()) {
cYears.addItem(nChild.getName());
for(noeud nFormation : nChild.getChildren()) {
cFormations.addItem(nFormation.getName());
- String GroupeTD = nFormation.getAttributes().get("Groupe_TD");
- if(GroupeTD!=null) if(!GroupeTD.isEmpty()) {
- if(!lGroupeTD.contains(GroupeTD))lGroupeTD.add(GroupeTD);
- }
}
}
+ defautYear = commandes.nBase.getAttributes("defaut_Year");
+ cYears.setSelectedItem(defautYear);
+ cFormations.setSelectedIndex(0);
+
+
+
cYears.setVisible(true);
cFormations.setVisible(true);
+ cGroupeTD.setVisible(true);
+
// Ajout d'un ActionListener à la JComboBox
cFormations.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- majTable();
+ majTableFormation();
+ }
+ });
+
+
+ // Ajout d'un ActionListener à la JComboBox
+ cGroupeTD.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ majTableGroupes();
}
});
@@ -113,54 +132,84 @@ public class gestionnaire extends JFrame {
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
contentPane.setLayout(new BorderLayout(0, 0));
-
-
scrollPane_1 = new JScrollPane();
scrollPane_1.setViewportBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
- contentPane.add(scrollPane_1);
+ contentPane.add(scrollPane_1, BorderLayout.CENTER);
scrollPane_1.setViewportView(table);
- JPanel panel = new JPanel();
- contentPane.add(panel, BorderLayout.NORTH);
- panel.setLayout(null);
- panel.setPreferredSize(new Dimension(400, 80));
- panel.setBackground(Color.gray);
- panel.add(cYears);
- panel.add(cFormations);
+ JPanel panelFiltre = new JPanel();
+// contentPane.add(panelFiltre, BorderLayout.CENTER);
+ panelFiltre.setLayout(null);
+ panelFiltre.setPreferredSize(new Dimension(400, 80));
+ panelFiltre.setBackground(Color.gray);
+ panelFiltre.add(cYears);
+ panelFiltre.add(cFormations);
JLabel lblYears = new JLabel("Année");
lblYears.setFont(new Font("Tahoma", Font.BOLD, 12));
lblYears.setHorizontalAlignment(SwingConstants.LEFT);
lblYears.setBounds(10, 11, 72, 14);
- panel.add(lblYears);
+ panelFiltre.add(lblYears);
JLabel lblFormation = new JLabel("Formation");
lblFormation.setFont(new Font("Tahoma", Font.BOLD, 12));
lblFormation.setHorizontalAlignment(SwingConstants.LEFT);
lblFormation.setBounds(188, 11, 101, 14);
- panel.add(lblFormation);
+ panelFiltre.add(lblFormation);
lblNewLabel = new JLabel("Groupe TD");
lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 12));
lblNewLabel.setBounds(489, 11, 121, 14);
- panel.add(lblNewLabel);
+ panelFiltre.add(lblNewLabel);
- panel.add(cGroupeTD);
+ panelFiltre.add(cGroupeTD);
- majTable();
+ panelNorth = new JPanel();
+ contentPane.add(panelNorth, BorderLayout.NORTH);
+ panelNorth.setLayout(new BorderLayout(0, 0));
+
+
+
+
+ JMenuBar menuBar = new JMenuBar();
+
+ JMenu fileMenu = new JMenu("Fichier");
+ JMenuItem openItem = new JMenuItem("Ouvrir");
+ JMenuItem saveItem = new JMenuItem("Enregistrer");
+ JMenuItem exitItem = new JMenuItem("Quitter");
+
+ fileMenu.add(openItem);
+ fileMenu.add(saveItem);
+ fileMenu.addSeparator(); // Ajouter une séparation entre les éléments du menu
+ fileMenu.add(exitItem);
+
+ menuBar.add(fileMenu);
+
+
+ panelNorth.add(menuBar, BorderLayout.NORTH);
+
+
+
+
+
+ panelNorth.add(panelFiltre);
+
+
+
+ majTableFormation();
frame.setVisible(true);
}
- private void majTable() {
- noeud nYears = nBase.getChild(cYears.getSelectedItem().toString());
+ private void majTableFormation() {
+ noeud nYears = commandes.nBase.getChild(cYears.getSelectedItem().toString());
if(nYears!=null) {
noeud nFormation = nYears.getChild(cFormations.getSelectedItem().toString());
-
+
String[] head = new String[31] ;
String[][] data = new String[nFormation.getChildren().size()-1][31] ;
@@ -172,12 +221,8 @@ public class gestionnaire extends JFrame {
String key = entry.getKey();
head[indexCol] = key;
}else {
- String key = entry.getKey();
String value = entry.getValue();
data[indexRow-1][indexCol] = value;
- if(key.equals("Groupe_TD")) {
-
- }
}
indexCol++;
}
@@ -185,11 +230,37 @@ public class gestionnaire extends JFrame {
}
+ cGroupeTD.removeAllItems();
+
+ List lGroupeTD = new ArrayList();
+ lGroupeTD.add(" - ");
+ if(nFormation!=null) {
+ for(noeud nStudent : nFormation.getChildren()) {
+ if(nStudent.getAttributes("Groupe_TD")!=null) {
+ String GroupeTD = nStudent.getAttributes("Groupe_TD");
+ if(GroupeTD!=null) {
+ if(supprimeCaracatresSpeciaux.TousLesCaracatresSpeciaux(GroupeTD).length()>0) {
+ if(!lGroupeTD.contains(GroupeTD)) {
+ lGroupeTD.add(GroupeTD);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ for (String option : lGroupeTD) {
+ cGroupeTD.addItem(option);
+ }
+
+
+
+
table.setModel(new DefaultTableModel(data, head));
for (int columnIndex = 0; columnIndex < table.getColumnCount(); columnIndex++) {
// Obtention de la colonne à l'index donné
- table.getColumnModel().getColumn(columnIndex).setWidth(getMaxColumnWidth(table, columnIndex));
+ table.getColumnModel().getColumn(columnIndex).setPreferredWidth(getMaxColumnWidth(table, columnIndex));
}
table.revalidate();
@@ -201,6 +272,61 @@ public class gestionnaire extends JFrame {
}
+
+
+ private void majTableGroupes() {
+ String GroupeTD = (String) cGroupeTD.getSelectedItem();
+ if(GroupeTD!=null) {
+ noeud nYears = commandes.nBase.getChild(cYears.getSelectedItem().toString());
+ if(nYears!=null) {
+ noeud nFormation = nYears.getChild(cFormations.getSelectedItem().toString());
+
+
+ String[] head = new String[31] ;
+ String[][] data = new String[nFormation.getChildren().size()-1][31] ;
+
+
+ int indexRow = 0;
+ for(noeud nStudent : nFormation.getChildren()) {
+ int indexCol = 0;
+ boolean trouve = false;
+ for (Map.Entry entry : nStudent.getAttributes().entrySet()) {
+ if(indexRow==0) {
+ String key = entry.getKey();
+ head[indexCol] = key;
+ indexCol++;
+ trouve=true;
+ }else {
+ String value = entry.getValue();
+ if(nStudent.getAttributes("Groupe_TD").equals(GroupeTD)) {
+ data[indexRow-1][indexCol] = value;
+ indexCol++;
+ trouve=true;
+ }
+ if(GroupeTD.equals(" - ")) {
+ data[indexRow-1][indexCol] = value;
+ indexCol++;
+ trouve=true;
+ }
+ }
+ }
+ if(trouve)indexRow++;
+ }
+
+ table.setModel(new DefaultTableModel(data, head));
+
+ for (int columnIndex = 0; columnIndex < table.getColumnCount(); columnIndex++) {
+ // Obtention de la colonne à l'index donné
+ table.getColumnModel().getColumn(columnIndex).setPreferredWidth(getMaxColumnWidth(table, columnIndex));
+ }
+
+ table.revalidate();
+ table.repaint();
+
+ }
+ }
+ }
+
/**
* Détermine la largeur de la colonne max pour ajustement.
* @param table
@@ -208,7 +334,7 @@ public class gestionnaire extends JFrame {
* @return
*/
private static int getMaxColumnWidth(JTable table, int columnIndex) {
- int maxWidth = 40;
+ int maxWidth = 36;
DefaultTableCellRenderer cellRenderer = new DefaultTableCellRenderer();
@@ -223,6 +349,11 @@ public class gestionnaire extends JFrame {
}
- return maxWidth;
- }
+ return maxWidth+4;
+ }
+
+
+
+
+
}
diff --git a/src/baseUFRHG/importAllBaseToExcel.java b/src/baseUFRHG/importAllBaseToExcel.java
index 8429735..a2b087a 100644
--- a/src/baseUFRHG/importAllBaseToExcel.java
+++ b/src/baseUFRHG/importAllBaseToExcel.java
@@ -16,14 +16,17 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class importAllBaseToExcel {
public static void lecture(File file) {
+ if(commandes.nBase==null) {
+ commandes.nBase = recupeBases.recupeLaBase();
+ }
- noeud nBase = recupeBases.recupeLaBase();
-
+ int compteur = 0 ;
+
try (FileInputStream fileInputStream = new FileInputStream(file.getAbsolutePath());
Workbook workbook = new XSSFWorkbook(fileInputStream)) {
int numSheets = workbook.getNumberOfSheets();
- int compteur = 0 ;
+
for (int sheetIndex = 0; sheetIndex < numSheets; sheetIndex++) {
@@ -41,7 +44,7 @@ public class importAllBaseToExcel {
if(indexCol==0) { // Colonne formation
if(cell.getCellType() == CellType.STRING) {
- nBF = nBase.getChild(cell.getStringCellValue());
+ nBF = commandes.nBase.getChild(cell.getStringCellValue());
}
}
@@ -106,13 +109,11 @@ public class importAllBaseToExcel {
System.out.println(); // Nouvelle ligne entre les feuilles
}
-
- JOptionPane.showInternalMessageDialog(null, "Nombre de modification : " +String.valueOf(compteur));
-
+
} catch (IOException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.toString(), "Erreur dans la class importAllBaseToExcel", JOptionPane.ERROR_MESSAGE);
}
- sauvegardeXMLBase.save(nBase);
+ sauvegardeXMLBase.saveModif(commandes.nBase, compteur);
}
}
diff --git a/src/baseUFRHG/lecture.java b/src/baseUFRHG/lecture.java
index 82342ee..b94fb2e 100644
--- a/src/baseUFRHG/lecture.java
+++ b/src/baseUFRHG/lecture.java
@@ -2,6 +2,10 @@ package baseUFRHG;
import java.io.File;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
public class lecture {
@@ -13,23 +17,30 @@ public class lecture {
noeud nBase = recupeBases.recupeLaBase();
-
- // lecture et création d'un noeud à partir d'un fichier CSV
- try {
- File fileData = FileChooserCSV.retourneFileCSV();
- if(fileData!=null) {
- String filePath = fileData.getAbsolutePath();
- noeudCSV = lectureCSV.noeudCSV(filePath);
+ if(nBase!=null) {
+ // lecture et création d'un noeud à partir d'un fichier CSV
+ try {
+ File fileData = FileChooserCSV.retourneFileCSV();
+ if(fileData!=null) {
+ String filePath = fileData.getAbsolutePath();
+ noeudCSV = lectureCSV.noeudCSV(filePath);
+
+
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+
+ // ajoute les étudiants qui n'existent pas, dans la base.
+ nBase = majBase.addStudents(nBase,noeudCSV);
+ }else {
+ JPanel panel = new JPanel();
+ JLabel message = new JLabel("La base de données est nulle.
");
+ panel.add(message);
+ JOptionPane.showMessageDialog(null, panel, "Erreur", JOptionPane.ERROR_MESSAGE);
+ }
-
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
-
-
- // ajoute les étudiants qui n'existent pas, dans la base.
- nBase = majBase.addStudents(nBase,noeudCSV);
}
diff --git a/src/baseUFRHG/sauvegardeXMLBase.java b/src/baseUFRHG/sauvegardeXMLBase.java
index fa7c293..dce330b 100644
--- a/src/baseUFRHG/sauvegardeXMLBase.java
+++ b/src/baseUFRHG/sauvegardeXMLBase.java
@@ -18,10 +18,24 @@ public class sauvegardeXMLBase {
try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(directoryName), StandardCharsets.UTF_8))) {
writer.write(nBase.toWrite());
+ JOptionPane.showMessageDialog(null, "La base a été sauvegardée.", "Sauvegarde", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.toString(), "Erreur dans la méthode save", JOptionPane.ERROR_MESSAGE);
}
}
+
+ public static void saveModif(noeud nBase,Integer nbreModif) {
+ // Sauvegarde de la base
+ String directoryName = Paths.get("").toAbsolutePath().toString()+ "/base.xml";
+ try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
+ new FileOutputStream(directoryName), StandardCharsets.UTF_8))) {
+ writer.write(nBase.toWrite());
+ JOptionPane.showMessageDialog(null, "Les " + nbreModif +" modifications ont été enregistrées dans la base.", "Sauvegarde", JOptionPane.INFORMATION_MESSAGE);
+ } catch (IOException e) {
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null, e.toString(), "Erreur dans la méthode save", JOptionPane.ERROR_MESSAGE);
+ }
+ }
}