mirror of
https://github.com/LucasVbr/LecteurPdfDoubleAffichage.git
synced 2026-07-09 12:47:45 +00:00
Correctif Boutons Synchronisé + Commentaires
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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));
|
||||||
|
|||||||
@@ -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));
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -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 -> {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user