Ajout de commentaires (Entêtes + TODO)

This commit is contained in:
LucasV-IUT
2022-02-26 01:21:29 +01:00
parent aa7d72361e
commit 78c209d3f6
22 changed files with 510 additions and 34 deletions
+39 -2
View File
@@ -1,3 +1,9 @@
/*
* GestionMode.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf;
import lecteur_pdf.menuBar.menuItems.ModeSepare;
@@ -5,6 +11,14 @@ import lecteur_pdf.menuBar.menuItems.ModeSynchronise;
import java.util.ArrayList;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class GestionMode {
/**
@@ -14,35 +28,58 @@ public class GestionMode {
*/
private static boolean modeSepare;
/**
* TODO
*/
private static final ArrayList<ModeSepare> modeSepareList = new ArrayList<>();
/**
* TODO
*/
private static final ArrayList<ModeSynchronise> modeSynchroniseList = new ArrayList<>();
/**
* TODO
* @param separe
* @param synchronise
*/
public static void addItem(ModeSepare separe, ModeSynchronise synchronise) {
modeSepareList.add(separe);
modeSynchroniseList.add(synchronise);
updateMode();
}
/**
* TODO
* @return
*/
public static boolean isModeSepare() {
return modeSepare;
}
/**
* TODO
*/
public static void setModeSepare() {
modeSepare = true;
updateMode();
}
/**
* TODO
*/
public static void setModeSynchronise() {
modeSepare = false;
updateMode();
}
/**
* TODO
*/
private static void updateMode() {
for (int i = 0; i < modeSepareList.size() ; i++) {
modeSepareList.get(i).setSelected(modeSepare);
modeSynchroniseList.get(i).setSelected(!modeSepare);
}
}
}
+25 -9
View File
@@ -1,3 +1,9 @@
/*
* GestionPdf.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf;
import javax.swing.*;
@@ -5,10 +11,28 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class GestionPdf {
public static String titreApplication = "LPDA";
/**
* TODO
*/
public static final String TITRE_APPLICATION = "LPDA";
/**
* TODO
*/
public static final int maxPdf = 2;
/**
* TODO
*/
public static final List<IhmPdf> ihmPdfList = new ArrayList<>();
/**
@@ -44,14 +68,6 @@ public class GestionPdf {
}
}
public void chargerRaccourcisClaviers() {
// TODO changer les raccourcis clavier a partir d'un fichier
}
public void sauvegarderRaccourcisClaviers() {
// TODO sauvegarder les raccourcis clavier dans un fichier
}
/**
* Lance l'application
* @param args non utilisé
+21 -4
View File
@@ -1,5 +1,5 @@
/*
* Ihm, 03/02/2022
* IhmPdf, 03/02/2022
* IUT Rodez 2022, INFO2
* pas de copyright, aucun droits
*/
@@ -16,9 +16,12 @@ import java.awt.event.WindowEvent;
import java.io.IOException;
/**
* TODO A compléter
* TODO commentaires
*
* @author lucas
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class IhmPdf extends JFrame {
@@ -30,8 +33,12 @@ public class IhmPdf extends JFrame {
private boolean fullscreen = false;
private GraphicsDevice device;
/**
* TODO
* @throws IOException
*/
public IhmPdf() throws IOException {
super(GestionPdf.titreApplication);
super(GestionPdf.TITRE_APPLICATION);
/* Déclaration des attributs */
menuBar = new MenuBar(this);
@@ -55,10 +62,17 @@ public class IhmPdf extends JFrame {
setVisible(true);
}
/**
* TODO
* @return
*/
public PdfPanel getPdfPanel() {
return pdfPanel;
}
/**
* TODO
*/
public void pleinEcran() {
// Switch de disposition
fullscreen = !fullscreen;
@@ -74,6 +88,9 @@ public class IhmPdf extends JFrame {
}
}
/**
* TODO
*/
public void quitter() {
pdfPanel.dechargerPdf();
GestionPdf.ihmPdfList.remove(this);
+4 -1
View File
@@ -13,13 +13,16 @@ import java.util.Map;
/**
* Gestionnaire des raccourcis claviers de l'application
*
* @author Léo Franche
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class RaccourcisClavier {
/**
* TODO
*/
public static Map<JMenuItem, KeyStroke> gestionnaireRaccourcis = new HashMap<>();
}
+23 -2
View File
@@ -1,14 +1,35 @@
/*
* MenuBar.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar;
import lecteur_pdf.IhmPdf;
import lecteur_pdf.menuBar.menu.*;
import lecteur_pdf.menuBar.menu.MenuAffichage;
import lecteur_pdf.menuBar.menu.MenuFichier;
import lecteur_pdf.menuBar.menu.MenuMode;
import lecteur_pdf.menuBar.menu.MenuOptions;
import javax.swing.*;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class MenuBar extends JMenuBar {
/**
* TODO
*
* @param parent
*/
public MenuBar(IhmPdf parent) {
add(new MenuFichier(parent));
add(new MenuAffichage(parent));
add(new MenuMode(parent));
+20 -1
View File
@@ -1,3 +1,9 @@
/*
* MenuOptions.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menu;
import lecteur_pdf.IhmPdf;
@@ -5,10 +11,23 @@ import lecteur_pdf.menuBar.menuItems.*;
import javax.swing.*;
/**
* Element de la barre des menus contenant l'intégralités des Options de l'application
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class MenuOptions extends JMenu {
/**
* Crée une nouvelle instance du menu Option
*
* @param parent Référence de la fenêtre qui possède l'instance de ce menu
*/
public MenuOptions(IhmPdf parent) {
super("Options");
// Ajoute les menu items
add(new ModifierTouches(parent));
}
}
@@ -1,3 +1,9 @@
/*
* FermerFichier.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.GestionPdf;
@@ -5,17 +11,32 @@ import lecteur_pdf.IhmPdf;
import java.awt.event.KeyEvent;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class FermerFichier extends MenuItem {
/**
* TODO
*
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
*/
public FermerFichier(IhmPdf parent) {
super(parent, "Fermer");
/* Action du bouton */
addActionListener(e -> {
parent.getPdfPanel().dechargerPdf();
parent.setTitle(GestionPdf.titreApplication);
parent.setTitle(GestionPdf.TITRE_APPLICATION);
parent.pack();
});
/* TODO Définition du raccourcis clavier a modifier */
setRaccourcis(KeyEvent.VK_X, KeyEvent.CTRL_DOWN_MASK);
}
}
@@ -1,3 +1,9 @@
/*
* MenuItem.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf;
@@ -5,22 +11,51 @@ import lecteur_pdf.RaccourcisClavier;
import javax.swing.*;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class MenuItem extends JMenuItem {
/**
* TODO
*/
IhmPdf parent;
/**
* TODO
*
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
* @param name
*/
public MenuItem(IhmPdf parent, String name) {
super(name);
this.parent = parent;
}
/**
* TODO
*
* @param key
*/
public void setRaccourcis(int key) {
KeyStroke raccourcis = KeyStroke.getKeyStroke((char)key);
KeyStroke raccourcis = KeyStroke.getKeyStroke((char) key);
setAccelerator(raccourcis);
RaccourcisClavier.gestionnaireRaccourcis.put(this, raccourcis);
}
/**
* TODO
*
* @param key
* @param mask
*/
public void setRaccourcis(int key, int mask) {
KeyStroke raccourcis = KeyStroke.getKeyStroke(key, mask);
setAccelerator(raccourcis);
@@ -1,3 +1,9 @@
/*
* ModeSepare.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.GestionMode;
@@ -5,10 +11,25 @@ import lecteur_pdf.IhmPdf;
import javax.swing.*;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class ModeSepare extends JRadioButtonMenuItem {
/**
* TODO
*/
IhmPdf parent;
/**
* TODO
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
*/
public ModeSepare(IhmPdf parent) {
super("Mode Séparé");
this.parent = parent;
@@ -1,3 +1,9 @@
/*
* ModeSynchronise.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.GestionMode;
@@ -5,10 +11,25 @@ import lecteur_pdf.IhmPdf;
import javax.swing.*;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class ModeSynchronise extends JRadioButtonMenuItem {
/**
* TODO
*/
IhmPdf parent;
/**
* TODO
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
*/
public ModeSynchronise(IhmPdf parent) {
super("Mode Synchronisé");
this.parent = parent;
@@ -1,9 +1,27 @@
/*
* ModifierTouches.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class ModifierTouches extends MenuItem {
/**
* TODO
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
*/
public ModifierTouches(IhmPdf parent) {
super(parent, "Modifier Touches");
@@ -1,10 +1,28 @@
/*
* NouvelleFenetre.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.GestionPdf;
import lecteur_pdf.IhmPdf;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class NouvelleFenetre extends MenuItem {
/**
* TODO
* @param parent
*/
public NouvelleFenetre(IhmPdf parent) {
super(parent, "Nouvelle Fenêtre");
@@ -1,3 +1,9 @@
/*
* OuvrirFichier.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf;
@@ -6,20 +12,31 @@ import lecteur_pdf.SelectionnerFichier;
import java.awt.event.KeyEvent;
import java.io.File;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class OuvrirFichier extends MenuItem {
/**
* TODO
*
* @param parent
*/
public OuvrirFichier(IhmPdf parent) {
super(parent, "Ouvrir");
addActionListener(e -> {
File fichier = SelectionnerFichier.ouvrirFichier();
if (fichier != null) {
if (parent.getPdfPanel().chargerPdf(fichier)) {
parent.setTitle(fichier.getName());
parent.pack();
} else {
// TODO Erreur fichier n'as pas pu etre chargé
}
if (fichier != null && parent.getPdfPanel().chargerPdf(fichier)) {
parent.setTitle(fichier.getName());
parent.pack();
} else {
// TODO Erreur fichier n'as pas pu etre chargé
}
});
@@ -1,13 +1,31 @@
/*
* PagePrecedente.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.GestionMode;
import lecteur_pdf.GestionPdf;
import lecteur_pdf.IhmPdf;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class PagePrecedente extends MenuItem {
/**
* TODO
* @param parent
*/
public PagePrecedente(IhmPdf parent) {
super(parent,"Page précédente");
super(parent, "Page précédente");
addActionListener(e -> {
if (GestionMode.isModeSepare()) {
@@ -1,13 +1,31 @@
/*
* PageSuivante.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.GestionMode;
import lecteur_pdf.GestionPdf;
import lecteur_pdf.IhmPdf;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class PageSuivante extends MenuItem {
/**
* TODO
* @param parent
*/
public PageSuivante(IhmPdf parent) {
super(parent,"Page suivante");
super(parent, "Page suivante");
addActionListener(e -> {
if (GestionMode.isModeSepare()) {
@@ -1,15 +1,35 @@
/*
* PleinEcran.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf;
import java.awt.event.KeyEvent;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class PleinEcran extends MenuItem {
/**
* TODO
* @param parent
*/
public PleinEcran(IhmPdf parent) {
super(parent, "Mode Plein Ecran");
addActionListener(e -> {parent.pleinEcran();});
addActionListener(e -> {
parent.pleinEcran();
});
setRaccourcis(KeyEvent.VK_F11);
@@ -1,11 +1,29 @@
/*
* Quitter.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf;
import java.awt.event.KeyEvent;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class Quitter extends MenuItem {
/**
* TODO
* @param parent
*/
public Quitter(IhmPdf parent) {
super(parent, "Quitter");
@@ -1,11 +1,29 @@
/*
* ZoomDefaut.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf;
import java.awt.event.KeyEvent;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class ZoomDefaut extends MenuItem {
/**
* TODO
* @param parent
*/
public ZoomDefaut(IhmPdf parent) {
super(parent, "Zoom 100%");
@@ -1,11 +1,29 @@
/*
* ZoomMoins.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf;
import java.awt.event.KeyEvent;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class ZoomMoins extends MenuItem {
/**
* TODO
* @param parent
*/
public ZoomMoins(IhmPdf parent) {
super(parent, "Zoom 50%");
@@ -1,11 +1,29 @@
/*
* ZoomPlus.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf;
import java.awt.event.KeyEvent;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class ZoomPlus extends MenuItem {
/**
* TODO
* @param parent
*/
public ZoomPlus(IhmPdf parent) {
super(parent, "Zoom 150%");
+53 -3
View File
@@ -1,3 +1,9 @@
/*
* PdfLoader.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.pdf;
import org.apache.pdfbox.pdmodel.PDDocument;
@@ -7,19 +13,54 @@ import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class PdfLoader {
/**
* TODO
*/
PDDocument document;
/**
* TODO
*/
PDFRenderer renderer;
/**
* TODO
*
* @param file
* @throws IOException
*/
public PdfLoader(File file) throws IOException {
document = PDDocument.load(file);
renderer = new PDFRenderer(document);
}
/**
* TODO
*
* @return
*/
public int getNbPages() {
return document.getNumberOfPages();
}
/**
* TODO
*
* @param pageIndex
* @param scale
* @return
* @throws IOException
*/
public BufferedImage renderPage(int pageIndex, float scale) throws IOException {
if (pageIndex < 0 || pageIndex >= this.getNbPages()) {
throw new IllegalArgumentException();
@@ -27,17 +68,26 @@ public class PdfLoader {
return renderer.renderImage(pageIndex, scale);
}
/**
* TODO
*/
public void close() {
try {
renderer = null;
document.close();
} catch(IOException ignored) {}
} catch (IOException ignored) {
}
}
/**
* TODO
*
* @param file
*/
public void load(File file) {
try {
document = PDDocument.load(file);
} catch (IOException ignored) {}
} catch (IOException ignored) {
}
}
}
+34
View File
@@ -1,3 +1,9 @@
/*
* PdfPanel.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.pdf;
import lecteur_pdf.GestionMode;
@@ -8,10 +14,28 @@ import java.awt.*;
import java.io.File;
import java.io.IOException;
/**
* TODO commentaires
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class PdfPanel extends JPanel {
/**
* TODO
*/
private int currentPage;
/**
* TODO
*/
private float currentScale;
/**
* TODO
*/
private PdfLoader pdfLoader;
private JButton suivantButton;
@@ -22,6 +46,9 @@ public class PdfPanel extends JPanel {
private JScrollPane scrollPane;
private JTextField indexPage;
/**
* TODO
*/
public PdfPanel() {
super();
@@ -92,10 +119,17 @@ public class PdfPanel extends JPanel {
return true;
}
/**
* TODO
* @param pdfLoader
*/
public void setPdfLoader(PdfLoader pdfLoader) {
this.pdfLoader = pdfLoader;
}
/**
* TODO
*/
public void dechargerPdf() {
if (pdfLoader == null) {
return;