MAJ V1.0.1 (JRE1.8 with JDK 1.8.0_271)

This commit is contained in:
pablo rodriguez 2023-07-01 10:18:56 +02:00
parent 3ecddf0c76
commit f7a122679a
8 changed files with 528 additions and 127 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -7,6 +7,8 @@ import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Collections;
@ -17,6 +19,7 @@ import java.util.Map;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
@ -32,6 +35,8 @@ import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.border.BevelBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
@ -40,6 +45,7 @@ import baseUFRHG.sauvegardeXMLBase.saveType;
import baseUFRHG.actions.exportEmargement;
import baseUFRHG.actions.exportTable;
import baseUFRHG.actions.saveTable;
import javax.swing.JButton;
public class gestionnaire extends JFrame {
@ -58,13 +64,28 @@ public class gestionnaire extends JFrame {
private JComboBox<String> cLV2;
private JComboBox<String> cInformatique;
private JComboBox<String> cLangue;
private JComboBox<String> cDocumentation;
private JComboBox<String> cProfil;
private JComboBox<String> cGroupePrincipal;
private JComboBox<String> cGroupeProjet;
private JCheckBoxMenuItem chckToutesLesColonnes = new JCheckBoxMenuItem("Affiche toutes les colonnes");
private JCheckBoxMenuItem chckGroupeTD = new JCheckBoxMenuItem("Groupe TD");
private JCheckBoxMenuItem chckGroupeLangue = new JCheckBoxMenuItem("Groupe Langue");
private JCheckBoxMenuItem chckGroupeInformatique = new JCheckBoxMenuItem("Groupe Informatique");
private JCheckBoxMenuItem chckGroupeDocumentation = new JCheckBoxMenuItem("Groupe Documentation");
private JCheckBoxMenuItem chckLV1 = new JCheckBoxMenuItem("LV1 : Langue Vivante 1");
private JCheckBoxMenuItem chckLV2 = new JCheckBoxMenuItem("LV2 : Langue Vivante 2");
private JCheckBoxMenuItem chckGroupePrincipal= new JCheckBoxMenuItem("Groupe Principal");
private JCheckBoxMenuItem chckGroupeProjet= new JCheckBoxMenuItem("Groupe Projet");
JLabel lblInformation = new JLabel("Information :");
JLabel lblInformationStudent = new JLabel("");
private JTable table;
private String defautYear = null;
public noeud nTable = null;
List<String> prefereAffichage = new ArrayList<>();
@ -195,6 +216,101 @@ public class gestionnaire extends JFrame {
panelNorth.add(menuBar, BorderLayout.NORTH);
JMenu menuAffichage = new JMenu("Affichage");
menuAffichage.setFont(new Font("Segoe UI", Font.BOLD, 14));
menuBar.add(menuAffichage);
menuAffichage.add(chckToutesLesColonnes);
chckToutesLesColonnes.setSelected(true);
chckToutesLesColonnes.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if(chckToutesLesColonnes.isSelected()) {
chckGroupePrincipal.setSelected(true);
chckLV2.setSelected(true);
chckLV1.setSelected(true);
chckGroupeTD.setSelected(true);
chckGroupeLangue.setSelected(true);
chckGroupeInformatique.setSelected(true);
chckGroupeDocumentation.setSelected(true);
chckGroupeProjet.setSelected(true);
}
majTableFormation();
}
});
menuAffichage.addSeparator();
chckGroupePrincipal.setSelected(true);
menuAffichage.add(chckGroupePrincipal);
chckGroupePrincipal.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
majTableFormation();
}
});
chckGroupeTD.setSelected(true);
menuAffichage.add(chckGroupeTD);
chckGroupeTD.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
majTableFormation();
}
});
chckGroupeLangue.setSelected(true);
menuAffichage.add(chckGroupeLangue);
chckGroupeLangue.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
majTableFormation();
}
});
chckGroupeInformatique.setSelected(true);
menuAffichage.add(chckGroupeInformatique);
chckGroupeInformatique.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
majTableFormation();
}
});
chckGroupeDocumentation.setSelected(true);
menuAffichage.add(chckGroupeDocumentation);
chckGroupeDocumentation.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
majTableFormation();
}
});
chckGroupeProjet.setSelected(true);
menuAffichage.add(chckGroupeProjet);
chckGroupeProjet.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
majTableFormation();
}
});
chckLV1.setSelected(true);
menuAffichage.add(chckLV1);
chckLV1.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
majTableFormation();
}
});
chckLV2.setSelected(true);
menuAffichage.add(chckLV2);
chckLV2.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
majTableFormation();
}
});
JMenu menuExport = new JMenu("Export");
menuExport.setFont(new Font("Tahoma", Font.BOLD, 14));
JMenuItem exportItem = menuExport.add(new exportTable(this));
@ -208,12 +324,12 @@ public class gestionnaire extends JFrame {
panelNorth.add(panelFiltre);
cLV1= new JComboBox<String>();
cLV1.setBounds(677, 77, 168, 32);
cLV1.setBounds(854, 77, 168, 32);
panelFiltre.add(cLV1);
JLabel lblNewLabel_1 = new JLabel("LV1");
lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 12));
lblNewLabel_1.setBounds(677, 60, 84, 14);
lblNewLabel_1.setBounds(854, 60, 84, 14);
panelFiltre.add(lblNewLabel_1);
cInformatique = new JComboBox<String>();
@ -226,12 +342,12 @@ public class gestionnaire extends JFrame {
panelFiltre.add(lblGroupeInformatique);
cLV2 = new JComboBox<String>();
cLV2.setBounds(677, 25, 168, 32);
cLV2.setBounds(854, 25, 168, 32);
panelFiltre.add(cLV2);
JLabel lblNewLabel_3 = new JLabel("LV2");
lblNewLabel_3.setFont(new Font("Tahoma", Font.BOLD, 12));
lblNewLabel_3.setBounds(677, 11, 46, 14);
lblNewLabel_3.setBounds(854, 11, 46, 14);
panelFiltre.add(lblNewLabel_3);
cLangue= new JComboBox<String>();
@ -244,25 +360,73 @@ public class gestionnaire extends JFrame {
panelFiltre.add(lblGroupeLangue);
cProfil = new JComboBox<String>();
cProfil.setBounds(855, 25, 168, 32);
cProfil.setBounds(1032, 25, 168, 32);
panelFiltre.add(cProfil);
JLabel lblProfil = new JLabel("Profil étudiant");
lblProfil.setFont(new Font("Tahoma", Font.BOLD, 12));
lblProfil.setBounds(855, 11, 127, 14);
lblProfil.setBounds(1032, 11, 127, 14);
panelFiltre.add(lblProfil);
cDocumentation = new JComboBox<String>();
cDocumentation.setBounds(498, 77, 169, 32);
panelFiltre.add(cDocumentation);
JLabel lblGroupeDocumentation = new JLabel("Groupe Documentation");
lblGroupeDocumentation.setFont(new Font("Tahoma", Font.BOLD, 12));
lblGroupeDocumentation.setBounds(499, 60, 160, 14);
panelFiltre.add(lblGroupeDocumentation);
cGroupePrincipal = new JComboBox<String>();
cGroupePrincipal.setBounds(677, 25, 168, 32);
panelFiltre.add(cGroupePrincipal);
JLabel lblGroupePrincipal = new JLabel("Groupe Principal");
lblGroupePrincipal.setFont(new Font("Tahoma", Font.BOLD, 12));
lblGroupePrincipal.setBounds(677, 11, 160, 14);
panelFiltre.add(lblGroupePrincipal);
JButton btnNewButton = new JButton("Réïnitialise");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cDocumentation.setSelectedIndex(0);
cInformatique.setSelectedIndex(0);
cProfil.setSelectedIndex(0);
cGroupePrincipal.setSelectedIndex(0);
cGroupeProjet.setSelectedIndex(0);
cGroupeTD.setSelectedIndex(0);
cLV1.setSelectedIndex(0);
cLV2.setSelectedIndex(0);
cLangue.setSelectedIndex(0);
majTableGroupes();
}
});
btnNewButton.setFont(new Font("Tahoma", Font.BOLD, 11));
btnNewButton.setBounds(186, 25, 113, 32);
panelFiltre.add(btnNewButton);
cGroupeProjet = new JComboBox<String>();
cGroupeProjet.setBounds(677, 77, 167, 32);
panelFiltre.add(cGroupeProjet);
JLabel lblGroupeProjet = new JLabel("Groupe Projet");
lblGroupeProjet.setFont(new Font("Tahoma", Font.BOLD, 12));
lblGroupeProjet.setBounds(677, 61, 152, 14);
panelFiltre.add(lblGroupeProjet);
JPanel panelSouth = new JPanel();
panelSouth.setPreferredSize(new Dimension(400, 90));
panelSouth.setBackground(Color.gray);
contentPane.add(panelSouth, BorderLayout.SOUTH);
panelSouth.setLayout(new BoxLayout(panelSouth, BoxLayout.X_AXIS));
lblInformation.setAlignmentX(10.0f);
panelSouth.setLayout(new BoxLayout(panelSouth, BoxLayout.Y_AXIS));
lblInformation.setForeground(new Color(255, 255, 255));
lblInformation.setFont(new Font("Tahoma", Font.BOLD, 12));
panelSouth.add(lblInformation);
lblInformationStudent.setForeground(new Color(255, 255, 128));
lblInformationStudent.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblInformationStudent.setAlignmentY(1.0f);
panelSouth.add(lblInformationStudent);
// Ajout d'un ActionListener à la JComboBox
@ -316,6 +480,63 @@ public class gestionnaire extends JFrame {
}
});
cDocumentation.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
majTableGroupes();
}
});
cGroupePrincipal.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
majTableGroupes();
}
});
cGroupeProjet.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
majTableGroupes();
}
});
// Ajout d'un ListSelectionListener pour détecter la sélection de la ligne
ListSelectionModel selectionModel = table.getSelectionModel();
selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
selectionModel.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
int selectedRow = table.getSelectedRow();
if (selectedRow != -1) {
// Récupération des données de la ligne sélectionnée
Object[] rowData = new Object[table.getColumnCount()];
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("<html><p>Ligne : " + selectedRow + "<br> " + 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) +"</p></html>");
}
}
}
});
majTableFormation();
majTableGroupes();
frame.setVisible(true);
@ -328,19 +549,45 @@ public class gestionnaire extends JFrame {
if(nYears!=null) {
noeud nFormation = nYears.getChild(cFormations.getSelectedItem().toString());
String selectedGroupeTD = null;
String selectedLV1 = null;
String selectedLV2 = null;
String selectedLangue = null;
String selectedInformatique = null;
String selectedDocumentation = null;
String selectedProfil = null;
String selectedGroupePrincipal = null;
String selectedGroupeProjet= null;
if(cGroupeTD.getItemCount()>0) selectedGroupeTD = cGroupeTD.getSelectedItem().toString();
if(cLV1.getItemCount()>0) selectedLV1 = cLV1.getSelectedItem().toString();
if(cLV2.getItemCount()>0) selectedLV2 = cLV2.getSelectedItem().toString();
if(cLangue.getItemCount()>0) selectedLangue = cLangue.getSelectedItem().toString();
if(cInformatique.getItemCount()>0) selectedInformatique = cInformatique.getSelectedItem().toString();
if(cDocumentation.getItemCount()>0) selectedDocumentation = cDocumentation.getSelectedItem().toString();
if(cProfil.getItemCount()>0) selectedProfil = cProfil.getSelectedItem().toString();
if(cGroupePrincipal.getItemCount()>0) selectedGroupePrincipal = cGroupePrincipal.getSelectedItem().toString();
if(cGroupeProjet.getItemCount()>0) selectedGroupeProjet = cGroupeProjet.getSelectedItem().toString();
cGroupeTD.removeAllItems();
cLV1.removeAllItems();
cLV2.removeAllItems();
cLangue.removeAllItems();
cInformatique.removeAllItems();
cDocumentation.removeAllItems();
cProfil.removeAllItems();
cGroupePrincipal.removeAllItems();
cGroupeProjet.removeAllItems();
List<String> lGroupeTD = new ArrayList<String>();
List<String> lLV1 = new ArrayList<String>();
List<String> lLV2 = new ArrayList<String>();
List<String> lGroupeLangue = new ArrayList<String>();
List<String> lGroupeInformatique = new ArrayList<String>();
List<String> lGroupeDocumentation = new ArrayList<String>();
List<String> lProfil = new ArrayList<String>();
List<String> lGroupePrincipal = new ArrayList<String>();
List<String> lGroupeProjet = new ArrayList<String>();
String pasChoisi = " - ";
@ -354,6 +601,9 @@ public class gestionnaire extends JFrame {
String GroupeLangue = nStudent.getAttributes("Groupe_Langue");
String GroupeInformatique = nStudent.getAttributes("Groupe_Informatique");
String Profil = nStudent.getAttributes("Profil_etudiant_lib.");
String Documentation = nStudent.getAttributes("Groupe_Doc");
String GroupePrincipal = nStudent.getAttributes("Groupe_Principal");
String GroupeProjet = nStudent.getAttributes("Groupe_Projet");
boolean isOnlySpaces = GroupeTD.matches("\\s+");
if(!lGroupeTD.contains(GroupeTD) && !isOnlySpaces) {
@ -379,7 +629,18 @@ public class gestionnaire extends JFrame {
if(!lProfil.contains(Profil) && !isOnlySpaces) {
lProfil.add(Profil);
}
isOnlySpaces = Documentation.matches("\\s+");
if(!lGroupeDocumentation.contains(Documentation) && !isOnlySpaces) {
lGroupeDocumentation.add(Documentation);
}
isOnlySpaces = GroupePrincipal.matches("\\s+");
if(!lGroupePrincipal.contains(GroupePrincipal) && !isOnlySpaces) {
lGroupePrincipal.add(GroupePrincipal);
}
isOnlySpaces = GroupeProjet.matches("\\s+");
if(!lGroupeProjet.contains(GroupeProjet) && !isOnlySpaces) {
lGroupeProjet.add(GroupeProjet);
}
}
}
@ -388,36 +649,82 @@ public class gestionnaire extends JFrame {
for (String option : lGroupeTD) {
cGroupeTD.addItem(option);
}
if(selectedGroupeTD!=null)if(lGroupeTD.contains(selectedGroupeTD)) {
cGroupeTD.setSelectedItem(selectedGroupeTD);
}
Collections.sort(lLV1);
cLV1.addItem(pasChoisi);
for (String option : lLV1) {
cLV1.addItem(option);
}
if(selectedLV1!=null)if(lLV1.contains(selectedLV1)) {
cLV1.setSelectedItem(selectedLV1);
}
Collections.sort(lLV2);
cLV2.addItem(pasChoisi);
for (String option : lLV2) {
cLV2.addItem(option);
}
if(selectedLV2!=null)if(lLV2.contains(selectedLV2)) {
cLV2.setSelectedItem(selectedLV2);
}
Collections.sort(lGroupeLangue);
cLangue.addItem(pasChoisi);
for (String option : lGroupeLangue) {
cLangue.addItem(option);
}
if(selectedLangue!=null)if(lGroupeLangue.contains(selectedLangue)) {
cLangue.setSelectedItem(selectedLangue);
}
Collections.sort(lGroupeInformatique);
cInformatique.addItem(pasChoisi);
for (String option : lGroupeInformatique) {
cInformatique.addItem(option);
}
if(selectedInformatique!=null)if(lGroupeInformatique.contains(selectedInformatique)) {
cInformatique.setSelectedItem(selectedInformatique);
}
Collections.sort(lProfil);
cProfil.addItem(pasChoisi);
for (String option : lProfil) {
cProfil.addItem(option);
}
if(selectedProfil!=null)if(lProfil.contains(selectedProfil)) {
cProfil.setSelectedItem(selectedProfil);
}
Collections.sort(lGroupeDocumentation);
cDocumentation.addItem(pasChoisi);
for (String option : lGroupeDocumentation) {
cDocumentation.addItem(option);
}
if(selectedDocumentation!=null)if(lGroupeDocumentation.contains(selectedDocumentation)) {
cDocumentation.setSelectedItem(selectedDocumentation);
}
Collections.sort(lGroupePrincipal);
cGroupePrincipal.addItem(pasChoisi);
for (String option : lGroupePrincipal) {
cGroupePrincipal.addItem(option);
}
if(selectedGroupePrincipal!=null)if(lGroupePrincipal.contains(selectedGroupePrincipal)) {
cGroupePrincipal.setSelectedItem(selectedGroupePrincipal);
}
Collections.sort(lGroupeProjet);
cGroupeProjet.addItem(pasChoisi);
for (String option : lGroupeProjet) {
cGroupeProjet.addItem(option);
}
if(selectedGroupeProjet!=null)if(lGroupeProjet.contains(selectedGroupeProjet)) {
cGroupeProjet.setSelectedItem(selectedGroupeProjet);
}
}
@ -438,6 +745,9 @@ public class gestionnaire extends JFrame {
String GroupeLangue = (String) cLangue.getSelectedItem();
String GroupeInformatique = (String) cInformatique.getSelectedItem();
String Profil = (String) cProfil.getSelectedItem();
String GroupeDocumentation = (String) cDocumentation.getSelectedItem();
String GroupePrincipal = (String) cGroupePrincipal.getSelectedItem();
String GroupeProjet = (String) cGroupeProjet.getSelectedItem();
nTable = new noeud("Table");
nTable.setAttribut("defaut_Year", defautYear);
@ -484,119 +794,215 @@ public class gestionnaire extends JFrame {
Profil = pasChoisi;
}
if(cDocumentation.getSelectedItem()!=null) {
nTable.setAttribut("Groupe_Doc", cDocumentation.getSelectedItem().toString());
}else {
nTable.setAttribut("Groupe_Doc", pasChoisi);
GroupeDocumentation = pasChoisi;
}
if(cGroupePrincipal.getSelectedItem()!=null) {
nTable.setAttribut("Groupe_Principal", cGroupePrincipal.getSelectedItem().toString());
}else {
nTable.setAttribut("Groupe_Principal", pasChoisi);
GroupePrincipal = pasChoisi;
}
if(cGroupeProjet.getSelectedItem()!=null) {
nTable.setAttribut("Groupe_Projet", cGroupeProjet.getSelectedItem().toString());
}else {
nTable.setAttribut("Groupe_Projet", pasChoisi);
GroupeProjet = pasChoisi;
}
Map<String, Integer> dictionary = new HashMap<>();
if(GroupeTD!=null) {
noeud nYears = commandes.nBase.getChild(cYears.getSelectedItem().toString());
nTable.setAttribut("Formation", cFormations.getSelectedItem().toString());
noeud nYears = commandes.nBase.getChild(cYears.getSelectedItem().toString());
nTable.setAttribut("Formation", cFormations.getSelectedItem().toString());
if(nYears!=null) {
noeud nFormation = nYears.getChild(cFormations.getSelectedItem().toString());
String[][] data = new String[nFormation.getChildren().size()][31] ;
if(nYears!=null) {
noeud nFormation = nYears.getChild(cFormations.getSelectedItem().toString());
String[][] data = new String[nFormation.getChildren().size()][31] ;
// création de l'entête
int indexCol = 0;
int compteur = 0;
noeud firstStudent = nFormation.getFirstChild();
for (Map.Entry<String, String> entry : firstStudent.getAttributes().entrySet()) {
String key = entry.getKey();
dictionary.put(key, indexCol);
// création de l'entête
int indexCol = 0;
int compteur = 0;
noeud firstStudent = nFormation.getFirstChild();
for (Map.Entry<String, String> entry : firstStudent.getAttributes().entrySet()) {
String key = entry.getKey();
if(chckToutesLesColonnes.isSelected() ) {
dictionary.put(key, indexCol);
indexCol++;
}
}else {
if(key.equals("Individu_-_Nom") || key.equals("Individu_-_Prenom") || key.equals("Individu_-_Code_Etudiant")) {
dictionary.put(key, indexCol);
indexCol++;
}
if(chckGroupePrincipal.isSelected() && key.equals("Groupe_Principal") ) {
dictionary.put(key, indexCol);
indexCol++;
}
if(chckGroupeTD.isSelected() && key.equals("Groupe_TD") ) {
dictionary.put(key, indexCol);
indexCol++;
}
if(chckGroupeLangue.isSelected() && key.equals("Groupe_Langue") ) {
dictionary.put(key, indexCol);
indexCol++;
}
if(chckGroupeInformatique.isSelected() && key.equals("Groupe_Informatique") ) {
dictionary.put(key, indexCol);
indexCol++;
}
if(chckGroupeDocumentation.isSelected() && key.equals("Groupe_Doc") ) {
dictionary.put(key, indexCol);
indexCol++;
}
if(chckLV1.isSelected() && key.equals("LV1") ) {
dictionary.put(key, indexCol);
indexCol++;
}
if(chckLV2.isSelected() && key.equals("LV2") ) {
dictionary.put(key, indexCol);
indexCol++;
}
if(chckGroupeProjet.isSelected() && key.equals("Groupe_Projet") ) {
dictionary.put(key, indexCol);
indexCol++;
}
}
}
int indexRow = 0;
for(noeud nStudent : nFormation.getChildren()) {
indexCol = 0;
boolean trouve = false;
for (Map.Entry<String, String> entry : nStudent.getAttributes().entrySet()) {
if( ( nStudent.getAttributes("Groupe_Projet").equals(GroupeProjet) || GroupeProjet.equals(pasChoisi) )
&& ( nStudent.getAttributes("Groupe_Principal").equals(GroupePrincipal) || GroupePrincipal.equals(pasChoisi) )
&& ( nStudent.getAttributes("Groupe_Doc").equals(GroupeDocumentation) || GroupeDocumentation.equals(pasChoisi) )
&& ( nStudent.getAttributes("Profil_etudiant_lib.").equals(Profil) || Profil.equals(pasChoisi) )
&& ( nStudent.getAttributes("Groupe_Langue").equals(GroupeLangue) || GroupeLangue.equals(pasChoisi) )
&& ( nStudent.getAttributes("LV2").equals(LV2) || LV2.equals(pasChoisi) )
&& ( nStudent.getAttributes("Groupe_Informatique").equals(GroupeInformatique) || GroupeInformatique.equals(pasChoisi) )
&& ( nStudent.getAttributes("Groupe_TD").equals(GroupeTD) || GroupeTD.equals(pasChoisi) )
&& ( nStudent.getAttributes("LV1").equals(LV1) || LV1.equals(pasChoisi) ) ) {
if(dictionary.get(entry.getKey())!=null) {
String key = entry.getKey();
if(chckToutesLesColonnes.isSelected() ) {
data[indexRow][dictionary.get(key)] = entry.getValue();
}else {
if(key.equals("Individu_-_Nom") || key.equals("Individu_-_Prenom") || key.equals("Individu_-_Code_Etudiant")) {
data[indexRow][dictionary.get(key)] = entry.getValue();
}
if(chckGroupePrincipal.isSelected() && key.equals("Groupe_Principal") ) {
data[indexRow][dictionary.get(key)] = entry.getValue();
}
if(chckGroupeTD.isSelected() && key.equals("Groupe_TD") ) {
data[indexRow][dictionary.get(key)] = entry.getValue();
}
if(chckGroupeLangue.isSelected() && key.equals("Groupe_Langue") ) {
data[indexRow][dictionary.get(key)] = entry.getValue();
}
if(chckGroupeInformatique.isSelected() && key.equals("Groupe_Informatique") ) {
data[indexRow][dictionary.get(key)] = entry.getValue();
}
if(chckGroupeDocumentation.isSelected() && key.equals("Groupe_Doc") ) {
data[indexRow][dictionary.get(key)] = entry.getValue();
}
if(chckLV1.isSelected() && key.equals("LV1") ) {
data[indexRow][dictionary.get(key)] = entry.getValue();
}
if(chckLV2.isSelected() && key.equals("LV2") ) {
data[indexRow][dictionary.get(key)] = entry.getValue();
}
if(chckGroupeProjet.isSelected() && key.equals("Groupe_Projet") ) {
data[indexRow][dictionary.get(key)] = entry.getValue();
}
}
indexCol++;
trouve=true;
}
}
}
int indexRow = 0;
for(noeud nStudent : nFormation.getChildren()) {
indexCol = 0;
boolean trouve = false;
for (Map.Entry<String, String> entry : nStudent.getAttributes().entrySet()) {
if( ( nStudent.getAttributes("Profil_etudiant_lib.").equals(Profil) || Profil.equals(pasChoisi) )
&& ( nStudent.getAttributes("Groupe_Langue").equals(GroupeLangue) || GroupeLangue.equals(pasChoisi) )
&& ( nStudent.getAttributes("LV2").equals(LV2) || LV2.equals(pasChoisi) )
&& ( nStudent.getAttributes("Groupe_Informatique").equals(GroupeInformatique) || GroupeInformatique.equals(pasChoisi) )
&& ( nStudent.getAttributes("Groupe_TD").equals(GroupeTD) || GroupeTD.equals(pasChoisi) )
&& ( nStudent.getAttributes("LV1").equals(LV1) || LV1.equals(pasChoisi) ) ) {
if(dictionary.get(entry.getKey())!=null) {
data[indexRow][dictionary.get(entry.getKey())] = entry.getValue();
indexCol++;
trouve=true;
}
}
}
if(trouve) {
indexRow++;
compteur=indexRow;
try {
nTable.addChild(nStudent.clone());
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
if(trouve) {
indexRow++;
compteur=indexRow;
try {
nTable.addChild(nStudent.clone());
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
lblInformation.setText("Informations : Nombre d'étudaint = " + compteur);
// Obtenir les entrées du dictionnaire sous forme de liste
List<Map.Entry<String, Integer>> entryList = new ArrayList<>(dictionary.entrySet());
// Trier la liste d'entrées par ordre croissant des valeurs
Collections.sort(entryList, Comparator.comparingInt(Map.Entry::getValue));
// Extraire les clés triées dans un tableau de type String[] dans l'ordre des colonnes
String[] head = entryList.stream()
.map(Map.Entry::getKey)
.toArray(String[]::new);
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));
}
// Ajouter un écouteur de modification de cellule à la table
table.getModel().addTableModelListener(e -> {
int row = e.getFirstRow();
int column = e.getColumn();
if (row != -1 && column != -1) {
String key = getColumnsName()[column];
String value = (String) table.getValueAt(row, column);
// Obtenir l'indice de la colonne "Individu_-_Code_Etudiant"
int columnIndex = table.getColumnModel().getColumnIndex("Individu_-_Code_Etudiant");
String numeroEtudiant = (String) table.getModel().getValueAt(row, columnIndex);
noeud nF = commandes.nBase.getChild(defautYear).getChild(cFormations.getSelectedItem().toString());
String codeStudent = "n"+numeroEtudiant;
noeud nStudent = nF.getChild(codeStudent);
boolean isOnlySpace = value.matches("\\s+");
if(!isOnlySpace) {
try {
nStudent.setAttribut(key, value.trim() );
sauvegardeXMLBase.save(commandes.nBase, saveType.SANS_MESSAGE);
}catch (Exception e1) {
JOptionPane.showMessageDialog(null, "Impossible de sauvegarder ce contenu.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
}else {
JOptionPane.showMessageDialog(null, "Le contenu ne doit pas être composé d'espace.", "Erreur", JOptionPane.ERROR_MESSAGE);
table.setValueAt("", row, column);
}
majTableFormation();
majTableGroupes();
}
});
table.revalidate();
table.repaint();
}
lblInformation.setText("Informations : Nombre d'étudaint = " + compteur);
// Obtenir les entrées du dictionnaire sous forme de liste
List<Map.Entry<String, Integer>> entryList = new ArrayList<>(dictionary.entrySet());
// Trier la liste d'entrées par ordre croissant des valeurs
Collections.sort(entryList, Comparator.comparingInt(Map.Entry::getValue));
// Extraire les clés triées dans un tableau de type String[] dans l'ordre des colonnes
String[] head = entryList.stream()
.map(Map.Entry::getKey)
.toArray(String[]::new);
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));
}
// Ajouter un écouteur de modification de cellule à la table
table.getModel().addTableModelListener(e -> {
int row = e.getFirstRow();
int column = e.getColumn();
if (row != -1 && column != -1) {
String key = getColumnsName()[column];
String value = (String) table.getValueAt(row, column);
// Obtenir l'indice de la colonne "Individu_-_Code_Etudiant"
int columnIndex = table.getColumnModel().getColumnIndex("Individu_-_Code_Etudiant");
String numeroEtudiant = (String) table.getModel().getValueAt(row, columnIndex);
noeud nF = commandes.nBase.getChild(defautYear).getChild(cFormations.getSelectedItem().toString());
String codeStudent = "n"+numeroEtudiant;
noeud nStudent = nF.getChild(codeStudent);
boolean isOnlySpace = value.matches("\\s+");
if(!isOnlySpace) {
try {
nStudent.setAttribut(key, value.trim() );
sauvegardeXMLBase.save(commandes.nBase, saveType.SANS_MESSAGE);
}catch (Exception e1) {
JOptionPane.showMessageDialog(null, "Impossible de sauvegarder ce contenu.", "Erreur", JOptionPane.ERROR_MESSAGE);
}
}else {
JOptionPane.showMessageDialog(null, "Le contenu ne doit pas être composé d'espace.", "Erreur", JOptionPane.ERROR_MESSAGE);
table.setValueAt("", row, column);
}
majTableFormation();
majTableGroupes();
}
});
table.revalidate();
table.repaint();
}
}
@ -607,7 +1013,7 @@ public class gestionnaire extends JFrame {
* @return
*/
private static int getMaxColumnWidth(JTable table, int columnIndex) {
int maxWidth = 70;
int maxWidth = 80;
DefaultTableCellRenderer cellRenderer = new DefaultTableCellRenderer();
@ -651,5 +1057,4 @@ public class gestionnaire extends JFrame {
}
return columnNames;
}
}

View File

@ -13,7 +13,6 @@ public class lecture {
noeud noeudCSV = null;
noeud nBase = recupeBases.recupeLaBase();
@ -24,8 +23,6 @@ public class lecture {
if(fileData!=null) {
String filePath = fileData.getAbsolutePath();
noeudCSV = lectureCSV.noeudCSV(filePath);
}
} catch (Exception e) {
e.printStackTrace();

View File

@ -16,9 +16,7 @@ public class lectureCSV {
String line;
String csvSplitBy = ";";
noeud donne = new noeud("data");
// try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path),"UTF-8"))) {
String encoding = FileEncodingDetector.EncodingFile(path);
if(encoding!=null) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path), encoding))) {
@ -43,7 +41,6 @@ public class lectureCSV {
int compteur = 0 ;
noeud d = new noeud("ligne_" + compteurLine);
for (String value : data) {
// value = supprimeCaracatresSpeciaux.TousLesCaracatresSpeciaux(value);
d.setAttribut(Head.getAttributes("C"+String.valueOf(compteur)), value);
compteur++;
}

View File

@ -18,8 +18,10 @@ public class majBase {
if(nCSV.getChildren().get(i).getAttributes("IAE_-_Etape_lib.")!=null) {
if(!nCSV.getChildren().get(i).getAttributes("IAE_-_Etape_lib.").isEmpty()) {
if(!isExisteFormationIntoBase(nBase, nCSV.getChildren().get(i).getAttributes("IAE_-_Etape_lib."))) {
nBase.getChild(defaut_Year).addChild(new noeud( supprimeCaracatresSpeciaux.TousLesCaracatresSpeciaux(nCSV.getChildren().get(i).getAttributes("IAE_-_Etape_lib."))));
}
noeud nFormation = new noeud( supprimeCaracatresSpeciaux.TousLesCaracatresSpeciaux(nCSV.getChildren().get(i).getAttributes("IAE_-_Etape_lib.")));
nFormation.setAttribut("Affichage", "defaut");
nBase.getChild(defaut_Year).addChild(nFormation);
}
}
}