// FOP
+import org.apache.fop.apps.FOUserAgent;
+
import org.apache.fop.area.AreaTree;
import org.apache.fop.area.AreaTreeModel;
// SAX
import org.xml.sax.SAXException;
+// Avalon
+import org.apache.avalon.framework.logger.Logger;
+
/**
* Class storing information for the FOP Document being processed, and managing
* the processing of it.
return foInputHandler;
}
+ /**
+ * @return the Logger to be used for processing this Document
+ */
+ public Logger getLogger() {
+ return getDriver().getLogger();
+ }
+
+ /**
+ * @return the FOUserAgent used for processing this document
+ */
+ public FOUserAgent getUserAgent() {
+ return getDriver().getUserAgent();
+ }
+
}
userAgent = agent;
}
- private FOUserAgent getUserAgent() {
+ protected FOUserAgent getUserAgent() {
if (userAgent == null) {
userAgent = new FOUserAgent();
userAgent.enableLogging(getLogger());
*
*/
public abstract class FONode {
-
- /** FO User Agent for this node (for logger etc.)*/
- protected FOUserAgent userAgent;
/** Parent FO node */
protected FONode parent;
/** Name of the node */
* @return the logger
*/
public Logger getLogger() {
- return userAgent.getLogger();
- }
-
- /**
- * Sets the user agent for the node.
- * @param ua the user agent
- */
- public void setUserAgent(FOUserAgent ua) {
- userAgent = ua;
+ return getFOTreeControl().getLogger();
}
/**
* @return FOUserAgent
*/
public FOUserAgent getUserAgent() {
- return userAgent;
+ return getFOTreeControl().getUserAgent();
}
/**
try {
fobj = fobjMaker.make(currentFObj);
fobj.setName(localName);
- // set the user agent for resolving user agent values
- fobj.setUserAgent(userAgent);
- // set the structure handler so that appropriate
- // elements can signal structure events
-
fobj.handleAttrs(attlist);
} catch (FOPException e) {
throw new SAXException(e);
import java.util.Set;
// FOP
+import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.fo.extensions.Bookmarks;
import org.apache.fop.fonts.FontMetrics;
+// Avalon
+import org.apache.avalon.framework.logger.Logger;
+
/**
* An interface for classes that are conceptually the parent class of the
* fo.pagination.Root object. The purpose of the interface is to maintain
* @return the FOInputHandler for parsing this FO Tree
*/
FOInputHandler getFOInputHandler();
+
+ /**
+ * @return the Logger being used with this FO Tree
+ */
+ Logger getLogger();
+
+ /**
+ * @return the FOUserAgent used for processing this FO Tree
+ */
+ FOUserAgent getUserAgent();
+
}
}
FOText ft = new FOText(data, start, length, textInfo, this);
- ft.setUserAgent(userAgent);
getFOTreeControl().getFOInputHandler().characters(ft.ca, ft.start, ft.length);
addChild(ft);
}
/* if width and height are zero, get the bounds of the content. */
try {
- String baseDir = userAgent.getBaseURL();
+ String baseDir = getUserAgent().getBaseURL();
if (baseDir != null) {
((SVGOMDocument)doc).setURLObject(new URL(baseDir));
}
}
Element e = ((SVGDocument)doc).getRootElement();
- final float ptmm = userAgent.getPixelUnitToMillimeter();
+ final float ptmm = getUserAgent().getPixelUnitToMillimeter();
// temporary svg context
SVGContext dc = new SVGContext() {
public float getPixelToMM() {
SVGDOMImplementation.SVG_NAMESPACE_URI);
//}
int fontSize = 12;
- Point2D p2d = getSize(fontSize, svgRoot, userAgent.getPixelUnitToMillimeter());
+ Point2D p2d = getSize(fontSize, svgRoot, getUserAgent().getPixelUnitToMillimeter());
((SVGOMElement)e).setSVGContext(null);
return p2d;
int scaling = properties.get("scaling").getEnum();
if ((scaling == Scaling.UNIFORM) || (cwidth == -1) || cheight == -1) {
ImageFactory fact = ImageFactory.getInstance();
- fopimage = fact.getImage(url, userAgent);
+ fopimage = fact.getImage(url, getUserAgent());
if (fopimage == null) {
// error
url = null;
return;
}
// load dimensions
- if (!fopimage.load(FopImage.DIMENSIONS, userAgent)) {
+ if (!fopimage.load(FopImage.DIMENSIONS, getUserAgent())) {
// error
url = null;
return;
if (node.getChildren() != null) {
InlineStackingLayoutManager lm;
lm = new InlineStackingLayoutManager();
+ Document doc = (Document)node.getFOTreeControl();
lm.setUserAgent(node.getUserAgent());
lm.setFObj(node);
lm.setLMiter(new LMiter(node.getChildren()));