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