Glen Mazza [Fri, 13 Aug 2004 00:03:49 +0000 (00:03 +0000)]
1.) Layout initialization logic for fo:table, fo:table-header, and fo:table-footer
moved from AddLMVisitor to fo.Table.
2.) Layout logic for fo:external-graphic moved from fo.ExternalGraphic to
layoutmgr.ExternalGraphicLayoutManager.
3.) Partial implementation of validateChildNode() for fo:footnote.
4.) fox:destination commented out from images.fo sample until purpose, content
model better defined. Also needs a Maker class. (Does not appear to work
in either maintenance or HEAD.)
Simon Pepping [Tue, 10 Aug 2004 19:30:33 +0000 (19:30 +0000)]
This change allows users to set the level of the javadocs task to
private, package or public. It also allows users to set a user
hyphenation directory from which hyphenation files are compiled and
added to the hyph directory in the build.
PR:
Obtained from:
Submitted by:
Reviewed by:
Glen Mazza [Sun, 8 Aug 2004 18:39:26 +0000 (18:39 +0000)]
Implemented getNameId() which returns the Constants enumeration ID
for the FO. For future array work or to reduce the amount of string comparisons being done.
Glen Mazza [Fri, 6 Aug 2004 15:41:12 +0000 (15:41 +0000)]
PR:
Obtained from:
Submitted by:
Reviewed by:
Moved three FO's from AddLMVisitor->FObj.AddLayoutManager(); will eventually need to create additional LM's for at least two of them to remove the Area-specific code these FO's now have.
Glen Mazza [Fri, 6 Aug 2004 04:22:18 +0000 (04:22 +0000)]
PR:
Obtained from:
Submitted by:
Reviewed by:
1.) Continued conversion/deprecation of AddLMVisitor. About 16 FO's remaining.
2.) Created a *temporary* LMVisited interface to mark those FO's still
needing conversion. This will be dropped once the process is complete.
Glen Mazza [Wed, 4 Aug 2004 22:21:04 +0000 (22:21 +0000)]
PR:
Obtained from:
Submitted by:
Reviewed by:
Start of conversion of AddLMVisitor to FObj.AddLayoutManager(): removed
acceptVisitor() methods from FO's that don't need LM's
(e.g., those FO's not yet implemented or those that don't return areas anyway).
Glen Mazza [Sun, 1 Aug 2004 15:26:53 +0000 (15:26 +0000)]
PR:
Obtained from:
Submitted by:
Reviewed by:
Consolidated RegionBASE into Region and RegionBA/RegionSE (RegionBASE was
supporting only one unique property.)
Glen Mazza [Sun, 1 Aug 2004 04:20:50 +0000 (04:20 +0000)]
1.) Moved from FOPException to SAXParseException for addProperties()
2.) FONode: locator object added, its three components (file, line, col) removed
3.) FONode: new attributeError() method created for attribute problems in input FO.
4.) Removed some setup() methods in the FO's, placed them in addProperties() instead.
Created a "isOutOfLineFODescendant" member variable to FObj, needed for
input FOValidation. As defined in Sect. 6.2 of the spec, certain child FO's
are not valid if the parent FO is a descendant of an out of line FO (sect. 6.10)
Removed the non-File constructors from the InputHandler subclasses in favor
of JAXP (for embedded use), and standardized FOFileHandler to use a
StreamSource (like XSLTInputHandler). Currently, command Line usage
works only with files, but We may need to expand the constructors here
somewhat again should we provide other input options from the command line.
other options
Combined the apps.Driver class into apps.Fop. (195 LOC total.) Primary
benefit is to make Fop self-documenting in external code, also none of the
API ideas called for retention of the Driver class (even if there were
different ideas for its replacement).
Let's try this for a few weeks, if it confuses people too much (or when
the API starts to grow again) we can bring back Driver, possibly under
a different name, apps.FopProcess, perhaps.
See also:
http://marc.theaimsgroup.com/?l=fop-dev&m=108947697611032&w=2
http://marc.theaimsgroup.com/?l=fop-dev&m=108966015504506&w=2
http://marc.theaimsgroup.com/?l=fop-dev&m=108942673103344&w=2
http://marc.theaimsgroup.com/?l=fop-dev&m=108958756030147&w=2
1.) Moved the SAXParser-creating method from FOFileHandler to CommandLineOptions,
the latter being the class directly using it.
2.) Decoupled the SVG classes from apps.FOFileHandler, the SVG classes for some reason
want a string containing a name of a SAXParser. We'll need to look in the future for
the actual need for this--normally error messages are done by the caller, not
the callee. It would appear that Batik can generate a SAXParser name by default,
and use that when not explicitly overridden by the caller.
1.) Moved exclusively to Simon's DefaultHandler object for both Transformer
and SAXParser usage. DefaultHandler implements the ContentHandler interface
so it can be used where the latter was previously used, also it provides more
functionality. [1]
2.) Updated the examples and internal code accordingly.
3.) Renamed ExampleFO2PDFUsingSAX to ...Parser to avoid confusion (both use
SAX.)
1.) Driver constructor modified to require RenderType, and setter functions
for RenderType and FOUserAgent removed, to allow for better checking of
a valid Driver object at time of construction. (Also, will reduce need to
validate Driver object should it be a parameter to a method.)
2.) Added validity checking of renderType to FOTreeBuilder as well, in
effect decoupling Driver from FOTreeBuilder (the latter can work on its own
now.)
3.) Updated the various examples and the documentation to indicate the
new API.
Removed the Driver(OutputStream) convenience constructor as not particularly
helpful, and a can of worms given all the possible permutations of constructors
that could be created.
1. New constructor for Driver created, takes FOUserAgent constructor.
Used for both CLI and AWTRenderer. (Thanks to Simon Pepping)
2. Removed Driver(AWTRenderer) constructor.
3. OutputStream validation moved to FOTreeBuilder.
4. Driver.reset() removed, not currently serving a purpose.
Moved user-defined ElementMapping initialization from Driver to FOUserAgent.
Moved only "string" method, the version we use internally--probably sufficient
for others' work as well. (Note: an additional unused FOUserAgent object will
be created in driver during command-line use--cp. its no-param constructor vs.
setUserAgent() call in apps.Fop; this will need to be ironed out at some time.)
*Temporary* commit showing how this process works via SAXParserFactory;
including just for future reference should we get a question on this class
or wish to document this method on our web pages in the future.
1.) Combined the AreaTree and FOTreeHandler into a new AreaTreeHandler
object. FOTreeHandler was primarily acting as an AreaTreeHandler,
and AreaTree had a 1-to-1 relationship with it. Comments most welcome.
2.) Created convenience methods in FOInputHandler for those subclasses
which do not handle certain signals/events called from the formatting
objects (i.e., AreaTreeHandler).
Simon Pepping [Fri, 9 Jul 2004 17:27:12 +0000 (17:27 +0000)]
Implementing user configuration file.
Adding debug logging for user configuration, user PDF filters and user
fonts.
Adding reporting of mime type to renderers.
PR:
Obtained from:
Submitted by:
Reviewed by:
Removed DocumentReader/DocumentInputSource from the API in favor of the
JAXP identity transformation for DOM Tree Handling. JAXP seems to be
the right way for us to go for 1.0 for DOM documents, and I think we can
make the change now, with few people using HEAD in production.
Still, we'll listen to the user email list on this change as a judge
of whether these classes need to return.
1.) Moved the Renderer creation further down from AreaTree to RenderPagesModel (subclass of AreaTreeModel). Still have the issue of the four-param constructor a bit messy, also some of the exceptions I have to declare to be thrown may not be necessary.
2.) Removed encapsulation-breaking methods from AreaTree; dropped the AreaTreeBuilder class as it wasn't conformant with our API and required too many objects to expose internal functionality.
3.) Validity checking added for fo:title, however still won't work as #PCDATA needs <fo:blocks> around it within FOP, but the Recommendation bans those for fo:title.
4.) isInlineItem() added to FObj, as a quick check for the %inline; parameter entity as defined in spec.
I am hoping this will streamline the code more.
Main drawback I can see is that the AreaTree constructor
gets a bit ugly--from one parameter, the Renderer,
to four (the items needed to create a Renderer.) Perhaps
we can have AreaTree construct the FontInfo object in the
future, dropping us to a three-parameter constructor.
Glen Mazza [Sun, 27 Jun 2004 13:29:32 +0000 (13:29 +0000)]
1.) Moved Renderer instantiation from Driver to FOTreeHandler, as it is the only
FOInputHandler subclass concerned with Renderer creation. (MIFHandler and RTFHandler
are hardcoded to a particular renderer-type).
2.) Added a RendererOverride member variable in FOUserAgent, for use by
AWTRenderer as well as external (i.e. user-defined) renderers. FOTreeHandler coded
to reference it.
3.) Flow validity checking which was added yesterday temporarily commented-out;
I misread the content model from the spec (I will have to account for fo:markers
as initial children.)
Glen Mazza [Sat, 26 Jun 2004 19:37:13 +0000 (19:37 +0000)]
1. Output constant types (RENDER_PDF, RENDER_PS, etc.) made common between
CommandLineOptions and Driver, and factored into fo.Constants interface.
2. New Driver(AWTRenderer renderer) constructor added in apps.Driver for
the AWTRenderer (which does reloading, unique among the output types.) Note
reloading currently doesn't work--AWTRenderer not yet functional.
3. Driver.hasData() method removed from API--a search on when it was implemented
dates it to 2001, when reset() was coded. Unsure of its need, and so
removed until we have user requests for it.
4. Renderers abstracted away from API in favor of just calling .setRenderer(int Rendertype),
and configuring user-configurable options in FOUserAgent.
5. Driver.setRenderer(String <renderer class name>) also dropped. If external user
need for it, can be re-implemented fairly easily via a "renderer override" string in FOUserAgent, for which FOTreeHandler can read and use instead.
6. Validity checking added to fo:flow, and convenience functions defining the "%block;"
parameter entity and neutral containers as defined in 6.2 of spec [1] added to FObj.
Glen Mazza [Fri, 25 Jun 2004 23:35:00 +0000 (23:35 +0000)]
1.) Moved the CommandLineOptions' InputHandler object into FOUserAgent, allowing
for a no-parameter constructor for AWTRenderer (like the other renderers). (Code is
not yet ideal in AWTRenderer, but will do the task.)
2.) AWT renderer handling now more similar to the other renderers
(simplifications in Driver, Fop).
3.) Driver.getRenderer() removed from API. (Renderer configuration now mostly
done through FOUserAgent, and setup of renderer prior to calling setRenderer().)
4.) Validity checking added to region-after, -start, -end, and -before.
Glen Mazza [Wed, 23 Jun 2004 00:25:27 +0000 (00:25 +0000)]
1.) Moving renderer-specific customization variables (producer, creator, create date) to FOUserAgent, those renderers which can work with these values can read them from passed-in FOUserAgent instance.
2.) Version.getVersion() moved to Fop.getVersion().
Glen Mazza [Sun, 20 Jun 2004 12:35:17 +0000 (12:35 +0000)]
1.) Removed the get/setLogger methods from Driver, obsolete with Commons-Logging.
2.) Updated examples and documentation.
3.) Added a -v option to show version of FOP being used.
Glen Mazza [Sun, 20 Jun 2004 07:46:13 +0000 (07:46 +0000)]
1. Created own logger for AbstractRenderer, removed logger setter from Renderer interface.
2. Validity checking for fo:repeatable-page-master-alternatives.
Glen Mazza [Fri, 18 Jun 2004 04:13:54 +0000 (04:13 +0000)]
1. FOTreeBuilder modified to handle more of the renderer initialization.
2. AreaTree now takes a Renderer as a constructor, handles RenderPagesModel initialization.
3. FontInfo object moved from Driver/Document to fo.FOInputHandler.
4. getFontState/getFontInfo now take a fontInfo object directly instead of a apps.Document.
5. validity checking added to PageSequence.java
Glen Mazza [Thu, 17 Jun 2004 07:02:13 +0000 (07:02 +0000)]
1. Child element validity checking added for fo:page-sequence-master.
2. AreaTree object moved from Document/Driver to FOTreeHandler, as it is specific to this subclass of FOInputHandler only (RTFHandler and MIFHandler don't use area trees).
Glen Mazza [Wed, 16 Jun 2004 23:40:58 +0000 (23:40 +0000)]
1. Valid node checking for LayoutMasterSet done.
2. Additional error message provided for missing required child elements of a node.
3. Removal of elementName from property list; redundant (retrievable via getFObj.getName()). Adding getName() to FObj so the element so fObj.getName() works.
(Vielen Dank, Simon!)
4. Moving locator information from FObj to FONode so non-XSL NS elements will also have this information.
Glen Mazza [Wed, 16 Jun 2004 00:27:27 +0000 (00:27 +0000)]
1.) Check for fo:color-profile made to ensure no child elements during processing.
2.) Error messages for bad fo: files now give locator (line/col. #) information.
3.) Parent of the fo:root (FO Tree) "lowered" from apps.Document to fo.FOInputHandler;
IDReferences moved from former to latter.
Glen Mazza [Sun, 13 Jun 2004 19:58:58 +0000 (19:58 +0000)]
1.) App now returns an error if no page-sequence declared within fo:root.
2.) Standardized node names via a new static FONode.getNodeName() method
3.) Declarations object now tied to Root object, will no longer return NPE
if empty (bug fixed).
4.) AreaTreeControl removed in favor of direct connection between Document
and the Area Tree.
Glen Mazza [Sat, 12 Jun 2004 23:18:53 +0000 (23:18 +0000)]
Created a validateChildNode() in FONode for better syntax checking in the
fo document: e.g., preventing two fo:layout-master-set's from occurring within
an fo:root, requiring fo:page-sequence to follow the fo:l-m-s
(and fo:declarations, if present). Currently just validates fo:root's children--validateChildNode() needs to be overridden in other FObj subclasses
to do the same for other formatting objects. Comments most welcome.