MAJ V1.0.1 (JRE1.8 with JDK 1.8.0_271)
This commit is contained in:
parent
3ecddf0c76
commit
f7a122679a
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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();
|
||||
|
@ -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++;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user