Package Name | Comment |
com.nwalsh.saxon |
Norman Walsh's Saxon Extensions Package
Norman Walsh's Saxon Extensions Package for Saxon 6.*
This package implements Saxon extensions for XSLT.
Copyright (C) 2000 Norman Walsh
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
Except as contained in this notice, the names of individuals
credited with contribution to this software shall not be used in
advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from the
individuals in question.
Anything derived from this Software that is publically
distributed will be identified with a different name and the
version strings in any derived Software will be changed so that no
possibility of confusion between the derived package and this
Software will exist.
Warranty
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
|
com.nwalsh.xalan |
Norman Walsh's Xalan Extensions Package
Norman Walsh's Xalan Extensions Package for Xalan2
This package implements Xalan extensions for XSLT.
Copyright (C) 2000 Norman Walsh
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
Except as contained in this notice, the names of individuals
credited with contribution to this software shall not be used in
advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from the
individuals in question.
Anything derived from this Software that is publically
distributed will be identified with a different name and the
version strings in any derived Software will be changed so that no
possibility of confusion between the derived package and this
Software will exist.
Warranty
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
|
com.pentaho.messages | |
com.pentaho.repository.dbbased.solution | |
com.pentaho.repository.subscribe | |
com.pentaho.security | |
com.pentaho.security.acls | |
com.pentaho.security.acls.voter | |
com.pentaho.security.jdbc | |
com.pentaho.security.ldap | |
com.pentaho.security.ldap.search | |
com.pentaho.security.ldap.transform | |
com.pentaho.security.memory | |
com.pentaho.security.utils | |
org.hibernate.connection | |
org.jfree.report |
Main classes in the JFreeReport class library.
Some rules when working with the report definition objects:
- Functions cannot be added to the report once the report generation has
started.
- Do not modify the report structure after the report
generation is started, unless you know exactly what you are doing.
- It is safe to modify the report definition before the report is
started.
- Once the report processing has started, the report from the report
processor must not be reused for other purposes.
Groups
A group is a set of database rows, where the contents of the group
fields are equal for all rows.
Lets look at the following table:
Car | Color | Price |
Toyota | blue | 10.000 |
Toyota | blue | 20.000 |
Toyota | red | 15.000 |
Lexus | blue | 25.000 |
Lexus | yellow | 15.000 |
BMW | yellow | 40.000 |
BMW | blue | 35.000 |
BMW | green | 5.000 |
Groups are always defined on sorted tables.
A group is defined by selecting one or more rows, which should
form the group. A group instance will contain all rows from the
beginning of the group until one of the group fields changes.
Lets select the row car for our group:
Selecting that row as group argument will result in 3 group instances.
The first group instance will contain the first 3 rows (as the contents
of these rows are equal).
The next instance will contain all rows of the "Lexus" car and the
last group contains all rows from the "BMW" rows.
If a group is defined by more than one field, then the group will end,
if one of the group member fields changes.
Lets define a group which consists of "Car" and "Color".
The first instance of the group will contain the first 2 rows (Toyota,blue).
Then the value in the column "Color" changes, so a new group
instance is started. This new group contains a single row, as the
column "Car" in the next row will contain a different value.
The next two group instances are "Lexus, blue" and "Lexus, yellow", both
group instances contain 1 row, as the color changes after 1 row.
The next row starts a new group, as the column "Car" contains a different
value (BWM instead of Lexus). It doesn't matter, that the color is still
equal, to end a group instance, it is sufficient that one column value
changed.
|
org.jfree.report.data | |
org.jfree.report.elementfactory |
Factory classes which make creating bands and elements more easier.
These factories are Java-Beans, so it is easy to use them in graphical
editors.
|
org.jfree.report.event |
The report events in this package is used to inform the report's functions of the current state of the
report.
The typical event sequence for a report
- PageStarted
- ReportStarted
- GroupStarted*
- ItemsStarted
- ItemsAdvanced*
- ItemsFinished
- GroupFinished
- ReportFinished
- PageFinished
|
org.jfree.report.expressions | |
org.jfree.report.expressions.formula.sys | |
org.jfree.report.expressions.sys | |
org.jfree.report.filter |
Support for the creation of 'filter chains' used to transform data objects into
other forms for presentation on reports.
Basic flow of data in JFreeReport
Three interfaces create the abstract way of the dataflow in JFreeReport.
DataSource
By default all data used in the report's elements is read from DataSource
implementations. DataSource defines a single function called getValue() which
returns the current value of the datasource.
DataSources are stateless, and implementations should not maintain a state of the
process of querying data. It is not guaranteed that DataSources are in a particular
order.
If you need to maintain a state or get informed of events, you should implement a function
instead of using the DataSource interface.
DataTarget
A DataTarget is a container for a DataSource. A DataTarget queries the DataSource when
it needs new data. All elements of the report implement the DataTarget interface and query
its assigned DataSource whenever they need to print the data.
DataTargets should not rely on the data type of the data returned by the DataSource. If
they cannot handle the data returned by the DataSource, DataTargets should perform a controled
way of errorhandling instead of just throwing exceptions.
Some DataSources can return NullValues, so DataTargets will have to handle this case correctly.
DataFilter
A DataFilter is the conjunction of DataSource and DataTarget. If a DataFilter is queried to
return a value, the request if forwareded to the assigned DataSource of the filter. The returned
value is then processed and the result is returned.
FormatFilter and FormatParser
FormatFilter and FormatParsers are special implementations of the filter interface.
Both of them are using an implementation of java.text.Format to perform parsing
and formatting.
Commonly used implementation are the SimpleDateFormat to format and parse java.util.Date
objects and the DecimalFormat to parse and format Number instances.
A FormatFilter implementation will try to create a string representation of an object using
the parse method of its assigned java.text.Format object. It is
guaranteed that a FormatFilter will return a default not null String in case that
getValue() returns invalid values. This default string is defined by setNullString (String).
A FormatParser implementation will try to parse a String read from its DataSource into an
object. The actual work of parsing is delegated to the java.text.Format s
parse method. If the string was null or invalid, and parsing was unable to create
an object, a predefined value can be returned instead of null .
Common use cases of Filters
- label
The label prints predefined text in the report and is mostly used to name fields and columns
The label uses a StaticDataSource to contain its datavalue. This DataSource is
contained in the default StringFilter of org.jfree.report.TextElement .
The TextElements StringFilter will convert the static value into a string before it gets
printed in the report.
- number-field
The number field reads its value from the reports datasource and formats the value using a
decimal format, before the string representation is printed.
The number-field uses a ReportDataSource to obtain values from the reports
datamodel. These values are fed into a NumberFormatFilter, where they get formated using the
java.text.DecimalFormat , resulting in a string. The TextElement will check the
returned value, as this is a string, nothing is done and the string is printed.
In case the NumberFormat failed to format the value read from the source, it would return
a null value to the TextElement to be printed. Now the TextElement's StringFilter
will check the value, and return the predefined NullValue-String instead of null .
- date-function
The date function field queries the results of a function, and formats the function's return
value into a string. The contents of this string can be defined using a format pattern as
defined in java.text.SimpleDateFormat .
The date-function uses a FunctionDataSource to obtain values from the reports
function collection. These values are fed into a SimpleDateFormatFilter, where they get formated
using the java.text.SimpleDateFormat , resulting in a string. The TextElement will
check the returned value, as this is a string, nothing is done and the string is printed.
In case the DateFormat failed to format the value read from the source, it would return
a null value to the TextElement to be printed. Now the TextElement's StringFilter
will check the value, and return the predefined NullValue-String instead of null .
These examples should give an idea what can be done with the filters. As filters can contain
other filters, you are free to create any combination and put them into the elements.
DataRowConnectable
Elements are connected to the Report's DataSources using a DataRow as connector. The DataRow unifies
the access to functions, expressions and the tablemodel. DataSources that need to access one of these
sources should use the DataRowDataSource as primary datasource. The specialized sources for accessing
Functions and the Reports TableModel should not be used.
|
org.jfree.report.filter.templates |
Some predefined filter templates. Templates describe common use cases for
filters to ease up the composition of report elements.
The template implementation provide a simple, bean like blackbox interface
to the used DataSources and DataFilters and their properties.
|
org.jfree.report.flow | |
org.jfree.report.flow.flowing | |
org.jfree.report.flow.layoutprocessor | |
org.jfree.report.flow.paginating | |
org.jfree.report.flow.raw | |
org.jfree.report.flow.streaming | |
org.jfree.report.function |
The function package contains statefull functions and stateless expression for
JFreeReport.
The following lines apply to both functions and expressions.
JFreeReport supports 2 kinds of userdefined calculations: Functions are statefull
calculations, when the report proceedes they change their state, they sum up, calculate
averages, count etc. Statefull means in that case, given you feed the same event
multiple times into the function,you are not guaranteed to get the same result.
Expressions in contrast do not maintain a state, they calculate a value or change
the report-elements depending on the current Event feed to them. If you feed the
same Event into the Expression multiple times, you will always get the same result.
Common to both variants is: Data is fed into the function/expression by using a
DataRow object. This object provides the (among others) these methods
Object get(String name);
Object get(int columnName);
to read the values of a function, expression, a column from the tablemodel or a
ReportProperty.
Expressions are simple and easily explained: Expression have the method
Object getValue() which is called when the expression is queried.
All expression have to override this method to perform the calculation and to return
the value.
Functions are more complex:
Functions have several notification methods, where the system informs the function
that a new event is processed.
public void pageStarted (ReportEvent event);
public void reportStarted (ReportEvent event);
public void groupStarted (ReportEvent event);
public void itemsStarted (ReportEvent event);
public void itemsAdvanced (ReportEvent event);
public void itemsFinished (ReportEvent event);
public void groupFinished (ReportEvent event);
public void reportFinished (ReportEvent event);
public void pageFinished (ReportEvent event);
By using the Event-object, you have access to the ReportState. The state can be
used for getting the current group, current item and for gaining access to the
dataRow. In case you want to manipulate the ReportElements, you also have access
to the JFreeReport object.
Functions live in an own environment, separated from the outside world. Changing
the original JFreeReport object does not affect the inner JFreeReport-Object. You
are also unable to add new Functions or expressions to the report from inside, so
all functions and expression have to be set before the report processing has begun.
All Functions have to be cloneable. It is not guaranteed that the report is processed
in an linear order, but it is guaranteed that a single instance of a function does
pass a reportstate only once.
That means: When processing the report, the system clones the functions on certain
save-points (for instance whenever a page is finished). This saved copy can later
be used to restart the report processing on that saved point. The copy-state made
will never return to a previous save point, but it can (and certainly will occur)
that this copy is used to process the report from that saved point on.
So when saving a state after page 2, it will never happen, that this page-2-copy gets
used to process page 2 a second time, but it could happen that copies of this
page-2-state process the page 3 again and again.
The best way to avoid cloning problems is to use Unmodifiable objects or primitive
datatypes when storing a state. Using java.lang.String, one of the java.lang.Number
implementers or any other unmodifiable object type is always save. If you use complex
objects, lists or hashtables and you get weird results, try to implement a
deep-object-copy in the clone() method of the function for these objects.
Using the functions
The function implementation is loaded via its default constructor by the report
parser, all function implementations which should be used from within the
xml-definitions must define a public default constructor.
The functions implementation is defined by specifiying the "class" attribute of the
"function" tag and is loaded by using the default class loader. Your function
implementation must be in the classloaders classpath.
As with every function, a single function can return one value, something
mathematicans express like y = f(x) where x is the data from your report processing.
A function is called several times, for every state change (whenever the report
advances) one of the ReportListener methods are called (reportStarted, groupStarted
etc). Expressions do not receive events, they just perform their computations based
on the current state.
The functions value is returned by the "getValue()" function. You can return any
Object, but make sure, that this object does not get modified anymore after it was
returned to the caller. (A simple way to obey to this rule is to create a new object
whenever the computed object changes).
Functions may reuse results from other functions by using and querying the DataRow
object supplied in the report state or the function.
The order of the functions and the order for receiving events is undefined for
functions of the same dependency level. So if you define a function which reads
values from an other function, it is wise to define the dependencies for these
functions.
Defining dependencies is easy: A function with an higher dependency is called
before any function with a lower dependency. By default all user functions have
the dependency of "0", the lowest possible level. The dependency is defined by
specifying the "deplevel" attribute of the function or expression tag.
When using the API, the dependency level is read by "getDependencyLevel()" and can
be set with "setDependencyLevel(int)".
For the example above, the caller function would have the dependency level of '0'
and the called function the level of '1' or higher.
|
org.jfree.report.function.bool | |
org.jfree.report.function.date | |
org.jfree.report.function.formula | |
org.jfree.report.function.numeric | |
org.jfree.report.function.strings | |
org.jfree.report.function.sys | |
org.jfree.report.i18n | |
org.jfree.report.layout |
Banded layout management. BandLayoutManagers perform the layouting task for
within a band for all Elements and Bands contained in the Band. The concept is
shamelessly stolen from AWT, as it seems to produce better (and more flexible)
results than trying to hardcode an algorithm.
BandLayoutManager should be defined for bands by using the StyleKey
BandStyleSheet.LAYOUTMANAGER . The defined Layoutmanager are only
usefull for PageableReportProcessors or similiar targets, where bands are mapped
into a static coordinate space.
|
org.jfree.report.layout.model | |
org.jfree.report.layout.model.context | |
org.jfree.report.layout.output | |
org.jfree.report.layout.process | |
org.jfree.report.layout.process.alignment | |
org.jfree.report.layout.process.layoutrules | |
org.jfree.report.layout.process.linebreak | |
org.jfree.report.layout.process.valign | |
org.jfree.report.layout.style | |
org.jfree.report.layout.text | |
org.jfree.report.modules.data.beans | |
org.jfree.report.modules.data.sql | |
org.jfree.report.modules.factories.data.base | |
org.jfree.report.modules.factories.data.beans | |
org.jfree.report.modules.factories.data.sql | |
org.jfree.report.modules.factories.report.base | |
org.jfree.report.modules.factories.report.compatibility.extended | |
org.jfree.report.modules.factories.report.compatibility.simple | |
org.jfree.report.modules.factories.report.flow | |
org.jfree.report.modules.factories.report.simplex | |
org.jfree.report.modules.gui.base |
This module provides basic preview capabilities for JFreeReport. The
preview components use worker threads to perform the pagination and
exports.
The various export dialogs will register at this module an plug their
functionality into the preview components.
The preview components should be closed when they are no longer used,
by calling "close()" to shutdown the workerthreads and to free the used
resources.
This module requires the Graphics2D output target to be present.
Configuration keys:
Property name |
Type |
Description |
org.jfree.report.modules.gui.base.PreviewBase.ToolbarFloatable |
boolean |
Defines, whether the toolbar will be floatable. This is not enabled by default. |
org.jfree.report.modules.gui.base.PreferredWidth |
relative-int |
Defines a preferred size for the preview frame. Both width and height must be set,
proportional values are allowed (100%, 90% etc). They have the same syntax as the
proportional values in the xml definition. |
org.jfree.report.modules.gui.base.PreferredHeight |
relative-int |
Defines a preferred size for the preview frame. Both width and height must be set,
proportional values are allowed (100%, 90% etc). They have the same syntax as the
proportional values in the xml definition. |
org.jfree.report.modules.gui.base.MaximumWidth |
relative-int |
Defines a maximum size for the preview frame. Both width and height must be set,
proportional values are allowed (100%, 90% etc). They have the same syntax as the
proportional values in the xml definition. |
org.jfree.report.modules.gui.base.MaximumHeight |
relative-int |
Defines a maximum size for the preview frame. Both width and height must be set,
proportional values are allowed (100%, 90% etc). They have the same syntax as the
proportional values in the xml definition. |
org.jfree.report.modules.gui.base.EncodingsAvailable |
string |
The property that defines which encodings are available in the export dialogs.
This property defaults to "all" and can be set to either "all", "none" or "file".
If the property is set to "file", then the list of available properties is read
from the file defined in the property "org.jfree.report.encodings.file". |
org.jfree.report.modules.gui.base.EncodingsFile |
string |
The name of the properties file used to define the available encodings.
The property points to a resources in the classpath, not to a real file!
This setting defaults to "/org/jfree/report/modules/gui/base/components/jfreereport-encodings.properties" |
org.jfree.report.modules.gui.base.SwingDialogTranslation |
boolean |
Defines, whether to translate the default components of Swing. This is disabled by default |
|
org.jfree.report.modules.gui.base.actions | |
org.jfree.report.modules.gui.base.internal | |
org.jfree.report.modules.gui.common | |
org.jfree.report.modules.gui.commonswing | |
org.jfree.report.modules.gui.commonswing.localization | |
org.jfree.report.modules.gui.config |
The configuration editor provides a gui to write the "jfreereport.properties"
file that can be used to configure this library.
|
org.jfree.report.modules.gui.config.editor |
Module editor implementations. Module editors are used to edit the
report configuration for a certain module.
|
org.jfree.report.modules.gui.config.model |
Tree and list models used in the configuration editor.
|
org.jfree.report.modules.gui.config.xml |
XML support classes for the configuration editor.
|
org.jfree.report.modules.gui.converter |
The report converter can be used to convert a simple report format definition
into the extended report format. It is also suitable for converting old
extended reports from version 0.8.3 or lower to the new 0.8.4 namespace.
|
org.jfree.report.modules.gui.converter.components |
Swing support classes for the report converter.
|
org.jfree.report.modules.gui.converter.parser |
An SAX parser proxy implementation, which translates attribute values
depending on the current context of the parser.
|
org.jfree.report.modules.gui.csv |
An CSV export module. The module registers itself during the module initialization
in the preview frame.
The module contains support for raw and layouted csv exports. In the
raw mode, the current data row will be written to the file, while the layouted
mode tries to preserve the layout in the exported file.
As with all table style exports, this target does not support overlapping elements.
If two elements request the same cell, the first element wins.
For best layouted results, you should use the excel export target.
|
org.jfree.report.modules.gui.html |
An HTML export module. The module registers itself during the module initialization
in the preview frame.
The module supports both HTML 4.01 and XHTML 1.0 output.
As with all table style exports, this target does not support overlapping elements.
If two elements request the same cell, the first element wins.
This target supports three modes.
- Stream mode
prints all content into a single stream. Generated images will be
ignored and the stream contains an inlined stylesheet definition. External
images loaded by an file or http url will be referenced in the stream,
all other internally generated image content will be discarded.
- Directory export
Writes the content and all external content into a directory. The report
contents will be written into a single file, while any external content
will be written into a separate data directory. This output mode will
generate PNG files for all internal images; external images can be copied
into the output directory.
- ZIP Directory export
Provides the same features as the directory export, but will generate the
contents within a ZIP file.
|
org.jfree.report.modules.gui.pdf |
An PDF export module. The module registers itself during the module initialization
in the preview frame.
The export is done by using iText; Image content will be recoded to PNG
if necessary.
|
org.jfree.report.modules.gui.plaintext |
An plain text export module. The module registers itself during the module initialization
in the preview frame.
This output target does not support any graphics. The font will be fixed
size, the font size is defined by the output target, not the elements. All
elements use the same font. Elements which are smaller than the used font
size, will not be printed.
This is no general purpose export, and reports using this export should
be carefully designed to suit this export target.
|
org.jfree.report.modules.gui.print |
An AWT printing support module. The module registers itself during the module initialization
in the preview frame.
|
org.jfree.report.modules.gui.rtf | |
org.jfree.report.modules.gui.swing.common | |
org.jfree.report.modules.gui.swing.common.localization | |
org.jfree.report.modules.gui.swing.html | |
org.jfree.report.modules.gui.swing.pdf | |
org.jfree.report.modules.gui.swing.preview | |
org.jfree.report.modules.gui.swing.preview.actions | |
org.jfree.report.modules.gui.swing.printing | |
org.jfree.report.modules.gui.xls |
An excel export module. The module registers itself during the module initialization
in the preview frame.
The export is done using the Apache POI library. This library does not support
images.
As with all table style exports, this target does not support overlapping elements.
If two elements request the same cell, the first element wins.
|
org.jfree.report.modules.misc.autotable | |
org.jfree.report.modules.misc.autotable.flow | |
org.jfree.report.modules.misc.autotable.xml | |
org.jfree.report.modules.misc.beanshell |
Support for the BeanShell expression and beanshell scripting support.
|
org.jfree.report.modules.misc.bsf | |
org.jfree.report.modules.misc.configstore.base |
Base classes for the config store system. This module provides base
services to save property files in a plattform and java vm version
independent way.
|
org.jfree.report.modules.misc.configstore.filesystem |
Supports storing the configuration settings into the local
filesystem.
|
org.jfree.report.modules.misc.datafactory | |
org.jfree.report.modules.misc.datafactory.sql | |
org.jfree.report.modules.misc.referencedoc |
Classes which generate reference documentation for the extended
xml parser.
|
org.jfree.report.modules.misc.survey | |
org.jfree.report.modules.misc.tablemodel |
TableModel support classes. The SQL support is now a native part of JFreeReport,
and there is no need for ResultSetTableModels at all.
|
org.jfree.report.modules.output.csv |
A plain CSV output. This output dumps the datarow
(all values from Table and functions).
The first column is the group index, the second column
is the report event which created this line. All other columns
contain the contents of the datarow.
-1, report-header, column1 , column2, ...
0, group-header, column1 , column2, ...
0, itemband, column1 , column2, ...
..
..
..
0, group-footer, column1 , column2, ...
-1, report-footer, column1 , column2, ...
|
org.jfree.report.modules.output.pageable.base |
Support for the output targets that are page- and print oriented.
Currently Graphics2D, PDF and PlainText output are supported by this
implementation.
|
org.jfree.report.modules.output.pageable.graphics |
Graphics2D report generation classes and the G2OutputTarget. Needed for
printing and the report preview.
|
org.jfree.report.modules.output.pageable.graphics.internal | |
org.jfree.report.modules.output.pageable.pdf |
PDF export classes and the PDF output target.
|
org.jfree.report.modules.output.pageable.pdf.internal | |
org.jfree.report.modules.output.pageable.plaintext |
PlainText export target module.
Depends on
- org.jfree.report.module.output.pageable.base.PageableBaseModule
|
org.jfree.report.modules.output.pageable.plaintext.driver | |
org.jfree.report.modules.output.pageable.plaintext.helper | |
org.jfree.report.modules.output.support.itext |
Support for iText fonts.
iText uses a set of own font descriptions and does heavily depend on
PDF specific features even in generic classes. This package
encapsulates all tasks required to create iText fonts.
|
org.jfree.report.modules.output.table.base |
Common base classes for the table style output targets.
Limitations
The TableExports add several restrictions to the report layouts.
Report elements must not overlay each other. It is ok for bands,
but the actual data must never overlap. Once a cell is occupied,
it cannot be redefined to contain data from other elements.
CellData cannot be combined.
Backgrounds can only be defined for the complete cell.
How does the table export work?
All table targets use a two step process to create the output. In
the first step, the layout is computed and styles information is collected.
The style information will later be reused to form cascading stylesheets
or to fill the Excel style tables.
Cell backgrounds are computed during the pagination phase and are stored
in the SheetLayout; The content itself is only stored during the content-generation
phase and is held in the TableContentProducer. Once the page is completed
the computed content and the sheet-layout instace are forwarded to the
Output-processor implementations.
|
org.jfree.report.modules.output.table.csv |
Layouted CSV output.
|
org.jfree.report.modules.output.table.csv.helper | |
org.jfree.report.modules.output.table.html |
The HTML4 and XHTML output target.
Supported Properties:
- Author
- Encoding
- Title
- GenerateXHTML
- StrictLayout
- BodyFragment
|
org.jfree.report.modules.output.table.html.helper | |
org.jfree.report.modules.output.table.html.util | |
org.jfree.report.modules.output.table.rtf |
RTF file output, using iText (requires at least version 1.1).
The cell height cannot be defined directly. The only way of
influencing the height of a cell is by defining a font for
the cell.
The current implementation is not suited for huge documents,
as the whole document is held in memory until the complete table
was created. This implementation will be fixed in the future.
If possible, use the HTML export to create reports that can be
used in a word processor.
|
org.jfree.report.modules.output.table.rtf.helper | |
org.jfree.report.modules.output.table.xls |
The Excel output target.
This target uses the POI library.
|
org.jfree.report.modules.output.table.xls.helper | |
org.jfree.report.modules.output.xml |
The XML output generates a xml representation of the generated output. This example
is a small educational outputtarget, to show the global concepts of the OutputProcess.
It is kept small and simple.
The target consists of 2 parts. The XMLProcessor is used to prepare the report and
to initialize the XMLWriter.
The XMLProcessor
The XMLProcessor instantiates the XMLWriter. The Processor is also used to repaginate
the report; this is the report preparation process which calculates function values and
resolves function dependencies. Finally, the last report processing run activates the
XMLWriter, which writes the generated output to a java.io.Writer.
The XMLWriter
The XMLWriter is a report function. For every received event, the to be printed band is
simply written as XML-Stream.
|
org.jfree.report.modules.parser.base |
Classes for reading XML-based report definitions.
At the moment two report definition formats are supported,
the simple profile is a simplified model of the report definition.
Although it does not support all advanced features, its simple
structure helps to understand the basic report process and makes
it possible to easily write report definitions.
The second parser uses a more complex model, which describes the
report is a very detailed way. Due to the low level orientation of
the report definition format, writing report definition is more
complicated and requires detailed knowledge of the object structures
used in JFreeReport. Its more generalized structure allows to define
every aspect of the report definition and makes it possible to use
all implemented features of JFreeReport.
|
org.jfree.report.modules.parser.base.common | |
org.jfree.report.modules.parser.ext |
The base package for the JFreeReport "extended" parser.
An extensible report definition parser. The parser uses a generic
report definition syntax to fully describe the report. The parser
heavily relies on factories to create elements and objects.
The used generic approach leads to a complex and very complex and
technically detailed report definition, which can be confusing and
difficult to use for human authors.
The DTD for the reportdefinition files can be found at
http://jfreereport.sourceforge.net/extreport.dtd
or in the distribution package.
The document type declaration for this definition type is
<!DOCTYPE report-definition
PUBLIC "-//JFreeReport//DTD report definition//EN//extended"
"http://jfreereport.sourceforge.net/extreport.dtd">
The template inheritance is implemented using various instances of the
same template class with variing parameter fill level.
ParserHints used by this parser:
Bound to |
HintName |
HintType |
Description |
JFreeReport-object
ext.parser.parser-config.objectfactories
java.util.List
A list containing the class names of all used object factories.
JFreeReport-object
ext.parser.parser-config.stylekeyfactories
java.util.List
A list containing the class names of all used stylekey factories.
JFreeReport-object
ext.parser.parser-config.templatefactories
java.util.List
A list containing the class names of all used template factories.
JFreeReport-object
ext.parser.parser-config.datasourcefactories
java.util.List
A list containing the class names of all used datasource factories.
JFreeReport-object
ext.parser.parser-config.elementfactories
java.util.List
A list containing the class names of all used element factories.
JFreeReport-object
ext.parser.template-definition
java.util.List
A list containing all predefined templates.
JFreeReport-object
parser.type
java.lang.String
A string marking the type of the parser that was used to create the report.
The ext-parser uses "org.jfree.report.modules.parser.ext" and the simple parser
uses "org.jfree.report.modules.parser.simple".
Element, TemplateDescription
ext.parser.template-reference
java.lang.String
Contains the name of the referenced template.
JFreeReport-object
ext.parser.template-definition
java.util.List
Contains the defined template descriptions.
|
org.jfree.report.modules.parser.ext.factory.base |
Object descriptions for the parser.
|
org.jfree.report.modules.parser.ext.factory.datasource |
The {@link
org.jfree.report.modules.parser.ext.factory.datasource.DataSourceFactory} interface
and related classes.
The DataSourceFactory is used to describe and create @link org.jfree.report.filter.DataSource}
implementations. The DataSource description is provided as ObjectDescription; as all DataSources
have Getter and Setter methods defined to access their properties, generic BeanDescriptions are
used to descripe the data sources.
|
org.jfree.report.modules.parser.ext.factory.elements |
The {@link
org.jfree.report.modules.parser.ext.factory.elements.ElementFactory} interface
and related classes.
The Element factory is used to create Elements based on their content type.
|
org.jfree.report.modules.parser.ext.factory.objects |
The {@link org.jfree.xml.factory.objects.ClassFactory}
interface and related classes.
The {@link org.jfree.xml.factory.objects.ClassFactory} and the
{@link org.jfree.xml.factory.objects.ObjectDescription} are used to descripe,
generate and serialize objects in a generalized way.
ObjectDescriptions are used to descripe the properties of an object. The properties can
either be an primitive object (String, Long, Integer, Short, Byte, Character, Boolean) or
an compound object. Compound objects may have other primitive or compound objects defined
as properties.
You may use the ObjectReferenceGenerator to create the Reference-Documentation for all
known Object-Description implementations.
|
org.jfree.report.modules.parser.ext.factory.stylekey |
The {@link org.jfree.report.modules.parser.ext.factory.stylekey.StyleKeyFactory}
interface and related classes.
The StyleKeyFactory is used to create StyleKeys in a generic way.
You may use the StyleKeyReferenceGenerator to create the Reference-Documentation for all
known StyleKey-Description implementations.
|
org.jfree.report.modules.parser.ext.factory.templates |
The {@link org.jfree.report.modules.parser.ext.factory.templates.TemplateDescription}
interface and related classes.
Templates are Facade implementations for the low level DataSources. Templates implement
the common use-cases for DataSources.
|
org.jfree.report.modules.parser.ext.readhandlers | |
org.jfree.report.modules.parser.extwriter |
Support for writing {@link org.jfree.report.JFreeReport} instances
to a character stream in XML format. This package also contains a
utility application for converting the old XML format into the new XML
format.
The ReportConverter can either be used in command line mode (class
org.jfree.report.modules.parser.extwriter.ReportConverter ) or with
a simple GUI implementation (class
org.jfree.report.modules.gui.converter.ReportConverterGUI ).
|
org.jfree.report.modules.parser.extwriter.sql | |
org.jfree.report.modules.parser.extwriter.staticdata | |
org.jfree.report.modules.parser.simple |
A simple report definition parser. The parser uses a simplified
report definition syntax, but does not support all features of
JFreeReport and is unable to define complex layouts.
The DTD for the reportdefinition files can be found at
http://jfreereport.sourceforge.net/report.dtd
or in the distribution package.
The document type declaration for this definition type is
<!DOCTYPE report-definition
PUBLIC "-//JFreeReport//DTD report definition//EN//simple"
"http://jfreereport.sourceforge.net/report.dtd">
|
org.jfree.report.modules.parser.simple.readhandlers | |
org.jfree.report.modules.parser.sql | |
org.jfree.report.modules.parser.staticdata | |
org.jfree.report.modules.preferences.base |
Base classes for the config store system. This module provides base
services to save property files in a plattform and java vm version
independent way.
|
org.jfree.report.modules.preferences.filesystem |
Supports storing the configuration settings into the local
filesystem.
|
org.jfree.report.resourceloader | |
org.jfree.report.states |
States used in the JFreeReport state transition diagram.
General report processing
All reports are processed by advancing from one report state to another state.
Reporting always starts with a start state and ends with a finish state.
Whenever a state advances, the internal state of the state-object should change.
If the internal state does not change, the process is caught in an infinite loop
and must be interrupted. State-advances are tested by using the
ReportState.isProceeding method.
Some report states fire events when they advance into another state. These events are
used to inform the report-functions that a certain report processing level has been
reached. The only valid receiver of ReportEvents are Expressions and Functions.
Start-State
|
The start state is the first state of the report processing process and the only state
that can be created without having a previous state.
Events fired:
During the advance process, a ReportEvent is fired to inform the state-clients that
the report processing has started. ReportListener.reportStarted (ReportEvent) is called
for all registered listeners.
Advances to:
This state advances into the PreGroupHeader state.
|
PreGroupHeader-State
|
The PreGroupHeader marks the beginning of a new group. When this state advances,
the group is activated and the groupheader of this group should be processed. The
system will activate all defined groups before starting to process the items.
Events fired:
During the advance process, a ReportEvent is fired to inform the state-clients that
a new group has started. ReportListener.groupStarted (ReportEvent) is called
for all registered listeners. The currently active group can be queried by using
ReportState.getCurrentGroupIndex().
Advances to:
This state advances into the PostGroupHeader state.
|
PostGroupHeader-State
|
If there are more groups to activate for the current report, the PostGroupHeader will
activate those groups by advancing into a new PreGroupHeader state. If all groups are
activated, the PostGroupHeader-state will start the ItemProcessing by advancing into
a PreItemGroup state.
Events fired:none
Advances to:Either PreGroupHeader or PreItemGroup state.
|
PreItemGroup-State
|
This state is used to inform every listener that the ItemProcessing is about to start.
At this moment, all groups have been activated. On advance, the ItemStarted event is fired.
If there is at least one row to print, this state advances into InItemGroup-state, else
this state continues at the PostItemGroup state. The direct advancement into PostItemGroup
should only happen if the given TableModel does not contain any rows.
Events fired:ItemStarted
Advances to:Either InItemGroup or PostItemGroup state.
|
InItemGroup-State
|
The report engine is now processing the group items. When advancing, a ItemsAdvanced
event is fired. Then state advances into a
InItemGroup state as long as the current group is valid and the end of the report
has not been reached. A group is valid as long as the contents of the fields assigned
to the group do not change. As long as the group is valid, this state advances to
InItemGroup-state and increases the current row of the DataRow. If the group is no
longer valid, this state advances into a PostItemGroup state.
Events fired:ItemsAdvanced. The datarow is automaticly adjusted to reflect
the new row. The current row number can be queried by using ReportState.getCurrentRow().
Advances to:Either PostItemGroup or InItemGroup state.
|
PostItemGroup-State
|
This state is used to inform every listener that the ItemProcessing is now finished.
The advancing will fire the ItemsFinished event and then proceed to PreGroupFooter.
Events fired:ItemsFinished
Advances to:PreGroupFooter
|
PreGroupFooter-State
|
The current group is now finished. The GroupFooter should be printed. This state
fires the GroupFinished event and then advances to PostGroupFooter.
Events fired:GroupFinished
Advances to:PostGroupFooter
|
PostGroupFooter-State
|
This state closes the current group. After that group is closed,
the report engine checks if there are more open groups, which are invalid and should be closed.
A group is valid as long as the contents of the fields assigned to the group do not
change. In this case, the state advances to PreGroupFooter for the to be closed group.
If there is no group that should be closed and there are more rows to process,
the next sub-group is opened and the state advances into PreGroupHeader for the new group.
If there are no more groups active and there are no rows to process, then the report
processing is almost finished and the state advances to PreReportFooter.
Events fired:none
Advances to:PreGroupHeader, PreGroupFooter or PreReportFooter.
|
PreReportFooter-State
|
Now the report is almost finished. The last task to be done is the processing of the
ReportFooter. On advance the ReportFinished event is fired and then the state advances
into the FinishState.
Events fired:ReportFinished
Advances to:FinishState
|
Finish-State
|
This state does not advance and fires an ReportProcessingException when it should
advance.
Events fired:none
Advances to:none
|
|
org.jfree.report.states.datarow | |
org.jfree.report.states.process | |
org.jfree.report.structure | |
org.jfree.report.style |
Style sheets for elements and bands.
|
org.jfree.report.util |
Common utility classes.
|
org.jfree.report.util.beans |
Bean and property support classes.
|
org.jfree.report.util.geom |
Strict (fixed point) arithmetics classes for the layouting engine.
Using float or double is (sadly) unreliable, as most operation create
rounding errors. Although fixed point arithmetics also create errors
on certain operations, these errors can be tracked down easier than
with floats or doubles.
|
org.jfree.report.util.i18n | |
org.jfree.report.util.serializers |
Handler classes for the SerizalizeHelper.
|
org.pentaho.core.admin.datasources | |
org.pentaho.core.admin.datasources.jboss | |
org.pentaho.core.audit | |
org.pentaho.core.cache | |
org.pentaho.core.component | |
org.pentaho.core.output | |
org.pentaho.core.publisher | |
org.pentaho.core.repository | |
org.pentaho.core.repository.content | |
org.pentaho.core.runtime | |
org.pentaho.core.services | |
org.pentaho.core.session | |
org.pentaho.core.solution | |
org.pentaho.core.subscribe | |
org.pentaho.core.subscribe.quartz | |
org.pentaho.core.system | |
org.pentaho.core.ui | |
org.pentaho.core.util | |
org.pentaho.data | |
org.pentaho.data.connection.hql | |
org.pentaho.data.connection.javascript | |
org.pentaho.data.connection.mdx | |
org.pentaho.data.connection.sql | |
org.pentaho.data.connection.xquery | |
org.pentaho.designstudio.controls | |
org.pentaho.designstudio.editors.actionsequence | |
org.pentaho.designstudio.editors.actionsequence.actions | |
org.pentaho.designstudio.editors.actionsequence.mql | |
org.pentaho.designstudio.editors.actionsequence.pages | |
org.pentaho.designstudio.editors.actionsequence.pages.actions | |
org.pentaho.designstudio.editors.actionsequence.pages.actions.details | |
org.pentaho.designstudio.editors.actionsequence.pages.actions.details.charts | |
org.pentaho.designstudio.editors.actionsequence.pages.actions.details.kettle | |
org.pentaho.designstudio.editors.actionsequence.pages.actions.details.query | |
org.pentaho.designstudio.editors.actionsequence.pages.actions.details.reports | |
org.pentaho.designstudio.editors.actionsequence.pages.actions.details.scheduling | |
org.pentaho.designstudio.editors.actionsequence.pages.parameters | |
org.pentaho.designstudio.editors.actionsequence.popup.actions | |
org.pentaho.designstudio.editors.actionsequence.preferences | |
org.pentaho.designstudio.editors.actionsequence.wizards | |
org.pentaho.designstudio.editors.reportwizard | |
org.pentaho.designstudio.editors.reportwizard.actions | |
org.pentaho.designstudio.editors.reportwizard.messages | |
org.pentaho.designstudio.editors.reportwizard.preferences | |
org.pentaho.designstudio.editors.reportwizard.wizards | |
org.pentaho.designstudio.editors.xmleditor | |
org.pentaho.designstudio.intro | |
org.pentaho.designstudio.messages | |
org.pentaho.designstudio.util | |
org.pentaho.designstudio.widgets.flowtable | |
org.pentaho.jfreereport.legacy | |
org.pentaho.jfreereport.wizard | |
org.pentaho.jfreereport.wizard.messages | |
org.pentaho.jfreereport.wizard.ui | |
org.pentaho.jfreereport.wizard.ui.dialog | |
org.pentaho.jfreereport.wizard.ui.step | |
org.pentaho.jfreereport.wizard.ui.swt | |
org.pentaho.jfreereport.wizard.utility | |
org.pentaho.jfreereport.wizard.utility.connection | |
org.pentaho.messages | |
org.pentaho.messages.util | |
org.pentaho.plugin | |
org.pentaho.plugin.core | |
org.pentaho.plugin.eclipsebirt | |
org.pentaho.plugin.email | |
org.pentaho.plugin.hql | |
org.pentaho.plugin.jasperreports | |
org.pentaho.plugin.javascript | |
org.pentaho.plugin.jfreechart | |
org.pentaho.plugin.jfreereport | |
org.pentaho.plugin.jfreereport.components | |
org.pentaho.plugin.jfreereport.helper | |
org.pentaho.plugin.jfreereport.outputs | |
org.pentaho.plugin.jfreereport.reportcharts | |
org.pentaho.plugin.jfreereport.repository | |
org.pentaho.plugin.kettle | |
org.pentaho.plugin.mdx | |
org.pentaho.plugin.misc | |
org.pentaho.plugin.mql | |
org.pentaho.plugin.olap | |
org.pentaho.plugin.print | |
org.pentaho.plugin.quartz | |
org.pentaho.plugin.shark | |
org.pentaho.plugin.sql | |
org.pentaho.plugin.versionchecker | |
org.pentaho.plugin.webservice | |
org.pentaho.plugin.xmla | |
org.pentaho.plugin.xquery | |
org.pentaho.reportdesigner.crm.report | |
org.pentaho.reportdesigner.crm.report.commands | |
org.pentaho.reportdesigner.crm.report.commands.align | |
org.pentaho.reportdesigner.crm.report.commands.debug | |
org.pentaho.reportdesigner.crm.report.commands.morph | |
org.pentaho.reportdesigner.crm.report.components | |
org.pentaho.reportdesigner.crm.report.configuration | |
org.pentaho.reportdesigner.crm.report.connection | |
org.pentaho.reportdesigner.crm.report.datasetplugin | |
org.pentaho.reportdesigner.crm.report.datasetplugin.composer | |
org.pentaho.reportdesigner.crm.report.datasetplugin.jdbc | |
org.pentaho.reportdesigner.crm.report.datasetplugin.multidataset | |
org.pentaho.reportdesigner.crm.report.datasetplugin.properties | |
org.pentaho.reportdesigner.crm.report.datasetplugin.sampledb | |
org.pentaho.reportdesigner.crm.report.datasetplugin.staticfactory | |
org.pentaho.reportdesigner.crm.report.inspections | |
org.pentaho.reportdesigner.crm.report.inspections.impl | |
org.pentaho.reportdesigner.crm.report.lineal | |
org.pentaho.reportdesigner.crm.report.model | |
org.pentaho.reportdesigner.crm.report.model.dataset | |
org.pentaho.reportdesigner.crm.report.model.functions | |
org.pentaho.reportdesigner.crm.report.model.layoutmanager | |
org.pentaho.reportdesigner.crm.report.model.textlayout | |
org.pentaho.reportdesigner.crm.report.palette | |
org.pentaho.reportdesigner.crm.report.plugin | |
org.pentaho.reportdesigner.crm.report.preview | |
org.pentaho.reportdesigner.crm.report.properties | |
org.pentaho.reportdesigner.crm.report.properties.editors | |
org.pentaho.reportdesigner.crm.report.properties.renderers | |
org.pentaho.reportdesigner.crm.report.reportelementinfo | |
org.pentaho.reportdesigner.crm.report.reportexporter | |
org.pentaho.reportdesigner.crm.report.reportexporter.jfreereport | |
org.pentaho.reportdesigner.crm.report.reportimporter | |
org.pentaho.reportdesigner.crm.report.settings | |
org.pentaho.reportdesigner.crm.report.templateplugin | |
org.pentaho.reportdesigner.crm.report.tests | |
org.pentaho.reportdesigner.crm.report.tests.chartsamples | |
org.pentaho.reportdesigner.crm.report.tests.invoice | |
org.pentaho.reportdesigner.crm.report.tests.mondrian | |
org.pentaho.reportdesigner.crm.report.tests.numbers | |
org.pentaho.reportdesigner.crm.report.tests.reportdata | |
org.pentaho.reportdesigner.crm.report.tests.simple1 | |
org.pentaho.reportdesigner.crm.report.tests.styles | |
org.pentaho.reportdesigner.crm.report.tests.subreport | |
org.pentaho.reportdesigner.crm.report.tests.svg | |
org.pentaho.reportdesigner.crm.report.tests.wrapper | |
org.pentaho.reportdesigner.crm.report.tests.xpath | |
org.pentaho.reportdesigner.crm.report.tree | |
org.pentaho.reportdesigner.crm.report.util | |
org.pentaho.reportdesigner.crm.report.wizard | |
org.pentaho.reportdesigner.crm.report.wizard.reportgeneratewizard | |
org.pentaho.reportdesigner.crm.report.zoom | |
org.pentaho.reportdesigner.lib.client.commands | |
org.pentaho.reportdesigner.lib.client.components | |
org.pentaho.reportdesigner.lib.client.components.docking | |
org.pentaho.reportdesigner.lib.client.components.favoritespanel | |
org.pentaho.reportdesigner.lib.client.components.tabbedpane | |
org.pentaho.reportdesigner.lib.client.i18n | |
org.pentaho.reportdesigner.lib.client.plugin | |
org.pentaho.reportdesigner.lib.client.undo | |
org.pentaho.reportdesigner.lib.client.util | |
org.pentaho.reportdesigner.lib.common.graph | |
org.pentaho.reportdesigner.lib.common.util | |
org.pentaho.reportdesigner.lib.common.xml | |
org.pentaho.repository | |
org.pentaho.repository.content | |
org.pentaho.repository.cwm | |
org.pentaho.repository.filebased.solution | |
org.pentaho.repository.runtime | |
org.pentaho.repository.usertypes | |
org.pentaho.ui | |
org.pentaho.ui.component | |
org.pentaho.ui.component.charting | |
org.pentaho.ui.portlet | |
org.pentaho.ui.portlet.charting | |
org.pentaho.ui.portlet.jboss | |
org.pentaho.ui.servlet | |
org.pentaho.util | |
org.pentaho.util.logging | |