Maj V1.06

This commit is contained in:
pablo rodriguez 2023-07-30 17:11:57 +02:00
parent d93bdad582
commit a62bcc40c6
6 changed files with 85 additions and 85 deletions

View File

@ -4,6 +4,7 @@ import java.awt.Color;
import java.awt.Desktop;
import java.awt.Font;
import java.awt.Image;
import java.awt.SystemColor;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@ -39,7 +40,6 @@ import gestion_version.VersionChecker;
import importations.importAllBaseToExcel;
import outils.FileChooserXLSX;
import outils.commandes;
import java.awt.SystemColor;
public class Window_demarre extends JFrame {
@ -50,13 +50,10 @@ public class Window_demarre extends JFrame {
private static JFrame frmEvalwriter;
JButton btnExporterTouteLaBase;
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 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 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>");
static JLabel lblAuteurVersion = new JLabel("<html>Pablo Rodriguez - 2023<br>Version "+ commandes.version+"</html>");
static JLabel lblFondImage = new JLabel();
@ -73,11 +70,9 @@ public class Window_demarre extends JFrame {
Font police = new Font("Arial", Font.PLAIN, 14);
UIManager.put("OptionPane.messageFont", police);
// Vérification d'une nouvelle version dans la forge de Chapril
VersionChecker.verificationNewVersion();
// mise à jour de la base de données si nouvelle version de l'application utilisé.
commandes.nBase=recupeBases.recupeLaBase();
@ -90,7 +85,7 @@ public class Window_demarre extends JFrame {
// Vérification du blocage de l'application
if(VerificationBlocageApplication()) {
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;
}
@ -125,12 +120,12 @@ public class Window_demarre extends JFrame {
boolean affichagePremierInformation = false;
if(commandes.newVersion && (!commandes.messageVersion.isEmpty() || !commandes.messageAlerte.isEmpty()) ) {
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);
affichagePremierInformation = true;
}
if(!commandes.messageAlerte.isEmpty() && !affichagePremierInformation) {
if(!commandes.messageAlerte.isEmpty() && !affichagePremierInformation && !commandes.noMessageAlerte) {
String message = "<html>" + commandes.messageAlerte + "</html>";
JOptionPane.showMessageDialog(null, message,"Information",JOptionPane.INFORMATION_MESSAGE);
}
@ -211,22 +206,14 @@ public class Window_demarre extends JFrame {
tabExporteImporte.setLayout(null);
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();
tabbedPane.addTab("<html>Crédits<br>Licences</html>", tabLicence);
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>");
lblCredits.setHorizontalAlignment(SwingConstants.LEFT);
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() {
btnLicence.setBounds(390, 173, 324, 50);
btnLicence.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String url = "https://www.gnu.org/licenses/gpl-3.0.html#license-text";
try {
@ -237,23 +224,30 @@ public class Window_demarre extends JFrame {
}
}
});
btnNewButton_1.setIcon(new ImageIcon(Window_demarre.class.getResource("/resources/gplv3-127x51.png")));
btnNewButton_1.setFont(new Font("Arial", Font.BOLD, 14));
btnNewButton_1.setBounds(10, 150, 326, 64);
tabLicence.add(btnNewButton_1);
btnLicence.setIcon(new ImageIcon(Window_demarre.class.getResource("/resources/gplv3-127x51.png")));
btnLicence.setFont(new Font("Arial", Font.BOLD, 14));
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 : 1.0.6 - juillet 2023</h2></html>");
lblVersion.setForeground(SystemColor.textHighlight);
lblVersion.setVerticalAlignment(SwingConstants.TOP);
lblVersion.setHorizontalAlignment(SwingConstants.RIGHT);
lblVersion.setBounds(563, 150, 151, 64);
lblVersion.setBounds(455, 6, 259, 33);
tabLicence.add(lblVersion);
frmEvalwriter.getContentPane().add(tabbedPane);
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.setFont(new Font("Arial", Font.BOLD, 16));
@ -289,13 +283,6 @@ public class Window_demarre extends JFrame {
tabInscriptions.add(btnimporterDesInscriptionsdepuisClasseur);
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) {
btnNewVersion = new JButton("<html>Nouvelle version disponible : "+ commandes.nameNewVersion + "</html>");
@ -305,17 +292,6 @@ public class Window_demarre extends JFrame {
btnNewVersion.setBounds(20, 602, 705, 63);
btnNewVersion.setVisible(commandes.newVersion);
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("");
btnNewButton.setIcon(new ImageIcon(Window_demarre.class.getResource("/resources/tickets_bouton.png")));
@ -365,6 +341,22 @@ public class Window_demarre extends JFrame {
btnVersions.setBounds(370, 116, 340, 95);
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>");
btnParametresClasseurInscription.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
@ -394,12 +386,16 @@ public class Window_demarre extends JFrame {
});
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.setFont(new Font("Arial", Font.PLAIN, 12));
lblNewLabel.setBounds(370, 101, 340, 109);
tabGestionnaire.add(lblNewLabel);
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.
btnNewVersion.addActionListener(new ActionListener() {
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));
}
}

View File

@ -1,5 +1,6 @@
package gestion_version;
import java.awt.Font;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
@ -8,8 +9,12 @@ import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import Windows.Window_demarre;
import base.NomDeColonneInscriptionTable;
import base.recupeBases;
import base.sauvegardeXMLBase;
@ -71,11 +76,7 @@ public class VersionChecker {
// Conversion en nombre entier
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);
@ -117,6 +118,13 @@ public class VersionChecker {
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";
regex = Pattern.compile(pattern);
@ -144,7 +152,8 @@ public class VersionChecker {
// Récupérer le texte entre les balises messageAlerte
// -br- retour à la ligne
// -b- et -/b- en gras
// -u- et -/u- soiligné
// -u- et -/u- souligné
//
commandes.messageAlerte = matcher.group(1);
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>");
@ -152,9 +161,7 @@ public class VersionChecker {
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "<html><h2>Pas de connexion internet.</h2><br>"
+ "Impossible de vérifier si une nouvelle version est disponible.<br>"
+ "Impossible d'afficher le message d'information, s'il est disponible</ul>.</html>");
showCustomMessagePasInternet();
commandes.pasDeConnexion=true;
e.printStackTrace();
}
@ -289,6 +296,28 @@ public class VersionChecker {
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
* @param nBase

View File

@ -12,7 +12,7 @@ public class commandes {
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 dateversion = "25 juillet 2023"; // La version actuelle
public static String dateversion = "30 juillet 2023"; // La version actuelle
// Les colonnes obligatoires à l'inscription des étudaints.
// 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 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 noMessageAlerte = false; //Pas de message d'alerte
public static String messageAlerte = ""; //Message alerte
public static String messageVersion = ""; //Message version

BIN
src/resources/erreur404.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB