]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Bugzilla #39983:
authorJeremias Maerki <jeremias@apache.org>
Mon, 10 Jul 2006 20:15:17 +0000 (20:15 +0000)
committerJeremias Maerki <jeremias@apache.org>
Mon, 10 Jul 2006 20:15:17 +0000 (20:15 +0000)
Moved the setting of the system look&feel to CommandLineOptions. Shouldn't really be in PreviewDialog.java.
Added a parameter to createPreviewDialog() so embedders don't get a System.exit() when the user closes the preview dialog. System.exit() may only be called if the preview dialog is the main window.

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

src/java/org/apache/fop/cli/CommandLineOptions.java
src/java/org/apache/fop/render/awt/AWTRenderer.java
src/java/org/apache/fop/render/awt/viewer/PreviewDialog.java

index fb93a060e31e682829b6c7a9b4e2e591c294cabe..9fc2d5c52c5f89e09f739f1da11fb0e3efb0e136 100644 (file)
@@ -25,6 +25,8 @@ import java.io.IOException;
 import java.util.Locale;
 import java.util.Vector;
 
+import javax.swing.UIManager;
+
 import org.apache.fop.Version;
 import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
@@ -153,7 +155,15 @@ public class CommandLineOptions {
         inputHandler = createInputHandler();
 
         if (MimeConstants.MIME_FOP_AWT_PREVIEW.equals(outputmode)) {
-            AWTRenderer renderer = new AWTRenderer();
+            //set the system look&feel for the preview dialog
+            try {
+                if (false) UIManager.setLookAndFeel(
+                    UIManager.getSystemLookAndFeelClassName());
+            } catch (Exception e) {
+                System.err.println("Couldn't set system look & feel!");
+            }
+
+            AWTRenderer renderer = new AWTRenderer(true);
             renderer.setRenderable(inputHandler); //set before user agent!
             renderer.setUserAgent(foUserAgent);
             foUserAgent.setRendererOverride(renderer);
index a52e754706d85f705a78e65bbf72eb61dbcedbd7..6766d4809ab68a77112658946200b415d654253c 100644 (file)
@@ -61,6 +61,9 @@ public class AWTRenderer extends Java2DRenderer implements Pageable {
     /** If true, preview dialog is shown. */
     public boolean dialogDisplay = true;
 
+    /** true if the preview dialog should be the main window of the application */
+    private boolean previewAsMainWindow;
+
     /**
      * Renderable instance that can be used to reload and re-render a document after 
      * modifications.
@@ -71,18 +74,30 @@ public class AWTRenderer extends Java2DRenderer implements Pageable {
      * Will be notified when rendering progresses 
      */
     protected StatusListener statusListener = null;
+
     
     /**
      * Creates a new AWTRenderer instance.
      */
     public AWTRenderer() {
+        this(false);
+    }
+
+    /**
+     * Creates a new AWTRenderer instance.
+     * @param previewAsMainWindow true if the preview dialog created by the renderer should be
+     *                            the main window of the application.
+     */
+    public AWTRenderer(boolean previewAsMainWindow) {
+        this.previewAsMainWindow = previewAsMainWindow;
     }
 
     /** @see org.apache.fop.render.Renderer#setUserAgent(org.apache.fop.apps.FOUserAgent) */
     public void setUserAgent(FOUserAgent foUserAgent) {
         super.setUserAgent(foUserAgent);
         if (dialogDisplay) {
-            setStatusListener(PreviewDialog.createPreviewDialog(userAgent, this.renderable));
+            setStatusListener(PreviewDialog.createPreviewDialog(userAgent, this.renderable, 
+                    this.previewAsMainWindow));
         }
     }
 
index 31221664fd419d037bc6b66667ebe47e02b9ecc6..4851cd8c5244833e5c9887e0f7701f5c292eeca3 100644 (file)
@@ -149,14 +149,6 @@ public class PreviewDialog extends JFrame implements StatusListener {
             }
         };
 
-        //set the system look&feel
-        try {
-            UIManager.setLookAndFeel(
-                UIManager.getSystemLookAndFeelClassName());
-        } catch (Exception e) {
-            System.err.println("Couldn't set system look & feel!");
-        }
-
         setTitle("FOP: AWT-" + translator.getString("Title.Preview"));
         setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 
@@ -248,14 +240,16 @@ public class PreviewDialog extends JFrame implements StatusListener {
      * @return the newly initialized preview dialog
      */
     public static PreviewDialog createPreviewDialog(FOUserAgent foUserAgent, 
-                Renderable renderable) {
+                Renderable renderable, boolean asMainWindow) {
         PreviewDialog frame = new PreviewDialog(foUserAgent, renderable);
 
-        frame.addWindowListener(new WindowAdapter() {
-            public void windowClosed(WindowEvent we) {
-                System.exit(0);
-            }
-        });
+        if (asMainWindow) {
+            frame.addWindowListener(new WindowAdapter() {
+                public void windowClosed(WindowEvent we) {
+                    System.exit(0);
+                }
+            });
+        }
 
         // Centers the window
         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();