ICEfaces® Developer’s Guide Contents. This documentation is for ICEfaces Click here to see the current ICEfaces release documentation (3.x). ICEfaces documentation – Release Notes, Getting Started Guide, Key Concepts, Core Framework, ICEfaces Downloads Tab. ICEfaces Developer’s Guide. The ICEfaces® Developer’s Guide is your manual to developing ICEfaces applications. By reading through this guide, you will: Gain a basic.
|Country:||Sao Tome and Principe|
|Published (Last):||2 November 2008|
|PDF File Size:||10.1 Mb|
|ePub File Size:||7.36 Mb|
|Price:||Free* [*Free Regsitration Required]|
The content in this guide is protected under copyright law even if it is not distributed with software that includes an end user license agreement. The content of this guide is furnished for informational use only, is subject to change without notice, and should not be construed as a devwloper by ICEsoft Technologies, Inc.
All other trademarks mentioned herein are the property of their respective owners. By reading through this guide, you will: This guide contains the following chapters organized to assist you with developing ICEfaces applications: Key Concepts — Explores some of the key concepts and mechanisms that ICEfaces brings to the application developer.
Additional JSF resources can be found on the icefaces. In addition, important time-saving Known Issues and detailed information about supported browsers, application servers, portal containers, and IDEs can also be found in this document. Partial Submit Based on OnBlur Drag and Drop Concept ICEfaces with Push Server Additionally, ICEfaces provides an extensive Ajax-enabled component suite that facilitates rapid iefaces of rich interactive web-based applications. The basic architecture of an ICEfaces-enabled application is shown in Figure 1 below.
Only elements of the presentation that have changed are updated during the render phase. These enhanced presentation features of ICEfaces are completely transparent from the application development perspective. Specifically, the developer can incorporate these features: Partial Submit automatically submits a form for processing based on some user-initiated event, such as tabbing between fields in a iicefaces.
ICEfaces® Developer’s Guide Contents
The automatic submission is partial, in that only partial validation of the form will occur empty fields are marked as not required.
Using this mechanism, the application can react intelligently as the user interacts with the form. Standard JSF applications can only deliver presentation changes in response to a user-initiated event, typically some type of form submit. ICEfaces introduces a trigger mechanism that allows the server-resident application logic to push presentation changes to the client browser in response to changes in the application state.
This enables application developers to design systems that deliver data to the user in a near- real-time asynchronous fashion. Figure 2 below illustrates the basic ICEfaces architecture. When an initial page request into the application is made, the Persistent Faces Servlet is tuide for executing the JSF lifecycle for the associated request.
Responsible for managing all blocking and non-blocking requests after initial page rendering. Responsible for assembling a component tree from a JSP Document. The Parser executes the JSP tag processing lifecycle in order to create the tree, but does this once only for each page. Responsible for writing into the DOM. Responsible for serializing the DOM for fuide page response. Provides a comprehensive set of rich JSF components that leverage Ajax features of the bridge and provide the basic building blocks for ICEfaces applications.
Responsible for ongoing DOM update request generation and response processing. Also responsible for focus management and submit processing. As such, an ICEfaces application page is composed of a JSF component tree that represents the presentation for that page, and the backing beans that contain the application data model and business logic. All standard JSF mechanisms such as validation, conversion, and event processing are available to the ICEfaces application developer, and the standard JSF lifecycle guidd.
The following sections explore some of the key concepts and mechanisms that ICEfaces brings to the application developer. This process is illustrated in Figure 4. There are no other considerations from the developer perspective.
Direct-to-DOM rendering is completely transparent in the development process. This basic concept is illustrated in Figure 5, p. As the presentation layer changes during a render pass, those changes are seamlessly realized in the client browser. Armed with incremental Direct-to-DOM rendering, you can begin to imagine a more dynamic presentation environment for the user. You no icffaces have to design pages around the full page refresh model.
Instead, you can consider fine-grained manipulation of the page to achieve rich effects in the application. For example, selective content presentation, based on application state, becomes easy to implement. Components can simply include value bindings on their isRendered attribute to programmatically control what elements of the presentation are rendered for any given application state.
From the perspective of the server-resident application, we refer to this as a synchronous update. The update is initiated from the client and is handled synchronously at the server while the presentation is updated in the response. A synchronous update for ICEfaces is illustrated in Figure 6, p. Figure 6 Synchronous Updates One serious deficiency with synchronous updates is that the application requires a client-generated request before it can affect presentation layer changes.
If an application state change occurs during a period of client inactivity, there is no means to present changing information to the user. ICEfaces overcomes this deficiency with an asynchronous update mode that facilitates driving asynchronous presentation changes to the client, based on server-side application state changes. Again, the Ajax bridge facilitates ongoing asynchronous updates through the use of asynchronous XMLHttpRequests that are fulfilled when DOM updates become available due to a render pass.
Because the process leverages incremental Direct-to-DOM updates for asynchronous presentation changes, you can expect these changes to occur in a smooth, flicker-free manner. Trigger mechanisms are entirely under developer control and can include standard JSF mechanisms like ValueChangeEvents, or any other outside stimulus.
Because it is important to manage the asynchronous rendering process in a scalable and performant manner, ICEfaces provides a Server-initiated Rendering API and implementation. See Server-initiated Rendering Ajax Pushp. Running in synchronous mode reduces the connection resource requirements for an application deployment. When ICEfaces is running in asynchronous mode, it is possible for an outstanding request to remain open for an extended period of time.
Depending on the deployment environment, it is possible for a long-lived connection to be lost, resulting in the loss of asynchronous updates. ICEfaces provides connection management facilities that allow the application to react to connection-related errors. See Connection Management, p.
ICEfaces 4.x Documentation
For this reason, ICEfaces provides connection heartbeating and status monitoring facilities in the client-side Ajax bridge, and a Connection Status component to convey connection status information to the user interface.
Additionally, ICEfaces provides the ability to automatically redirect to an error page when the connection is lost. In ICEfaces, this is achieved by causing the JSF lifecycle render phase to execute devrloper reaction to some state change within the application. The PersistentFacesState provides this API, and facilitates low-level server-initiated rendering on a per-client basis. In order to overcome these potential pitfalls, ICEfaces provides a high-performance, scalable Server-initiated Rendering API, and strongly discourages the use develpper the low-level render call.
The server-initiated rendering architecture is illustrated in Figure 8. Figure 8 Server-initiated Rendering Architecture The key elements of the architecture are: Renderable A request-scoped bean that implements the Renderable interface and associates the bean with a specific PersistentFacesState.
Typically, there will be a single Renderable per client. RenderManager An application-scoped bean that manages all rendering requests through the RenderHub and a set of named GroupAsyncRenderers. GroupAsyncRenderer Supports rendering of a group of Renderables. GroupAsyncRenderers can support lcefaces, interval, and delayed rendering of a group. In JSF, the normal submit mechanism initiates the JSF application lifecycle, and as such, capabilities like client-side validation are not supported.
The granularity at which partial submits occur is entirely under developer control.
In certain cases, it may be appropriate to evaluate and react to user input on a per-keystroke-basis, and in other cases, it may be appropriate as focus moves between controls. In still other cases, only specific controls in the form would initiate a partial submit. Figure 9 Partial Submit Based on OnBlur The backing application logic associated with a partial submit is also entirely under developer control.
The standard JSF validator mechanism can be leveraged, or any other arbitrarily complex or simple evaluation logic can be applied. If standard JSF validators are used, it is important to design these validators to facilitate partial submits.
Using valueChangedEvents associated with these input controls, it is possible to do inter-field analysis and morph develpoer form based on current input. For example, entering a valid City will cause the State input control to change from an input text control to a select-one-of-many controls containing only the States that have a matching City.
The JSF specification includes a number of standard components, but also provides for adding custom components to the Gkide runtime environment. This extensible component architecture is leveraged in ICEfaces to support the standard components as well as several collections of custom components.
ICEfaces Developer’s Guide v1.8
Table 1 identifies the component libraries name spaces that ICEfaces supports. See Components Reference, p. This means that when the ICEfaces Component Suite is used to develop applications, those applications can be quickly and consistently re-skinned with a different look by replacing the CSS with a new CSS.
Any panelGroup can be set to a drop target as well by setting the dropTarget attribute to true. Figure 10 Drag and Drop Concept Draggable panels can optionally have animation effects that modify their behavior and appearance panels.