head = getMapNamesColumnsIndexColumns();
for (int i = 0; i < table.getColumnCount(); i++) {
rowData[i] = table.getValueAt(selectedRow, i);
}
- // Concaténation des valeurs de la ligne dans une chaîne de caractères
-// StringBuilder sb = new StringBuilder();
-// for (Object value : rowData) {
-// sb.append(value).append(", ");
-// }
-// sb.delete(sb.length() - 2, sb.length()); // Suppression de la virgule finale
-// String rowDataString = sb.toString();
-
- // Mise à jour de la JLabel avec les données de la ligne sélectionnée
-// lblInformationStudent.setText("Ligne : " + selectedRow + "
" + table.getValueAt(selectedRow, 16) + " " + table.getValueAt(selectedRow, 15)
-// + " - - Groupe TD : " + table.getValueAt(selectedRow, 10)
-// + " - - Groupe Langue : "+ table.getValueAt(selectedRow, 7)
-// + " - - Groupe Informatique : " + table.getValueAt(selectedRow, 6) +"
");
+ int indexCode = head.get("Individu_-_Code_Etudiant");
+ int indexNom = head.get("Individu_-_Nom");
+ int indexPrenom = head.get("Individu_-_Prenom");
+
+ if(rowData[indexPrenom]!=null && rowData[indexNom]!=null && rowData[indexCode]!=null) {
+ lblInformationStudent.setText(rowData[indexPrenom].toString() + " " + rowData[indexNom].toString() + " - " + rowData[indexCode].toString() );
+ }else {
+ lblInformationStudent.setText("");
+ }
}
+
}
+
+
}
});
-
+ // Ajout d'un écouteur de modification de cellule
+ table.getModel().addTableModelListener(new TableModelListener() {
+ @Override
+ public void tableChanged(TableModelEvent e) {
+ if (e.getType() == TableModelEvent.UPDATE) {
+ int row = e.getFirstRow();
+ int column = e.getColumn();
+ Object newValue = table.getValueAt(row, column);
+ System.out.println("Valeur avant modification : " + oldValue);
+ System.out.println("Valeur après modification : " + newValue);
+ }
+ }
+ });
majTableFormation();
majTableGroupes();
@@ -817,6 +842,8 @@ public class gestionnaire extends JFrame {
*/
public void majTableGroupes() {
+ lblInformationStudent.setText("");
+
String pasChoisi = " - ";
String GroupeTD = (String) cGroupeTD.getSelectedItem();
String LV1 = (String) cLV1.getSelectedItem();
@@ -1070,7 +1097,20 @@ public class gestionnaire extends JFrame {
for (int columnIndex = 0; columnIndex < table.getColumnCount(); columnIndex++) {
// Obtention de la colonne à l'index donné
table.getColumnModel().getColumn(columnIndex).setPreferredWidth(getMaxColumnWidth(table, columnIndex));
- }
+ }
+
+// for (int row = 0; row < table.getRowCount(); row++) {
+// int rowHeight = table.getRowHeight(); // Hauteur par défaut
+// for (int columnIndex = 0; columnIndex < table.getColumnCount(); columnIndex++) {
+// TableCellRenderer cellRenderer = table.getCellRenderer(row, columnIndex);
+// Component comp = table.prepareRenderer(cellRenderer, row, columnIndex);
+// int cellHeight = comp.getPreferredSize().height;
+// rowHeight = Math.max(rowHeight, cellHeight);
+// table.getColumnModel().getColumn(columnIndex).setPreferredWidth(getMaxColumnWidth(table, columnIndex));
+// }
+// table.setRowHeight(row, rowHeight);
+// }
+
// Ajouter un écouteur de modification de cellule à la table
table.getModel().addTableModelListener(e -> {
@@ -1078,6 +1118,14 @@ public class gestionnaire extends JFrame {
int column = e.getColumn();
if (row != -1 && column != -1) {
String key = getColumnsName()[column];
+
+ if(key.equals("IAE_-_Etape_lib.") || key.equals("Individu_-_Code_Etudiant")
+ || key.equals("Individu_-_Email")) {
+ JOptionPane.showMessageDialog(null, "Impossible de modifier ce contenu.
"
+ + "Actualisez la table pour ne plus voir votre saisie.", "Erreur", JOptionPane.ERROR_MESSAGE);
+ return;
+ }
+
String value = (String) table.getValueAt(row, column);
// Obtenir l'indice de la colonne "Individu_-_Code_Etudiant"
@@ -1099,7 +1147,7 @@ public class gestionnaire extends JFrame {
}
}else {
JOptionPane.showMessageDialog(null, "Le contenu ne doit pas être composé d'espace.", "Erreur", JOptionPane.ERROR_MESSAGE);
- table.setValueAt("", row, column);
+ table.setValueAt(oldValue, row, column);
}
majTableFormation();
@@ -1168,4 +1216,21 @@ public class gestionnaire extends JFrame {
}
return columnNames;
}
+
+ private Map getMapNamesColumnsIndexColumns(){
+ // Obtenir le modèle de la table
+ TableModel model = table.getModel();
+
+ // Obtenir le nombre de colonnes dans le modèle
+ int columnCount = model.getColumnCount();
+
+ // Créer un tableau pour stocker les en-têtes de colonne
+ Map MapColumnNames = new HashMap();
+
+ // Récupérer les en-têtes de colonne à partir du modèle
+ for (int i = 0; i < columnCount; i++) {
+ MapColumnNames.put(model.getColumnName(i), i);
+ }
+ return MapColumnNames;
+ }
}
diff --git a/src/baseUFRHG/importAllBaseToExcel.java b/src/baseUFRHG/importAllBaseToExcel.java
index 6347677..cbb8eb0 100644
--- a/src/baseUFRHG/importAllBaseToExcel.java
+++ b/src/baseUFRHG/importAllBaseToExcel.java
@@ -79,28 +79,34 @@ public class importAllBaseToExcel {
if (cellType == CellType.STRING) {
String cellValue = cell.getStringCellValue();
String value = nStudent.getAttributes(sheet.getRow(0).getCell(indexCol).getStringCellValue());
- boolean isOnlySpaces = value.matches("\\s+");
- if(!isOnlySpaces)if(!cellValue.equals(value)) {
- nStudent.setAttribut(sheet.getRow(0).getCell(indexCol).getStringCellValue(), cellValue);
- compteur++;
+ if(value!=null) {
+ boolean isOnlySpaces = value.matches("\\s+");
+ if(!isOnlySpaces)if(!cellValue.equals(value)) {
+ nStudent.setAttribut(sheet.getRow(0).getCell(indexCol).getStringCellValue(), cellValue);
+ compteur++;
+ }
}
System.out.print(cellValue + " ");
} else if (cellType == CellType.NUMERIC) {
String cellValue = String.valueOf( (int) cell.getNumericCellValue());
String value = nStudent.getAttributes(sheet.getRow(0).getCell(indexCol).getStringCellValue());
- boolean isOnlySpaces = value.matches("\\s+");
- if(!isOnlySpaces)if(!cellValue.equals(value)) {
- nStudent.setAttribut(sheet.getRow(0).getCell(indexCol).getStringCellValue(), cellValue);
- compteur++;
+ if(value!=null) {
+ boolean isOnlySpaces = value.matches("\\s+");
+ if(!isOnlySpaces)if(!cellValue.equals(value)) {
+ nStudent.setAttribut(sheet.getRow(0).getCell(indexCol).getStringCellValue(), cellValue);
+ compteur++;
+ }
}
System.out.print(cellValue + " ");
} else if (cellType == CellType.BOOLEAN) {
String cellValue = String.valueOf(cell.getBooleanCellValue());
String value = nStudent.getAttributes(sheet.getRow(0).getCell(indexCol).getStringCellValue());
boolean isOnlySpaces = value.matches("\\s+");
- if(!isOnlySpaces)if(!cellValue.equals(value)) {
- nStudent.setAttribut(sheet.getRow(0).getCell(indexCol).getStringCellValue(), cellValue);
- compteur++;
+ if(value!=null) {
+ if(!isOnlySpaces)if(!cellValue.equals(value)) {
+ nStudent.setAttribut(sheet.getRow(0).getCell(indexCol).getStringCellValue(), cellValue);
+ compteur++;
+ }
}
System.out.print(cellValue + " ");
} else {
diff --git a/src/baseUFRHG/sauvegardeXMLBase.java b/src/baseUFRHG/sauvegardeXMLBase.java
index d8ac4f5..53c0a39 100644
--- a/src/baseUFRHG/sauvegardeXMLBase.java
+++ b/src/baseUFRHG/sauvegardeXMLBase.java
@@ -32,6 +32,21 @@ public class sauvegardeXMLBase {
}
+public static void saveSauvegarde(noeud nBase) {
+
+ // Sauvegarde de la base
+ String directoryName = Paths.get("").toAbsolutePath().toString()+ "/base_sauvegarde.xml";
+ try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
+ new FileOutputStream(directoryName), StandardCharsets.UTF_8))) {
+ writer.write(nBase.toWrite());
+ } catch (IOException e) {
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null, e.toString(), "Erreur dans la méthode saveSauvegarde.", JOptionPane.ERROR_MESSAGE);
+ }
+
+ }
+
+
public static void saveModif(noeud nBase, Integer nbreModif) {
// Sauvegarde de la base
String directoryName = Paths.get("").toAbsolutePath().toString()+ "/base.xml";
diff --git a/src/resources/Exemple de mise à jour.png b/src/resources/Exemple de mise à jour.png
new file mode 100644
index 0000000..1032646
Binary files /dev/null and b/src/resources/Exemple de mise à jour.png differ