mirror of
https://github.com/LucasVbr/LecteurPdfDoubleAffichage.git
synced 2026-07-09 20:57:44 +00:00
refactor + javadoc
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* RaccourcisClavier.java, 26/02/2022
|
||||
* IUT Rodez 2021-2022, INFO 2
|
||||
* pas de copyright, aucun droits
|
||||
* IUT Rodez 2021-2022, INFO2
|
||||
* Pas de copyright, aucun droits
|
||||
*/
|
||||
|
||||
package lecteur_pdf.raccourcisClavier;
|
||||
@@ -21,16 +21,20 @@ import java.util.Map;
|
||||
* Gestionnaire des raccourcis claviers de l'application
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
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";
|
||||
|
||||
/** 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;
|
||||
|
||||
/**
|
||||
@@ -45,7 +49,8 @@ public class RaccourcisClavier extends JFrame {
|
||||
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<>() {};
|
||||
|
||||
@@ -53,20 +58,9 @@ public class RaccourcisClavier extends JFrame {
|
||||
* La liste des noms de MenuItems de l'application
|
||||
*/
|
||||
public static String[] LISTE_NOM = {
|
||||
"Ouvrir",
|
||||
"Fermer",
|
||||
"Quitter",
|
||||
"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é",
|
||||
"Ouvrir", "Fermer", "Quitter", "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"
|
||||
};
|
||||
|
||||
@@ -74,25 +68,42 @@ public class RaccourcisClavier extends JFrame {
|
||||
* La liste des raccourcis par défaut
|
||||
*/
|
||||
public static KeyStroke[] RACCOURCIS_DEFAUT = {
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_DOWN_MASK), // Ouvrir
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_F, KeyEvent.CTRL_DOWN_MASK), // Fermer
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.CTRL_DOWN_MASK), // Quitter
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_F11, KeyEvent.CTRL_DOWN_MASK), // Mode Plein Écran
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, KeyEvent.CTRL_DOWN_MASK), // Page Précédente
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.CTRL_DOWN_MASK), // Page Suivante
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, KeyEvent.CTRL_DOWN_MASK), // Zoom 50%
|
||||
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
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_DOWN_MASK),
|
||||
// Ouvrir
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_F, KeyEvent.CTRL_DOWN_MASK),
|
||||
// Fermer
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.CTRL_DOWN_MASK),
|
||||
// Quitter
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_F11, KeyEvent.CTRL_DOWN_MASK),
|
||||
// Mode Plein Écran
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, KeyEvent.CTRL_DOWN_MASK),
|
||||
// Page Précédente
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.CTRL_DOWN_MASK),
|
||||
// Page Suivante
|
||||
KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, KeyEvent.CTRL_DOWN_MASK),
|
||||
// Zoom 50%
|
||||
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() {
|
||||
super("Modification des raccourcis claviers");
|
||||
@@ -104,16 +115,20 @@ public class RaccourcisClavier extends JFrame {
|
||||
affecterRaccourcis();
|
||||
|
||||
/* 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) {
|
||||
RaccourcisElement raccourcisElement = new RaccourcisElement(nom, raccourcis.get(nom));
|
||||
RaccourcisElement raccourcisElement = new RaccourcisElement(nom,
|
||||
raccourcis.get(
|
||||
nom));
|
||||
listeRaccourcisElement.add(raccourcisElement);
|
||||
panel.add(raccourcisElement);
|
||||
}
|
||||
|
||||
/* Ajout du boutton Reset */
|
||||
/* Ajout du bouton Reset */
|
||||
JButton btnReset = new JButton("Raccourcis par défaut");
|
||||
btnReset.addActionListener(this::actionBtnReset);
|
||||
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
|
||||
* Met a jour l'interface
|
||||
*
|
||||
* @param evt écouteur d'évènement
|
||||
*/
|
||||
private void actionBtnReset(ActionEvent evt) {
|
||||
initialisationFichierRaccourcis();
|
||||
chargerRaccourcis();
|
||||
|
||||
// Affichage des boutons
|
||||
for (int i = 0; i < listeRaccourcisElement.size() ; i++) {
|
||||
for (int i = 0; i < listeRaccourcisElement.size(); i++) {
|
||||
String cle = LISTE_NOM[i];
|
||||
KeyStroke valeur = raccourcis.get(cle);
|
||||
|
||||
@@ -192,7 +205,8 @@ public class RaccourcisClavier extends JFrame {
|
||||
* et la sauvegarde
|
||||
*/
|
||||
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]);
|
||||
}
|
||||
sauvegarderRaccourcis();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* RaccourcisElement.java 10/03/2022
|
||||
* IUT Rodez 2021-2022, INFO 2
|
||||
* IUT Rodez 2021-2022, INFO2
|
||||
* Pas de copyright, aucun droits
|
||||
*/
|
||||
|
||||
@@ -15,31 +15,33 @@ import java.awt.event.KeyEvent;
|
||||
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 Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class RaccourcisElement extends JPanel {
|
||||
|
||||
/** Le nom du MenuItem */
|
||||
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;
|
||||
|
||||
/** Le raccourcis clavier */
|
||||
/** Le raccourci clavier */
|
||||
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 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 raccourcis Le raccourcis clavier actuel du MenuItem ciblé
|
||||
* @param raccourcis Le raccourci clavier actuel du MenuItem ciblé
|
||||
*/
|
||||
public RaccourcisElement(String nom, KeyStroke raccourcis) {
|
||||
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
|
||||
*/
|
||||
@@ -72,7 +74,7 @@ public class RaccourcisElement extends JPanel {
|
||||
/** Valeur qui permet de définir si une touche n'est pas reconnue */
|
||||
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;
|
||||
|
||||
@Override
|
||||
@@ -94,7 +96,8 @@ public class RaccourcisElement extends JPanel {
|
||||
RaccourcisClavier.sauvegarderRaccourcis();
|
||||
} else {
|
||||
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);
|
||||
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
|
||||
* @param maskValue Valeur de masque tapé (controle, shift ou alt)
|
||||
* Méthode outil qui permet de convertir la valeur tapée en
|
||||
* KeyEvent
|
||||
* @param maskValue Valeur de masque tapé (control, shift ou alt)
|
||||
* @return Le KeyEvent correspondant
|
||||
*/
|
||||
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)
|
||||
* @return La chaine de caractère correspondante
|
||||
*/
|
||||
@@ -147,9 +152,9 @@ public class RaccourcisElement extends JPanel {
|
||||
}
|
||||
|
||||
/**
|
||||
* Convertis un Modifieur en chaine de caractère
|
||||
* @param modifier valeur du modifieur (Element d'un KeyStroke != KeyEvent)
|
||||
* @return La chaine de caractère correspondante
|
||||
* Convertit un Modifier en chaîne de caractère
|
||||
* @param modifier valeur du modifier (Element d'un KeyStroke != KeyEvent)
|
||||
* @return La chaîne de caractère correspondante
|
||||
*/
|
||||
private String modifierToString(int modifier) {
|
||||
return switch (modifier) {
|
||||
@@ -160,17 +165,17 @@ public class RaccourcisElement extends JPanel {
|
||||
}
|
||||
|
||||
/**
|
||||
* Convertis un raccourcis en chaine de caractère
|
||||
* @param keyStroke Le raccourcis en question
|
||||
* @return La chaine de caractère construite à partir du raccourcis
|
||||
* Convertis un raccourci en chaîne de caractère
|
||||
* @param keyStroke Le raccourci en question
|
||||
* @return La chaîne de caractère construite à partir du raccourci
|
||||
*/
|
||||
private String keystrokeToString(KeyStroke keyStroke) {
|
||||
return modifierToString(keyStroke.getModifiers()) + " + " + keyStroke.toString().split(" ")[2];
|
||||
}
|
||||
|
||||
/**
|
||||
* Change le raccourcis (visuellement)
|
||||
* @param raccourcis Nouveau raccourcis
|
||||
* Change le raccourci (visuellement)
|
||||
* @param raccourcis nouveau raccourci
|
||||
*/
|
||||
public void setRaccourcis(KeyStroke raccourcis) {
|
||||
this.raccourcis = raccourcis;
|
||||
|
||||
Reference in New Issue
Block a user