refactor + javadoc

This commit is contained in:
NonoL3Robot
2022-03-10 19:06:27 +01:00
parent 77d6e1b8c7
commit ff2e142e32
31 changed files with 291 additions and 263 deletions
BIN
View File
Binary file not shown.
+3 -3
View File
@@ -1,7 +1,7 @@
/* /*
* IhmPdf, 03/02/2022 * IhmPdf, 03/02/2022
* IUT Rodez 2022, INFO2 * IUT Rodez 2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf; package lecteur_pdf;
@@ -19,9 +19,9 @@ import java.awt.event.WindowEvent;
* Classe définissant une fenêtre qui peut contenir un document PDF * Classe définissant une fenêtre qui peut contenir un document PDF
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class Fenetre extends JFrame { public class Fenetre extends JFrame {
+4 -4
View File
@@ -1,7 +1,7 @@
/* /*
* GestionPdf.java, 26/02/2022 * GestionPdf.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf; package lecteur_pdf;
@@ -15,9 +15,9 @@ import java.util.List;
* Gestionnaire des fenêtres ouvertes dans l'application * Gestionnaire des fenêtres ouvertes dans l'application
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class GestionFenetre { public class GestionFenetre {
+12 -9
View File
@@ -1,7 +1,7 @@
/* /*
* GestionMode.java, 26/02/2022 * GestionMode.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf; package lecteur_pdf;
@@ -17,9 +17,9 @@ import java.util.ArrayList;
* Gestionnaire de mode Synchronisé ou Séparé * Gestionnaire de mode Synchronisé ou Séparé
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class GestionMode { public class GestionMode {
@@ -36,12 +36,12 @@ public class GestionMode {
private static final ArrayList<ModeSynchronise> modeSynchroniseList = new ArrayList<>(); private static final ArrayList<ModeSynchronise> modeSynchroniseList = new ArrayList<>();
/** /**
* Référence les elements NouvelleFenetre, ModeSepare, ModeSynchronise lors de la création d'une nouvelle fenêtre * Référence les éléments NouvelleFenetre, ModeSepare, ModeSynchronise
* lors de la création d'une nouvelle fenêtre
* @param fenetre Référence du MenuItem NouvelleFenetre de la fenêtre crée * @param fenetre Référence du MenuItem NouvelleFenetre de la fenêtre crée
* @param separe Référence du MenuItem ModeSepare de la fenêtre crée * @param separe Référence du MenuItem ModeSepare de la fenêtre crée
* @param synchronise Référence du MenuItem ModeSynchronise de la fenêtre crée * @param synchronise Référence du MenuItem ModeSynchronise de la fenêtre crée
*/ */
@SuppressWarnings("SpellCheckingInspection")
public static void addItem(NouvelleFenetre fenetre, ModeSepare separe, ModeSynchronise synchronise) { public static void addItem(NouvelleFenetre fenetre, ModeSepare separe, ModeSynchronise synchronise) {
nouvelleFenetreList.add(fenetre); nouvelleFenetreList.add(fenetre);
modeSepareList.add(separe); modeSepareList.add(separe);
@@ -64,7 +64,8 @@ public class GestionMode {
} }
/** /**
* Met a jour dans toutes les fenêtres ouvertes la checkbox du mode selectionné * Met à jour dans toutes les fenêtres ouvertes la checkbox du mode
* sélectionné
*/ */
private static void updateMode() { private static void updateMode() {
for (int i = 0; i < modeSepareList.size() ; i++) { for (int i = 0; i < modeSepareList.size() ; i++) {
@@ -74,7 +75,8 @@ public class GestionMode {
} }
/** /**
* Grise le boutton "Nouvelle Fenêtre" de toute les fenêtres de l'application * Grise le bouton "Nouvelle Fenêtre" de toutes les fenêtres de
* l'application
*/ */
public static void desactiverBtnNouvelleFenetre() { public static void desactiverBtnNouvelleFenetre() {
for (NouvelleFenetre item : nouvelleFenetreList) { for (NouvelleFenetre item : nouvelleFenetreList) {
@@ -84,7 +86,8 @@ public class GestionMode {
} }
/** /**
* Dégrise le boutton "Nouvelle Fenêtre" de toutes les fenêtres de l'application * Dégrise le bouton "Nouvelle Fenêtre" de toutes les fenêtres de
* l'application
*/ */
public static void activerBtnNouvelleFenetre() { public static void activerBtnNouvelleFenetre() {
for (NouvelleFenetre item : nouvelleFenetreList) { for (NouvelleFenetre item : nouvelleFenetreList) {
+4 -4
View File
@@ -1,7 +1,7 @@
/* /*
* Popup.java, 09/03/2022 * Popup.java, 09/03/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf; package lecteur_pdf;
@@ -13,9 +13,9 @@ import java.awt.*;
* Classe outils permettant de créer des fenêtres Popups * Classe outils permettant de créer des fenêtres Popups
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class Popup { public class Popup {
+1 -1
View File
@@ -1,7 +1,7 @@
/* /*
* SelectionnerFichier.java, 18/11/2021 * SelectionnerFichier.java, 18/11/2021
* IUT Rodez 2021-2021, INFO2 * IUT Rodez 2021-2021, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf; package lecteur_pdf;
+4 -4
View File
@@ -1,7 +1,7 @@
/* /*
* MenuBar.java, 26/02/2022 * MenuBar.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar; package lecteur_pdf.menuBar;
@@ -18,9 +18,9 @@ import javax.swing.*;
* Barre de menu contenant l'ensemble des menus de l'application * Barre de menu contenant l'ensemble des menus de l'application
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class MenuBar extends JMenuBar { public class MenuBar extends JMenuBar {
@@ -16,16 +16,18 @@ import javax.swing.*;
* l'affichage de l'application * l'affichage de l'application
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see JMenu
*/ */
public class MenuAffichage extends JMenu { public class MenuAffichage extends JMenu {
/** /**
* Créé une nouvelle instance du menu d'affichage * Créé une nouvelle instance du menu d'affichage
* *
* @param parent Référence de la fenêtre qui possède l'instance de ce menu * @param parent Référence de la {@link Fenetre fenêtre}
* qui possède l'instance de ce menu
*/ */
public MenuAffichage(Fenetre parent) { public MenuAffichage(Fenetre parent) {
super("Affichage"); super("Affichage");
@@ -7,9 +7,7 @@
package lecteur_pdf.menuBar.menu; package lecteur_pdf.menuBar.menu;
import lecteur_pdf.Fenetre; import lecteur_pdf.Fenetre;
import lecteur_pdf.menuBar.menuItems.FermerFichier; import lecteur_pdf.menuBar.menuItems.*;
import lecteur_pdf.menuBar.menuItems.OuvrirFichier;
import lecteur_pdf.menuBar.menuItems.Quitter;
import javax.swing.*; import javax.swing.*;
@@ -18,16 +16,18 @@ import javax.swing.*;
* la gestion des fichiers de l'application * la gestion des fichiers de l'application
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see JMenu
*/ */
public class MenuFichier extends JMenu { public class MenuFichier extends JMenu {
/** /**
* Créé une nouvelle instance du menu fichier * Créé une nouvelle instance du menu fichier
* *
* @param parent Référence de la fenêtre qui possède l'instance de ce menu * @param parent Référence de la {@link Fenetre fenêtre}
* qui possède l'instance de ce menu
*/ */
public MenuFichier(Fenetre parent) { public MenuFichier(Fenetre parent) {
super("Fichier"); super("Fichier");
+6 -6
View File
@@ -8,9 +8,7 @@ package lecteur_pdf.menuBar.menu;
import lecteur_pdf.Fenetre; import lecteur_pdf.Fenetre;
import lecteur_pdf.GestionMode; import lecteur_pdf.GestionMode;
import lecteur_pdf.menuBar.menuItems.ModeSepare; import lecteur_pdf.menuBar.menuItems.*;
import lecteur_pdf.menuBar.menuItems.ModeSynchronise;
import lecteur_pdf.menuBar.menuItems.NouvelleFenetre;
import javax.swing.*; import javax.swing.*;
@@ -19,16 +17,18 @@ import javax.swing.*;
* mode multi-affichage * mode multi-affichage
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see JMenu
*/ */
public class MenuMode extends JMenu { public class MenuMode extends JMenu {
/** /**
* Créé une nouvelle instance du menu Mode * Créé une nouvelle instance du menu Mode
* *
* @param parent Référence de la fenêtre qui possède l'instance de ce menu * @param parent Référence de la {@link Fenetre fenêtre}
* qui possède l'instance de ce menu
*/ */
public MenuMode(Fenetre parent) { public MenuMode(Fenetre parent) {
super("Mode"); super("Mode");
@@ -7,7 +7,7 @@
package lecteur_pdf.menuBar.menu; package lecteur_pdf.menuBar.menu;
import lecteur_pdf.Fenetre; import lecteur_pdf.Fenetre;
import lecteur_pdf.menuBar.menuItems.ModifierTouches; import lecteur_pdf.menuBar.menuItems.*;
import javax.swing.*; import javax.swing.*;
@@ -16,16 +16,18 @@ import javax.swing.*;
* l'application * l'application
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see JMenu
*/ */
public class MenuOptions extends JMenu { public class MenuOptions extends JMenu {
/** /**
* Créé une nouvelle instance du menu Options * Créé une nouvelle instance du menu Options
* *
* @param parent Référence de la fenêtre qui possède l'instance de ce menu * @param parent Référence de la {@link Fenetre fenêtre}
* qui possède l'instance de ce menu
*/ */
public MenuOptions(Fenetre parent) { public MenuOptions(Fenetre parent) {
super("Options"); super("Options");
@@ -1,7 +1,7 @@
/* /*
* FermerFichier.java, 26/02/2022 * FermerFichier.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
@@ -10,40 +10,55 @@ import lecteur_pdf.Fenetre;
import lecteur_pdf.Popup; import lecteur_pdf.Popup;
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent;
/** /**
* Élément de {@link lecteur_pdf.menuBar.menu.MenuFichier} qui permet de * Élément de {@link lecteur_pdf.menuBar.menu.MenuFichier MenuFichier} qui
* fermer le document PDF * permet de fermer le document PDF courant
* courant
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see MenuItem
*/ */
public class FermerFichier extends MenuItem { public class FermerFichier extends MenuItem {
/** Titre de la popup lors de la fermeture d'un document */ /**
* Titre de la {@link lecteur_pdf.Popup Popup} lors de la fermeture d'un
* document
*
* @see javax.swing.Popup
*/
public static final String TITRE = "Fermeture du document"; public static final String TITRE = "Fermeture du document";
/** Message de la Popup lors de la fermeture d'un document */ /**
public static final String MESSAGE = "Êtes-vous sûr de vouloir fermer le document ?"; * Message de la {@link lecteur_pdf.Popup Popup} lors de la fermeture
* d'un {@link lecteur_pdf.pdf.DocumentPdf document}
*
* @see javax.swing.Popup
*/
public static final String MESSAGE
= "Êtes-vous sûr de vouloir fermer le document ?";
/** /**
* Crée un nouvel Élément de Menu "Fermer" * Créé un nouvel élément de
* {@link lecteur_pdf.menuBar.menu.MenuFichier MenuFichier}
* *
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem * @param parent Référence de la {@link Fenetre fenêtre}
* qui possède l'instance de ce menu
* {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItem}
*/ */
public FermerFichier(Fenetre parent) { public FermerFichier(Fenetre parent) {
super(parent, "Fermer"); super(parent, "Fermer");
} }
@Override @Override
protected void action(ActionEvent evt) { protected void action() {
if (parent.getPdfPanel().isCharge()) { if (parent.getPdfPanel().isCharge()) {
int resultatPopup = Popup.OuiNonPopup(parent, TITRE, MESSAGE); int resultatPopup = Popup.OuiNonPopup(parent, TITRE, MESSAGE);
if (resultatPopup == JOptionPane.YES_OPTION) parent.fermerPdf(); if (resultatPopup == JOptionPane.YES_OPTION) {
parent.fermerPdf();
}
} }
} }
} }
+14 -11
View File
@@ -1,7 +1,7 @@
/* /*
* MenuItem.java, 26/02/2022 * MenuItem.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
@@ -10,7 +10,6 @@ import lecteur_pdf.Fenetre;
import lecteur_pdf.raccourcisClavier.RaccourcisClavier; import lecteur_pdf.raccourcisClavier.RaccourcisClavier;
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent;
/** /**
* Classe abstraite qui défini les éléments de * Classe abstraite qui défini les éléments de
@@ -18,13 +17,17 @@ import java.awt.event.ActionEvent;
* qui nécessitent d'accéder à leur {@link Fenetre fenêtre} parente * qui nécessitent d'accéder à leur {@link Fenetre fenêtre} parente
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see JMenuItem
*/ */
public abstract class MenuItem extends JMenuItem { public abstract class MenuItem extends JMenuItem {
/** Référence de la fenêtre qui possède l'instance de ce MenuItem */ /**
* Référence de la {@link Fenetre fenêtre}
* qui possède l'instance de ce MenuItem
*/
final Fenetre parent; final Fenetre parent;
/** /**
@@ -32,19 +35,19 @@ public abstract class MenuItem extends JMenuItem {
* avec un nom, une action et se référence dans la liste des raccourcis * avec un nom, une action et se référence dans la liste des raccourcis
* claviers * claviers
* *
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem * @param parent Référence de la fenêtre qui possède l'instance de ce
* @param name Nom de l'action * MenuItem
* @param name Nom de l'action
*/ */
public MenuItem(Fenetre parent, String name) { public MenuItem(Fenetre parent, String name) {
super(name); super(name);
this.parent = parent; this.parent = parent;
addActionListener(this::action); addActionListener(evt -> action());
RaccourcisClavier.listeMenuItems.add(this); RaccourcisClavier.listeMenuItems.add(this);
} }
/** /**
* Action de l'élément lors du clic * Action de l'élément lors du clic
* @param evt Action de l'utilisateur (clic)
*/ */
protected abstract void action(ActionEvent evt); protected abstract void action();
} }
@@ -1,7 +1,7 @@
/* /*
* ModeSepare.java, 26/02/2022 * ModeSepare.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
@@ -16,9 +16,10 @@ import javax.swing.*;
* qui permet d'activer le défilement des pages de documents en séparé * qui permet d'activer le défilement des pages de documents en séparé
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see JRadioButtonMenuItem
*/ */
public class ModeSepare extends JRadioButtonMenuItem { public class ModeSepare extends JRadioButtonMenuItem {
@@ -1,7 +1,7 @@
/* /*
* ModeSynchronise.java, 26/02/2022 * ModeSynchronise.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
@@ -12,12 +12,14 @@ import lecteur_pdf.raccourcisClavier.RaccourcisClavier;
import javax.swing.*; import javax.swing.*;
/** /**
* Élément de Menu Mode Synchronisé qui permet d'activer le défilement des pages de documents en simultané * Élément de {@link lecteur_pdf.menuBar.menu.MenuMode MenuMode}
* qui permet d'activer le défilement des pages de documents en simultané
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see JRadioButtonMenuItem
*/ */
public class ModeSynchronise extends JRadioButtonMenuItem { public class ModeSynchronise extends JRadioButtonMenuItem {
@@ -1,7 +1,7 @@
/* /*
* ModifierTouches.java, 26/02/2022 * ModifierTouches.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
@@ -9,15 +9,16 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.Fenetre; import lecteur_pdf.Fenetre;
import lecteur_pdf.raccourcisClavier.RaccourcisClavier; import lecteur_pdf.raccourcisClavier.RaccourcisClavier;
import java.awt.event.ActionEvent;
/** /**
* Élément de Menu Modifier Touches qui permet d'ouvrir une fenêtre pour modifier les raccourcis claviers de l'application * Élément de {@link lecteur_pdf.menuBar.menu.MenuOptions MenuOptions}
* qui permet d'ouvrir une {@link javax.swing.JFrame fenêtre}
* pour modifier les raccourcis claviers de l'application
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see MenuItem
*/ */
public class ModifierTouches extends MenuItem { public class ModifierTouches extends MenuItem {
@@ -25,14 +26,15 @@ public class ModifierTouches extends MenuItem {
* Créé un nouvel élément de * Créé un nouvel élément de
* {@link lecteur_pdf.menuBar.menu.MenuOptions MenuOptions} * {@link lecteur_pdf.menuBar.menu.MenuOptions MenuOptions}
* *
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem * @param parent Référence de la fenêtre qui possède l'instance de ce
* {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItem}
*/ */
public ModifierTouches(Fenetre parent) { public ModifierTouches(Fenetre parent) {
super(parent, "Modifier Touches"); super(parent, "Modifier Touches");
} }
@Override @Override
protected void action(ActionEvent evt) { protected void action() {
new RaccourcisClavier(); new RaccourcisClavier();
} }
} }
@@ -1,7 +1,7 @@
/* /*
* NouvelleFenetre.java, 26/02/2022 * NouvelleFenetre.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
@@ -10,16 +10,14 @@ import lecteur_pdf.Fenetre;
import lecteur_pdf.GestionFenetre; import lecteur_pdf.GestionFenetre;
import lecteur_pdf.GestionMode; import lecteur_pdf.GestionMode;
import java.awt.event.ActionEvent;
/** /**
* Élément de Menu NouvelleFenetre qui permet d'ouvrir une autre fenêtre * Élément de Menu NouvelleFenetre qui permet d'ouvrir une autre fenêtre
* (pouvant contenir un PDF) si le nombre maximal de fenêtre n'est pas atteint * (pouvant contenir un PDF) si le nombre maximal de fenêtre n'est pas atteint
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class NouvelleFenetre extends MenuItem { public class NouvelleFenetre extends MenuItem {
@@ -33,7 +31,7 @@ public class NouvelleFenetre extends MenuItem {
} }
@Override @Override
public void action(ActionEvent evt) { public void action() {
/* Essaye de créer une nouvelle fenêtre */ /* Essaye de créer une nouvelle fenêtre */
GestionFenetre.newIhmPdf(); GestionFenetre.newIhmPdf();
@@ -1,7 +1,7 @@
/* /*
* OuvrirFichier.java, 26/02/2022 * OuvrirFichier.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
@@ -11,16 +11,15 @@ import lecteur_pdf.Popup;
import lecteur_pdf.SelectionnerFichier; import lecteur_pdf.SelectionnerFichier;
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent;
import java.io.File; import java.io.File;
/** /**
* Élément de Menu Ouvrir Fichier qui permet d'ouvrir un document * Élément de Menu Ouvrir Fichier qui permet d'ouvrir un document
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class OuvrirFichier extends MenuItem { public class OuvrirFichier extends MenuItem {
@@ -40,7 +39,7 @@ public class OuvrirFichier extends MenuItem {
} }
@Override @Override
protected void action(ActionEvent evt) { protected void action() {
int valide = parent.getPdfPanel().isCharge() int valide = parent.getPdfPanel().isCharge()
? Popup.OuiNonPopup(parent, FermerFichier.TITRE, FermerFichier.MESSAGE) ? Popup.OuiNonPopup(parent, FermerFichier.TITRE, FermerFichier.MESSAGE)
@@ -1,22 +1,20 @@
/* /*
* PageEntiere.java, 09/03/2022 * PageEntiere.java, 09/03/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.Fenetre; import lecteur_pdf.Fenetre;
import java.awt.event.ActionEvent;
/** /**
* Élément de Menu Page Entière qui permet d'afficher l'intégralité du document courant verticalement * Élément de Menu Page Entière qui permet d'afficher l'intégralité du document courant verticalement
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class PageEntiere extends MenuItem { public class PageEntiere extends MenuItem {
/** /**
@@ -24,13 +22,12 @@ public class PageEntiere extends MenuItem {
* *
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
*/ */
@SuppressWarnings("SpellCheckingInspection")
public PageEntiere(Fenetre parent) { public PageEntiere(Fenetre parent) {
super(parent, "Page Entière"); super(parent, "Page Entière");
} }
@Override @Override
protected void action(ActionEvent evt) { protected void action() {
parent.getPdfPanel().setPleineLargeur(false); parent.getPdfPanel().setPleineLargeur(false);
} }
} }
@@ -1,7 +1,7 @@
/* /*
* PagePrecedente.java, 26/02/2022 * PagePrecedente.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
@@ -10,18 +10,16 @@ import lecteur_pdf.Fenetre;
import lecteur_pdf.GestionFenetre; import lecteur_pdf.GestionFenetre;
import lecteur_pdf.GestionMode; import lecteur_pdf.GestionMode;
import java.awt.event.ActionEvent;
/** /**
* Élément de Menu PagePrecedente qui permet d'afficher la page précédente du * Élément de Menu PagePrecedente qui permet d'afficher la page précédente du
* document courant (ou les pages précédentes si le mode Synchronisé est activé) * document courant (ou les pages précédentes si le mode Synchronisé est activé)
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
@SuppressWarnings("SpellCheckingInspection")
public class PagePrecedente extends MenuItem { public class PagePrecedente extends MenuItem {
/** /**
@@ -35,7 +33,7 @@ public class PagePrecedente extends MenuItem {
} }
@Override @Override
protected void action(ActionEvent evt) { protected void action() {
if (GestionMode.isModeSepare()) { if (GestionMode.isModeSepare()) {
parent.getPdfPanel().pagePrecedente(); parent.getPdfPanel().pagePrecedente();
} else { } else {
@@ -1,7 +1,7 @@
/* /*
* PageSuivante.java, 26/02/2022 * PageSuivante.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
@@ -10,16 +10,14 @@ import lecteur_pdf.Fenetre;
import lecteur_pdf.GestionFenetre; import lecteur_pdf.GestionFenetre;
import lecteur_pdf.GestionMode; import lecteur_pdf.GestionMode;
import java.awt.event.ActionEvent;
/** /**
* Élément de Menu Page Suivante qui permet d'afficher la page suivante du * Élément de Menu Page Suivante qui permet d'afficher la page suivante du
* document courant (ou les pages suivantes si le mode Synchronisé est activé) * document courant (ou les pages suivantes si le mode Synchronisé est activé)
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class PageSuivante extends MenuItem { public class PageSuivante extends MenuItem {
@@ -34,7 +32,7 @@ public class PageSuivante extends MenuItem {
} }
@Override @Override
protected void action(ActionEvent evt) { protected void action() {
if (GestionMode.isModeSepare()) { if (GestionMode.isModeSepare()) {
parent.getPdfPanel().pageSuivante(); parent.getPdfPanel().pageSuivante();
} else { } else {
@@ -1,22 +1,20 @@
/* /*
* PleinEcran.java, 26/02/2022 * PleinEcran.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.Fenetre; import lecteur_pdf.Fenetre;
import java.awt.event.ActionEvent;
/** /**
* Élément de Menu PleinEcran qui permet d'afficher la page la fenêtre courante en plein écran * Élément de Menu PleinEcran qui permet d'afficher la page la fenêtre courante en plein écran
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class PleinEcran extends MenuItem { public class PleinEcran extends MenuItem {
@@ -30,7 +28,7 @@ public class PleinEcran extends MenuItem {
} }
@Override @Override
protected void action(ActionEvent evt) { protected void action() {
parent.pleinEcran(); parent.pleinEcran();
} }
} }
@@ -1,24 +1,22 @@
/* /*
* PleineLargeur.java, 09/03/2022 * PleineLargeur.java, 09/03/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.Fenetre; import lecteur_pdf.Fenetre;
import java.awt.event.ActionEvent;
/** /**
* Élément de Menu Pleine Largeur qui permet d'afficher le document courant * Élément de Menu Pleine Largeur qui permet d'afficher le document courant
* de manière bord à bord (la taille horizontale du document coincide avec * de manière bord à bord (la taille horizontale du document coincide avec
* celle de la fenêtre) * celle de la fenêtre)
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class PleineLargeur extends MenuItem { public class PleineLargeur extends MenuItem {
@@ -34,7 +32,7 @@ public class PleineLargeur extends MenuItem {
} }
@Override @Override
protected void action(ActionEvent evt) { protected void action() {
parent.getPdfPanel().setPleineLargeur(true); parent.getPdfPanel().setPleineLargeur(true);
} }
} }
@@ -1,7 +1,7 @@
/* /*
* Quitter.java, 26/02/2022 * Quitter.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
@@ -10,16 +10,15 @@ import lecteur_pdf.Fenetre;
import lecteur_pdf.Popup; import lecteur_pdf.Popup;
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent;
/** /**
* Élément de Menu Quitter qui permet de fermer la fenêtre courante, ferme * Élément de Menu Quitter qui permet de fermer la fenêtre courante, ferme
* l'application s'il s'agit de la dernière fenêtre fermée * l'application s'il s'agit de la dernière fenêtre fermée
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class Quitter extends MenuItem { public class Quitter extends MenuItem {
@@ -33,7 +32,7 @@ public class Quitter extends MenuItem {
} }
@Override @Override
protected void action(ActionEvent evt) { protected void action() {
final String TITRE = "Quitter"; final String TITRE = "Quitter";
final String MESSAGE = "Êtes-vous sûr de vouloir quitter l'application ?"; final String MESSAGE = "Êtes-vous sûr de vouloir quitter l'application ?";
if (Popup.OuiNonPopup(parent, TITRE, MESSAGE) == JOptionPane.YES_OPTION) parent.quitter(); if (Popup.OuiNonPopup(parent, TITRE, MESSAGE) == JOptionPane.YES_OPTION) parent.quitter();
@@ -1,22 +1,20 @@
/* /*
* ZoomDefaut.java, 26/02/2022 * ZoomDefaut.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.Fenetre; import lecteur_pdf.Fenetre;
import java.awt.event.ActionEvent;
/** /**
* Élément de Menu Zoom 100% qui permet de mettre le Zoom par défaut * Élément de Menu Zoom 100% qui permet de mettre le Zoom par défaut
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class ZoomDefaut extends MenuItem { public class ZoomDefaut extends MenuItem {
@@ -30,7 +28,7 @@ public class ZoomDefaut extends MenuItem {
} }
@Override @Override
protected void action(ActionEvent evt) { protected void action() {
parent.getPdfPanel().setZoom(1.0f); parent.getPdfPanel().setZoom(1.0f);
parent.validate(); parent.validate();
} }
@@ -1,22 +1,20 @@
/* /*
* ZoomMoins.java, 26/02/2022 * ZoomMoins.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.Fenetre; import lecteur_pdf.Fenetre;
import java.awt.event.ActionEvent;
/** /**
* Élément de Menu Zoom 50% qui permet de dézoomer * Élément de Menu Zoom 50% qui permet de dézoomer
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class ZoomMoins extends MenuItem { public class ZoomMoins extends MenuItem {
@@ -30,7 +28,7 @@ public class ZoomMoins extends MenuItem {
} }
@Override @Override
protected void action(ActionEvent evt) { protected void action() {
parent.getPdfPanel().setZoom(0.5f); parent.getPdfPanel().setZoom(0.5f);
parent.validate(); parent.validate();
} }
@@ -1,22 +1,20 @@
/* /*
* ZoomPlus.java, 26/02/2022 * ZoomPlus.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.Fenetre; import lecteur_pdf.Fenetre;
import java.awt.event.ActionEvent;
/** /**
* Élément de Menu Zoom 150% qui permet de zoomer * Élément de Menu Zoom 150% qui permet de zoomer
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class ZoomPlus extends MenuItem { public class ZoomPlus extends MenuItem {
@@ -30,7 +28,7 @@ public class ZoomPlus extends MenuItem {
} }
@Override @Override
protected void action(ActionEvent evt) { protected void action() {
parent.getPdfPanel().setZoom(1.5f); parent.getPdfPanel().setZoom(1.5f);
parent.validate(); parent.validate();
} }
+9 -9
View File
@@ -1,7 +1,7 @@
/* /*
* PdfLoader.java, 26/02/2022 * PdfLoader.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.pdf; package lecteur_pdf.pdf;
@@ -17,22 +17,22 @@ import java.io.IOException;
* Classe qui représente un document PDF ouvert, elle permet de créer des images des pages * Classe qui représente un document PDF ouvert, elle permet de créer des images des pages
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class DocumentPdf { public class DocumentPdf {
/** Le document PDF chargé avec PdfBox */ /** Le document PDF chargé avec PdfBox */
private final PDDocument document; private final PDDocument document;
/** L'outils de rendus de PdfBox */ /** L'outil de rendus de PdfBox */
private PDFRenderer renderer; private PDFRenderer renderer;
/** La largueur par défaut de la page courrante */ /** La largeur par défaut de la page courante */
private int minWidth; private int minWidth;
/** La longueur par défaut de la page courrante */ /** La longueur par défaut de la page courante */
private int minHeight; private int minHeight;
/** /**
@@ -48,12 +48,12 @@ public class DocumentPdf {
minHeight = -1; minHeight = -1;
} }
/** @return La largueur par défaut de la page courrante */ /** @return La largeur par défaut de la page courante */
public int getMinWidth() { public int getMinWidth() {
return minWidth; return minWidth;
} }
/** @return La longueur par défaut de la page courrante */ /** @return La longueur par défaut de la page courante */
public int getMinHeight() { public int getMinHeight() {
return minHeight; return minHeight;
} }
+20 -20
View File
@@ -1,6 +1,6 @@
/* /*
* PdfPanel.java, 26/02/2022 * PdfPanel.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* Pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
@@ -19,13 +19,13 @@ import java.io.IOException;
* Interface de la mainframe de l'application sans utilisation de forms * Interface de la mainframe de l'application sans utilisation de forms
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class PdfPanel extends JPanel { public class PdfPanel extends JPanel {
/** Le numéro de la page courrante */ /** Le numéro de la page courante */
private int numeroPage; private int numeroPage;
/** Valeur multiplicative de la taille de la page */ /** Valeur multiplicative de la taille de la page */
@@ -37,7 +37,8 @@ public class PdfPanel extends JPanel {
/** Défini si la page est en pleine largeur ou non */ /** Défini si la page est en pleine largeur ou non */
private boolean pleineLargeur; private boolean pleineLargeur;
/** Bloqueur qui défini si le processeur est entrain de générer une nouvelle page */ /** Bloqueur qui défini si le processeur est en train de générer une
* nouvelle page */
private boolean processing; private boolean processing;
/** Le document PDF chargé */ /** Le document PDF chargé */
@@ -54,10 +55,10 @@ public class PdfPanel extends JPanel {
/** Element scrollable qui contiens la page */ /** Element scrollable qui contiens la page */
private final JScrollPane scrollPane; private final JScrollPane scrollPane;
/** Zone de l'élément scollable quio est visible */ /** Zone de l'élément scrollable qui est visible */
private final JViewport viewport; private final JViewport viewport;
/** Label qui contiens l'image de la page affichée */ /** Label qui contient l'image de la page affichée */
private final JLabel page; private final JLabel page;
/** /**
@@ -100,8 +101,8 @@ public class PdfPanel extends JPanel {
add(scrollPane, BorderLayout.CENTER); add(scrollPane, BorderLayout.CENTER);
/* Actions */ /* Actions */
btnSuivant.addActionListener(this::btnSuivantAction); btnSuivant.addActionListener(evt1 -> btnSuivantAction());
btnPrecedent.addActionListener(this::btnPrecedentAction); btnPrecedent.addActionListener(evt -> btnPrecedentAction());
/* Saisie uniquement de caractère numérique */ /* Saisie uniquement de caractère numérique */
indexPageInput.addKeyListener(new KeyAdapter() { indexPageInput.addKeyListener(new KeyAdapter() {
@@ -135,29 +136,28 @@ public class PdfPanel extends JPanel {
} }
/** /**
* Action lors du clic sur le boutton suivant * Action lors du clic sur le bouton suivant
* Affiche la page suivante du ou des documents (suivant si le mode synchronisé est activé) * Affiche la page suivante du ou des documents (suivant si le mode
* * synchronisé est activé ou non)
* @param evt Écouteur d'évènement
*/ */
private void btnSuivantAction(ActionEvent evt) { private void btnSuivantAction() {
if (GestionMode.isModeSepare()) pageSuivante(); if (GestionMode.isModeSepare()) pageSuivante();
else GestionFenetre.nextPages(); else GestionFenetre.nextPages();
} }
/** /**
* Action lors du clic sur le boutton precedent * Action lors du clic sur le bouton precedent
* Affiche la page précédente du ou des documents (suivant si le mode synchronisé est activé) * Affiche la page précédente du ou des documents (suivant si le mode
* * synchronisé est activé ou non)
* @param evt Écouteur d'évènement
*/ */
private void btnPrecedentAction(ActionEvent evt) { private void btnPrecedentAction() {
if (GestionMode.isModeSepare()) pagePrecedente(); if (GestionMode.isModeSepare()) pagePrecedente();
else GestionFenetre.previousPages(); else GestionFenetre.previousPages();
} }
/** /**
* Change la taille de la page courrante suivant si fonction Pleine Largeur est activé ou non * Change la taille de la page courante suivant si fonction Pleine
* Largeur est activé ou non
*/ */
public void changerTaille() { public void changerTaille() {
if (pdfLoader == null || processing) return; if (pdfLoader == null || processing) return;
@@ -1,7 +1,7 @@
/* /*
* RaccourcisClavier.java, 26/02/2022 * RaccourcisClavier.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
package lecteur_pdf.raccourcisClavier; package lecteur_pdf.raccourcisClavier;
@@ -21,16 +21,20 @@ import java.util.Map;
* Gestionnaire des raccourcis claviers de l'application * Gestionnaire des raccourcis claviers de l'application
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class RaccourcisClavier extends JFrame { public class RaccourcisClavier extends JFrame {
/** Le nom du fichier de sauvegarde */ /**
* Le nom du fichier de sauvegarde
*/
public static final String FICHIER_SAUVEGARDE = "raccourcis.save"; public static final String FICHIER_SAUVEGARDE = "raccourcis.save";
/** Booleen qui garantis l'attribution d'un seul raccourcis à la fois */ /**
* Booléen qui garanti l'attribution d'un seul raccourci à la fois
*/
public static boolean saisieBloquee; public static boolean saisieBloquee;
/** /**
@@ -45,7 +49,8 @@ public class RaccourcisClavier extends JFrame {
public static ArrayList<RaccourcisElement> listeRaccourcisElement = new ArrayList<>(); public static ArrayList<RaccourcisElement> listeRaccourcisElement = new ArrayList<>();
/** /**
* HashMap qui prend en clé le Nom du MenuItem et en valeur une combinaison de touche : le raccourcis clavier * HashMap qui prend en clé le Nom du MenuItem et en valeur une
* combinaison de touche : le raccourci clavier
*/ */
public static Map<String, KeyStroke> raccourcis = new HashMap<>() {}; public static Map<String, KeyStroke> raccourcis = new HashMap<>() {};
@@ -53,20 +58,9 @@ public class RaccourcisClavier extends JFrame {
* La liste des noms de MenuItems de l'application * La liste des noms de MenuItems de l'application
*/ */
public static String[] LISTE_NOM = { public static String[] LISTE_NOM = {
"Ouvrir", "Ouvrir", "Fermer", "Quitter", "Mode Plein Écran", "Page précédente",
"Fermer", "Page suivante", "Zoom 50%", "Zoom 100%", "Zoom 150%", "Page Entière",
"Quitter", "Pleine Largeur", "Nouvelle Fenêtre", "Mode Séparé", "Mode Synchronisé",
"Mode Plein Écran",
"Page précédente",
"Page suivante",
"Zoom 50%",
"Zoom 100%",
"Zoom 150%",
"Page Entière",
"Pleine Largeur",
"Nouvelle Fenêtre",
"Mode Séparé",
"Mode Synchronisé",
"Modifier Touches" "Modifier Touches"
}; };
@@ -74,25 +68,42 @@ public class RaccourcisClavier extends JFrame {
* La liste des raccourcis par défaut * La liste des raccourcis par défaut
*/ */
public static KeyStroke[] RACCOURCIS_DEFAUT = { public static KeyStroke[] RACCOURCIS_DEFAUT = {
KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_DOWN_MASK), // Ouvrir KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_DOWN_MASK),
KeyStroke.getKeyStroke(KeyEvent.VK_F, KeyEvent.CTRL_DOWN_MASK), // Fermer // Ouvrir
KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.CTRL_DOWN_MASK), // Quitter KeyStroke.getKeyStroke(KeyEvent.VK_F, KeyEvent.CTRL_DOWN_MASK),
KeyStroke.getKeyStroke(KeyEvent.VK_F11, KeyEvent.CTRL_DOWN_MASK), // Mode Plein Écran // Fermer
KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, KeyEvent.CTRL_DOWN_MASK), // Page Précédente KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.CTRL_DOWN_MASK),
KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.CTRL_DOWN_MASK), // Page Suivante // Quitter
KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, KeyEvent.CTRL_DOWN_MASK), // Zoom 50% KeyStroke.getKeyStroke(KeyEvent.VK_F11, KeyEvent.CTRL_DOWN_MASK),
KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD0, KeyEvent.CTRL_DOWN_MASK), // Zoom 100% // Mode Plein Écran
KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, KeyEvent.CTRL_DOWN_MASK), // Zoom 150% KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, KeyEvent.CTRL_DOWN_MASK),
KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.CTRL_DOWN_MASK), // Page Entière // Page Précédente
KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_DOWN_MASK), // Pleine Largeur KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.CTRL_DOWN_MASK),
KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_DOWN_MASK), // Nouvelle Fenêtre // Page Suivante
KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_DOWN_MASK), // Mode Séparé KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, KeyEvent.CTRL_DOWN_MASK),
KeyStroke.getKeyStroke(KeyEvent.VK_Z, KeyEvent.CTRL_DOWN_MASK), // Mode Synchronisé // Zoom 50%
KeyStroke.getKeyStroke(KeyEvent.VK_P, KeyEvent.CTRL_DOWN_MASK), // Modifier Touches KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD0, KeyEvent.CTRL_DOWN_MASK),
// Zoom 100%
KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, KeyEvent.CTRL_DOWN_MASK),
// Zoom 150%
KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.CTRL_DOWN_MASK),
// Page Entière
KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_DOWN_MASK),
// Pleine Largeur
KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_DOWN_MASK),
// Nouvelle Fenêtre
KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_DOWN_MASK),
// Mode Séparé
KeyStroke.getKeyStroke(KeyEvent.VK_Z, KeyEvent.CTRL_DOWN_MASK),
// Mode Synchronisé
KeyStroke.getKeyStroke(KeyEvent.VK_P, KeyEvent.CTRL_DOWN_MASK),
// Modifier Touches
}; };
/** /**
* Crée une nouvelle fenêtre contenant la liste des Raccourcis claviers de l'application ainsi qu'un boutton Raccourcis par défaut qui remet les raccourcis par défaut de l'application * Créé une nouvelle fenêtre contenant la liste des Raccourcis claviers
* de l'application ainsi qu'un bouton Raccourcis par défaut qui remet
* les raccourcis par défaut de l'application
*/ */
public RaccourcisClavier() { public RaccourcisClavier() {
super("Modification des raccourcis claviers"); super("Modification des raccourcis claviers");
@@ -104,16 +115,20 @@ public class RaccourcisClavier extends JFrame {
affecterRaccourcis(); affecterRaccourcis();
/* Creation de la fenêtre */ /* Creation de la fenêtre */
JPanel panel = new JPanel(new GridLayout(raccourcis.size() +1, 1, 10, 5)); JPanel panel = new JPanel(
new GridLayout(raccourcis.size() + 1, 1, 10, 5));
/* Ajout de tout les raccourcis claviers de l'application dans la fenêtre */ /* Ajout de tous les raccourcis claviers de l'application dans la
fenêtre */
for (String nom : LISTE_NOM) { for (String nom : LISTE_NOM) {
RaccourcisElement raccourcisElement = new RaccourcisElement(nom, raccourcis.get(nom)); RaccourcisElement raccourcisElement = new RaccourcisElement(nom,
raccourcis.get(
nom));
listeRaccourcisElement.add(raccourcisElement); listeRaccourcisElement.add(raccourcisElement);
panel.add(raccourcisElement); panel.add(raccourcisElement);
} }
/* Ajout du boutton Reset */ /* Ajout du bouton Reset */
JButton btnReset = new JButton("Raccourcis par défaut"); JButton btnReset = new JButton("Raccourcis par défaut");
btnReset.addActionListener(this::actionBtnReset); btnReset.addActionListener(this::actionBtnReset);
panel.add(btnReset); panel.add(btnReset);
@@ -126,18 +141,16 @@ public class RaccourcisClavier extends JFrame {
} }
/** /**
* Action lors du clic sur le boutton Reset * Action lors du clic sur le bouton Reset
* Charge les raccourcis par défaut puis les sauvegarde * Charge les raccourcis par défaut puis les sauvegarde
* Met a jour l'interface * Met a jour l'interface
*
* @param evt écouteur d'évènement
*/ */
private void actionBtnReset(ActionEvent evt) { private void actionBtnReset(ActionEvent evt) {
initialisationFichierRaccourcis(); initialisationFichierRaccourcis();
chargerRaccourcis(); chargerRaccourcis();
// Affichage des boutons // Affichage des boutons
for (int i = 0; i < listeRaccourcisElement.size() ; i++) { for (int i = 0; i < listeRaccourcisElement.size(); i++) {
String cle = LISTE_NOM[i]; String cle = LISTE_NOM[i];
KeyStroke valeur = raccourcis.get(cle); KeyStroke valeur = raccourcis.get(cle);
@@ -192,7 +205,8 @@ public class RaccourcisClavier extends JFrame {
* et la sauvegarde * et la sauvegarde
*/ */
private static void initialisationFichierRaccourcis() { private static void initialisationFichierRaccourcis() {
for (int i = 0; i < LISTE_NOM.length && i < RACCOURCIS_DEFAUT.length; i++) { for (int i = 0; i < LISTE_NOM.length && i < RACCOURCIS_DEFAUT.length;
i++) {
raccourcis.put(LISTE_NOM[i], RACCOURCIS_DEFAUT[i]); raccourcis.put(LISTE_NOM[i], RACCOURCIS_DEFAUT[i]);
} }
sauvegarderRaccourcis(); sauvegarderRaccourcis();
@@ -1,6 +1,6 @@
/* /*
* RaccourcisElement.java 10/03/2022 * RaccourcisElement.java 10/03/2022
* IUT Rodez 2021-2022, INFO 2 * IUT Rodez 2021-2022, INFO2
* Pas de copyright, aucun droits * Pas de copyright, aucun droits
*/ */
@@ -15,31 +15,33 @@ import java.awt.event.KeyEvent;
import java.awt.event.KeyListener; import java.awt.event.KeyListener;
/** /**
* Element de raccourcis qui définit un raccourcis pour une propriété de l'application * Élément de raccourcis qui définit un raccourci pour une propriété de
* l'application
* *
* @author Léo Franch * @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
*/ */
public class RaccourcisElement extends JPanel { public class RaccourcisElement extends JPanel {
/** Le nom du MenuItem */ /** Le nom du MenuItem */
private final String nom; private final String nom;
/** Le boutton qui contiens en valeur la séquence de touches correspondant au raccourcis du MenuItem de l'application */ /** Le bouton qui contient en valeur la séquence de touches correspondant
* au raccourci du MenuItem de l'application */
private final JButton btnRaccourcis; private final JButton btnRaccourcis;
/** Le raccourcis clavier */ /** Le raccourci clavier */
private KeyStroke raccourcis; private KeyStroke raccourcis;
/** /**
* Crée un nouveau JPanel conportant une ligne et deux colonnes * Crée un nouveau JPanel comportant une ligne et deux colonnes
* Dans la première colonne on trouve un Label qui défini le MenuItem * Dans la première colonne on trouve un Label qui défini le MenuItem
* Dans la seconde colonne on trouve le boutton pour éditer le raccourcis clavier * Dans la seconde colonne on trouve le bouton pour éditer le raccourci clavier
* *
* @param nom Le nom du MenuItem ciblé * @param nom Le nom du MenuItem ciblé
* @param raccourcis Le raccourcis clavier actuel du MenuItem ciblé * @param raccourcis Le raccourci clavier actuel du MenuItem ciblé
*/ */
public RaccourcisElement(String nom, KeyStroke raccourcis) { public RaccourcisElement(String nom, KeyStroke raccourcis) {
super(new GridLayout(1, 2)); super(new GridLayout(1, 2));
@@ -58,7 +60,7 @@ public class RaccourcisElement extends JPanel {
} }
/** /**
* Action lors du clic sur le boutton d'édition du raccourcis * Action lors du clic sur le bouton d'édition du raccourci
* *
* @param evt écouteur d'évènement * @param evt écouteur d'évènement
*/ */
@@ -72,7 +74,7 @@ public class RaccourcisElement extends JPanel {
/** Valeur qui permet de définir si une touche n'est pas reconnue */ /** Valeur qui permet de définir si une touche n'est pas reconnue */
private static final int INDETERMINATE = -1; private static final int INDETERMINATE = -1;
/** La valeur de la touche pressé precedament */ /** La valeur de la touche pressée précédemment */
private int previousKeyPressed = INDETERMINATE; private int previousKeyPressed = INDETERMINATE;
@Override @Override
@@ -94,7 +96,8 @@ public class RaccourcisElement extends JPanel {
RaccourcisClavier.sauvegarderRaccourcis(); RaccourcisClavier.sauvegarderRaccourcis();
} else { } else {
final String TITRE_ERREUR = "Erreur raccourcis"; final String TITRE_ERREUR = "Erreur raccourcis";
final String MESSAGE_ERREUR = "Le raccourcis que vous venez de réaliser est déja affecté à une autre fonctionnalité"; final String MESSAGE_ERREUR = "Le raccourcis que "
+ "vous venez de réaliser est déjà affecté à une autre fonctionnalité";
Popup.errorPopup(btnRaccourcis, TITRE_ERREUR, MESSAGE_ERREUR); Popup.errorPopup(btnRaccourcis, TITRE_ERREUR, MESSAGE_ERREUR);
btnRaccourcis.setText(modifierToString(raccourcis.getModifiers()) + " + " + (char)raccourcis.getKeyCode()); btnRaccourcis.setText(modifierToString(raccourcis.getModifiers()) + " + " + (char)raccourcis.getKeyCode());
@@ -118,8 +121,9 @@ public class RaccourcisElement extends JPanel {
} }
/** /**
* Methode outils qui permet de convertir la valeur tapée en KeyEvent * Méthode outil qui permet de convertir la valeur tapée en
* @param maskValue Valeur de masque tapé (controle, shift ou alt) * KeyEvent
* @param maskValue Valeur de masque tapé (control, shift ou alt)
* @return Le KeyEvent correspondant * @return Le KeyEvent correspondant
*/ */
private int getMask(int maskValue) { private int getMask(int maskValue) {
@@ -131,7 +135,8 @@ public class RaccourcisElement extends JPanel {
} }
/** /**
* Méthode outils qui permet de convertir la valeur tapée en Chaine de caractère * Méthode outil qui permet de convertir la valeur tapée en
* chaîne de caractère
* @param maskValue Valeur de masque tapé (controle, shift ou alt) * @param maskValue Valeur de masque tapé (controle, shift ou alt)
* @return La chaine de caractère correspondante * @return La chaine de caractère correspondante
*/ */
@@ -147,9 +152,9 @@ public class RaccourcisElement extends JPanel {
} }
/** /**
* Convertis un Modifieur en chaine de caractère * Convertit un Modifier en chaîne de caractère
* @param modifier valeur du modifieur (Element d'un KeyStroke != KeyEvent) * @param modifier valeur du modifier (Element d'un KeyStroke != KeyEvent)
* @return La chaine de caractère correspondante * @return La chaîne de caractère correspondante
*/ */
private String modifierToString(int modifier) { private String modifierToString(int modifier) {
return switch (modifier) { return switch (modifier) {
@@ -160,17 +165,17 @@ public class RaccourcisElement extends JPanel {
} }
/** /**
* Convertis un raccourcis en chaine de caractère * Convertis un raccourci en chaîne de caractère
* @param keyStroke Le raccourcis en question * @param keyStroke Le raccourci en question
* @return La chaine de caractère construite à partir du raccourcis * @return La chaîne de caractère construite à partir du raccourci
*/ */
private String keystrokeToString(KeyStroke keyStroke) { private String keystrokeToString(KeyStroke keyStroke) {
return modifierToString(keyStroke.getModifiers()) + " + " + keyStroke.toString().split(" ")[2]; return modifierToString(keyStroke.getModifiers()) + " + " + keyStroke.toString().split(" ")[2];
} }
/** /**
* Change le raccourcis (visuellement) * Change le raccourci (visuellement)
* @param raccourcis Nouveau raccourcis * @param raccourcis nouveau raccourci
*/ */
public void setRaccourcis(KeyStroke raccourcis) { public void setRaccourcis(KeyStroke raccourcis) {
this.raccourcis = raccourcis; this.raccourcis = raccourcis;