Your next step into a better programming future:
Introduction
The book is an introduction to the ICEfaces framework from the enterprise developers point of view. I started using ICEfaces for productive development in August 2007. The book reflects the development and integration experiences using ICEfaces in a high-availability environment using a Spring/Hibernate stack on a Glassfish/Oracle platform.
The system today delivers a highly customizable user interface presentation for desktop web browsers and mobile devices. Users are free to select a language, time zone, units and the like to present the data suitable to their individual needs. Skinning is a central part of this concept. Customers can get a presentation that is comparable to their own corporate design if necessary.
When I began to design this user interface my idea was to create a desktop-like presentation. The mimic of a desktop application makes a web application more intuitive, because we all use desktop applications daily. The Web 2.0 hype showed that this would soon be a trend even in enterprise development.
ICEfaces delivers components right out of the box to realize desktop-like behavior, for example drag-and-drop. However, I soon realized that for a similar desktop presentation important components where missing. Soon I began to develop Facelets-based components to compensate this.
During writing the outline for this book at the end of 2008 I developed the idea of a full-blown web application sample instead of delivering a collection of code snippets. The application should show how modern web applications based on ICEfaces/Facelets/Spring/JPA are designed. Additionally it should allow to test all examples of the different chapters in one place.
To realize this I took AppFuse to have a basic software stack and adapted its existing JSF support for ICEfaces. The development of a basic collection of Facelets components that would be necessary to implement a desktop-like presentation became the Google Code project ICEfusion. The book sample web application that shows how ICEfaces components and ICEfusion components can be used for the creation of desktop-like user interfaces became the Google Code project ICEcube.
The book is a tutorial that describes how to use Facelets templating, selected ICEfaces components and the complete ICEfusion components set to create a desktop-like web application in a proven method. The ICEfusion components are production-ready and designed for reusability and flexible usage. ICEcube demonstrates this in a kind of component showcase.
The book additionally has a deeper look at the principles and tricks that were used to realize the Facelets-based ICEfusion components. The components for example have tag attributes to hand over complex object structures to the component’s backing bean for further processing. This makes the components usage more intuitive, but this is not part of the original Facelets design.
A second additional topic is AJAX Push. ICEcube delivers a game implementation using “GoogleMap clients” to demonstrate the collaborative behavior. The design of the game is described in detail so that you have a blueprint for even complexer AJAX Push implementations. Here’s a screenshot:

The book is not written for JSF beginners. I mention this because I learned from discussions at JavaRanch and the ICEfaces forum that there are developers who start their first JSF project and plan to use ICEfaces for this. The book also delivers no introduction to Spring. ICEfusion is using Spring-managed beans to be as flexible as possible for backend integration. In both cases I recommend to study one of the well written online tutorials you can find at Sun or SpringSource and their partners. If you understand the JSF and Spring basic concepts you will understand the ICEfaces book.
I recommend to read chapter 1 to 4 in sequence. This delivers the basic design and implementation knowledge to create desktop-like user interfaces. Chapter 8 is necessary to read if you need customization features (language, skinning) for the application. If you implement a collaborative application using AJAX Push you also have to read chapter 10.
Chapter 5 to 7 can be read on demand, if you need details for certain presentation features (like dialogs or dynamic data tables). Chapter 9 is only necessary to read if you implement your own Facelets components.
Table of Contents
I wasn’t able to describe every ICEfaces component on the number of pages the book has. So, the focus is on those components and programming techniques that allow to implement a desktop-like behavior for a Web application. The demand for such applications is rising.
The chapters:
- Next Generation Java Development
Some words about the current standards in JEE Web development and the advantages of ICEfaces. - 2: Development Environment
This chapter takes a look at the tools and frameworks that are used. - User Interface Design
Some basics about how to design a Web application with a desktop-like presentation in mind. - Components for Navigation and Layout
Description of menus and important panels to structure the Web application and standardize the navigation. - Components for Feedback and Behavior
Description of dialogs and other components for a better desktop-like behavior. We have a look at special Facelets components that help to get satisfying results. - Components for Data Presentation and Multimedia
Table, tree, map and chart are important to the Enterprise developer. A Facelets-based dynamic data table is described in detail. - Components for Data Creation and Selection
Forms in general and the partial submit are discussed here. A Facelets-based implementation shows how a validation dialog can be implemented. - User Interface Customization
Design and implementation of user-managed settings. We have a look at language and skin settings in detail. - Reusable Facelets Components
A deeper look at the Facelets-based components of previous chapters to discuss their implementation in detail. - Push Technology
Everything important to push data to the Web browser.
The Code
Here is the ICEcube example code project at Google Code. The ICEfusion source code was used as a base for the example application of the book.
Support
The official forum thread can be found at the ICEfaces forum. Who is talking about icefaces.org right now?
var uservoiceJsHost = (“https:” == document.location.protocol) ? “https://uservoice.com” : “http://cdn.uservoice.com”;
document.write(unescape(“%3Cscript src=’” + uservoiceJsHost + “/javascripts/widgets/tab.js’ type=’text/javascript’%3E%3C/script%3E”))
UserVoice.Popin.setup({
key: ‘icecube’,
host: ‘icecube.uservoice.com’,
forum: ‘general’,
lang: ‘en’
})
Submit an idea
And finally, …

Thanks, for your cooperation.
If you think about writing your own book have a look at what Scott W. Ambler thinks about it
.


Rainer Eschen is an agile coach with a focus on Scrum Project Management.
would be interesting that you mention in your book how to get the best performance.
Sure. But, there's not enough room for all the advanced topics, sorry. Maybe some more blog articles can help here.