fix #52 Griser l'option nouvelle fenêtre au lieu de renvoyer une pop up

This commit is contained in:
LucasV-IUT
2022-03-01 23:51:46 +01:00
parent fd87be8ed8
commit 4ee1701b35
4 changed files with 40 additions and 11 deletions
+29 -1
View File
@@ -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<ModeSynchronise> modeSynchroniseList = new ArrayList<>();
/**
* TODO
*/
private static final ArrayList<NouvelleFenetre> 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);
}
}
}
+2
View File
@@ -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);
}
+3 -2
View File
@@ -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);
@@ -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();
});
}