You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2009/07/05 13:20:38 UTC

svn commit: r791220 - /incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/PDFReader.java

Author: lehmi
Date: Sun Jul  5 11:20:38 2009
New Revision: 791220

URL: http://svn.apache.org/viewvc?rev=791220&view=rev
Log:
PDFBOX-489: PDFReader now shows one page after the other

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

Modified: incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/PDFReader.java
URL: http://svn.apache.org/viewvc/incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/PDFReader.java?rev=791220&r1=791219&r2=791220&view=diff
==============================================================================
--- incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/PDFReader.java (original)
+++ incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/PDFReader.java Sun Jul  5 11:20:38 2009
@@ -17,18 +17,16 @@
 package org.apache.pdfbox;
 
 import org.apache.pdfbox.exceptions.InvalidPasswordException;
-
 import org.apache.pdfbox.pdfviewer.PageWrapper;
 import org.apache.pdfbox.pdfviewer.ReaderBottomPanel;
-
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDPage;
-
 import org.apache.pdfbox.util.ExtensionFileFilter;
 
 import javax.swing.JFileChooser;
 import javax.swing.JScrollPane;
 import javax.swing.JPanel;
+import javax.swing.KeyStroke;
 
 import java.awt.print.PrinterException;
 import java.io.File;
@@ -49,24 +47,24 @@
     private File currentDir=new File(".");
     private javax.swing.JMenuItem aboutMenuItem;
     private javax.swing.JMenuItem contentsMenuItem;
-    private javax.swing.JMenuItem copyMenuItem;
-    private javax.swing.JMenuItem cutMenuItem;
-    private javax.swing.JMenuItem deleteMenuItem;
-    private javax.swing.JMenu editMenu;
     private javax.swing.JMenuItem exitMenuItem;
     private javax.swing.JMenu fileMenu;
     private javax.swing.JMenu helpMenu;
     private javax.swing.JMenuBar menuBar;
     private javax.swing.JMenuItem openMenuItem;
-    private javax.swing.JMenuItem pasteMenuItem;
-    private javax.swing.JMenuItem saveAsMenuItem;
-    private javax.swing.JMenuItem saveMenuItem;
     private javax.swing.JMenuItem printMenuItem;
+    private javax.swing.JMenu viewMenu;
+    private javax.swing.JMenuItem nextPageItem;
+    private javax.swing.JMenuItem previousPageItem;
     private JPanel documentPanel = new JPanel();
     private ReaderBottomPanel bottomStatusPanel = new ReaderBottomPanel();
 
     private PDDocument document = null;
-
+    private List pages= null;
+    
+    private int currentPage = 0;
+    private int numberOfPages = 0;
+    
     /**
      * Constructor.
      */
@@ -86,18 +84,14 @@
         menuBar = new javax.swing.JMenuBar();
         fileMenu = new javax.swing.JMenu();
         openMenuItem = new javax.swing.JMenuItem();
-        saveMenuItem = new javax.swing.JMenuItem();
-        saveAsMenuItem = new javax.swing.JMenuItem();
         exitMenuItem = new javax.swing.JMenuItem();
-        editMenu = new javax.swing.JMenu();
-        cutMenuItem = new javax.swing.JMenuItem();
-        copyMenuItem = new javax.swing.JMenuItem();
-        pasteMenuItem = new javax.swing.JMenuItem();
-        deleteMenuItem = new javax.swing.JMenuItem();
         helpMenu = new javax.swing.JMenu();
         contentsMenuItem = new javax.swing.JMenuItem();
         aboutMenuItem = new javax.swing.JMenuItem();
         printMenuItem = new javax.swing.JMenuItem();
+        viewMenu = new javax.swing.JMenu();
+        nextPageItem = new javax.swing.JMenuItem();
+        previousPageItem = new javax.swing.JMenuItem();
 
 
         setTitle("PDFBox - PDF Reader");
@@ -137,7 +131,10 @@
             {
                 try
                 {
-                    document.print();
+                    if (document != null) 
+                    {
+                        document.print();
+                    }
                 }
                 catch( PrinterException e )
                 {
@@ -147,12 +144,6 @@
         });
         fileMenu.add( printMenuItem );
 
-        saveMenuItem.setText("Save");
-        //fileMenu.add(saveMenuItem);
-
-        saveAsMenuItem.setText("Save As ...");
-        //fileMenu.add(saveAsMenuItem);
-
         exitMenuItem.setText("Exit");
         exitMenuItem.addActionListener(new java.awt.event.ActionListener()
         {
@@ -166,21 +157,6 @@
 
         menuBar.add(fileMenu);
 
-        editMenu.setText("Edit");
-        cutMenuItem.setText("Cut");
-        editMenu.add(cutMenuItem);
-
-        copyMenuItem.setText("Copy");
-        editMenu.add(copyMenuItem);
-
-        pasteMenuItem.setText("Paste");
-        editMenu.add(pasteMenuItem);
-
-        deleteMenuItem.setText("Delete");
-        editMenu.add(deleteMenuItem);
-
-        //menuBar.add(editMenu);
-
         helpMenu.setText("Help");
         contentsMenuItem.setText("Contents");
         helpMenu.add(contentsMenuItem);
@@ -190,12 +166,58 @@
 
         //menuBar.add(helpMenu);
 
+        viewMenu.setText("View");
+        nextPageItem.setText("Next page");
+        nextPageItem.setAccelerator(KeyStroke.getKeyStroke('+'));
+        nextPageItem.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                nextPage();
+            }
+        });
+        viewMenu.add(nextPageItem);
+
+        previousPageItem.setText("Previous page");
+        previousPageItem.setAccelerator(KeyStroke.getKeyStroke('-'));
+        previousPageItem.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                previousPage();
+            }
+        });
+        viewMenu.add(previousPageItem);
+
+        menuBar.add(viewMenu);
+
         setJMenuBar(menuBar);
 
 
         java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
         setBounds((screenSize.width-700)/2, (screenSize.height-600)/2, 700, 600);
-    }//GEN-END:initComponents
+    }
+
+    
+    private void nextPage()
+    {
+        System.out.println("nextPage");
+        if (currentPage < numberOfPages-1) 
+        {
+            currentPage++;
+            showPage(currentPage);
+        }
+    }
+    
+    private void previousPage()
+    {
+        System.out.println("previousPage");
+        if (currentPage > 0 ) 
+        {
+            currentPage--;
+            showPage(currentPage);
+        }
+    }
 
     private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt)
     {
@@ -264,13 +286,28 @@
         input = new FileInputStream(f);
         document = parseDocument( input );
         setTitle( "PDFBox - " + f.getAbsolutePath() );
-
-        List pages = document.getDocumentCatalog().getAllPages();
-        for( int i=0; i<pages.size(); i++ )
+        pages = document.getDocumentCatalog().getAllPages();
+        numberOfPages = pages.size();
+        currentPage = 0;
+        showPage(0);
+    }
+    
+    private void showPage(int pageNumber)
+    {
+        try 
         {
             PageWrapper wrapper = new PageWrapper( this );
-            wrapper.displayPage( (PDPage)pages.get(i) );
+            wrapper.displayPage( (PDPage)pages.get(pageNumber) );
+            if (documentPanel.getComponentCount() > 0)
+            {
+                documentPanel.remove(0);
+            }
             documentPanel.add( wrapper.getPanel() );
+            pack();
+        }
+        catch (IOException exception)
+        {
+            exception.printStackTrace();
         }
     }
     /**