gmazza 2003/08/28 16:43:50 Modified: src/java/org/apache/fop/render/awt AWTRenderer.java src/java/org/apache/fop/viewer PreviewDialog.java Log: (Very) initial steps in activating AWTRenderer & PreviewDialog in 1.0 (creating outer page). Revision Changes Path 1.8 +66 -3 xml-fop/src/java/org/apache/fop/render/awt/AWTRenderer.java Index: AWTRenderer.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/awt/AWTRenderer.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- AWTRenderer.java 20 Aug 2003 18:09:45 -0000 1.7 +++ AWTRenderer.java 28 Aug 2003 23:43:50 -0000 1.8 @@ -63,22 +63,31 @@ 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 @@ 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 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 @@ 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); + } + } 1.4 +14 -5 xml-fop/src/java/org/apache/fop/viewer/PreviewDialog.java Index: PreviewDialog.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/viewer/PreviewDialog.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- PreviewDialog.java 11 Aug 2003 23:47:22 -0000 1.3 +++ PreviewDialog.java 28 Aug 2003 23:43:50 -0000 1.4 @@ -52,6 +52,7 @@ //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 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.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 @@ * 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); - */ } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]