]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
1. New constructor for Driver created, takes FOUserAgent constructor.
authorGlen Mazza <gmazza@apache.org>
Sun, 18 Jul 2004 00:50:08 +0000 (00:50 +0000)
committerGlen Mazza <gmazza@apache.org>
Sun, 18 Jul 2004 00:50:08 +0000 (00:50 +0000)
Used for both CLI and AWTRenderer.  (Thanks to Simon Pepping)
2. Removed Driver(AWTRenderer) constructor.
3. OutputStream validation moved to FOTreeBuilder.
4. Driver.reset() removed, not currently serving a purpose.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197797 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/apps/Driver.java
src/java/org/apache/fop/apps/Fop.java
src/java/org/apache/fop/fo/FOTreeBuilder.java
src/java/org/apache/fop/render/awt/AWTRenderer.java
src/java/org/apache/fop/render/awt/viewer/PreviewDialog.java
src/java/org/apache/fop/tools/TestConverter.java

index 41ae90469902e5db6b67cdca3f7b7808f2c67f90..f63581689e054c0b0dd66dab5f873a4dfec58017 100644 (file)
@@ -31,7 +31,6 @@ import org.xml.sax.XMLReader;
 // FOP
 import org.apache.fop.fo.Constants;
 import org.apache.fop.fo.FOTreeBuilder;
-import org.apache.fop.render.awt.AWTRenderer;
 
 /**
  * Primary class that drives the overall FOP process.
@@ -48,10 +47,6 @@ import org.apache.fop.render.awt.AWTRenderer;
  * use and the OutputStream to use to output the results of the
  * rendering (where applicable).
  * <P>
- * Once the Driver is set up, the render method
- * is called. The invocation of the method is 
- * render(Parser, InputSource).
- * <P>
  * Here is an example use of Driver which outputs to AWT:
  *
  * <PRE>
@@ -70,7 +65,7 @@ public class Driver implements Constants {
     /**
      * the stream to use to output the results of the renderer
      */
-    private OutputStream stream;
+    private OutputStream stream = null;
 
     /**
      * The system resources that FOP will use
@@ -82,17 +77,6 @@ public class Driver implements Constants {
      */
     public Driver() {
         foUserAgent = new FOUserAgent();
-        stream = null;
-    }
-
-    /**
-     * Constructor for AWTRenderer, which reuses the
-     * same renderer instance for document reloading
-     */
-    public Driver(AWTRenderer render) {
-        this();
-        renderType = RENDER_AWT;
-        foUserAgent = render.getUserAgent();
     }
 
     /**
@@ -105,12 +89,11 @@ public class Driver implements Constants {
     }
 
     /**
-     * Resets the Driver so it can be reused. Property and element
-     * mappings are reset to defaults.
-     * The output stream is cleared. The renderer is cleared.
+     * Constructor with FOUserAgent
+     * Used by CLI, AWTRenderer
      */
