Index: C:/oo/fop/src/java/org/apache/fop/render/awt/viewer/PreviewDialog.java
===================================================================
--- C:/oo/fop/src/java/org/apache/fop/render/awt/viewer/PreviewDialog.java	(revision 411765)
+++ C:/oo/fop/src/java/org/apache/fop/render/awt/viewer/PreviewDialog.java	(working copy)
@@ -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 ProgressListener {
 
     /** 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,7 +240,35 @@
                                              new Insets(0, 0, 0, 0), 0, 0));
         getContentPane().add(statusBar, BorderLayout.SOUTH);
     }
+    
+    /** Creates and initialize the AWT Viewer main window 
+     * GUI-code transferred to here from AWTRenderer
+     */
+    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.
      * @param foUserAgent the user agent
@@ -397,7 +427,8 @@
     }
 
     public void reload() {
-        previewPanel.reload();
+        setStatus(translator.getString("Status.Show"));
+    	  previewPanel.reload();
     }
 
     /**
@@ -586,7 +617,17 @@
         }
     }
 
+    
+    
     /**
+		 * @see org.apache.fop.render.awt.viewer.ProgressListener#progress()
+		 */
+		public void progress() {
+			// TODO Auto-generated method stub
+			
+		}
+
+		/**
      * Opens standard Swing error dialog box and reports given exception details.
      * @param e the Exception
      */
Index: C:/oo/fop/src/java/org/apache/fop/render/awt/viewer/ProgressListener.java
===================================================================
--- C:/oo/fop/src/java/org/apache/fop/render/awt/viewer/ProgressListener.java	(revision 0)
+++ C:/oo/fop/src/java/org/apache/fop/render/awt/viewer/ProgressListener.java	(revision 0)
@@ -0,0 +1,33 @@
+/*
+ * Copyright 1999-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+/*
+ * originally contributed by
+ * Juergen Verwohlt: Juergen.Verwohlt@jCatalog.com,
+ * Rainer Steinkuhle: Rainer.Steinkuhle@jCatalog.com,
+ * Stanislav Gorkhover: Stanislav.Gorkhover@jCatalog.com
+ */
+
+package org.apache.fop.render.awt.viewer;
+
+public interface ProgressListener {
+
+	void setInfo();
+	void reload();
+}
+
Index: C:/oo/fop/src/java/org/apache/fop/render/awt/AWTRenderer.java
===================================================================
--- C:/oo/fop/src/java/org/apache/fop/render/awt/AWTRenderer.java	(revision 411765)
+++ C:/oo/fop/src/java/org/apache/fop/render/awt/AWTRenderer.java	(working copy)
@@ -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.ProgressListener;
 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 ProgressListener progressListener = 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();
+	          progressListener = 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( progressListener != null ){
+            progressListener.setInfo();
         }
     }
 
     /** @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 (progressListener != null) {
+            progressListener.reload(); // Refreshes view of page
         }
     }
 
@@ -152,31 +143,6 @@
                 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;
-    }
-
     /** @see java.awt.print.Pageable#getPageFormat(int) */
     public PageFormat getPageFormat(int pageIndex)
             throws IndexOutOfBoundsException {
@@ -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;
@@ -272,4 +233,20 @@
         restoreGraphicsState();
     }
 
+		
+		/**
+		 * @return Returns the progressListener.
+		 */
+		public ProgressListener getProgressListener() {
+			return progressListener;
+		}
+
+		
+		/**
+		 * @param pProgressListener The progressListener to set.
+		 */
+		public void setProgressListener(ProgressListener pProgressListener) {
+			progressListener = pProgressListener;
+		}
+
 }
