From ce41ee5eaf87be28d99fcf5b6f1c6e7ce38ba741 Mon Sep 17 00:00:00 2001 From: "Andreas L. Delmelle" Date: Wed, 28 Sep 2005 19:37:26 +0000 Subject: Added UA initialization from user-config git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@292280 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/fop/apps/FOUserAgent.java | 54 +++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/src/java/org/apache/fop/apps/FOUserAgent.java b/src/java/org/apache/fop/apps/FOUserAgent.java index 7a620deb5..6c278428a 100644 --- a/src/java/org/apache/fop/apps/FOUserAgent.java +++ b/src/java/org/apache/fop/apps/FOUserAgent.java @@ -20,6 +20,9 @@ package org.apache.fop.apps; // Java import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.net.MalformedURLException; import java.util.Date; import java.util.List; import java.util.Map; @@ -325,6 +328,12 @@ public class FOUserAgent { */ public void setUserConfig(Configuration userConfig) { this.userConfig = userConfig; + try { + initUserConfig(); + } catch (ConfigurationException cfge) { + log.error("Error initializing User Agent configuration: " + + cfge.getMessage()); + } } /** @@ -334,6 +343,51 @@ public class FOUserAgent { public Configuration getUserConfig() { return userConfig; } + + /** + * Initializes user agent settings from the user configuration + * file, if present: baseURL, resolution, default page size,... + * + * @throws ConfigurationException when there is an entry that + * misses the required attribute + */ + public void initUserConfig() throws ConfigurationException { + log.info("Initializing User Agent Configuration"); + Configuration cfgUserAgent = userConfig.getChild("userAgent"); + if (cfgUserAgent.getChild("base", false) != null) { + try { + String cfgBaseDir = cfgUserAgent.getChild("base") + .getAttribute("url"); + File dir = new File(cfgBaseDir); + if (dir.isDirectory()) { + cfgBaseDir = "file://" + dir.getCanonicalPath() + + System.getProperty("file.separator"); + } + URL cfgBaseURL = new URL(cfgBaseDir); + setBaseURL(cfgBaseDir); + } catch (MalformedURLException mue) { + log.error("Base URL in user config is malformed!"); + } catch (IOException ioe) { + log.error("Error converting relative base directory to absolute URL."); + } + log.info("Base URL set to: " + baseURL); + } + if (cfgUserAgent.getChild("pixelToMillimeter", false) != null) { + this.px2mm = cfgUserAgent.getChild("pixelToMillimeter") + .getAttributeAsFloat("value", DEFAULT_PX2MM); + log.info("pixelToMillimeter set to: " + px2mm); + } + if (cfgUserAgent.getChild("pageHeight", false) != null) { + setPageHeight(cfgUserAgent.getChild("pageHeight") + .getAttribute("value")); + log.info("Default page-height set to: " + pageHeight); + } + if (cfgUserAgent.getChild("pageWidth", false) != null) { + setPageWidth(cfgUserAgent.getChild("pageWidth") + .getAttribute("value")); + log.info("Default page-width set to: " + pageWidth); + } + } /** * Returns the configuration subtree for a specific renderer. -- cgit v1.2.3