-    public synchronized void reset() {
-        stream = null;
+    public Driver(FOUserAgent ua) {
+        foUserAgent = ua;
     }
 
     /**
@@ -139,12 +122,6 @@ public class Driver implements Constants {
         this.stream = stream;
     }
 
-    private void validateOutputStream() {
-        if (this.stream == null) {
-            throw new IllegalStateException("OutputStream has not been set");
-        }
-    }
-
     /**
      * Method to set the rendering type desired. Must be one of
      * <ul>
@@ -182,11 +159,6 @@ public class Driver implements Constants {
      * @throws FOPException if setting up the ContentHandler fails
      */
     public ContentHandler getContentHandler() throws FOPException {
-
-        if (renderType != RENDER_PRINT && renderType != RENDER_AWT) {
-           validateOutputStream();
-        }
-
         return new FOTreeBuilder(renderType, foUserAgent, stream);
     }
 
index 6db94af9e001362473ba8b85a12cc65a30c07856..d42424fa05b2a34254ef877c65f86811195f1dfe 100644 (file)
@@ -41,11 +41,10 @@ public class Fop {
         BufferedOutputStream bos = null;
 
         try {
-            Driver driver = new Driver();
             options = new CommandLineOptions(args);
-
             foUserAgent = options.getFOUserAgent();
-            driver.setUserAgent(foUserAgent);
+            
+            Driver driver = new Driver(foUserAgent);
             driver.setRenderer(options.getRenderer());
 
             try {
index c9f566c1809c43e293736caee9e174b87aab27b9..5f32eda89891261e3a681f9fa63c6d1d7677a567 100644 (file)
@@ -96,6 +96,15 @@ public class FOTreeBuilder extends DefaultHandler {
      */
     public FOTreeBuilder(int renderType, FOUserAgent foUserAgent, 
         OutputStream stream) throws FOPException {
+
+        if (renderType != Constants.RENDER_PRINT && 
+            renderType != Constants.RENDER_AWT) {
+            if (stream == null) {
+                throw new IllegalStateException(
+                    "OutputStream has not been set");
+            }
+        }
+            
         if (renderType == Constants.RENDER_MIF) {
             foInputHandler = new MIFHandler(foUserAgent, stream);
         } else if (renderType == Constants.RENDER_RTF) {
index 975f631f4be6c8aa6135d077cafd268103fd2292..6fbb5402bfde53694f3a8e588a8d35a4428b5d65 100644 (file)
@@ -106,7 +106,8 @@ public class AWTRenderer extends AbstractRenderer implements Printable, Pageable
 
     public void setUserAgent(FOUserAgent foUserAgent) {
         super.setUserAgent(foUserAgent);
-        createPreviewDialog(foUserAgent.getInputHandler());
+        userAgent.setRendererOverride(this); // for document regeneration
+        createPreviewDialog();
     }
 
     public FOUserAgent getUserAgent() {
@@ -180,8 +181,8 @@ public class AWTRenderer extends AbstractRenderer implements Printable, Pageable
         return 0;
     }
 
-    private PreviewDialog createPreviewDialog(InputHandler handler) {
-        frame = new PreviewDialog(this, handler);
+    private PreviewDialog createPreviewDialog() {
+        frame = new PreviewDialog(userAgent);
         frame.addWindowListener(new WindowAdapter() {
             public void windowClosed(WindowEvent we) {
                 System.exit(0);
index 8a09828f1fbea1e04c2a2c81ac244ce0697ccc97..ef565573b4ce25fb8c7db755733a5c32da7ec173 100644 (file)
@@ -49,8 +49,9 @@ import java.awt.print.PrinterException;
 
 //FOP
 import org.apache.fop.apps.Driver;
-import org.apache.fop.apps.InputHandler;
+import org.apache.fop.apps.FOUserAgent;
 import org.apache.fop.apps.FOPException;
+import org.apache.fop.fo.Constants;
 import org.apache.fop.render.awt.AWTRenderer;
 
 /**
@@ -66,8 +67,8 @@ public class PreviewDialog extends JFrame {
     protected Translator translator;
     /** The AWT renderer */
     protected AWTRenderer renderer;
-    /** The InputHandler associated with this window */
-    protected InputHandler inputHandler;
+    /** The FOUserAgent associated with this window */
+    protected FOUserAgent foUserAgent;
     /** The Driver used for refreshing/reloading the view */
     protected Driver driver;
 
@@ -83,9 +84,9 @@ public class PreviewDialog extends JFrame {
      * Creates a new PreviewDialog that uses the given renderer.
      * @param aRenderer the to use renderer
      */
-    public PreviewDialog(AWTRenderer aRenderer, InputHandler handler) {
-        renderer = aRenderer;
-        inputHandler = handler;
+    public PreviewDialog(FOUserAgent foUserAgent) {
+        renderer = (AWTRenderer) foUserAgent.getRendererOverride();
+        this.foUserAgent = foUserAgent;
         translator = renderer.getTranslator();
 
         //Commands aka Actions
@@ -219,7 +220,7 @@ public class PreviewDialog extends JFrame {
             }
         });
         // inputHandler must be set to allow reloading
-        if (inputHandler != null) {
+        if (foUserAgent.getInputHandler() != null) {
             menu.add(new Command(translator.getString("Menu.Reload")) {
                 public void doit() {
                     reload();
@@ -384,9 +385,8 @@ public class PreviewDialog extends JFrame {
     private class Reloader extends Thread {
         public void run() {
             if (driver == null) {
-                driver = new Driver(renderer);
-            } else {
-                driver.reset();
+                driver = new Driver(foUserAgent);
+                driver.setRenderer(Constants.RENDER_AWT);
             }
             
             pageLabel.setIcon(null);
@@ -395,7 +395,7 @@ public class PreviewDialog extends JFrame {
 
             try {
                 setStatus(translator.getString("Status.Build.FO.tree"));
-                driver.render(inputHandler);
+                driver.render(foUserAgent.getInputHandler());
                 setStatus(translator.getString("Status.Show"));
             } catch (FOPException e) {
                 reportException(e);
index a1ffe0f8173c95198cf6e76f9ee42afedc4253f3..165de1cdb8d9dd413f4b8e34625f1f6317c1b8c5 100644 (file)
@@ -302,7 +302,7 @@ public class TestConverter {
             } else {
                 inputHandler = new XSLTInputHandler(xmlFile,
                                                     new File(baseDir + "/"
-                                                             + xsl), null);
+                                                             + xsl));
             }
 
             Driver driver = new Driver();