You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Dan Syrstad <ds...@ener-j.org> on 2007/12/02 01:20:15 UTC
[ANN] Wicket Web Beans 1.0-rc2 Released
Wicket Web Beans 1.0-rc2 has been released. Wicket Web Beans (WWB) is an
Apache Wicket component toolkit for displaying and editing POJOs that
conform to the JavaBeans specification. Web pages are automatically
generated based on bean properties and certain conventions. If necessary,
the layout, editability, and actions of these pages can be customized on an
exception basis. In other words, the toolkit normally does what you'd
expect, but when it doesn't, you can override its behavior.
Major inclusions in this release are a Java metadata API, annotations, and
18+ new features. Support for Wicket 1.3.0-rc1 was also added.
Enjoy!
-Dan
-----------
Version: wicketwebbeans-1.0-rc2
The SVN trunk now supports Wicket 1.3.0-rc1. There is also a
wicket-1.2.6 branch that
supports the current Wicket release.
Most significant in this version is the introduction of a Java-based metadata
API and annotations that can be used in place of, or in addition to,
beanprops. In all,
18 new features were introduced in this release. You'll want to take a
look at the
latest Getting Started doc at http://wicketwebbeans.sourceforge.net to see the
new features.
In addition, a snapshot release of support for Databinder
(http://databinder.net) is
available.
Feature Requests
----------------
[1794729] Add Java API as alternative to beanprops
Annotations can now be placed in multiple places: on the Page component, the
bean, and/or a metadata class. You also always have the ability to use
different WWB contexts to implement different layouts with either beanprops
or annotations. Also, a straight Java API based on the annotation
interfaces was added.
In the model.api package there is JBeans, JBean, ... See the doc
for more info.
[1838268] Rename packages
Rename packages from wicket.contrib.webbeans to
net.sourceforge.wicketwebbeans
[1809050] Maven Integration
Maven is now used for builds. Release builds are in the Maven
central repository under
net.sourceforge.wicketwebbeans. Snapshot builds are available from
the repository located
at: http://wicketwebbeans.sourceforge.net/snapshotRepository
[1796306] Support AbstractDetachableModel in place of bean
Actually any type of IModel is now optionally supported in place
of a bean in the
constructor to BeanForm and BeanGridPanel. Models containing
Serializable or Non-Serializable beans can
be attached and detached by Wicket. Even after detach()/attach(), BeanForm
will remain a PropertyChangeListener of the model's bean.
[1833724] Allow bean and tab labels to be resolved from properties
Similar to how property labels are derived from properties files,
allow bean and
tab labels to be derived from there too.
For beans, the property key would be:
{SimpleBeanName}.label = ...
For tabs, the property key would be:
{SimpleBeanName}.tab.{tabId}.label = ...
tab.{tabId}.label = ...
[1826995] Mark required fields
Visually mark fields that have the "required" parameter set true.
bean.css also contains
an example of how to mark the fields.
[1817052] Create a Vertical Layout container
VerticalLayoutBeanPanel is another layout that can be used in
BeanForm in place of
BeanGridPanel. This layout places labels on the left and fields on
the right in a vertical fashion. The labels and fields should form columns
that are evenly aligned.
[1807122] Support multiple parameter values on a custom parameter
Multi-valued parameters are now supported on beans and elements in
beanprops and annotations. This is primarily for custom parameters that
need multiple values.
[1806424] Use Set as well as List
Display and Sorting of any kind of java.util.Collection is supported.
[1803004] Add support for IDataProvider, ISortStateLocator
Enable BeanTablePanel and BeanDataTable in particular for IDataProvider
(for table rows) and ISortStateLocator (for sorting).
IDataProvider would be more
efficient than a List based model as the model data can be
detached as part of the RequestCycle.
[1799074] Allow customization of DateTimeField format
Allows date format to be set for DateTimeField via a "format"
parameter. If not set there, the
format is derived from
DateTimeField.{date|time|datetime|datetimetz}.format in Page's
localizer.
[1798465] Use JPA/Hibernate and JDO annotations
JDO and JPA @Column attributes are supported JDO Support:
@javax.jdo.annotations.Column:
-length - maximum length for Strings
-allowsNull - if false, field is required, else it's not.
-defaultValue - if non-null, the field will default to this value.
Additional Note JPA @Column is @javax.persistence.Column.
For annotations to be detected, they annotation classes MUST be in the
classpath.
JPA Support:
@Column(
-length (for Strings)
-nullable - equates to required true/false
- if insertable and updatable are both false, property is viewOnly
)
No addtional support for Hibernate annotations are required. Hibernate
supports JPA.
[1795653] Reload beanprops on change
Allow beanprops files to be reloaded while app is running. How it stands
now I have to restart the app every time a change to beanprop file is
made, it can be time consuming.
[1795652] Add support for Databinder/HibernateListModels
See [1796306]. IModels (including detachable), Lists, and
IModels containing Lists are now supported for the bean parameter of the
BeanForm constructor. This should also support Databinder's
HibernateListModel.
[1795650] Add required field parameter
Added "required" parameter to AbstractField,
which can be used in beanprops "props:". User must call the following in
their action method when required validation is needed:
if (!beanForm.validateRequired()) {
return;
}
Note that we simply cannot use the Wicket FormComponent.isRequired()
because it doesn't play well with AJAX form submits. The required fields
start popping up as errors right away. Anyway, this gives the developer
control over when required field validation takes place.
[1794936] Derive property labels from property files
Automatically finds a label in a Wicket property file, the
property's key must bean of the form
BeanName.propertyName.label or, failing to find that, propertyName.label.
{BeanName.}action.actionName.label is now supported as well.
[1814157] Provide a metadata provider interface
This can be provided now using the meta data API.
[1814139] Add Ability to Set Custom Container for BeanForm
A "container" parameter was added to beanprops at
the bean level, to the @Bean annotation, and a new BeanForm constructor was
added that takes a container class.
Bug Fixes
---------
[1821753] MetaData superclass not Serializable
[1811839] Center action buttons that appear in grid
[1811142] Actions with images have a black border
[1808364] BeanActionButton looks for actions in the Page class
[1795052] Allow empty blocks in beanprops
[1795051] Don't require a context to be defined for a sub-bean
[1793982] Deduce actions based on component method signatures