Correctif Boutons Synchronisé + Commentaires

This commit is contained in:
LucasV-IUT
2022-02-26 01:00:06 +01:00
parent ce13319e08
commit aa7d72361e
12 changed files with 151 additions and 67 deletions
+31 -13
View File
@@ -3,27 +3,45 @@ package lecteur_pdf;
import lecteur_pdf.menuBar.menuItems.ModeSepare; import lecteur_pdf.menuBar.menuItems.ModeSepare;
import lecteur_pdf.menuBar.menuItems.ModeSynchronise; import lecteur_pdf.menuBar.menuItems.ModeSynchronise;
import java.util.ArrayList;
public class GestionMode { public class GestionMode {
private ModeSepare modeSepare; /**
private ModeSynchronise modeSynchronise; * Défini le mode actif :
* true -> Mode Séparé
* false -> Mode Synchronisé
*/
private static boolean modeSepare;
public GestionMode(ModeSepare separe, ModeSynchronise synchronise) { private static final ArrayList<ModeSepare> modeSepareList = new ArrayList<>();
modeSepare = separe; private static final ArrayList<ModeSynchronise> modeSynchroniseList = new ArrayList<>();
modeSynchronise = synchronise;
/* Mode par défaut */ public static void addItem(ModeSepare separe, ModeSynchronise synchronise) {
setModeSepare(); modeSepareList.add(separe);
modeSynchroniseList.add(synchronise);
updateMode();
} }
public void setModeSepare() { public static boolean isModeSepare() {
modeSepare.setSelected(true); return modeSepare;
modeSynchronise.setSelected(false);
} }
public void setModeSynchronise() { public static void setModeSepare() {
modeSepare.setSelected(false); modeSepare = true;
modeSynchronise.setSelected(true); updateMode();
}
public static void setModeSynchronise() {
modeSepare = false;
updateMode();
}
private static void updateMode() {
for (int i = 0; i < modeSepareList.size() ; i++) {
modeSepareList.get(i).setSelected(modeSepare);
modeSynchroniseList.get(i).setSelected(!modeSepare);
}
} }
+1 -14
View File
@@ -8,21 +8,9 @@ import java.util.List;
public class GestionPdf { public class GestionPdf {
public static String titreApplication = "LPDA"; public static String titreApplication = "LPDA";
public static boolean modeDoubleAffichage = false;
public static boolean modeSynchronise = false;
public static final int maxPdf = 2; public static final int maxPdf = 2;
public static final List<IhmPdf> ihmPdfList = new ArrayList<>(); public static final List<IhmPdf> ihmPdfList = new ArrayList<>();
public static void setModeSynchronise(boolean modeSynchronise) {
for(IhmPdf fenetre : ihmPdfList) {
if (modeSynchronise) {
fenetre.getGestionMode().setModeSynchronise();
} else {
fenetre.getGestionMode().setModeSepare();
}
}
}
/** /**
* Crée une nouvelle fenêtre * Crée une nouvelle fenêtre
*/ */
@@ -36,8 +24,6 @@ public class GestionPdf {
IhmPdf ihm = new IhmPdf(); IhmPdf ihm = new IhmPdf();
ihmPdfList.add(ihm); ihmPdfList.add(ihm);
} catch (IOException ignored) {} } catch (IOException ignored) {}
modeDoubleAffichage = ihmPdfList.size() >= 2;
} }
/** /**
@@ -78,6 +64,7 @@ public class GestionPdf {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception ignored) {} } catch (Exception ignored) {}
GestionMode.setModeSepare();
newIhmPdf(); newIhmPdf();
} }
} }
-13
View File
@@ -7,8 +7,6 @@
package lecteur_pdf; package lecteur_pdf;
import lecteur_pdf.menuBar.MenuBar; import lecteur_pdf.menuBar.MenuBar;
import lecteur_pdf.menuBar.menuItems.ModeSepare;
import lecteur_pdf.menuBar.menuItems.ModeSynchronise;
import lecteur_pdf.pdf.PdfPanel; import lecteur_pdf.pdf.PdfPanel;
import javax.swing.*; import javax.swing.*;
@@ -32,9 +30,6 @@ public class IhmPdf extends JFrame {
private boolean fullscreen = false; private boolean fullscreen = false;
private GraphicsDevice device; private GraphicsDevice device;
/* Gestionnaire des modes de visionnage */
private GestionMode gestionMode;
public IhmPdf() throws IOException { public IhmPdf() throws IOException {
super(GestionPdf.titreApplication); super(GestionPdf.titreApplication);
@@ -64,14 +59,6 @@ public class IhmPdf extends JFrame {
return pdfPanel; return pdfPanel;
} }
public void initGestionMode(ModeSepare modeSepare, ModeSynchronise modeSynchronise) {
this.gestionMode = new GestionMode(modeSepare, modeSynchronise);
}
public GestionMode getGestionMode() {
return gestionMode;
}
public void pleinEcran() { public void pleinEcran() {
// Switch de disposition // Switch de disposition
fullscreen = !fullscreen; fullscreen = !fullscreen;
+15 -2
View File
@@ -1,11 +1,24 @@
/*
* RaccourcisClavier.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf; package lecteur_pdf;
import javax.swing.*; import javax.swing.*;
import java.io.Serializable;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class RaccourcisClavier implements Serializable { /**
* Gestionnaire des raccourcis claviers de l'application
*
* @author Léo Franche
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class RaccourcisClavier {
public static Map<JMenuItem, KeyStroke> gestionnaireRaccourcis = new HashMap<>(); public static Map<JMenuItem, KeyStroke> gestionnaireRaccourcis = new HashMap<>();
@@ -1,3 +1,9 @@
/*
* MenuAffichage.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menu; package lecteur_pdf.menuBar.menu;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
@@ -5,16 +11,36 @@ import lecteur_pdf.menuBar.menuItems.*;
import javax.swing.*; import javax.swing.*;
/**
* Element de la barre des menus contenant l'intégralités des actions lié à l'affichage de l'application
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class MenuAffichage extends JMenu { public class MenuAffichage extends JMenu {
/**
* Crée une nouvelle instance du menu d'affichage
*
* @param parent Référence de la fenêtre qui possède l'instance de ce menu
*/
public MenuAffichage(IhmPdf parent) { public MenuAffichage(IhmPdf parent) {
super("Affichage"); super("Affichage");
// Ajoute les menu items
/* - Ajoute les différentes options - */
/* Mode plein écran */
add(new PleinEcran(parent)); add(new PleinEcran(parent));
addSeparator(); addSeparator();
/* Navigation dans les différentes pages des documents */
add(new PagePrecedente(parent)); add(new PagePrecedente(parent));
add(new PageSuivante(parent)); add(new PageSuivante(parent));
addSeparator(); addSeparator();
/* Section des Zoom */
add(new ZoomPlus(parent)); add(new ZoomPlus(parent));
add(new ZoomDefaut(parent)); add(new ZoomDefaut(parent));
add(new ZoomMoins(parent)); add(new ZoomMoins(parent));
+23 -1
View File
@@ -1,3 +1,9 @@
/*
* MenuFichier.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menu; package lecteur_pdf.menuBar.menu;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
@@ -5,10 +11,26 @@ import lecteur_pdf.menuBar.menuItems.*;
import javax.swing.*; import javax.swing.*;
/**
* Element de la barre des menus contenant l'intégralités des actions lié à la gestion des fichers de l'application
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class MenuFichier extends JMenu { public class MenuFichier extends JMenu {
/**
* Crée une nouvelle instance du menu fichier
*
* @param parent Référence de la fenêtre qui possède l'instance de ce menu
*/
public MenuFichier(IhmPdf parent) { public MenuFichier(IhmPdf parent) {
super("Fichier"); super("Fichier");
// Ajoute les menu items
/* - Ajoute les différentes options - */
add(new OuvrirFichier(parent)); add(new OuvrirFichier(parent));
add(new FermerFichier(parent)); add(new FermerFichier(parent));
add(new Quitter(parent)); add(new Quitter(parent));
+24 -11
View File
@@ -1,6 +1,12 @@
/*
* MenuMode.java, 26/02/2022
* IUT Rodez 2021-2022, INFO 2
* pas de copyright, aucun droits
*/
package lecteur_pdf.menuBar.menu; package lecteur_pdf.menuBar.menu;
import lecteur_pdf.GestionPdf; import lecteur_pdf.GestionMode;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import lecteur_pdf.menuBar.menuItems.ModeSepare; import lecteur_pdf.menuBar.menuItems.ModeSepare;
import lecteur_pdf.menuBar.menuItems.ModeSynchronise; import lecteur_pdf.menuBar.menuItems.ModeSynchronise;
@@ -8,23 +14,30 @@ import lecteur_pdf.menuBar.menuItems.NouvelleFenetre;
import javax.swing.*; import javax.swing.*;
/**
* Element de la barre des menus contenant l'intégralités des actions lié au mode multi-affichage
*
* @author Léo Franch
* @author Lucas Vabre
* @author Noé Villeneuve
* @author Tristan Nogaret
*/
public class MenuMode extends JMenu { public class MenuMode extends JMenu {
/**
* Crée une nouvelle instance du menu Mode
*
* @param parent Référence de la fenêtre qui possède l'instance de ce menu
*/
public MenuMode(IhmPdf parent) { public MenuMode(IhmPdf parent) {
super("Mode"); super("Mode");
/* Crée les différentes options */
ModeSepare modeSepare = new ModeSepare(parent); ModeSepare modeSepare = new ModeSepare(parent);
ModeSynchronise modeSynchronise = new ModeSynchronise(parent); ModeSynchronise modeSynchronise = new ModeSynchronise(parent);
/* Crée un groupe de Radio */ /* Les ajoute au gestionnaire des mode */
ButtonGroup groupe = new ButtonGroup(); GestionMode.addItem(modeSepare, modeSynchronise);
groupe.add(modeSepare);
groupe.add(modeSynchronise);
/* Initialise les boutons selectionnés */
modeSepare.setSelected(!GestionPdf.modeSynchronise);
modeSynchronise.setSelected(GestionPdf.modeSynchronise);
parent.initGestionMode(modeSepare, modeSynchronise);
/* Ajoute les menu items */ /* Ajoute les menu items */
add(new NouvelleFenetre(parent)); add(new NouvelleFenetre(parent));
@@ -1,6 +1,6 @@
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.GestionPdf; import lecteur_pdf.GestionMode;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import javax.swing.*; import javax.swing.*;
@@ -14,7 +14,7 @@ public class ModeSepare extends JRadioButtonMenuItem {
this.parent = parent; this.parent = parent;
addActionListener(e -> { addActionListener(e -> {
GestionPdf.setModeSynchronise(false); GestionMode.setModeSepare();
}); });
// TODO ajouter une checkbox pour indiquer si l'option est utilisé // TODO ajouter une checkbox pour indiquer si l'option est utilisé
@@ -1,6 +1,6 @@
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.GestionPdf; import lecteur_pdf.GestionMode;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import javax.swing.*; import javax.swing.*;
@@ -14,7 +14,7 @@ public class ModeSynchronise extends JRadioButtonMenuItem {
this.parent = parent; this.parent = parent;
addActionListener(e -> { addActionListener(e -> {
GestionPdf.setModeSynchronise(true); GestionMode.setModeSynchronise();
}); });
// TODO ajouter une checkbox pour indiquer si l'option est utilisé // TODO ajouter une checkbox pour indiquer si l'option est utilisé
@@ -1,5 +1,6 @@
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.GestionMode;
import lecteur_pdf.GestionPdf; import lecteur_pdf.GestionPdf;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
@@ -9,10 +10,10 @@ public class PagePrecedente extends MenuItem {
super(parent,"Page précédente"); super(parent,"Page précédente");
addActionListener(e -> { addActionListener(e -> {
if (GestionPdf.modeDoubleAffichage && GestionPdf.modeSynchronise) { if (GestionMode.isModeSepare()) {
GestionPdf.previousPages();
} else {
parent.getPdfPanel().previousPage(); parent.getPdfPanel().previousPage();
} else {
GestionPdf.previousPages();
} }
}); });
@@ -1,5 +1,6 @@
package lecteur_pdf.menuBar.menuItems; package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.GestionMode;
import lecteur_pdf.GestionPdf; import lecteur_pdf.GestionPdf;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
@@ -9,10 +10,10 @@ public class PageSuivante extends MenuItem {
super(parent,"Page suivante"); super(parent,"Page suivante");
addActionListener(e -> { addActionListener(e -> {
if (GestionPdf.modeDoubleAffichage && GestionPdf.modeSynchronise) { if (GestionMode.isModeSepare()) {
GestionPdf.nextPages();
} else {
parent.getPdfPanel().nextPage(); parent.getPdfPanel().nextPage();
} else {
GestionPdf.nextPages();
} }
}); });
+18 -2
View File
@@ -1,5 +1,8 @@
package lecteur_pdf.pdf; package lecteur_pdf.pdf;
import lecteur_pdf.GestionMode;
import lecteur_pdf.GestionPdf;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.io.File; import java.io.File;
@@ -32,8 +35,21 @@ public class PdfPanel extends JPanel {
add(mainPanel); add(mainPanel);
/* Actions */ /* Actions */
suivantButton.addActionListener(e -> nextPage()); suivantButton.addActionListener(e -> {
precedentButton.addActionListener(e -> previousPage()); if (GestionMode.isModeSepare()) {
nextPage();
} else {
GestionPdf.nextPages();
}
});
precedentButton.addActionListener(e -> {
if (GestionMode.isModeSepare()) {
previousPage();
} else {
GestionPdf.previousPages();
}
});
indexPage.addActionListener(e -> { indexPage.addActionListener(e -> {