mirror of
https://github.com/LucasVbr/LecteurPdfDoubleAffichage.git
synced 2026-05-13 17:11:51 +00:00
refactor + javadoc
This commit is contained in:
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* IhmPdf, 03/02/2022
|
||||
* IUT Rodez 2022, INFO2
|
||||
* pas de copyright, aucun droits
|
||||
* Pas de copyright, aucun droits
|
||||
*/
|
||||
|
||||
package lecteur_pdf;
|
||||
@@ -19,9 +19,9 @@ import java.awt.event.WindowEvent;
|
||||
* Classe définissant une fenêtre qui peut contenir un document PDF
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class Fenetre extends JFrame {
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* GestionPdf.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;
|
||||
@@ -15,9 +15,9 @@ import java.util.List;
|
||||
* Gestionnaire des fenêtres ouvertes dans l'application
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class GestionFenetre {
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* GestionMode.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;
|
||||
@@ -17,9 +17,9 @@ import java.util.ArrayList;
|
||||
* Gestionnaire de mode Synchronisé ou Séparé
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class GestionMode {
|
||||
|
||||
@@ -36,12 +36,12 @@ public class GestionMode {
|
||||
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 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
|
||||
*/
|
||||
@SuppressWarnings("SpellCheckingInspection")
|
||||
public static void addItem(NouvelleFenetre fenetre, ModeSepare separe, ModeSynchronise synchronise) {
|
||||
nouvelleFenetreList.add(fenetre);
|
||||
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() {
|
||||
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() {
|
||||
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() {
|
||||
for (NouvelleFenetre item : nouvelleFenetreList) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Popup.java, 09/03/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;
|
||||
@@ -13,9 +13,9 @@ import java.awt.*;
|
||||
* Classe outils permettant de créer des fenêtres Popups
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class Popup {
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* SelectionnerFichier.java, 18/11/2021
|
||||
* IUT Rodez 2021-2021, INFO2
|
||||
* pas de copyright, aucun droits
|
||||
* Pas de copyright, aucun droits
|
||||
*/
|
||||
|
||||
package lecteur_pdf;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* MenuBar.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.menuBar;
|
||||
@@ -18,9 +18,9 @@ import javax.swing.*;
|
||||
* Barre de menu contenant l'ensemble des menus 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 MenuBar extends JMenuBar {
|
||||
|
||||
|
||||
@@ -16,16 +16,18 @@ import javax.swing.*;
|
||||
* l'affichage de l'application
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @see JMenu
|
||||
*/
|
||||
public class MenuAffichage extends JMenu {
|
||||
|
||||
/**
|
||||
* 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) {
|
||||
super("Affichage");
|
||||
|
||||
@@ -7,9 +7,7 @@
|
||||
package lecteur_pdf.menuBar.menu;
|
||||
|
||||
import lecteur_pdf.Fenetre;
|
||||
import lecteur_pdf.menuBar.menuItems.FermerFichier;
|
||||
import lecteur_pdf.menuBar.menuItems.OuvrirFichier;
|
||||
import lecteur_pdf.menuBar.menuItems.Quitter;
|
||||
import lecteur_pdf.menuBar.menuItems.*;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@@ -18,16 +16,18 @@ import javax.swing.*;
|
||||
* la gestion des fichiers de l'application
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @see JMenu
|
||||
*/
|
||||
public class MenuFichier extends JMenu {
|
||||
|
||||
/**
|
||||
* 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) {
|
||||
super("Fichier");
|
||||
|
||||
@@ -8,9 +8,7 @@ package lecteur_pdf.menuBar.menu;
|
||||
|
||||
import lecteur_pdf.Fenetre;
|
||||
import lecteur_pdf.GestionMode;
|
||||
import lecteur_pdf.menuBar.menuItems.ModeSepare;
|
||||
import lecteur_pdf.menuBar.menuItems.ModeSynchronise;
|
||||
import lecteur_pdf.menuBar.menuItems.NouvelleFenetre;
|
||||
import lecteur_pdf.menuBar.menuItems.*;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@@ -19,16 +17,18 @@ import javax.swing.*;
|
||||
* mode multi-affichage
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @see JMenu
|
||||
*/
|
||||
public class MenuMode extends JMenu {
|
||||
|
||||
/**
|
||||
* 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) {
|
||||
super("Mode");
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
package lecteur_pdf.menuBar.menu;
|
||||
|
||||
import lecteur_pdf.Fenetre;
|
||||
import lecteur_pdf.menuBar.menuItems.ModifierTouches;
|
||||
import lecteur_pdf.menuBar.menuItems.*;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@@ -16,16 +16,18 @@ import javax.swing.*;
|
||||
* l'application
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @see JMenu
|
||||
*/
|
||||
public class MenuOptions extends JMenu {
|
||||
|
||||
/**
|
||||
* 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) {
|
||||
super("Options");
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* FermerFichier.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.menuBar.menuItems;
|
||||
@@ -10,40 +10,55 @@ import lecteur_pdf.Fenetre;
|
||||
import lecteur_pdf.Popup;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
/**
|
||||
* Élément de {@link lecteur_pdf.menuBar.menu.MenuFichier} qui permet de
|
||||
* fermer le document PDF
|
||||
* courant
|
||||
* Élément de {@link lecteur_pdf.menuBar.menu.MenuFichier MenuFichier} qui
|
||||
* permet de fermer le document PDF courant
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @see 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";
|
||||
|
||||
/** 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) {
|
||||
super(parent, "Fermer");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void action(ActionEvent evt) {
|
||||
protected void action() {
|
||||
if (parent.getPdfPanel().isCharge()) {
|
||||
int resultatPopup = Popup.OuiNonPopup(parent, TITRE, MESSAGE);
|
||||
if (resultatPopup == JOptionPane.YES_OPTION) parent.fermerPdf();
|
||||
if (resultatPopup == JOptionPane.YES_OPTION) {
|
||||
parent.fermerPdf();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* MenuItem.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.menuBar.menuItems;
|
||||
@@ -10,7 +10,6 @@ import lecteur_pdf.Fenetre;
|
||||
import lecteur_pdf.raccourcisClavier.RaccourcisClavier;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @see 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;
|
||||
|
||||
/**
|
||||
@@ -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
|
||||
* claviers
|
||||
*
|
||||
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
|
||||
* @param name Nom de l'action
|
||||
* @param parent Référence de la fenêtre qui possède l'instance de ce
|
||||
* MenuItem
|
||||
* @param name Nom de l'action
|
||||
*/
|
||||
public MenuItem(Fenetre parent, String name) {
|
||||
super(name);
|
||||
this.parent = parent;
|
||||
addActionListener(this::action);
|
||||
addActionListener(evt -> action());
|
||||
RaccourcisClavier.listeMenuItems.add(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
* IUT Rodez 2021-2022, INFO 2
|
||||
* pas de copyright, aucun droits
|
||||
* IUT Rodez 2021-2022, INFO2
|
||||
* Pas de copyright, aucun droits
|
||||
*/
|
||||
|
||||
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é
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @see JRadioButtonMenuItem
|
||||
*/
|
||||
public class ModeSepare extends JRadioButtonMenuItem {
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ModeSynchronise.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.menuBar.menuItems;
|
||||
@@ -12,12 +12,14 @@ import lecteur_pdf.raccourcisClavier.RaccourcisClavier;
|
||||
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 Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @see JRadioButtonMenuItem
|
||||
*/
|
||||
public class ModeSynchronise extends JRadioButtonMenuItem {
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ModifierTouches.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.menuBar.menuItems;
|
||||
@@ -9,15 +9,16 @@ package lecteur_pdf.menuBar.menuItems;
|
||||
import lecteur_pdf.Fenetre;
|
||||
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 Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @see MenuItem
|
||||
*/
|
||||
public class ModifierTouches extends MenuItem {
|
||||
|
||||
@@ -25,14 +26,15 @@ public class ModifierTouches extends MenuItem {
|
||||
* Créé un nouvel élément de
|
||||
* {@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) {
|
||||
super(parent, "Modifier Touches");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void action(ActionEvent evt) {
|
||||
protected void action() {
|
||||
new RaccourcisClavier();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* NouvelleFenetre.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.menuBar.menuItems;
|
||||
@@ -10,16 +10,14 @@ import lecteur_pdf.Fenetre;
|
||||
import lecteur_pdf.GestionFenetre;
|
||||
import lecteur_pdf.GestionMode;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
/**
|
||||
* É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
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class NouvelleFenetre extends MenuItem {
|
||||
|
||||
@@ -33,7 +31,7 @@ public class NouvelleFenetre extends MenuItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void action(ActionEvent evt) {
|
||||
public void action() {
|
||||
/* Essaye de créer une nouvelle fenêtre */
|
||||
GestionFenetre.newIhmPdf();
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* OuvrirFichier.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.menuBar.menuItems;
|
||||
@@ -11,16 +11,15 @@ import lecteur_pdf.Popup;
|
||||
import lecteur_pdf.SelectionnerFichier;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* Élément de Menu Ouvrir Fichier qui permet d'ouvrir un document
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class OuvrirFichier extends MenuItem {
|
||||
|
||||
@@ -40,7 +39,7 @@ public class OuvrirFichier extends MenuItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void action(ActionEvent evt) {
|
||||
protected void action() {
|
||||
|
||||
int valide = parent.getPdfPanel().isCharge()
|
||||
? Popup.OuiNonPopup(parent, FermerFichier.TITRE, FermerFichier.MESSAGE)
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
/*
|
||||
* PageEntiere.java, 09/03/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.menuBar.menuItems;
|
||||
|
||||
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
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
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
|
||||
*/
|
||||
@SuppressWarnings("SpellCheckingInspection")
|
||||
public PageEntiere(Fenetre parent) {
|
||||
super(parent, "Page Entière");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void action(ActionEvent evt) {
|
||||
protected void action() {
|
||||
parent.getPdfPanel().setPleineLargeur(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* PagePrecedente.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.menuBar.menuItems;
|
||||
@@ -10,18 +10,16 @@ import lecteur_pdf.Fenetre;
|
||||
import lecteur_pdf.GestionFenetre;
|
||||
import lecteur_pdf.GestionMode;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
/**
|
||||
* É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é)
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
@SuppressWarnings("SpellCheckingInspection")
|
||||
|
||||
public class PagePrecedente extends MenuItem {
|
||||
|
||||
/**
|
||||
@@ -35,7 +33,7 @@ public class PagePrecedente extends MenuItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void action(ActionEvent evt) {
|
||||
protected void action() {
|
||||
if (GestionMode.isModeSepare()) {
|
||||
parent.getPdfPanel().pagePrecedente();
|
||||
} else {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* PageSuivante.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.menuBar.menuItems;
|
||||
@@ -10,16 +10,14 @@ import lecteur_pdf.Fenetre;
|
||||
import lecteur_pdf.GestionFenetre;
|
||||
import lecteur_pdf.GestionMode;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
/**
|
||||
* É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é)
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class PageSuivante extends MenuItem {
|
||||
|
||||
@@ -34,7 +32,7 @@ public class PageSuivante extends MenuItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void action(ActionEvent evt) {
|
||||
protected void action() {
|
||||
if (GestionMode.isModeSepare()) {
|
||||
parent.getPdfPanel().pageSuivante();
|
||||
} else {
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
/*
|
||||
* PleinEcran.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.menuBar.menuItems;
|
||||
|
||||
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
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class PleinEcran extends MenuItem {
|
||||
|
||||
@@ -30,7 +28,7 @@ public class PleinEcran extends MenuItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void action(ActionEvent evt) {
|
||||
protected void action() {
|
||||
parent.pleinEcran();
|
||||
}
|
||||
}
|
||||
@@ -1,24 +1,22 @@
|
||||
/*
|
||||
* PleineLargeur.java, 09/03/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.menuBar.menuItems;
|
||||
|
||||
import lecteur_pdf.Fenetre;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
/**
|
||||
* É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
|
||||
* celle de la fenêtre)
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class PleineLargeur extends MenuItem {
|
||||
|
||||
@@ -34,7 +32,7 @@ public class PleineLargeur extends MenuItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void action(ActionEvent evt) {
|
||||
protected void action() {
|
||||
parent.getPdfPanel().setPleineLargeur(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Quitter.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.menuBar.menuItems;
|
||||
@@ -10,16 +10,15 @@ import lecteur_pdf.Fenetre;
|
||||
import lecteur_pdf.Popup;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
/**
|
||||
* É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
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class Quitter extends MenuItem {
|
||||
|
||||
@@ -33,7 +32,7 @@ public class Quitter extends MenuItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void action(ActionEvent evt) {
|
||||
protected void action() {
|
||||
final String TITRE = "Quitter";
|
||||
final String MESSAGE = "Êtes-vous sûr de vouloir quitter l'application ?";
|
||||
if (Popup.OuiNonPopup(parent, TITRE, MESSAGE) == JOptionPane.YES_OPTION) parent.quitter();
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
/*
|
||||
* ZoomDefaut.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.menuBar.menuItems;
|
||||
|
||||
import lecteur_pdf.Fenetre;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
/**
|
||||
* Élément de Menu Zoom 100% qui permet de mettre le Zoom par défaut
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class ZoomDefaut extends MenuItem {
|
||||
|
||||
@@ -30,7 +28,7 @@ public class ZoomDefaut extends MenuItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void action(ActionEvent evt) {
|
||||
protected void action() {
|
||||
parent.getPdfPanel().setZoom(1.0f);
|
||||
parent.validate();
|
||||
}
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
/*
|
||||
* ZoomMoins.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.menuBar.menuItems;
|
||||
|
||||
import lecteur_pdf.Fenetre;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
/**
|
||||
* Élément de Menu Zoom 50% qui permet de dézoomer
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class ZoomMoins extends MenuItem {
|
||||
|
||||
@@ -30,7 +28,7 @@ public class ZoomMoins extends MenuItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void action(ActionEvent evt) {
|
||||
protected void action() {
|
||||
parent.getPdfPanel().setZoom(0.5f);
|
||||
parent.validate();
|
||||
}
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
/*
|
||||
* ZoomPlus.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.menuBar.menuItems;
|
||||
|
||||
import lecteur_pdf.Fenetre;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
/**
|
||||
* Élément de Menu Zoom 150% qui permet de zoomer
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class ZoomPlus extends MenuItem {
|
||||
|
||||
@@ -30,7 +28,7 @@ public class ZoomPlus extends MenuItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void action(ActionEvent evt) {
|
||||
protected void action() {
|
||||
parent.getPdfPanel().setZoom(1.5f);
|
||||
parent.validate();
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* PdfLoader.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.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
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class DocumentPdf {
|
||||
|
||||
/** Le document PDF chargé avec PdfBox */
|
||||
private final PDDocument document;
|
||||
|
||||
/** L'outils de rendus de PdfBox */
|
||||
/** L'outil de rendus de PdfBox */
|
||||
private PDFRenderer renderer;
|
||||
|
||||
/** La largueur par défaut de la page courrante */
|
||||
/** La largeur par défaut de la page courante */
|
||||
private int minWidth;
|
||||
|
||||
/** La longueur par défaut de la page courrante */
|
||||
/** La longueur par défaut de la page courante */
|
||||
private int minHeight;
|
||||
|
||||
/**
|
||||
@@ -48,12 +48,12 @@ public class DocumentPdf {
|
||||
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() {
|
||||
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() {
|
||||
return minHeight;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* PdfPanel.java, 26/02/2022
|
||||
* IUT Rodez 2021-2022, INFO 2
|
||||
* IUT Rodez 2021-2022, INFO2
|
||||
* Pas de copyright, aucun droits
|
||||
*/
|
||||
|
||||
@@ -19,13 +19,13 @@ import java.io.IOException;
|
||||
* Interface de la mainframe de l'application sans utilisation de forms
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Lucas Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
*/
|
||||
public class PdfPanel extends JPanel {
|
||||
|
||||
/** Le numéro de la page courrante */
|
||||
/** Le numéro de la page courante */
|
||||
private int numeroPage;
|
||||
|
||||
/** 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 */
|
||||
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;
|
||||
|
||||
/** Le document PDF chargé */
|
||||
@@ -54,10 +55,10 @@ public class PdfPanel extends JPanel {
|
||||
/** Element scrollable qui contiens la page */
|
||||
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;
|
||||
|
||||
/** Label qui contiens l'image de la page affichée */
|
||||
/** Label qui contient l'image de la page affichée */
|
||||
private final JLabel page;
|
||||
|
||||
/**
|
||||
@@ -100,8 +101,8 @@ public class PdfPanel extends JPanel {
|
||||
add(scrollPane, BorderLayout.CENTER);
|
||||
|
||||
/* Actions */
|
||||
btnSuivant.addActionListener(this::btnSuivantAction);
|
||||
btnPrecedent.addActionListener(this::btnPrecedentAction);
|
||||
btnSuivant.addActionListener(evt1 -> btnSuivantAction());
|
||||
btnPrecedent.addActionListener(evt -> btnPrecedentAction());
|
||||
|
||||
/* Saisie uniquement de caractère numérique */
|
||||
indexPageInput.addKeyListener(new KeyAdapter() {
|
||||
@@ -135,29 +136,28 @@ public class PdfPanel extends JPanel {
|
||||
}
|
||||
|
||||
/**
|
||||
* Action lors du clic sur le boutton suivant
|
||||
* Affiche la page suivante du ou des documents (suivant si le mode synchronisé est activé)
|
||||
*
|
||||
* @param evt Écouteur d'évènement
|
||||
* Action lors du clic sur le bouton suivant
|
||||
* Affiche la page suivante du ou des documents (suivant si le mode
|
||||
* synchronisé est activé ou non)
|
||||
*/
|
||||
private void btnSuivantAction(ActionEvent evt) {
|
||||
private void btnSuivantAction() {
|
||||
if (GestionMode.isModeSepare()) pageSuivante();
|
||||
else GestionFenetre.nextPages();
|
||||
}
|
||||
|
||||
/**
|
||||
* Action lors du clic sur le boutton precedent
|
||||
* Affiche la page précédente du ou des documents (suivant si le mode synchronisé est activé)
|
||||
*
|
||||
* @param evt Écouteur d'évènement
|
||||
* 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é ou non)
|
||||
*/
|
||||
private void btnPrecedentAction(ActionEvent evt) {
|
||||
private void btnPrecedentAction() {
|
||||
if (GestionMode.isModeSepare()) pagePrecedente();
|
||||
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() {
|
||||
if (pdfLoader == null || processing) return;
|
||||
|
||||
@@ -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