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/07/10 21:56:50 UTC
svn commit: r420623 - in
/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt: AWTRenderer.java
viewer/PreviewDialog.java
Author: jeremias
Date: Mon Jul 10 12:56:49 2006
New Revision: 420623
URL: http://svn.apache.org/viewvc?rev=420623&view=rev
Log:
Bugzilla #39709:
Some clean-up in the AWT Renderer/Preview.
Submitted by: Stefan Ziel <stefan.ziel.at.claninfo.ch>
Original patch slightly modified for (hopefully) better naming.
Modified:
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/viewer/PreviewDialog.java
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java?rev=420623&r1=420622&r2=420623&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/awt/AWTRenderer.java Mon Jul 10 12:56:49 2006
@@ -28,9 +28,6 @@
// Java
import java.awt.Color;
import java.awt.Dimension;
-import java.awt.Toolkit;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
import java.awt.geom.Rectangle2D;
import java.awt.print.PageFormat;
import java.awt.print.Pageable;
@@ -44,8 +41,8 @@
import org.apache.fop.area.Area;
import org.apache.fop.area.PageViewport;
import org.apache.fop.render.awt.viewer.PreviewDialog;
+import org.apache.fop.render.awt.viewer.StatusListener;
import org.apache.fop.render.awt.viewer.Renderable;
-import org.apache.fop.render.awt.viewer.Translator;
import org.apache.fop.render.java2d.Java2DRenderer;
/**
@@ -58,9 +55,6 @@
/** The MIME type for AWT-Rendering */
public static final String MIME_TYPE = MimeConstants.MIME_FOP_AWT_PREVIEW;
- /** The resource bundle used for AWT messages. */
- protected Translator translator = null;
-
/** flag for debugging */
public boolean debug;
@@ -68,29 +62,27 @@
public boolean dialogDisplay = true;
/**
- * The preview dialog frame used for display of the documents. Also used as
- * the AWT Component for FontSetup in generating valid font measures.
- */
- protected PreviewDialog frame;
-
- /**
* Renderable instance that can be used to reload and re-render a document after
* modifications.
*/
protected Renderable renderable;
+
+ /**
+ * Will be notified when rendering progresses
+ */
+ protected StatusListener statusListener = null;
/**
* Creates a new AWTRenderer instance.
*/
public AWTRenderer() {
- translator = new Translator();
}
/** @see org.apache.fop.render.Renderer#setUserAgent(org.apache.fop.apps.FOUserAgent) */
public void setUserAgent(FOUserAgent foUserAgent) {
super.setUserAgent(foUserAgent);
if (dialogDisplay) {
- createPreviewDialog();
+ setStatusListener(PreviewDialog.createPreviewDialog(userAgent, this.renderable));
}
}
@@ -118,17 +110,16 @@
public void renderPage(PageViewport pageViewport) throws IOException {
super.renderPage(pageViewport);
- if (frame != null) {
- frame.setInfo();
+ if (statusListener != null) {
+ statusListener.notifyPageRendered();
}
}
/** @see org.apache.fop.render.Renderer#stopRenderer() */
public void stopRenderer() throws IOException {
super.stopRenderer();
- if (frame != null) {
- frame.setStatus(translator.getString("Status.Show"));
- frame.reload(); // Refreshes view of page
+ if (statusListener != null) {
+ statusListener.notifyRendererStopped(); // Refreshes view of page
}
}
@@ -149,32 +140,7 @@
/ userAgent.getTargetPixelUnitToMillimeter();
int bitmapWidth = (int) ((pageWidth * scaleX) + 0.5);
int bitmapHeight = (int) ((pageHeight * scaleY) + 0.5);
- return new Dimension(bitmapWidth, bitmapHeight);
- }
-
- /** Creates and initialize the AWT Viewer main window */
- private PreviewDialog createPreviewDialog() {
- frame = new PreviewDialog(userAgent, this.renderable);
- frame.addWindowListener(new WindowAdapter() {
- public void windowClosed(WindowEvent we) {
- System.exit(0);
- }
- });
-
- // Centers the window
- Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
- Dimension frameSize = frame.getSize();
- if (frameSize.height > screenSize.height) {
- frameSize.height = screenSize.height;
- }
- if (frameSize.width > screenSize.width) {
- frameSize.width = screenSize.width;
- }
- frame.setLocation((screenSize.width - frameSize.width) / 2,
- (screenSize.height - frameSize.height) / 2);
- frame.setStatus(translator.getString("Status.Build.FO.tree"));
- frame.setVisible(true);
- return frame;
+ return new Dimension(bitmapWidth, bitmapHeight);
}
/** @see java.awt.print.Pageable#getPageFormat(int) */
@@ -222,11 +188,6 @@
return true; // TODO true?
}
- /** @return the Translator for this renderer */
- public Translator getTranslator() {
- return translator;
- }
-
/** @see org.apache.fop.render.AbstractRenderer */
public String getMimeType() {
return MIME_TYPE;
@@ -270,6 +231,19 @@
// restores the last graphics state from the stack
restoreGraphicsState();
+ }
+
+ /** @return the StatusListener. */
+ public StatusListener getStatusListener() {
+ return statusListener;
+ }
+
+ /**
+ * Sets a StatusListener this renderer uses to notify about events.
+ * @param statusListener The StatusListener to set.
+ */
+ public void setStatusListener(StatusListener statusListener) {
+ this.statusListener = statusListener;
}
}
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?rev=420623&r1=420622&r2=420623&view=diff
==============================================================================
--- 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 Mon Jul 10 12:56:49 2006
@@ -33,6 +33,8 @@
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
@@ -60,7 +62,7 @@
* AWT Viewer main window.
* Surrounds a PreviewPanel with a bunch of pretty buttons and controls.
*/
-public class PreviewDialog extends JFrame {
+public class PreviewDialog extends JFrame implements StatusListener {
/** The Translator for localization */
protected Translator translator;
@@ -99,7 +101,7 @@
renderer = (AWTRenderer) foUserAgent.getRendererOverride();
this.foUserAgent = foUserAgent;
this.renderable = renderable;
- translator = renderer.getTranslator();
+ translator = new Translator();
//Commands aka Actions
Command printAction = new Command(translator.getString("Menu.Print"), "Print") {
@@ -238,6 +240,38 @@
new Insets(0, 0, 0, 0), 0, 0));
getContentPane().add(statusBar, BorderLayout.SOUTH);
}
+
+ /**
+ * Creates and initialize the AWT Viewer main window.
+ * @param foUserAgent the FO user agent
+ * @param renderable the target for the rendering
+ * @return the newly initialized preview dialog
+ */
+ public static PreviewDialog createPreviewDialog(FOUserAgent foUserAgent,
+ Renderable renderable) {
+ PreviewDialog frame = new PreviewDialog(foUserAgent, renderable);
+
+ frame.addWindowListener(new WindowAdapter() {
+ public void windowClosed(WindowEvent we) {
+ System.exit(0);
+ }
+ });
+
+ // Centers the window
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ Dimension frameSize = frame.getSize();
+ if (frameSize.height > screenSize.height) {
+ frameSize.height = screenSize.height;
+ }
+ if (frameSize.width > screenSize.width) {
+ frameSize.width = screenSize.width;
+ }
+ frame.setLocation((screenSize.width - frameSize.width) / 2,
+ (screenSize.height - frameSize.height) / 2);
+ frame.setStatus(frame.translator.getString("Status.Build.FO.tree"));
+ frame.setVisible(true);
+ return frame;
+ }
/**
* Creates a new PreviewDialog that uses the given renderer.
@@ -396,10 +430,16 @@
return menuBar;
}
- public void reload() {
- previewPanel.reload();
+ /** @see org.apache.fop.render.awt.viewer.StatusListener#notifyRendererStopped() */
+ public void notifyRendererStopped() {
+ reload();
}
+ private void reload() {
+ setStatus(translator.getString("Status.Show"));
+ previewPanel.reload();
+ }
+
/**
* Changes the current visible page
* @param number the page number to go to
@@ -407,7 +447,7 @@
public void goToPage(int number) {
if (number != previewPanel.getPage()) {
previewPanel.setPage(number);
- setInfo();
+ notifyPageRendered();
}
}
@@ -570,7 +610,7 @@
/**
* Updates the message to be shown in the info bar in a thread safe way.
*/
- public void setInfo() {
+ public void notifyPageRendered() {
SwingUtilities.invokeLater(new ShowInfo());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org