diff --git a/src/lecteur_pdf/Fenetre.java b/src/lecteur_pdf/Fenetre.java index 6cbaa4b..fc290d9 100644 --- a/src/lecteur_pdf/Fenetre.java +++ b/src/lecteur_pdf/Fenetre.java @@ -122,7 +122,8 @@ 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) GestionMode.activerBtnNouvelleFenetre(); + 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); diff --git a/src/lecteur_pdf/GestionFenetre.java b/src/lecteur_pdf/GestionFenetre.java index c10a73c..95c71ea 100644 --- a/src/lecteur_pdf/GestionFenetre.java +++ b/src/lecteur_pdf/GestionFenetre.java @@ -51,9 +51,7 @@ public class GestionFenetre { * (mode Synchronisé) */ public static void nextPages() { - for (Fenetre ihm : FENETRE_LIST) { - ihm.getPdfPanel().nextPage(); - } + for (Fenetre ihm : FENETRE_LIST) ihm.getPdfPanel().nextPage(); } /** @@ -61,9 +59,7 @@ public class GestionFenetre { * (mode Synchronisé) */ public static void previousPages() { - for (Fenetre ihm : FENETRE_LIST) { - ihm.getPdfPanel().previousPage(); - } + for (Fenetre ihm : FENETRE_LIST) ihm.getPdfPanel().previousPage(); } /** diff --git a/src/lecteur_pdf/Popup.java b/src/lecteur_pdf/Popup.java index 9a5dcac..c711fae 100644 --- a/src/lecteur_pdf/Popup.java +++ b/src/lecteur_pdf/Popup.java @@ -10,7 +10,7 @@ import javax.swing.*; import java.awt.*; /** - * TODO + * Classe outils permettant de creer des fenêtre Popups * * @author Léo Franch * @author Lucas Vabre @@ -19,6 +19,14 @@ import java.awt.*; */ public class Popup { + /** + * Crée une nouvelle fenêtre comportant un message et deux bouttons : 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é + */ public static int OuiNonPopup(Component parent, String titre, String message) { JOptionPane d = new JOptionPane(); String[] choix = {"Oui", "Non"}; @@ -26,12 +34,16 @@ public class Popup { null, choix, choix[0]); } + /** + * Crée une nouvelle fenêtre comportant un message d'erreur avec un boutton OK + * + * @param parent La fenêtre parente de référence + * @param titre Titre de la fenêtre + * @param message Message d'erreur + */ 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]); } - - - } diff --git a/src/lecteur_pdf/SelectionnerFichier.java b/src/lecteur_pdf/SelectionnerFichier.java index be1df7a..6b667f3 100644 --- a/src/lecteur_pdf/SelectionnerFichier.java +++ b/src/lecteur_pdf/SelectionnerFichier.java @@ -18,25 +18,37 @@ import java.io.File; * @author Tristan NOGARET * @author Lucàs VABRE * @author Noé VILLENEUVE - * @version 1.0 */ public class SelectionnerFichier { + /** Le titre de la fenêtre */ + private static final String TITRE = "Sélectionnez un PDF"; + + /** Description du filtre */ + private static final String DESCRIPTION = "PDF files (*.pdf)"; + + /** Extension de fichier filtré */ + private static final String EXTENSION = "pdf"; + + /** Valeur du boutton OK */ + private static final String BOUTON_OK = "Ouvrir"; + + /** Valeur du boutton Annuler */ + private static final String BOUTON_ANNULER = "Annuler"; + + /** indice au survol du boutton Ok */ + private static final String INDICE_BOUTON_OK = "Ouvre le fichier sélectionné"; + + /** Indice au survol du boutton 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 * - * @return le fichier choisi par l'utilisateur + * @return le fichier choisi par l'utilisateur, null si aucun fichier n'est choisis */ public static File ouvrirFichier(JFrame parent) { - final String TITRE = "Sélectionnez un PDF"; - final String DESCRIPTION = "PDF files (*.pdf)"; - final String EXTENSION = "pdf"; - final String BOUTON_OK = "Ouvrir"; - final String BOUTON_ANNULER = "Annuler"; - final String INDICE_BOUTON_OK = "Ouvre le fichier sélectionné"; - final String INDICE_BOUTON_ANNULER = "Annule la sélection"; - /* Crée une fenêtre de sélection de fichier */ JFileChooser fileChooser = new JFileChooser( FileSystemView.getFileSystemView().getDefaultDirectory()); @@ -67,6 +79,7 @@ public class SelectionnerFichier { return new File(fileChooser.getSelectedFile().getAbsolutePath()); } + /* Renvoie null si le fichier n'est pas trouvé */ return null; } } diff --git a/src/lecteur_pdf/menuBar/MenuBar.java b/src/lecteur_pdf/menuBar/MenuBar.java index 8aee457..0439886 100644 --- a/src/lecteur_pdf/menuBar/MenuBar.java +++ b/src/lecteur_pdf/menuBar/MenuBar.java @@ -15,7 +15,7 @@ import lecteur_pdf.menuBar.menu.MenuOptions; import javax.swing.*; /** - * TODO commentaires + * Barre de menu contenant l'ensemble des menus de l'application * * @author Léo Franch * @author Lucas Vabre @@ -23,7 +23,12 @@ import javax.swing.*; * @author Tristan Nogaret */ public class MenuBar extends JMenuBar { - + + /** + * Crée une nouvelle barre de menu avec l'ensemble des menu de l'application + * + * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem + */ public MenuBar(Fenetre parent) { add(new MenuFichier(parent)); add(new MenuAffichage(parent)); diff --git a/src/lecteur_pdf/menuBar/menu/MenuAffichage.java b/src/lecteur_pdf/menuBar/menu/MenuAffichage.java index 149ec45..7da3dbf 100644 --- a/src/lecteur_pdf/menuBar/menu/MenuAffichage.java +++ b/src/lecteur_pdf/menuBar/menu/MenuAffichage.java @@ -49,5 +49,4 @@ public class MenuAffichage extends JMenu { add(new PageEntiere(parent)); add(new PleineLargeur(parent)); } - } diff --git a/src/lecteur_pdf/menuBar/menu/MenuMode.java b/src/lecteur_pdf/menuBar/menu/MenuMode.java index 8bcb1dd..915e3a3 100644 --- a/src/lecteur_pdf/menuBar/menu/MenuMode.java +++ b/src/lecteur_pdf/menuBar/menu/MenuMode.java @@ -30,7 +30,6 @@ public class MenuMode extends JMenu { * * @param parent Référence de la fenêtre qui possède l'instance de ce menu */ - @SuppressWarnings("GrazieInspection") public MenuMode(Fenetre parent) { super("Mode"); diff --git a/src/lecteur_pdf/menuBar/menuItems/FermerFichier.java b/src/lecteur_pdf/menuBar/menuItems/FermerFichier.java index c93d8c9..1055c79 100644 --- a/src/lecteur_pdf/menuBar/menuItems/FermerFichier.java +++ b/src/lecteur_pdf/menuBar/menuItems/FermerFichier.java @@ -13,7 +13,7 @@ import javax.swing.*; import java.awt.event.ActionEvent; /** - * TODO commentaires + * Element de Menu Fermer qui permet de fermer le document PDF courrant * * @author Léo Franch * @author Lucas Vabre @@ -22,6 +22,12 @@ import java.awt.event.ActionEvent; */ public class FermerFichier extends MenuItem { + /** Titre de la popup lors de la fermeture d'un 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 ?"; + /** * Crée un nouvel Element de Menu "Fermer" * @@ -34,10 +40,8 @@ public class FermerFichier extends MenuItem { @Override protected void action(ActionEvent evt) { if (parent.getPdfPanel().isCharge()) { - String TITRE = "Fermeture du document"; - String MESSAGE = "Êtes-vous sûr de vouloir fermer le document ?"; - - if (Popup.OuiNonPopup(parent, TITRE, MESSAGE) == JOptionPane.YES_OPTION) parent.fermerPdf(); + int resultatPopup = Popup.OuiNonPopup(parent, TITRE, MESSAGE); + if (resultatPopup == JOptionPane.YES_OPTION) parent.fermerPdf(); } } } diff --git a/src/lecteur_pdf/menuBar/menuItems/MenuItem.java b/src/lecteur_pdf/menuBar/menuItems/MenuItem.java index 4dd05e4..8509d77 100644 --- a/src/lecteur_pdf/menuBar/menuItems/MenuItem.java +++ b/src/lecteur_pdf/menuBar/menuItems/MenuItem.java @@ -22,10 +22,8 @@ import java.awt.event.ActionEvent; */ public abstract class MenuItem extends JMenuItem { - /** - * Référence de la fenêtre qui possède l'instance de ce MenuItem - */ - Fenetre parent; + /** Référence de la fenêtre qui possède l'instance de ce MenuItem */ + final Fenetre parent; /** * Crée un nouvel Element de Menu avec un nom, une action et se référence dans la liste des raccourcis claviers diff --git a/src/lecteur_pdf/menuBar/menuItems/ModeSepare.java b/src/lecteur_pdf/menuBar/menuItems/ModeSepare.java index 4ad329d..375a6df 100644 --- a/src/lecteur_pdf/menuBar/menuItems/ModeSepare.java +++ b/src/lecteur_pdf/menuBar/menuItems/ModeSepare.java @@ -12,7 +12,7 @@ import lecteur_pdf.raccourcisClavier.RaccourcisClavier; import javax.swing.*; /** - * TODO commentaires + * Element de Menu Mode Séparé qui permet d'activer le défilement des pages de documents en séparé * * @author Léo Franch * @author Lucas Vabre @@ -22,7 +22,7 @@ import javax.swing.*; public class ModeSepare extends JRadioButtonMenuItem { /** - * TODO + * Crée un nouvel Element de Menu "Mode Séparé" */ public ModeSepare() { super("Mode Séparé"); diff --git a/src/lecteur_pdf/menuBar/menuItems/ModeSynchronise.java b/src/lecteur_pdf/menuBar/menuItems/ModeSynchronise.java index b2c71c5..1e625c5 100644 --- a/src/lecteur_pdf/menuBar/menuItems/ModeSynchronise.java +++ b/src/lecteur_pdf/menuBar/menuItems/ModeSynchronise.java @@ -12,7 +12,7 @@ import lecteur_pdf.raccourcisClavier.RaccourcisClavier; import javax.swing.*; /** - * TODO commentaires + * Element de Menu Mode Synchronisé qui permet d'activer le défilement des pages de documents en simultané * * @author Léo Franch * @author Lucas Vabre @@ -22,7 +22,7 @@ import javax.swing.*; public class ModeSynchronise extends JRadioButtonMenuItem { /** - * TODO + * Crée un nouvel Element de Menu "Mode Synchronisé" */ public ModeSynchronise() { super("Mode Synchronisé"); diff --git a/src/lecteur_pdf/menuBar/menuItems/ModifierTouches.java b/src/lecteur_pdf/menuBar/menuItems/ModifierTouches.java index ff6f625..f9e5140 100644 --- a/src/lecteur_pdf/menuBar/menuItems/ModifierTouches.java +++ b/src/lecteur_pdf/menuBar/menuItems/ModifierTouches.java @@ -12,7 +12,7 @@ import lecteur_pdf.raccourcisClavier.RaccourcisClavier; import java.awt.event.ActionEvent; /** - * TODO commentaires + * Element de Menu Modifier Touches qui permet d'ouvrir une fenêtre pour modifier les raccourcis claviers de l'application * * @author Léo Franch * @author Lucas Vabre @@ -22,7 +22,8 @@ import java.awt.event.ActionEvent; public class ModifierTouches extends MenuItem { /** - * TODO + * Crée un nouvel Element de Menu "Modifier Touches" + * * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem */ public ModifierTouches(Fenetre parent) { diff --git a/src/lecteur_pdf/menuBar/menuItems/NouvelleFenetre.java b/src/lecteur_pdf/menuBar/menuItems/NouvelleFenetre.java index aafa273..48ad2f4 100644 --- a/src/lecteur_pdf/menuBar/menuItems/NouvelleFenetre.java +++ b/src/lecteur_pdf/menuBar/menuItems/NouvelleFenetre.java @@ -13,7 +13,7 @@ import lecteur_pdf.Fenetre; import java.awt.event.ActionEvent; /** - * TODO commentaires + * Element de Menu Nouvelle Fenetre 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 @@ -23,8 +23,9 @@ import java.awt.event.ActionEvent; public class NouvelleFenetre extends MenuItem { /** - * TODO - * @param parent + * Crée un nouvel Element de Menu "Nouvelle Fenêtre" + * + * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem */ public NouvelleFenetre(Fenetre parent) { super(parent, "Nouvelle Fenêtre"); diff --git a/src/lecteur_pdf/menuBar/menuItems/OuvrirFichier.java b/src/lecteur_pdf/menuBar/menuItems/OuvrirFichier.java index 11f6e90..c0c31d2 100644 --- a/src/lecteur_pdf/menuBar/menuItems/OuvrirFichier.java +++ b/src/lecteur_pdf/menuBar/menuItems/OuvrirFichier.java @@ -10,11 +10,12 @@ import lecteur_pdf.Fenetre; import lecteur_pdf.Popup; import lecteur_pdf.SelectionnerFichier; +import javax.swing.*; import java.awt.event.ActionEvent; import java.io.File; /** - * TODO commentaires + * Element de Menu Ouvrir Fichier qui permet d'ouvrir un document * * @author Léo Franch * @author Lucas Vabre @@ -23,37 +24,43 @@ import java.io.File; */ public class OuvrirFichier extends MenuItem { + /** Titre de la popup d'erreur lors d'une erreur d'ouverture de fichier */ + public static final String TITRE_ERREUR = "Erreur"; + + /** Message de la popup d'erreur lors d'une erreur d'ouverture de fichier */ + public static final String MESSAGE_ERREUR = "Erreur : Le document n'as pas pu être chargé"; + /** - * TODO + * Crée un nouvel Element de Menu "Ouvrir Fichier" * + * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem */ public OuvrirFichier(Fenetre parent) { super(parent, "Ouvrir"); - -// setRaccourcis(KeyEvent.VK_O, KeyEvent.CTRL_DOWN_MASK); } @Override protected void action(ActionEvent evt) { - /* On charge le fichier si c'est possible */ - File fichier = SelectionnerFichier.ouvrirFichier(parent); - if (fichier == null) { - return; - } + int valide = parent.getPdfPanel().isCharge() + ? Popup.OuiNonPopup(parent, FermerFichier.TITRE, FermerFichier.MESSAGE) + : JOptionPane.YES_OPTION; - /* S'il y a deja un fichier d'ouvert, on le ferme */ - parent.getPdfPanel().dechargerPdf(); - parent.setTitle(Fenetre.TITRE); - parent.pack(); + if (valide == JOptionPane.YES_OPTION) { + /* On charge le fichier si c'est possible */ + File fichier = SelectionnerFichier.ouvrirFichier(parent); - if (parent.getPdfPanel().chargerPdf(fichier)) { - parent.setTitle(Fenetre.TITRE + " - " + fichier.getName()); - parent.pack(); - } else { - final String TITRE = "Erreur"; - final String MESSAGE = "Erreur : Le document n'as pas pu être chargé"; - Popup.errorPopup(parent, TITRE, MESSAGE); + if (fichier != null) { + /* S'il y a deja un fichier d'ouvert, on le ferme */ + parent.getPdfPanel().dechargerPdf(); + parent.setTitle(Fenetre.TITRE); + parent.pack(); + + if (parent.getPdfPanel().chargerPdf(fichier)) { + parent.setTitle(Fenetre.TITRE + " - " + fichier.getName()); + parent.pack(); + } else Popup.errorPopup(parent, TITRE_ERREUR, MESSAGE_ERREUR); + } } } } diff --git a/src/lecteur_pdf/menuBar/menuItems/PageEntiere.java b/src/lecteur_pdf/menuBar/menuItems/PageEntiere.java index 66f0709..6a7f5fd 100644 --- a/src/lecteur_pdf/menuBar/menuItems/PageEntiere.java +++ b/src/lecteur_pdf/menuBar/menuItems/PageEntiere.java @@ -1,12 +1,27 @@ +/* + * PageEntiere.java, 09/03/2022 + * IUT Rodez 2021-2022, INFO 2 + * pas de copyright, aucun droits + */ + package lecteur_pdf.menuBar.menuItems; import lecteur_pdf.Fenetre; import java.awt.event.ActionEvent; +/** + * Element de Menu Page Entière qui permet d'afficher l'intégralité du document courrant verticalement + * + * @author Léo Franch + * @author Lucas Vabre + * @author Noé Villeneuve + * @author Tristan Nogaret + */ public class PageEntiere extends MenuItem { /** - * TODO + * Crée un nouvel Element de Menu "Page Entiere" + * * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem */ public PageEntiere(Fenetre parent) { diff --git a/src/lecteur_pdf/menuBar/menuItems/PagePrecedente.java b/src/lecteur_pdf/menuBar/menuItems/PagePrecedente.java index 3c3c6f0..57526b9 100644 --- a/src/lecteur_pdf/menuBar/menuItems/PagePrecedente.java +++ b/src/lecteur_pdf/menuBar/menuItems/PagePrecedente.java @@ -13,7 +13,7 @@ import lecteur_pdf.Fenetre; import java.awt.event.ActionEvent; /** - * TODO commentaires + * Element de Menu Page Precedente qui permet d'afficher la page précédente du document courrant (ou les pages précédentes si le mode Synchronisé est activé) * * @author Léo Franch * @author Lucas Vabre @@ -23,8 +23,9 @@ import java.awt.event.ActionEvent; public class PagePrecedente extends MenuItem { /** - * TODO - * @param parent + * Crée un nouvel Element de Menu "Page Précédente" + * + * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem */ public PagePrecedente(Fenetre parent) { super(parent, "Page précédente"); diff --git a/src/lecteur_pdf/menuBar/menuItems/PageSuivante.java b/src/lecteur_pdf/menuBar/menuItems/PageSuivante.java index e913d55..21d316c 100644 --- a/src/lecteur_pdf/menuBar/menuItems/PageSuivante.java +++ b/src/lecteur_pdf/menuBar/menuItems/PageSuivante.java @@ -13,7 +13,7 @@ import lecteur_pdf.Fenetre; import java.awt.event.ActionEvent; /** - * TODO commentaires + * Element de Menu Page Suivante qui permet d'afficher la page suivante du document courrant (ou les pages suivantes si le mode Synchronisé est activé) * * @author Léo Franch * @author Lucas Vabre @@ -23,8 +23,9 @@ import java.awt.event.ActionEvent; public class PageSuivante extends MenuItem { /** - * TODO - * @param parent + * Crée un nouvel Element de Menu "Page Suivante" + * + * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem */ public PageSuivante(Fenetre parent) { super(parent, "Page suivante"); diff --git a/src/lecteur_pdf/menuBar/menuItems/PleinEcran.java b/src/lecteur_pdf/menuBar/menuItems/PleinEcran.java index 7d38d7c..6bd73eb 100644 --- a/src/lecteur_pdf/menuBar/menuItems/PleinEcran.java +++ b/src/lecteur_pdf/menuBar/menuItems/PleinEcran.java @@ -11,7 +11,7 @@ import lecteur_pdf.Fenetre; import java.awt.event.ActionEvent; /** - * TODO commentaires + * Element de Menu Plein Ecran qui permet d'afficher la page la fenêtre courrante en plein écran * * @author Léo Franch * @author Lucas Vabre @@ -21,8 +21,9 @@ import java.awt.event.ActionEvent; public class PleinEcran extends MenuItem { /** - * TODO - * @param parent + * Crée un nouvel Element de Menu "Plein Ecran" + * + * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem */ public PleinEcran(Fenetre parent) { super(parent, "Mode Plein Écran"); diff --git a/src/lecteur_pdf/menuBar/menuItems/PleineLargeur.java b/src/lecteur_pdf/menuBar/menuItems/PleineLargeur.java index 0ec48f9..22cfbb5 100644 --- a/src/lecteur_pdf/menuBar/menuItems/PleineLargeur.java +++ b/src/lecteur_pdf/menuBar/menuItems/PleineLargeur.java @@ -1,14 +1,29 @@ +/* + * PleineLargeur.java, 09/03/2022 + * IUT Rodez 2021-2022, INFO 2 + * pas de copyright, aucun droits + */ + package lecteur_pdf.menuBar.menuItems; import lecteur_pdf.Fenetre; import java.awt.event.ActionEvent; +/** + * Element de Menu Pleine Largeur qui permet d'afficher le document courrant 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 + */ public class PleineLargeur extends MenuItem{ /** - * TODO + * Crée un nouvel Element de Menu "Pleine Largeur" + * * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem */ public PleineLargeur(Fenetre parent) { diff --git a/src/lecteur_pdf/menuBar/menuItems/Quitter.java b/src/lecteur_pdf/menuBar/menuItems/Quitter.java index df6518f..ac3b15f 100644 --- a/src/lecteur_pdf/menuBar/menuItems/Quitter.java +++ b/src/lecteur_pdf/menuBar/menuItems/Quitter.java @@ -13,7 +13,7 @@ import javax.swing.*; import java.awt.event.ActionEvent; /** - * TODO commentaires + * Element de Menu Quitter qui permet de fermer la fenêtre courrante, ferme l'application si il s'agit de la dernière fenêtre fermée * * @author Léo Franch * @author Lucas Vabre @@ -23,8 +23,9 @@ import java.awt.event.ActionEvent; public class Quitter extends MenuItem { /** - * TODO - * @param parent + * Crée un nouvel Element de Menu "Quitter" + * + * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem */ public Quitter(Fenetre parent) { super(parent, "Quitter"); diff --git a/src/lecteur_pdf/menuBar/menuItems/ZoomDefaut.java b/src/lecteur_pdf/menuBar/menuItems/ZoomDefaut.java index fcab1da..7eabc15 100644 --- a/src/lecteur_pdf/menuBar/menuItems/ZoomDefaut.java +++ b/src/lecteur_pdf/menuBar/menuItems/ZoomDefaut.java @@ -11,7 +11,7 @@ import lecteur_pdf.Fenetre; import java.awt.event.ActionEvent; /** - * TODO commentaires + * Element de Menu Zoom 100% qui permet de mettre le Zoom par défaut * * @author Léo Franch * @author Lucas Vabre @@ -21,8 +21,9 @@ import java.awt.event.ActionEvent; public class ZoomDefaut extends MenuItem { /** - * TODO - * @param parent + * Crée un nouvel Element de Menu "Zoom 100%" + * + * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem */ public ZoomDefaut(Fenetre parent) { super(parent, "Zoom 100%"); diff --git a/src/lecteur_pdf/menuBar/menuItems/ZoomMoins.java b/src/lecteur_pdf/menuBar/menuItems/ZoomMoins.java index 4f03485..368f8d5 100644 --- a/src/lecteur_pdf/menuBar/menuItems/ZoomMoins.java +++ b/src/lecteur_pdf/menuBar/menuItems/ZoomMoins.java @@ -11,7 +11,7 @@ import lecteur_pdf.Fenetre; import java.awt.event.ActionEvent; /** - * TODO commentaires + * Element de Menu Zoom 50% qui permet de dézoomer * * @author Léo Franch * @author Lucas Vabre @@ -21,8 +21,9 @@ import java.awt.event.ActionEvent; public class ZoomMoins extends MenuItem { /** - * TODO - * @param parent + * Crée un nouvel Element de Menu "Zoom 50%" + * + * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem */ public ZoomMoins(Fenetre parent) { super(parent, "Zoom 50%"); diff --git a/src/lecteur_pdf/menuBar/menuItems/ZoomPlus.java b/src/lecteur_pdf/menuBar/menuItems/ZoomPlus.java index 76db36f..5e676f2 100644 --- a/src/lecteur_pdf/menuBar/menuItems/ZoomPlus.java +++ b/src/lecteur_pdf/menuBar/menuItems/ZoomPlus.java @@ -11,7 +11,7 @@ import lecteur_pdf.Fenetre; import java.awt.event.ActionEvent; /** - * TODO commentaires + * Element de Menu Zoom 150% qui permet de zoomer * * @author Léo Franch * @author Lucas Vabre @@ -21,8 +21,9 @@ import java.awt.event.ActionEvent; public class ZoomPlus extends MenuItem { /** - * TODO - * @param parent + * Crée un nouvel Element de Menu "Zoom 150%" + * + * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem */ public ZoomPlus(Fenetre parent) { super(parent, "Zoom 150%"); diff --git a/src/lecteur_pdf/pdf/DocumentPdf.java b/src/lecteur_pdf/pdf/DocumentPdf.java index 0d0a01b..aed890c 100644 --- a/src/lecteur_pdf/pdf/DocumentPdf.java +++ b/src/lecteur_pdf/pdf/DocumentPdf.java @@ -23,17 +23,16 @@ import java.io.IOException; */ public class DocumentPdf { - /** - * TODO - */ + /** TODO */ private PDDocument document; - /** - * TODO - */ + /** TODO */ private PDFRenderer renderer; + /** TODO */ private int minWidth; + + /** TODO */ private int minHeight; /** @@ -49,10 +48,16 @@ public class DocumentPdf { minHeight = -1; } + /** + * TODO + */ public int getMinWidth() { return minWidth; } + /** + * TODO + */ public int getMinHeight() { return minHeight; } @@ -66,11 +71,16 @@ public class DocumentPdf { return document.getNumberOfPages(); } - + /** + * TODO + */ public BufferedImage renderPage(int pageIndex) throws IOException { return renderPage(pageIndex, 1.0f); } + /** + * TODO + */ public BufferedImage setScale(float scale) { try { return renderPage(0, scale); @@ -102,7 +112,7 @@ public class DocumentPdf { } /** - * TODO + * Ferme le document courrant et redéfini les paramêtres par défaut */ public void close() { try { diff --git a/src/lecteur_pdf/pdf/OutilsImage.java b/src/lecteur_pdf/pdf/OutilsImage.java deleted file mode 100644 index 8d0f9b8..0000000 --- a/src/lecteur_pdf/pdf/OutilsImage.java +++ /dev/null @@ -1,60 +0,0 @@ -//package lecteur_pdf.pdf; -// -//import javax.swing.*; -//import java.awt.*; -//import java.awt.image.BufferedImage; -// -//public class OutilsImage { -// -// /** -// * Change la taille d'une image -// * @param img -// * @param newW -// * @param newH -// * @return -// */ -// public static BufferedImage resize(BufferedImage img, int newW, int newH) { -// int w = img.getWidth(); -// int h = img.getHeight(); -// BufferedImage dimg = new BufferedImage(newW, newH, img.getType()); -// Graphics2D g = dimg.createGraphics(); -// g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, -// RenderingHints.VALUE_INTERPOLATION_BILINEAR); -// g.drawImage(img, 0, 0, newW, newH, 0, 0, w, h, null); -// g.dispose(); -// return dimg; -// } -// -// /** -// * -// * @param img -// * @param newW -// * @return -// */ -// public static BufferedImage resizeWidth(DocumentPdf a, Icon img, int newW) { -// int w = a.getMinWidth(); -// int h = a.getMinHeight(); -// -// float ratio = (float)newW / (float)w; -// -// return a.setScale(ratio); -// } -// -// /** -// * -// * @param img -// * @param newH -// * @return -// */ -// public static BufferedImage resizeHeight(BufferedImage img, int newH) { -// int w = img.getWidth(); -// int h = img.getHeight(); -// -// int ratio = newH / (1+h); -// -// int newW = w * ratio; -// -// return resize(img, newW, newH); -// } -// -//} diff --git a/src/lecteur_pdf/pdf/PdfPanel.java b/src/lecteur_pdf/pdf/PdfPanel.java index eff08f7..2b70630 100644 --- a/src/lecteur_pdf/pdf/PdfPanel.java +++ b/src/lecteur_pdf/pdf/PdfPanel.java @@ -135,15 +135,31 @@ public class PdfPanel extends JPanel { else GestionFenetre.previousPages(); } + /** + * TODO + */ public void resize() { - if (pdfLoader != null && !processing) { - scaleSizing = pleineLargeur - ? (((float) viewport.getWidth() - (float) scrollPane.getVerticalScrollBar().getWidth()) / (float) pdfLoader.getMinWidth()) - scaleZoom - : (((float) viewport.getHeight() - (float) scrollPane.getHorizontalScrollBar().getHeight()) / (float) pdfLoader.getMinHeight()) - scaleZoom; - updateScaleSizing(scaleSizing); + if (pdfLoader == null || processing) return; + + if (pleineLargeur) { + float viewportWidth = viewport.getWidth(); + float scrollpaneWidth = scrollPane.getVerticalScrollBar().getWidth(); + float pdfMinWidth = pdfLoader.getMinWidth(); + + scaleSizing = (viewportWidth - scrollpaneWidth) / pdfMinWidth - scaleZoom; + } else { + float viewportHeight = viewport.getHeight(); + float scrollpaneHeight = scrollPane.getVerticalScrollBar().getHeight(); + float pdfMinHeight = pdfLoader.getMinHeight(); + + scaleSizing = (viewportHeight - scrollpaneHeight) / pdfMinHeight - scaleZoom; } + updateScaleSizing(scaleSizing); } + /** + * @param pleineLargeur booléen qui défini l'état du mode pleine largeur + */ public void setPleineLargeur(boolean pleineLargeur) { this.pleineLargeur = pleineLargeur; resize(); @@ -156,8 +172,9 @@ public class PdfPanel extends JPanel { * @return true si le prédicat est vérifié, false sinon */ private boolean isPageValide(int index) { - if (pdfLoader == null) return false; - return 0 <= index && index < pdfLoader.getNbPages(); + return pdfLoader != null + && 0 <= index + && index < pdfLoader.getNbPages(); } /** @@ -171,13 +188,12 @@ public class PdfPanel extends JPanel { setPdfLoader(new DocumentPdf(pdfFile)); setPage(0); return true; - } catch (IOException e) { - return false; - } + } catch (IOException ignored) {} + return false; } /** - * @param pdfLoader + * @param pdfLoader un nouveau document PDF à affecter à la fenêtre */ public void setPdfLoader(DocumentPdf pdfLoader) { this.pdfLoader = pdfLoader; @@ -187,25 +203,25 @@ public class PdfPanel extends JPanel { * Décharge le document courant s'il y en a un */ public void dechargerPdf() { - if (isCharge()) { - /* Ferme le loader et l'efface */ - pdfLoader.close(); - pdfLoader = null; + if (!isCharge()) return; - /* Efface l'image de la page */ - page.setIcon(null); - currentPage = 0; + /* Ferme le loader et l'efface */ + pdfLoader.close(); + pdfLoader = null; - /* Interface Vide */ - indexPageInput.setText(""); - maxPageLabel.setText("/ -"); + /* Efface l'image de la page */ + page.setIcon(null); + currentPage = 0; - /* Efface les données relatives au zoom */ - scaleSizing = 0.0f; - scaleZoom = 1.0f; + /* Interface Vide */ + indexPageInput.setText(""); + maxPageLabel.setText("/ -"); - validate(); - } + /* Efface les données relatives au zoom */ + scaleSizing = 0.0f; + scaleZoom = 1.0f; + + validate(); } /** @@ -223,7 +239,7 @@ public class PdfPanel extends JPanel { * * @param scale Valeur flottante (1.00f == 100%) */ - public void updateScaleSizing(float scale) { + private void updateScaleSizing(float scale) { scaleSizing = scale; setPage(currentPage); } @@ -248,17 +264,16 @@ public class PdfPanel extends JPanel { * @param index Le numéro de la page où l'on veut se rendre */ private void setPage(int index) { - if (isPageValide(index)) { + if (!isPageValide(index)) return; - processing = true; - try { - page.setIcon(new ImageIcon(pdfLoader.renderPage(index, scaleZoom + scaleSizing))); - currentPage = index; - indexPageInput.setText(Integer.toString(currentPage + 1)); - maxPageLabel.setText(String.format("/%d", pdfLoader.getNbPages())); - } catch (IOException ignored) {} - processing = false; - } + processing = true; + try { + page.setIcon(new ImageIcon(pdfLoader.renderPage(index, scaleZoom + scaleSizing))); + currentPage = index; + indexPageInput.setText(Integer.toString(currentPage + 1)); + maxPageLabel.setText(String.format("/%d", pdfLoader.getNbPages())); + } catch (IOException ignored) {} + processing = false; } /**