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]