From 4ee1701b35decf5d83722ade99296f37af0c3aed Mon Sep 17 00:00:00 2001 From: LucasV-IUT Date: Tue, 1 Mar 2022 23:51:46 +0100 Subject: [PATCH] =?UTF-8?q?fix=20#52=20Griser=20l'option=20nouvelle=20fen?= =?UTF-8?q?=C3=AAtre=20au=20lieu=20de=20renvoyer=20une=20pop=20up?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lecteur_pdf/GestionMode.java | 30 ++++++++++++++++++- src/lecteur_pdf/IhmPdf.java | 2 ++ src/lecteur_pdf/menuBar/menu/MenuMode.java | 5 ++-- .../menuBar/menuItems/NouvelleFenetre.java | 14 ++++----- 4 files changed, 40 insertions(+), 11 deletions(-) diff --git a/src/lecteur_pdf/GestionMode.java b/src/lecteur_pdf/GestionMode.java index 2ee361d..1e3deb8 100644 --- a/src/lecteur_pdf/GestionMode.java +++ b/src/lecteur_pdf/GestionMode.java @@ -8,7 +8,9 @@ package lecteur_pdf; import lecteur_pdf.menuBar.menuItems.ModeSepare; import lecteur_pdf.menuBar.menuItems.ModeSynchronise; +import lecteur_pdf.menuBar.menuItems.NouvelleFenetre; +import java.awt.*; import java.util.ArrayList; /** @@ -38,12 +40,18 @@ public class GestionMode { */ private static final ArrayList modeSynchroniseList = new ArrayList<>(); + /** + * TODO + */ + private static final ArrayList nouvelleFenetreList = new ArrayList<>(); + /** * TODO * @param separe * @param synchronise */ - public static void addItem(ModeSepare separe, ModeSynchronise synchronise) { + public static void addItem(NouvelleFenetre fenetre, ModeSepare separe, ModeSynchronise synchronise) { + nouvelleFenetreList.add(fenetre); modeSepareList.add(separe); modeSynchroniseList.add(synchronise); updateMode(); @@ -82,4 +90,24 @@ public class GestionMode { modeSynchroniseList.get(i).setSelected(!modeSepare); } } + + /** + * TODO + */ + public static void desactiverFenetre() { + for (NouvelleFenetre item : nouvelleFenetreList) { + item.setEnabled(false); + item.setBackground(Color.GRAY); + } + } + + /** + * TODO + */ + public static void activerFenetre() { + for (NouvelleFenetre item : nouvelleFenetreList) { + item.setEnabled(true); + item.setBackground(Color.BLACK); + } + } } diff --git a/src/lecteur_pdf/IhmPdf.java b/src/lecteur_pdf/IhmPdf.java index f68949f..8077de4 100644 --- a/src/lecteur_pdf/IhmPdf.java +++ b/src/lecteur_pdf/IhmPdf.java @@ -93,8 +93,10 @@ public class IhmPdf extends JFrame { */ public void quitter() { pdfPanel.dechargerPdf(); + if (GestionPdf.ihmPdfList.size() == GestionPdf.maxPdf) GestionMode.activerFenetre(); GestionPdf.ihmPdfList.remove(this); dispose(); + if (GestionPdf.ihmPdfList.size() == 0) { System.exit(0); } diff --git a/src/lecteur_pdf/menuBar/menu/MenuMode.java b/src/lecteur_pdf/menuBar/menu/MenuMode.java index 6d3b0ae..523f341 100644 --- a/src/lecteur_pdf/menuBar/menu/MenuMode.java +++ b/src/lecteur_pdf/menuBar/menu/MenuMode.java @@ -35,12 +35,13 @@ public class MenuMode extends JMenu { /* Crée les différentes options */ ModeSepare modeSepare = new ModeSepare(parent); ModeSynchronise modeSynchronise = new ModeSynchronise(parent); + NouvelleFenetre nouvelleFenetre = new NouvelleFenetre(parent); /* Les ajoute au gestionnaire des mode */ - GestionMode.addItem(modeSepare, modeSynchronise); + GestionMode.addItem(nouvelleFenetre, modeSepare, modeSynchronise); /* Ajoute les menu items */ - add(new NouvelleFenetre(parent)); + add(nouvelleFenetre); addSeparator(); add(modeSepare); add(modeSynchronise); diff --git a/src/lecteur_pdf/menuBar/menuItems/NouvelleFenetre.java b/src/lecteur_pdf/menuBar/menuItems/NouvelleFenetre.java index be8c6d8..6d0f365 100644 --- a/src/lecteur_pdf/menuBar/menuItems/NouvelleFenetre.java +++ b/src/lecteur_pdf/menuBar/menuItems/NouvelleFenetre.java @@ -6,10 +6,11 @@ package lecteur_pdf.menuBar.menuItems; +import lecteur_pdf.GestionMode; import lecteur_pdf.GestionPdf; import lecteur_pdf.IhmPdf; -import javax.swing.*; +import java.awt.*; /** * TODO commentaires @@ -29,14 +30,11 @@ public class NouvelleFenetre extends MenuItem { super(parent, "Nouvelle Fenêtre"); addActionListener(e -> { + /* Essaye de créer une nouvelle fenêtre */ + GestionPdf.newIhmPdf(); - /* Essaye de créer une nouvelle fenêtre */ - - GestionPdf.newIhmPdf(); - - /* Désactive le bouton si on a atteint la limite des affichages */ - - this.setEnabled(GestionPdf.ihmPdfList.size() == GestionPdf.maxPdf); + /* Désactive le bouton si on a atteint la limite des affichages */ + if (GestionPdf.ihmPdfList.size() == GestionPdf.maxPdf) GestionMode.desactiverFenetre(); }); }