Hello,
Find below of a list of software updates, change notes,
and the current roadmap for the JGoodies libs and apps.
UPDATES
The following software updates have been published:
o Binding 1.0.1
o Looks 1.3.2
o UIF 1.4.1
o UIF Extras 1.4.1
o Validation 1.0.2
o Swing Suite 1.4.1
o Tools and Demos
IMPORTANT NOTE: To avoid duplicate and incompatible library
versions in your classpath, I recommend to remove library
jars from the Java extension directory (<jre-home>/lib/ext).
For more information on that issue see the Looks FAQ #1.7.
CHANGES
The Swing Suite 1.4.1 maintenance release includes overhauled
example apps and the most recent versions of the JGoodies libs.
I've fixed bugs in the libraries, the API remained almost the
same - with a few minor changes. Find details in each library
project's Release Notes.
The most important library bugs fixes are corrections in the
JGoodies Looks' drop shadow feature on OS X 10.4 (Tiger),
a memory leak in the Binding 1.0, and a fix in the JGoodies
Validation's IconFeedbackPanel. Another significant change
is, that the UIF Extra's JGoodies Tiny Help now uses a true
XML parser to parse the JavaHelp-like XML files.
The example apps are now more consistent w.r.t pattern usage,
naming conventions, and they are consistent with the latest
JGoodies presentation about desktop patterns and data binding.
For more information see the REFACTORINGS section below.
DISTRIBUTION CHANGES
The Jar files for the example applications are uncompressed.
This leads to a significantly better overall compression
in native installers and Zip archives, including the
Swing Suite Zip archive. Only the Web Start application Jars
are compressed to reduce the download size.
REFACTORINGS
Most view classes in the Swing Suite example applications
now use the consistent suffix "View", where the previous
version used "Builder", "Page", "Panel", etc.
Dialogs and frames use the suffix "Dialog" and "Frame" resp.
The new naming convention is consistent with the examples
used in the recent versions of the JGoodies presentations
"Swing Data Binding" and "Desktop Patterns & Data Binding",
see http://www.jgoodies.com/articles/
The example apps demonstrate a programming style where a view
*builds* and returns a panel instead of subclassing JPanel.
(If you use a HashMap, you rarely subclass it, don't you?)
The new UIF class AbstractView assists in creating views;
it provides a simple lazy creation mechanims in method
#getPanel that calls the abstract protected #buildPanel.
The JGoodies example apps follow the "Presentation Model" (PM)
pattern as described by Martin Fowler in his draft for
"Further Patterns of Enterprise Applications", see here:
http://www.martinfowler.com/eaaDev/index.html
In the Presentation Model (PM) pattern all presentation logic
is provided by the presentation model. To reduce complexity
the PM can hide the operations performed for button clicks,
selection events. It is often sufficient to provide only
the associated Swing Actions leaving the operations private.
In the Swing Suite 1.4.1 the operations defined in MainController
have been moved to the MainModel. And in a second step the
Swing Actions defined in class Actions have been moved to
the MainModel. The action enablement handling has been moved
to the MainModel too.
If the MainModel became too large, I've extracted submodels,
and could then move Actions to the related submodels. This
in turn allowed to make action operations and the action
enablement handling even more local with reduced visibility.
ROADMAP
The JGoodies library cores require less and less work,
so I could already shift my focus to the tutorials,
and the example applications. However, I'll slightly
improve the libraries for the next Swing Suite and
address feature and enhancement requests that can be
done without changing the published API. And I plan
to publish updated versions of the Forms and Animation
libraries. I will further improve the consistency of
the Swing Suite example applications and hope to
find the time to completely overhaul the JDiskReport
application later this year.
All new versions will still target Java 1.4. But
I consider to change the primary testing platform
from Sun Java 1.4.2 to Sun Java 1.5.0. And likely
I'll drop Java 1.4.0 and Java 1.4.1 as testing
environments. Nevertheless, most libraries will
still work in these environments. And I will test
again Java 1.4.2.
The Looks 1.3.3 will be a pure bug fix release
that improves the appearance of the Windows L&f
on Java 1.5 and Java 1.6.
The Binding 1.0.2 shall come with slightly better
tutorial examples and new examples for some
Binding Extra sources.
The Forms 1.0.6 is primarily a documentation and
tutorial update. Likely I'll fix a few minor bugs
in the non-visual builders in a version 1.0.7.
The primary change is the set of visual builder tools
that now offer support for the FormLayout and Forms.
The Validation 1.1 will demonstrate how to split
a validation into fine grained subvalidations.
And the tutorial shall show new approaches how to
display validation results in a JTable. This will
take more time.
The JDiskReport example app shall be overhauled
to use and demonstrate the "Presentation Model" pattern.
Actually I hesitate to change anything in the tool's
models, just because I don't know anymore which views
shall be updated when the model or selection or history
or view state changes. Using the PM pattern will address
this issue and will make changes less risky and much
cheaper.
DOWNLOADS
The Swing Suite 1.4.1 is available from the JGoodies
product download page; access is password protected
http://www.jgoodies.com/downloads/products.html
YOUR FEEDBACK
If you have questions or suggestions regarding
this mail, please post to the technical JGoodies list,
not to this low-traffic announcement list:
http://groups.yahoo.com/group/JGoodies_unmoderated/
Best regards,
Karsten Lentzsch