New in Vaadin 7
Google Web Toolkit built-in
Whole stack is built in one product.
Development of client-side applications is supported to enable offline mode.
Includes all features of GWT 2.5 like SuperDevMode, Elemental and UIBinder.
Field groups can bind fields on any layout to a data source.
Declarative validation with JSR-303 validators.
Generics and explicit converters make data formatting easily customizable.
Supports most important features of the leading Sass language.
Automatic compilation of SCSS to CSS on the fly.
Makes theme CSS structured and eases re-use.
Redesigned layout use browsers' native layouting engine and minimizes reflows.
Full control with CSS to all layout properties.
Now uses HTML5 doctype.
New windowing API
Renewed windowing API that gives easier access to the web platform.
Built in support for multiple browser tabs.
Flexible URI fragment based Navigation API.
Simplified widget development
Statically typed 2-way Java-based RPC.
Automated component state synchronization.
More extension points
Any widget can be customized with client-side extensions.
Any part of the generated start-up page can be changed with extension.
Supports client-side extensions that have no visible parts.
All new features
- Optionally keeps session alive
- Reliable browser window close monitoring
- Minimal or no layout calculations to maximize layout speed
- Full control of layouts with CSS including borders and margins
- Redesigned lighter DOM for vertical, horizontal and css layout
- Split to seven jars to allow deploying only what you need
- Delegate component errors to parent components
- All component containers now support addComponents(Component...)
- Support adding multiple components in constructors
- New architecture make writing Vaadin applications simpler
- Supports multiple browser tabs by default
- Reliaable clean of UI when browser is closed
- Support showing components with different themes on one page at once
- Theme names are included in CSS selectors
- Direct access to request and session on UI init
- Access detected browser details on UI init
- Call server-side methods from clients-side in Java
- Call client-side methods from server
- Static typing allows compile time checking
- Primitive types
- Boxed primitive types
- Java beans as long as all property types are also supported
- URLReference (used to transmit Resource)
- Allows piggybacking the next XHR call instead of calling to server immediately
- Supports optional folding of RPC calls together preserving only last value
- Connectors provide a flexible communication channel between client and server
- Separating communication code from widgets promotes reusability
- Allow calculating component state on the fly just before state is sent to client
- Only parts of the state that are modified are sent over the wire
- Only parts that differ from default values are sent in initial state synchronization
- Nothing is sent for unchanged components
- Java objects can be shared between client and server for easy component development
- State is automatically mirrored from server to client
- Support both public fields and bean properties
- Supports all types supported by the new RPC API
- Support for URI fragment based view management
- Support for registering both views instances as well as view classes
- Programmatic navigation with navigateTo()
- Supports saving bookmarks to views
- Supports parameterized views
- Views can block navigation
- Easy to use interface with clickable color gradients
- RGB, HSV and swatches color modes
- Color history
- Color preview
- CSS color code representation and handling
- For any component and event type, write addFooListener() instead of generic addListener(FooEvent)
- Supports code completion in IDE:s better
- Makes it possible to use Java 8 Lambdas
- No more need to call requestRepaint() in your components
- Now includes features from GWT Maven Plugin
- Adds Apache Ivy based dependency management
- Simpler inclusion of Vaadin UIs to custom web pages
- Default UI provider chooses UI based on servlet parameters
- Allows providing a different UI based on request parameters, URI or browser
- Full control over session lifecycle
- Abstract away from servlets and portlets
- Access deployment information and HTTP requests easily
- Abstract away from servlets and portlets
- Property getValue() returns expected type
- Transactional properties support commit/rollback
- Allow adding functionality and customizations to any component
- Modify DOM and hook event listeners
- Eases integration with parts of the page not controlled with Vaadin
- More flexible deployment
- Adds support to Apache ProxyPass and other similar proxies
- New Maven architype eases creation of Vaadin 7 applications
- Supports widgetset compilation and precompiled widgetsets
- Vaadin 7 uses HTML5 doctype
- Use any parts of HTML5 in your application
- Client-side can listen to shared state changes to update just the changed parts of the widget
- Listen to page resizes
- Control navigation
- Automated control of loading order and ensuring that files are loaded only once
- Cleaned by removing API deprecated in Vaadin 6 or before
- Provide enums everywhere where possible instead of constants
- Specialized UI component for showing images
- Replaces Embedded
- Specialized UI component for embedding web pages with iframes
- Replaces Embedded
- Specialized UI component for embedding flash
- Replaces Embedded
- Adds support for the latest Firefox extended support release in addition to latest stable Firefox release
- Allows modularization of themes for better reuse and easier maintenance
- Support the most important features of SCSS
- Implemented in Java, no dependency to Ruby
- Supports all of CSS
- On the fly conversion of SCSS to CSS in servlet
- Built in themes are now based on Sass
- Can be used in client-side projects as well
- State can be annotated to automatically delegate state changes to corresponding widgets
- Removed need to implement state change listeners and calling widget methods
- A full copy of GWT is included in Vaadin Framework
- Vaadin team maintains a branch of GWT that brings newest features and bug fixes early on
- All functionality of GWT is included to enable writing of client side UI:s, stateless applications, offline functionality and custom widgets
- Included Elemental library gives direct access to all cutting edge browser features
- Both browser plugin based dev mode debugging as well as super dev mode are supported
- Direct access to VaadinService, VaadinRequest, VaadinResponse, VaadinSession and UI from anywhere during HTTP request
- Service and UI are accessible also from outside HTTP request
- Replaces debug ids to allow wider use possibilities for identifying corresponding widget elements in DOM
- API for retrieving a range of Item ids in Container.Indexed to optimize performance
- Letting browser do the percent to pixel calculation speeds up rendering
- Allow specifying custom class loaders to better support Java EE, CDI and Spring
- Supports both servlets and portlets
- No widgetset compilation needed
- Support for shared state and rpc
- Let add-ons modify the bootstrap page to remove need for complicated custom servlets
- Annotate beans with JSR-303 standard annotations to automatically create validators for the fields
- Allow data binding of multiple fields together to item data source
- Supports buffering
- Supports two phase commit
- Annotation based and field name based property mapping
- All fields support explicit conversion from presentation format to data source format
- Conversions are bidirectional
- Allow setting converters to components directly in components or for the whole application at once
- Automated conversions beween String, Boolean, Long, Date, Double, Float, Integer and Number
- Conversion direction reversion
- Built in converters support internationalization
- Build new fields as composition of existing components
- No need to implement isValid() in validators any more
- Really old browsers are detected and customizable instructions given on updating the browser
- BeanItem supports nested properties to allow flattening complex datatypes
- Default is now reinitializing UI from page reload
- UI can be configured to preserve state over page reloads
- Set of helper classes are provided to ease migration from Vaadin 6
- Unification of API for component parents
- Window and Panel components now require setting layout explicitly
- Converters can be set per Table column to customize column formatting
- Allows building custom layout calculations for widgets when browser based layouts are not powerful enough
- Optimizes number of reflows by batching layout calculations from multiple widgets together
- Access the components hierarchy enables optimizations
- List connector hierarchy in debug console
- Inject custom CSS with @StyleSheet annotation
- Open popups and start downloads in a way not stopped by popup blockers
- Mapping between server-side and client-side components is defined in client-side annotations to avoid server-side classpath issues
- Access computed CSS styles on the client-side