/**
* Called when a null model is about to be retrieved in order to allow a subclass to provide an
* initial model.
* <p>
* By default this implementation looks components in the parent chain owning a
* {@link IComponentInheritedModel} to provide a model for this component via
* {@link IComponentInheritedModel#wrapOnInheritance(Component)}.
* <p>
* For example a {@link FormComponent} has the opportunity to instantiate a model on the fly
* using its {@code id} and the containing {@link Form}'s model, if the form holds a
* {@link CompoundPropertyModel}.
*
* @return The model
*/
protected IModel<?> initModel()
{
IModel<?> foundModel = null;
// Search parents for IComponentInheritedModel (i.e. CompoundPropertyModel)
for (Component current = getParent(); current != null; current = current.getParent())
{
// Get model
// Don't call the getModel() that could initialize many in between
// completely useless models.
// IModel model = current.getDefaultModel();
IModel<?> model = current.getModelImpl();
if (model instanceof IWrapModel && !(model instanceof IComponentInheritedModel))
{
model = ((IWrapModel<?>)model).getWrappedModel();
}
if (model instanceof IComponentInheritedModel)
{
// return the shared inherited
foundModel = ((IComponentInheritedModel<?>)model).wrapOnInheritance(this);
setFlag(FLAG_INHERITABLE_MODEL, true);
break;
}
}
// No model for this component!
return foundModel;
}
(WWB) is a Wicket component toolkit for displaying and editing JavaBeans. Web pages are automatically generated based on bean properties and conventions. If necessary, the layout, editability, and actions of these pages can be customized. At the highest-level, WWB's BeanForm component provides rich AJAX form functionality. The form is embedded in a Page designed by you. This allows you to create customized page designs and multiple BeanForms to be incorporated on a single page.Other lower-level components may be used independently of BeanForm (e.g., BeanGridPanel). BeanForm makes it very convenient to implement a bean-based form if you don't want to go to a lot of extra work. You focus on the model (beans), Fields within a form are dynamically sent back to the server-side bean as they are changed, which eliminates the typical form submit cycle. This makes WWB act more like a rich client application and less like a standard forms-based application.
I have been using Wicket for a while now and I’ve occasionally wondered if GWT provides any kind of advantage over Wicket. Here is a comparison and instead of coding a simple “Hello World” kind of example, here is something a little more complex. Functionality The target functionality is a one-page application that shows data in a single table. Item counts are displayed categorized under multiple “spaces” (workspaces). There is a summary row. The user can click on a space to expand the count of items grouped by status. Some of the tricky parts are: * The number and names of the possible status types can be different for different spaces. * Some of the table cells have to be merged to represent the grouping by space and then by status. * the style / color of the different cells has to be controlled to differentiate the total count from that grouped by status. Let's look at the Java code common to the GWT and Wicket implementations.
Wicket is a lightweight, component-oriented framework that does much to bring the easy, intuitive interfaces found in desktop applications to Java Web development. In this series Nathan Hamblen (of databinder and coderspiel blog ) introduces key aspects of Wicket that differentiate it from other Web application frameworks This first ( of 3 ) article investigates Wicket's virtual state, demonstrating the many ways Wicket accommodates both stateless and stateful Web application development.
Java PureFaces is a layer on top of JSF that simplifies implementation. The article here is the aggregate of the blog posts that I have written on our blog. The framework is not yet made public, and we are looking to see if there is interest in us releasing it as an open-source project. We are not a JSF framework company; we develop web applications. This framework is a result of our experience with the tools with which we were already working.
Maven Archetypes for Web Applications
This page contains maven archetypes to help you quickly and easily get started on a web project that uses the jetty plugin. Each archetype allows you to generate a template for your project based on the included sample web application. (This supposes that maven 2.x is already installed in your system)