Aug 05

New Sticky Component

Sticky is a new addition to PrimeFaces Component Suite to fix a certain content during page scroll to keep it in viewport. Initially the target content is positioned as static and once the scroll position goes beyond a point where the content is not visible, sticky comes in to make it scroll along with the page. Another important feature is the built-in exclusive support for DataTable Headers as this requires special treatment.

Generic Sticky

StickyHeader for DataTable

Demo

Sticky features will be available in upcoming PrimeFaces Elite 3.5.11 and 4.0.

Posted in JSF | 12 Comments
Aug 02

ThemeRoller to PrimeFaces Themes Converter

Creating PrimeFaces is now easier than ever, if you have a theme in zip format designed using ThemeRoller, check out ThemeRoller to PrimeFaces Themes converter by osnode;

The application is simple, you just need to upload the themeroller zip file with the theme name you want and you’ll get a PrimeFaces theme jar in return. Cool thing is, the application itself is created with a PrimeFaces 4.0 build by OSnode.

Posted in PrimeFaces | Comments Off
Aug 01

Deferred Content Loading

OutputPanel component is enhanced with a new deferred loading feature. When this feature option is enabled, on page load content of panel is not loaded along with the page but loaded after the page. Initially panel displays a loading animation after page load to indicate more content is coming up and displays content after ajax update.

This feature is useful to increase page performance, assume you have one part of the page that has components dealing with backend and taking time, with deferred mode on, rest of the page is loaded instantly and time taking process is loaded afterwards with ajax.

Live demo is available at PrimeFaces Showcase.

Posted in JSF | 6 Comments
Jul 29

PrimeFaces Elite 3.5.10 Released

PrimeFaces Team is pleased to announce a new ELITE Release. 3.5.10 is available one week earlier than the plan due to some issues being urgent to PRO users. This release is a pure maintenance release featuring;

Posted in JSF | 2 Comments
Jul 25

PrimeUI 0.9.6 Released

PrimeUI 0.9.6 is now available featuring a Theme Gallery and the new Terminal Widget. PrimeFaces Themes have been ported to PrimeUI and they are available at PrimeUI Theme Gallery.

Also PrimeFaces Terminal Component is ported as a PrimeUI Widget. Online demo is integrated with a Jersey JAX-RS service to process command with ajax.

Download

Development and Production versions of PrimeUI is bundled along with the themes and the bundle is available at PrimeFaces Downloads Page.

Roadmap

PrimeUI 1.0 Release is aligned with PrimeFaces 4.0 that is right before JavaOne 2013, late september. 1.0 will bring the Tree widget and provide new features to datatable.

Posted in PrimeUI | 1 Comment
Jul 22

PrimeFaces Elite 3.5.9 Released

PrimeFaces Team is pleased to announce a new Elite release. 3.5.9 is an important upgrade featuring 35 improvements making close 200 improvements over 3.5 release. Highlight of this release is the brand new html5 fileupload component that fixes problems of old one and adds new handy features. There is also significant amount of maintenance work, updates to latest jQuery Stack, resource versioning, cross-side scripting fixes and enhancements to improve the overall quality of PrimeFaces.

PrimeFaces Sentinel (4.0) is under heavy development and due to unstable nature it is  not suggested to be used in production. Until Sentinel is ready (before JavaOne 2013, late september) we’ll keep providing Elite Releases on 3.5.x line to provide a high quality library for Elite Subscribers.

Download

Binaries, Sources, Javadocs and Tag docs are available in PrimeFaces Elite Portal for Elite Subscribers (20$ per month) as an official release bundle. PrimeFaces PRO Users can access the files from PRO Portal.

Posted in JSF | 12 Comments
Jul 18

MultiSelectListbox

I’ve seen the following UI on various e-commerce websites to select a certain item from a hierarchical group of categories like movies, books, travel, outdoor, sports, electronic and more where each category has nested categories. This has been the inspiration for the new MultiSelectListbox Component for PrimeFaces 4.0 codename Sentinel.

The component receives a collection of SelectItemGroup instances where each instances has children SelectItemGroups and/or SelectItems. Component only allows SelectItems to be selected not groups as SelectItemGroup has no value in JSF API.

Online demo is available PrimeFaces Showcase.

Posted in JSF | 8 Comments
Jul 17

Brand New HTML5 FileUpload

FileUpload component has been rewritten from scratch to fix the problems of old one and provide new features. It is powered by HTML5 (File API) and has graceful degradation for legacy browsers (e.g. IE8, IE9).

  • Two modes (Simple and Advanced)
  • Multiple file selection from file dialog
  • Progress Tracking
  • DragDrop support from filesystem
  • Graceful Degradation (e.g. IFrame uploads instead of XHR2)
  • Merge mode to send all files in one request
  • Commons FileUpload for JSF 2.1 and Servlet 3.0 Multipart for JSF 2.2
  • Customizable Image Preview
  • File count limit, size limit and type limit.
  • Auto Uploads
  • Callbacks like start, error and complete
  • Customizable validation error messages

New FileUpload will be available in PrimeFaces ELITE 3.5.9 and 4.0 (codename SENTINEL).

Posted in JSF | 16 Comments
Jul 15

Reset Values for JSF 2.2

Prior to 2.2, JSF had a problem with keeping component values in case validation fails, the problem has been described in detail at;

During JSF 2.2 Specification process, I brought this up the EG hoping for a standard solution and with the help of Ed Burns, Kito Mann and other members, we came up with a new attribute called resetValues for f:ajax and f:resetValues for non-ajax requests.

Thanks to Thomas Andraschko, PrimeFaces 4.0 also has the PrimeFaces implementation of these JSF 2.2 changes, p:ajax has resetValues option and f:resetInput is likely to be renamed to f:resetValues. Note that f:resetInput also exists in PrimeFaces 3.4.+ in addition to programmatic RequestContext.reset utility. As 4.0 is planned to support JSF 2.1 as well, 2.1 users who can’t migrate to 2.2 in near future can also use these reset enhancements since PrimeFaces 4.0 provides a compatible implementation for both.

Posted in JSF | 5 Comments
Jul 10

Search Expression Framework

In JSF API, UIComponent#findComponent only accepts id expressions.
In the render/execute attribute of f:ajax, you can also reference components by some special keywords:

  • @this
  • @form
  • @parent
  • @all
  • @none

In PrimeFaces 3.x, we already improved the findComponent logic by adding some new features like @namingcontainer and PrimeFaces Selectors. PrimeFaces Selectors aka provides the ability to reference components by JQuery selectors e.g. (@(:input:disabled), @(.ui-datatable .ui-panel)).

For PrimeFaces 4.x, we have taken this to the next level. Thomas Andraschko completely over-worked our search expression logic and created a modular framework with new features and enhancements to resolve some problems.

New Keywords

  • @composite resolves the closest CompositeComponent parent
  • @widgetVar(name) resolves a component by its widgetVar
  • @child(index) resolves the nth child

Combinable keywords are also supported;

  • @form:@parent
  • @composite:myButton
  • @this:@parent:@parent
  • @form:@child(2)

Demo

Sample expressions demo is available at PrimeFaces Showcase.

Roadmap

This expressions can be used for all component in PrimeFaces, not only in the process and update attributes! Ajax, CommandButton, Watermark, Printer and many more!

Some components requires to resolve the UIComponent instance on the server side, so PFS and @widgetVar are not available for all attributes. These are considered as client side expressions only.

NOTE:

  • Client side expressions are also NOT safe as server side expressions.
  • If a server side expression can’t be resolved, we throw an exception.
  • If your selector is wrong, the component will just not be found.
Posted in JSF | 7 Comments