Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
dedda3faf0 | ||
|
00f08babd0 | ||
|
e162eae002 | ||
|
37da4aacce | ||
|
a62bcc40c6 | ||
|
d93bdad582 |
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
/bin/
|
/bin/
|
||||||
|
/base/
|
||||||
|
@ -162,7 +162,7 @@ public class importInscriptionXLS {
|
|||||||
nFormation.setAttribut("Verouillage_Groupe_Informatique", "false");
|
nFormation.setAttribut("Verouillage_Groupe_Informatique", "false");
|
||||||
nFormation.setAttribut("Verouillage_Groupe_Documentation", "false");
|
nFormation.setAttribut("Verouillage_Groupe_Documentation", "false");
|
||||||
nFormation.setAttribut("Verouillage_Groupe_Projet", "false");
|
nFormation.setAttribut("Verouillage_Groupe_Projet", "false");
|
||||||
nFormation.setAttribut("Verouillage_Tous_Les_Groupes", "false");
|
nFormation.setAttribut("Verouillage_Tous_Les_Groupes", "true");
|
||||||
|
|
||||||
nFormation.setAttribut("pattern_Groupe_Principal", "groupe @");
|
nFormation.setAttribut("pattern_Groupe_Principal", "groupe @");
|
||||||
nFormation.setAttribut("nombre_Student_Groupe_Principal", "30");
|
nFormation.setAttribut("nombre_Student_Groupe_Principal", "30");
|
||||||
|
@ -4,6 +4,7 @@ import java.awt.Color;
|
|||||||
import java.awt.Desktop;
|
import java.awt.Desktop;
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
import java.awt.Image;
|
import java.awt.Image;
|
||||||
|
import java.awt.SystemColor;
|
||||||
import java.awt.Window;
|
import java.awt.Window;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
@ -39,7 +40,6 @@ import gestion_version.VersionChecker;
|
|||||||
import importations.importAllBaseToExcel;
|
import importations.importAllBaseToExcel;
|
||||||
import outils.FileChooserXLSX;
|
import outils.FileChooserXLSX;
|
||||||
import outils.commandes;
|
import outils.commandes;
|
||||||
import java.awt.SystemColor;
|
|
||||||
|
|
||||||
public class Window_demarre extends JFrame {
|
public class Window_demarre extends JFrame {
|
||||||
|
|
||||||
@ -50,13 +50,10 @@ public class Window_demarre extends JFrame {
|
|||||||
private static JFrame frmEvalwriter;
|
private static JFrame frmEvalwriter;
|
||||||
JButton btnExporterTouteLaBase;
|
JButton btnExporterTouteLaBase;
|
||||||
JButton actImporterInscriptionDepuisCSV;
|
JButton actImporterInscriptionDepuisCSV;
|
||||||
|
|
||||||
JButton btnAideImportationInscriptionXLSX = new JButton("Aide : Importer des inscriptions");
|
|
||||||
JButton btnHelpDownload = new JButton("Aide : Téléchargement et installation");
|
|
||||||
JButton btnNewVersion = new JButton("<html>Nouvelle version disponible</html>");
|
JButton btnNewVersion = new JButton("<html>Nouvelle version disponible</html>");
|
||||||
JButton btnNAideMiseAJour = new JButton("Aide : Importer des données");
|
|
||||||
JButton btnMiseAJourDepuisClasseur = new JButton("<html>Mise à jour de la base depuis<br>un classeur Ms Excel</html>");
|
JButton btnMiseAJourDepuisClasseur = new JButton("<html>Mise à jour de la base depuis<br>un classeur Ms Excel</html>");
|
||||||
JButton btnGestionnaire = new JButton("");
|
JButton btnGestionnaire = new JButton("");
|
||||||
|
JButton btnLicence = new JButton("Licence GNU GPL 3.0");
|
||||||
JButton btnimporterDesInscriptionsdepuisClasseur = new JButton("<html>Importer des inscriptions<br>depuis un classeur Ms Excel</html>");
|
JButton btnimporterDesInscriptionsdepuisClasseur = new JButton("<html>Importer des inscriptions<br>depuis un classeur Ms Excel</html>");
|
||||||
static JLabel lblAuteurVersion = new JLabel("<html>Pablo Rodriguez - 2023<br>Version "+ commandes.version+"</html>");
|
static JLabel lblAuteurVersion = new JLabel("<html>Pablo Rodriguez - 2023<br>Version "+ commandes.version+"</html>");
|
||||||
static JLabel lblFondImage = new JLabel();
|
static JLabel lblFondImage = new JLabel();
|
||||||
@ -73,11 +70,9 @@ public class Window_demarre extends JFrame {
|
|||||||
Font police = new Font("Arial", Font.PLAIN, 14);
|
Font police = new Font("Arial", Font.PLAIN, 14);
|
||||||
UIManager.put("OptionPane.messageFont", police);
|
UIManager.put("OptionPane.messageFont", police);
|
||||||
|
|
||||||
|
|
||||||
// Vérification d'une nouvelle version dans la forge de Chapril
|
// Vérification d'une nouvelle version dans la forge de Chapril
|
||||||
VersionChecker.verificationNewVersion();
|
VersionChecker.verificationNewVersion();
|
||||||
|
|
||||||
|
|
||||||
// mise à jour de la base de données si nouvelle version de l'application utilisé.
|
// mise à jour de la base de données si nouvelle version de l'application utilisé.
|
||||||
commandes.nBase=recupeBases.recupeLaBase();
|
commandes.nBase=recupeBases.recupeLaBase();
|
||||||
|
|
||||||
@ -90,7 +85,7 @@ public class Window_demarre extends JFrame {
|
|||||||
// Vérification du blocage de l'application
|
// Vérification du blocage de l'application
|
||||||
if(VerificationBlocageApplication()) {
|
if(VerificationBlocageApplication()) {
|
||||||
JOptionPane.showMessageDialog(null, "<html>Blocage de l'application.<br>"
|
JOptionPane.showMessageDialog(null, "<html>Blocage de l'application.<br>"
|
||||||
+ "Contacter votre administrateur réseau.<br>Erreur : <b><u>Autorisation refusée.</u></b></html>");
|
+ "<br>Erreur : <b><u>Autorisation refusée.</u></b></html>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,12 +120,12 @@ public class Window_demarre extends JFrame {
|
|||||||
boolean affichagePremierInformation = false;
|
boolean affichagePremierInformation = false;
|
||||||
if(commandes.newVersion && (!commandes.messageVersion.isEmpty() || !commandes.messageAlerte.isEmpty()) ) {
|
if(commandes.newVersion && (!commandes.messageVersion.isEmpty() || !commandes.messageAlerte.isEmpty()) ) {
|
||||||
String message = "<html>" + commandes.messageVersion + commandes.messageAlerte + "</html>";
|
String message = "<html>" + commandes.messageVersion + commandes.messageAlerte + "</html>";
|
||||||
|
if(commandes.noMessageAlerte) message = "<html>" + commandes.messageVersion + "</html>";
|
||||||
JOptionPane.showMessageDialog(null, message,"Information version",JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, message,"Information version",JOptionPane.INFORMATION_MESSAGE);
|
||||||
affichagePremierInformation = true;
|
affichagePremierInformation = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!commandes.messageAlerte.isEmpty() && !affichagePremierInformation && !commandes.noMessageAlerte) {
|
||||||
if(!commandes.messageAlerte.isEmpty() && !affichagePremierInformation) {
|
|
||||||
String message = "<html>" + commandes.messageAlerte + "</html>";
|
String message = "<html>" + commandes.messageAlerte + "</html>";
|
||||||
JOptionPane.showMessageDialog(null, message,"Information",JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, message,"Information",JOptionPane.INFORMATION_MESSAGE);
|
||||||
}
|
}
|
||||||
@ -211,22 +206,14 @@ public class Window_demarre extends JFrame {
|
|||||||
tabExporteImporte.setLayout(null);
|
tabExporteImporte.setLayout(null);
|
||||||
|
|
||||||
JPanel tabAides = new JPanel();
|
JPanel tabAides = new JPanel();
|
||||||
tabbedPane.addTab("<html>Aides-Tutoriels<br>Tickets-Versions</html>", tabAides);
|
tabbedPane.addTab("<html>Wikidoc-Tutoriels<br>Tickets-Versions</html>", tabAides);
|
||||||
|
|
||||||
JPanel tabLicence = new JPanel();
|
JPanel tabLicence = new JPanel();
|
||||||
tabbedPane.addTab("<html>Crédits<br>Licences</html>", tabLicence);
|
tabbedPane.addTab("<html>Crédits<br>Licences</html>", tabLicence);
|
||||||
tabLicence.setLayout(null);
|
tabLicence.setLayout(null);
|
||||||
|
|
||||||
JLabel lblCredits = new JLabel("<html><h3>Auteur : Pablo Rodriguez</h3>\r\n<p><i>Il n'y a aucune autre motivation que celle de vous rendre service qui m'ait poussé à réaliser ce programme. J'espère sincèrement qu'il vous sera utile.</i></p>\r\n<hr>\r\n<p><b>Enseignant</b> : Université d'Artois</p>\r\n<p><b>Matières</b> : T.I.C.E. - Informatique - Automatisme (informatique Industruiel) - Productique - Statistique.</p>\r\n<p><b>Email</b> : pablo rodriguez@univ-artois.fr</p>");
|
btnLicence.setBounds(390, 173, 324, 50);
|
||||||
lblCredits.setHorizontalAlignment(SwingConstants.LEFT);
|
btnLicence.addActionListener(new ActionListener() {
|
||||||
lblCredits.setVerticalAlignment(SwingConstants.TOP);
|
|
||||||
lblCredits.setFont(new Font("Arial", Font.PLAIN, 14));
|
|
||||||
lblCredits.setToolTipText("");
|
|
||||||
lblCredits.setBounds(10, 10, 704, 140);
|
|
||||||
tabLicence.add(lblCredits);
|
|
||||||
|
|
||||||
JButton btnNewButton_1 = new JButton("Licence GNU GPL 3.0");
|
|
||||||
btnNewButton_1.addActionListener(new ActionListener() {
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
String url = "https://www.gnu.org/licenses/gpl-3.0.html#license-text";
|
String url = "https://www.gnu.org/licenses/gpl-3.0.html#license-text";
|
||||||
try {
|
try {
|
||||||
@ -237,23 +224,30 @@ public class Window_demarre extends JFrame {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
btnNewButton_1.setIcon(new ImageIcon(Window_demarre.class.getResource("/resources/gplv3-127x51.png")));
|
btnLicence.setIcon(new ImageIcon(Window_demarre.class.getResource("/resources/gplv3-127x51.png")));
|
||||||
btnNewButton_1.setFont(new Font("Arial", Font.BOLD, 14));
|
btnLicence.setFont(new Font("Arial", Font.BOLD, 14));
|
||||||
btnNewButton_1.setBounds(10, 150, 326, 64);
|
|
||||||
tabLicence.add(btnNewButton_1);
|
|
||||||
|
|
||||||
JLabel lblVersion = new JLabel("<html><h2>Version : " + commandes.version + "<br>"+ commandes.dateversion +"</h2></html>");
|
tabLicence.add(btnLicence);
|
||||||
|
|
||||||
|
|
||||||
|
JLabel lblCredits = new JLabel("<html><h3>Auteur : Pablo Rodriguez</h3>\r\n<p><i>Mon programme a été créé de manière totalement désintéressée, avec pour seul objectif de vous aider. Mon souhait sincère est qu'il vous soit véritablement utile. N'hésitez pas à l'utiliser pleinement ou à le partager. Si vous avez des questions ou des suggestions pour l'améliorer, vous pouvez aisément publier un ticket pour me faire part de vos suggestions ou commentaires.</i></p>\r\n<hr>\r\n<p>Enseignant à l'Université d'Artois, je suis agrégé de génie mécanique, diplomé de l'I.N.S.A. (ingénieur mécanique). Spécialisé dans les matières suivantes : T.I.C.E., Informatique, Automatisme, Gestion de projet, Statistique, Mécanique, Productique.</p><br>\r\n<p>Email : <b>pablo.rodriguez@univ-artois.fr</b></p>");
|
||||||
|
lblCredits.setHorizontalAlignment(SwingConstants.LEFT);
|
||||||
|
lblCredits.setVerticalAlignment(SwingConstants.TOP);
|
||||||
|
lblCredits.setFont(new Font("Arial", Font.PLAIN, 14));
|
||||||
|
lblCredits.setToolTipText("");
|
||||||
|
lblCredits.setBounds(10, 10, 704, 204);
|
||||||
|
tabLicence.add(lblCredits);
|
||||||
|
|
||||||
|
JLabel lblVersion = new JLabel("<html><h2>Version : "+ commandes.version + " - " + commandes.dateversion+"</h2></html>");
|
||||||
lblVersion.setForeground(SystemColor.textHighlight);
|
lblVersion.setForeground(SystemColor.textHighlight);
|
||||||
lblVersion.setVerticalAlignment(SwingConstants.TOP);
|
lblVersion.setVerticalAlignment(SwingConstants.TOP);
|
||||||
lblVersion.setHorizontalAlignment(SwingConstants.RIGHT);
|
lblVersion.setHorizontalAlignment(SwingConstants.RIGHT);
|
||||||
lblVersion.setBounds(563, 150, 151, 64);
|
lblVersion.setBounds(278, 6, 436, 33);
|
||||||
tabLicence.add(lblVersion);
|
tabLicence.add(lblVersion);
|
||||||
|
|
||||||
|
|
||||||
frmEvalwriter.getContentPane().add(tabbedPane);
|
frmEvalwriter.getContentPane().add(tabbedPane);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
btnExporterTouteLaBase = new JButton("<html>Exporter toute la base dans<br>un classeur MS Excel</html>");
|
btnExporterTouteLaBase = new JButton("<html>Exporter toute la base dans<br>un classeur MS Excel</html>");
|
||||||
btnExporterTouteLaBase.setIcon(new ImageIcon(Window_demarre.class.getResource("/resources/exportbasetoexcel.png")));
|
btnExporterTouteLaBase.setIcon(new ImageIcon(Window_demarre.class.getResource("/resources/exportbasetoexcel.png")));
|
||||||
btnExporterTouteLaBase.setFont(new Font("Arial", Font.BOLD, 16));
|
btnExporterTouteLaBase.setFont(new Font("Arial", Font.BOLD, 16));
|
||||||
@ -290,13 +284,6 @@ public class Window_demarre extends JFrame {
|
|||||||
tabInscriptions.add(btnimporterDesInscriptionsdepuisClasseur);
|
tabInscriptions.add(btnimporterDesInscriptionsdepuisClasseur);
|
||||||
tabAides.setLayout(null);
|
tabAides.setLayout(null);
|
||||||
|
|
||||||
|
|
||||||
btnNAideMiseAJour.setForeground(Color.GRAY);
|
|
||||||
btnNAideMiseAJour.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 12));
|
|
||||||
btnNAideMiseAJour.setBounds(370, 11, 340, 30);
|
|
||||||
tabAides.add(btnNAideMiseAJour);
|
|
||||||
|
|
||||||
|
|
||||||
if(commandes.newVersion) {
|
if(commandes.newVersion) {
|
||||||
btnNewVersion = new JButton("<html>Nouvelle version disponible : "+ commandes.nameNewVersion + "</html>");
|
btnNewVersion = new JButton("<html>Nouvelle version disponible : "+ commandes.nameNewVersion + "</html>");
|
||||||
}
|
}
|
||||||
@ -306,17 +293,6 @@ public class Window_demarre extends JFrame {
|
|||||||
btnNewVersion.setVisible(commandes.newVersion);
|
btnNewVersion.setVisible(commandes.newVersion);
|
||||||
frmEvalwriter.getContentPane().add(btnNewVersion);
|
frmEvalwriter.getContentPane().add(btnNewVersion);
|
||||||
|
|
||||||
btnHelpDownload.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 12));
|
|
||||||
btnHelpDownload.setForeground(Color.GRAY);
|
|
||||||
btnHelpDownload.setBounds(370, 74, 340, 30);
|
|
||||||
|
|
||||||
tabAides.add(btnHelpDownload);
|
|
||||||
|
|
||||||
btnAideImportationInscriptionXLSX.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 12));
|
|
||||||
btnAideImportationInscriptionXLSX.setBounds(370, 42, 340, 30);
|
|
||||||
btnAideImportationInscriptionXLSX.setForeground(Color.GRAY);
|
|
||||||
tabAides.add(btnAideImportationInscriptionXLSX);
|
|
||||||
|
|
||||||
JButton btnNewButton = new JButton("");
|
JButton btnNewButton = new JButton("");
|
||||||
btnNewButton.setIcon(new ImageIcon(Window_demarre.class.getResource("/resources/tickets_bouton.png")));
|
btnNewButton.setIcon(new ImageIcon(Window_demarre.class.getResource("/resources/tickets_bouton.png")));
|
||||||
btnNewButton.addActionListener(new ActionListener() {
|
btnNewButton.addActionListener(new ActionListener() {
|
||||||
@ -365,6 +341,22 @@ public class Window_demarre extends JFrame {
|
|||||||
btnVersions.setBounds(370, 116, 340, 95);
|
btnVersions.setBounds(370, 116, 340, 95);
|
||||||
tabAides.add(btnVersions);
|
tabAides.add(btnVersions);
|
||||||
|
|
||||||
|
JButton btnWiki = new JButton("");
|
||||||
|
btnWiki.setIcon(new ImageIcon(Window_demarre.class.getResource("/resources/wiki_bouton.png")));
|
||||||
|
btnWiki.setBounds(370, 10, 340, 95);
|
||||||
|
tabAides.add(btnWiki);
|
||||||
|
btnWiki.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
String url = "https://forge.chapril.org/pablo/GestionDesInscriptions/wiki/?action=_pages";
|
||||||
|
try {
|
||||||
|
Desktop.getDesktop().browse(new URI(url));
|
||||||
|
} catch (IOException | URISyntaxException ex) {
|
||||||
|
JOptionPane.showMessageDialog(null, "Problème avec la connexion internet.");
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
JButton btnParametresClasseurInscription = new JButton("<html>Paramètres classeur<br>des inscriptions</html>");
|
JButton btnParametresClasseurInscription = new JButton("<html>Paramètres classeur<br>des inscriptions</html>");
|
||||||
btnParametresClasseurInscription.addActionListener(new ActionListener() {
|
btnParametresClasseurInscription.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
@ -394,12 +386,16 @@ public class Window_demarre extends JFrame {
|
|||||||
});
|
});
|
||||||
tabGestionnaire.add(btnRenommerActiverColonne);
|
tabGestionnaire.add(btnRenommerActiverColonne);
|
||||||
|
|
||||||
JLabel lblNewLabel = new JLabel("<html>Grâce au gestionnaire, vous pouvez sélectionner une formation. Ensuite, vous pouvez modifier directement les données de chaque étudiant. Une fonction vous permet de créer des groupes.<br>Si nécessaire, vous pouvez exporter une table filtrée des données, ou bien exporter les feuilles d'émargements en fonction des critères de filtrage choisis.</html>");
|
JLabel lblNewLabel = new JLabel("<html>Grâce au gestionnaire, vous pouvez sélectionner une formation. Ensuite, vous pouvez modifier directement les données de chaque étudiant. Une fonction vous permet de créer des groupes.<br>Si nécessaire, vous pouvez exporter une formation avec les données filtrées, ou bien exporter les feuilles d'émargements en fonction des critères de filtrage choisis.</html>");
|
||||||
lblNewLabel.setVerticalAlignment(SwingConstants.TOP);
|
lblNewLabel.setVerticalAlignment(SwingConstants.TOP);
|
||||||
lblNewLabel.setFont(new Font("Arial", Font.PLAIN, 12));
|
lblNewLabel.setFont(new Font("Arial", Font.PLAIN, 12));
|
||||||
lblNewLabel.setBounds(370, 101, 340, 109);
|
lblNewLabel.setBounds(370, 101, 340, 109);
|
||||||
tabGestionnaire.add(lblNewLabel);
|
tabGestionnaire.add(lblNewLabel);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ListenerAction();
|
ListenerAction();
|
||||||
|
|
||||||
|
|
||||||
@ -475,27 +471,6 @@ public class Window_demarre extends JFrame {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Bouton importer des inscriptions depuis un fichier CSV.
|
|
||||||
// actImporterInscriptionDepuisCSV.addActionListener(new ActionListener() {
|
|
||||||
// public void actionPerformed(ActionEvent e) {
|
|
||||||
// importInscriptionCSV.importe();
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
// Bouton Aide à l'importation des inscription depuis un classeur Ms Excel
|
|
||||||
btnAideImportationInscriptionXLSX.addActionListener(new ActionListener() {
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
new Window_Help_inscriptionXLSX();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Bouton Aide au téléchargement et à l'installation de l'application.
|
|
||||||
btnHelpDownload.addActionListener(new ActionListener() {
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
new Window_Help_download_and_install();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Bouton nouvelle version disponible.
|
// Bouton nouvelle version disponible.
|
||||||
btnNewVersion.addActionListener(new ActionListener() {
|
btnNewVersion.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
@ -509,12 +484,6 @@ public class Window_demarre extends JFrame {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Bouton aide à la mise à jour de la base depuis un classeur Ms Excel
|
|
||||||
btnNAideMiseAJour.addActionListener(new ActionListener() {
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
new Window_Help_maj_data();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -611,4 +580,5 @@ public class Window_demarre extends JFrame {
|
|||||||
}
|
}
|
||||||
lblFondImage.setIcon(new ImageIcon(resizedImage));
|
lblFondImage.setIcon(new ImageIcon(resizedImage));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
@ -42,6 +44,7 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
private JTextField textNombre_Etudiant_Groupe;
|
private JTextField textNombre_Etudiant_Groupe;
|
||||||
private int nombreEtudiantDansGroupe = 30;
|
private int nombreEtudiantDansGroupe = 30;
|
||||||
static JLabel lblAuteurVersion = new JLabel("<html>Pablo Rodriguez - 2023<br>Version "+ commandes.version+"</html>");
|
static JLabel lblAuteurVersion = new JLabel("<html>Pablo Rodriguez - 2023<br>Version "+ commandes.version+"</html>");
|
||||||
|
private JTextField textFirstLettreChiffre;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -56,7 +59,7 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
|
|
||||||
private void initialize( String nameGroupe,Window_gestionnaire instance) {
|
private void initialize( String nameGroupe,Window_gestionnaire instance) {
|
||||||
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
||||||
setBounds(0, 0, 863, 534);
|
setBounds(0, 0, 863, 500);
|
||||||
setTitle("Générer des groupes");
|
setTitle("Générer des groupes");
|
||||||
setLocationRelativeTo(null); // Centre la fenêtre à l'écran
|
setLocationRelativeTo(null); // Centre la fenêtre à l'écran
|
||||||
|
|
||||||
@ -84,7 +87,7 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
|
|
||||||
JButton btnGenere_Groupe = new JButton("Générer les groupes");
|
JButton btnGenere_Groupe = new JButton("Générer les groupes");
|
||||||
btnGenere_Groupe.setFont(new Font("Arial", Font.BOLD, 14));
|
btnGenere_Groupe.setFont(new Font("Arial", Font.BOLD, 14));
|
||||||
btnGenere_Groupe.setBounds(487, 396, 350, 80);
|
btnGenere_Groupe.setBounds(487, 396, 350, 58);
|
||||||
getContentPane().add(btnGenere_Groupe);
|
getContentPane().add(btnGenere_Groupe);
|
||||||
|
|
||||||
textPattern_Groupe = new JTextField();
|
textPattern_Groupe = new JTextField();
|
||||||
@ -144,11 +147,11 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
lblNombre_Etudiant_Groupe.setBounds(382, 318, 332, 36);
|
lblNombre_Etudiant_Groupe.setBounds(382, 318, 332, 36);
|
||||||
getContentPane().add(lblNombre_Etudiant_Groupe);
|
getContentPane().add(lblNombre_Etudiant_Groupe);
|
||||||
|
|
||||||
JLabel lblNewLabel_1 = new JLabel("<html>(1) - Si le caractère @ ou # n'est pas présent alors pattern fixe.<br><br>@ : correspond à une lettre de A à Z<br># : correspond à un nombre de 1 à 100</html>");
|
JLabel lblNewLabel_1 = new JLabel("<html>(1) - Si le caractère @ ou # n'est pas présent alors pattern fixe.<br>@ : correspond à une lettre de A à Z<br># : correspond à un nombre de 1 à 100</html>");
|
||||||
lblNewLabel_1.setForeground(Color.BLUE);
|
lblNewLabel_1.setForeground(Color.BLUE);
|
||||||
lblNewLabel_1.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 14));
|
lblNewLabel_1.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 14));
|
||||||
lblNewLabel_1.setVerticalAlignment(SwingConstants.TOP);
|
lblNewLabel_1.setVerticalAlignment(SwingConstants.TOP);
|
||||||
lblNewLabel_1.setBounds(10, 376, 441, 100);
|
lblNewLabel_1.setBounds(10, 396, 441, 58);
|
||||||
getContentPane().add(lblNewLabel_1);
|
getContentPane().add(lblNewLabel_1);
|
||||||
|
|
||||||
|
|
||||||
@ -203,9 +206,15 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
rdbtnAlphabetique.setBounds(670, 366, 167, 23);
|
rdbtnAlphabetique.setBounds(670, 366, 167, 23);
|
||||||
getContentPane().add(rdbtnAlphabetique);
|
getContentPane().add(rdbtnAlphabetique);
|
||||||
|
|
||||||
|
JLabel lblNewLabel_2 = new JLabel("À partir de ...");
|
||||||
|
lblNewLabel_2.setFont(new Font("Arial", Font.BOLD, 13));
|
||||||
|
lblNewLabel_2.setBounds(66, 365, 94, 20);
|
||||||
|
getContentPane().add(lblNewLabel_2);
|
||||||
|
|
||||||
|
textFirstLettreChiffre = new JTextField();
|
||||||
|
textFirstLettreChiffre.setBounds(170, 357, 86, 28);
|
||||||
|
getContentPane().add(textFirstLettreChiffre);
|
||||||
|
textFirstLettreChiffre.setColumns(2);
|
||||||
|
|
||||||
rdbtnAlphabetique.addActionListener(new ActionListener() {
|
rdbtnAlphabetique.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
@ -253,27 +262,39 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!textFirstLettreChiffre.getText().isEmpty()) {
|
||||||
|
boolean erreur=false;
|
||||||
|
if(textPattern_Groupe.getText().contains("@") && verifieChiffre(textFirstLettreChiffre.getText()) ) erreur =true;
|
||||||
|
if(textPattern_Groupe.getText().contains("#") && verifieLettre(textFirstLettreChiffre.getText()) ) erreur =true;
|
||||||
|
if(erreur) {
|
||||||
|
showCustomDialogErreurPattern();
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
if(textPattern_Groupe.getText().contains("@") && textPattern_Groupe.getText().contains("#")) {
|
||||||
|
JOptionPane.showMessageDialog(null, "<html>Ce n'est pas possible dans le pattern<r>"
|
||||||
|
+ "d'avoir @ et #.</html>","Erreur", JOptionPane.ERROR_MESSAGE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(!verrouillageGroupe) {
|
if(!verrouillageGroupe) {
|
||||||
int choice = showCustomDialog();
|
int choice = showCustomDialog();
|
||||||
if (choice == JOptionPane.YES_OPTION) {
|
if (choice == JOptionPane.YES_OPTION) {
|
||||||
if(rdbtnAleatoire.isSelected()) {
|
if(rdbtnAleatoire.isSelected()) {
|
||||||
generateAleatoireGroupe(nameGroupe, instance, textPattern_Groupe.getText(), Integer.parseInt(textNombre_Etudiant_Groupe.getText()),verrouillageGroupe);
|
generateAleatoireGroupe(nameGroupe, instance, textPattern_Groupe.getText(), Integer.parseInt(textNombre_Etudiant_Groupe.getText()),verrouillageGroupe, textFirstLettreChiffre.getText());
|
||||||
dispose();
|
dispose();
|
||||||
}
|
}
|
||||||
if(rdbtnAlphabetique.isSelected()) {
|
if(rdbtnAlphabetique.isSelected()) {
|
||||||
generateAlphabetiqueGroupe(nameGroupe, instance, textPattern_Groupe.getText(), Integer.parseInt(textNombre_Etudiant_Groupe.getText()),verrouillageGroupe);
|
generateAlphabetiqueGroupe(nameGroupe, instance, textPattern_Groupe.getText(), Integer.parseInt(textNombre_Etudiant_Groupe.getText()),verrouillageGroupe, textFirstLettreChiffre.getText());
|
||||||
dispose();
|
dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
if(rdbtnAleatoire.isSelected()) {
|
if(rdbtnAleatoire.isSelected()) {
|
||||||
generateAleatoireGroupe(nameGroupe, instance, textPattern_Groupe.getText(), Integer.parseInt(textNombre_Etudiant_Groupe.getText()),verrouillageGroupe);
|
generateAleatoireGroupe(nameGroupe, instance, textPattern_Groupe.getText(), Integer.parseInt(textNombre_Etudiant_Groupe.getText()),verrouillageGroupe, textFirstLettreChiffre.getText());
|
||||||
}
|
}
|
||||||
if(rdbtnAlphabetique.isSelected()) {
|
if(rdbtnAlphabetique.isSelected()) {
|
||||||
generateAlphabetiqueGroupe(nameGroupe, instance, textPattern_Groupe.getText(), Integer.parseInt(textNombre_Etudiant_Groupe.getText()),verrouillageGroupe);
|
generateAlphabetiqueGroupe(nameGroupe, instance, textPattern_Groupe.getText(), Integer.parseInt(textNombre_Etudiant_Groupe.getText()),verrouillageGroupe, textFirstLettreChiffre.getText());
|
||||||
}
|
}
|
||||||
dispose();
|
dispose();
|
||||||
}
|
}
|
||||||
@ -293,7 +314,7 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
* @param patternGroupe
|
* @param patternGroupe
|
||||||
* @param tailleDesGroupes
|
* @param tailleDesGroupes
|
||||||
*/
|
*/
|
||||||
private static void generateAleatoireGroupe(String nameGroupe,Window_gestionnaire instance, String patternGroupe, Integer tailleDesGroupes,boolean verrouillageGroupe) {
|
private static void generateAleatoireGroupe(String nameGroupe,Window_gestionnaire instance, String patternGroupe, Integer tailleDesGroupes,boolean verrouillageGroupe,String firstLettreChiffre) {
|
||||||
noeud nFormation = commandes.nBase.getChild(instance.getTable().getAttributes("Formation"));
|
noeud nFormation = commandes.nBase.getChild(instance.getTable().getAttributes("Formation"));
|
||||||
int compteurEtudiantInsereDansGroupe=0;
|
int compteurEtudiantInsereDansGroupe=0;
|
||||||
List<noeud> tableChild = instance.getTable().getChildren();
|
List<noeud> tableChild = instance.getTable().getChildren();
|
||||||
@ -308,14 +329,18 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
if(patternGroupe.contains("@")) {
|
if(patternGroupe.contains("@")) {
|
||||||
String patternCopy = new String(patternGroupe);
|
String patternCopy = new String(patternGroupe);
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
String caractere = "A";
|
String caractereDebut = "A";
|
||||||
String str = patternCopy.replaceAll("@", caractere);
|
if(!firstLettreChiffre.isEmpty()) {
|
||||||
|
if(verifieLettre(firstLettreChiffre)) caractereDebut = firstLettreChiffre;
|
||||||
|
}
|
||||||
|
|
||||||
|
String str = patternCopy.replaceAll("@", caractereDebut);
|
||||||
|
|
||||||
for (noeud child : tableChild) {
|
for (noeud child : tableChild) {
|
||||||
if(!verrouillageGroupe || child.getAttributes(nameGroupe).isEmpty()) {
|
if(!verrouillageGroupe || child.getAttributes(nameGroupe).isEmpty()) {
|
||||||
do {
|
do {
|
||||||
char randomChar = (char) ('A' + random.nextInt(nombreDeGroupes));
|
char randomChar = (char) ( caractereDebut.toCharArray()[0] + random.nextInt(nombreDeGroupes));
|
||||||
caractere = String.valueOf(randomChar);
|
String caractere = String.valueOf(randomChar);
|
||||||
patternCopy = new String(patternGroupe);
|
patternCopy = new String(patternGroupe);
|
||||||
str = patternCopy.replaceAll("@", caractere);
|
str = patternCopy.replaceAll("@", caractere);
|
||||||
}while(nFormation.getNumberAttribut(nameGroupe, str)>=tailleDesGroupes);
|
}while(nFormation.getNumberAttribut(nameGroupe, str)>=tailleDesGroupes);
|
||||||
@ -326,14 +351,26 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
sauvegardeXMLBase.save(commandes.nBase,saveType.SANS_MESSAGE,null);
|
sauvegardeXMLBase.save(commandes.nBase,saveType.SANS_MESSAGE,null);
|
||||||
instance.majFiltres();
|
instance.majFiltres();
|
||||||
}else if (patternGroupe.contains("#")) {
|
}else if (patternGroupe.contains("#")) {
|
||||||
patternGroupe = patternGroupe.replaceAll("#", "");
|
String patternCopy = new String(patternGroupe);
|
||||||
|
int debut = 1;
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
String str = "";
|
String str = patternCopy.replaceAll("#",String.valueOf(debut));
|
||||||
|
|
||||||
|
|
||||||
|
if(!firstLettreChiffre.isEmpty()) {
|
||||||
|
if(verifieChiffre(firstLettreChiffre)) {
|
||||||
|
patternCopy = new String(patternGroupe);
|
||||||
|
debut = Integer.valueOf(firstLettreChiffre);
|
||||||
|
str = patternCopy.replaceAll("#",String.valueOf(debut));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (noeud child : tableChild) {
|
for (noeud child : tableChild) {
|
||||||
if(!verrouillageGroupe || child.getAttributes(nameGroupe).isEmpty()) {
|
if(!verrouillageGroupe || child.getAttributes(nameGroupe).isEmpty()) {
|
||||||
do {
|
do {
|
||||||
int randomInteger = (1 + random.nextInt(nombreDeGroupes));
|
int randomInteger = (debut + random.nextInt(nombreDeGroupes));
|
||||||
str = patternGroupe + String.valueOf(randomInteger);
|
patternCopy = new String(patternGroupe);
|
||||||
|
str = patternCopy.replaceAll("#",String.valueOf(randomInteger));
|
||||||
}while(nFormation.getNumberAttribut(nameGroupe, str)>=tailleDesGroupes);
|
}while(nFormation.getNumberAttribut(nameGroupe, str)>=tailleDesGroupes);
|
||||||
compteurEtudiantInsereDansGroupe++;
|
compteurEtudiantInsereDansGroupe++;
|
||||||
nFormation.getChild(child.getName()).setAttribut(nameGroupe, str);
|
nFormation.getChild(child.getName()).setAttribut(nameGroupe, str);
|
||||||
@ -370,7 +407,7 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
* @param tailleDesGroupes
|
* @param tailleDesGroupes
|
||||||
* @param verrouillageGroupe
|
* @param verrouillageGroupe
|
||||||
*/
|
*/
|
||||||
private static void generateAlphabetiqueGroupe(String nameGroupe, Window_gestionnaire instance, String patternGroupe, Integer tailleDesGroupes, boolean verrouillageGroupe) {
|
private static void generateAlphabetiqueGroupe(String nameGroupe, Window_gestionnaire instance, String patternGroupe, Integer tailleDesGroupes, boolean verrouillageGroupe, String firstLettreChiffre) {
|
||||||
noeud nFormation = commandes.nBase.getChild(instance.getTable().getAttributes("Formation"));
|
noeud nFormation = commandes.nBase.getChild(instance.getTable().getAttributes("Formation"));
|
||||||
int compteurEtudiantInsereDansGroupe =0;
|
int compteurEtudiantInsereDansGroupe =0;
|
||||||
List<noeud> tableChild = instance.getTable().getChildren();
|
List<noeud> tableChild = instance.getTable().getChildren();
|
||||||
@ -384,8 +421,12 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
if(patternGroupe.contains("@")) {
|
if(patternGroupe.contains("@")) {
|
||||||
String patternCopy = new String(patternGroupe);
|
String patternCopy = new String(patternGroupe);
|
||||||
int nombreDeGroupes=0;
|
int nombreDeGroupes=0;
|
||||||
String caractere = "A";
|
String caractereDebut = "A";
|
||||||
String str = patternCopy.replaceAll("@", caractere);
|
if(!firstLettreChiffre.isEmpty()) {
|
||||||
|
if(verifieLettre(firstLettreChiffre)) caractereDebut = firstLettreChiffre;
|
||||||
|
}
|
||||||
|
|
||||||
|
String str = patternCopy.replaceAll("@", caractereDebut);
|
||||||
int compteur = 0;
|
int compteur = 0;
|
||||||
for (noeud child : tableChild) {
|
for (noeud child : tableChild) {
|
||||||
//Groupes non verrouillés
|
//Groupes non verrouillés
|
||||||
@ -393,7 +434,7 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
if(compteur==tailleDesGroupes) {
|
if(compteur==tailleDesGroupes) {
|
||||||
compteur = 0;
|
compteur = 0;
|
||||||
nombreDeGroupes++;
|
nombreDeGroupes++;
|
||||||
caractere = String.valueOf( (char) ('A' + nombreDeGroupes));
|
String caractere = String.valueOf( (char) (caractereDebut.toCharArray()[0] + nombreDeGroupes));
|
||||||
patternCopy = new String(patternGroupe);
|
patternCopy = new String(patternGroupe);
|
||||||
str = patternCopy.replaceAll("@", caractere);
|
str = patternCopy.replaceAll("@", caractere);
|
||||||
}
|
}
|
||||||
@ -406,7 +447,7 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
if(nombreGroupeDejaPresent>=tailleDesGroupes) {
|
if(nombreGroupeDejaPresent>=tailleDesGroupes) {
|
||||||
do {
|
do {
|
||||||
nombreDeGroupes++;
|
nombreDeGroupes++;
|
||||||
caractere = String.valueOf((char) ('A' + nombreDeGroupes));
|
String caractere = String.valueOf((char) (caractereDebut.toCharArray()[0] + nombreDeGroupes));
|
||||||
patternCopy = new String(patternGroupe);
|
patternCopy = new String(patternGroupe);
|
||||||
str = patternCopy.replaceAll("@", caractere);
|
str = patternCopy.replaceAll("@", caractere);
|
||||||
}while(nFormation.getNumberAttribut(nameGroupe, str)>=tailleDesGroupes);
|
}while(nFormation.getNumberAttribut(nameGroupe, str)>=tailleDesGroupes);
|
||||||
@ -418,16 +459,30 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
sauvegardeXMLBase.save(commandes.nBase,saveType.SANS_MESSAGE,null);
|
sauvegardeXMLBase.save(commandes.nBase,saveType.SANS_MESSAGE,null);
|
||||||
instance.majFiltres();
|
instance.majFiltres();
|
||||||
}else if (patternGroupe.contains("#")) {
|
}else if (patternGroupe.contains("#")) {
|
||||||
patternGroupe = patternGroupe.replaceAll("#", "");
|
String patternCopy = new String(patternGroupe);
|
||||||
|
|
||||||
int nombreDeGroupes = 1;
|
int nombreDeGroupes = 1;
|
||||||
int compteur = 0;
|
int compteur = 0;
|
||||||
String str = patternGroupe + String.valueOf(nombreDeGroupes);
|
|
||||||
|
|
||||||
|
String str = patternCopy.replaceAll("#", String.valueOf(nombreDeGroupes));
|
||||||
|
|
||||||
|
if(!firstLettreChiffre.isEmpty()) {
|
||||||
|
if(verifieChiffre(firstLettreChiffre)) {
|
||||||
|
patternCopy = new String(patternGroupe);
|
||||||
|
nombreDeGroupes = Integer.valueOf(firstLettreChiffre);
|
||||||
|
str = patternCopy.replaceAll("#", firstLettreChiffre);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
for (noeud child : tableChild) {
|
for (noeud child : tableChild) {
|
||||||
if(verrouillageGroupe) {
|
if(!verrouillageGroupe) {
|
||||||
if(compteur==tailleDesGroupes) {
|
if(compteur==tailleDesGroupes) {
|
||||||
compteur = 0;
|
compteur = 0;
|
||||||
nombreDeGroupes++;
|
nombreDeGroupes++;
|
||||||
str = patternGroupe + nombreDeGroupes;
|
patternCopy = new String(patternGroupe);
|
||||||
|
str = patternCopy.replaceAll("#", String.valueOf(nombreDeGroupes));
|
||||||
}
|
}
|
||||||
compteur++;
|
compteur++;
|
||||||
compteurEtudiantInsereDansGroupe++;
|
compteurEtudiantInsereDansGroupe++;
|
||||||
@ -438,7 +493,8 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
if(nombreGroupeDejaPresent>=tailleDesGroupes) {
|
if(nombreGroupeDejaPresent>=tailleDesGroupes) {
|
||||||
do {
|
do {
|
||||||
nombreDeGroupes++;
|
nombreDeGroupes++;
|
||||||
str = patternGroupe + nombreDeGroupes;
|
patternCopy = new String(patternGroupe);
|
||||||
|
str = patternCopy.replaceAll("#", String.valueOf(nombreDeGroupes));
|
||||||
}while(nFormation.getNumberAttribut(nameGroupe, str)>=tailleDesGroupes);
|
}while(nFormation.getNumberAttribut(nameGroupe, str)>=tailleDesGroupes);
|
||||||
}
|
}
|
||||||
compteurEtudiantInsereDansGroupe++;
|
compteurEtudiantInsereDansGroupe++;
|
||||||
@ -521,6 +577,17 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
int optionType = JOptionPane.YES_NO_OPTION;
|
int optionType = JOptionPane.YES_NO_OPTION;
|
||||||
Icon icon = new ImageIcon(Window_demarre.class.getResource("/resources/Danger.png"));
|
Icon icon = new ImageIcon(Window_demarre.class.getResource("/resources/Danger.png"));
|
||||||
|
|
||||||
|
return JOptionPane.showOptionDialog(null, message, title, optionType, JOptionPane.QUESTION_MESSAGE, icon, null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int showCustomDialogErreurPattern() {
|
||||||
|
String message = "<html>Il y a une erreur entre le pattern (@ ou #), et la valeur de début.<br><br>"
|
||||||
|
+ "<b>Si c'est un chiffre ou un nombre (#), saisissez une valeur numérique entière.<br>"
|
||||||
|
+ "Si c'est une lettre (@), saisissez une lettre alphabétique.</b></html>";
|
||||||
|
String title = "Erreur";
|
||||||
|
int optionType = JOptionPane.PLAIN_MESSAGE;
|
||||||
|
Icon icon = new ImageIcon(Window_demarre.class.getResource("/resources/rien_compris.png"));
|
||||||
|
|
||||||
return JOptionPane.showOptionDialog(null, message, title, optionType, JOptionPane.QUESTION_MESSAGE, icon, null, null);
|
return JOptionPane.showOptionDialog(null, message, title, optionType, JOptionPane.QUESTION_MESSAGE, icon, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -544,4 +611,30 @@ public class Window_genere_groupe extends JFrame {
|
|||||||
|
|
||||||
return JOptionPane.showOptionDialog(null, message, title, optionType, JOptionPane.QUESTION_MESSAGE, icon, null, null);
|
return JOptionPane.showOptionDialog(null, message, title, optionType, JOptionPane.QUESTION_MESSAGE, icon, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retourne TRUE si l'utilisateur à saisie une lettre de a à Z en minuscule ou majuscule.
|
||||||
|
* @param chaine
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static boolean verifieLettre(String chaine) {
|
||||||
|
// Pattern pour vérifier si la chaine contient une lettre de A à Z (majuscule ou minuscule)
|
||||||
|
Pattern pattern = Pattern.compile("^[a-zA-Z]$");
|
||||||
|
Matcher matcher = pattern.matcher(chaine);
|
||||||
|
return matcher.matches();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retourne TRUE si l'utilisateur à saisie un chiffre de 0 à 9.
|
||||||
|
* @param chaine
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static boolean verifieChiffre(String chaine) {
|
||||||
|
// Pattern pour vérifier si la chaine contient un chiffre de 0 à 9
|
||||||
|
Pattern pattern = Pattern.compile("^[0-9]{1,2}$");
|
||||||
|
Matcher matcher = pattern.matcher(chaine);
|
||||||
|
return matcher.matches();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -24,6 +24,8 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import javax.swing.BoxLayout;
|
import javax.swing.BoxLayout;
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
@ -92,6 +94,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
private JComboBox<String> cGroupePrincipal;
|
private JComboBox<String> cGroupePrincipal;
|
||||||
private JComboBox<String> cGroupeProjet;
|
private JComboBox<String> cGroupeProjet;
|
||||||
private JComboBox<String> cRegime;
|
private JComboBox<String> cRegime;
|
||||||
|
private JComboBox<String> cCovoiturage;
|
||||||
|
|
||||||
private JCheckBoxMenuItem chckToutesLesColonnes = new JCheckBoxMenuItem("Affiche toutes les colonnes");
|
private JCheckBoxMenuItem chckToutesLesColonnes = new JCheckBoxMenuItem("Affiche toutes les colonnes");
|
||||||
private JCheckBoxMenuItem chckGroupeTD = new JCheckBoxMenuItem("Groupe TD");
|
private JCheckBoxMenuItem chckGroupeTD = new JCheckBoxMenuItem("Groupe TD");
|
||||||
@ -201,14 +204,14 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
scrollPaneTable.setColumnHeaderView(chckbxmntmNewCheckItem);
|
scrollPaneTable.setColumnHeaderView(chckbxmntmNewCheckItem);
|
||||||
|
|
||||||
JPanel panelFiltre = new JPanel();
|
JPanel panelFiltre = new JPanel();
|
||||||
panelFiltre.setPreferredSize(new Dimension(1900, 128));
|
panelFiltre.setPreferredSize(new Dimension(1900, 120));
|
||||||
panelFiltre.setBackground(Color.gray);
|
panelFiltre.setBackground(Color.gray);
|
||||||
|
|
||||||
GridBagLayout gbl_panelFiltre = new GridBagLayout();
|
GridBagLayout gbl_panelFiltre = new GridBagLayout();
|
||||||
gbl_panelFiltre.columnWidths = new int[] {160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160};
|
gbl_panelFiltre.columnWidths = new int[] {160, 80, 180, 180, 180, 180, 180, 180, 180, 160};
|
||||||
gbl_panelFiltre.rowHeights = new int[] {14, 32, 14, 32, 2};
|
gbl_panelFiltre.rowHeights = new int[] {14, 32, 14, 32, 2};
|
||||||
gbl_panelFiltre.columnWeights = new double[]{1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
|
gbl_panelFiltre.columnWeights = new double[]{0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
|
||||||
gbl_panelFiltre.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0};
|
gbl_panelFiltre.rowWeights = new double[]{0.0, 1.0, 0.0, 1.0};
|
||||||
panelFiltre.setLayout(gbl_panelFiltre);
|
panelFiltre.setLayout(gbl_panelFiltre);
|
||||||
|
|
||||||
JLabel lblYears = new JLabel("Année");
|
JLabel lblYears = new JLabel("Année");
|
||||||
@ -316,6 +319,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
cLangueLV1.setSelectedIndex(0);
|
cLangueLV1.setSelectedIndex(0);
|
||||||
cLangueLV2.setSelectedIndex(0);
|
cLangueLV2.setSelectedIndex(0);
|
||||||
cRegime.setSelectedIndex(0);
|
cRegime.setSelectedIndex(0);
|
||||||
|
cCovoiturage.setSelectedIndex(0);
|
||||||
nStudent = null;
|
nStudent = null;
|
||||||
majTable();
|
majTable();
|
||||||
}
|
}
|
||||||
@ -548,6 +552,17 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
gbc_lblRegime.gridy = 2;
|
gbc_lblRegime.gridy = 2;
|
||||||
panelFiltre.add(lblRegime, gbc_lblRegime);
|
panelFiltre.add(lblRegime, gbc_lblRegime);
|
||||||
|
|
||||||
|
JLabel lblCovoiturage = new JLabel("Etudiants en covoiturage");
|
||||||
|
lblCovoiturage.setFont(new Font("Tahoma", Font.BOLD, 12));
|
||||||
|
lblCovoiturage.setHorizontalAlignment(SwingConstants.LEFT);
|
||||||
|
lblCovoiturage.setVerticalAlignment(SwingConstants.TOP);
|
||||||
|
GridBagConstraints gbc_lblCovoiturage = new GridBagConstraints();
|
||||||
|
gbc_lblCovoiturage.anchor = GridBagConstraints.WEST;
|
||||||
|
gbc_lblCovoiturage.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_lblCovoiturage.gridx = 8;
|
||||||
|
gbc_lblCovoiturage.gridy = 2;
|
||||||
|
panelFiltre.add(lblCovoiturage, gbc_lblCovoiturage);
|
||||||
|
|
||||||
GridBagConstraints gbc_cFormations = new GridBagConstraints();
|
GridBagConstraints gbc_cFormations = new GridBagConstraints();
|
||||||
gbc_cFormations.gridwidth = 2;
|
gbc_cFormations.gridwidth = 2;
|
||||||
gbc_cFormations.fill = GridBagConstraints.BOTH;
|
gbc_cFormations.fill = GridBagConstraints.BOTH;
|
||||||
@ -558,7 +573,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
|
|
||||||
JPanel panelNorth = new JPanel();
|
JPanel panelNorth = new JPanel();
|
||||||
contentPane.add(panelNorth, BorderLayout.NORTH);
|
contentPane.add(panelNorth, BorderLayout.NORTH);
|
||||||
panelNorth.setLayout(new BorderLayout(0, 0));
|
panelNorth.setLayout(new BorderLayout(0, 2));
|
||||||
|
|
||||||
JMenuBar menuBar = new JMenuBar();
|
JMenuBar menuBar = new JMenuBar();
|
||||||
|
|
||||||
@ -742,7 +757,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
mnNewMenu.setFont(new Font("Arial", Font.BOLD, 16));
|
mnNewMenu.setFont(new Font("Arial", Font.BOLD, 16));
|
||||||
menuBar.add(mnNewMenu);
|
menuBar.add(mnNewMenu);
|
||||||
|
|
||||||
JMenuItem menueSauvegardeBase = new JMenuItem("Créer une sauvegarde de la base");
|
JMenuItem menueSauvegardeBase = new JMenuItem("<html>Créer une sauvegarde<br>de la base</html>");
|
||||||
menueSauvegardeBase.setIcon(new ImageIcon(Window_gestionnaire.class.getResource("/resources/saveBase.png")));
|
menueSauvegardeBase.setIcon(new ImageIcon(Window_gestionnaire.class.getResource("/resources/saveBase.png")));
|
||||||
menueSauvegardeBase.setFont(new Font("Arial", Font.BOLD, 14));
|
menueSauvegardeBase.setFont(new Font("Arial", Font.BOLD, 14));
|
||||||
mnNewMenu.add(menueSauvegardeBase);
|
mnNewMenu.add(menueSauvegardeBase);
|
||||||
@ -758,7 +773,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
|
|
||||||
mnNewMenu.addSeparator();
|
mnNewMenu.addSeparator();
|
||||||
|
|
||||||
JMenuItem menuSupprimeEtudiantDeLaBase = new JMenuItem("Supprimer de la base l'étudiant sélectionné.");
|
JMenuItem menuSupprimeEtudiantDeLaBase = new JMenuItem("<html>Supprimer de la base l'étudiant<br>sélectionné</html>");
|
||||||
menuSupprimeEtudiantDeLaBase.setIcon(new ImageIcon(Window_gestionnaire.class.getResource("/resources/supprimeStudent.png")));
|
menuSupprimeEtudiantDeLaBase.setIcon(new ImageIcon(Window_gestionnaire.class.getResource("/resources/supprimeStudent.png")));
|
||||||
menuSupprimeEtudiantDeLaBase.setFont(new Font("Arial", Font.BOLD, 14));
|
menuSupprimeEtudiantDeLaBase.setFont(new Font("Arial", Font.BOLD, 14));
|
||||||
mnNewMenu.add(menuSupprimeEtudiantDeLaBase);
|
mnNewMenu.add(menuSupprimeEtudiantDeLaBase);
|
||||||
@ -770,7 +785,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
|
|
||||||
mnNewMenu.addSeparator();
|
mnNewMenu.addSeparator();
|
||||||
|
|
||||||
JMenuItem menuSupprimeFormation = new JMenuItem("Supprime de la base la formation.");
|
JMenuItem menuSupprimeFormation = new JMenuItem("<html>Supprime de la base la formation<br>actuellement sélectionnée</html>");
|
||||||
menuSupprimeFormation.setIcon(new ImageIcon(Window_gestionnaire.class.getResource("/resources/supprimeFormation.png")));
|
menuSupprimeFormation.setIcon(new ImageIcon(Window_gestionnaire.class.getResource("/resources/supprimeFormation.png")));
|
||||||
menuSupprimeFormation.setFont(new Font("Arial", Font.BOLD, 14));
|
menuSupprimeFormation.setFont(new Font("Arial", Font.BOLD, 14));
|
||||||
mnNewMenu.add(menuSupprimeFormation);
|
mnNewMenu.add(menuSupprimeFormation);
|
||||||
@ -782,13 +797,26 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
|
|
||||||
mnNewMenu.addSeparator();
|
mnNewMenu.addSeparator();
|
||||||
|
|
||||||
JMenuItem menuSelectYearDefautl = new JMenuItem("Sélectionner une année universitaire par défaut");
|
JMenuItem menuVerrouilleTousLesGroupesDeLaBase = new JMenuItem("<html>Verouille tous les groupes<br>de toutes les formations de la base</html>");
|
||||||
menuSelectYearDefautl.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 14));
|
menuVerrouilleTousLesGroupesDeLaBase.setIcon(new ImageIcon(Window_gestionnaire.class.getResource("/resources/verrouiller.png")));
|
||||||
mnNewMenu.add(menuSelectYearDefautl);
|
menuVerrouilleTousLesGroupesDeLaBase.setFont(new Font("Arial", Font.BOLD, 14));
|
||||||
|
mnNewMenu.add(menuVerrouilleTousLesGroupesDeLaBase);
|
||||||
|
menuVerrouilleTousLesGroupesDeLaBase.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
VerouillageDeTousLesGroupesDeToutesLesFormationsDeLaBase();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
JMenuItem menuDeverrouilleTousLesGroupesDeLaBase = new JMenuItem("<html>Déverrouille tous les groupes<br>de toutes les formations de la base</html>");
|
||||||
|
menuDeverrouilleTousLesGroupesDeLaBase.setIcon(new ImageIcon(Window_gestionnaire.class.getResource("/resources/deverrouiller.png")));
|
||||||
|
menuDeverrouilleTousLesGroupesDeLaBase.setFont(new Font("Arial", Font.BOLD, 14));
|
||||||
|
mnNewMenu.add(menuDeverrouilleTousLesGroupesDeLaBase);
|
||||||
|
menuDeverrouilleTousLesGroupesDeLaBase.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
DeverouillageDeTousLesGroupesDeToutesLesFormationsDeLaBase();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
JMenuItem menuCreateYearDefault = new JMenuItem("Créer une année universitaire");
|
|
||||||
menuCreateYearDefault.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 14));
|
|
||||||
mnNewMenu.add(menuCreateYearDefault);
|
|
||||||
|
|
||||||
JMenu menuGroupe = new JMenu("Protection des groupes");
|
JMenu menuGroupe = new JMenu("Protection des groupes");
|
||||||
menuGroupe.setFont(new Font("Arial", Font.BOLD, 16));
|
menuGroupe.setFont(new Font("Arial", Font.BOLD, 16));
|
||||||
@ -981,6 +1009,20 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
JMenu menuCovoiturage = new JMenu("Covoiturage");
|
||||||
|
menuCovoiturage.setFont(new Font("Arial", Font.BOLD, 16));
|
||||||
|
menuBar.add(menuCovoiturage);
|
||||||
|
|
||||||
|
JMenuItem menuCovoiturageTousLesGroupes = new JMenuItem("<html>Verification des covoiturages<br>dans cette formation</html>");
|
||||||
|
menuCovoiturageTousLesGroupes.setIcon(new ImageIcon(Window_gestionnaire.class.getResource("/resources/covoiturage.png")));
|
||||||
|
menuCovoiturageTousLesGroupes.setFont(new Font("Arial", Font.BOLD, 14));
|
||||||
|
menuCovoiturage.add(menuCovoiturageTousLesGroupes);
|
||||||
|
menuCovoiturageTousLesGroupes.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
verificationCovoiturageTousLesGroupes();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
JScrollPane scrollPaneFiltre = new JScrollPane(panelFiltre);
|
JScrollPane scrollPaneFiltre = new JScrollPane(panelFiltre);
|
||||||
@ -1011,7 +1053,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
cLangueLV2 = new JComboBox<String>();
|
cLangueLV2 = new JComboBox<String>();
|
||||||
GridBagConstraints gbc_cLangueLV2 = new GridBagConstraints();
|
GridBagConstraints gbc_cLangueLV2 = new GridBagConstraints();
|
||||||
gbc_cLangueLV2.insets = new Insets(0, 0, 5, 5);
|
gbc_cLangueLV2.insets = new Insets(0, 0, 5, 5);
|
||||||
gbc_cLangueLV2.fill = GridBagConstraints.HORIZONTAL;
|
gbc_cLangueLV2.fill = GridBagConstraints.BOTH;
|
||||||
gbc_cLangueLV2.gridx = 3;
|
gbc_cLangueLV2.gridx = 3;
|
||||||
gbc_cLangueLV2.gridy = 3;
|
gbc_cLangueLV2.gridy = 3;
|
||||||
panelFiltre.add(cLangueLV2, gbc_cLangueLV2);
|
panelFiltre.add(cLangueLV2, gbc_cLangueLV2);
|
||||||
@ -1057,7 +1099,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
|
|
||||||
GridBagConstraints gbc_cGroupeTP = new GridBagConstraints();
|
GridBagConstraints gbc_cGroupeTP = new GridBagConstraints();
|
||||||
gbc_cGroupeTP.insets = new Insets(0, 0, 5, 5);
|
gbc_cGroupeTP.insets = new Insets(0, 0, 5, 5);
|
||||||
gbc_cGroupeTP.fill = GridBagConstraints.HORIZONTAL;
|
gbc_cGroupeTP.fill = GridBagConstraints.BOTH;
|
||||||
gbc_cGroupeTP.gridx = 5;
|
gbc_cGroupeTP.gridx = 5;
|
||||||
gbc_cGroupeTP.gridy = 3;
|
gbc_cGroupeTP.gridy = 3;
|
||||||
panelFiltre.add(cGroupeTP, gbc_cGroupeTP);
|
panelFiltre.add(cGroupeTP, gbc_cGroupeTP);
|
||||||
@ -1096,6 +1138,23 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
cCovoiturage = new JComboBox<String>();
|
||||||
|
GridBagConstraints gbc_cCovoiturage = new GridBagConstraints();
|
||||||
|
gbc_cCovoiturage.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_cCovoiturage.fill = GridBagConstraints.BOTH;
|
||||||
|
gbc_cCovoiturage.gridx = 8;
|
||||||
|
gbc_cCovoiturage.gridy = 3;
|
||||||
|
panelFiltre.add(cCovoiturage, gbc_cCovoiturage);
|
||||||
|
cCovoiturage.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
if(!ignoreComboChange) {
|
||||||
|
majTable();
|
||||||
|
ignoreComboChange=false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
JPanel panelSouth = new JPanel();
|
JPanel panelSouth = new JPanel();
|
||||||
panelSouth.setPreferredSize(new Dimension(1920, 60));
|
panelSouth.setPreferredSize(new Dimension(1920, 60));
|
||||||
panelSouth.setBackground(Color.gray);
|
panelSouth.setBackground(Color.gray);
|
||||||
@ -1223,6 +1282,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
String selectedGroupePrincipal = null;
|
String selectedGroupePrincipal = null;
|
||||||
String selectedGroupeProjet = null;
|
String selectedGroupeProjet = null;
|
||||||
String selectedRegime = null;
|
String selectedRegime = null;
|
||||||
|
String selectedCovoiturage = null;
|
||||||
|
|
||||||
if(cGroupeTD.getItemCount()>0) selectedGroupeTD = cGroupeTD.getSelectedItem().toString();
|
if(cGroupeTD.getItemCount()>0) selectedGroupeTD = cGroupeTD.getSelectedItem().toString();
|
||||||
if(cGroupeTP.getItemCount()>0) selectedGroupeTP = cGroupeTP.getSelectedItem().toString();
|
if(cGroupeTP.getItemCount()>0) selectedGroupeTP = cGroupeTP.getSelectedItem().toString();
|
||||||
@ -1236,6 +1296,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
if(cGroupePrincipal.getItemCount()>0) selectedGroupePrincipal = cGroupePrincipal.getSelectedItem().toString();
|
if(cGroupePrincipal.getItemCount()>0) selectedGroupePrincipal = cGroupePrincipal.getSelectedItem().toString();
|
||||||
if(cGroupeProjet.getItemCount()>0) selectedGroupeProjet = cGroupeProjet.getSelectedItem().toString();
|
if(cGroupeProjet.getItemCount()>0) selectedGroupeProjet = cGroupeProjet.getSelectedItem().toString();
|
||||||
if(cRegime.getItemCount()>0) selectedRegime = cRegime.getSelectedItem().toString();
|
if(cRegime.getItemCount()>0) selectedRegime = cRegime.getSelectedItem().toString();
|
||||||
|
if(cCovoiturage.getItemCount()>0) selectedCovoiturage = cCovoiturage.getSelectedItem().toString();
|
||||||
|
|
||||||
ignoreComboChange=true;
|
ignoreComboChange=true;
|
||||||
cGroupeTD.removeAllItems();
|
cGroupeTD.removeAllItems();
|
||||||
@ -1250,6 +1311,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
cGroupePrincipal.removeAllItems();
|
cGroupePrincipal.removeAllItems();
|
||||||
cGroupeProjet.removeAllItems();
|
cGroupeProjet.removeAllItems();
|
||||||
cRegime.removeAllItems();
|
cRegime.removeAllItems();
|
||||||
|
cCovoiturage.removeAllItems();
|
||||||
ignoreComboChange=false;
|
ignoreComboChange=false;
|
||||||
|
|
||||||
|
|
||||||
@ -1265,6 +1327,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
List<String> lGroupePrincipal = new ArrayList<String>();
|
List<String> lGroupePrincipal = new ArrayList<String>();
|
||||||
List<String> lGroupeProjet = new ArrayList<String>();
|
List<String> lGroupeProjet = new ArrayList<String>();
|
||||||
List<String> lRegime = new ArrayList<String>();
|
List<String> lRegime = new ArrayList<String>();
|
||||||
|
List<String> lCovoiturage = new ArrayList<String>();
|
||||||
|
|
||||||
String pasChoisi = " - ";
|
String pasChoisi = " - ";
|
||||||
|
|
||||||
@ -1284,6 +1347,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
String GroupePrincipal = nStudent.getAttributes("Groupe_Principal");
|
String GroupePrincipal = nStudent.getAttributes("Groupe_Principal");
|
||||||
String GroupeProjet = nStudent.getAttributes("Groupe_Projet");
|
String GroupeProjet = nStudent.getAttributes("Groupe_Projet");
|
||||||
String Regime = nStudent.getAttributes("Regime");
|
String Regime = nStudent.getAttributes("Regime");
|
||||||
|
String Covoiturage = nStudent.getAttributes("Etudiant_Covoiturage");
|
||||||
|
|
||||||
boolean isOnlySpaces = GroupeTD.matches("\\s+");
|
boolean isOnlySpaces = GroupeTD.matches("\\s+");
|
||||||
if(!lGroupeTD.contains(GroupeTD) && !isOnlySpaces) {
|
if(!lGroupeTD.contains(GroupeTD) && !isOnlySpaces) {
|
||||||
@ -1333,6 +1397,10 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
if(!lRegime.contains(Regime) && !isOnlySpaces) {
|
if(!lRegime.contains(Regime) && !isOnlySpaces) {
|
||||||
lRegime.add(Regime);
|
lRegime.add(Regime);
|
||||||
}
|
}
|
||||||
|
isOnlySpaces = Covoiturage.matches("\\s+");
|
||||||
|
if(!lCovoiturage.contains(Covoiturage) && !isOnlySpaces) {
|
||||||
|
lCovoiturage.add(Covoiturage);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1444,6 +1512,16 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
if(selectedRegime!=null)if(lRegime.contains(selectedRegime)) {
|
if(selectedRegime!=null)if(lRegime.contains(selectedRegime)) {
|
||||||
cRegime.setSelectedItem(selectedRegime);
|
cRegime.setSelectedItem(selectedRegime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Collections.sort(lCovoiturage);
|
||||||
|
cCovoiturage.addItem(pasChoisi);
|
||||||
|
for (String option : lCovoiturage) {
|
||||||
|
cCovoiturage.addItem(option);
|
||||||
|
}
|
||||||
|
if(selectedCovoiturage!=null)if(lCovoiturage.contains(selectedCovoiturage)) {
|
||||||
|
cCovoiturage.setSelectedItem(selectedCovoiturage);
|
||||||
|
}
|
||||||
|
|
||||||
ignoreComboChange = false;
|
ignoreComboChange = false;
|
||||||
majTable();
|
majTable();
|
||||||
}
|
}
|
||||||
@ -1473,6 +1551,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
String GroupePrincipal = (String) cGroupePrincipal.getSelectedItem();
|
String GroupePrincipal = (String) cGroupePrincipal.getSelectedItem();
|
||||||
String GroupeProjet = (String) cGroupeProjet.getSelectedItem();
|
String GroupeProjet = (String) cGroupeProjet.getSelectedItem();
|
||||||
String Regime = (String) cRegime.getSelectedItem();
|
String Regime = (String) cRegime.getSelectedItem();
|
||||||
|
String Covoiturage = (String) cCovoiturage.getSelectedItem();
|
||||||
|
|
||||||
// le noeud table
|
// le noeud table
|
||||||
nTable = new noeud("Table");
|
nTable = new noeud("Table");
|
||||||
@ -1513,6 +1592,9 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
nTable.setAttribut("Regime", Regime);
|
nTable.setAttribut("Regime", Regime);
|
||||||
nTable.setAttribut("isRegime", "true");
|
nTable.setAttribut("isRegime", "true");
|
||||||
if(Regime.equals(pasChoisi) || Regime.isEmpty()) nTable.setAttribut("isRegime", "false");
|
if(Regime.equals(pasChoisi) || Regime.isEmpty()) nTable.setAttribut("isRegime", "false");
|
||||||
|
nTable.setAttribut("Covoiturage", Covoiturage);
|
||||||
|
nTable.setAttribut("isCovoiturage", "true");
|
||||||
|
if(Covoiturage.equals(pasChoisi) || Covoiturage.isEmpty()) nTable.setAttribut("isCovoiturage", "false");
|
||||||
|
|
||||||
|
|
||||||
Map<String, Integer> headTable = new HashMap<>();
|
Map<String, Integer> headTable = new HashMap<>();
|
||||||
@ -1585,7 +1667,8 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
|
|
||||||
|
|
||||||
if(!searchStudent || (searchStudent&&containNameStudent)) {
|
if(!searchStudent || (searchStudent&&containNameStudent)) {
|
||||||
if( ( nStudent.getAttributes("Groupe_TP").equals(GroupeTP) || GroupeTP.equals(pasChoisi) )
|
if( ( nStudent.getAttributes("Etudiant_Covoiturage").equals(Covoiturage) || Covoiturage.equals(pasChoisi) )
|
||||||
|
&& ( nStudent.getAttributes("Groupe_TP").equals(GroupeTP) || GroupeTP.equals(pasChoisi) )
|
||||||
&& ( nStudent.getAttributes("Regime").equals(Regime) || Regime.equals(pasChoisi) )
|
&& ( nStudent.getAttributes("Regime").equals(Regime) || Regime.equals(pasChoisi) )
|
||||||
&& ( nStudent.getAttributes("Groupe_Projet").equals(GroupeProjet) || GroupeProjet.equals(pasChoisi) )
|
&& ( nStudent.getAttributes("Groupe_Projet").equals(GroupeProjet) || GroupeProjet.equals(pasChoisi) )
|
||||||
&& ( nStudent.getAttributes("Groupe_Principal").equals(GroupePrincipal) || GroupePrincipal.equals(pasChoisi) )
|
&& ( nStudent.getAttributes("Groupe_Principal").equals(GroupePrincipal) || GroupePrincipal.equals(pasChoisi) )
|
||||||
@ -1693,13 +1776,39 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
modificationInterdite=true;
|
modificationInterdite=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
String value = (String) table.getValueAt(row, column);
|
||||||
|
|
||||||
|
if( key.equals("Etudiant_Covoiturage")&&!value.isEmpty()) {
|
||||||
|
String regex = "\\b(?:cov\\s\\d+-\\s)*(?:TOUS|PRIN|TD|TP|PROJET|INFO|DOC|LV1|LV2)\\b";
|
||||||
|
|
||||||
|
Pattern pattern = Pattern.compile(regex);
|
||||||
|
Matcher matcher = pattern.matcher(value);
|
||||||
|
|
||||||
|
if (matcher.find()) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
JOptionPane.showMessageDialog(null, "<html><h2>Création d'un code de covoiturage</h2>"
|
||||||
|
+ "<p>Pour créer un code de covoiturage, veuillez respecter le pattern ci-dessous :</p>"
|
||||||
|
+ "<p>Le code \"<b>cov</b>\" doit être suivi d'un nombre, puis d'un tiret, et enfin d'au moins un code de groupe parmi :<br>"
|
||||||
|
+ "<b>TOUS, PRIN, TD, TP, INFO, DOC, LV1, LV2, PROJET</b>.</p><br>"
|
||||||
|
+ "<p>Exemple : <b>cov 51 - LV1 TD</b></p>"
|
||||||
|
+ "<p>Ce code indique que les étudiants doivent être dans les mêmes groupes de LV1 et de TD.</p>"
|
||||||
|
+ "<p>Si vous utilisez le code de groupe \"<b>TOUS</b>\", alors les étudiants doivent être dans les mêmes groupes partout à la fois.</p>"
|
||||||
|
+ "</html>\r\n"
|
||||||
|
+ "", "Erreur", JOptionPane.ERROR_MESSAGE);
|
||||||
|
modificationInterdite=true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(modificationInterdite) {
|
if(modificationInterdite) {
|
||||||
majFiltres();
|
majFiltres();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String value = (String) table.getValueAt(row, column);
|
|
||||||
|
|
||||||
// Obtenir l'indice de la colonne "Individu_-_Code_Etudiant"
|
// Obtenir l'indice de la colonne "Individu_-_Code_Etudiant"
|
||||||
int columnIndex = table.getColumnModel().getColumnIndex(commandes.nomColonneCodeEtudiant);
|
int columnIndex = table.getColumnModel().getColumnIndex(commandes.nomColonneCodeEtudiant);
|
||||||
String numeroEtudiant = (String) table.getModel().getValueAt(row, columnIndex);
|
String numeroEtudiant = (String) table.getModel().getValueAt(row, columnIndex);
|
||||||
@ -1945,7 +2054,7 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
// Afficher une boîte de dialogue d'entrée
|
// Afficher une boîte de dialogue d'entrée
|
||||||
String userInput = JOptionPane.showInputDialog(null, "<html>Veuillez saisir le code : <b>" + code + "</b><br><br>"
|
String userInput = JOptionPane.showInputDialog(null, "<html>Veuillez saisir le code : <b>" + code + "</b><br><br>"
|
||||||
+"Une sauvegarde dans l'archive (ZIP) sera créée avant suppression de la formation.<br>"
|
+"Une sauvegarde dans l'archive (ZIP) sera créée avant suppression de la formation.<br>"
|
||||||
+"Après la suppression, le gestionnaire de la base va se refermer.");
|
+"Après la suppression, le gestionnaire de la base va se refermer.</html>");
|
||||||
|
|
||||||
// Vérifier si l'utilisateur a cliqué sur OK ou Annuler
|
// Vérifier si l'utilisateur a cliqué sur OK ou Annuler
|
||||||
if (userInput != null) {
|
if (userInput != null) {
|
||||||
@ -2299,4 +2408,103 @@ public class Window_gestionnaire extends JFrame {
|
|||||||
return nTable;
|
return nTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void VerouillageDeTousLesGroupesDeToutesLesFormationsDeLaBase() {
|
||||||
|
for(noeud nFormation : commandes.nBase.getFirstChild().getChildren()) {
|
||||||
|
nFormation.setAttribut("Verouillage_Tous_Les_Groupes", "true");
|
||||||
|
}
|
||||||
|
majAffichageDesChck();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DeverouillageDeTousLesGroupesDeToutesLesFormationsDeLaBase() {
|
||||||
|
for(noeud nFormation : commandes.nBase.getFirstChild().getChildren()) {
|
||||||
|
nFormation.setAttribut("Verouillage_Tous_Les_Groupes", "false");
|
||||||
|
}
|
||||||
|
majAffichageDesChck();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void verificationCovoiturageTousLesGroupes() {
|
||||||
|
int itemCount = cCovoiturage.getItemCount();
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
for (int i = 0; i < itemCount; i++) {
|
||||||
|
|
||||||
|
String itemCovoiturage = cCovoiturage.getItemAt(i);
|
||||||
|
if(itemCovoiturage.isEmpty() || itemCovoiturage.equals(" - ") ) continue;
|
||||||
|
|
||||||
|
boolean problem = false;
|
||||||
|
boolean first = false;
|
||||||
|
String Groupe_Principal = "";
|
||||||
|
String Groupe_TD = "";
|
||||||
|
String Groupe_Informatique = "";
|
||||||
|
String Groupe_Documentation = "";
|
||||||
|
String Groupe_LV1 = "";
|
||||||
|
String Groupe_LV2 = "";
|
||||||
|
String Groupe_Projet = "";
|
||||||
|
String Groupe_TP = "";
|
||||||
|
|
||||||
|
List<noeud> lChild = commandes.nBase.getChildrenContainAttributeWithValue("Etudiant_Covoiturage", itemCovoiturage);
|
||||||
|
for(noeud child : lChild) {
|
||||||
|
if(child.getAttributes("Covoiturage").equalsIgnoreCase("oui")){
|
||||||
|
if(!first) {
|
||||||
|
Groupe_Principal = child.getAttributes("Groupe_Principal");
|
||||||
|
Groupe_TD = child.getAttributes("Groupe_TD");
|
||||||
|
Groupe_Informatique = child.getAttributes("Groupe_Informatique");
|
||||||
|
Groupe_Documentation = child.getAttributes("Groupe_Doc");
|
||||||
|
Groupe_LV1 = child.getAttributes("Groupe_LV1");
|
||||||
|
Groupe_LV2 = child.getAttributes("Groupe_LV2");
|
||||||
|
Groupe_Projet = child.getAttributes("Groupe_Projet");
|
||||||
|
Groupe_TP = child.getAttributes("Groupe_TP");
|
||||||
|
first=true;
|
||||||
|
}else {
|
||||||
|
if(!problem) {
|
||||||
|
if(!Groupe_Principal.equals(child.getAttributes("Groupe_Principal"))&&(itemCovoiturage.contains("PRIN")||itemCovoiturage.contains("TOUS"))) {
|
||||||
|
problem=true;
|
||||||
|
}
|
||||||
|
if(!Groupe_TD.equals(child.getAttributes("Groupe_TD"))&&(itemCovoiturage.contains("TD")||itemCovoiturage.contains("TOUS"))) {
|
||||||
|
problem=true;
|
||||||
|
}
|
||||||
|
if(!Groupe_Informatique.equals(child.getAttributes("Groupe_Informatique"))&&(itemCovoiturage.contains("INFO")||itemCovoiturage.contains("TOUS"))) {
|
||||||
|
problem=true;
|
||||||
|
}
|
||||||
|
if(!Groupe_Documentation.equals(child.getAttributes("Groupe_Doc"))&&(itemCovoiturage.contains("DOC")||itemCovoiturage.contains("TOUS"))) {
|
||||||
|
problem=true;
|
||||||
|
}
|
||||||
|
if(!Groupe_LV1.equals(child.getAttributes("Groupe_LV1"))&&(itemCovoiturage.contains("LV1")||itemCovoiturage.contains("TOUS"))) {
|
||||||
|
problem=true;
|
||||||
|
}
|
||||||
|
if(!Groupe_LV2.equals(child.getAttributes("Groupe_LV2"))&&(itemCovoiturage.contains("LV2")||itemCovoiturage.contains("TOUS"))) {
|
||||||
|
problem=true;
|
||||||
|
}
|
||||||
|
if(!Groupe_Projet.equals(child.getAttributes("Groupe_Projet"))&&(itemCovoiturage.contains("PROJET")||itemCovoiturage.contains("TOUS"))) {
|
||||||
|
problem=true;
|
||||||
|
}
|
||||||
|
if(!Groupe_TP.equals(child.getAttributes("Groupe_TP"))&&(itemCovoiturage.contains("TP")||itemCovoiturage.contains("TOUS"))) {
|
||||||
|
problem=true;
|
||||||
|
}
|
||||||
|
if(problem) {
|
||||||
|
sb.append("Il y a un problème avec le covoiturage étudiant. Code : " + itemCovoiturage + "<br>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sb.toString().isEmpty()) {
|
||||||
|
JOptionPane.showMessageDialog(null, "Pas de souci avec les covoiturages.");
|
||||||
|
}else {
|
||||||
|
String message = "<html>" + sb.toString() + "</html>";
|
||||||
|
JOptionPane.showMessageDialog(null, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ public class base {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
JPanel panel = new JPanel();
|
JPanel panel = new JPanel();
|
||||||
JLabel message = new JLabel("<html><p>Le format est valide, la première année n'est pas inférieure à la seconde année d'une année.</p>"
|
JLabel message = new JLabel("<html><p>Le format est invalide, la première année n'est pas inférieure à la seconde année d'une année.</p>"
|
||||||
+ "<p>Exemple de format : 2023-2024</p></html>");
|
+ "<p>Exemple de format : 2023-2024</p></html>");
|
||||||
panel.add(message);
|
panel.add(message);
|
||||||
JOptionPane.showMessageDialog(null, panel, "Erreur", JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(null, panel, "Erreur", JOptionPane.ERROR_MESSAGE);
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gestion_version;
|
package gestion_version;
|
||||||
|
|
||||||
|
import java.awt.Font;
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
@ -8,8 +9,12 @@ import java.net.URL;
|
|||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
import javax.swing.Icon;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
|
import javax.swing.UIManager;
|
||||||
|
|
||||||
|
import Windows.Window_demarre;
|
||||||
import base.NomDeColonneInscriptionTable;
|
import base.NomDeColonneInscriptionTable;
|
||||||
import base.recupeBases;
|
import base.recupeBases;
|
||||||
import base.sauvegardeXMLBase;
|
import base.sauvegardeXMLBase;
|
||||||
@ -71,11 +76,7 @@ public class VersionChecker {
|
|||||||
|
|
||||||
// Conversion en nombre entier
|
// Conversion en nombre entier
|
||||||
String numericString = match.replaceAll("[^\\d.]", "");
|
String numericString = match.replaceAll("[^\\d.]", "");
|
||||||
// int versionIntegerIntoForge = Integer.parseInt(numericString.replace(".", ""));
|
|
||||||
// if(versionIntegerIntoForge>versionIntegerApplication) {
|
|
||||||
// System.out.println("Une nouvelle version est disponible !");
|
|
||||||
// commandes.newVersion = true;
|
|
||||||
// }
|
|
||||||
|
|
||||||
versionMax = versionNombre(numericString);
|
versionMax = versionNombre(numericString);
|
||||||
|
|
||||||
@ -117,6 +118,13 @@ public class VersionChecker {
|
|||||||
commandes.newVersion = false;
|
commandes.newVersion = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deblocage de l'application
|
||||||
|
pattern ="noMessageAlerte";
|
||||||
|
regex = Pattern.compile(pattern);
|
||||||
|
matcher = regex.matcher(content);
|
||||||
|
if(matcher.find()) {
|
||||||
|
commandes.noMessageAlerte = true;
|
||||||
|
}
|
||||||
|
|
||||||
pattern = "messageVersion-(.*?)-messageVersion";
|
pattern = "messageVersion-(.*?)-messageVersion";
|
||||||
regex = Pattern.compile(pattern);
|
regex = Pattern.compile(pattern);
|
||||||
@ -144,7 +152,8 @@ public class VersionChecker {
|
|||||||
// Récupérer le texte entre les balises messageAlerte
|
// Récupérer le texte entre les balises messageAlerte
|
||||||
// -br- retour à la ligne
|
// -br- retour à la ligne
|
||||||
// -b- et -/b- en gras
|
// -b- et -/b- en gras
|
||||||
// -u- et -/u- soiligné
|
// -u- et -/u- souligné
|
||||||
|
//
|
||||||
commandes.messageAlerte = matcher.group(1);
|
commandes.messageAlerte = matcher.group(1);
|
||||||
commandes.messageAlerte = commandes.messageAlerte.replaceAll("-br-", "<br>").replaceAll("-b-", "<b>").replaceAll("-/b-", "</b>").replaceAll("-u-", "<u>").replaceAll("-/u-", "</u>")
|
commandes.messageAlerte = commandes.messageAlerte.replaceAll("-br-", "<br>").replaceAll("-b-", "<b>").replaceAll("-/b-", "</b>").replaceAll("-u-", "<u>").replaceAll("-/u-", "</u>")
|
||||||
.replaceAll("-h1-", "<h1>").replaceAll("-/h1-", "</h1>").replaceAll("-h2-", "<h2>").replaceAll("-/h2-", "</h2>").replaceAll("-p-", "<p>").replaceAll("-/p-", "</p>");
|
.replaceAll("-h1-", "<h1>").replaceAll("-/h1-", "</h1>").replaceAll("-h2-", "<h2>").replaceAll("-/h2-", "</h2>").replaceAll("-p-", "<p>").replaceAll("-/p-", "</p>");
|
||||||
@ -152,9 +161,7 @@ public class VersionChecker {
|
|||||||
|
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
JOptionPane.showMessageDialog(null, "<html><h2>Pas de connexion internet.</h2><br>"
|
showCustomMessagePasInternet();
|
||||||
+ "Impossible de vérifier si une nouvelle version est disponible.<br>"
|
|
||||||
+ "Impossible d'afficher le message d'information, s'il est disponible</ul>.</html>");
|
|
||||||
commandes.pasDeConnexion=true;
|
commandes.pasDeConnexion=true;
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -289,6 +296,28 @@ public class VersionChecker {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Message erreur pas de connexion internet
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static int showCustomMessagePasInternet() {
|
||||||
|
String message = "<html><h2>Pas de connexion internet.</h2><br>"
|
||||||
|
+ "<p>Impossible de vérifier si une nouvelle version est disponible.<br>"
|
||||||
|
+ "Impossible d'afficher le message d'information, s'il est disponible</p>.</html>";
|
||||||
|
String title = "Pas de connexion internet";
|
||||||
|
int optionType = JOptionPane.PLAIN_MESSAGE ;
|
||||||
|
Icon icon = new ImageIcon(Window_demarre.class.getResource("/resources/erreur404.png"));
|
||||||
|
|
||||||
|
// Define the custom font
|
||||||
|
Font customFont = new Font("Arial", Font.BOLD, 14);
|
||||||
|
|
||||||
|
// Set the custom font for the message
|
||||||
|
UIManager.put("OptionPane.messageFont", customFont);
|
||||||
|
|
||||||
|
return JOptionPane.showOptionDialog(null, message, title, optionType, JOptionPane.QUESTION_MESSAGE, icon, null, null);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mise à jour de la version 1.0.2 vers 1.0.3
|
* Mise à jour de la version 1.0.2 vers 1.0.3
|
||||||
* @param nBase
|
* @param nBase
|
||||||
@ -399,7 +428,6 @@ public class VersionChecker {
|
|||||||
}
|
}
|
||||||
nFormation.triAlphabetiqueDesEnfants(commandes.nomColonneNomEtudiant);
|
nFormation.triAlphabetiqueDesEnfants(commandes.nomColonneNomEtudiant);
|
||||||
}
|
}
|
||||||
|
|
||||||
return nBase;
|
return nBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -452,6 +480,8 @@ public class VersionChecker {
|
|||||||
nFormation.setAttribut("pattern_Groupe_TP", "groupe TP n°#");
|
nFormation.setAttribut("pattern_Groupe_TP", "groupe TP n°#");
|
||||||
nFormation.setAttribut("nombre_Student_Groupe_TP", "24");
|
nFormation.setAttribut("nombre_Student_Groupe_TP", "24");
|
||||||
nFormation.setAttribut("aleatoire_Groupe_TP", "false");
|
nFormation.setAttribut("aleatoire_Groupe_TP", "false");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return nBase;
|
return nBase;
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ public class commandes {
|
|||||||
|
|
||||||
public static noeud nBase = null; // La base de données sous forme de noeud.
|
public static noeud nBase = null; // La base de données sous forme de noeud.
|
||||||
public static String version = "1.0.6"; // La version actuelle
|
public static String version = "1.0.6"; // La version actuelle
|
||||||
public static String dateversion = "25 juillet 2023"; // La version actuelle
|
public static String dateversion = "2 aout 2023"; // La version actuelle
|
||||||
|
|
||||||
// Les colonnes obligatoires dû à l'inscription des étudaints.
|
// Les colonnes obligatoires dû à l'inscription des étudaints.
|
||||||
// nom des colonnes après traitement des caractères (Accès à la base XML)
|
// nom des colonnes après traitement des caractères (Accès à la base XML)
|
||||||
@ -50,6 +50,7 @@ public class commandes {
|
|||||||
public static Boolean helpme1 = false; //M'aider à compléter mon service annuel.
|
public static Boolean helpme1 = false; //M'aider à compléter mon service annuel.
|
||||||
public static Boolean blocageApplication = false; //Blocage total de l'application. L'attribut bapp = true est enregistré dans la base.
|
public static Boolean blocageApplication = false; //Blocage total de l'application. L'attribut bapp = true est enregistré dans la base.
|
||||||
public static Boolean pasDeConnexion = false; //Pas de connexion internet.
|
public static Boolean pasDeConnexion = false; //Pas de connexion internet.
|
||||||
|
public static Boolean noMessageAlerte = false; //Pas de message d'alerte
|
||||||
public static String messageAlerte = ""; //Message alerte
|
public static String messageAlerte = ""; //Message alerte
|
||||||
public static String messageVersion = ""; //Message version
|
public static String messageVersion = ""; //Message version
|
||||||
|
|
||||||
|
@ -782,6 +782,55 @@ public class noeud implements Cloneable{
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retourne le premier noeud ayant l'attibut nameAttribut et ayant la valeur value.<br>
|
||||||
|
* @param nameAttribut
|
||||||
|
* @param value
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public noeud getChildContainAttributWithValue(String nameAttribut, String value){
|
||||||
|
if(hasChildren()) {
|
||||||
|
for (noeud child : children) {
|
||||||
|
if(child.getAttributes().containsKey(nameAttribut)) {
|
||||||
|
if(child.getAttributes().get(nameAttribut).equals(value)) return child;
|
||||||
|
}
|
||||||
|
if(child.getChildren().size()>0) {
|
||||||
|
noeud child_child = child.getChildContainAttributWithValue(nameAttribut,value);
|
||||||
|
if(child_child!=null) {
|
||||||
|
if(child_child.getAttributes().get(nameAttribut).equals(value)) return child_child;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Retourne la liste des noeuds contenant un attribut nameAttribut ayant comme valeur value.<br>
|
||||||
|
* @param nameAttribut
|
||||||
|
* @param value
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<noeud> getChildrenContainAttributeWithValue(String nameAttribut, String value) {
|
||||||
|
List<noeud> ListChildren = new ArrayList<>();
|
||||||
|
if(this.getAttributes().containsKey(nameAttribut)) {
|
||||||
|
if(this.getAttributes().get(nameAttribut).equals(value)) ListChildren.add(this);
|
||||||
|
}
|
||||||
|
if(hasChildren()) {
|
||||||
|
for (noeud child : children) {
|
||||||
|
if(child.getAttributes().containsKey(nameAttribut)) {
|
||||||
|
if(child.getAttributes().get(nameAttribut).equals(value)) ListChildren.add(child);
|
||||||
|
}
|
||||||
|
for (noeud child_child : child.getChildren()) {
|
||||||
|
List<noeud> ListChildren2 = child_child.getChildrenContainAttributeWithValue( nameAttribut,value);
|
||||||
|
if(ListChildren2!=null) ListChildren.addAll(ListChildren2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(ListChildren.size()>0) return ListChildren;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retourne le premier noeud dont le contenu textuel est identique au String searchContent.<br>
|
* Retourne le premier noeud dont le contenu textuel est identique au String searchContent.<br>
|
||||||
* Si ne trouve pas retourne un null.
|
* Si ne trouve pas retourne un null.
|
||||||
@ -1102,6 +1151,39 @@ public class noeud implements Cloneable{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retourne le chemin depuis le premier node.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getAllNameParents() {
|
||||||
|
if(this.Parent!=null) {
|
||||||
|
return this.Parent.getAllNameParents() + "/" + this.Parent.getName();
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int a = name.hashCode();
|
||||||
|
int b=0;
|
||||||
|
if(Parent!=null) {
|
||||||
|
b = this.Parent.getAllNameParents().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
int e = attributes.hashCode();
|
||||||
|
int f = content.hashCode();
|
||||||
|
int g = 0;
|
||||||
|
String hashG = "";
|
||||||
|
for(noeud child : children) {
|
||||||
|
hashG = hashG + String.valueOf(child.hashCode());
|
||||||
|
}
|
||||||
|
if(!hashG.isEmpty()) g = hashG.hashCode();
|
||||||
|
String H = (String.valueOf(a)+String.valueOf(b)+String.valueOf(e)+String.valueOf(f)+String.valueOf(g));
|
||||||
|
return H.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Trie par ordre alphabétique les noeuds en indiquant le nom de l'attribut qu'il doit trier.
|
* Trie par ordre alphabétique les noeuds en indiquant le nom de l'attribut qu'il doit trier.
|
||||||
* @param nameAttribut
|
* @param nameAttribut
|
||||||
|
BIN
src/resources/covoiturage.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
src/resources/deverrouiller.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
src/resources/erreur404.png
Normal file
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 9.5 KiB |
BIN
src/resources/rien_compris.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
src/resources/verrouiller.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
src/resources/wiki_bouton.png
Normal file
After Width: | Height: | Size: 21 KiB |