You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2006/11/12 16:38:46 UTC

svn commit: r473976 - in /xmlgraphics/fop/trunk: src/java/org/apache/fop/render/awt/viewer/PreviewDialog.java src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java status.xml

Author: jeremias
Date: Sun Nov 12 07:38:45 2006
New Revision: 473976

URL: http://svn.apache.org/viewvc?view=rev&rev=473976
Log:
Bugzilla #40813:
1. The PreviewDialog did not display correctly under certain Window managers
(this is actually a bug in Sun's JVM).
2. Keyboard shortcuts are added for PageUp/PageDown (prev/next page), Home
(first page) and End (last page).
3. PreviewPanel.setPage() scrolls to the selected page.
Submitted by: Richard Wheeldon <richardw.at.geoquip-rnd.demon.co.uk>

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewDialog.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java
    xmlgraphics/fop/trunk/status.xml

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewDialog.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewDialog.java?view=diff&rev=473976&r1=473975&r2=473976
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewDialog.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewDialog.java Sun Nov 12 07:38:45 2006
@@ -41,17 +41,21 @@
 
 import java.text.DecimalFormat;
 
+import javax.swing.ActionMap;
 import javax.swing.BorderFactory;
 import javax.swing.ButtonGroup;
+import javax.swing.InputMap;
 import javax.swing.JComboBox;
-import javax.swing.JRadioButtonMenuItem;
+import javax.swing.JComponent;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JMenu;
 import javax.swing.JMenuBar;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
+import javax.swing.JRadioButtonMenuItem;
 import javax.swing.JToolBar;
+import javax.swing.KeyStroke;
 import javax.swing.SwingUtilities;
 import javax.swing.UIManager;
 
@@ -155,6 +159,8 @@
 
         //Sets size to be 61%x90% of the screen size
         Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
+        // Needed due to bug in Sun's JVM 1.5 (6429775)
+        pack();
         //Rather frivolous size - fits A4 page width in 1024x768 screen on my desktop
         setSize(screen.width * 61 / 100, screen.height * 9 / 10);
 
@@ -162,6 +168,18 @@
         previewPanel = new PreviewPanel(foUserAgent, renderable, renderer);
         getContentPane().add(previewPanel, BorderLayout.CENTER);
 
+        // Keyboard shortcuts - pgup/pgdn
+        InputMap im = previewPanel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
+        ActionMap am = previewPanel.getActionMap();
+        im.put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN, 0), "nextPage");
+        im.put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP, 0), "prevPage");
+        im.put(KeyStroke.getKeyStroke(KeyEvent.VK_HOME, 0), "firstPage");
+        im.put(KeyStroke.getKeyStroke(KeyEvent.VK_END, 0), "lastPage");
+        previewPanel.getActionMap().put("nextPage", nextPageAction);
+        previewPanel.getActionMap().put("prevPage", previousPageAction);
+        previewPanel.getActionMap().put("firstPage", firstPageAction);
+        previewPanel.getActionMap().put("lastPage", lastPageAction);
+
         //Scaling combobox
         scale = new JComboBox();
         scale.addItem(translator.getString("Menu.Fit.Window"));
@@ -510,23 +528,7 @@
 
     /** Scales page image */
     public void setScale(double scaleFactor) {
-//         if (scaleFactor == 25.0) {
-//             scale.setSelectedIndex(0);
-//         } else if (scaleFactor == 50.0) {
-//             scale.setSelectedIndex(1);
-//         } else if (scaleFactor == 75.0) {
-//             scale.setSelectedIndex(2);
-//         } else if (scaleFactor == 100.0) {
-//             scale.setSelectedIndex(3);
-//         } else if (scaleFactor == 150.0) {
-//             scale.setSelectedIndex(4);
-//         } else if (scaleFactor == 200.0) {
-//             scale.setSelectedIndex(5);
-//         } else if (scaleFactor == 400.0) {
-//             scale.setSelectedIndex(6);
-//         } else {
         scale.setSelectedItem(percentFormat.format(scaleFactor) + "%");
-//              }
         previewPanel.setScaleFactor(scaleFactor / 100d);
     }
 

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java?view=diff&rev=473976&r1=473975&r2=473976
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java Sun Nov 12 07:38:45 2006
@@ -61,11 +61,13 @@
  * renderer and add it to your gui:
  * </p>
  * <pre>
+ * FopFactory fopFactory = FopFactory.newInstance();
  * AWTRenderer renderer = new AWTRenderer();
- * FOUserAgent agent = new FOUserAgent();
+ * FOUserAgent agent = fopFactory.newFOUserAgent();
  * agent.setRendererOverride(renderer);
  * renderer.setPreviewDialogDisplayed(false);
  * renderer.setUserAgent(agent);
+ * renderer.setUserAgent(agent);
  * previewPanel = new PreviewPanel(agent, null, renderer);
  * previewPanel = new PreviewPanel(ua);
  * myGui.add(previewPanel);
@@ -183,8 +185,8 @@
      */
     public void setPage(int number) {
         if (displayMode == CONTINUOUS || displayMode == CONT_FACING) {
-            // FIXME Should scroll so page is visible
             currentPage = number;
+            gridPanel.scrollRectToVisible(pagePanels[currentPage].getBounds());
         } else { // single page mode
             currentPage = number;
             firstPage = currentPage;

Modified: xmlgraphics/fop/trunk/status.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/status.xml?view=diff&rev=473976&r1=473975&r2=473976
==============================================================================
--- xmlgraphics/fop/trunk/status.xml (original)
+++ xmlgraphics/fop/trunk/status.xml Sun Nov 12 07:38:45 2006
@@ -28,6 +28,10 @@
 
   <changes>
     <release version="FOP Trunk">
+      <action context="Code" dev="JM" type="update" fixes-bug="40813" due-to="Richard Wheeldon">
+        Minor fixes and improvements for the AWT Preview (keyboard shortcuts, scrolling, windows
+        setup).
+      </action>
       <action context="Code" dev="JM" type="add" fixes-bug="40849" due-to="Dominic Brügger">
         Added support for SVG in fo:instream-foreign objects for RTF output.
       </action>



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org