New Components
- Select Boolean Checkbox – an extended version of the standard <h:selectBooleanCheckbox> component that adds tri-state support, customizing checkbox images, and state-dependent styles.
Enhancements
- Extended validation framework: added the possibility for annotation-based validation with <o:validateAll> tag.
- Added client-side API for the Spinner component: getValue/setValue functions.
- Added client-side API for the InputText and InputTextarea components: getValue/setValue functions.
- Extended client-side API for TabSet and TabbedPane components: added getTabCount and getPageCount functions respectively.
- Extended client-side API for TwoListSelection component: added selectAll and unselectAll functions.
- Added the scrollTime attribute of <o:dayTable> tag, which allows specifying and saving of the DayTable's scroll position.
- Added a possibility to create custom DayTable event editors using the new <o:customEventEditor> tag.
- DayTable's EventEditorDialog component is now based on a Window component instead of PopupLayer.
- Added resource selector to DayTable event editor dialog.
- Added an ability for customizing styles of the components inside of DayTable event editor dialog.
- Added support for standard and custom (onshow/onhide) events to the Window component.
- Added hideByEsc attribute for PopupLayer, Window and Confirmation components, which closes a modal window on pressing the Esc key.
- Added typingAllowed attribute for DateChooser component to enable scenario where a date should only be selectable from drop-down calendar.
Resolved Issues
- Fixed saving of current DayTable's day after form submission and added two-side binding support for the day attribute of <o:dayTable> tag.
- Fixed "searchField" filter field alignment within table cell under standards compliance rendering mode (in all browsers except IE).
- Fixed focus handling for modal windows.
- Fixed a problem with scrolling a DropDownField/SuggestionField located in a draggable PopupLayer.
- Paddings applied to captionStyle/captionClass of Window/FoldingPanel components don't affect caption buttons anymore.
- Fixed ClassCastException when using <o:validateRegex> on an input component with converter.
- Fixed "util.js was loaded twice" error that occurred in some configurations.
- Fixed indefinite growing of browser window when resizing a side panel in BorderLayoutPanel component.
- The width and height CSS properties values in percent aren't recalculated for the BorderLayoutPanel component by the browser window resizing.
- Fixed using the captionStyle attribute of <o:sidePanel> tag in JSP.
- Fixed rolloverStyle and splitterRolloverStyle attributes functionality in <o:sidePanel> tag.
Created a New Compatibility Demo
A new demo was created that demonstrates compatibility of OpenFaces library with RichFaces library. You can browse the demo online, and download the demo source code.
Extracted Automated Testing Subsystem as a Separate Project
As part of writing automated tests for OpenFaces components, we've developed a subsystem that simplifies writing automated tests for OpenFaces components and HTML-based applications in general. We figured out that this code may be useful not only for this project, but for other JSF- and other web development projects alike. So we've decided to extract this code into a separate project – Selenium Inspector. There's also an add-on for Selenium Inspector that focuses on testing OpenFaces components which might be helpful if you're writing automated tests for OpenFaces-based applications. This add-on is already included into the standard distribution of Selenium Inspector and it can be downloaded here.
API Changes
| Component | Change Description |
|---|---|
| BorderLayoutPanel | Removed onblur and onfocus client-side as they are not applicable to BorderLayoutPanel |
| DayTable | eventBackgroundTransparencyLevel and eventBackgroundIntensityLevel attributes of <o:dayTable> tag have been moved to <o:timetableEvent> tag and renamed tobackgroundTransparencyLevel and backgroundIntensityLevel approproately. |
| DayTable | Renamed client-side functions previous() and next() to previousDay() and nextDay() appropriately. |
| Spinner | The type of Spinner's minValue, maxValue and step attributes was changed from int to java.lang.Number to allow future support of floating-point numbers. |
| TwoListSelection | Renamed attribute allowSorting to sortingAllowed |
| TwoListSelection | Renamed attribute allowItemsOrdering to reorderingAllowed |