]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
(Very) initial steps in activating AWTRenderer & PreviewDialog in 1.0 (creating outer...
authorGlen Mazza <gmazza@apache.org>
Thu, 28 Aug 2003 23:43:50 +0000 (23:43 +0000)
committerGlen Mazza <gmazza@apache.org>
Thu, 28 Aug 2003 23:43:50 +0000 (23:43 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196872 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/render/awt/AWTRenderer.java
src/java/org/apache/fop/viewer/PreviewDialog.java

index aaf56ebcf07c9305eec79e131b822ec3a3fda5fd..e2ed7294c37bc03abcc2e15a0383a9392962daff 100644 (file)
@@ -63,22 +63,31 @@ import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.Graphics;
 import java.awt.Graphics2D;
+import java.awt.geom.Rectangle2D;
 import java.awt.Toolkit;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
+import java.awt.geom.AffineTransform;
 import java.awt.image.BufferedImage;
 import java.awt.print.PageFormat;
 import java.awt.print.Pageable;
 import java.awt.print.Printable;
+import java.awt.RenderingHints;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.List;
 import java.util.Map;
 
 // FOP
-import org.apache.fop.apps.InputHandler;
 import org.apache.fop.apps.Document;
+import org.apache.fop.apps.InputHandler;
+import org.apache.fop.apps.FOPException;
+import org.apache.fop.area.Area;
+import org.apache.fop.area.Page;
+import org.apache.fop.area.PageViewport;
+import org.apache.fop.area.RegionViewport;
 import org.apache.fop.fo.FOTreeControl;
+import org.apache.fop.fonts.Font;
 import org.apache.fop.render.AbstractRenderer;
 import org.apache.fop.viewer.PreviewDialog;
 import org.apache.fop.viewer.Translator;
@@ -95,6 +104,9 @@ public class AWTRenderer extends AbstractRenderer implements Printable, Pageable
     protected List pageList = new java.util.Vector();
     //protected ProgressListener progressListener = null;
 
+    /** Font configuration */
+    protected Document fontInfo;
+
     /**
         The InputHandler associated with this Renderer.
         Sent to the PreviewDialog for document reloading.
@@ -157,14 +169,15 @@ public class AWTRenderer extends AbstractRenderer implements Printable, Pageable
     }
 
     public int getPageCount() {
-        return 0;
+        return pageList.size();
     }
 
     public void setupFontInfo(FOTreeControl foTreeControl) {
         // create a temp Image to test font metrics on
+        fontInfo = (Document) foTreeControl;
         BufferedImage fontImage =
             new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
-        FontSetup.setup((Document)foTreeControl, fontImage.createGraphics());
+        FontSetup.setup(fontInfo, fontImage.createGraphics());
     }
 
     public int getPageNumber() {
@@ -237,4 +250,54 @@ public class AWTRenderer extends AbstractRenderer implements Printable, Pageable
         frame.setStatus(translator.getString("Status.Build.FO.tree"));
         return frame;
     }
+    
+    private void transform(Graphics2D g2d, double zoomPercent, double angle) {
+        AffineTransform at = g2d.getTransform();
+        at.rotate(angle);
+        at.scale(zoomPercent / 100.0, zoomPercent / 100.0);
+        g2d.setTransform(at);
+    }
+
+    /** @see org.apache.fop.render.Renderer */
+    public void renderPage(PageViewport page)  throws IOException, FOPException {
+//      Page p = page.getPage();
+        
+        Rectangle2D bounds = page.getViewArea();
+        pageWidth = (int)((float) bounds.getWidth() / 1000f + .5);
+        pageHeight = (int)((float) bounds.getHeight() / 1000f + .5);
+
+        pageImage =
+            new BufferedImage((int)((pageWidth * (int)scaleFactor) / 100),
+                              (int)((pageHeight * (int)scaleFactor) / 100),
+                              BufferedImage.TYPE_INT_RGB);
+
+        graphics = pageImage.createGraphics();
+        graphics.setRenderingHint (RenderingHints.KEY_FRACTIONALMETRICS,
+                                   RenderingHints.VALUE_FRACTIONALMETRICS_ON);
+
+        transform(graphics, scaleFactor, 0);
+        drawFrame();
+
+        this.currentFontName = "";
+        this.currentFontSize = 0;
+//      renderPageAreas(p);
+//      pageList.add(page);
+    }
+
+    protected void drawFrame() {
+        int width = pageWidth;
+        int height = pageHeight;
+
+        graphics.setColor(Color.white);
+        graphics.fillRect(0, 0, width, height);
+
+        graphics.setColor(Color.black);
+        graphics.drawRect(-1, -1, width + 2, height + 2);
+        graphics.drawLine(width + 2, 0, width + 2, height + 2);
+        graphics.drawLine(width + 3, 1, width + 3, height + 3);
+
+        graphics.drawLine(0, height + 2, width + 2, height + 2);
+        graphics.drawLine(1, height + 3, width + 3, height + 3);
+    }
+    
 }
index af77e286f31a281273cfeaad33f8da57b02740e5..e93f12122152d0a011aa2cc34d4b2cf123af85bd 100644 (file)
@@ -52,6 +52,7 @@ package org.apache.fop.viewer;
 
 //Java
 import javax.swing.BorderFactory;
+import javax.swing.ImageIcon;
 import javax.swing.JComboBox;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
@@ -66,6 +67,7 @@ import javax.swing.SwingUtilities;
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Dimension;
+import java.awt.Graphics;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
 import java.awt.Insets;
@@ -73,6 +75,7 @@ import java.awt.Point;
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.awt.image.BufferedImage;
 import java.awt.print.PrinterJob;
 import java.awt.print.PrinterException;
 
@@ -555,19 +558,25 @@ public class PreviewDialog extends JFrame {
          * The run method that does the actual updating
          */
         public void run() {
-            //Rendering a page - to be done
-            /*
-            renderer.render(currentPage);
-            BufferedImage pageImage = renderer.getLastRenderedPage();
+            BufferedImage pageImage = null;
+            Graphics graphics = null;
+
+//          renderer.render(currentPage);
+            pageImage = renderer.getLastRenderedPage();
             if (pageImage == null)
                 return;
+            graphics = pageImage.getGraphics();
+            graphics.setColor(Color.black);
+            graphics.drawRect(0, 0, pageImage.getWidth() - 1,
+                              pageImage.getHeight() - 1);
+
             pageLabel.setIcon(new ImageIcon(pageImage));
             pageCount = renderer.getPageCount();
+
             //Updates status bar
             infoStatus.setText(translator.getString("Status.Page") + " "
                 + (currentPage + 1) + " "
                 + translator.getString("Status.of") + " " + pageCount);
-            */
         }
     }