Build
2 of the Project Woodstock 4.1 release has been posted and links can be
found on the download page.
https://woodstock.dev.java.net/Download.htm
The Roadmap page has been updated with some changes. A few of the
client side renderers have moved out to Build 3.
https://woodstock.dev.java.net/ProjectRoadmap.htm
The Documentation page has been updated with specifications for the
Themes and the Ajax Architectural Document.
https://woodstock.dev.java.net/Documentation.htm
I have attached updated Release Notes for Build 2. We are still
working on getting the timing down so the notes will be in the build
itself, but until that happens I will keep posting them either in the
announcement or on the download page. You can always get the latest
version from the CVS tree if you Update your workspace.
Thanks,
Project Woodstock Team
Woodstock 4.0 Components Release Notes
Woodstock 4.1 JSF Components Release Notes
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.
- Specify the width attribute for the button, or resize
the button in the IDE to make the IDE assign a width to the button.
- Use relative positioning instead of absolute positioning on
the button component. For example:
<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.
- HTML Example 1: Button inside a div tag
<div style="position:absolute; left:72px; top:68px">
<input name="Button1" type="button" value="button" />
</div>
- HTML Example 2: Button inside span tag
<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>