diff --git a/.gitignore b/.gitignore index 266b8c0..48ede76 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,5 @@ # Meta données de IntelliJ Idea .idea/* -# Dossiers de classes -target/* - -# fichier compilés -.class/* \ No newline at end of file +# Dossiers des fichiers compilés +out/ \ No newline at end of file diff --git a/LecteurPdfDoubleAffichage.iml b/LecteurPdfDoubleAffichage.iml index 76b9d9c..37c5fcb 100644 --- a/LecteurPdfDoubleAffichage.iml +++ b/LecteurPdfDoubleAffichage.iml @@ -6,7 +6,7 @@ - + diff --git a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/affichage/Fenetre.class b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/affichage/Fenetre.class new file mode 100644 index 0000000..a8e8f98 Binary files /dev/null and b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/affichage/Fenetre.class differ diff --git a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/affichage/gestionFenetre.class b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/affichage/gestionFenetre.class new file mode 100644 index 0000000..3f55c17 Binary files /dev/null and b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/affichage/gestionFenetre.class differ diff --git a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/document/Page.class b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/document/Page.class index a7c4a6e..3a3f7be 100644 Binary files a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/document/Page.class and b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/document/Page.class differ diff --git a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/document/Pdf.class b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/document/Pdf.class index cc493c8..9d68731 100644 Binary files a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/document/Pdf.class and b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/document/Pdf.class differ diff --git a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/menu/Menu.class b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/menu/Menu.class index aed50ef..5024448 100644 Binary files a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/menu/Menu.class and b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/menu/Menu.class differ diff --git a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/menu/SelectionnerFichier.class b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/menu/SelectionnerFichier.class index 261af69..b696912 100644 Binary files a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/menu/SelectionnerFichier.class and b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/menu/SelectionnerFichier.class differ diff --git a/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/document/PageTest.class b/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/document/PageTest.class index 6a34482..607ca96 100644 Binary files a/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/document/PageTest.class and b/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/document/PageTest.class differ diff --git a/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/document/PdfTest.class b/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/document/PdfTest.class index 71e35b3..2b6cbd7 100644 Binary files a/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/document/PdfTest.class and b/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/document/PdfTest.class differ diff --git a/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/menu/MenuTest.class b/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/menu/MenuTest.class new file mode 100644 index 0000000..af644e6 Binary files /dev/null and b/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/menu/MenuTest.class differ diff --git a/src/lecteur_pdf/menu/Menu.java b/src/lecteur_pdf/menu/Menu.java index 7daed23..dc90e25 100644 --- a/src/lecteur_pdf/menu/Menu.java +++ b/src/lecteur_pdf/menu/Menu.java @@ -1,5 +1,5 @@ /* - * MenuOption.java, 20/11/2021 + * MenuOptions.java, 20/11/2021 * IUT Rodez 2021-2021, INFO2 * pas de copyright, aucun droits */ @@ -7,10 +7,11 @@ package lecteur_pdf.menu; import javax.swing.*; +import java.awt.event.ActionEvent; import java.util.ArrayList; /** - * TODO class comment + * Classe pour afficher le Menu "Fichier" avec ses options * * @author Léo FRANCH * @author Tristan NOGARET @@ -20,54 +21,85 @@ import java.util.ArrayList; */ public class Menu { - /** Menu "Fichier" */ - private JMenu Fichier; + /** Array list contenant les JMenu */ + private ArrayList menuList = new ArrayList(); - /** Element "Ouvrir" */ - private JMenuItem Ouvrir; + /** Array list contenant les JMenuItem */ + private ArrayList itemList = new ArrayList(); - /** Element "Fermer" */ - private JMenuItem Fermer; - - ArrayList menu = new ArrayList(); - ArrayList item = new ArrayList(); + /** Création de la barre de menu */ + JMenuBar menubar = new JMenuBar(); + /** + * Appelle la fonction createMenuFichier + */ public Menu() { - // Frame de test - JFrame frame = new JFrame("Menu ouverture"); - // Création de la barre de menu - JMenuBar menubar = new JMenuBar(); - // Création du menu "Fichier" - Fichier = new JMenu("Fichier"); - // Créer les éléments du menu et sous menu - Ouvrir = new JMenuItem("Ouvrir"); - Fermer = new JMenuItem("Fermer"); + createMenuFichier(); + } + + /** + * Fonction pour créer le Menu fichier et ses items + */ + private void createMenuFichier() { + + // Créer le Menu Fichier + JMenu Fichier = new JMenu("Fichier"); + + // Créer les items Ouvrir et Fermer + JMenuItem Ouvrir = new JMenuItem("Ouvrir"); + JMenuItem Fermer = new JMenuItem("Fermer"); + + // Ajoute des Listener aux JMenuItem + Ouvrir.addActionListener(this::actionPerformed); + Fermer.addActionListener(this::actionPerformed); + // Ajouter les éléments au menu "Fichier" Fichier.add(Ouvrir); Fichier.add(Fermer); - // Ajouter le menu au barre de menu + + // Ajouter le menu à la barre de menu menubar.add(Fichier); - // Ajouter la barre de menu au frame - frame.setJMenuBar(menubar); - frame.setSize(300,300); - frame.setLayout(null); - frame.setVisible(true); + + // Création du menu "Fichier" + menuList.add(Fichier); + + // Créer les éléments du menu et sous menu + itemList.add(Ouvrir); + itemList.add(Fermer); } - public void getMenuBar () { - // TODO Compléter la class + /** + * Méthode qui gère les actions des JMenuItem + * @param ae un action event + */ + public void actionPerformed(ActionEvent ae) { + String choice = ae.getActionCommand(); + if (choice.equals("Ouvrir")) { + SelectionnerFichier.ouvrirFichier(); + }else if (choice.equals("Quitter")) { + System.exit(0); // TODO à changer pour que ça quitte vraiment + } + } - public void getMenuItems () { - // TODO Compléter la class + /** + * @return le menubar + */ + public JMenuBar getMenuBar() { + return menubar; } - public void getMenuItem (int index) { - // TODO Compléter la class + /** + * @return l'ArrayList des JMenuItem + */ + public ArrayList getMenuItems() { + return itemList; } - public static void main(String args[]) - { - new Menu(); + /** + * @return l'item de l'ArrayList des JMenuBar à l'index indiqué + */ + public JMenuItem getMenuItem(int index) { + return itemList.get(index); } } \ No newline at end of file diff --git a/src/lecteur_pdf/menu/MenuOption.java b/src/lecteur_pdf/menu/MenuOptions.java similarity index 93% rename from src/lecteur_pdf/menu/MenuOption.java rename to src/lecteur_pdf/menu/MenuOptions.java index 13b974a..51b5733 100644 --- a/src/lecteur_pdf/menu/MenuOption.java +++ b/src/lecteur_pdf/menu/MenuOptions.java @@ -1,5 +1,5 @@ /* - * MenuOption.java, 18/11/2021 + * MenuOptions.java, 18/11/2021 * IUT Rodez 2021-2021, INFO2 * pas de copyright, aucun droits */ @@ -18,7 +18,7 @@ import java.util.ArrayList; * @author Noé VILLENEUVE * @version 1.0 */ -public class MenuOption { +public class MenuOptions { /* Déclaration des éléments visuels */ JFrame menuOptions = new JFrame(); diff --git a/src/lecteur_pdf/menu/SelectionnerFichier.java b/src/lecteur_pdf/menu/SelectionnerFichier.java index ee8f3e4..7e632f4 100644 --- a/src/lecteur_pdf/menu/SelectionnerFichier.java +++ b/src/lecteur_pdf/menu/SelectionnerFichier.java @@ -3,15 +3,15 @@ * IUT Rodez 2021-2021, INFO2 * pas de copyright, aucun droits */ - package lecteur_pdf.menu; import javax.swing.*; +import javax.swing.filechooser.FileNameExtensionFilter; +import javax.swing.filechooser.FileSystemView; import java.io.File; - /** - * TODO class comment - * + * Classe qui permet d'ouvrir une fenêtre pour sélectionner le fichier pdf à + * ouvrir * @author Léo FRANCH * @author Tristan NOGARET * @author Lucàs VABRE @@ -20,15 +20,30 @@ import java.io.File; */ public class SelectionnerFichier { - final String TYPE_FILE = ""; - - JFileChooser fileChooser = new JFileChooser(); - /** - * TODO commenter la méthode + * Méthode qui créée une fenêtre pour que l'utilisateur choisisse un + * fichier PDF + * @return file le fichier choisi par l'utilisateur */ - public File selectionnerFichier() { - // TODO - return null; // bouchon + public static File ouvrirFichier() { + + JFileChooser fileChooser = new JFileChooser + (FileSystemView.getFileSystemView().getHomeDirectory()); + fileChooser.setDialogTitle("Sélectionnez un PDF"); + fileChooser.setMultiSelectionEnabled(false); + fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); + fileChooser.setAcceptAllFileFilterUsed(false); + FileNameExtensionFilter + filter = new FileNameExtensionFilter("PDF files (*.pdf)", "pdf"); + fileChooser.addChoosableFileFilter(filter); + + File file; + int returnValue = fileChooser.showOpenDialog(null); + if (returnValue == JFileChooser.APPROVE_OPTION) { + file = new File(fileChooser.getSelectedFile().getPath()); + } else { + file = null; + } + return file; } } diff --git a/tests/lecteur_pdf/menu/MenuTest.java b/tests/lecteur_pdf/menu/MenuTest.java new file mode 100644 index 0000000..c79b605 --- /dev/null +++ b/tests/lecteur_pdf/menu/MenuTest.java @@ -0,0 +1,68 @@ +/* + * MenuTest.java, 25/11/2021 + * IUT Rodez 2021-2022, INFO 2 + * pas de copyright, aucun droits + */ + +package lecteur_pdf.menu; + +import lecteur_pdf.document.Page; +import org.junit.jupiter.api.Test; + +import javax.swing.*; + +import java.sql.SQLOutput; +import java.util.ArrayList; + +import static org.junit.jupiter.api.Assertions.*; + +/** + * Tests de la classe {@link Page} + * + * @author Léo FRANCH + * @author Tristan NOGARET + * @author Lucàs VABRE + * @author Noé VILLENEUVE + */ +class MenuTest { + + @Test + void getMenuItems() { + + final String[] itemAttendu = {"Ouvrir", "Fermer"}; + + Menu menuTest = new Menu(); + ArrayList menuItemTest = menuTest.getMenuItems(); + + for (int i = 0; i < menuItemTest.size(); i++) { + assertEquals(itemAttendu[i], menuItemTest.get(i).getText()); + } + } + + @Test + void getMenuItem() { + + final String[] itemAttendu = {"Ouvrir", "Fermer"}; + + Menu menuTest = new Menu(); + + for (int i = 0; i < itemAttendu.length; i++) { + assertEquals(menuTest.getMenuItem(i).getText(), itemAttendu[i]); + } + } + + @Test + void testMenu() { + // Frame de test + JFrame frame = new JFrame("Menu ouverture"); + + // Créer le Menu + Menu menu = new Menu(); + + // Ajouter la barre de menu au frame + frame.setJMenuBar(menu.getMenuBar()); + frame.setSize(300,300); + frame.setLayout(null); + frame.setVisible(true); + } +} \ No newline at end of file diff --git a/tests/lecteur_pdf/menu/SelectionnerFichierTest.java b/tests/lecteur_pdf/menu/SelectionnerFichierTest.java new file mode 100644 index 0000000..ed930ca --- /dev/null +++ b/tests/lecteur_pdf/menu/SelectionnerFichierTest.java @@ -0,0 +1,23 @@ +package lecteur_pdf.menu; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +import java.io.File; + +import lecteur_pdf.menu.Menu; + +import javax.swing.*; + +class SelectionnerFichierTest { + + @Test + void ouvrirFichier() { + JFrame frame = new JFrame("Menu ouverture"); + Menu menu = new Menu(); + frame.setJMenuBar(menu.getMenuBar()); + frame.setSize(300,300); + frame.setLayout(null); + frame.setVisible(true); + } +} \ No newline at end of file