mirror of
https://github.com/LucasVbr/LecteurPdfDoubleAffichage.git
synced 2026-07-09 12:47:45 +00:00
Ajout commentaires et refactor
This commit is contained in:
@@ -122,7 +122,8 @@ public class Fenetre extends JFrame {
|
|||||||
|
|
||||||
/* Si la liste des fenêtres n'est pas pleine alors on réactive le
|
/* Si la liste des fenêtres n'est pas pleine alors on réactive le
|
||||||
bouton pour créer une nouvelle fenêtre */
|
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 */
|
/* 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);
|
||||||
|
|||||||
@@ -51,9 +51,7 @@ public class GestionFenetre {
|
|||||||
* (mode Synchronisé)
|
* (mode Synchronisé)
|
||||||
*/
|
*/
|
||||||
public static void nextPages() {
|
public static void nextPages() {
|
||||||
for (Fenetre ihm : FENETRE_LIST) {
|
for (Fenetre ihm : FENETRE_LIST) ihm.getPdfPanel().nextPage();
|
||||||
ihm.getPdfPanel().nextPage();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -61,9 +59,7 @@ public class GestionFenetre {
|
|||||||
* (mode Synchronisé)
|
* (mode Synchronisé)
|
||||||
*/
|
*/
|
||||||
public static void previousPages() {
|
public static void previousPages() {
|
||||||
for (Fenetre ihm : FENETRE_LIST) {
|
for (Fenetre ihm : FENETRE_LIST) ihm.getPdfPanel().previousPage();
|
||||||
ihm.getPdfPanel().previousPage();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import javax.swing.*;
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Classe outils permettant de creer des fenêtre Popups
|
||||||
*
|
*
|
||||||
* @author Léo Franch
|
* @author Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -19,6 +19,14 @@ import java.awt.*;
|
|||||||
*/
|
*/
|
||||||
public class Popup {
|
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) {
|
public static int OuiNonPopup(Component parent, String titre, String message) {
|
||||||
JOptionPane d = new JOptionPane();
|
JOptionPane d = new JOptionPane();
|
||||||
String[] choix = {"Oui", "Non"};
|
String[] choix = {"Oui", "Non"};
|
||||||
@@ -26,12 +34,16 @@ public class Popup {
|
|||||||
null, choix, choix[0]);
|
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) {
|
public static void errorPopup(Component parent, String titre, String message) {
|
||||||
JOptionPane d = new JOptionPane();
|
JOptionPane d = new JOptionPane();
|
||||||
String[] choix = {"OK"};
|
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]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,25 +18,37 @@ import java.io.File;
|
|||||||
* @author Tristan NOGARET
|
* @author Tristan NOGARET
|
||||||
* @author Lucàs VABRE
|
* @author Lucàs VABRE
|
||||||
* @author Noé VILLENEUVE
|
* @author Noé VILLENEUVE
|
||||||
* @version 1.0
|
|
||||||
*/
|
*/
|
||||||
public class SelectionnerFichier {
|
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
|
* 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) {
|
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 */
|
/* Crée une fenêtre de sélection de fichier */
|
||||||
JFileChooser fileChooser = new JFileChooser(
|
JFileChooser fileChooser = new JFileChooser(
|
||||||
FileSystemView.getFileSystemView().getDefaultDirectory());
|
FileSystemView.getFileSystemView().getDefaultDirectory());
|
||||||
@@ -67,6 +79,7 @@ public class SelectionnerFichier {
|
|||||||
return new File(fileChooser.getSelectedFile().getAbsolutePath());
|
return new File(fileChooser.getSelectedFile().getAbsolutePath());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Renvoie null si le fichier n'est pas trouvé */
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import lecteur_pdf.menuBar.menu.MenuOptions;
|
|||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO commentaires
|
* Barre de menu contenant l'ensemble des menus de l'application
|
||||||
*
|
*
|
||||||
* @author Léo Franch
|
* @author Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -24,6 +24,11 @@ import javax.swing.*;
|
|||||||
*/
|
*/
|
||||||
public class MenuBar extends JMenuBar {
|
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) {
|
public MenuBar(Fenetre parent) {
|
||||||
add(new MenuFichier(parent));
|
add(new MenuFichier(parent));
|
||||||
add(new MenuAffichage(parent));
|
add(new MenuAffichage(parent));
|
||||||
|
|||||||
@@ -49,5 +49,4 @@ public class MenuAffichage extends JMenu {
|
|||||||
add(new PageEntiere(parent));
|
add(new PageEntiere(parent));
|
||||||
add(new PleineLargeur(parent));
|
add(new PleineLargeur(parent));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
* @param parent Référence de la fenêtre qui possède l'instance de ce menu
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("GrazieInspection")
|
|
||||||
public MenuMode(Fenetre parent) {
|
public MenuMode(Fenetre parent) {
|
||||||
super("Mode");
|
super("Mode");
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import javax.swing.*;
|
|||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO commentaires
|
* Element de Menu Fermer qui permet de fermer le document PDF courrant
|
||||||
*
|
*
|
||||||
* @author Léo Franch
|
* @author Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -22,6 +22,12 @@ import java.awt.event.ActionEvent;
|
|||||||
*/
|
*/
|
||||||
public class FermerFichier extends MenuItem {
|
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"
|
* Crée un nouvel Element de Menu "Fermer"
|
||||||
*
|
*
|
||||||
@@ -34,10 +40,8 @@ public class FermerFichier extends MenuItem {
|
|||||||
@Override
|
@Override
|
||||||
protected void action(ActionEvent evt) {
|
protected void action(ActionEvent evt) {
|
||||||
if (parent.getPdfPanel().isCharge()) {
|
if (parent.getPdfPanel().isCharge()) {
|
||||||
String TITRE = "Fermeture du document";
|
int resultatPopup = Popup.OuiNonPopup(parent, TITRE, MESSAGE);
|
||||||
String MESSAGE = "Êtes-vous sûr de vouloir fermer le document ?";
|
if (resultatPopup == JOptionPane.YES_OPTION) parent.fermerPdf();
|
||||||
|
|
||||||
if (Popup.OuiNonPopup(parent, TITRE, MESSAGE) == JOptionPane.YES_OPTION) parent.fermerPdf();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,10 +22,8 @@ import java.awt.event.ActionEvent;
|
|||||||
*/
|
*/
|
||||||
public abstract class MenuItem extends 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 fenêtre qui possède l'instance de ce MenuItem
|
final Fenetre parent;
|
||||||
*/
|
|
||||||
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
|
* Crée un nouvel Element de Menu avec un nom, une action et se référence dans la liste des raccourcis claviers
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import lecteur_pdf.raccourcisClavier.RaccourcisClavier;
|
|||||||
import javax.swing.*;
|
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 Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -22,7 +22,7 @@ import javax.swing.*;
|
|||||||
public class ModeSepare extends JRadioButtonMenuItem {
|
public class ModeSepare extends JRadioButtonMenuItem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Crée un nouvel Element de Menu "Mode Séparé"
|
||||||
*/
|
*/
|
||||||
public ModeSepare() {
|
public ModeSepare() {
|
||||||
super("Mode Séparé");
|
super("Mode Séparé");
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import lecteur_pdf.raccourcisClavier.RaccourcisClavier;
|
|||||||
import javax.swing.*;
|
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 Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -22,7 +22,7 @@ import javax.swing.*;
|
|||||||
public class ModeSynchronise extends JRadioButtonMenuItem {
|
public class ModeSynchronise extends JRadioButtonMenuItem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Crée un nouvel Element de Menu "Mode Synchronisé"
|
||||||
*/
|
*/
|
||||||
public ModeSynchronise() {
|
public ModeSynchronise() {
|
||||||
super("Mode Synchronisé");
|
super("Mode Synchronisé");
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import lecteur_pdf.raccourcisClavier.RaccourcisClavier;
|
|||||||
import java.awt.event.ActionEvent;
|
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 Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -22,7 +22,8 @@ import java.awt.event.ActionEvent;
|
|||||||
public class ModifierTouches extends MenuItem {
|
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
|
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
|
||||||
*/
|
*/
|
||||||
public ModifierTouches(Fenetre parent) {
|
public ModifierTouches(Fenetre parent) {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import lecteur_pdf.Fenetre;
|
|||||||
import java.awt.event.ActionEvent;
|
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 Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -23,8 +23,9 @@ import java.awt.event.ActionEvent;
|
|||||||
public class NouvelleFenetre extends MenuItem {
|
public class NouvelleFenetre extends MenuItem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Crée un nouvel Element de Menu "Nouvelle Fenêtre"
|
||||||
* @param parent
|
*
|
||||||
|
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
|
||||||
*/
|
*/
|
||||||
public NouvelleFenetre(Fenetre parent) {
|
public NouvelleFenetre(Fenetre parent) {
|
||||||
super(parent, "Nouvelle Fenêtre");
|
super(parent, "Nouvelle Fenêtre");
|
||||||
|
|||||||
@@ -10,11 +10,12 @@ import lecteur_pdf.Fenetre;
|
|||||||
import lecteur_pdf.Popup;
|
import lecteur_pdf.Popup;
|
||||||
import lecteur_pdf.SelectionnerFichier;
|
import lecteur_pdf.SelectionnerFichier;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO commentaires
|
* Element de Menu Ouvrir Fichier qui permet d'ouvrir un document
|
||||||
*
|
*
|
||||||
* @author Léo Franch
|
* @author Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -23,25 +24,33 @@ import java.io.File;
|
|||||||
*/
|
*/
|
||||||
public class OuvrirFichier extends MenuItem {
|
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) {
|
public OuvrirFichier(Fenetre parent) {
|
||||||
super(parent, "Ouvrir");
|
super(parent, "Ouvrir");
|
||||||
|
|
||||||
// setRaccourcis(KeyEvent.VK_O, KeyEvent.CTRL_DOWN_MASK);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void action(ActionEvent evt) {
|
protected void action(ActionEvent evt) {
|
||||||
|
|
||||||
|
int valide = parent.getPdfPanel().isCharge()
|
||||||
|
? Popup.OuiNonPopup(parent, FermerFichier.TITRE, FermerFichier.MESSAGE)
|
||||||
|
: JOptionPane.YES_OPTION;
|
||||||
|
|
||||||
|
if (valide == JOptionPane.YES_OPTION) {
|
||||||
/* On charge le fichier si c'est possible */
|
/* On charge le fichier si c'est possible */
|
||||||
File fichier = SelectionnerFichier.ouvrirFichier(parent);
|
File fichier = SelectionnerFichier.ouvrirFichier(parent);
|
||||||
|
|
||||||
if (fichier == null) {
|
if (fichier != null) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* S'il y a deja un fichier d'ouvert, on le ferme */
|
/* S'il y a deja un fichier d'ouvert, on le ferme */
|
||||||
parent.getPdfPanel().dechargerPdf();
|
parent.getPdfPanel().dechargerPdf();
|
||||||
parent.setTitle(Fenetre.TITRE);
|
parent.setTitle(Fenetre.TITRE);
|
||||||
@@ -50,10 +59,8 @@ public class OuvrirFichier extends MenuItem {
|
|||||||
if (parent.getPdfPanel().chargerPdf(fichier)) {
|
if (parent.getPdfPanel().chargerPdf(fichier)) {
|
||||||
parent.setTitle(Fenetre.TITRE + " - " + fichier.getName());
|
parent.setTitle(Fenetre.TITRE + " - " + fichier.getName());
|
||||||
parent.pack();
|
parent.pack();
|
||||||
} else {
|
} else Popup.errorPopup(parent, TITRE_ERREUR, MESSAGE_ERREUR);
|
||||||
final String TITRE = "Erreur";
|
}
|
||||||
final String MESSAGE = "Erreur : Le document n'as pas pu être chargé";
|
|
||||||
Popup.errorPopup(parent, TITRE, MESSAGE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
package lecteur_pdf.menuBar.menuItems;
|
||||||
|
|
||||||
import lecteur_pdf.Fenetre;
|
import lecteur_pdf.Fenetre;
|
||||||
|
|
||||||
import java.awt.event.ActionEvent;
|
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 {
|
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
|
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
|
||||||
*/
|
*/
|
||||||
public PageEntiere(Fenetre parent) {
|
public PageEntiere(Fenetre parent) {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import lecteur_pdf.Fenetre;
|
|||||||
import java.awt.event.ActionEvent;
|
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 Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -23,8 +23,9 @@ import java.awt.event.ActionEvent;
|
|||||||
public class PagePrecedente extends MenuItem {
|
public class PagePrecedente extends MenuItem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Crée un nouvel Element de Menu "Page Précédente"
|
||||||
* @param parent
|
*
|
||||||
|
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
|
||||||
*/
|
*/
|
||||||
public PagePrecedente(Fenetre parent) {
|
public PagePrecedente(Fenetre parent) {
|
||||||
super(parent, "Page précédente");
|
super(parent, "Page précédente");
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import lecteur_pdf.Fenetre;
|
|||||||
import java.awt.event.ActionEvent;
|
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 Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -23,8 +23,9 @@ import java.awt.event.ActionEvent;
|
|||||||
public class PageSuivante extends MenuItem {
|
public class PageSuivante extends MenuItem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Crée un nouvel Element de Menu "Page Suivante"
|
||||||
* @param parent
|
*
|
||||||
|
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
|
||||||
*/
|
*/
|
||||||
public PageSuivante(Fenetre parent) {
|
public PageSuivante(Fenetre parent) {
|
||||||
super(parent, "Page suivante");
|
super(parent, "Page suivante");
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import lecteur_pdf.Fenetre;
|
|||||||
import java.awt.event.ActionEvent;
|
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 Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -21,8 +21,9 @@ import java.awt.event.ActionEvent;
|
|||||||
public class PleinEcran extends MenuItem {
|
public class PleinEcran extends MenuItem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Crée un nouvel Element de Menu "Plein Ecran"
|
||||||
* @param parent
|
*
|
||||||
|
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
|
||||||
*/
|
*/
|
||||||
public PleinEcran(Fenetre parent) {
|
public PleinEcran(Fenetre parent) {
|
||||||
super(parent, "Mode Plein Écran");
|
super(parent, "Mode Plein Écran");
|
||||||
|
|||||||
@@ -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;
|
package lecteur_pdf.menuBar.menuItems;
|
||||||
|
|
||||||
import lecteur_pdf.Fenetre;
|
import lecteur_pdf.Fenetre;
|
||||||
|
|
||||||
import java.awt.event.ActionEvent;
|
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{
|
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
|
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
|
||||||
*/
|
*/
|
||||||
public PleineLargeur(Fenetre parent) {
|
public PleineLargeur(Fenetre parent) {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import javax.swing.*;
|
|||||||
import java.awt.event.ActionEvent;
|
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 Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -23,8 +23,9 @@ import java.awt.event.ActionEvent;
|
|||||||
public class Quitter extends MenuItem {
|
public class Quitter extends MenuItem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Crée un nouvel Element de Menu "Quitter"
|
||||||
* @param parent
|
*
|
||||||
|
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
|
||||||
*/
|
*/
|
||||||
public Quitter(Fenetre parent) {
|
public Quitter(Fenetre parent) {
|
||||||
super(parent, "Quitter");
|
super(parent, "Quitter");
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import lecteur_pdf.Fenetre;
|
|||||||
import java.awt.event.ActionEvent;
|
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 Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -21,8 +21,9 @@ import java.awt.event.ActionEvent;
|
|||||||
public class ZoomDefaut extends MenuItem {
|
public class ZoomDefaut extends MenuItem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Crée un nouvel Element de Menu "Zoom 100%"
|
||||||
* @param parent
|
*
|
||||||
|
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
|
||||||
*/
|
*/
|
||||||
public ZoomDefaut(Fenetre parent) {
|
public ZoomDefaut(Fenetre parent) {
|
||||||
super(parent, "Zoom 100%");
|
super(parent, "Zoom 100%");
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import lecteur_pdf.Fenetre;
|
|||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO commentaires
|
* Element de Menu Zoom 50% qui permet de dézoomer
|
||||||
*
|
*
|
||||||
* @author Léo Franch
|
* @author Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -21,8 +21,9 @@ import java.awt.event.ActionEvent;
|
|||||||
public class ZoomMoins extends MenuItem {
|
public class ZoomMoins extends MenuItem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Crée un nouvel Element de Menu "Zoom 50%"
|
||||||
* @param parent
|
*
|
||||||
|
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
|
||||||
*/
|
*/
|
||||||
public ZoomMoins(Fenetre parent) {
|
public ZoomMoins(Fenetre parent) {
|
||||||
super(parent, "Zoom 50%");
|
super(parent, "Zoom 50%");
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import lecteur_pdf.Fenetre;
|
|||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO commentaires
|
* Element de Menu Zoom 150% qui permet de zoomer
|
||||||
*
|
*
|
||||||
* @author Léo Franch
|
* @author Léo Franch
|
||||||
* @author Lucas Vabre
|
* @author Lucas Vabre
|
||||||
@@ -21,8 +21,9 @@ import java.awt.event.ActionEvent;
|
|||||||
public class ZoomPlus extends MenuItem {
|
public class ZoomPlus extends MenuItem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* Crée un nouvel Element de Menu "Zoom 150%"
|
||||||
* @param parent
|
*
|
||||||
|
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
|
||||||
*/
|
*/
|
||||||
public ZoomPlus(Fenetre parent) {
|
public ZoomPlus(Fenetre parent) {
|
||||||
super(parent, "Zoom 150%");
|
super(parent, "Zoom 150%");
|
||||||
|
|||||||
@@ -23,17 +23,16 @@ import java.io.IOException;
|
|||||||
*/
|
*/
|
||||||
public class DocumentPdf {
|
public class DocumentPdf {
|
||||||
|
|
||||||
/**
|
/** TODO */
|
||||||
* TODO
|
|
||||||
*/
|
|
||||||
private PDDocument document;
|
private PDDocument document;
|
||||||
|
|
||||||
/**
|
/** TODO */
|
||||||
* TODO
|
|
||||||
*/
|
|
||||||
private PDFRenderer renderer;
|
private PDFRenderer renderer;
|
||||||
|
|
||||||
|
/** TODO */
|
||||||
private int minWidth;
|
private int minWidth;
|
||||||
|
|
||||||
|
/** TODO */
|
||||||
private int minHeight;
|
private int minHeight;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -49,10 +48,16 @@ public class DocumentPdf {
|
|||||||
minHeight = -1;
|
minHeight = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO
|
||||||
|
*/
|
||||||
public int getMinWidth() {
|
public int getMinWidth() {
|
||||||
return minWidth;
|
return minWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO
|
||||||
|
*/
|
||||||
public int getMinHeight() {
|
public int getMinHeight() {
|
||||||
return minHeight;
|
return minHeight;
|
||||||
}
|
}
|
||||||
@@ -66,11 +71,16 @@ public class DocumentPdf {
|
|||||||
return document.getNumberOfPages();
|
return document.getNumberOfPages();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO
|
||||||
|
*/
|
||||||
public BufferedImage renderPage(int pageIndex) throws IOException {
|
public BufferedImage renderPage(int pageIndex) throws IOException {
|
||||||
return renderPage(pageIndex, 1.0f);
|
return renderPage(pageIndex, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO
|
||||||
|
*/
|
||||||
public BufferedImage setScale(float scale) {
|
public BufferedImage setScale(float scale) {
|
||||||
try {
|
try {
|
||||||
return renderPage(0, scale);
|
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() {
|
public void close() {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -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);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
@@ -135,15 +135,31 @@ public class PdfPanel extends JPanel {
|
|||||||
else GestionFenetre.previousPages();
|
else GestionFenetre.previousPages();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO
|
||||||
|
*/
|
||||||
public void resize() {
|
public void resize() {
|
||||||
if (pdfLoader != null && !processing) {
|
if (pdfLoader == null || processing) return;
|
||||||
scaleSizing = pleineLargeur
|
|
||||||
? (((float) viewport.getWidth() - (float) scrollPane.getVerticalScrollBar().getWidth()) / (float) pdfLoader.getMinWidth()) - scaleZoom
|
if (pleineLargeur) {
|
||||||
: (((float) viewport.getHeight() - (float) scrollPane.getHorizontalScrollBar().getHeight()) / (float) pdfLoader.getMinHeight()) - scaleZoom;
|
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);
|
updateScaleSizing(scaleSizing);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param pleineLargeur booléen qui défini l'état du mode pleine largeur
|
||||||
|
*/
|
||||||
public void setPleineLargeur(boolean pleineLargeur) {
|
public void setPleineLargeur(boolean pleineLargeur) {
|
||||||
this.pleineLargeur = pleineLargeur;
|
this.pleineLargeur = pleineLargeur;
|
||||||
resize();
|
resize();
|
||||||
@@ -156,8 +172,9 @@ public class PdfPanel extends JPanel {
|
|||||||
* @return true si le prédicat est vérifié, false sinon
|
* @return true si le prédicat est vérifié, false sinon
|
||||||
*/
|
*/
|
||||||
private boolean isPageValide(int index) {
|
private boolean isPageValide(int index) {
|
||||||
if (pdfLoader == null) return false;
|
return pdfLoader != null
|
||||||
return 0 <= index && index < pdfLoader.getNbPages();
|
&& 0 <= index
|
||||||
|
&& index < pdfLoader.getNbPages();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -171,13 +188,12 @@ public class PdfPanel extends JPanel {
|
|||||||
setPdfLoader(new DocumentPdf(pdfFile));
|
setPdfLoader(new DocumentPdf(pdfFile));
|
||||||
setPage(0);
|
setPage(0);
|
||||||
return true;
|
return true;
|
||||||
} catch (IOException e) {
|
} catch (IOException ignored) {}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param pdfLoader
|
* @param pdfLoader un nouveau document PDF à affecter à la fenêtre
|
||||||
*/
|
*/
|
||||||
public void setPdfLoader(DocumentPdf pdfLoader) {
|
public void setPdfLoader(DocumentPdf pdfLoader) {
|
||||||
this.pdfLoader = pdfLoader;
|
this.pdfLoader = pdfLoader;
|
||||||
@@ -187,7 +203,8 @@ public class PdfPanel extends JPanel {
|
|||||||
* Décharge le document courant s'il y en a un
|
* Décharge le document courant s'il y en a un
|
||||||
*/
|
*/
|
||||||
public void dechargerPdf() {
|
public void dechargerPdf() {
|
||||||
if (isCharge()) {
|
if (!isCharge()) return;
|
||||||
|
|
||||||
/* Ferme le loader et l'efface */
|
/* Ferme le loader et l'efface */
|
||||||
pdfLoader.close();
|
pdfLoader.close();
|
||||||
pdfLoader = null;
|
pdfLoader = null;
|
||||||
@@ -206,7 +223,6 @@ public class PdfPanel extends JPanel {
|
|||||||
|
|
||||||
validate();
|
validate();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Change la taille de la page courante
|
* Change la taille de la page courante
|
||||||
@@ -223,7 +239,7 @@ public class PdfPanel extends JPanel {
|
|||||||
*
|
*
|
||||||
* @param scale Valeur flottante (1.00f == 100%)
|
* @param scale Valeur flottante (1.00f == 100%)
|
||||||
*/
|
*/
|
||||||
public void updateScaleSizing(float scale) {
|
private void updateScaleSizing(float scale) {
|
||||||
scaleSizing = scale;
|
scaleSizing = scale;
|
||||||
setPage(currentPage);
|
setPage(currentPage);
|
||||||
}
|
}
|
||||||
@@ -248,7 +264,7 @@ public class PdfPanel extends JPanel {
|
|||||||
* @param index Le numéro de la page où l'on veut se rendre
|
* @param index Le numéro de la page où l'on veut se rendre
|
||||||
*/
|
*/
|
||||||
private void setPage(int index) {
|
private void setPage(int index) {
|
||||||
if (isPageValide(index)) {
|
if (!isPageValide(index)) return;
|
||||||
|
|
||||||
processing = true;
|
processing = true;
|
||||||
try {
|
try {
|
||||||
@@ -259,7 +275,6 @@ public class PdfPanel extends JPanel {
|
|||||||
} catch (IOException ignored) {}
|
} catch (IOException ignored) {}
|
||||||
processing = false;
|
processing = false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prédicat qui vérifie si un PDF est chargé ou non
|
* Prédicat qui vérifie si un PDF est chargé ou non
|
||||||
|
|||||||
Reference in New Issue
Block a user