What’s New in the ICEfaces 3.2 Beta?

The ICEfaces 3.2 Beta release is out now and introduces the following key new features:

New ACE Components

  • ace:gMap
    • All-new implementation based on Google Maps JavaScript API v3.
    • The ace:gMap component has a large number of helper subcomponents:
      • ace:gMapControl – Modify the controls that appear on the map (overview, pan, rotate, scale, streetview, zoom).
      • ace:gMapInfoWindow – displays a pop-up window that can display either straight text information, or nested html code. If placed within a gMap, it will render at the locations given by its latitude and longitude attributes. If it is placed inside an ace:gMapMarker, it will bind to that marker and move to whatever location it occupies.
      • ace:gMapLayer – activates a layer on the parent gMap that’s designed to provide an alternative visual, such as displaying bike paths, traffic, or third-party KML data.
      • ace:gMapMarker – places a marker upon the map in the desired coordinates to be used for designating points of interest or important locations.
      • ace:gMapOverlay – allows the user to create a shape of their choosing on the map.
      • ace:gMapServices – is an access point to the services portion of the api and will return information about the specified points, such as maximum zoom, or height. Directions are also specified through this subcomponent.
    • Requires that a valid Google Maps v3 API key be specified by setting the ‘org.icefaces.ace.gmapKey’ parameter in the web.xml.
    • See the new ace:gMap demos in the ICEfaces Showcase sample application.
  • ace:tree
    • Includes the ace:node sub-component.
    • Supports Client (static) and Server (dynamic) modes, including lazy-loading w/ caching
    • Single/Multiple node selection
    • Drag & drop to reposition nodes
    • Ajax updates update node regions rather than entire component (improves scalability with large trees)
    • Tree & per node configuration of selection, expansion, reordering
    • Flexible sizing, layout will remain consistent no matter the size of node content
    • Ajax behaviours for (de)select / expand / contract / reorder
    • See the new ace:tree demos in the ICEfaces Showcase sample application.
  • ace:submitMonitor
    • Monitors all submits to the server and indicates the status of the submits while in progress.
    • Can be made modal to block UI inputs during submits.
    • Optionally reports server and network connection errors, and session expiry.
    • Supports configurable text labels and image state indicators, or facets for a fully configurable UI.
    • Can be targeted to a complete page, or one or more containers or components within a page.
    • Multiple ace:submitMonitors can be used on the same page to customize behaviours for different component events or submit types.
    • See the new ace:submitMonitor demos in the ICEfaces Showcase sample application.

Updated and Enhanced Components:

  • ace:ajax
    • Now merges multiple Client Events when triggered by the same user-action into a single submit.
    • With the merging of ace:ajax requests, client side listeners for the same event are run in facelet order, and server side listeners are all called once on a single request.
    • Improvement over standard f:ajax behaviour of triggering multiple sequential submits, one for each client event triggered.
  • ace:dataExporter
    • New support for custom exporter implementations:
      • Includes the new OuterTableCSVExporter and InnerTableCSVExporter custom exporter types.
      • These custom exporters can be used to export nested ace:dataTables to CSV format.
      • See the new ace:dataExporter -> Custom Exporter demo in the ICEfaces Showcase sample application.
    • Data can now optionally be exported with the column ordering established by the user in the client, or in the originally specified order.
  • ace:dataTable
    • Optimized event initialization for improved performance with large tables.
    • Now cancels sort or filter operations when the form fails validation.
  • ace:tooltip
    • New “forDelegate” attribute – Specifies the id of the component that will receive the tooltip listeners on behalf of the component specified in the “for” attribute (using the new ace:delegate component).
    • Useful when the tooltip component is outside a datatable or iterative container and references a component inside such container.
    • Improves performance by avoiding the creation of tooltip objects in each each row. It also guards against dynamic updates that could replace the component and make it lose its tooltip listeners.

Core Framework

  • New support for Ordered Resource Loading
    • Many times required resources need to be loaded in a specified order. Unfortunately JSF doesn’t provide any mechanism for ordering the resources.
    • Resources can now be loaded based on declared resource interdependencies.
    • Resource dependencies can be specified via a new resource-dependency.xml configuration file.
      • See icefaces/samples/showcase/showcase/src/main/resources/META-INF/resource-dependency.xml for an example implementation.
  • New WindowScopeBeanLocator API
    • Access WindowScope beans from other contexts.
    • WindowScopeBeanLocator.lookupBean(HttpServletRequest request, String name) can be used to lookup a bean by its name in the current window scope.

Samples & Tutorials

  • ICEfaces Showcase Sample Application
    • A large set of new demonstration panels have been added to illustrate key features of the new and improved ACE components.
    • Added a new ace:fileEntry callback demo to illustrate advanced custom file validation features
  • Tutorials
    • Updated the Easy Ajax Push tutorial for current ICEfaces release
    • Enhanced the fileEntry callback tutorial to show custom failure types

See the Release Notes for details.

ICEfaces 3.2 final is planned for late October.

Leave a Reply

Your email address will not be published. Required fields are marked *

12 − 9 =