mirror of
https://github.com/LucasVbr/LecteurPdfDoubleAffichage.git
synced 2026-05-13 17:11:51 +00:00
Mode Synchro, Mode Séparé
-Défilement des documents en mode séparé et synchonisé avec les touches "l" et "m".
-Désactivation du bouton "nouvelle fenêtre" quand on a atteint le nombre max de fenêtre ouvertes. (besoin de le griser car actuellement il se désactive mais aucun changement visible)
- Besoin de rajouter des ✅ pour montrer quel mode est sélectionné.
This commit is contained in:
@@ -5,8 +5,10 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class GestionPdf {
|
||||
private static final int maxPdf = 2;
|
||||
private static final List<IhmPdf> ihmPdfList = new ArrayList<IhmPdf>();
|
||||
public static boolean modeDoubleAffichage = false;
|
||||
public static boolean modeSynchronise = false;
|
||||
public static final int maxPdf = 2;
|
||||
public static final List<IhmPdf> ihmPdfList = new ArrayList<>();
|
||||
|
||||
public static void newIhmPdf() {
|
||||
if (ihmPdfList.size() >= maxPdf) {
|
||||
@@ -18,9 +20,22 @@ public class GestionPdf {
|
||||
ihmPdfList.add(ihm);
|
||||
} catch (IOException ignored) {}
|
||||
|
||||
modeDoubleAffichage = ihmPdfList.size() >= 2;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
newIhmPdf();
|
||||
}
|
||||
|
||||
public static void nextPages() {
|
||||
for (IhmPdf ihm : ihmPdfList) {
|
||||
ihm.pdfPanel.nextPage();
|
||||
}
|
||||
}
|
||||
|
||||
public static void previousPages() {
|
||||
for (IhmPdf ihm : ihmPdfList) {
|
||||
ihm.pdfPanel.previousPage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,6 +49,10 @@ public class IhmPdf extends JFrame {
|
||||
}
|
||||
}
|
||||
|
||||
public PdfPanel getPdfPanel() {
|
||||
return pdfPanel;
|
||||
}
|
||||
|
||||
public void ouvrirFichier() throws IOException {
|
||||
File fichier = SelectionnerFichier.ouvrirFichier();
|
||||
pdfPanel = new PdfPanel(fichier);
|
||||
|
||||
@@ -12,6 +12,9 @@ public class MenuAffichage extends JMenu {
|
||||
// Ajoute les menu items
|
||||
add(new PleinEcran(parent));
|
||||
addSeparator();
|
||||
add(new PagePrecedente(parent));
|
||||
add(new PageSuivante(parent));
|
||||
addSeparator();
|
||||
add(new ZoomPlus(parent));
|
||||
add(new ZoomDefaut(parent));
|
||||
add(new ZoomMoins(parent));
|
||||
|
||||
@@ -10,6 +10,7 @@ public class MenuMode extends JMenu {
|
||||
super("Mode");
|
||||
// Ajoute les menu items
|
||||
add(new NouvelleFenetre(parent));
|
||||
add(new ModeSepare(parent));
|
||||
add(new ModeSynchronise(parent));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package lecteur_pdf.menuBar.menuItems;
|
||||
|
||||
import lecteur_pdf.GestionPdf;
|
||||
import lecteur_pdf.IhmPdf;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
public class ModeSepare extends JMenuItem {
|
||||
IhmPdf parent;
|
||||
|
||||
public ModeSepare(IhmPdf parent) {
|
||||
super("Mode Séparé");
|
||||
this.parent = parent;
|
||||
|
||||
addActionListener(e -> {
|
||||
GestionPdf.modeSynchronise = false;
|
||||
});
|
||||
|
||||
// TODO ajouter une checkbox pour indiquer si l'option est utilisé
|
||||
|
||||
// TODO ajouter l'options de mode Synchronisé
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package lecteur_pdf.menuBar.menuItems;
|
||||
|
||||
import lecteur_pdf.GestionPdf;
|
||||
import lecteur_pdf.IhmPdf;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.KeyEvent;
|
||||
|
||||
public class ModeSynchronise extends JMenuItem {
|
||||
|
||||
@@ -13,6 +13,10 @@ public class ModeSynchronise extends JMenuItem {
|
||||
super("Mode Synchronisé");
|
||||
this.parent = parent;
|
||||
|
||||
addActionListener(e -> {
|
||||
GestionPdf.modeSynchronise = true;
|
||||
});
|
||||
|
||||
// TODO ajouter une checkbox pour indiquer si l'option est utilisé
|
||||
|
||||
// TODO ajouter l'options de mode Synchronisé
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package lecteur_pdf.menuBar.menuItems;
|
||||
|
||||
import lecteur_pdf.GestionPdf;
|
||||
import lecteur_pdf.IhmPdf;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.KeyEvent;
|
||||
|
||||
public class NouvelleFenetre extends JMenuItem {
|
||||
|
||||
@@ -13,8 +13,13 @@ public class NouvelleFenetre extends JMenuItem {
|
||||
super("Nouvelle Fenêtre");
|
||||
this.parent = parent;
|
||||
|
||||
// TODO griser l'options lorsque inutilisable
|
||||
addActionListener(e -> {
|
||||
/* 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);
|
||||
});
|
||||
|
||||
// TODO ajouter l'options nouvelle fenêtre
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package lecteur_pdf.menuBar.menuItems;
|
||||
|
||||
import lecteur_pdf.GestionPdf;
|
||||
import lecteur_pdf.IhmPdf;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
public class PagePrecedente extends JMenuItem {
|
||||
|
||||
IhmPdf parent;
|
||||
|
||||
public PagePrecedente(IhmPdf parent) {
|
||||
super("Page précédente");
|
||||
this.parent = parent;
|
||||
|
||||
addActionListener(e -> {
|
||||
if (GestionPdf.modeDoubleAffichage && GestionPdf.modeSynchronise) {
|
||||
GestionPdf.previousPages();
|
||||
} else {
|
||||
parent.getPdfPanel().previousPage();
|
||||
}
|
||||
});
|
||||
|
||||
KeyStroke raccourciPagePrecedente = KeyStroke.getKeyStroke('l');
|
||||
setAccelerator(raccourciPagePrecedente);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package lecteur_pdf.menuBar.menuItems;
|
||||
|
||||
import lecteur_pdf.GestionPdf;
|
||||
import lecteur_pdf.IhmPdf;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
public class PageSuivante extends JMenuItem {
|
||||
|
||||
IhmPdf parent;
|
||||
|
||||
public PageSuivante(IhmPdf parent) {
|
||||
super("Page suivante");
|
||||
this.parent = parent;
|
||||
|
||||
addActionListener(e -> {
|
||||
if (GestionPdf.modeDoubleAffichage && GestionPdf.modeSynchronise) {
|
||||
GestionPdf.nextPages();
|
||||
} else {
|
||||
parent.getPdfPanel().nextPage();
|
||||
}
|
||||
});
|
||||
|
||||
KeyStroke raccourciPageSuivante = KeyStroke.getKeyStroke('m');
|
||||
setAccelerator(raccourciPageSuivante);
|
||||
}
|
||||
}
|
||||
@@ -35,10 +35,11 @@ public class PdfPanel extends JPanel {
|
||||
add(mainPanel);
|
||||
|
||||
/* Actions */
|
||||
suivantButton.addActionListener(e -> updatePage(currentPage + 1));
|
||||
precedentButton.addActionListener(e -> updatePage(currentPage - 1));
|
||||
suivantButton.addActionListener(e -> nextPage());
|
||||
precedentButton.addActionListener(e -> previousPage());
|
||||
indexPage.addActionListener(e -> updatePageInput());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void updateScale(float scale) {
|
||||
@@ -50,6 +51,14 @@ public class PdfPanel extends JPanel {
|
||||
updatePage(0);
|
||||
}
|
||||
|
||||
public void nextPage() {
|
||||
updatePage(currentPage + 1);
|
||||
}
|
||||
|
||||
public void previousPage() {
|
||||
updatePage(currentPage - 1);
|
||||
}
|
||||
|
||||
public void updatePage(int index) {
|
||||
try {
|
||||
if (pdfLoader == null) throw new IllegalStateException();
|
||||
|
||||
Reference in New Issue
Block a user