Project Woodstock 4.1 continues to offer additional Java Server Faces-based user interface components. This version includes Ajax enabled basic components, dynamic validation for a text field, plus 5 new Ajax enabled components. Woodstock 4.1 is an open source development effort which is included in NetBeans 6.0.
Project Woodstock requires a Java EE 5 compliant web container, includes support for facelets, enhanced basic components, text field dynamic validation (optionally), text area autosave (optionally), plus a new accordion component, bubble help component, editable field component, popup menu componnet and Ajax-enabled table, as well as the usual round of bug fixes.
The main motivation for Project Woodstock 4.1 is to provide additional consumer requested components as well as enhancements to existing components.
1.4.1 Development
The main features of Woodstock include: client side renderers for the basic components; support for facelets, dynamic validation for the text field, phase 1 of the next generation table, accordion, bubble help, popup menu, and editable field components, along with bug fixes. The development phase posts bi-weekly builds to woodstock.dev.java.net.
1.4.2 Quality Assurance/Testing
The quality criteria will be specified in the Woodstock Test Plan and will include testing for component run time behavior, component Visual Web design time behavior, automation coverage, minimal performance measurements, as well as platform and browser support.
1.4.3 Documentation
Documentation includes on-line documentation, as well as TLD/JavaDoc information.
The build schedule is posted on the Project Woodstock java.net web site at:
https://woodstock.dev.java.net/ProjectRoadmap.htm
1.5.2 Dependencies on Non-Sun Projects
1.5.3 Sun Projects Depending on this Project
1.5.5 Related Active Projects
1.5.6 Suggested Projects to Enhance this Program
There are several:
- Continue to evolve the Sun theme
- Continue to add additional Ajax enabled components
- Continue to Ajax enable several of the existing components
All web user interface component libraries can be compared at this web site:
http://www.jsfmatrix.net/
Project Woodstock 4.1 continues to offer components based upon the architecture described in LSARC/2006/468.
2.2.1.1 Exported Component Interfaces
| Interface Name | Proposed Stability Classification | Specified in What Document? | Former Stability Classification or Other Comments |
| JSF URI |
Committed |
http://www.sun.com/webui/webuijsf |
External
reference to the TLD document, which maps to the webui-jsf.tld file in
the webui.jar |
| Facelets taglib |
Committed |
woodstock.taglib.xml |
Facelets taglib support in
the webui.jar |
| Theme name |
Committed |
suntheme |
Used to disambiguate name
spaces for themed resources in each major release |
| JSP Tags |
Committed |
TLD documentation |
webuijsf:tag_name |
| Tag Attributes |
Committed |
TLD documentation |
Attributes table in each
tag's tld document |
| JSP Java Tag Handler Classes |
Uncommitted |
Auto generated tag classes
(should never be referenced directly by applications) |
com.sun.webui.jsf.component.component_nameTag |
| JSF Java Component Classes |
Committed |
javadocs |
com.sun.webui.jsf.component.component_name |
| Theme Java Classes |
Committed |
javadocs | com.sun.webui.theme.* |
| JSF Java Renderer Classes |
Private |
com.sun.webui.jsf.renderkit.* |
|
| Javascript methods |
Committed |
TLD documentation |
Client Side Javascript
Functions section |
| Javascript events |
Committed |
TLD documentation |
Client Side javascript
Events section |
| Javascript object properties |
Committed |
TLD documentation |
setProps method definition
in Client Side Javascript Functions section |
| HTML templates |
Uncommitted |
Included as resource strings
in the themes jar. |
com/sun/webui/jsf/theme_name/css com/sun/webui/jsf/theme_name/templates |
| faces-config parameters |
Committed |
faces-config.xml |
com.sun.webui.jsf.component_ame com.sun.webui.jsf.ajax.component_name com.sun.webui.jsf.designtime.component_name com.sun.webui.jsf.widget.component_name |
| Help JSP pages |
Uncommitted |
Help
JSP
files |
JSP files for popup Help
component |
| Theme Resource Keys |
Committed |
javadocs |
com.sun.webui.jsf.theme.ThemeImages ocm.sun.webui.jsf.theme.ThemeJavascript com.sun.webui.jsf.theme.ThemeStyles com.sun.webui.jsf.theme.ThemeTemplates |
2.2.1.2 New Components Interfaces
This table identifies for new components in this release.
| Interface Name | Proposed Stability Classification | Specified in What Document? | Former Stability Classification or Other Comments |
| Accordion |
Committed |
Functional specs | Accordian Functional Spec |
| Editable Field |
Committed |
Functional specs | EditableField Functional Spec |
| Dynamic Validation |
Committed |
TLD documentation |
See autoValidate attribute
and Example 3 in TextField tag |
| Popup Menu |
Committed |
Functional
specs |
PopupMenu Functional Spec |
| Bubble Help |
Committed |
Functional specs | BubbleHelp Functional Spec |
| Enhanced Table |
Committed |
Functional specs | Ajac Table Functional Spec |
| Login |
Committed |
Functional specs | Login Functonal Spec |
| Interface Name | Proposed Stability Classification | Specified in What Document? | Former Stability Classification or Other Comments |
| Button javascript functions |
Obsolete |
Sec. 2.2.3.1 |
webui.suntheme.button.* |
| CheckBox javascript functions |
Obsolete |
Sec. 2.2.3.2 |
webui.suntheme.checkbox.* |
| DropDown javascript functions |
Obsolete |
Sec. 2.2.3.3 |
webui.suntheme.dropDown.* |
| Field javascript functions |
Obsolete |
Sec. 2.2.3.4 |
webui.suntheme.field.* |
| Hyperlink javascript functions |
Obsolete |
Sec. 2.2.3.5 |
webui.suntheme.hyperlink.* |
| Listbox javascript functions |
Obsolete |
Sec. 2.2.3.6 |
webui.suntheme.listbox.* |
| RadioButton javascript functions |
Obsolete |
Sec. 2.2.3.7 |
webui.suntheme.rbcb.* webui.suntheme.radiobutton.* |
| Interface Name | Proposed Stability Classification | Specified in What Document? | Former Stability Classification or Other Comments |
| Java Server Faces 1.2 |
Standard |
JSR 252 |
|
| JavaServer Pages 2.1 |
Standard |
JSR 245 |
|
| Java Servlet 2.5 |
Standard |
JSR 154 |
|
| JSF DynaFaces |
Unstable |
JSF Extensions |
com.sun.faces.extensions.avatar.* com.sun.faces.extensions.common.* |
| dojo Javascript |
External |
dojo Toolkit, version 0.4 |
dojo I/O functions, dojo
event
functions, dojo widget functions |
| Prototype |
External |
Prototype JavaScript Framework |
Utility classes for client
side renderers |
| JSON |
External |
JSON in Java |
Utility classes for
formatting
JSON objects |
| Java SE 5 |
Standard |
Java SE 5 |
webui.suntheme.button.isSecondary()webui.suntheme.button.setSecondary(secondary)webui.suntheme.button.isPrimary()webui.suntheme.button.setPrimary(primary)webui.suntheme.button.isMini()webui.suntheme.button.setMini(mini)webui.suntheme.button.getDisabled()webui.suntheme.button.setDisabled(disabled)webui.suntheme.button.getVisible()webui.suntheme.button.setVisible(show)webui.suntheme.button.getText()webui.suntheme.button.setText(text)webui.suntheme.button.click()webui.suntheme.checkbox.setChecked(elementId, checked)
webui.suntheme.checkbox.setDisabled(elementId, disabled)
webui.suntheme.checkbox.setGroupDisabled(elementId, disabled)
webui.suntheme.dropDown.getSelectElement(elementId)
webui.suntheme.dropDown.getSelectedValue(elementId)
webui.suntheme.dropDown.getSelectedLabel(elementId)
webui.suntheme.dropDown.setDisabled(elementId, disabled)
webui.suntheme.dropDown.changed(elementId)
webui.suntheme.jumpDropDown.changed(elementId)
webui.suntheme.field.getInputElement(elementId)
webui.suntheme.field.getValue(elementId)
webui.suntheme.field.setValue(elementId, newValue)
webui.suntheme.field.getStyle(elementId)
webui.suntheme.field.setStyle(elementId, newStyle)
webui.suntheme.field.setDisabled(elementId, disabled)
webui.suntheme.hyperlink.submit(hyperlink, formId, params)
webui.suntheme.hyperlink.getImgElement(elementId)
webui.suntheme.listbox.getSelectElement(elementId)
webui.suntheme.listbox.getSelectedValue(elementId)
webui.suntheme.listbox.getSelectedLabel(elementId)
webui.suntheme.listbox.setDisabled(elementId, disabled)
webui.suntheme.listbox.changed(elementId)
webui.suntheme.rbcb.setChecked(elementId, checked)
webui.suntheme.rbcb.setDisabled(elementId, disabled, type, enabledStyle, disabledStyle)
webui.suntheme.rbcb.setGroupDisabled(elementId, controlName, disabled, type, enabledStyle, disabledStyle)
webui.suntheme.radiobutton.setChecked(elementId, checked)
webui.suntheme.radiobutton.setDisabled(elementId, disabled)
webui.suntheme.radiobutton.setGroupDisabled(elementId, disabled)
The components continue to adhere to the SWAED User Interface guidelines. A user interface specification is provided for each new component (and is referenced in each component Functional Specification document).
Not applicable
The components are included in the visual web portion of NetBeans 6.0.
The components are also used by the admin GUI of Glassfish v2
Not applicable.
The Woodstock component set can be used in web applications with other JSF-based components.
Not applicable.
Project Woodstock 4.1 is compatible with version 4.0
The Woodstock component set uses the Theme Name as a unique identifier in forming the various name spaces on the web application page. This supports mixing Woodstock components from different major releases on the page.
No significant performance degradation is expected.
Performance gains are expected for those components designed to use the new dynamic infrastructure, as it will be possible to retrieve data and re-render components without doing full page submits (and full page re-renderings).
| webui-jsf-dt.jar | 2.3M |
| webui-jsf-portletSetup.jar | 37K |
| webui-jsf-portletSetupDoc.jar | 16K |
| webui-jsf-suntheme.jar | 850K |
| webui-jsf.jar | 4.7M |
Not applicable.
Network
connections and failures are handled by the web server.
The
asynchronous, page-oriented nature of
web applications allow for error recovery. For example, the user
can be redirected to error pages which describe recovery
procedures. In many cases, the user can simply retry the page.
No change from 4.0
3.1.3 Effect on External Environment
Not applicable.