Edit interface Raccourcis claviers + refactor de code

This commit is contained in:
LucasV-IUT
2022-03-06 17:41:26 +01:00
parent 07bf18ff33
commit 6e0da3e290
26 changed files with 330 additions and 241 deletions
+2 -2
View File
@@ -85,7 +85,7 @@ public class GestionPdf {
GestionMode.setModeSepare(); GestionMode.setModeSepare();
newIhmPdf(); newIhmPdf();
System.out.println(RaccourcisClavier.raccourcis); // System.out.println(RaccourcisClavier.raccourcis);
System.out.println(RaccourcisClavier.gestionnaireRaccourcis); // System.out.println(RaccourcisClavier.gestionnaireRaccourcis);
} }
} }
-5
View File
@@ -24,11 +24,6 @@ import javax.swing.*;
*/ */
public class MenuBar extends JMenuBar { public class MenuBar extends JMenuBar {
/**
* TODO
*
* @param parent
*/
public MenuBar(IhmPdf parent) { public MenuBar(IhmPdf parent) {
add(new MenuFichier(parent)); add(new MenuFichier(parent));
add(new MenuAffichage(parent)); add(new MenuAffichage(parent));
@@ -46,8 +46,6 @@ public class MenuAffichage extends JMenu {
add(new ZoomPlus(parent)); add(new ZoomPlus(parent));
addSeparator(); addSeparator();
add(new PageEntiere(parent)); add(new PageEntiere(parent));
add(new PleineLargeur(parent)); add(new PleineLargeur(parent));
} }
@@ -34,7 +34,5 @@ public class MenuFichier extends JMenu {
add(new OuvrirFichier(parent)); add(new OuvrirFichier(parent));
add(new FermerFichier(parent)); add(new FermerFichier(parent));
add(new Quitter(parent)); add(new Quitter(parent));
} }
} }
@@ -45,6 +45,5 @@ public class MenuMode extends JMenu {
addSeparator(); addSeparator();
add(modeSepare); add(modeSepare);
add(modeSynchronise); add(modeSynchronise);
} }
} }
@@ -11,6 +11,7 @@ import lecteur_pdf.IhmPdf;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
/** /**
@@ -31,8 +32,12 @@ public class FermerFichier extends MenuItem {
public FermerFichier(IhmPdf parent) { public FermerFichier(IhmPdf parent) {
super(parent, "Fermer"); super(parent, "Fermer");
/* Action du bouton */ /* TODO Définition du raccourcis clavier a modifier */
addActionListener(e -> { // setRaccourcis(KeyEvent.VK_X, KeyEvent.CTRL_DOWN_MASK);
}
@Override
protected void action(ActionEvent evt) {
JDialog jd = new JDialog(); JDialog jd = new JDialog();
jd.setLayout(new FlowLayout()); jd.setLayout(new FlowLayout());
jd.setBounds(500,300,400,100); jd.setBounds(500,300,400,100);
@@ -50,10 +55,5 @@ public class FermerFichier extends MenuItem {
jd.add(oui); jd.add(oui);
jd.add(non); jd.add(non);
jd.setVisible(true); jd.setVisible(true);
});
/* TODO Définition du raccourcis clavier a modifier */
setRaccourcis(KeyEvent.VK_X, KeyEvent.CTRL_DOWN_MASK);
} }
} }
+20 -26
View File
@@ -10,6 +10,7 @@ import lecteur_pdf.IhmPdf;
import lecteur_pdf.raccourcisClavier.RaccourcisClavier; import lecteur_pdf.raccourcisClavier.RaccourcisClavier;
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent;
/** /**
* TODO commentaires * TODO commentaires
@@ -19,7 +20,7 @@ import javax.swing.*;
* @author Noé Villeneuve * @author Noé Villeneuve
* @author Tristan Nogaret * @author Tristan Nogaret
*/ */
public class MenuItem extends JMenuItem { public abstract class MenuItem extends JMenuItem {
/** /**
* TODO * TODO
@@ -30,40 +31,33 @@ public class MenuItem extends JMenuItem {
* TODO * TODO
* *
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
* @param name * @param name Nom de l'action
*/ */
public MenuItem(IhmPdf parent, String name) { public MenuItem(IhmPdf parent, String name) {
super(name); super(name);
this.parent = parent; this.parent = parent;
addActionListener(this::action);
RaccourcisClavier.listeItem.put(name, this);
} }
/** protected abstract void action(ActionEvent evt);
* TODO
*
* @param key
*/
public void setRaccourcis(int key) {
KeyStroke raccourcis = KeyStroke.getKeyStroke((char) key);
setAccelerator(raccourcis);
RaccourcisClavier.raccourcis.put(this.getText(), raccourcis); // public void setRaccourcis(int key) {
RaccourcisClavier.gestionnaireRaccourcis.put(this, this.getText()); // KeyStroke raccourcis = KeyStroke.getKeyStroke((char) key);
} // setAccelerator(raccourcis);
//
// RaccourcisClavier.raccourcis.put(this.getText(), raccourcis);
// RaccourcisClavier.gestionnaireRaccourcis.put(this, this.getText());
// }
/** // public void setRaccourcis(int key, int mask) {
* TODO // KeyStroke raccourcis = KeyStroke.getKeyStroke(key, mask);
* // setAccelerator(raccourcis);
* @param key //
* @param mask // RaccourcisClavier.raccourcis.put(this.getText(), raccourcis);
*/ // RaccourcisClavier.gestionnaireRaccourcis.put(this, this.getText());
public void setRaccourcis(int key, int mask) { // }
KeyStroke raccourcis = KeyStroke.getKeyStroke(key, mask);
setAccelerator(raccourcis);
RaccourcisClavier.raccourcis.put(this.getText(), raccourcis);
RaccourcisClavier.gestionnaireRaccourcis.put(this, this.getText());
}
} }
@@ -21,18 +21,12 @@ import javax.swing.*;
*/ */
public class ModeSynchronise extends JRadioButtonMenuItem { public class ModeSynchronise extends JRadioButtonMenuItem {
/**
* TODO
*/
IhmPdf parent;
/** /**
* TODO * TODO
* @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem * @param parent Référence de la fenêtre qui possède l'instance de ce MenuItem
*/ */
public ModeSynchronise(IhmPdf parent) { public ModeSynchronise(IhmPdf parent) {
super("Mode Synchronisé"); super("Mode Synchronisé");
this.parent = parent;
addActionListener(e -> { addActionListener(e -> {
GestionMode.setModeSynchronise(); GestionMode.setModeSynchronise();
@@ -9,6 +9,8 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import lecteur_pdf.raccourcisClavier.RaccourcisClavier; import lecteur_pdf.raccourcisClavier.RaccourcisClavier;
import java.awt.event.ActionEvent;
/** /**
* TODO commentaires * TODO commentaires
* *
@@ -25,10 +27,10 @@ public class ModifierTouches extends MenuItem {
*/ */
public ModifierTouches(IhmPdf parent) { public ModifierTouches(IhmPdf parent) {
super(parent, "Modifier Touches"); super(parent, "Modifier Touches");
}
addActionListener(e -> { @Override
protected void action(ActionEvent evt) {
new RaccourcisClavier(); new RaccourcisClavier();
});
} }
} }
@@ -10,7 +10,7 @@ import lecteur_pdf.GestionMode;
import lecteur_pdf.GestionPdf; import lecteur_pdf.GestionPdf;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import java.awt.*; import java.awt.event.ActionEvent;
/** /**
* TODO commentaires * TODO commentaires
@@ -28,14 +28,14 @@ public class NouvelleFenetre extends MenuItem {
*/ */
public NouvelleFenetre(IhmPdf parent) { public NouvelleFenetre(IhmPdf parent) {
super(parent, "Nouvelle Fenêtre"); super(parent, "Nouvelle Fenêtre");
}
addActionListener(e -> { @Override
public void action(ActionEvent evt) {
/* Essaye de créer une nouvelle fenêtre */ /* Essaye de créer une nouvelle fenêtre */
GestionPdf.newIhmPdf(); GestionPdf.newIhmPdf();
/* Désactive le bouton si on a atteint la limite des affichages */ /* Désactive le bouton si on a atteint la limite des affichages */
if (GestionPdf.ihmPdfList.size() == GestionPdf.maxPdf) GestionMode.desactiverFenetre(); if (GestionPdf.ihmPdfList.size() == GestionPdf.maxPdf) GestionMode.desactiverFenetre();
});
} }
} }
@@ -10,6 +10,7 @@ import lecteur_pdf.GestionPdf;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import lecteur_pdf.SelectionnerFichier; import lecteur_pdf.SelectionnerFichier;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.io.File; import java.io.File;
@@ -26,12 +27,15 @@ public class OuvrirFichier extends MenuItem {
/** /**
* TODO * TODO
* *
* @param parent
*/ */
public OuvrirFichier(IhmPdf parent) { public OuvrirFichier(IhmPdf parent) {
super(parent, "Ouvrir"); super(parent, "Ouvrir");
addActionListener(e -> { // setRaccourcis(KeyEvent.VK_O, KeyEvent.CTRL_DOWN_MASK);
}
@Override
protected void action(ActionEvent evt) {
/* On charge le fichier si c'est possible */ /* On charge le fichier si c'est possible */
File fichier = SelectionnerFichier.ouvrirFichier(); File fichier = SelectionnerFichier.ouvrirFichier();
@@ -50,8 +54,5 @@ public class OuvrirFichier extends MenuItem {
} else { } else {
// TODO Erreur fichier n'as pas pu etre chargé // TODO Erreur fichier n'as pas pu etre chargé
} }
});
setRaccourcis(KeyEvent.VK_O, KeyEvent.CTRL_DOWN_MASK);
} }
} }
@@ -2,6 +2,8 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import java.awt.event.ActionEvent;
public class PageEntiere extends MenuItem { public class PageEntiere extends MenuItem {
/** /**
* TODO * TODO
@@ -9,9 +11,10 @@ public class PageEntiere extends MenuItem {
*/ */
public PageEntiere(IhmPdf parent) { public PageEntiere(IhmPdf parent) {
super(parent, "Page Entière"); super(parent, "Page Entière");
}
addActionListener(e -> { @Override
protected void action(ActionEvent evt) {
parent.getPdfPanel().setPleineLargeur(false); parent.getPdfPanel().setPleineLargeur(false);
});
} }
} }
@@ -10,6 +10,7 @@ import lecteur_pdf.GestionMode;
import lecteur_pdf.GestionPdf; import lecteur_pdf.GestionPdf;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
/** /**
@@ -29,14 +30,12 @@ public class PagePrecedente extends MenuItem {
public PagePrecedente(IhmPdf parent) { public PagePrecedente(IhmPdf parent) {
super(parent, "Page précédente"); super(parent, "Page précédente");
addActionListener(e -> { // setRaccourcis(KeyEvent.VK_L, KeyEvent.CTRL_DOWN_MASK);
if (GestionMode.isModeSepare()) {
parent.getPdfPanel().previousPage();
} else {
GestionPdf.previousPages();
} }
});
setRaccourcis(KeyEvent.VK_L, KeyEvent.CTRL_DOWN_MASK); @Override
protected void action(ActionEvent evt) {
if (GestionMode.isModeSepare()) parent.getPdfPanel().previousPage();
else GestionPdf.previousPages();
} }
} }
@@ -10,6 +10,7 @@ import lecteur_pdf.GestionMode;
import lecteur_pdf.GestionPdf; import lecteur_pdf.GestionPdf;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
/** /**
@@ -29,14 +30,12 @@ public class PageSuivante extends MenuItem {
public PageSuivante(IhmPdf parent) { public PageSuivante(IhmPdf parent) {
super(parent, "Page suivante"); super(parent, "Page suivante");
addActionListener(e -> { // setRaccourcis(KeyEvent.VK_M, KeyEvent.CTRL_DOWN_MASK);
if (GestionMode.isModeSepare()) {
parent.getPdfPanel().nextPage();
} else {
GestionPdf.nextPages();
} }
});
setRaccourcis(KeyEvent.VK_M, KeyEvent.CTRL_DOWN_MASK); @Override
protected void action(ActionEvent evt) {
if (GestionMode.isModeSepare()) parent.getPdfPanel().nextPage();
else GestionPdf.nextPages();
} }
} }
@@ -8,6 +8,7 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
/** /**
@@ -27,10 +28,11 @@ public class PleinEcran extends MenuItem {
public PleinEcran(IhmPdf parent) { public PleinEcran(IhmPdf parent) {
super(parent, "Mode Plein Ecran"); super(parent, "Mode Plein Ecran");
addActionListener(e -> { // setRaccourcis(KeyEvent.VK_P, KeyEvent.CTRL_DOWN_MASK);
parent.pleinEcran(); }
});
setRaccourcis(KeyEvent.VK_P, KeyEvent.CTRL_DOWN_MASK); @Override
protected void action(ActionEvent evt) {
parent.pleinEcran();
} }
} }
@@ -2,6 +2,8 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import java.awt.event.ActionEvent;
public class PleineLargeur extends MenuItem{ public class PleineLargeur extends MenuItem{
@@ -11,9 +13,10 @@ public class PleineLargeur extends MenuItem{
*/ */
public PleineLargeur(IhmPdf parent) { public PleineLargeur(IhmPdf parent) {
super(parent, "Pleine Largeur"); super(parent, "Pleine Largeur");
}
addActionListener(e -> { @Override
protected void action(ActionEvent evt) {
parent.getPdfPanel().setPleineLargeur(true); parent.getPdfPanel().setPleineLargeur(true);
});
} }
} }
@@ -10,6 +10,7 @@ import lecteur_pdf.IhmPdf;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
/** /**
@@ -29,7 +30,11 @@ public class Quitter extends MenuItem {
public Quitter(IhmPdf parent) { public Quitter(IhmPdf parent) {
super(parent, "Quitter"); super(parent, "Quitter");
addActionListener(e -> { // setRaccourcis(KeyEvent.VK_Q, KeyEvent.CTRL_DOWN_MASK);
}
@Override
protected void action(ActionEvent evt) {
JDialog jd = new JDialog(); JDialog jd = new JDialog();
jd.setLayout(new FlowLayout()); jd.setLayout(new FlowLayout());
jd.setBounds(500,300,400,100); jd.setBounds(500,300,400,100);
@@ -45,10 +50,5 @@ public class Quitter extends MenuItem {
jd.add(oui); jd.add(oui);
jd.add(non); jd.add(non);
jd.setVisible(true); jd.setVisible(true);
});
setRaccourcis(KeyEvent.VK_Q, KeyEvent.CTRL_DOWN_MASK);
} }
} }
@@ -8,6 +8,7 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
/** /**
@@ -27,13 +28,13 @@ public class ZoomDefaut extends MenuItem {
public ZoomDefaut(IhmPdf parent) { public ZoomDefaut(IhmPdf parent) {
super(parent, "Zoom 100%"); super(parent, "Zoom 100%");
addActionListener(e -> { // setRaccourcis(KeyEvent.VK_G, KeyEvent.CTRL_DOWN_MASK);
parent.getPdfPanel().updateScaleZoom(1.0f);
parent.validate();
});
setRaccourcis(KeyEvent.VK_G, KeyEvent.CTRL_DOWN_MASK);
} }
@Override
protected void action(ActionEvent evt) {
parent.getPdfPanel().updateScaleZoom(1.0f);
parent.validate();
}
} }
@@ -8,6 +8,7 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
/** /**
@@ -27,12 +28,13 @@ public class ZoomMoins extends MenuItem {
public ZoomMoins(IhmPdf parent) { public ZoomMoins(IhmPdf parent) {
super(parent, "Zoom 50%"); super(parent, "Zoom 50%");
addActionListener(e -> { // setRaccourcis(KeyEvent.VK_F, KeyEvent.CTRL_DOWN_MASK);
parent.getPdfPanel().updateScaleZoom(0.5f);
parent.validate();
});
setRaccourcis(KeyEvent.VK_F, KeyEvent.CTRL_DOWN_MASK);
} }
@Override
protected void action(ActionEvent evt) {
parent.getPdfPanel().updateScaleZoom(0.5f);
parent.validate();
}
} }
@@ -8,6 +8,7 @@ package lecteur_pdf.menuBar.menuItems;
import lecteur_pdf.IhmPdf; import lecteur_pdf.IhmPdf;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
/** /**
@@ -27,12 +28,13 @@ public class ZoomPlus extends MenuItem {
public ZoomPlus(IhmPdf parent) { public ZoomPlus(IhmPdf parent) {
super(parent, "Zoom 150%"); super(parent, "Zoom 150%");
addActionListener(e -> { // setRaccourcis(KeyEvent.VK_H, KeyEvent.CTRL_DOWN_MASK);
parent.getPdfPanel().updateScaleZoom(1.5f);
parent.validate();
});
setRaccourcis(KeyEvent.VK_H, KeyEvent.CTRL_DOWN_MASK);
} }
@Override
protected void action(ActionEvent evt) {
parent.getPdfPanel().updateScaleZoom(1.5f);
parent.validate();
}
} }
-1
View File
@@ -51,7 +51,6 @@ public class OutilsImage {
int h = img.getHeight(); int h = img.getHeight();
int ratio = newH / (1+h); int ratio = newH / (1+h);
// System.out.println(ratio);
int newW = w * ratio; int newW = w * ratio;
+1 -2
View File
@@ -110,8 +110,7 @@ public class PdfLoader {
document.close(); document.close();
minWidth = -1; minWidth = -1;
minHeight = -1; minHeight = -1;
} catch (IOException ignored) { } catch (IOException ignored) {}
}
} }
/** /**
+28 -29
View File
@@ -11,10 +11,7 @@ import lecteur_pdf.GestionPdf;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.ComponentAdapter; import java.awt.event.*;
import java.awt.event.ComponentEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@@ -28,24 +25,26 @@ import java.io.IOException;
*/ */
public class PdfPanel extends JPanel { public class PdfPanel extends JPanel {
/* Données */
private int currentPage; private int currentPage;
private float scaleSizing; private float scaleSizing;
private float scaleZoom; private float scaleZoom;
private boolean pleineLargeur; private boolean pleineLargeur;
private boolean processing;
/* Chargeur de Pdf */
private PdfLoader pdfLoader; private PdfLoader pdfLoader;
/* Interface */
private final JTextField indexPageInput; private final JTextField indexPageInput;
private final JLabel maxPageLabel; private final JLabel maxPageLabel;
private final JScrollPane scrollPane; private final JScrollPane scrollPane;
private final JViewport viewport; private final JViewport viewport;
private final JLabel page; private final JLabel page;
private boolean processing; /**
* Crée une nouvelle interface de PDF vide
*/
public PdfPanel() { public PdfPanel() {
super(new BorderLayout()); super(new BorderLayout());
@@ -55,17 +54,10 @@ public class PdfPanel extends JPanel {
processing = false; processing = false;
pleineLargeur = false; pleineLargeur = false;
/* Controls */ /* Controleurs */
JPanel controls = new JPanel(); JPanel controls = new JPanel();
/* Contenu de Controls */
JButton btnPrecedent = new JButton("Précédent"); JButton btnPrecedent = new JButton("Précédent");
// indexPageInput = new JSpinner(); indexPageInput = new JTextField(7);
// JComponent field = ((JSpinner.DefaultEditor) indexPageInput.getEditor());
// Dimension prefSize = field.getPreferredSize();
// prefSize = new Dimension(50, prefSize.height);
// field.setPreferredSize(prefSize);
indexPageInput = new JTextField(5);
indexPageInput.setText("-"); indexPageInput.setText("-");
maxPageLabel = new JLabel("/ -"); maxPageLabel = new JLabel("/ -");
JButton btnSuivant = new JButton("Suivant"); JButton btnSuivant = new JButton("Suivant");
@@ -90,15 +82,8 @@ public class PdfPanel extends JPanel {
add(scrollPane, BorderLayout.CENTER); add(scrollPane, BorderLayout.CENTER);
/* Actions */ /* Actions */
btnSuivant.addActionListener(e -> { btnSuivant.addActionListener(this::btnSuivantAction);
if (GestionMode.isModeSepare()) nextPage(); btnPrecedent.addActionListener(this::btnPrecedentAction);
else GestionPdf.nextPages();
});
btnPrecedent.addActionListener(e -> {
if (GestionMode.isModeSepare()) previousPage();
else GestionPdf.previousPages();
});
/* Saisie uniquement de caractère numérique */ /* Saisie uniquement de caractère numérique */
indexPageInput.addKeyListener(new KeyAdapter() { indexPageInput.addKeyListener(new KeyAdapter() {
@@ -133,6 +118,22 @@ public class PdfPanel extends JPanel {
}); });
} }
/**
* @param evt Ecouteur d'évèvement
*/
private void btnSuivantAction(ActionEvent evt) {
if (GestionMode.isModeSepare()) nextPage();
else GestionPdf.nextPages();
}
/**
* @param evt Ecouteur d'évèvement
*/
private void btnPrecedentAction(ActionEvent evt) {
if (GestionMode.isModeSepare()) previousPage();
else GestionPdf.previousPages();
}
public void resize() { public void resize() {
if (pdfLoader != null && !processing) { if (pdfLoader != null && !processing) {
scaleSizing = pleineLargeur scaleSizing = pleineLargeur
@@ -196,7 +197,6 @@ public class PdfPanel extends JPanel {
currentPage = 0; currentPage = 0;
/* Interface Vide */ /* Interface Vide */
// indexPageInput.setValue(0);
indexPageInput.setText(""); indexPageInput.setText("");
maxPageLabel.setText("/ -"); maxPageLabel.setText("/ -");
@@ -253,7 +253,6 @@ public class PdfPanel extends JPanel {
try { try {
page.setIcon(new ImageIcon(pdfLoader.renderPage(index, scaleZoom + scaleSizing))); page.setIcon(new ImageIcon(pdfLoader.renderPage(index, scaleZoom + scaleSizing)));
currentPage = index; currentPage = index;
// indexPageInput.setValue(currentPage +1);
indexPageInput.setText(Integer.toString(currentPage + 1)); indexPageInput.setText(Integer.toString(currentPage + 1));
maxPageLabel.setText(String.format("/%d", pdfLoader.getNbPages())); maxPageLabel.setText(String.format("/%d", pdfLoader.getNbPages()));
} catch (IOException ignored) {} } catch (IOException ignored) {}
@@ -6,12 +6,11 @@
package lecteur_pdf.raccourcisClavier; package lecteur_pdf.raccourcisClavier;
import org.w3c.dom.Text; import lecteur_pdf.menuBar.menuItems.MenuItem;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.InputEvent; import java.awt.event.KeyEvent;
import java.io.Serializable;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -25,23 +24,66 @@ import java.util.Map;
*/ */
public class RaccourcisClavier extends JFrame { public class RaccourcisClavier extends JFrame {
public static Map<String, KeyStroke> raccourcis = new HashMap<>(); public static Map<String, JMenuItem> listeItem = new HashMap<>();
public static Map<JMenuItem, String> gestionnaireRaccourcis public final String[][] RACCOURCIS = {
= new HashMap<>(); {"Ouvrir", "o",},
{"Fermer", "f",},
{"Quitter", "x",},
{"Mode Plein Ecran", "p",},
{"Page Prédédente", "m",},
{"Page Suivante", "l",},
{"Zoom 50%", "&",},
{"Zoom 100%", "é",},
{"Zoom 150%", "\"",},
{"Page Entière", "a",},
{"Pleine Largeur", "z",},
{"Nouvelle Fenêtre", "n",},
// { "Mode Séparé",},
// { "Mode Synchronisé",},
{"Modifier Touches", "!",}
};
public RaccourcisClavier() { public RaccourcisClavier() {
super("Modification des raccourcis claviers"); super("Modification des raccourcis claviers");
JPanel panel = new JPanel(); JPanel panel = new JPanel(new GridLayout(RACCOURCIS.length, 1, 10, 5));
for (String nomOptions : raccourcis.keySet()) {
panel.add(new ligneRaccourci(nomOptions, System.out.println(listeItem);
(char) raccourcis.get(nomOptions)
.getKeyCode())); for (int i = 0; i < listeItem.size(); i++) {
RaccourcisElement raccourcisElement = new RaccourcisElement(RACCOURCIS[i][0], listeItem.get(RACCOURCIS[i][0]));
// Si l'actions n'as pas de raccourcis, mettre celui par défaut
// try {
// listeItem.get(RACCOURCIS[i][0]).getAccelerator();
// } catch (NullPointerException e) {
// listeItem.get(RACCOURCIS[i][0]).setAccelerator(KeyStroke.getKeyStroke(RACCOURCIS[i][1].charAt(0), KeyEvent.CTRL_DOWN_MASK));
// }
panel.add(raccourcisElement);
} }
add(panel);
add(new JScrollPane(panel));
// JPanel panel = new JPanel();
// for (String nomOptions : raccourcis.keySet()) {
// panel.add(new ligneRaccourci(nomOptions,
// (char) raccourcis.get(nomOptions)
// .getKeyCode()));
// }
// add(panel);
pack(); pack();
setSize(200, 400); setMinimumSize(new Dimension(400, 200));
setResizable(false); // setSize(200, 400);
// setResizable(false);
setVisible(true); setVisible(true);
} }
private void chargerRaccourcisDefaut() {
}
private void chargerRaccourcis() {
}
} }
@@ -0,0 +1,58 @@
package lecteur_pdf.raccourcisClavier;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
public class RaccourcisElement extends JPanel {
JLabel nomElement;
JButton btnRaccourcis;
KeyEvent raccourcis;
JMenuItem menuItem;
public RaccourcisElement(String nom, JMenuItem menuItem) {
super(new GridLayout(1, 2));
nomElement = new JLabel(nom);
this.menuItem = menuItem;
btnRaccourcis = new JButton();
add(nomElement);
add(btnRaccourcis);
btnRaccourcis.addActionListener(this::action);
// this.setVisible(false);
}
public void action(ActionEvent evt) {
// TODO ecoute la frappe de clavier et change le raccourcis
// KeyListener kl = new KeyListener() {
// @Override
// public void keyTyped(KeyEvent e) {}
//
// @Override
// public void keyPressed(KeyEvent e) {
// setCaractereRaccourcis(e.getKeyChar());
// }
//
// @Override
// public void keyReleased(KeyEvent e) {}
// };
// addKeyListener(kl);
// removeKeyListener(kl);
// btnRaccourcis.setText(String.valueOf(caractereRaccourcis));
// }
//
// public void setMenuItem(JMenuItem menuItem) {
// this.menuItem = menuItem;
// this.setVisible(true);
// }
//
// public void setCaractereRaccourcis(char caractereRaccourcis) {
// this.caractereRaccourcis = caractereRaccourcis;
// menuItem.setAccelerator(KeyStroke.getKeyStroke(caractereRaccourcis, KeyEvent.CTRL_DOWN_MASK));
}
}
@@ -12,34 +12,34 @@ import java.awt.event.ActionListener;
import java.util.Locale; import java.util.Locale;
import java.util.Scanner; import java.util.Scanner;
/** ///**
* TODO class comment // * TODO class comment
*/ // */
public class ligneRaccourci extends JPanel implements ActionListener { //public class ligneRaccourci extends JPanel implements ActionListener {
private JLabel raccourciLabel; // private JLabel raccourciLabel;
private JPanel optionsRaccourcis; // private JPanel optionsRaccourcis;
private JButton inputButton; // private JButton inputButton;
//
Scanner entree = new Scanner(System.in); // Scanner entree = new Scanner(System.in);
//
public ligneRaccourci(String labelName, char raccourcis) { // public ligneRaccourci(String labelName, char raccourcis) {
raccourciLabel.setText(labelName); // raccourciLabel.setText(labelName);
inputButton.setText(String.valueOf(raccourcis)); // inputButton.setText(String.valueOf(raccourcis));
add(optionsRaccourcis); // add(optionsRaccourcis);
inputButton.addActionListener(this); // inputButton.addActionListener(this);
} // }
//
public JLabel getRaccourciLabel() { // public JLabel getRaccourciLabel() {
return raccourciLabel; // return raccourciLabel;
} // }
//
public JButton getInputButton() { // public JButton getInputButton() {
return inputButton; // return inputButton;
} // }
//
@Override // @Override
public void actionPerformed(ActionEvent e) { // public void actionPerformed(ActionEvent e) {
inputButton.setText( // inputButton.setText(
String.valueOf(entree.next().charAt(0)).toUpperCase(Locale.ROOT)); // String.valueOf(entree.next().charAt(0)).toUpperCase(Locale.ROOT));
} // }
} //}