You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2015/03/29 21:06:27 UTC

svn commit: r1669953 - /pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFReader.java

Author: tilman
Date: Sun Mar 29 19:06:26 2015
New Revision: 1669953

URL: http://svn.apache.org/r1669953
Log:
PDFBOX-2735: add PgUp and PgDn to PDFReader and additional keyboard shortcuts, by Khyrul Bashar 

Modified:
    pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFReader.java

Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFReader.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFReader.java?rev=1669953&r1=1669952&r2=1669953&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFReader.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFReader.java Sun Mar 29 19:06:26 2015
@@ -16,6 +16,10 @@
  */
 package org.apache.pdfbox.tools;
 
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
 import java.awt.image.BufferedImage;
 import java.awt.print.PrinterException;
 import java.awt.print.PrinterJob;
@@ -30,6 +34,11 @@ import javax.swing.JMenuItem;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.KeyStroke;
+import javax.swing.Action;
+import javax.swing.InputMap;
+import javax.swing.JComponent;
+import javax.swing.JScrollBar;
+import javax.swing.AbstractAction;
 
 import org.apache.pdfbox.pdmodel.PDPageTree;
 import org.apache.pdfbox.printing.PDFPrinter;
@@ -69,7 +78,11 @@ public class PDFReader extends JFrame
     private static final String PASSWORD = "-password";
 
     private static final String VERSION = Version.getVersion();
-    private static final String BASETITLE = "PDFBox " + VERSION; 
+    private static final String BASETITLE = "PDFBox " + VERSION;
+
+    private static final String PREVIOUS_PAGE = "previous_page";
+    private static final String NEXT_PAGE = "next_page";
+    
     /**
      * Constructor.
      */
@@ -109,11 +122,12 @@ public class PDFReader extends JFrame
 
         fileMenu.setText("File");
         openMenuItem.setText("Open");
+        openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_DOWN_MASK));
         openMenuItem.setToolTipText("Open PDF file");
         openMenuItem.addActionListener(new java.awt.event.ActionListener()
         {
             @Override
-            public void actionPerformed(java.awt.event.ActionEvent evt)
+            public void actionPerformed(ActionEvent evt)
             {
                 openMenuItemActionPerformed(evt);
             }
@@ -122,10 +136,11 @@ public class PDFReader extends JFrame
         fileMenu.add(openMenuItem);
 
         printMenuItem.setText("Print");
-        printMenuItem.addActionListener(new java.awt.event.ActionListener()
+        printMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, InputEvent.CTRL_DOWN_MASK));
+        printMenuItem.addActionListener(new ActionListener()
         {
             @Override
-            public void actionPerformed(java.awt.event.ActionEvent evt)
+            public void actionPerformed(ActionEvent evt)
             {
                 try
                 {
@@ -149,9 +164,10 @@ public class PDFReader extends JFrame
         fileMenu.add(printMenuItem);
 
         saveAsImageMenuItem.setText("Save as image");
-        saveAsImageMenuItem.addActionListener(new java.awt.event.ActionListener()
+        saveAsImageMenuItem.addActionListener(new ActionListener()
         {
-            public void actionPerformed(java.awt.event.ActionEvent evt)
+            @Override
+            public void actionPerformed(ActionEvent evt)
             {
                 if (document != null)
                 {
@@ -172,7 +188,7 @@ public class PDFReader extends JFrame
         exitMenuItem.addActionListener(new java.awt.event.ActionListener()
         {
             @Override
-            public void actionPerformed(java.awt.event.ActionEvent evt)
+            public void actionPerformed(ActionEvent evt)
             {
                 exitApplication();
             }
@@ -182,49 +198,65 @@ public class PDFReader extends JFrame
 
         menuBar.add(fileMenu);
 
-        viewMenu.setText("View");
-        nextPageItem.setText("Next page");
-        nextPageItem.setAccelerator(KeyStroke.getKeyStroke('+'));
-        nextPageItem.addActionListener(new java.awt.event.ActionListener()
+        Action previousPageAction = new AbstractAction()
         {
             @Override
-            public void actionPerformed(java.awt.event.ActionEvent evt)
+            public void actionPerformed(ActionEvent actionEvent)
             {
                 try
                 {
-                    nextPage();
+                    previousPage();
                 }
                 catch (IOException e)
                 {
                     throw new RuntimeException(e);
                 }
             }
-        });
-        viewMenu.add(nextPageItem);
+        };
 
-        previousPageItem.setText("Previous page");
-        previousPageItem.setAccelerator(KeyStroke.getKeyStroke('-'));
-        previousPageItem.addActionListener(new java.awt.event.ActionListener()
+        Action nextPageAction = new AbstractAction()
         {
             @Override
-            public void actionPerformed(java.awt.event.ActionEvent evt)
+            public void actionPerformed(ActionEvent actionEvent)
             {
                 try
                 {
-                    previousPage();
+                    nextPage();
                 }
                 catch (IOException e)
                 {
                     throw new RuntimeException(e);
                 }
             }
-        });
+        };
+
+        viewMenu.setText("View");
+        nextPageItem.setText("Next page");
+        nextPageItem.setAccelerator(KeyStroke.getKeyStroke('+'));
+        nextPageItem.addActionListener(nextPageAction);
+        viewMenu.add(nextPageItem);
+
+        previousPageItem.setText("Previous page");
+        previousPageItem.setAccelerator(KeyStroke.getKeyStroke('-'));
+        previousPageItem.addActionListener(previousPageAction);
         viewMenu.add(previousPageItem);
 
         menuBar.add(viewMenu);
 
         setJMenuBar(menuBar);
 
+        InputMap documentInputMap = documentPanel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
+        documentInputMap.put(KeyStroke.getKeyStroke("PAGE_UP"), PREVIOUS_PAGE);
+        documentInputMap.put(KeyStroke.getKeyStroke("PAGE_DOWN"), NEXT_PAGE);
+        documentPanel.getActionMap().put(PREVIOUS_PAGE, previousPageAction);
+        documentPanel.getActionMap().put(NEXT_PAGE, nextPageAction);
+
+        JScrollBar verticalScroller = documentScroller.getVerticalScrollBar();
+        verticalScroller.setUnitIncrement(20);
+        InputMap scrollerInputMap = verticalScroller.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
+        scrollerInputMap.put(KeyStroke.getKeyStroke("DOWN"), "positiveUnitIncrement");
+        scrollerInputMap.put(KeyStroke.getKeyStroke("UP"), "negativeUnitIncrement");
+
         java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
         setBounds((screenSize.width - 700) / 2, (screenSize.height - 600) / 2, 700, 600);
     }