<li><a href="#requirements">Requirements</a></li>
</ul>
-<p>Vaadin @version@ is a maintenance release for Vaadin 6.2,
-containing a number of important fixes. In addition to the fixes listed in the <a
- href="#changelog">Change Log</a> below, the release includes the following fix or enhacements:</p>
+<p>Vaadin @version@ is an update release for Vaadin 6. In addition to various fixes, it
+contains a number of significant enhancements.</p>
<ul>
- <li>Enhancements for the Portlet 2.0 support (<a href="http://dev.vaadin.com/ticket/3918">#3918</a>)</li>
- <ul>
- <li>Support for the edit and help modes</li>
- <li>Support for custom modes and changing modes programmatically</li>
- <li>See <a href="http://dev.vaadin.com/browser/versions/6.2/demo/src/com/vaadin/demo/portlet/PortletModeExample.java"><tt>com/vaadin/demo/portlet/PortletModeExample.java</tt></a> in the demo source code in the installation package for an example</li>
- </ul>
-</ul>
+ <li>Widget set definition and component-to-widget mapping has been redesigned</li>
+ <ul>
+ <li>Reuse of widgets is now much easier, as it is easier to package and use widget
+ set JARs and otherwise combine widget sets.</li>
+
+ <li>A widget set definition class is no longer used. The Java
+ code needed for widget instantiation and client-server mapping is now
+ automatically generated by the GWT compiler. For the basic Vaadin
+ user, a widget set is now defined only in a GWT module definition file
+ (<tt>.gwt.xml</tt>).</li>
+
+ <li>Server-side component is mapped to a client-side widget with an annotation:
+ <pre>@ClientWidget(com.vaadin.demo.colorpicker.gwt.client.ui.VColorPicker.class)
+public class ColorPicker extends AbstractField {</pre>
+ </li>
+
+ <li>The <tt>getTag()</tt> method is no longer needed</li>
+
+ <li>The Vaadin Plugin for Eclipse can create new widget stubs, define the mapping,
+ and create widget set definition files (<tt>.gwt.xml</tt>).</li>
-<p>For recent major enhancements, see the <a
- href="http://vaadin.com/download/release/6.2/6.2.0/release-notes.html">Release
-Notes for Vaadin 6.2.0</a>.</p>
+ <li>See <tt>WebContent/docs/example-source/build-widgetset.xml</tt> for an example
+ on how you can compile widget sets and widget set JARs with Ant.</li>
+
+ <li>A widget set builder allows automatic generation and maintenance of widget
+ configurations, making use of widget set JARs easier.</li>
+
+ <li>See <a href="#widgetupgrade">notes below</a> for upgrading widget set
+ definitions and widget mappings from earlier version of Vaadin 6.</li>
+ </ul>
+ <li>Other enhancements to development of new components</li>
+ <ul>
+ <li>On the server-side:</li>
+ <ul>
+ <li>Listeners for custom client side events are now easier to implement with
+ <tt>ReflectTools.findMethod()</tt> and <tt>addListener(String eventIdentifier,
+ Class<?> eventType, Object target, Method method)</tt> methods. The latter
+ automatically informs the client-side that a listener is registered on server side)</li>
+ </ul>
+ <li>On the client-side:</li>
+ <ul>
+ <li>Ability to check if a listener is registered on the server-side</li>
+ <li>Typed arrays and maps can now be sent to server with <tt>updateVariable()</tt>
+ <ul>
+ <li><b>Note!</b> This change affects existing custom components that send object arrays to the server.
+ Previously, an <tt>Object[]</tt> sent from client to server was converted into <tt>String[]</tt> on the server-side.
+ This invalid behavior is now fixed and an <tt>Object[]</tt> sent from client-side is an
+ <tt>Object[]</tt> on the server-side.</li>
+ </ul>
+ </li>
+ </ul>
+ </ul>
+ <li>Portlet 2.0 (JSR 268) support</li>
+ <ul>
+ <li>A separate servlet for each portlet is no longer needed.
+ (no separate servlet, no session problems, portlet-to-portlet communication, etc)</li>
+ </ul>
+ <li>OSGi support</li>
+ <ul>
+ <li>Vaadin now works as a OSGi bundle.</li>
+ </ul>
+ <li>Enhanced sorting of <b>IndexedContainer</b> and <b>BeanItemContainer</b></li>
+ <ul>
+ <li>Custom sort methods can now be used to sort container contents.</li>
+ </ul>
+ <li>Improved event support</li>
+ <ul>
+ <li>Client-side events are sent to the server only when a listener has been registered for the event</li>
+ <li>All built-in layouts (<b>AbsoluteLayout</b>, <b>CssLayout</b>, <b>HorizontalLayout</b>, <b>GridLayout</b>, and <b>VerticalLayout</b>) now support click listeners.</li>
+ <li>Click events for <b>Panel</b> and <b>Embedded</b>.</li>
+ <li>Focus and blur events for <b>DateField</b>, <b>TextField</b>, and <b>Select</b></li>
+ </ul>
+ <li>JavaScript execution with <tt>Window.excecuteJavaScript()</tt></li>
+ <ul>
+ <li>You can execute JavaScript directly from the server-side with the new <tt>excecuteJavaScript()</tt> method. You can use it, for example, for integration with other systems or for implementing print functionality (<tt>window.print()</tt>). </li>
+ </ul>
+ <li>Additional Maven archetypes</li>
+ <ul>
+ <li><b>vaadin-archetype-clean</b> with a dependency to Vaadin and a minimal application skeleton, no client-side widgets</li>
+ <li><b>vaadin-archetype-widget</b> for creation of Vaadin 6.2 widget packages</li>
+ <li><b>vaadin-archetype-sample</b> has been updated for Vaadin 6.2 - use version 1.0.x for earlier versions of Vaadin</li>
+ </ul>
+ <li>Maven Vaadin plugin</li>
+ <ul>
+ <li><b>vaadin-maven-plugin</b> can automatically update Vaadin 6.2 widget sets based on Maven dependencies using the goal <tt>update-widgetset</tt></li>
+ </ul>
+ <li><b>HttpServletRequestListener</b></li>
+ <ul>
+ <li>Similar to <b>TransactionListener</b>, but only related to a single Application. Called before and after every servlet request and provides access to <b>HttpServletRequest</b> and <b>HttpServletResponse</b>.</li>
+ </ul>
+ <li><b>PortletRequestListener</b>
+ <ul>
+ <li>Similar to <b>HttpServletRequestListener</b>, but for portlets. Called before and after every portlet request and provides access to <b>PortletRequest</b> and <b>PortletResponse</b>.</li>
+ </ul>
++ <li>Enhancements for the Portlet 2.0 support (<a href="http://dev.vaadin.com/ticket/3918">#3918</a>)</li>
++ <ul>
++ <li>Support for the edit and help modes</li>
++ <li>Support for custom modes and changing modes programmatically</li>
++ <li>See <a href="http://dev.vaadin.com/browser/versions/6.2/demo/src/com/vaadin/demo/portlet/PortletModeExample.java"><tt>com/vaadin/demo/portlet/PortletModeExample.java</tt></a> in the demo source code in the installation package for an example</li>
++ </ul>
+ <li>Enhancements to various components:</li>
+ <ul>
+ <li><b>Window</b>: Additional control over a sub-window: close and drag prevention.</li>
+ <li><b>Tree</b>: Item style generator enabling styling of individual tree items. Rendering optimizations.</li>
+ <li><b>Tabsheet</b>: Tabs can be marked as closable. The new <b>CloseHandler</b> can be used to ask for confirmation, prevent closing etc.</li>
+ <li><b>SplitPanel</b>: Double-clicking the splitter sends an event which can be handled on server-side.</li>
+ <li><b>MenuBar</b>: Many enhancements: individual items can be styled, support for separators, disabling of items, visibility of items.</li>
+ <li><b>DateField</b>: Support for lenient/non-lenient mode. A <b>DateField</b> is now by default in non-lenient mode (only accepts valid dates). </li>
+ </ul>
+ <li>Automatic integration tests</li>
+ <ul>
+ <li>All Vaadin builds are now automatically tested on all supported servers.</li>
+ </ul>
+ <li>Dozens of other small enhancements and bug fixes</li>
+</ul>
<p>Problem fixes and enhancements planned for upcoming releases can be found from the <a
href="http://dev.vaadin.com/roadmap">Vaadin Roadmap</a> in Vaadin Trac.</p>