Project Woodstock Components Release Notes
4.3 Build 2 (04/25/2008)
New Features
- The Ajax Table component has been updated with an Example.
- There were modifications to the build to help create .sdoc files that
will be read by the NetBeans JavaScript Editor.
- The jsDoc toolkit used for the build was updated to a newer release.
This fixes some issues with things like the @name tag.
- There were modifications to the "_" prefix from the theme namespace.
There are still private functions, but a few will be made public.
- There were modifications renaming the JavaScript namespace from
webui.suntheme4_3 to woodstock4_3. Instead of using webui.@THEME_JS@
in the JavaScript code, you will see @JS_NS@. The webui_suntheme4_3
configuration variable was renamed woodstock4_3Config.
- There was a modification to move the theme path from "com/sun/webui/jsf/suntheme4_3"
to "woodstock4_3/suntheme". Note that the javascript library has not
been moved.
- Portlet fix???
Bugs Resolved/Fixed
- Issue
#1172 - IE 7:Average rating is not updated
- Issue
#1182 - Japanese translation should be changed for "Accordion" and "AccordionTab"
4.3 Build 1 (04/15/2008)
New Features
- The Woodstock JavaScript library has been privatized using the
convention of prepending a "_" character to name spaces, functions, and
local variables. Public JavaScript APIs continue to be supported as
documented in the TLD docs.
- Widget variables created via HTML Templates have also been
privatized (e.g., <input dojoAttachPoint="_domNode"
type="submit">).
- The Ratings component has been updated with an Example.
- Additional Sorting functionality has been added to the "Table (Ajax)"
component (aka Table2).
Bugs Resolved/Fixed
4.2 Build 5 (03/28/2008)
Promoted to GA (04/29/2008)
New Features
- A "sandbox" example of a new "Ratings" component has been
added. There is no design time renderer yet.
- "Auto-complete" feature added for TextField component.
Bugs Resolved/Fixed
- Issue
#968 - progressImageUrl attribute doesn't seem to work for
busy indicator type
- Issue
#1060 - Bubble Help Data properties issue
- Issue
#1119 - regression: text area of FC component displays
multiple
- Issue
#953 - button is separated from textField
- Issue
#979 - NB 6.0 adoption blocker due to unable to set size on
DropDown and ListBox components
- Issue
#961 - dt: The default date pattern help is not seen in the
designer when you override the date pattern
- Issue
#1085 - icon broken for upper case type strings
- Issue
#1086 - Popup menu Option tooltips ignored
- Issue
#1101 - insertHiddenField in common.js needs to check for
presence of element in the form
- Issue
#721 - when labelOnTop=false, label not vertically aligned
- Issue
#1021 - Accordion, Bubble help icons disappear after adding
NBMs
- Issue
#1124 - default vale for "refreshRate" attribute is not
working
- Issue
#1118 - Login component missing from palette
- Issue
#900 - Localized Chooser doesn't work
- Issue
#1129 - Woodstock Localization Mechanism broken
- Issue
#1130 - overlay text not aligned properly when width is
specified for progressbar
- Issue
#1059 - OpenIDE Spec number must be bumped for each promoted build,
increased to 2.2.5
- NB
Issue #126782 - Table Layout window wrongfully sets drop-down items
property
4.2 Build 4 (03/04/2008)
New Features
- Updated localizations were integrated for Build 4. Most all
messages should now be localized.
- Although JavaScript files have always been minimized using Dojo's
ShrinkSafe approach, most files are also run through the Dean Edwards
Packer tool using base62 encoding. This approach shall be used when
browsers do not support gzip.
- To decrease the overall footprint even further, gzip is applied
to Woodstock CSS and JavaScript resources. To disable gzip completely,
the following parameters may be added to the web application web.xml
file.
<context-param>
<param-name>com.sun.webui.theme.GZIP_DISABLED</param-name>
<param-value>true</param-value>
</context-param>
Bugs Resolved/Fixed
- Issue
#1061 - accordion index page has typos
- Issue
#879 - upload error msg says MB - should be bytes
- Issue
#891 - LISTBOX: the size property needs to be themed
- Issue
#677 - dropDown: Client-side work
- Issue
#676 - listbox: Client-side work
- Issue
#479 - LISTBOX: Need javascript method "getSelections" to
encapsula
- Issue
#118 - dropdown and listbox's required icon is too close to
the box
- Issue
#641 - Extra space between label and dropdown on IE7
- Issue
#1069 - Query String should be appended if there is already
one present
- Issue
#965 - Calendar should use combined images
- Issue
#678 - creating label client side
- Issue
#1072 - Add abilitty to produce Maven artifacts
- Issue
#1100 - Menu component tld doc contains typos
- Issue
#1106 - Regression: masthead image no longer displayed
- Issue
#1080 - FF/Moz - slight gap between info panel drop down and
common task button
- Issue
#946 - A11Y: iPopup menu needs to show good accessibility
coding practices
- Issue
#670 - alert: Client-side work
- Issue
#589 - Common Tasks Group default title has typo
- Issue
#491 - BH_BUG: mini + lite tabset graphics draw border around
layout panel
- Issue
#669 - alarm: Client-side work
4.2 Build 3 (02/25/2008)
New Features
- To prevent Woodstock from including JSF Extensions, set the
jsfx
tag attribute of the Head and/or ThemeLinks tags to false.
- To increase performance, initialization is deferred until the
page has loaded. This allows for progressive HTML rendering; however,
partially rendered HTML may be displayed before widgets have been
created. Set the
parseOnLoad tag attribute of the Head
and/or ThemeLinks tags to change the default setting.
Bugs Resolved/Fixed
- Issue
#979 - NB : 6.0 adoption blocker due to unable to set size on
DropDown and Listbox components.
A new width property has been added to the EditableList,
OrderableList, Listbox and DropDown components. This property accepts a
String value that must be suitable for the CSS width
property and will be applied to the underlying select HTML element. For
example values like 30em, 200px, etc. Note
that in some cases using this property may obscure the option text, if
the value is not longer than the option text length. The following
theme properties will be recognized as the default value for this
property, listbox.width, dropDown.width, editableList.width,
and orderableList.width when defined in the messages.properties
file and the javascript theme. The "suntheme" does NOT define these
properties since its behavior is to size to the largest option. This is
the default behavior if no theme property exists and width is not set
on the component.
- Issue
#1027 - The BubleHelp width property does not take effect in
firefox
- Issue
#978 - Selected Tab in Tabset not rendering CSS
- Issue
#939 - Dropdown intro is missing words
- Issue
#1042 - SF Extensions character encoding issue with umlauts
- Issue
#1062 - Update VW palette section names and add new sections
- Issue
#1081 - bubble isn't correctly positioned
- Issue
#890 - ProgressBar does not render style class for styleClass
property
- Issue
#1059 - OpenIDE Spec number must be bumped for each promoted build,
increased to 2.2.3
4.2 Build 2 (02/012/2008)
New Features
- To increase performance, Woodstock now uses a custom build of
Dojo and only includes resources necessary to support its widgets. Not
only does this reduce the number of requests in the page, but it allows
Woodstock to apply better compression for a smaller footprint. This
also allows Woodstock to change how widgets are rendered in the page,
instead of being forced to wait until the window onLoad event. If you
are using Dojo directly, please see the instructions at
http://www.dojotoolkit.org for including Dojo in the page. The
dojo-1.0.1.jar file is no longer a dependency for Woodstock.
- The previous Tag Library Documentation describes how to listen
for event topics using dojo.subscribe. Since Dojo is no longer
available, please use the following Woodstock APIs when subscribing to
event topics. See the TLD for specific examples.
// Process validation event.
var
processEvents =
{
update: function(props) {
// Do something.
}
}
//
Subscribe to validation event.
var domNode =
document.getElementById("form1:textField2");
domNode.subscribe(domNode.event.validation.endTopic,
processEvents, "update");
- To increase performance, Woodstock now uses a custom
implementation of the JSON parser and stringifier. Woodstock still has
a server-side dependency on json-2.jar, but json.js is no longer
included in the page. If you are using these JSON APIs, please see the
instructions at http://www.json.org/js.html for including JSON in the
page.
- To increase performance, JSF Extensions (i.e., DynaFaces) is
lazily loaded in the page. When a Woodstock widget first makes use of
Ajax functionaily, this resource shall be included. To change this
behavior, set the
webuiJsfx tag attribute of the Head
and/or ThemeLinks tags to true.
- To increase performance, Prototype is also lazily loaded in the
page. Woodstock has removed its own dependany on Prototype; however,
JSF Extensions has not. Therefore, whenever JSF Extensions (i.e.,
DynaFaces) is loaded in the page, Prototype must be included as well.
The prototype-1.5.0.jar file is no longer a dependency for Woodstock.
- If you are using DynaFaces or Prototype APIs directly, use the
JSF Extensions
<jsfx:scripts> tag to include this
resource when the page is loaded. Please see the instructions at
https://jsf-extensions.dev.java.net for including the
<jsfx:scripts> tag in the page. For example:
<%@ taglib prefix="jsfx"
uri="http://java.sun.com/jsf/extensions/dynafaces"
%>
<f:view>
<html>
<head>
<jsfx:scripts
/>
</head>
<body> <!-- body omitted --> </body>
</html>
</f:view>
Deprecated attributes
- The dijitAll attribute of the Head and ThemeLinks tags have been
deprecated. Dojo is no longer be output in the page.
- The parseOnLoad attribute of the Head and ThemeLinks tags no
longer affect Dojo; however, it does affect when Woodstock widgets are
created.
Bugs Resolved/Fixed
- Issue
#1047 - "visible" attribute not working for tab component
- Issue
#1059 - OpenIDE Spec number must be bumped for each promoted build,
increased to 2.2.2
4.2 Build 1 (01/23/2008)
New Features
- New Login Component
- Updated the Open-IDE-Spec number (to 2.2.1) so that nbm files
will update 4.1.x components in NetBeans 6.0 and 6.0.1.
- In previous versions of Woodstock, JavaScript and image files
were being cached, but browsers still generated "If-Modified-Since"
requests for all resources -- issue #926. Although Woodstock sets a
"Last-Modified" time stamp, the extra requests are eliminated by adding
an "Expires" time stamp. By default, the "Expires" timestamp shall be
one year from the date the ThemeServlet was started. During each
release, the theme path shall be augmented with a version number so
browsers will retrieve the latest resources without expiring or
clearing the cache manually. (Note that developers should not use theme
paths directly. If obtaining a theme resource is required, use the
Theme APIs or the Theme property resolver.) To manipulate the "Expires"
time stamp or disable caching completely, the following parameters may
be added to the web application web.xml file.
<context-param>
<param-name>com.sun.webui.theme.CACHE_EXPIRES</param-name>
<param-value>86400</param-value> <!-- one
day in seconds -->
</context-param>
<context-param>
<param-name>com.sun.webui.theme.CACHE_DISABLED</param-name>
<param-value>true</param-value>
</context-param>
- Upgraded to Dojo 1.0.1 to get the latest bug fixes -- issue #947.
Note that the theme path for this resource changed from
theme/META-INF/dojo/** to theme/META-INF/dojo1_0_1/**. As described
above, this is done so that browsers will load new resources without
expiring or clearing the cache manually.
- It has been noted that table components show an empty shell while
pages are loaded -- issue #941. What is output to the browser is a
mixture of older HTML based components (rendered server-side) and new
Dojo based widgets. In the Woodstock example app, the main index page
uses an older HTML based table. The components inside the table cells
are actually new Dojo based widgets (i.e., text hyperlinks, etc.).
When the page initially renders, you will see the raw HTML
displayed first (i.e., the output from the older HTML table renderer).
During the window onLoad event, the Dojobased widgets are rendered and
fill in the HTML table cells.
- Bubble component A11Y updates
Bubble component cyclic focus behavior is supported for firefox browser
only. If tabIndex values are provided for elements inside bubble
component then developer needs to set a valid tabIndex value for bubble
component to achieve cyclic focus behavior.
Example:
<webuijsf:bubble id="bubble3"
tabIndex="4" focusId="anchor2" title="#{msgs.bubble_titleText3}" >
<webuijsf:panelLayout id="panel3">
<webuijsf:label labelLevel="1" text="#{msgs.bubble_anchorHeading}"
id="anchorUrlLabel"/>
<webuijsf:helpInline id="anchorUrlHelp"
text="#{msgs.hyperlink_anchorUrlHelp}" />
<webuijsf:anchor id="anchor2" tabIndex="1"
text="#{msgs.hyperlink_anchorUrlText}" url="http://www.sun.com"/>
<webuijsf:textField id="uName" tabIndex="2" label="User Name:" />
<webuijsf:textField id="uId" tabIndex="3" label="User Id:" />
</webuijsf:panelLayout>
</webuijsf:bubble>
Deprecated attributes
- The meta attribute of the Head tag has been deprecated. Using
meta tags and pragma headers to control browser cahing is not very
effective because they are only honored by a few browsers. For more
information, see http://www.mnot.net/cache_docs.
Bugs Resolved/Fixed
- Issue
#903 - extra dojo DnD onDrop events
- Issue
#899 - Hard coded image name breaks JavaScript
- Issue
#885 - Accordion should be A11Y compliant
- Issue
#667 - BubbleHelp should be A11Y compliant
- Issue
#974 - Hyperlink could not accept integer as value
- Issue
#980 - Calendar component resize issues
- Issue
#988 - Widgets do not render with Facelets
- Issue
#921 - Setting src property breaks clipped theme image
- Issue
#969 - The constructor for WizardEvent does not save the value for
step.
4.1 (GA) Build 15
(11/02/2007)
New Features
- Added Javascript documentation using the jsDoc tool.
- Added translated source files for: de, fr, es, it, ja, ko, pt_BR,
sv, zh_CN, zh_HK, zh_TW
- The UIComponentELResolver has been deprecated and removed from
the Woodstock faces-config.xml file due to conflicts with Seam. To
enable this EL resolver, add the following to the application
faces-config.xml file.
<application>
<el-resolver>com.sun.webui.jsf.faces.UIComponentELResolver</el-resolver>
<application>
- Head and ThemeLinks components have some new properties; named
parseOnLoad, dijitAll, webuiAll, and webuiJsfx.
- The parseOnLoad attribute simply sets a djConfig property,
forcing Dojo to parse markup in the page for widgets.
- The dijitAll attribute indicates that the dijit-all.js file
should be included in order to use extra widgets not supported in the
basic dijit.js file.
- The webuiAll and webuiJsfx attributes perform fine tuning for
component JavaScript.
Bugs Resolved/Fixed
- Update TLD docs - Issues: 838, 793, 797, 798, 832, 831, 839, 837,
842, 800, 792, 794, 784, 795, 830, 836, 841, 796
- Issue
#673 - calendar & calendarField: Client-side work
- Issue
#817 - Accordion examples: remove hard coded strings to allow for
proper translations
- Issue
#822 - Breadcrumbs in Accordion example app says TestIndex
- Issue
#769 - SWAED: accordion visual design issues in IE6
- Issue
#714 - SWAED: Example issue only: example misleadingly has mini
buttons in it
- Issue
#708 - SWAED: Too much vertical spacing between labels.
- Issue
#849 - Broken link to PaymentBackingBean from index page.
- Issue
#854 - Checkbox and Radio Button > Client-side rbcb group
example, disable function error
- Issue
#733 - Image performance slow
- Issue
#846 - Unable to drag and drop Accordion
- Issue
#757 - hardcoded english strings in some of our examples
- Issue
#829 - Setting immediate=true does not work for Tree component
- Issue
#866 - Theme build fails using Netbeans on Windows
- Issue
#864 - dnd.js should use inherited() function instead of superclass
- Issue
#865 - DndContainer should prototype default functions
- Issue
#644 - TreeNode Target property is missing default values
- Issue
#877 - file upload crashes when maxSize < 0
- Issue
#867 - I18N: Calendar needs new localization messages
- Issue
#232 - Notification info does not render properly on Moz &
FireFox
- Issue
#634 - Accordion header wrong color when selected
- Issue
#687 - Accordion-> The branches are broken and the images
doesn't get displayed properly
- Issue
#882 - calendar months has an extra row - shows null on IE
- Issue
#886 - ListBox's default selection should be single (not multiple)
- Issue
#132 - FileUpload: large files, when uploaded, do not display
message
- Issue
#879 - A11Y: Images broken in high contrast mode
4.1 Build 14 (10/12/2007)
New Features
- All new components (BubleHelp, PopupMenu, Accordion) are now in
the NBM module so they will appear in the NetBeans 6 Beta 2 palette when
you add the .nbm files from the Download page to NetBeans 6 Beta
2. You must use a Beta 2 or later build.
- Added new "Tools" module for building Themes.
- Woodstock is now based on Dojo .9. Please see the Dojo Porting Guide for a list of changes.
- Widget creation is now deferred to the window.onLoad event.
Therefore, if you have written JavaScript within the body tag like so:
<html>
<head></head>
<body>
<form>
<script>
var domNode =
document.getElementById("fileForm:chooserContentPage:fileChooser");
domNode.setChooseButton("fileForm:chooserContentPage:file_button");
</script>
</form>
</body>
</html>
You should rewrite the code above as:
<html>
<head>
<script>
function init() {
var domNode =
document.getElementById("fileForm:chooserContentPage:fileChooser");
if (domNode == null ||
typeof domNode.setChooseButton != "function") {
return setTimeout('init();', 10);
}
domNode.setChooseButton("fileForm:chooserContentPage:file_button");
}
</script>
</head>
<body onLoad="init();">
<form></form>
</body>
</html>
The setTimeout statement may not be required, but it ensures your
JavaScript is run after all HTML elements have been add to the DOM.
- Woodstock gets a performance boost. In combination with Dojo .9,
we've implemented the following improvments.
- Combined all JavaScript in a single file.
- Combined common CSS in a single file.
- All JavaScript files are compressed using Dojo's ShrinkSafe
approach.
- Added extra compression by removing all line breaks from
JavaScript.
- Third party JavaScript for JSON, Prototype, and Dynamic Faces
are also compressed.
- The
<webuijsf:body> tag moves all
Woodstock JavaScript to a single window.onLoad event.
- JSON text is not "pretty printed" when debug mode is false.
- Instead of generating requests for HTML template files,
strings are embedded in JavaScript.
Bugs Resolved/Fixed
- Issue
#193 - Calender doesn't have alert message or tooltip
- Issue
#787 - key instead of localized column header text
- Issue
#155 - vwp nbm is failing to build
- Issue
#802 - issues with text input test's password field.
- Issue
#255 - common task section:resize issue in design time
- Issue
#198 - Misc UI issues with clientsideCheckbox example
- Issue
#200 - Misc UI issues with TabSet example
- Issue
#510 - fail to cut/paste addremove component
- Issue
#811 - Radio button selected value does not render on IE7
- Issue
#441 - setItems(OptionGroup) throws NPE if OptionGroup's label is
not set
- Issue
#695 - Do not search the DOM to find form element
- Issue
#813 - wide text below accordions on IE
- Issue
#663 - Designtime shows Markup error < Remove
- Issue
#815 - accordion examples layout need overhaul
- Issue
#612 - accordion example 1 - broken images seen on IE7
- Issue
#442 - drop down list with bound label doesn't show in designer
- NB
Issue #117498 - IllegalStateException by VW project creation at
org.netbeans.ProxyClassLoader.printDefaultPackageWarning
- NB
Issue #116587 - Duplicate code is inserted while Table component
reverts to default DP
- NB
Issue #115875 - Help topic need to be assigned to Options
Customizer dialog box Help button
4.1 Build 13 (09/28/2007)
New Features
- Accordion Component now has Design Time added for support in
NetBeans 6.
- PopupMenu Component now has Design Time added for support in
NetBeans 6.
Calendar Changes
- The Calendar component's getDatePickerLink method has been
deprecated. The DATE_PICKER_LINK facet is now obtained in the html
CalendarRenderer and if a facet is not specified, the newly created
imageHyperlink is not added to the facet map. Also, the renderer no
more applies the enabled image to the obtained facet as it did before.
Bugs Resolved/Fixed
- Issue
#666 - Design Time support for PopupMenu
- Issue
#770 - Themes build is not proper if directory name contains a "."
- Issue
#715 - SWAED: Example issue only: example against guidelines puts
up dynamic validation error on empty fields
- Issue
#671 - anchor & hyperlink: Client-side work
- Issue
#673 - calendar & calendarField: Client-side twork
- Issue
#453 - CALENDAR: Only one calendar should be up at a time
- Issue
#748 - Windows:Add Remove Buttons misaligned in vertical
orientation
- Issue
#778 - NPE in getTaskState of ProgressBar
- Issue
#779 - bubble help styles need adjustments
- Issue
#368 - PropertySheet - jumplinks displayed for
PropertySheetSection's with "isVisible == false"
- Issue
#719 - designtime: readonly upload renders empty square
- Issue
#761 - Designtime: 100% CPU after icon Busy/Indeterminate
- Issue
#693 - Invalid argument exception
- Issue
#781 - Required indicator legend needed for EditableList example
- Issue
#688 - Designtime: Disabled calendar looses helptext and icon
- Issue
#432 - ACCESSIBILITY: calendar (popup) needs to keep keyboard focus
within it.
- Issue
#369 - Property sheet renders image component whose ID is not set
- Issue
#783 - date in textfield of calendar does not show up in popup
calendar
- Issue
#679 - ProgressBar: Client-side work
- Issue
#736 - designtime: progress Image url takes renders incorrectly for
BUSY
- Issue
#668 - accordion & accordionTab: Client-side work
- Issue
#409 - Session Data Lost in Internet Explorer (Scroll cookie issue)
- Issue
#277 - Has not effect on color if labelLevel is set to strong or
medium
- Issue
#47 - table:table column/table width does not work properly.
4.1 Build 12 (09/14/2007)
Themes
- A new CSS style selector "CalPopTxt@THEME_CSS@" with public
interface CALENDAR_HELP_ROW has been added for the calendar component.
This enables the help text to wrap around and stay within the confines
of the width of the text field if the help text is too long.
Bugs Resolved/Fixed
- Issue
#200 - Misc UI issues with TabSet example
- Issue
#665 - Design-time support needed for BubbleHelp
- Issue
#206 - errors found in dropdown's tld
- Issue
#209 - Pattern help dissappears after changing pattern
- Issue
#74 - calendar component required attribute not working
- Issue
#680 - table color specification updates from branding
- Issue
#659 - Menu needs to recalculate width each time options are
changed
- Issue
#744 - SWAED: Large blank gap on left of popup menu
- Issue
#705 - Checkbox Group does not honor columns property
- Issue
#745 - Example-> button is not enabled when checkbox is selected
- NB
#113693 - Adding a query criteria changes Table binding
- NB
#115387 - Handle changes in row group's sourceData and wrapped data
more appropriately/flexibly
4.1 Build 11 (08/31/2007)
New Features
- New PopupMenu Example
- New CommonTasksPage and EditableFields Test Specifications on the
Documentation
page.
Bugs Resolved/Fixed
- Issue
#605 - Refresh feature does not work with calendar widget
- Issue
#662 - color specification updates from branding for accordion,
bubble, menu
- Issue
#198 - Misc UI issues with clientsideCheckbox example
- Issue
#561 - upload component cannot handle multibyte char filename
- Issue
#654 - SWAED: top corners missing borders
- Issue
#544 - Example app --> Checkbox and RadioButton Index->
Client side radiobutton and checkbox group example-> The lables get
changed along with size
- Issue
#647 - Incorrect use Primary and secondary buttons in components
- Issue
#280 - Calendar renders under other components on IE 6 & 7
- Issue
#560 - Disabled calendar hides help text and toggle icon
- Issue
#684 - IE7:Page Cotains Script Errors
- Issue
#269 - Add required indicator legend to all examples having
required fields
- Issue
#199 - Misc UI issues with client-side RadioButton example
- Issue
#92 - drop down menu of test cases has error
- Issue
#196 - hyperlink sort order is not correct
- Issue
#189 - version page spans 1/2 popup
- Issue
#616 - webuijsf:head - please allow to disable rendering title
- Issue
#662 - color specification updates from branding for accordion,
bubble, menu
- Issue
#658 - Fields - prevet submissions on "enter" keypress.
- Issue
#678 - editable, text, password, & area: Client-side work
- Issue
#211 - UI request for yellow highlight for fields in error
- Issue
#696 - Do not search the DOM to find form element
- Issue
#697 - Rename autoSubmit tag attribute to submitForm
- Issue
#206 - errors found in dropdown's tld
- Issue
#681 - Inline editing doesn't work in textfield and text area, in
grid mode
- Issue
#703 - Should be able to hit enter in text field to submit page
- Issue
#646 - hashMap is not supported
- Issue
#651 - Binding to hashMap generates ClassCastException
- Issue
#141 - Designtime: LabelAlign dropdown is missing
- Issue
#200 - Misc UI issues with TabSet example
- Issue
#712 - SWAED: Text fields and text areas seem to use different
fonts
- Issue
#637 - Clarifications needed in "build it yourself" doc
- Issue
#500 - Read Only property of checkbox not working
- Issue
#709 - SWAED: Pointer of bubble is missing its shadow
- Issue
#82 - update theme version to 4.1
- Issue
#674 - checkbox & checkboxGroup: Client-side work
- Issue
#675 - radiobutton & radiobuttonGroup: Client-side work
- NB
#112668 - In Migrated project Unsetting Array property of
ObjectArrayDataProvider does not bind the component to defaultDP
4.1 Build 10 (08/15/2007)
New Features
- New PopupMenu Component
- New Client-Side Theme
- Accordion Example
- BubbleHelp Example
- Updated Functional and Test specs on the Documentation
page.
Bugs Resolved/Fixed
- Issue
#588 - BUBBLE: bubble management too slow for fast mouse
- Issue
#233 - progress indicator status text is incorrect
- Issue
#615 - determinate progress bar completes - yet states 99%
- Issue
#389 - Wrong help IDs for Image component and its Properties window
- Issue
#618 - visible property in wrong category in NetBeans Properties
window
- Issue
#620 - incorrect bubble header layout on IE
- Issue
#587 - Segment CSS files between color, topography, and layout
- Issue
#321 - textArea: required asterisk appears at bottom of component
in safari
- Issue
#590 - JSF Alert component is always shown on page created by
Netbeans 6.0 M10 Visual Web Pack
- Issue
#488 - TABSET: the tabset renderer is not rendering the tabset id
onto the enclosing div element.
- Issue
#640 - Read-Only field change for 4.1 needs to be fixed, or backed
out
- Issue
#631 - bubble header layout incorrect with small text sizes
- Issue
#638 - IE: bubble header without close button has no bottom margin
below title
- Issue
#630 - make woodstock compilable on JDK 1.6
- Issue
#351 - Select All Rows button of a table component not working
- Issue
#653 - popup menu visuals not correct
- NB
#111028 - Unsetting Array property of ObjectArrayDataProvider does
not remove relevant JSP code
- NB
#94049 - Need help IDs implemented for body, head and html
components and properties window
- NB
#111666 - Add help ids for woodstock progress bar topics
- NB
#110646 - Bad help ID for Page properties window
4.1 Build 9
(07/27/2007)
New Features
- New BubbleHelp component. An example application will be
coming in Build 10.
- New Accordion Example application.
- Added specifications for the BubbleHelp and Accordion components
on the Documentation
page.
Bugs Resolved/Fixed
- Issue
#391 - Wrong help id for radiobutton and radiobutton group
Properties windows
- NB
#94550 - NPE - when clicked on ... of sourceData property of
TableRow
- NB
#97151 - Help IDs for 3 JSF 1.2 components not working in
Properties window
- Issue
#400 - Example app--> File chooser--> listbox data displayed
as entry
- Issue
#265 - Button for Client side upate in Hyperlink example submitts
page
- Issue
#264 - Broken context-sensitive help JSF 1.2 Image component
- Issue
#364 - PropertySheetSection: Styles do not take affect
- Issue
#271 - possible malformed URL causes determinate PB bar buttons to
not render
- Issue
#240 - maxLength property no longer works
- Issue
#85 - Remove readme from woodstock jar
- Issue
#202 - When dojo is updated to a new version, it does not get
copied into the archive
- Issue
#211 - UI request for yellow highlight for fields in error
- Issue
#551 - Checkbox and Checkbox Group should not deprecate readOnly
property
- Issue
#552 - Radiobutton and Radiobutton Group should not deprecate
readOnly
- Issue
#394 - Tree has an attribute "required" which does not play any
role
- Issue
#380 - Tree needs more TLD documentation
- Issue
#382 - Add to TLD specifications for tree component to not use
facets
- Issue
#260 - Regression: breadcrumbs for file upload no longer work
- Issue
#222 - radiobutton group and checkbox group always line up at left
of browser
- Issue
#226 - None of javascript events work in radiobutton.
- Issue
#411 - Wrong Help ID for Drop Down List's Properties window
- Issue
#457 - ListSelector NPE when Null Option Added in DropDown
- Issue
#388 - File Upload properties window shows wrong help topic
- Issue
#341 - runtime: version page with copyright that line wraps imposes
invalid scroll bar to top of page only
- Issue
#316 - Indicators property shows in properties sheet
- NB
#110665 - Adding help ids in CommonTask, CommonTaskGroup and
CommonTaskSection components
- Issue
#239 - dropown set back to first item when submit form
- Issue
#606 - Hyperlink->The underscore and hand symbol are missing
when user hovers on a link
4.1 Build 8
(07/13/2007)
Issues/Regressions
- The FileChooser has a regression, Issue
#400, that causes the file listing to display a series of  
right after each file name. This should be fixed shortly, but
since we have not promoted a build since mid June we wanted to get out
the rest of the functionality. We expect to have this fixed
shortly in the main trunk.
New Features
- To help increase performance, the following changes have been
implemented.
- Removed "pretty print" JSON text from rendered HTML pages.
This decreases the overall page size by removing indentation and line
breaks. This is now enabled only while in debug mode.
- HTML template files have been replaced with template strings,
embedded in the JavaScript. This decreases the number of requests made
for resources. In order for the template strings to be used, the keys
of the theme templates.properties file have been commented out.
However, these keys can be enabled for a custom theme or debugging.
Tags supporting the templatePath attribute continue to allow web app
developers to provide custom HTML.
- The default Ajax implementation is now lazily downloaded. If
Ajax features go unused, this can potentially cut the number of
JavaScript requests in half. Minimally, this will decrease page loading
time because resources will not be obtained until an Ajax feature is
actually used.
- JavaScript is now compressed, which cuts the overall size of
each requested file in half. The uncompressed JavaScript is used only
while in debug mode.
- Debug mode now uses the uncompressed version of Dojo.
- Debug mode is enabled using the debug tag attribute of the
head, themeLinks, and portalTheme tags. Alternatively, the debug word
can be appended to a URL as a query parameter (e.g., if the JSP cannot
be edited directly).
- Client-side rendering for PasswordField ( password mode for
TextField removed).
Note: Previous implementation of the PasswordField had a security flaw
where server side values ( such as obtained with the value expression)
were rendered to the browser. Such approuch would send clear text
password to the browser AND make it available in clear text with "view
source" command. New version of PasswordField fixed that by not
rendering password back to client. Thus while the user typed password
will be echoed with asterisks, password field will always be rendered
empty - whether on initial render or upon submission and re-render of
the page.
- Client-side rendering for Calendar. More bug fixes for
Calendar are coming in Build 9.
- Ajax enabled Accordion added to the component set. There is
not an example yet. That will be coming in Build 9.
Bugs Resolved/Fixed
- Issue
#136 - Selecting DefaultOptions node for Add remove generates
StringOutOfBoundsException
- Issue
#77 - Password text property shows '<Lookup null
value>'
- Issue
#279 - today's date is wrong (at the top)
- Issue
#75 - Toolttip attribute not working
- Issue
#298 - password does not render at runtime on IE7
- Issue
#296 - TextArea does not render at runtime
- NB
#107563 - Listbox: setProps on IE6 makes options disappear
- Issue
#295 - Password no longer renders at designtime
- Issue
#72 - Wizard renders too small at designtime
- Issue
#12 - client side disable is having problem
- Issue
#281 -onChange does not work in Calendar
- Issue
#282 - onSelect does not work in Calendar
- Issue
#69 - Designtime: Legend does not render on webform
- Issue
#251 - Generated HTML body tag with annoying empty attributes
(onload and onunload)
- Issue
#504 - imageHyperlink : does not take the onclick attribute into
account.
- Issue
#404 - IE7 - problems rendering accordion component on page
- NB
#107914 - Designtime-only; fix autosubmit legacy toggling for nb5
to nb6 migration
- Issue
#514 - table title shows "...: Filter Applied" when No filters
applied
- Issue
#347 FRAMESET: Outputs wrong value for frameBorder attribute. -
This fix ensures that only a value of "0" or "1" will be output for the
value of the html frameBorder attribute as opposed to rendering a value
of "frameBorder" whenever the frameBorder attribute was set to true and
none if the frameBorder was set to false for the compnent. Since the
earlier functionality had caused the border to appear always even when
frameBorder attribute was set to false for the frameSet
component,developers would see a change in the functionality and the
border would cease to appear for the frame set if the frameBorder
attribute has been specified to false.
4.1 Build 7
(06/15/2007)
New Features
- Moved ajaxify property from components to head, themeLinks, and
portalTheme tags.
- Added Ajax submit features to checkbox, radio button, hidden
field, listbox, and drop down.
- New Accordion component added. (Note - this is an initial
prototype. Changes will be coming in Build 8)
- Support for Facelets (Issue #3). Additions were made to the
annotations library processor to output facelets tag library.
This has not been thoroughly tested yet.
- UPLOAD: Many exceptions in the commons.fileupload package are now
caught and handled differently, and the following differences in
behavior will be seen.
- The UploadFilter's web.xml "maxSize" init-param will be
compared against each file in the upload. This includes files uploaded
from a rendered Upload component as well as explicit input HTML
elements of type "file" that were literally placed in an application's
web page.
- If any errors occur while processing a multipart/form-data
request (a request with an input HTML element of type "file") the
request will still be parsed. This behavior is different from earlier
versions in that if an error occurred in the commons.fileupload
package, all the form data in the request would be lost and either an
exception would be thrown by the FacesServelet or the page might have
just been redisplayed with no perceivable error, in other words, it
would proceed directly to the RENDER phase, similar to an inital
request for a page. In 3.0.3, only in extreme cases like a malformed
request may request parameters be lost and proceed to RENDER phase. If
this happens the UploadRenderer will queue a FacesMessage for the
upload component. Unfortunately only components that are rendered after
the upload component will see the FacesMessage. No FacesException will
thrown. In cases of an upload file exceeding the default or application
defined maximum, a FacesMessage will be queued well before the RENDER
phase in order for the application to detect that an error had
occurred. Messages will also be logged.
- If an application defined upload filter init param value is
invalid, a default value will be used a warning message will be logged.
- The Upload component has a new boolean property called
"preservePath". If this property is true, the literal value of the file
upload input element will be communicated to the server. The
application can obtain the value from the UploadedFile instance, the
value of the Upload component by calling "getClientFilePath".
Bugs Resolved/Fixed
- Issue
#250 - imageHyperlink and refresh(): changing imageURL with
setImageURL did not update image.
- Issue
#3 - Add Facelets Support
- Issue
#241 - Designtime: Editable generates with textField id
- CR6357806 - UPLOAD: Upload.getColumns should not set the default
value, just return it
- CR6436927 - FILE UPLOAD: field value should be retianed when page
submit results in error
- CR6453366 - FileUpload: Need way to control MAX_FILE_SIZE
4.1 Build 6 (06/01/2007)
New Features
- Client-side rendering for CheckboxGroup
- Client-side rendering for RadioButtonGroup
- New widget for ImageHyperlink component
Bugs Resolved/Fixed
- Issue #104767 - (NetBeans issue) ArrayIndexOutOfBoundsException
appears when doing table layout
- Issue
#220 - Minor fix for the ImageRenderer not rendering style classes
- Issue
#194 - Reset button is not functioning properly
- CR6357806 - UPLOAD: Upload.getColumns should not set the default
value, just return it
- CR6436927 - FILE UPLOAD: field value should be retianed when page
submit results in error
- CR6453366 - FileUpload: Need way to control MAX_FILE_SIZE
4.1 Build 5
(05/18/2007)
New Features
- AlarmStatus, JobStatus and NotificationPhrase components have
been deprecated
- Client-side rendering for Alarm
- Alarm supports a set of indicators which enables supporting
custom severities and assosciated images including the default
severities. Indicators also supports sortValue attribute which enables
sorting among multiple Indicators.
- Client-side rendering for TextArea
- TextField and TextArea support asynchronous submit() and
refresh() functions
- Updated to use Dojo 0.4.3
Bugs Resolved/Fixed
- Issue
#123 - tree: sub tree node changed unexpectedly after tree node
property binding
4.1 Build 4
(05/06/2007)
New Features
- Client-side rendering for Anchor, Hyperlink and ImageHyperlink
- Anchor has all the features of an html anchor element
- Anchor also supports a disabled attribute which prevents an
anchor from traversing to the specified url when clicked
Bugs Resolved/Fixed
- Issue
#154 - setVisible does not work
- Issue
#143 - Runtime: Null Pointer Exception on submit
- Issue
#81 - annotations doesn't support "List<> obj" syntax,
throwing com.sun.tlddoc.GeneratorException for "private
List<Indicator> indicators"
- Issue
#178 - app index issues
- Issue
#180 - Regression: not able to switch from one tab to another
- Issue
#181 - Regression: jump to links do not work (now a widget)
- Issue
#183 - common tasks "i" icon does not work properly.
- Issue
#184 - tree turners not rendered therefore node cannot be expanded
- Issue
#186 - can't switch back and forth from step and help tab in wizard
4.1 Build 3
(04/20/2007)
New Features
- Alert supports a set of indicators which enables supporting
custom types and assosciated images including the default
types.Indicators also supports sortValue attribute which enables
sorting among multiple Indicators.
- Client-side rendering for Alert
- Client-side rendering for Button
- Client-side rendering for CheckBox
- Client-side rendering for DropDown
- Client-side rendering for Listbox
- Client-side rendering for HiddenField
- Client-side rendering for Image
- Client-side rendering for Label
- Client-side rendering for RadioButton
- Client-side rendering for StaticText
- Client-side rendering for TextField
Deprecated attributes
- The readonly attribute of the DropDown and Listbox components has
been deprecated
Deprecated client side JavaScript functions
- Button:
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()
- CheckBox:
- webui.suntheme.checkbox.setChecked(elementId,
checked)
- webui.suntheme.checkbox.setDisabled(elementId,
disabled)
- webui.suntheme.checkbox.setGroupDisabled(elementId,
disabled)
- DropDown:
- 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)
- Field:
- 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)
- Hyperlink:
- webui.suntheme.hyperlink.submit(hyperlink,
formId, params)
- webui.suntheme.hyperlink.getImgElement(elementId)
- Listbox:
- 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)
- RadioButton:
- 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)
Bugs Resolved/Fixed
- Issue
#96 - file upload example does not display file name & location
- Issue
#68 - CSS files will be included although styleClass set to false
- Issue
#71 - Progress Bar does not render at designtime
- Issue
#79 - throws java.lang.RuntimeException
- Issue
#104 - Radio Button client-side update jsp missing from bld
- Issue
#94 - cannot double click to open folder
- Issue
#89 - Nothing shown on page after adding script component
- Issue
#109 - modify month/year submits calendar in error
- Issue
#111 - Dropdown selections for month & year trigger calendar
submit
- Issue
#97 - checkbox to reposition list (in example app) has not affect
- Issue
#41 - Update trunk version to 4.1
- Issue
#110 - 4.1 build.xml needs to be updated to account for new ver of
dojo
- Issue
#120 - Regression: contents of password field not displayed
properly
- Issue
#125 - Regression: selected file/folder message not displayed
- Issue
#126 - Regression: file upload path and filename is not longer
displayed
- Issue
#115 - incorrect navigation when muliple hyperlinks used with
target _blank prop set
- Issue
#101 - IE7 only: regression with test case drop down - Example App
- Issue
#105 - IE7 only: table actions wrap versus span table
- Issue
#106 - IE7 only: cannot submit Text Input page
- Issue
#107 - IE7 only: cannot submit pages of example app
- Issue
#108 - submit page with tabset crashes on IE
- Issue
#119 - Regression: button image >> renders as >
- Issue
#121 - regression: text input example drop down menu does not fire
- Issue
#122 - Regression: sort menu does not work
- Issue
#124 - Regression: test case menu has not affect on tree
- Issue
#128 - Regression: action menus have no affect on table
- Issue
#80 - Checkbox example throws IllegalArgumentException
Anchor component issue
- Issue
#76 - Clicking hyperlink does not redirect to the anchor location.
This issue is seen on Internet Explorer 6 browser during runtime if the
anchor component is used with the Visual Web Pack
RadioButton component issue/regression
- Issue
#103 - On IE7 only - when you load the checkbox and radio button
examples there is no default selection (volume should be selected for
both Radio Button and Radio
Button Image). Also, you are not able to select any option
available.
4.1 Build 2
(04/06/2007)
New Features
- Client-side rendering for HiddenField
- Updated jsf-extensions jar files
- Fixed the build for the visual-web-nbsuite module. Added a
readme.
- Updates to the client widget renderer base
At one time, each widget renderer output their own JavaScript
include(s) in the page. However, it's important that all JavaScript
include statements are added to the page before instantiating the
widget. Omitting some details, this meant that all child components
needed to be rendered before outputting JavaScript includes in the
page. Thus, the encodeBegin and endcodeEnd methods were not used in
RendererBase. Fortunately, we found a better approach and this
functionality was removed some time ago. JavaScript includes are now
defined via the abstract getModules() method. In short, a modules
property is added to the JSON object representing the includes required
for each component. This allows the modules (i.e., JavaScript includes)
to be added client-side via Dojo. Thus, JavaScript includes are added
exactly once when the widget is instantiated. That said, I've
modified RendererBase to use the encodeBegin and encodeChildren
methods, again. Now encodeBegin and encodeEnd simply output the
JavaScript used to instantiate a widget. There is no change to the
widget renderers themselves.
-
Major Changes to Theme code
- The webui-jsf-theme.jar now depends on the existence of webui-jsf.jar.
Every theme jar MUST now implement com.sun.webui.theme.ThemeService.
Since this class is compiled within "themes" and is delivered in webui-jsf-suntheme.jar, webui-jsf.jar MUST be built first.
The "com.sun.webui.theme" package can be extracted from "webui-jsf.jar"
and exist independently as "webui-theme.jar". That change will come
once we decide that delivering another jar is appropriate.
BUMPED ALL THEME VERSION REFERENCES TO 4.1
(Other misc versions have also been bumped to 4.1)
- Removed all references to ClassLoaderFinder from "com.sun.webui.theme"
package classes, and "Jar" theme classes.
- Added new ThemeFactory interface methods to JarThemeFactory, that
accept theme name and theme version. However, JarThemeFactory does not
rely on these values, its algorithm is still based solely on Manifest
attributes.
- ServletThemeContext defaults the "THEME_SERVLET_CONTEXT" param to
"/theme". This allows applications to use the "common" "/theme/*"
url-mapping without adding the extra "THEME_SERVLET_CONTEXT" param.
- Lots of javadoc changes.
- Added convenience ThemeLogger (not a javax.util.logging Logger but
uses javax.util.logging API's) just
to encapsulate commmon log entry fields. Used only by the
com.sun.webui.theme package.
- The default ThemeFactory class in ThemeContext is SPIThemeFactory.
While it does support the deprecated manifest attributes in a theme
jar, theme jars should now provide a ThemeService implementation
to supply the appropriate information.
- master/build.xml - changed dependencies such that webui must be built
before themes.
Bug Fixes
- Issue
#15 - PropertySheet labels are no longer showing the required
indicators. (partial fix)
- Issue
#67 - Adding FileChooser to NB6 webform generates
ClassNotFoundException
4.1 Build 1
(03/23/2007)
New Features
- Client-side rendering for Image
- Client-side rendering for StaticText
- Client-side rendering for Label
- NetBeans Visual Web Pack module to enable updating the components
in NetBeans Visual Web Pack 5.5.x.
Bug Fixes
- Issue
#9 - onLoad/onUnLoad are broken
- CR 6527268 - JavaScript namespace is incorrect
- Issue
#6 - progressbar example fails - missing index.jsp
- NB
Issue #96990.
During static initialization of the class AutoSubmitOnChangeAction, a
call was made to JavaScriptUtilities.getMethodName(), which in turn
tried to look up the theme. The theme however is not on the class path
at this time, which is weird. As a work-around, I have moved the static
initializer into a getter method, so that the invocation is done
lazily.
- NB
Issue # 97015 - CALENDAR: Renders poorly at runtime
- Issue
#15
Due to recent changes that unconditionally render a span for a
complex component that can have a "built in" label, resize
functionality in Creator for these components broke. More
information on this issue can be seen in CR 6519675. This CR
resulted in the unconditional rendering of the "span" as the containing
element for complex components with built in labels. Those changes are
backed out.
- NB
Issue #97012
- Issue
#23 - CTS: CommonTaskRenderer is missing tr and td tags
- Issue
#24 - CommonTaskRenderer & CommonTasksSectionRenderer should
use writer.writeText()
- Issue
#25 - CTS: CommonTaskRenderer does not use ImageComponent or Icon
- Issue
#26 - Change the encoding of the url to client side.
- Issue
#50 - Design time for client side components needs to be fixed.
4.0.1 GA (02/15/2007)
IE7 Button width issue
When displayed in IE7, the button component might be rendered with
an incorrect width. This problem occurs when the button is placed
using absolute positioning.For example, Netbeans with Visual Web
Pack, uses absolute positioning to place components in Grid Layout
Mode, and in such situation this problem could occur.
IE7
expects a value to be specified for the width of buttons. If a width
attribute is not specified, the width is set to width:auto, which
results in the button's width being set to the entire available width
of the button's container element. For example, if the button
style has left=130px then the button will start at 130px left and
will expand to the width of the <body>.
Workarounds
There are several workarounds that can be used in the developer's
code to solve the problem.
<input name="Button2" style="position:relative; left:72px;top:18px" type="button" value="Button" />
- Enclose the button inside a div or span element to restrict the
available width to the div/span element's width. Remember to set the
positioning for the div/span element.
<div style="position:absolute; left:72px; top:68px">
<input name="Button1" type="button" value="button" />
</div>
<span style="position:absolute; left:72px; top:68px">
<input name="Button1" type="button" value="button" />
</span>
- In VWP IDE, drop the button into a Group Panel to put the button
inside a span tag. In this case no need to set the positioning as
IDE sets the positioning for Group Panel.
- JSP Example: Button inside Group Panel component
<webuijsf:panelGroup binding="#{Page1.groupPanel1}" id="groupPanel1" style="position:absolute; left:240px; top:168px">
<webuijsf:button binding="#{Page1.button1}" id="button1" text="Button"/>
</webuijsf:panelGroup>