This commit is contained in:
NonoL3Robot
2022-03-11 13:25:56 +01:00
parent 23c3897bd7
commit 32c2685d87
11 changed files with 127 additions and 55 deletions
+8 -3
View File
@@ -15,20 +15,25 @@ import lecteur_pdf.menuBar.menu.MenuOptions;
import javax.swing.*;
/**
* Barre de menu contenant l'ensemble des menus de l'application
* Barre de menu contenant l'ensemble des {@link lecteur_pdf.menuBar.menu
* menu} de l'application
*
* @author Léo Franch
* @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see JMenuBar
*/
public class MenuBar extends JMenuBar {
/**
* Créé une nouvelle barre de menu avec l'ensemble des menus de
* Créé une nouvelle barre de menu avec l'ensemble des
* {@link lecteur_pdf.menuBar.menu menu} de
* l'application
*
* @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
* {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItem}
*/
public MenuBar(Fenetre parent) {
add(new MenuFichier(parent));
@@ -12,8 +12,8 @@ import lecteur_pdf.raccourcisClavier.RaccourcisClavier;
import javax.swing.*;
/**
* Classe abstraite qui défini les éléments de
* {@link lecteur_pdf.menuBar.menu menu}
* Classe abstraite qui défini les
* {@link lecteur_pdf.menuBar.menuItems menuItems}
* qui nécessitent d'accéder à leur {@link Fenetre fenêtre} parente
*
* @author Léo Franch
@@ -27,10 +27,12 @@ import lecteur_pdf.GestionMode;
public class PagePrecedente extends MenuItem {
/**
* Créé un nouvel élément de Menu PagePrecedente
* Créé un nouvel élément de
* {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
*
* @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
* {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItem}
*/
public PagePrecedente(Fenetre parent) {
super(parent, "Page précédente");
@@ -11,21 +11,27 @@ import lecteur_pdf.GestionFenetre;
import lecteur_pdf.GestionMode;
/**
* É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é)
* Élément de {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
* qui permet d'afficher la page suivante du document courant (ou les pages
* suivantes si le
* {@link lecteur_pdf.menuBar.menuItems.ModeSynchronise mode Synchronisé} est
* activé)
*
* @author Léo Franch
* @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see MenuItem
*/
public class PageSuivante extends MenuItem {
/**
* Créé un nouvel Élément de Menu "Page Suivante"
* Créé un nouvel élément de
* {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
*
* @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
* {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItem}
*/
public PageSuivante(Fenetre parent) {
super(parent, "Page suivante");
@@ -9,7 +9,9 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.Fenetre;
/**
* Élément de Menu PleinEcran qui permet d'afficher la page la fenêtre courante en plein écran
* Élément de {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
* qui permet d'afficher la page de la {@link Fenetre fenêtre} courante en
* plein écran
*
* @author Léo Franch
* @author Tristan Nogaret
@@ -19,9 +21,12 @@ import lecteur_pdf.Fenetre;
public class PleinEcran extends MenuItem {
/**
* Créé un nouvel élément de Menu PleinEcran
* Créé un nouvel élément de
* {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
*
* @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
* {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItem}
*/
public PleinEcran(Fenetre parent) {
super(parent, "Mode Plein Écran");
@@ -9,23 +9,27 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.Fenetre;
/**
* É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)
* Élément de {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
* qui permet d'afficher le document courant de manière bord à bord (la
* taille horizontale du document coincide avec celle de la
* {@link Fenetre fenêtre})
*
* @author Léo Franch
* @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see MenuItem
*/
public class PleineLargeur extends MenuItem {
/**
* Créé un nouvel élément de Menu "Pleine Largeur"
* Créé un nouvel élément de
* {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
*
* @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
* {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItem}
*/
public PleineLargeur(Fenetre parent) {
super(parent, "Pleine Largeur");
+15 -6
View File
@@ -12,20 +12,25 @@ import lecteur_pdf.Popup;
import javax.swing.*;
/**
* Élément de Menu Quitter qui permet de fermer la fenêtre courante, ferme
* l'application s'il s'agit de la dernière fenêtre fermée
* Élément de {@link lecteur_pdf.menuBar.menu.MenuFichier MenuFichier} qui
* permet de fermer la {@link Fenetre fenêtre} courante et ferme
* l'application s'il s'agit de la dernière {@link Fenetre fenêtre} fermée
*
* @author Léo Franch
* @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see MenuItem
*/
public class Quitter extends MenuItem {
/**
* Créé un nouvel élément de Menu "Quitter"
* 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
* {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItem}
*/
public Quitter(Fenetre parent) {
super(parent, "Quitter");
@@ -34,7 +39,11 @@ public class Quitter extends MenuItem {
@Override
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();
final String MESSAGE
= "Êtes-vous sûr de vouloir quitter l'application ?";
if (Popup.OuiNonPopup(parent, TITRE, MESSAGE)
== JOptionPane.YES_OPTION) {
parent.quitter();
}
}
}
@@ -9,19 +9,24 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.Fenetre;
/**
* Élément de Menu Zoom 100% qui permet de mettre le Zoom par défaut
* Élément de {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
* qui permet de mettre le zoom par défaut
*
* @author Léo Franch
* @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see MenuItem
*/
public class ZoomDefaut extends MenuItem {
/**
* Créé un nouvel élément de Menu "Zoom 100%"
* Créé un nouvel élément de
* {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
*
* @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
* {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItem}
*/
public ZoomDefaut(Fenetre parent) {
super(parent, "Zoom 100%");
@@ -9,19 +9,24 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.Fenetre;
/**
* Élément de Menu Zoom 50% qui permet de dézoomer
* Élément de {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
* qui permet de dézoomer
*
* @author Léo Franch
* @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see MenuItem
*/
public class ZoomMoins extends MenuItem {
/**
* Créé un nouvel élément de Menu "Zoom 50%"
* Créé un nouvel élément de
* {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
*
* @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
* {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItem}
*/
public ZoomMoins(Fenetre parent) {
super(parent, "Zoom 50%");
@@ -9,19 +9,24 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.Fenetre;
/**
* Élément de Menu Zoom 150% qui permet de zoomer
* Élément de {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
* qui permet de zoomer
*
* @author Léo Franch
* @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see MenuItem
*/
public class ZoomPlus extends MenuItem {
/**
* Créé un nouvel élément de Menu "Zoom 150%"
* Créé un nouvel élément de
* {@link lecteur_pdf.menuBar.menu.MenuAffichage MenuAffichage}
*
* @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
* {@link lecteur_pdf.menuBar.menuItems.MenuItem MenuItem}
*/
public ZoomPlus(Fenetre parent) {
super(parent, "Zoom 150%");
+44 -18
View File
@@ -14,29 +14,44 @@ import java.io.File;
import java.io.IOException;
/**
* Classe qui représente un document PDF ouvert, elle permet de créer des images des pages
* Classe qui représente un document PDF ouvert, elle permet de créer des
* images des pages
*
* @author Léo Franch
* @author Tristan Nogaret
* @author Lucàs Vabre
* @author Noé Villeneuve
* @see org.apache.pdfbox.pdmodel.PDDocument
* @see org.apache.pdfbox.rendering.PDFRenderer
* @see java.awt.image.BufferedImage
*/
public class DocumentPdf {
/** Le document PDF chargé avec PdfBox */
/**
* Le {@link org.apache.pdfbox.pdmodel.PDDocument document PDF} chargé
* avec PdfBox
*/
private final PDDocument document;
/** L'outil de rendus de PdfBox */
/**
* L'outil de {@link org.apache.pdfbox.rendering.PDFRenderer rendus} de
* PdfBox
*/
private PDFRenderer renderer;
/** La largeur par défaut de la page courante */
/**
* La largeur par défaut de la page courante
*/
private int minWidth;
/** La longueur par défaut de la page courante */
/**
* La longueur par défaut de la page courante
*/
private int minHeight;
/**
* Charge un nouveau document PDF
* Charge un nouveau
* {@link org.apache.pdfbox.pdmodel.PDDocument document PDF}
*
* @param file Le fichier PDF à charger
* @throws IOException Si le document passé en argument est illisible
@@ -48,34 +63,44 @@ public class DocumentPdf {
minHeight = -1;
}
/** @return La largeur par défaut de la page courante */
/**
* @return La largeur par défaut de la page courante
*/
public int getMinWidth() {
return minWidth;
}
/** @return La longueur par défaut de la page courante */
/**
* @return La longueur par défaut de la page courante
*/
public int getMinHeight() {
return minHeight;
}
/** @return Le nombre de pages du document */
/**
* @return Le nombre de pages du document
*/
public int getNbPages() {
return document.getNumberOfPages();
}
/**
* Créé une image de la page voulue
* Créé une {@link java.awt.image.BufferedImage image} de la page voulue
*
* @param pageIndex Numéro de la page désirée (compris entre 0 et le
* @param pageIndex Numéro de la page désirée (compris entre 0 et le
* nombre maximal de pages)
* @param scale Taille de la page (La qualité de l'image est amélioré
* suivant cette valeur)
* @return Une image de la page demandée
* @throws IOException Si l'image de rendu n'as pas pu être créée
* @param scale Taille de la page (La qualité de l'image est amélioré
* suivant cette valeur)
* @return Une {@link java.awt.image.BufferedImage image} de la page
* demandée
* @throws IOException Si l'image de rendu n'as pas pu être
* créée
* @throws IllegalArgumentException Si le numero de page est invalide
* (n'est pas compris entre 0 et le nombre maximal de pages)
* (n'est pas compris entre 0 et le
* nombre maximal de pages)
*/
public BufferedImage renderPage(int pageIndex, float scale) throws IOException {
public BufferedImage renderPage(int pageIndex, float scale) throws
IOException {
if (pageIndex < 0 || pageIndex >= this.getNbPages()) {
throw new IllegalArgumentException();
}
@@ -99,6 +124,7 @@ public class DocumentPdf {
document.close();
minWidth = -1;
minHeight = -1;
} catch (IOException ignored) {}
} catch (IOException ignored) {
}
}
}