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