Index: test/java/org/apache/fop/layoutengine/LayoutEngineTestCase.java
===================================================================
--- test/java/org/apache/fop/layoutengine/LayoutEngineTestCase.java (revision 1234850)
+++ test/java/org/apache/fop/layoutengine/LayoutEngineTestCase.java (working copy)
@@ -150,8 +150,7 @@
ua.getEventBroadcaster().addEventListener(
new ConsoleEventListenerForTests(testFile.getName(), EventSeverity.WARN));
- XMLRenderer atrenderer = new XMLRenderer();
- atrenderer.setUserAgent(ua);
+ XMLRenderer atrenderer = new XMLRenderer(ua);
atrenderer.setContentHandler(athandler);
ua.setRendererOverride(atrenderer);
fop = effFactory.newFop(ua);
@@ -208,8 +207,7 @@
ua.getEventBroadcaster().addEventListener(
new ConsoleEventListenerForTests(testFile.getName(), EventSeverity.WARN));
- IFRenderer ifRenderer = new IFRenderer();
- ifRenderer.setUserAgent(ua);
+ IFRenderer ifRenderer = new IFRenderer(ua);
IFSerializer serializer = new IFSerializer();
serializer.setContext(new IFContext(ua));
Index: test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java
===================================================================
--- test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java (revision 1234850)
+++ test/java/org/apache/fop/intermediate/AreaTreeParserTestCase.java (working copy)
@@ -97,10 +97,9 @@
Renderer targetRenderer = userAgent.getRendererFactory().createRenderer(
userAgent, getTargetMIME());
- XMLRenderer renderer = new XMLRenderer();
+ XMLRenderer renderer = new XMLRenderer(userAgent);
renderer.mimicRenderer(targetRenderer);
renderer.setContentHandler(handler);
- renderer.setUserAgent(userAgent);
userAgent.setRendererOverride(renderer);
@@ -131,12 +130,10 @@
TransformerHandler handler = testAssistant.getTransformerFactory().newTransformerHandler();
DOMResult domResult = new DOMResult();
handler.setResult(domResult);
- XMLRenderer renderer = new XMLRenderer();
- renderer.setContentHandler(handler);
-
FOUserAgent userAgent = createUserAgent();
+ XMLRenderer renderer = new XMLRenderer(userAgent);
userAgent.setRendererOverride(renderer);
- renderer.setUserAgent(userAgent);
+ renderer.setContentHandler(handler);
FontInfo fontInfo = new FontInfo();
AreaTreeModel treeModel = new RenderPagesModel(userAgent,
Index: test/java/org/apache/fop/URIResolutionTestCase.java
===================================================================
--- test/java/org/apache/fop/URIResolutionTestCase.java (revision 1234850)
+++ test/java/org/apache/fop/URIResolutionTestCase.java (working copy)
@@ -39,19 +39,21 @@
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.w3c.dom.Document;
+
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.output.ByteArrayOutputStream;
+import org.apache.xpath.XPathAPI;
+import org.apache.xpath.objects.XObject;
+
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;
import org.apache.fop.render.xml.XMLRenderer;
-import org.apache.xpath.XPathAPI;
-import org.apache.xpath.objects.XObject;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.w3c.dom.Document;
/**
* Tests URI resolution facilities.
@@ -160,8 +162,7 @@
TransformerHandler athandler = tfactory.newTransformerHandler();
athandler.setResult(domres);
- XMLRenderer atrenderer = new XMLRenderer();
- atrenderer.setUserAgent(ua);
+ XMLRenderer atrenderer = new XMLRenderer(ua);
atrenderer.setContentHandler(athandler);
ua.setRendererOverride(atrenderer);
Index: src/java/org/apache/fop/render/AbstractPathOrientedRenderer.java
===================================================================
--- src/java/org/apache/fop/render/AbstractPathOrientedRenderer.java (revision 1234850)
+++ src/java/org/apache/fop/render/AbstractPathOrientedRenderer.java (working copy)
@@ -34,6 +34,7 @@
import org.apache.xmlgraphics.util.QName;
import org.apache.xmlgraphics.util.UnitConv;
+import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.area.Area;
import org.apache.fop.area.Block;
import org.apache.fop.area.BlockViewport;
@@ -56,6 +57,10 @@
*/
public abstract class AbstractPathOrientedRenderer extends PrintRenderer {
+ public AbstractPathOrientedRenderer(FOUserAgent userAgent) {
+ super(userAgent);
+ }
+
/**
* Handle block traits.
* The block could be any sort of block with any positioning
Index: src/java/org/apache/fop/render/PrintRenderer.java
===================================================================
--- src/java/org/apache/fop/render/PrintRenderer.java (revision 1234850)
+++ src/java/org/apache/fop/render/PrintRenderer.java (working copy)
@@ -27,6 +27,7 @@
import org.w3c.dom.Document;
import org.apache.fop.apps.FOPException;
+import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.area.Area;
import org.apache.fop.area.Trait;
import org.apache.fop.fonts.CustomFontCollection;
@@ -42,6 +43,10 @@
/** Abstract base class of "Print" type renderers. */
public abstract class PrintRenderer extends AbstractRenderer {
+ public PrintRenderer(FOUserAgent userAgent) {
+ super(userAgent);
+ }
+
/** Font configuration */
protected FontInfo fontInfo;
Index: src/java/org/apache/fop/render/intermediate/IFRenderer.java
===================================================================
--- src/java/org/apache/fop/render/intermediate/IFRenderer.java (revision 1234850)
+++ src/java/org/apache/fop/render/intermediate/IFRenderer.java (working copy)
@@ -51,6 +51,7 @@
import org.apache.fop.Version;
import org.apache.fop.apps.FOPException;
+import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.MimeConstants;
import org.apache.fop.area.Area;
import org.apache.fop.area.AreaTreeObject;
@@ -70,10 +71,10 @@
import org.apache.fop.area.inline.Image;
import org.apache.fop.area.inline.InlineArea;
import org.apache.fop.area.inline.InlineParent;
+import org.apache.fop.area.inline.InlineViewport;
import org.apache.fop.area.inline.Leader;
import org.apache.fop.area.inline.SpaceArea;
import org.apache.fop.area.inline.TextArea;
-import org.apache.fop.area.inline.InlineViewport;
import org.apache.fop.area.inline.WordArea;
import org.apache.fop.datatypes.URISpecification;
import org.apache.fop.fo.extensions.ExtensionAttachment;
@@ -158,7 +159,8 @@
/**
* Main constructor
*/
- public IFRenderer() {
+ public IFRenderer(FOUserAgent userAgent) {
+ super(userAgent);
}
/** {@inheritDoc} */
Index: src/java/org/apache/fop/render/bitmap/TIFFRendererMaker.java
===================================================================
--- src/java/org/apache/fop/render/bitmap/TIFFRendererMaker.java (revision 1234850)
+++ src/java/org/apache/fop/render/bitmap/TIFFRendererMaker.java (working copy)
@@ -34,7 +34,7 @@
/** {@inheritDoc} */
public Renderer makeRenderer(FOUserAgent userAgent) {
- return new TIFFRenderer();
+ return new TIFFRenderer(userAgent);
}
/** {@inheritDoc} */
Index: src/java/org/apache/fop/render/bitmap/PNGRenderer.java
===================================================================
--- src/java/org/apache/fop/render/bitmap/PNGRenderer.java (revision 1234850)
+++ src/java/org/apache/fop/render/bitmap/PNGRenderer.java (working copy)
@@ -29,6 +29,7 @@
import org.apache.xmlgraphics.image.writer.ImageWriterParams;
import org.apache.xmlgraphics.image.writer.ImageWriterRegistry;
+import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.MimeConstants;
import org.apache.fop.area.PageViewport;
import org.apache.fop.render.java2d.Java2DRenderer;
@@ -40,6 +41,10 @@
*/
public class PNGRenderer extends Java2DRenderer {
+ public PNGRenderer(FOUserAgent userAgent) {
+ super(userAgent);
+ }
+
/** The MIME type for png-Rendering */
public static final String MIME_TYPE = MimeConstants.MIME_PNG;
Index: src/java/org/apache/fop/render/bitmap/TIFFRenderer.java
===================================================================
--- src/java/org/apache/fop/render/bitmap/TIFFRenderer.java (revision 1234850)
+++ src/java/org/apache/fop/render/bitmap/TIFFRenderer.java (working copy)
@@ -83,19 +83,11 @@
}
/** Creates TIFF renderer. */
- public TIFFRenderer() {
+ public TIFFRenderer(FOUserAgent userAgent) {
+ super(userAgent);
writerParams = new ImageWriterParams();
writerParams.setCompressionMethod(COMPRESSION_PACKBITS);
- }
- /**
- * {@inheritDoc}
- * org.apache.fop.apps.FOUserAgent)
- */
- public void setUserAgent(FOUserAgent foUserAgent) {
- super.setUserAgent(foUserAgent);
-
- //Set target resolution
int dpi = Math.round(userAgent.getTargetResolution());
writerParams.setResolution(dpi);
}
Index: src/java/org/apache/fop/render/bitmap/PNGRendererMaker.java
===================================================================
--- src/java/org/apache/fop/render/bitmap/PNGRendererMaker.java (revision 1234850)
+++ src/java/org/apache/fop/render/bitmap/PNGRendererMaker.java (working copy)
@@ -36,7 +36,7 @@
/** {@inheritDoc} */
public Renderer makeRenderer(FOUserAgent ua) {
- return new PNGRenderer();
+ return new PNGRenderer(ua);
}
/** {@inheritDoc} */
Index: src/java/org/apache/fop/render/txt/TXTRenderer.java
===================================================================
--- src/java/org/apache/fop/render/txt/TXTRenderer.java (revision 1234850)
+++ src/java/org/apache/fop/render/txt/TXTRenderer.java (working copy)
@@ -32,6 +32,7 @@
import org.apache.xmlgraphics.util.UnitConv;
import org.apache.fop.apps.FOPException;
+import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.area.Area;
import org.apache.fop.area.CTM;
import org.apache.fop.area.PageViewport;
@@ -110,7 +111,8 @@
/**
* Constructs a newly allocated TXTRenderer
object.
*/
- public TXTRenderer() {
+ public TXTRenderer(FOUserAgent userAgent) {
+ super(userAgent);
}
/** {@inheritDoc} */
Index: src/java/org/apache/fop/render/txt/TXTRendererMaker.java
===================================================================
--- src/java/org/apache/fop/render/txt/TXTRendererMaker.java (revision 1234850)
+++ src/java/org/apache/fop/render/txt/TXTRendererMaker.java (working copy)
@@ -34,7 +34,7 @@
/**{@inheritDoc} */
public Renderer makeRenderer(FOUserAgent userAgent) {
- return new TXTRenderer();
+ return new TXTRenderer(userAgent);
}
/**{@inheritDoc} */
Index: src/java/org/apache/fop/render/Renderer.java
===================================================================
--- src/java/org/apache/fop/render/Renderer.java (revision 1234850)
+++ src/java/org/apache/fop/render/Renderer.java (working copy)
@@ -82,13 +82,6 @@
throws IOException;
/**
- * Set the User Agent.
- *
- * @param agent The User Agent
- */
- void setUserAgent(FOUserAgent agent);
-
- /**
* Returns the associated user agent.
* @return the user agent
*/
Index: src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java
===================================================================
--- src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java (revision 1234850)
+++ src/java/org/apache/fop/render/awt/viewer/PreviewPanel.java (working copy)
@@ -67,12 +67,9 @@
*
* FopFactory fopFactory = FopFactory.newInstance(); - * AWTRenderer renderer = new AWTRenderer(); * FOUserAgent agent = fopFactory.newFOUserAgent(); + * AWTRenderer renderer = new AWTRenderer(agent); * agent.setRendererOverride(renderer); - * renderer.setPreviewDialogDisplayed(false); - * renderer.setUserAgent(agent); - * renderer.setUserAgent(agent); * previewPanel = new PreviewPanel(agent, null, renderer); * previewPanel = new PreviewPanel(ua); * myGui.add(previewPanel); Index: src/java/org/apache/fop/render/awt/AWTRenderer.java =================================================================== --- src/java/org/apache/fop/render/awt/AWTRenderer.java (revision 1234850) +++ src/java/org/apache/fop/render/awt/AWTRenderer.java (working copy) @@ -64,19 +64,7 @@ /** flag for debugging */ public boolean debug; // CSOK: VisibilityModifier - /** If true, preview dialog is shown. */ - public boolean dialogDisplay = true; // CSOK: VisibilityModifier - - /** 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. - */ - protected Renderable renderable; - - /** * Will be notified when rendering progresses */ protected StatusListener statusListener = null; @@ -84,48 +72,36 @@ /** * Creates a new AWTRenderer instance. + * + * @param userAgent the user agent that contains configuration data */ - public AWTRenderer() { - this(false); + public AWTRenderer(FOUserAgent userAgent) { + this(userAgent, null, false, false); } /** * Creates a new AWTRenderer instance. + * + * @param userAgent the user agent that contains configuration data + * @param renderable a Renderable instance can be set so the Preview Dialog can enable the + * "Reload" button which causes the current document to be reprocessed and redisplayed. * @param previewAsMainWindow true if the preview dialog created by the renderer should be - * the main window of the application. + * the main window of the application. + * @param show sets whether the preview dialog should be created and displayed when the + * rendering has finished. */ - public AWTRenderer(boolean previewAsMainWindow) { - this.previewAsMainWindow = previewAsMainWindow; - } - - /** {@inheritDoc} */ - public void setUserAgent(FOUserAgent foUserAgent) { - super.setUserAgent(foUserAgent); - if (dialogDisplay) { - setStatusListener(PreviewDialog.createPreviewDialog(userAgent, this.renderable, - this.previewAsMainWindow)); + public AWTRenderer(FOUserAgent userAgent, Renderable renderable, boolean previewAsMainWindow, + boolean show) { + super(userAgent); + if (show) { + // MH: Not sure about this??? If show is false, there's no way for this class + // to create a preview dialog... Previously a "setUserAgent" could be called. + setStatusListener(PreviewDialog.createPreviewDialog(userAgent, renderable, + previewAsMainWindow)); } } /** - * A Renderable instance can be set so the Preview Dialog can enable the "Reload" button - * which causes the current document to be reprocessed and redisplayed. - * @param renderable the Renderable instance. - */ - public void setRenderable(Renderable renderable) { - this.renderable = renderable; - } - - /** - * Sets whether the preview dialog should be created and displayed when - * the rendering is finished. - * @param show If false, preview dialog is not shown. True by default - */ - public void setPreviewDialogDisplayed(boolean show) { - dialogDisplay = show; - } - - /** * {@inheritDoc} */ public void renderPage(PageViewport pageViewport) throws IOException { Index: src/java/org/apache/fop/render/awt/AWTRendererMaker.java =================================================================== --- src/java/org/apache/fop/render/awt/AWTRendererMaker.java (revision 1234850) +++ src/java/org/apache/fop/render/awt/AWTRendererMaker.java (working copy) @@ -34,7 +34,7 @@ /** {@inheritDoc} */ public Renderer makeRenderer(FOUserAgent ua) { - return new AWTRenderer(); + return new AWTRenderer(ua); } /** {@inheritDoc} */ Index: src/java/org/apache/fop/render/print/PrintRenderer.java =================================================================== --- src/java/org/apache/fop/render/print/PrintRenderer.java (revision 1234850) +++ src/java/org/apache/fop/render/print/PrintRenderer.java (working copy) @@ -55,21 +55,11 @@ * Creates a new PrintRenderer with the options set through the renderer options if a custom * PrinterJob is not given in FOUserAgent's renderer options. */ - public PrintRenderer() { + public PrintRenderer(FOUserAgent userAgent) { + super(userAgent); + setRendererOptions(); } - /** - * Creates a new PrintRenderer and allows you to pass in a specific PrinterJob instance - * that this renderer should work with. - * @param printerJob the PrinterJob instance - * @deprecated Please use the rendering options on the user agent to pass in the PrinterJob! - */ - public PrintRenderer(PrinterJob printerJob) { - this(); - this.printerJob = printerJob; - printerJob.setPageable(this); - } - private void initializePrinterJob() { if (this.printerJob == null) { printerJob = PrinterJob.getPrinterJob(); @@ -85,12 +75,9 @@ } } - /** {@inheritDoc} */ - public void setUserAgent(FOUserAgent agent) { - super.setUserAgent(agent); + private void setRendererOptions() { + Map rendererOptions = getUserAgent().getRendererOptions(); - Map rendererOptions = agent.getRendererOptions(); - Object printerJobO = rendererOptions.get(PrintRenderer.PRINTER_JOB); if (printerJobO != null) { if (!(printerJobO instanceof PrinterJob)) { Index: src/java/org/apache/fop/render/print/PrintRendererMaker.java =================================================================== --- src/java/org/apache/fop/render/print/PrintRendererMaker.java (revision 1234850) +++ src/java/org/apache/fop/render/print/PrintRendererMaker.java (working copy) @@ -35,7 +35,7 @@ /**{@inheritDoc} */ public Renderer makeRenderer(FOUserAgent userAgent) { - return new PrintRenderer(); + return new PrintRenderer(userAgent); } /** {@inheritDoc} */ Index: src/java/org/apache/fop/render/print/PageableRenderer.java =================================================================== --- src/java/org/apache/fop/render/print/PageableRenderer.java (revision 1234850) +++ src/java/org/apache/fop/render/print/PageableRenderer.java (working copy) @@ -73,7 +73,11 @@ /** * Creates a new PageableRenderer. */ - public PageableRenderer() { + public PageableRenderer(FOUserAgent userAgent) { + super(userAgent); + Map rendererOptions = getUserAgent().getRendererOptions(); + processOptions(rendererOptions); + this.pageFilter = new DefaultPageFilter(); } /** {@inheritDoc} */ @@ -81,15 +85,6 @@ return MimeConstants.MIME_FOP_PRINT; } - /** {@inheritDoc} */ - public void setUserAgent(FOUserAgent agent) { - super.setUserAgent(agent); - - Map rendererOptions = agent.getRendererOptions(); - processOptions(rendererOptions); - this.pageFilter = new DefaultPageFilter(); - } - private void processOptions(Map rendererOptions) { Object o = rendererOptions.get(PageableRenderer.PAGES_MODE); if (o != null) { Index: src/java/org/apache/fop/render/xml/XMLRenderer.java =================================================================== --- src/java/org/apache/fop/render/xml/XMLRenderer.java (revision 1234850) +++ src/java/org/apache/fop/render/xml/XMLRenderer.java (working copy) @@ -37,7 +37,6 @@ import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; - import org.xml.sax.SAXException; import org.apache.xmlgraphics.util.QName; @@ -75,11 +74,11 @@ import org.apache.fop.area.inline.InlineArea; import org.apache.fop.area.inline.InlineBlockParent; import org.apache.fop.area.inline.InlineParent; +import org.apache.fop.area.inline.InlineViewport; import org.apache.fop.area.inline.Leader; import org.apache.fop.area.inline.Space; import org.apache.fop.area.inline.SpaceArea; import org.apache.fop.area.inline.TextArea; -import org.apache.fop.area.inline.InlineViewport; import org.apache.fop.area.inline.WordArea; import org.apache.fop.fo.Constants; import org.apache.fop.fo.extensions.ExtensionAttachment; @@ -113,20 +112,9 @@ private int pageSequenceIndex; - /** - * Creates a new XML renderer. - */ - public XMLRenderer() { + public XMLRenderer(FOUserAgent userAgent) { + super(userAgent); context = new RendererContext(this, XML_MIME_TYPE); - } - - /** - * {@inheritDoc} - */ - @Override - public void setUserAgent(FOUserAgent agent) { - super.setUserAgent(agent); - XMLHandler xmlHandler = new XMLXMLHandler(); userAgent.getXMLHandlerRegistry().addXMLHandler(xmlHandler); Boolean b = (Boolean)userAgent.getRendererOptions().get("compact-format"); Index: src/java/org/apache/fop/render/xml/XMLRendererMaker.java =================================================================== --- src/java/org/apache/fop/render/xml/XMLRendererMaker.java (revision 1234850) +++ src/java/org/apache/fop/render/xml/XMLRendererMaker.java (working copy) @@ -35,7 +35,7 @@ /**{@inheritDoc} */ public Renderer makeRenderer(FOUserAgent userAgent) { - return new XMLRenderer(); + return new XMLRenderer(userAgent); } /**{@inheritDoc} */ Index: src/java/org/apache/fop/render/xml/AbstractXMLRenderer.java =================================================================== --- src/java/org/apache/fop/render/xml/AbstractXMLRenderer.java (revision 1234850) +++ src/java/org/apache/fop/render/xml/AbstractXMLRenderer.java (working copy) @@ -29,6 +29,15 @@ import javax.xml.transform.sax.TransformerHandler; import javax.xml.transform.stream.StreamResult; +import org.xml.sax.Attributes; +import org.xml.sax.ContentHandler; +import org.xml.sax.SAXException; +import org.xml.sax.ext.LexicalHandler; +import org.xml.sax.helpers.AttributesImpl; + +import org.apache.xmlgraphics.util.QName; + +import org.apache.fop.apps.FOUserAgent; import org.apache.fop.area.BookmarkData; import org.apache.fop.area.OffDocumentExtensionAttachment; import org.apache.fop.area.OffDocumentItem; @@ -36,16 +45,14 @@ import org.apache.fop.fo.extensions.ExtensionAttachment; import org.apache.fop.render.PrintRenderer; import org.apache.fop.render.RendererContext; -import org.apache.xmlgraphics.util.QName; -import org.xml.sax.Attributes; -import org.xml.sax.ContentHandler; -import org.xml.sax.SAXException; -import org.xml.sax.ext.LexicalHandler; -import org.xml.sax.helpers.AttributesImpl; /** Abstract xml renderer base class. */ public abstract class AbstractXMLRenderer extends PrintRenderer { + public AbstractXMLRenderer(FOUserAgent userAgent) { + super(userAgent); + } + /** Main namespace in use. */ public static final String NS = ""; Index: src/java/org/apache/fop/render/java2d/Java2DRenderer.java =================================================================== --- src/java/org/apache/fop/render/java2d/Java2DRenderer.java (revision 1234850) +++ src/java/org/apache/fop/render/java2d/Java2DRenderer.java (working copy) @@ -147,15 +147,13 @@ private GeneralPath currentPath = null; /** Default constructor */ - public Java2DRenderer() { - } + public Java2DRenderer(FOUserAgent userAgent) { + super(userAgent); - /** {@inheritDoc} */ - public void setUserAgent(FOUserAgent foUserAgent) { - super.setUserAgent(foUserAgent); + // MH: necessary? the caller has access to FOUserAgent userAgent.setRendererOverride(this); // for document regeneration - String s = (String)userAgent.getRendererOptions().get(JAVA2D_TRANSPARENT_PAGE_BACKGROUND); + String s = (String) userAgent.getRendererOptions().get(JAVA2D_TRANSPARENT_PAGE_BACKGROUND); if (s != null) { this.transparentPageBackground = "true".equalsIgnoreCase(s); } Index: src/java/org/apache/fop/render/AbstractRenderer.java =================================================================== --- src/java/org/apache/fop/render/AbstractRenderer.java (revision 1234850) +++ src/java/org/apache/fop/render/AbstractRenderer.java (working copy) @@ -61,11 +61,11 @@ import org.apache.fop.area.inline.InlineArea; import org.apache.fop.area.inline.InlineBlockParent; import org.apache.fop.area.inline.InlineParent; +import org.apache.fop.area.inline.InlineViewport; import org.apache.fop.area.inline.Leader; import org.apache.fop.area.inline.Space; import org.apache.fop.area.inline.SpaceArea; import org.apache.fop.area.inline.TextArea; -import org.apache.fop.area.inline.InlineViewport; import org.apache.fop.area.inline.WordArea; import org.apache.fop.fo.Constants; import org.apache.fop.fonts.FontInfo; @@ -116,16 +116,16 @@ /** {@inheritDoc} */ public abstract void setupFontInfo(FontInfo fontInfo) throws FOPException; - /** {@inheritDoc} */ - public void setUserAgent(FOUserAgent agent) { - userAgent = agent; + /** + * + * @param userAgent the user agent that contains configuration details. This cannot be null. + */ + public AbstractRenderer(FOUserAgent userAgent) { + this.userAgent = userAgent; } /** {@inheritDoc} */ public FOUserAgent getUserAgent() { - if (userAgent == null) { - throw new IllegalStateException("FOUserAgent has not been set on Renderer"); - } return userAgent; } Index: src/java/org/apache/fop/render/RendererFactory.java =================================================================== --- src/java/org/apache/fop/render/RendererFactory.java (revision 1234850) +++ src/java/org/apache/fop/render/RendererFactory.java (working copy) @@ -299,7 +299,6 @@ AbstractRendererMaker maker = getRendererMaker(outputFormat); if (maker != null) { Renderer rend = maker.makeRenderer(userAgent); - rend.setUserAgent(userAgent); RendererConfigurator configurator = maker.getConfigurator(userAgent); if (configurator != null) { configurator.configure(rend); @@ -311,8 +310,7 @@ } private Renderer createRendererForDocumentHandler(IFDocumentHandler documentHandler) { - IFRenderer rend = new IFRenderer(); - rend.setUserAgent(documentHandler.getContext().getUserAgent()); + IFRenderer rend = new IFRenderer(documentHandler.getContext().getUserAgent()); rend.setDocumentHandler(documentHandler); return rend; } Index: src/java/org/apache/fop/cli/CommandLineOptions.java =================================================================== --- src/java/org/apache/fop/cli/CommandLineOptions.java (revision 1234850) +++ src/java/org/apache/fop/cli/CommandLineOptions.java (working copy) @@ -203,17 +203,14 @@ System.err.println("Couldn't set system look & feel!"); } - AWTRenderer renderer = new AWTRenderer(true); - renderer.setRenderable(inputHandler); //set before user agent! - renderer.setUserAgent(foUserAgent); + AWTRenderer renderer = new AWTRenderer(foUserAgent, inputHandler, true, true); foUserAgent.setRendererOverride(renderer); } else if (MimeConstants.MIME_FOP_AREA_TREE.equals(outputmode) && mimicRenderer != null) { // render from FO to Intermediate Format Renderer targetRenderer = foUserAgent.getRendererFactory().createRenderer( foUserAgent, mimicRenderer); - XMLRenderer xmlRenderer = new XMLRenderer(); - xmlRenderer.setUserAgent(foUserAgent); + XMLRenderer xmlRenderer = new XMLRenderer(foUserAgent); //Tell the XMLRenderer to mimic the target renderer xmlRenderer.mimicRenderer(targetRenderer); Index: src/sandbox/org/apache/fop/render/svg/SVGRendererMaker.java =================================================================== --- src/sandbox/org/apache/fop/render/svg/SVGRendererMaker.java (revision 1234850) +++ src/sandbox/org/apache/fop/render/svg/SVGRendererMaker.java (working copy) @@ -34,7 +34,7 @@ /** {@inheritDoc} */ public Renderer makeRenderer(FOUserAgent ua) { - return new SVGRenderer(); + return new SVGRenderer(ua); } /** {@inheritDoc} */ Index: src/sandbox/org/apache/fop/render/svg/SVGRenderer.java =================================================================== --- src/sandbox/org/apache/fop/render/svg/SVGRenderer.java (revision 1234850) +++ src/sandbox/org/apache/fop/render/svg/SVGRenderer.java (working copy) @@ -26,19 +26,22 @@ import java.io.OutputStream; import java.io.Writer; +import org.w3c.dom.DOMImplementation; +import org.w3c.dom.Document; + import org.apache.batik.dom.GenericDOMImplementation; import org.apache.batik.svggen.SVGGeneratorContext; import org.apache.batik.svggen.SVGGraphics2D; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + +import org.apache.fop.apps.FOUserAgent; import org.apache.fop.apps.MimeConstants; import org.apache.fop.area.PageViewport; import org.apache.fop.render.bitmap.MultiFileRenderingUtil; import org.apache.fop.render.java2d.Java2DGraphicsState; import org.apache.fop.render.java2d.Java2DRenderer; -import org.w3c.dom.DOMImplementation; -import org.w3c.dom.Document; /** *@@ -67,8 +70,8 @@ /** Helper class for generating multiple files */ private MultiFileRenderingUtil multiFileUtil; - /** Default constructor. */ - public SVGRenderer() { + public SVGRenderer(FOUserAgent userAgent) { + super(userAgent); } /** {@inheritDoc} */ Index: examples/embedding/java/embedding/atxml/ExampleConcat.java =================================================================== --- examples/embedding/java/embedding/atxml/ExampleConcat.java (revision 1234850) +++ examples/embedding/java/embedding/atxml/ExampleConcat.java (working copy) @@ -93,8 +93,7 @@ userAgent, MimeConstants.MIME_PDF); //Create the XMLRenderer to create the area tree XML - XMLRenderer xmlRenderer = new XMLRenderer(); - xmlRenderer.setUserAgent(userAgent); + XMLRenderer xmlRenderer = new XMLRenderer(userAgent); //Tell the XMLRenderer to mimic the target renderer xmlRenderer.mimicRenderer(targetRenderer); Index: examples/embedding/java/embedding/ExampleFO2JPSPrint.java =================================================================== --- examples/embedding/java/embedding/ExampleFO2JPSPrint.java (revision 1234850) +++ examples/embedding/java/embedding/ExampleFO2JPSPrint.java (working copy) @@ -85,8 +85,7 @@ //Set up a custom user agent so we can supply our own renderer instance FOUserAgent userAgent = fopFactory.newFOUserAgent(); - PageableRenderer renderer = new PageableRenderer(); - renderer.setUserAgent(userAgent); + PageableRenderer renderer = new PageableRenderer(userAgent); userAgent.setRendererOverride(renderer); // Construct FOP with desired output format