mirror of
https://github.com/LucasVbr/LecteurPdfDoubleAffichage.git
synced 2026-05-16 17:11:50 +00:00
fix #52 Griser l'option nouvelle fenêtre au lieu de renvoyer une pop up
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user