Hi all,
I just released a new version:
Release Notes for DbForms Version 2.5, 2004-02-26
Contents:
1) About this release
2) Details about enhancements and changes
2-1) New features
2-1-1) Support for charting
2-1-2) Support for calc fields
2-1-3) Support for boolean fields
2-2) Changes to the tag library
2-2-1) New tag: hasError
2-2-2) New tag: setCustomFormatter
2-2-3) Added new custom formatter attribute to rendering tags
2-2-4) Deprecate the formatter attribute
2-2-5) New tag: redirectUrl
2-2-6) New option to handle empty data sets in DbSelectTag
2-2-7) New option to force state to checked in DbCheckboxTag
2-2-8) Enable editing of blob columns in textarea tag
2-3) Changed interceptor interface
2-4) Changes in BLOB handling
2-5) New report systems to create excel spreadsheet and comma
separated values reports
2-6) Others
2-6-1) Make searching smarter
2-6-2) Changed logging system
2-6-3) Make dbforms jdk 1.5 compliant
1) About this release
---------------------
DbForms 2.5 is the next release to be labelled production/stable. It
is the result of further development of the 2.5-SNAPSHOT
releases. Changes made in those releases are included and described
below.
Please report any problems or comments to the DbForms mailing list:
[email protected]
This document summarizes the changes since release 2.4 that are of
interest to end users. Note that there have also been several internal
enhancements to DbForms which are documented only within the
source code (e.g. code cleanup, improved algorithms).
2) Details about enhancements and changes
--------------------------------------------
2-1) New features
--------------------
2-1-1) Support for charting
----------------------------
We added support for charting using cewolf and jfree chart.
In this first release, we support pie data only.
Reference:
cewolf.sourceforge.net
www.jfree.org/jfreechart
To generate a pie chart, add the <db:pieData> tag inside a <db:dbform>
to your page:
<cewolf:chart
id="pieChart"
title='Books per Author'
type="pie"
>
<cewolf:data>
<db:pieData
categoryField="NAME"
dataField="C"
/>
</cewolf:data>
</cewolf:chart>
<cewolf:img chartid="pieChart" renderer="/cewolf"
width="800" height="400"/>
This will generate a pie chart with the categoryField taken from the
NAME field of your dbforms resultset and the dataField from the
field C.
See howto/howtoMakeaPieChart.jsp for a working example!
2-1-2) Support for calc fields
------------------------------
Added support for calculated fields. These fields are defined in the
config file and should/could be calculated in the preAddRow, postAddRow,
or postSelect interceptor. See bookstore tests/testSearchAndCalcFields.jsp
and
BookstoreCalcFieldAndSearchInterceptor.java for an example of how to use
the calc fields. This example also showa how to calculate a rownum for the
current resultset to all a display of recno/countofrecord in your pages.
2-1-3) Support for boolean fields
----------------------------------
It is now possible to use boolean fields within a dbforms-config table
definition to correspond with an SQL column of boolean type. Usage is
FieldType="bool".
2-2) Changes to the tag library
----------------------------------
2-2-1) New tag: hasError
-------------------------
This tag renders its body when an error occurs during dbfroms processing.
2-2-2) New tag: setCustomFormatter
-----------------------------------
Registers a Custom Formatter for later use. The registered class must
implement the org.dbforms.util.Formatter interface. when a new instance
of the object is instantiated, it is initialized with an 'arg' value and
given a name such as 'xyz'. The name exists in the session space. Other
tags that utilize the custom formatter use the attribute
customFormatter='xyz', where 'xyz' is the registered name. Multiple
instances of the same object can exist with different names and initial
values for arg.
At runtime the setLocale() method of the class will be called.
Subsequently, the sprintf(Object[] data) method will be called,
where data is an array of 3 values. Element data[0] is a string of text
(i.e. what would normally be displayed), data[1] is the current field of
type Field, and data[2] is the invoking tag of type Tag. Methods should
be sure to check for null values in the input.
See bookstore/howto/howtoUseTheCustomFormatter.jsp for an example!
2-2-3) Added new custom formatter attribute to rendering tags
--------------------------------------------------------------
The customFormatter attribute has been added to all output tags. This
attribute is set to the name of a formatting instance registered
previously in the setCustomFormatter tag. The attribute will cause
custom formatting to occur.
See setCustomFormatter and bookstore/howto/howtoUseTheCustomFormatter.jsp
for an example!
2-2-4) Deprecate the formatter attribute
-----------------------------------------
The formatter attribute is deprecated in this version and will be
removed in the next (2.6) release. It is superceded by the
customFormatter tag and attribute which gives more control over
formatting.
2-2-5) New tag: redirectUrl
----------------------------
This tag forces a redirect to a DbForms view. This tag is similar to
the linkURL tag--the attributes are the same-- but, instead of
generating a href link that must be clicked to be activated, this tag
performs an immediate response.sendRedirect().
2-2-6) New option to handle empty data sets in DbSelectTag
-----------------------------------------------------------
- ifEmptyItem:
Item to be used if there is no embedded data
Arguments to this tag are as follows: Key,Description
- ifEmptyDontDraw
Do not draw the Select box if there is no data
2-2-7) New option to force state to checked in DbCheckboxTag
-------------------------------------------------------------
- force:
If set to TRUE, the state of the checkbox will be set if the checked
attribute is also set to TRUE, whether in insert state or not.
Otherwise, the attribute checked is only used when in insert mode.
2-2-8) Enable editing of blob columns in textarea tag
------------------------------------------------------
It is now possible to EDIT blob columns from within textarea form tag.
Here is a simple example:
<db:textAreaForBlobs fieldName="BODY" renderBody="true">
<db:blobContent fieldName="BODY"/>
</db:textAreaForBlobs>
Currently the text will be inserted into the database using the system
default character set, which generally depends on your locale settings.
2-3) Changed interceptor interface
-------------------------------------
The interceptor interfaces have been changed again, this time without
breaking backwards compatibility (I hope!), to be able to pass arbitrary
amounts of data to the interceptors.
The signature for all interceptors is now just
public int interceptor(DbEventInterceptorData data)
The DbEventInterceptorData object will be consistent between the call
from pre/post Interceptors. So it is now possible to transport data
between the two calls using simple data.setAttribute and
data.getAttribute calls. This is much easier than storing the data in
the request object as was previously required.
There are some standard attributes that will be filled from dbforms
before an interceptor is called:
/** filled with FieldValues array during insert, delete and update events
*/
public static final String FIELDVALUES = "fieldValues";
/** filled with KeyValues string during delete and update events */
public static final String KEYVALUES = "keyValues";
/** filled with current ResultsetVector during AddRow and Select events
*/
public static final String RESULTSET = "ResultSetVector";
/** filled with objectrow which should be added during AddRow events */
public static final String OBJECTROW = "ObjectRow";
/** filled with the currently used connection name in all events */
public static final String CONNECTIONNAME = "connectionName";
/** filled with the pageContext during select events */
public static final String PAGECONTEXT = "pageContext";
There are two new interceptors called during filling of the ResultSetVector:
public int preAddRow(DbEventInterceptorData data)
throws ValidationException, MultipleValidationException;
public void postAddRow(DbEventInterceptorData data);
2-4) Changes in BLOB handling
--------------------------------
BlobInterceptor (src/org/dbforms/event/BlobInterceptor.java) can now
optionaly save the mime type and file size of an uploaded file if
additional parameters are provided in dbforms-config.xml as shown below.
<interceptor className="org.dbforms.event.BlobInterceptor">
<param name="blob-column" value="BODY"/>
<param name="name-column" value="FILE_NAME"/>
<param name="mime-column" value="MIME_TYPE"/>
<param name="size-column" value="BODY_SIZE"/>
</interceptor>
2-5) New report systems to create excel spreadsheet and comma separated
values reports
--------------------------------------------------------------------------
There are two new reporting servlets: one to generate excel spreadsheets
without the need to define a jasperreport and another to generate simple
comma separated csv files. Both need a definition file containing a
list of fields that are to be exported. For example, a list of fields
looks like BOOK_ID,ISBN,AUTHOR_ID,TITLE.
See bookstore example books.xr and howto/howtoPrintaExcelReport.jsp for
details.
2-6) Others
--------------
2-6-1) Make searching smarter
-----------------------------
If there is a field in the new table with the same name and type as in
the old one then take searchvalues from that field. For example, filter
12.10.2004 18:00-19:00 means 12.10.2004 18:00 - 12.10.2004 19:00 rather
than 12.10.2004 18:00 - <current date> 19:00 as in the past.
2-6-2) Changed logging system
-----------------------------
The logging system has been changed from the log4j logging to the more
general apache common logging classes. This change is more compatible
with tomcat which also uses the common logging system. Therefore, if you
do not define your own logging settings (see log4j.configuration
parameter in config servlet) the settings from the tomcat container
will be used.
2-6-3) Make dbforms jdk 1.5 compliant
-------------------------------------
Beginning with this version DBForms fully supports jdk 1.5. This
version is built with jdk 1.5. Please report jdk-related problems to the
mailing list.
Cheers,
Henner
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
DbForms Mailing List
http://www.wap-force.net/dbforms