Thomas, Gretchen:
Some clarifications about the architecture and functionality of the chart engine:
Chart Engine Process Flow:
XML --> DOM Model (ChartElement) --> Normalized, Validated DOM Model --> Renderer
The JFreeChart Renderer Process Flow:
Flat List of Bean Properties ---> Introspected Bean Rendering (Physical Chart Rendered)
Assumptions made:
We will not expect the chart engine to round trip a chart definition. The engine will accept changes from a DOM model only, thus the DOM model remains the one version of truth source for the chart definition. IF we need generate a DOM from a realized chart object, then that may be handled as an output handler.
Next Steps in POC:
1. XML Parser from XML to ChartElement DOM - (example: reporting classic engine - SQLDataFactoryModule) ; this step should result in a non-resolved, non-validated chartElement DOM tree.
2. Simple Style Parsing - translate all inline styles into real CSS classes using LIBCSS; includes all external style sheet references, including the defaults.
3. Generate computed set: Resolve inherited styles, validate styles to DOM, and compute absolute values from relative. Simplest cases only first.
4. Build the display model - flesh out the DOM model to a completed and validated state.
5. Build the renderer.