mirror of
https://github.com/LucasVbr/LecteurPdfDoubleAffichage.git
synced 2026-07-09 12:47:45 +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;
|
import java.util.List;
|
||||||
|
|
||||||
public class GestionPdf {
|
public class GestionPdf {
|
||||||
private static final int maxPdf = 2;
|
public static boolean modeDoubleAffichage = false;
|
||||||
private static final List<IhmPdf> ihmPdfList = new ArrayList<IhmPdf>();
|
public static boolean modeSynchronise = false;
|
||||||
|
public static final int maxPdf = 2;
|
||||||
|
public static final List<IhmPdf> ihmPdfList = new ArrayList<>();
|
||||||
|
|
||||||
public static void newIhmPdf() {
|
public static void newIhmPdf() {
|
||||||
if (ihmPdfList.size() >= maxPdf) {
|
if (ihmPdfList.size() >= maxPdf) {
|
||||||
@@ -18,9 +20,22 @@ public class GestionPdf {
|
|||||||
ihmPdfList.add(ihm);
|
ihmPdfList.add(ihm);
|
||||||
} catch (IOException ignored) {}
|
} catch (IOException ignored) {}
|
||||||
|
|
||||||
|
modeDoubleAffichage = ihmPdfList.size() >= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
newIhmPdf();
|
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 {
|
public void ouvrirFichier() throws IOException {
|
||||||
File fichier = SelectionnerFichier.ouvrirFichier();
|
File fichier = SelectionnerFichier.ouvrirFichier();
|
||||||
pdfPanel = new PdfPanel(fichier);
|
pdfPanel = new PdfPanel(fichier);
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ public class MenuAffichage extends JMenu {
|
|||||||
// Ajoute les menu items
|
// Ajoute les menu items
|
||||||
add(new PleinEcran(parent));
|
add(new PleinEcran(parent));
|
||||||
addSeparator();
|
addSeparator();
|
||||||
|
add(new PagePrecedente(parent));
|
||||||
|
add(new PageSuivante(parent));
|
||||||
|
addSeparator();
|
||||||
add(new ZoomPlus(parent));
|
add(new ZoomPlus(parent));
|
||||||
add(new ZoomDefaut(parent));
|
add(new ZoomDefaut(parent));
|
||||||
add(new ZoomMoins(parent));
|
add(new ZoomMoins(parent));
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ public class MenuMode extends JMenu {
|
|||||||
super("Mode");
|
super("Mode");
|
||||||
// Ajoute les menu items
|
// Ajoute les menu items
|
||||||
add(new NouvelleFenetre(parent));
|
add(new NouvelleFenetre(parent));
|
||||||
|
add(new ModeSepare(parent));
|
||||||
add(new ModeSynchronise(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;
|
package lecteur_pdf.menuBar.menuItems;
|
||||||
|
|
||||||
|
import lecteur_pdf.GestionPdf;
|
||||||
import lecteur_pdf.IhmPdf;
|
import lecteur_pdf.IhmPdf;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.event.KeyEvent;
|
|
||||||
|
|
||||||
public class ModeSynchronise extends JMenuItem {
|
public class ModeSynchronise extends JMenuItem {
|
||||||
|
|
||||||
@@ -13,6 +13,10 @@ public class ModeSynchronise extends JMenuItem {
|
|||||||
super("Mode Synchronisé");
|
super("Mode Synchronisé");
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
|
|
||||||
|
addActionListener(e -> {
|
||||||
|
GestionPdf.modeSynchronise = true;
|
||||||
|
});
|
||||||
|
|
||||||
// TODO ajouter une checkbox pour indiquer si l'option est utilisé
|
// TODO ajouter une checkbox pour indiquer si l'option est utilisé
|
||||||
|
|
||||||
// TODO ajouter l'options de mode Synchronisé
|
// TODO ajouter l'options de mode Synchronisé
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package lecteur_pdf.menuBar.menuItems;
|
package lecteur_pdf.menuBar.menuItems;
|
||||||
|
|
||||||
|
import lecteur_pdf.GestionPdf;
|
||||||
import lecteur_pdf.IhmPdf;
|
import lecteur_pdf.IhmPdf;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.event.KeyEvent;
|
|
||||||
|
|
||||||
public class NouvelleFenetre extends JMenuItem {
|
public class NouvelleFenetre extends JMenuItem {
|
||||||
|
|
||||||
@@ -13,8 +13,13 @@ public class NouvelleFenetre extends JMenuItem {
|
|||||||
super("Nouvelle Fenêtre");
|
super("Nouvelle Fenêtre");
|
||||||
this.parent = parent;
|
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);
|
add(mainPanel);
|
||||||
|
|
||||||
/* Actions */
|
/* Actions */
|
||||||
suivantButton.addActionListener(e -> updatePage(currentPage + 1));
|
suivantButton.addActionListener(e -> nextPage());
|
||||||
precedentButton.addActionListener(e -> updatePage(currentPage - 1));
|
precedentButton.addActionListener(e -> previousPage());
|
||||||
indexPage.addActionListener(e -> updatePageInput());
|
indexPage.addActionListener(e -> updatePageInput());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateScale(float scale) {
|
public void updateScale(float scale) {
|
||||||
@@ -50,6 +51,14 @@ public class PdfPanel extends JPanel {
|
|||||||
updatePage(0);
|
updatePage(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void nextPage() {
|
||||||
|
updatePage(currentPage + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void previousPage() {
|
||||||
|
updatePage(currentPage - 1);
|
||||||
|
}
|
||||||
|
|
||||||
public void updatePage(int index) {
|
public void updatePage(int index) {
|
||||||
try {
|
try {
|
||||||
if (pdfLoader == null) throw new IllegalStateException();
|
if (pdfLoader == null) throw new IllegalStateException();
|
||||||
|
|||||||
Reference in New Issue
Block a user