mirror of
https://github.com/LucasVbr/LecteurPdfDoubleAffichage.git
synced 2026-05-13 17:11:51 +00:00
javadoc
This commit is contained in:
@@ -16,12 +16,14 @@ import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
|
||||
/**
|
||||
* Classe définissant une fenêtre qui peut contenir un document PDF
|
||||
* Classe définissant une {@link Fenetre fenêtre} qui peut contenir un
|
||||
* document PDF
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Tristan Nogaret
|
||||
* @author Lucàs Vabre
|
||||
* @author Noé Villeneuve
|
||||
* @see JFrame
|
||||
*/
|
||||
public class Fenetre extends JFrame {
|
||||
|
||||
@@ -31,23 +33,28 @@ public class Fenetre extends JFrame {
|
||||
public static final String TITRE = "LPDA";
|
||||
|
||||
/**
|
||||
* Le Panel contenant le document PDF
|
||||
* Le {@link PdfPanel panel} contenant le document PDF
|
||||
*/
|
||||
private final PdfPanel pdfPanel;
|
||||
|
||||
/* Relatif au FullScreen */
|
||||
|
||||
/**
|
||||
* Booléen qui définit si la fenêtre est en mode plein écran ou non
|
||||
* Booléen qui définit si la {@link Fenetre fenêtre} est en mode
|
||||
* {@link lecteur_pdf.menuBar.menuItems.PleinEcran plein écran} ou non
|
||||
*/
|
||||
private boolean fullscreen = false;
|
||||
|
||||
/**
|
||||
* Composant Graphique permettant la mise en place du plein écran
|
||||
* Composant graphique permettant la mise en place du
|
||||
* {@link lecteur_pdf.menuBar.menuItems.PleinEcran plein écran}
|
||||
*
|
||||
* @see GraphicsDevice
|
||||
*/
|
||||
private GraphicsDevice device;
|
||||
|
||||
/**
|
||||
* Créé une nouvelle fenêtre vide
|
||||
* Créé une nouvelle {@link Fenetre fenêtre} vide
|
||||
*/
|
||||
public Fenetre() {
|
||||
super(TITRE);
|
||||
@@ -63,7 +70,7 @@ public class Fenetre extends JFrame {
|
||||
setJMenuBar(new MenuBar(this)); // Ajoute la barre des menus
|
||||
|
||||
/* Action à la fermeture de la fenêtre */
|
||||
this.addWindowListener(new WindowAdapter(){
|
||||
this.addWindowListener(new WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosing(WindowEvent et) {
|
||||
quitter();
|
||||
@@ -82,20 +89,24 @@ public class Fenetre extends JFrame {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Le Panel contenant le document PDF
|
||||
* @return Le {@link PdfPanel panel} contenant le document PDF
|
||||
*/
|
||||
public PdfPanel getPdfPanel() {
|
||||
return pdfPanel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Si fullscreen est égal à false -> Désactive le mode Plein Écran
|
||||
* Sinon Active le mode Plein Écran
|
||||
* Si fullscreen est égal à false ->
|
||||
* <ul><li>Désactive le mode
|
||||
* {@link lecteur_pdf.menuBar.menuItems.PleinEcran Plein Écran}</li>
|
||||
* <li>Sinon, active le mode
|
||||
* {@link lecteur_pdf.menuBar.menuItems.PleinEcran Plein Écran}</li></ul>
|
||||
*/
|
||||
public void pleinEcran() {
|
||||
|
||||
if (!fullscreen) { // Active le Plein Écran
|
||||
GraphicsEnvironment graphics = GraphicsEnvironment.getLocalGraphicsEnvironment();
|
||||
GraphicsEnvironment graphics
|
||||
= GraphicsEnvironment.getLocalGraphicsEnvironment();
|
||||
device = graphics.getDefaultScreenDevice();
|
||||
device.setFullScreenWindow(this);
|
||||
} else { // Désactive le Plein Écran
|
||||
@@ -108,7 +119,7 @@ public class Fenetre extends JFrame {
|
||||
}
|
||||
|
||||
/**
|
||||
* Décharge le PDF courant, ferme la fenêtre
|
||||
* Décharge le PDF courant, ferme la {@link Fenetre fenêtre}
|
||||
* S'il s'agit de la dernière fenêtre ouverte, arrête l'application
|
||||
*/
|
||||
public void quitter() {
|
||||
@@ -122,11 +133,14 @@ public class Fenetre extends JFrame {
|
||||
|
||||
/* Si la liste des fenêtres n'est pas pleine alors on réactive le
|
||||
bouton pour créer une nouvelle fenêtre */
|
||||
if (GestionFenetre.FENETRE_LIST.size() < GestionFenetre.NB_MAX_PDF)
|
||||
if (GestionFenetre.FENETRE_LIST.size() < GestionFenetre.NB_MAX_PDF) {
|
||||
GestionMode.activerBtnNouvelleFenetre();
|
||||
}
|
||||
|
||||
/* S'il n'y a plus de fenêtres ouvertes on quitte l'application */
|
||||
if (GestionFenetre.FENETRE_LIST.size() == 0) System.exit(0);
|
||||
if (GestionFenetre.FENETRE_LIST.size() == 0) {
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -12,7 +12,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Gestionnaire des fenêtres ouvertes dans l'application
|
||||
* Gestionnaire des {@link Fenetre fenêtres} ouvertes dans l'application
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Tristan Nogaret
|
||||
@@ -22,17 +22,23 @@ import java.util.List;
|
||||
public class GestionFenetre {
|
||||
|
||||
/**
|
||||
* Icône de l'application (affiché en haut à droite des fenêtres)
|
||||
* Icône de l'application (affiché en haut à droite des
|
||||
* {@link Fenetre fenêtres})
|
||||
*
|
||||
* @see Image
|
||||
*/
|
||||
public static final Image ICONE = new ImageIcon("./lib/icon.png").getImage();
|
||||
public static final Image ICONE = new ImageIcon(
|
||||
"./lib/icon.png").getImage();
|
||||
|
||||
/**
|
||||
* Nombre maximum de PDF que l'application peut ouvrir en simultané
|
||||
*/
|
||||
public static final int NB_MAX_PDF = 2;
|
||||
public static final int NB_MAX_PDF = 2;
|
||||
|
||||
/**
|
||||
* Liste des fenêtres ouvertes
|
||||
* Liste des {@link Fenetre fenêtres} ouvertes
|
||||
*
|
||||
* @see List
|
||||
*/
|
||||
public static final List<Fenetre> FENETRE_LIST = new ArrayList<>();
|
||||
|
||||
@@ -48,29 +54,37 @@ public class GestionFenetre {
|
||||
|
||||
/**
|
||||
* Méthode qui affiche la page suivante de tous les PDF ouverts
|
||||
* (mode Synchronisé)
|
||||
* ({@link lecteur_pdf.menuBar.menuItems.ModeSynchronise mode Synchronisé})
|
||||
*/
|
||||
public static void nextPages() {
|
||||
for (Fenetre ihm : FENETRE_LIST) ihm.getPdfPanel().pageSuivante();
|
||||
for (Fenetre ihm : FENETRE_LIST) {
|
||||
ihm.getPdfPanel().pageSuivante();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Méthode qui affiche la page précédente de tous les PDF ouverts
|
||||
* (mode Synchronisé)
|
||||
* ({@link lecteur_pdf.menuBar.menuItems.ModeSynchronise mode Synchronisé})
|
||||
*/
|
||||
public static void previousPages() {
|
||||
for (Fenetre ihm : FENETRE_LIST) ihm.getPdfPanel().pagePrecedente();
|
||||
for (Fenetre ihm : FENETRE_LIST) {
|
||||
ihm.getPdfPanel().pagePrecedente();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Lance l'application
|
||||
*
|
||||
* @param args non utilisé
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
/* Définit le style de la fenêtre sur l'explorateur Windows si possible */
|
||||
/* Définit le style de la fenêtre sur l'explorateur Windows si
|
||||
possible */
|
||||
try {
|
||||
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
|
||||
} catch (Exception ignored) {}
|
||||
UIManager.setLookAndFeel(
|
||||
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
|
||||
GestionMode.setModeSepare(true);
|
||||
newIhmPdf();
|
||||
|
||||
@@ -14,7 +14,8 @@ import java.awt.*;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Gestionnaire de mode Synchronisé ou Séparé
|
||||
* Gestionnaire de mode {@link ModeSynchronise Synchronisé} ou
|
||||
* {@link ModeSepare Séparé}
|
||||
*
|
||||
* @author Léo Franch
|
||||
* @author Tristan Nogaret
|
||||
@@ -23,40 +24,82 @@ import java.util.ArrayList;
|
||||
*/
|
||||
public class GestionMode {
|
||||
|
||||
/** Défini si le mode séparé est activé ou non */
|
||||
/**
|
||||
* Définit si le {@link ModeSepare mode Séparé} est activé ou non
|
||||
*/
|
||||
private static boolean modeSepare;
|
||||
|
||||
/** Liste les MenuItems de type NouvelleFenetre de l'application */
|
||||
private static final ArrayList<NouvelleFenetre> nouvelleFenetreList = new ArrayList<>();
|
||||
|
||||
/** Liste les MenuItem de type ModeSepare de l'application */
|
||||
private static final ArrayList<ModeSepare> modeSepareList = new ArrayList<>();
|
||||
|
||||
/** Liste les MenuItem de type ModeSynchronise de l'application */
|
||||
private static final ArrayList<ModeSynchronise> modeSynchroniseList = new ArrayList<>();
|
||||
/**
|
||||
* Liste les {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItems}
|
||||
* de type {@link NouvelleFenetre NouvelleFenetre} de l'application
|
||||
*
|
||||
* @see ArrayList
|
||||
*/
|
||||
private static final ArrayList<NouvelleFenetre> nouvelleFenetreList
|
||||
= new ArrayList<>();
|
||||
|
||||
/**
|
||||
* 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
|
||||
* Liste les {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItems}
|
||||
* de type {@link ModeSepare ModeSepare} de l'application
|
||||
*
|
||||
* @see ArrayList
|
||||
*/
|
||||
public static void addItem(NouvelleFenetre fenetre, ModeSepare separe, ModeSynchronise synchronise) {
|
||||
private static final ArrayList<ModeSepare> modeSepareList
|
||||
= new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Liste les {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItems}
|
||||
* de type {@link ModeSynchronise ModeSynchronise} de l'application
|
||||
*
|
||||
* @see ArrayList
|
||||
*/
|
||||
private static final ArrayList<ModeSynchronise> modeSynchroniseList
|
||||
= new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Référence les éléments
|
||||
* {@link NouvelleFenetre NouvelleFenetre},
|
||||
* {@link ModeSepare ModeSepare} et
|
||||
* {@link ModeSynchronise ModeSynchronise}
|
||||
* lors de la création d'une nouvelle {@link Fenetre fenêtre}
|
||||
*
|
||||
* @param fenetre Référence du
|
||||
* {@link lecteur_pdf.menuBar.menuItems.MenuItem
|
||||
* MenuItem}
|
||||
* {@link NouvelleFenetre NouvelleFenetre} de la fenêtre
|
||||
* créée
|
||||
* @param separe Référence du
|
||||
* {@link lecteur_pdf.menuBar.menuItems.MenuItem
|
||||
* MenuItem}
|
||||
* {@link ModeSepare ModeSepare} de la fenêtre créée
|
||||
* @param synchronise Référence du
|
||||
* {@link lecteur_pdf.menuBar.menuItems.MenuItem
|
||||
* MenuItem}
|
||||
* {@link ModeSynchronise ModeSynchronise} de la fenêtre
|
||||
* créée
|
||||
*/
|
||||
public static void addItem(NouvelleFenetre fenetre,
|
||||
ModeSepare separe,
|
||||
ModeSynchronise synchronise) {
|
||||
nouvelleFenetreList.add(fenetre);
|
||||
modeSepareList.add(separe);
|
||||
modeSynchroniseList.add(synchronise);
|
||||
updateMode();
|
||||
}
|
||||
|
||||
/** @return true si le mode séparé est activé, false sinon */
|
||||
/**
|
||||
* @return <ul><li>true si le {@link ModeSepare mode séparé} est
|
||||
* activé</li><li>false sinon</li></ul>
|
||||
*/
|
||||
public static boolean isModeSepare() {
|
||||
return modeSepare;
|
||||
}
|
||||
|
||||
/**
|
||||
* Change de mode
|
||||
* @param mode true pour le mode séparé, false pour le mode synchronisé
|
||||
*
|
||||
* @param mode <ul><li>true pour le mode séparé</li>
|
||||
* <li>false pour le mode synchronisé</li></ul>
|
||||
*/
|
||||
public static void setModeSepare(boolean mode) {
|
||||
modeSepare = mode;
|
||||
@@ -64,19 +107,19 @@ public class GestionMode {
|
||||
}
|
||||
|
||||
/**
|
||||
* Met à jour dans toutes les fenêtres ouvertes la checkbox du mode
|
||||
* sélectionné
|
||||
* Met à jour dans toutes les {@link Fenetre fenêtres} ouvertes la
|
||||
* checkbox du mode sélectionné
|
||||
*/
|
||||
private static void updateMode() {
|
||||
for (int i = 0; i < modeSepareList.size() ; i++) {
|
||||
for (int i = 0; i < modeSepareList.size(); i++) {
|
||||
modeSepareList.get(i).setSelected(modeSepare);
|
||||
modeSynchroniseList.get(i).setSelected(!modeSepare);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Grise le bouton "Nouvelle Fenêtre" de toutes les fenêtres de
|
||||
* l'application
|
||||
* Grise le bouton "{@link NouvelleFenetre Nouvelle Fenêtre}" de toutes les
|
||||
* {@link Fenetre fenêtres} de l'application
|
||||
*/
|
||||
public static void desactiverBtnNouvelleFenetre() {
|
||||
for (NouvelleFenetre item : nouvelleFenetreList) {
|
||||
@@ -86,8 +129,8 @@ public class GestionMode {
|
||||
}
|
||||
|
||||
/**
|
||||
* Dégrise le bouton "Nouvelle Fenêtre" de toutes les fenêtres de
|
||||
* l'application
|
||||
* Dégrise le bouton "{@link NouvelleFenetre Nouvelle Fenêtre}" de toutes
|
||||
* les {@link Fenetre fenêtres} de l'application
|
||||
*/
|
||||
public static void activerBtnNouvelleFenetre() {
|
||||
for (NouvelleFenetre item : nouvelleFenetreList) {
|
||||
|
||||
+25
-13
@@ -10,7 +10,7 @@ import javax.swing.*;
|
||||
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 Tristan Nogaret
|
||||
@@ -23,28 +23,40 @@ public class Popup {
|
||||
* Créé une nouvelle fenêtre comportant un message et
|
||||
* deux boutons : Oui et Non
|
||||
*
|
||||
* @param parent La fenêtre parente de référence
|
||||
* @param titre Titre de la fenêtre
|
||||
* @param message Message affiché dans la fenêtre
|
||||
* @return JOptionPane.YES_OPTION si oui est cliqué, JOptionPane.NO_OPTION si non est cliqué
|
||||
* @param parent La {@link Fenetre fenêtre} parente de référence
|
||||
* @param titre Titre de la {@link Fenetre fenêtre}
|
||||
* @param message Message affiché dans la {@link Fenetre fenêtre}
|
||||
* @return JOptionPane.YES_OPTION si oui est cliqué, JOptionPane
|
||||
* .NO_OPTION si non est cliqué
|
||||
* @see JOptionPane
|
||||
*/
|
||||
public static int OuiNonPopup(Component parent, String titre, String message) {
|
||||
public static int OuiNonPopup(Component parent,
|
||||
String titre,
|
||||
String message) {
|
||||
String[] choix = {"Oui", "Non"};
|
||||
return JOptionPane.showOptionDialog(parent, message, titre, JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE,
|
||||
return JOptionPane.showOptionDialog(parent, message, titre,
|
||||
JOptionPane.YES_NO_OPTION,
|
||||
JOptionPane.INFORMATION_MESSAGE,
|
||||
null, choix, choix[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Créé une nouvelle fenêtre comportant un message d'erreur avec un
|
||||
* bouton OK
|
||||
* Créé une nouvelle {@link Fenetre fenêtre} comportant un message
|
||||
* d'erreur avec un bouton OK
|
||||
*
|
||||
* @param parent La fenêtre parente de référence
|
||||
* @param titre Titre de la fenêtre
|
||||
* @param parent La {@link Fenetre fenêtre} parente de référence
|
||||
* @param titre Titre de la {@link Fenetre fenêtre}
|
||||
* @param message Message d'erreur
|
||||
* @see JOptionPane
|
||||
*/
|
||||
public static void errorPopup(Component parent, String titre, String message) {
|
||||
public static void errorPopup(Component parent,
|
||||
String titre,
|
||||
String message) {
|
||||
JOptionPane d = new JOptionPane();
|
||||
String[] choix = {"OK"};
|
||||
JOptionPane.showOptionDialog(parent, message, titre, JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, choix, choix[0]);
|
||||
JOptionPane.showOptionDialog(parent, message, titre,
|
||||
JOptionPane.YES_NO_OPTION,
|
||||
JOptionPane.ERROR_MESSAGE, null, choix,
|
||||
choix[0]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,42 +12,71 @@ import javax.swing.filechooser.FileSystemView;
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* Classe qui permet d'ouvrir une fenêtre pour sélectionner le fichier pdf à ouvrir
|
||||
* Classe qui permet d'ouvrir une {@link Fenetre fenêtre} pour sélectionner
|
||||
* le fichier pdf à ouvrir
|
||||
*
|
||||
* @author Léo FRANCH
|
||||
* @author Tristan NOGARET
|
||||
* @author Lucàs VABRE
|
||||
* @author Noé VILLENEUVE
|
||||
* @see JFileChooser
|
||||
* @see File
|
||||
* @see FileNameExtensionFilter
|
||||
* @see FileSystemView
|
||||
*/
|
||||
public class SelectionnerFichier {
|
||||
|
||||
/** Le titre de la fenêtre */
|
||||
/**
|
||||
* Le titre de la {@link Fenetre fenêtre}
|
||||
*/
|
||||
private static final String TITRE = "Sélectionnez un PDF";
|
||||
|
||||
/** Description du filtre */
|
||||
/**
|
||||
* Description du filtre
|
||||
*
|
||||
* @see FileNameExtensionFilter
|
||||
*/
|
||||
private static final String DESCRIPTION = "PDF files (*.pdf)";
|
||||
|
||||
/** Extension de fichier filtré */
|
||||
/**
|
||||
* Extension de fichier filtré
|
||||
*/
|
||||
private static final String EXTENSION = "pdf";
|
||||
|
||||
/** Valeur du bouton OK */
|
||||
/**
|
||||
* Valeur du bouton Ok
|
||||
*/
|
||||
private static final String BOUTON_OK = "Ouvrir";
|
||||
|
||||
/** Valeur du bouton Annuler */
|
||||
/**
|
||||
* Valeur du bouton Annuler
|
||||
*/
|
||||
private static final String BOUTON_ANNULER = "Annuler";
|
||||
|
||||
/** Indice au survol du bouton Ok */
|
||||
private static final String INDICE_BOUTON_OK = "Ouvre le fichier sélectionné";
|
||||
/**
|
||||
* Indice au survol du bouton Ok
|
||||
*/
|
||||
private static final String INDICE_BOUTON_OK
|
||||
= "Ouvre le fichier sélectionné";
|
||||
|
||||
/** Indice au survol du bouton Annuler */
|
||||
/**
|
||||
* Indice au survol du bouton Annuler
|
||||
*/
|
||||
private static final String INDICE_BOUTON_ANNULER = "Annule la sélection";
|
||||
|
||||
/**
|
||||
* Méthode qui créée une fenêtre pour que l'utilisateur choisisse un
|
||||
* fichier PDF
|
||||
* Méthode qui créée une {@link Fenetre fenêtre} pour que l'utilisateur
|
||||
* choisisse un fichier PDF
|
||||
*
|
||||
* @return le fichier choisi par l'utilisateur, null si aucun fichier
|
||||
* n'est choisi
|
||||
* @param parent La {@link Fenetre fenêtre} parente de référence
|
||||
* @return <ul><li>le fichier choisi par l'utilisateur</li>
|
||||
* <li>null si aucun fichier n'est choisi</li></ul>
|
||||
* @see JFileChooser
|
||||
* @see File
|
||||
* @see FileSystemView
|
||||
* @see FileNameExtensionFilter
|
||||
* @see SwingUtilities
|
||||
* @see UIManager
|
||||
*/
|
||||
public static File ouvrirFichier(JFrame parent) {
|
||||
|
||||
|
||||
@@ -26,16 +26,12 @@ public class FermerFichier extends MenuItem {
|
||||
/**
|
||||
* 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 {@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 ?";
|
||||
|
||||
Reference in New Issue
Block a user