Summary
Infragistics released a new JSF component framework that provides rich-client Ajax components as well as a framework that simplifies interaction with Ajax from JSF. Artima spoke with Infragistics Java product manager Tom Hammell about the new release.
Advertisement
Infragistics released NetAdvantage for JSF 2006, an Ajax-enabled JSF component toolkit and framework. "The toolkit includes grids, tables, input controls, date choosers, and other components, as well as an associated framework that helps keep your components in sync," says Tom Hammell, Infragistics Java product manager in an interview with Artima.
The current product release is an outcome of Infragistics' acquisition of the JSF component firm Otrix earlier this year. "Although this is the first release of our JSF components, these are really Otrix components, and are very mature," says Hammell.
As with other client frameworks that combine JSF and Ajax, the main benefit of NetAdvantage is that it hides from the developer the complexity of having to deal with client-side JavaScript. "Our job is pretty hard, because the event model and the way JavaScript is supported are all quite different [on different browsers]. We encapsulate [those differences], so the developer doesn't have to worry about them," notes Hammell.
"The JSF programming model dictates that you use tags on your pages to create your components, and any interaction you want with a component [occurs] through method bindings or value bindings, which are done in the backing bean. If the user wants to interact with the component, that's all done through the main JSF part, and you don't have to touch JavaScript. The JavaScript is there, because that's how we hook up the framework, but the developer doesn't have to worry about it," adds Hammell.
A common Ajax development pattern is user interaction with one component that must trigger changes in the state of related components on a page. Hammell pointed out that NetAdvantage provides a "smart refresh" technology that eases implementing that pattern. "Let's say you have a drop-down menu [for] choosing from a list of countries and, when you choose a country, you may want to update a couple of [other] components on the page. [With smart refresh], you can specify a list of components that will be updated when one other component is updated."
"The way this works is that each component has an ID, and when you get a value change event on a component, we go to the Faces context that contains the view information for all the components in the model. We visit each of those components and rebind [its] data. That's provided by the framework, and the developer doesn't have to write that logic."
Adding dynamic interaction features to user-interface components is only part of the benefits of an Ajax framework, adds Hammell. "When we say a component is Ajax-enabled, what we really mean is that the component looks like an API from a programmer's perspective... What we're trying to do is give you a Swing-like developer experience. There are events that you hook into, and event handlers in the backing beans. From the developer's point of view, the fact that we use Ajax [for component interaction] is not that important."
Indeed, Hammell pointed out that Infragistics is a general component vendor that brings its experience developing component frameworks to the Ajax and JSF space. "We provide components for any platform that [that] makes sense. In the NetAdvantage for JSF suite, we use Ajax because we believe [Ajax] allows us to do this dynamic update the best at the moment. But in the future, there may be something better."
Additional NetAdvantage features include:
The component styling can be affected with CSS
Built-in multi-language and translation
Accessibility support (Section 508)
Supports all the major application servers including BEA Weblogic, IBM WebSphere, JBoss, Tomcat, Caucho Resin, and Sun Java System Application Server