ADF Faces Rich Client Components – Marrying JSF and AJAX together

3

AJAX allows for Rich Client Applications on top of standard HTML based Internet technologies. Programming AJAX can be messy and complex. JavaScript libraries like DOJO and BackBase have improved things a lot.

ADF Faces aka Apache MyFaces Trinidad currently has quite a bit of essential AJAX functionality embedded. This provides a much better contained, server side driven but still rich user experiences (see for example: The (AJA)X Files – On the built-in AJAX facilities of ADF Faces for zero-code Rich User Experience).

However, Rich Client applications can go far beyond what ADF Faces can do today. And that is where the ADF Faces Rich Client components come in. There just another set of ADF Faces – i.e. standard JSF API based – components that can be manipulated in IDEs like any old JSF UI Component. But they provide true AJAX (XmlHttpRequest object based) functionality, that is completely controlled from the server: no JavaScript programming is required.

....
 

I have just returned from a presentation by Frank Nimphius from the Oracle ADF Product Management group. It was a very good presentation, with excellent pace and great graphics, all the way from low level AJAX and JSF Overview to a demonstration of these new components.

He demonstrated a RichTable component, that shows a dynamic data grid that allows us to – and this is all done Client Side – move the columns around (drag & drop), resize the columns, scroll the table in a horizontal direction with the rest of the page fixed (Designer fans will recognize the spreadtable) and even one or more columns pinned while the others are scrolled around, as well as scroll the table in a vertical direction, dynamically loading additional records from the server!

Then he showed drag & drop from elements in this table to a Shopping Cart. The table component was contained within one tab of an accordion widget and other tabs could very rapidly be accessed as well.

These are very cool components and once released as part of the ADF Faces/Apache MyFaces Trinidad component set for JSF may very well eliminate the need for using separate libraries such as DOJO.

Frank furthermore explained a little about the architecture of these rich client components:

Client Side:

  • Data Cache
  • Abstract Component Model
  • DHTML Renderering
  • XMLHtppRequest object communication channel
  • JavaScript Client API for adding custom JavaScript functions

This means: rendering takes place on the client! So no rendering by the JSF RenderKit but instead by the UI Components client side counterpart using DHTML based on the XML payload. The developer is completely shielded from the XMLHttpRequest nitty gritty details.

Server Side:

  • JSP (tag) Syntax for specifying the Rich Client components (same as normal JSF UI Components)
  • full JSF Lifecycle integration

Note: Frank’s demo was with JDeveloper 11 (or JDeveloper Fusion as the title bar read).  He would not comment on any timelines, but rumours have it that late this Summer a first Early Access release may be made available on OTN, with at least the RichTable component in it.

Frank made it clear that the ADF Faces Rich Client components will also be donated to the Apache MyFaces Trinidad open source project. Oracle wants to make JSF a success and hopes to contribute towards that end by making this set available. ADF Faces will continue to exist as an Oracle brand too, part of the Oracle Fusion technology stack.

Share.

About Author

Lucas Jellema, active in IT (and with Oracle) since 1994. Oracle ACE Director for Fusion Middleware. Consultant, trainer and instructor on diverse areas including Oracle Database (SQL & PLSQL), Service Oriented Architecture, BPM, ADF, Java in various shapes and forms and many other things. Author of the Oracle Press book: Oracle SOA Suite 11g Handbook. Frequent presenter on conferences such as JavaOne, Oracle OpenWorld, ODTUG Kaleidoscope, Devoxx and OBUG. Presenter for Oracle University Celebrity specials.

3 Comments

  1. Samba Siva Rao on

    Hello Mr.Lucas,
    I’m glad that the JSF, and especially the ADF Faces community is geared up to catch up the race in building Web 2.0 UI kits
    But, There ais miles to go there , not just a dynamic table would convince a Customer to use JSF/ADF.

    Are there any plans to build components like Popup Menus, dropdown(any level ) menus,popup divs ,Resizable components, Layouts on the model of Swing Border Layout ,and other feature rich components?There has been a lot of improvement in this area at YUI or YUI_EXTENSION,dojo,scriptaculous,and other javascript libraries.

    Can we catch the rope and win the race?
    How far do you think are we to get these kind of JSF?ADF Components ?

    Thanks if you can comment!
    Samba.