I like Joerg's idea of a Global Context object. It seems to have a wider scope than FOUserAgent. An FOUserAgent object could be part of it.
From the maintenance code's configuration it would need to have baseDir, fontBaseDir, hyphenation-dir and strokeSVGText. Font information per renderer has already been implemented; only the pdf renderer really uses it. PDF filter lists have also been implemented in the pdf renderer.
Sounds good to me. While we're on the subject of '*Dir' configuration, now may be a good time to rename the hyphenation-dir object to something that is consistent with the other directory-related items:
hyphenationBaseDir
We could also shorten the name to something like 'hyphBaseDir', but I don't think it's worth it. Better to have clear names (and naming conventions).
On Sun, May 09, 2004 at 11:52:31AM -0400, Glen Mazza wrote:<snip what="FoUserAgent stuff">
Two more observations:
1.) What does the team think of placing all the FOUserAgent information into the abstract apps.InputHandler class by either (a) full incorporation (i.e., getting rid of FOUserAgent and moving everything in it to InputHandler), or (b) including an FOUserAgent instance variable in apps.InputHandler, or (c) having InputHandler extend FOUserAgent?
Then, we would just pass InputHandler around instead of FOUserAgent. I mention this because InputHandler includes the file name information already, that is sometimes good to have at various parts of the pipeline (for example, error messages or AWTRenderer, whose refresh capability requires knowing the input source file names.)
I'm not sure of the value of this idea, but am just bringing it up for others to comment.
I would prefer input file information in the Global Context object. InputHandler has more information than needed elsewhere in the process.
It's not clear to me how these changes would affect things, but I would hope the following remains true:
If FOP is 'compartmentalized' (modularized, etc.) to enable embedded or external 'non-FOP' usage, I would hope that any of the changes to FOUserAgent being discussed, do not impact integration via external usage (be it, cocoon, forrest or some other un-dreamed-of tool). In other words, my hope is that these types of changes to FOP make it even more desirable as a product to 'build on' than it already is.
Web Maestro Clay