Version @version@ built on @builddate@.
Release Notes for Vaadin Framework @version@
- Overview
- Enhancements in Vaadin @version-minor@
- Limitations in @version@
- Complete change log for Vaadin @version@
- Migrating from Vaadin 6 to Vaadin 7
- Vaadin @version@ dependencies
- Upgrading to Vaadin @version-minor@
- Supported technologies
- Vaadin on the Web
Overview
Vaadin is a Java framework for building modern web applications that look great, perform well and make you and your users happy. Vaadin is available under the Apache License, Version 2.0 (see the license.html in the Vaadin ZIP or JAR package).
The easiest ways to install Vaadin are:
- If using Maven, define it as a dependency or use any of the available archetypes (only vaadin-application is available for Vaadin 7 at the time of this release) to create a new project
- If using Eclipse, use the Vaadin Plugin for Eclipse, which automatically downloads the Vaadin libraries
It is also available as a ZIP package downloadable from Vaadin Download page.
Package Contents
Inside the ZIP installation package you will find:
- Separate server-side (vaadin-server) and client-side (vaadin-client, vaadin-client-compiler) development libraries
- Precompiled widget set (vaadin-client-compiled) for server-side development
- Shared library (vaadin-shared) for both server- and client-side libraries
- Built-in themes (vaadin-themes) and the theme compiler (vaadin-theme-compiler)
- Dependency libraries provided under the lib/ folder
See the README.TXT in the installation package for detailed information about the package contents. Book of Vaadin (for Vaadin 7) gives more detailed instructions.
For server-side development, copy the vaadin-server, vaadin-client-compiled, vaadin-shared, vaadin-theme-compiler, and vaadin-themes from the main folder and the dependencies from the lib folder to the WEB-INF/lib folder of your Vaadin project. (The vaadin-client-compiled is necessary if you do not wish to compile the widget set by your own, which you need to do if you use almost any add-on components.)
For pure client-side development, you only need the vaadin-client and vaadin-client-compiler JARs, which should be put to a non-deployed project library folder, such as lib. You also need them if you compile the widget set for any reason, such as using Vaadin add-ons, or create new server-side components integrated with client-side widgets.
Enhancements in Vaadin @version@
The @version@ includes many major and minor enhancements and changes. Below is a list of the most notable changes:
- UI replaces Application as the main entry point
- Heartbeat to reliably detect closed UI
- Supports multiple browser tabs by default
- Browser and request details available in UI init
- Direct access to request and session in UI init
- Access detected browser details in UI init
- Default UI class chosen based on a servlet parameter
- Custom UIProvider allows providing different UIs based on request parameters
- UI is by default reinitialized when the page is reloaded
- Redesigned layouts
- 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
- Client-side ComputedStyle API available
- Split to seven jars to allow deploying only what you need
- Adding multiple components with varargs in addComponents and appropriate constructors
- Support for mixing multiple themes on the same page
- RPC for communication between the server and the browser
- Static typing allows compile time checking
- Supports Java's primitive and boxed types, String, enums, arrays, List, Set, Map and Java beans
- Supports references to external or self served resources and references to other components
- Call from browser to server can be delayed to piggyback on the next XHR, optionally folding similar calls to only send the last value
- Calls to disabled or invisible components are ignored for security reasons
- Server-client shared state
- 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 the same types as with RPC
- Only parts of the state that are modified are sent over the wire
- Allow calculating state on the fly just before state is sent to client
- Client-side can listen to shared state changes to simplify connectors
- State class can be annotated to automatically delegate state changes to corresponding properties in widgets
- Google Web Toolkit included
- A full copy of GWT is included in Vaadin Framework
- Vaadin team maintains a branch of GWT to include bug fixes and new features independent of official GWT release schedules
- 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 plug-in based dev mode debugging as well as super dev mode are supported
- No more need to call requestRepaint() in components
- High level view navigation
- Support for URI fragment based view management
- Support for registering both pre-initialized view instances as well as view classes
- Programmatic navigation with navigateTo()
- Supports saving bookmarks to views
- Supports parameterized views
- Views can block navigation
- Connectors
- Connectors provide a flexible communication channel between client and server
- Separating communication code from widgets promotes reusability
- An explicit Connector hierarchy is maintained
- Mapping between server-side and client-side defined in client-side code to avoid server-side classpath issues
- JavaScript Connectors
- Implement connector logic using JavaScript instead of Java for easier integration with JavaScript libraries
- Wrap around any existing JavaScript based widget to adapt it for use in Vaadin
- No widgetset compilation needed
- Support for shared state and RPC as well as JSON-based communication based on simple JavaScript functions
- ColorPicker component
- Easy to use interface with clickable color gradients
- RGB, HSV and swatches color modes
- Color history
- Color preview
- CSS color code representation and handling
- Add listeners without method overloads
- Write addClickListener() instead of generic addListener()
- Supports code completion in IDE:s better
- Enables using Java 8 Lambda
- Renewed Vaadin Maven Plugin including features from GWT Maven Plugin
- New Maven architype eases creation of Vaadin 7 applications
- Renewed Eclipse Plugin adding Apache Ivy based dependency management
- Page bootstrapping renewed
- Simpler inclusion of Vaadin UIs to custom web pages
- Add-ons and applications can dynamically modify bootstrap page HTML
- VaadinSession
- Full control over session lifecycle
- Abstract away from servlets and portlets
- VaadinService
- Easily access deployment information and HTTP requests
- Abstract away from servlets and portlets
- Component extension API
- Allow adding functionality and customizations to any component
- Modify DOM and hook event listeners
- JavaScript callbacks
- Declare client-side JavaScript API from server
- Eases integration with parts of the page not controlled with Vaadin
- Relative paths used for all requests
- More flexible deployment
- Adds support for Apache ProxyPass and other similar proxies
- HTML5
- Vaadin 7 uses HTML5 doctype
- Use any parts of HTML5 in your application
- Page
- Abstraction for one browser window
- Run JavaScript
- Listen to page resizes
- Control navigation
- Loading custom JavaScript
- Annotate server-side classes with @JavaScript to request loading of JavaScript files
- Automated control of loading order and ensuring that files are loaded only once
- API cleanup
- API deprecated in Vaadin 6 or before removed
- Use enums instead of integer constants
- Embedded split up to different components for different purposes
- Image for showing images
- BrowserFrame for embedding web pages with iframes
- Flash for embedding Flash content
- Embedded now only intended for embedding using <object>
- Support for Firefox 17 extended support release in addition to latest stable Firefox release
- Sass Compiler
- Allows modularization of themes for better reuse and easier maintenance
- Support the most important features of SCSS
- Pure Java implementation without Ruby dependency
- Supports all of CSS
- On the fly conversion of SCSS to CSS during development
- Built in themes are now based on Sass
- Can be used in client-side projects as well
- @StyleSheet for automatic injection of css files
- ConnectorResource replaces ApplicationResource to reduce memory consumption
- Hierarchical error handling
- Open popups and start downloads in a way not stopped by popup blockers
- ThreadLocal access to VaadinService, VaadinRequest, VaadinResponse, VaadinSession and the current UI instance
- Component id replaces debug ids to allow wider use possibilities for identifying corresponding widget elements in DOM
- Range retrieval for indexed containers to enable optimize performance
- Native support for percent sizes to let the browser do the percent to pixel calculation speeds up rendering
- Custom class loader
- Allow specifying custom class loaders to better support Java EE, CDI and Spring
- Supports both servlets and portlets
- Updated data model
- Property getValue() uses generics to return the expected type
- Two phase commit support for commit/rollback
- BeanItem supports nested properties to allow flattening complex datatypes
- Bean Validation - Annotate beans with JSR-303 standard annotations to automatically create validators for the fields
- Field group
- 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
- Explicit data model converters
- All fields support explicit conversion from presentation format to data source format
- Conversions are bidirectional
- Allow defining a default converter for a specific type and override for specific fields
- Converters can be set per Table column to customize column formatting
- Built-in default converters
- automated conversions beween String, Boolean, Long, Date, Double, Float, Integer and Number
- Built in converters support internationalization
- Custom field component for building new fields as composition of existing components
- Simplified validation API
- No need to implement isValid() in validators any more
- Unsupported browser detection with customizable information page
- Vaadin 6 compatibility layer to ease migration from Vaadin 6
- Explicit layouts for Window and Panel
- Window and Panel components now require setting layout explicitly
- Distinction between Window or Panel and it's layout
- Layout manager
- 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
There are many other enhancements. Most of them are described in more detail in the mini-tutorials in the Vaadin Wiki. Also see the Vaadin 6 to 7 Migration Guide.
Limitations
- It is currently not possible to specify font-size as em or %, or layout component sizes with em (#10634)
ChangeLog
Below is the complete list of closed tickets in Vaadin 7. You can also query the tickets by all the milestones and filter out the defects and tasks from the query to list only actual enhancements.
The features voted at the Vaadin Pro Account are marked in the list.
- #1472: Window.open() should be re-thought/documented
- #2490: Deprecate reflect listeners
- #2527: Component.getParent should return ComponentContainer instead of Component
- #2869: Deprecate Select class
- #2924: Panel/UI/Window child component hierarchy is invalid
- #3021: Property.toString should not be used to convert property value
- #3067: Split subwindow from Window
- #3168: Getting the production mode status
- #3196: Improvement ideas for theme development
- #3214: Spacing is rendered for invisible components
- #3255: Layout margins cascade too easily
- #3557: AbstractComponentContainer should implement Iterable
- #3667: Remove deprecated API from MenuBar (setSubMenuIcon & setCollapse)
- #3700: Rename setDebugId to setId
- #3718: CustomField component
- #3765: Change client-server communication protocol to be JSON based
- #3851: AbstractField should run validators for empty fields
- #3861: Application.handleURI should not return null if resource is found but does not produce a stream
- #3950: Change default Tree container to HierarchicalContainer
- #4127: Allow custom system messages and locale specific messages
- #4131: Make Vaadin compatible with Apache ProxyPass
- #4203: Exception from one widget should not prevent updating other widgets
- #4294: Decide the proper package name for utils/tools and move the utils/tools there
- #4355: Consider removing Terminal.getDefaultTheme
- #4617: Split Vaadin version handling to a separate class
- #4991: com.vaadin.ui.Window javadoc
- #5381: Select should have getter and setter methods for pageLength
- #5391: CustomComponent JavaDoc should be improved
- #5422: Add addComponents(Component..) to common layouts
- #5483: Browser tabs recognition for subwindows
- #5494: GridLayout/VerticalLayout/HorizontalLayout with undefined width should handle captions in the same way
- #5541: Create build configurations for Vaadin 7
- #5750: FormLayout should not extend deprecated OrderedLayout
- #5814: Deprecate setColumns from NativeSelect/ListSelect/TwincolSelect
- #5822: ItemStyleGenerator.getStyle should include Component
- #5855: Inner event classes should be converted to static nested classes
- #5856: Table formatter
- #5890: ComponentContainer interface should have method getComponentCount()
- #5956: ClassPathExplorer.tryToAdd should read the ".class" file instead of loading the class
- #6010: Remove Table.setLazyLoading and Tree.setLazyLoading
- #6093: Add a way to revoke session - VOTED FEATURE
- #6341: Add methods for getting computed style from the browser
- #6342: Support using border/padding/margin in core layouts
- #6366: Add possibility to add all children directly in the constructor of most common component containers
- #6446: Should we deprecate Label.CONTENT_XML?
- #6617: Form.setLayout(Layout newLayout) may set parent with incompatible class
- #6619: AbstractApplicationServlet.init: parameters reading order is strange
- #6690: Plug-in support for Roots (aka components without a UI)
- #6696: Check if VPanel Firefox2 (isGecko) workaround can be removed
- #6702: Requesting a removed resource should give an error
- #6714: Allow using multiple themes on the same page
- #6730: JavaScript callback to server-side
- #6750: ClassPathExplorer logs on error when using maven gwt plugin (compile)
- #6771: Application url and static file location (VAADIN directory) should be expressed relatively to the host page
- #6790: PopupDateField should allow disabling text input - VOTED FEATURE
- #6887: Conveniency method to add all nested bean properties
- #6977: Adding a Vaadin portlet to Liferay causes the whole page to go blank
- #7045: It should be simpler to find the window where a Terminal.ErrorEvent has occurred
- #7260: VerticalLayout width calculations are not refreshed in Webkit when hiding component inside it
- #7285: Simplify DOM structure for VL/HL
- #7456: Create a Maven archetype for application projects
- #7480: Vaadin ColorPicker is not compatible with GAE
- #7562: random path in URL should give 404 or redirect to context root
- #7847: Use ClientWidget.loadStyle by default
- #7880: Review methods in Root
- #7882: Implement dynamic Root creation
- #7883: Implement late Root creation
- #7884: Implement late Root initialization
- #7885: Define theme and widgetset for each Root
- #7886: Add generic support for RequestHandlers in Application
- #7887: Serve ApplicationResource using a RequestHandler
- #7888: Serve the html host page using a RequestHandler
- #7889: Refactor LoginForm to use RequestHandler
- #7894: Support multiple tabs by default
- #7895: Provide ThreadLocal for the current Root
- #7896: Provide ThreadLocal for the current Application
- #7897: Ensure Portal actions and events doesn't cause the Root to be cleaned up
- #7898: Migrate all tests to use Root instead of Window for top level windows
- #7899: Multilevel Map
- #7912: Remove support for IE6
- #7913: Remove support for IE7
- #7917: Conveniency method in BeanItem to add all nested properties of a property
- #7930: Eliminate Validator.isValid()
- #7956: Validators should support locales
- #7963: Button should not be a field
- #7964: CheckBox should not extend Button
- #7981: Drop workarounds for Firefox 2
- #7984: Drop workarounds for Firefox 3/4
- #7985: Show informative message for users with an old browser version
- #7998: Remove dependency jars from the project
- #8019: Change existing constants from integers to enums
- #8024: Add a notification for not supported browsers
- #8026: Remove API deprecated in Vaadin 6 or earlier
- #8027: Remove abstractions for non-web terminals
- #8028: Extend Container.Indexed to provide a method for retrieving a range of item ids
- #8030: Add a (Component... children) constructor to all component containers that accept more than one child
- #8048: Include support for URI fragments in Root
- #8049: Include initial UIDL in the first response
- #8052: Restore Portlet support
- #8053: Add new base classes for testing that doesn't use LegacyApplication
- #8061: Remove Button(String caption, Object target, String methodName) constructor
- #8062: Git repository problem
- #8068: Provide an option for preserving Root state on browser refresh
- #8073: Slider.setValue(Double value, boolean repaintIsNotNeeded) should be protected, not public
- #8074: Slider accepts values out of range
- #8093: Include Bean Validation
- #8094: Implement two phase commit for FieldBinder
- #8095: Implement FieldGroup
- #8097: Root does not send resize events
- #8098: Make WebBrowser details available in Root init when using delayed initialization
- #8101: Implement generic converters that convert from one type to another
- #8102: Fields should use a Converter to convert to and from data model type
- #8103: Provide a ConverterFactory for default converters
- #8110: Validation should be done on the converted value
- #8111: Default field caption should not include dotted path of nested properties
- #8117: DateField resolution default should be day
- #8118: Remove support for millisecond resolution
- #8125: Remove MethodProperty.convertValue and similar methods to avoid confusion
- #8127: Add setBuffered to ease use of read through and write through modes
- #8142: Label overrides setReadOnly and works differently from all other components
- #8151: Root does not send click events
- #8153: Add BeanItem.addNestedProperty
- #8154: public methods in AbstractComponent should be declared in Component interface
- #8159: Extract UI class selection logic to UIProviders
- #8163: Print an error message if vaadinBootstap.js cannot be loaded
- #8164: Make WrappedHttpServletRequest inherit from javax.servlet.http.HttpServletRequestWrapper
- #8165: BrowserDetails, VBrowserDetails and WebBrowser 'mess' should be simplified
- #8167: Verify contributor agreement for Bean Validation
- #8169: Remove API deprecated in Vaadin 6 or earlier
- #8172: WrappedResponse is missing javadoc
- #8173: Depercate separate read through and write through modes in favor of buffered
- #8175: Test using Firefox 9
- #8178: Test using Chrome 16
- #8180: Remove separate read through and write through modes in favor of buffered
- #8182: A helper method for finding the first parent component of a given type
- #8190: Recorder no longer waits for Vaadin application to load
- #8191: AbstractField does take into account that field value can be modified by the converter
- #8192: Wrong locale might be used if value is set before field is attached to the application
- #8226: Don't throw exception from bootstrap if defaults have already been defined
- #8232: Cached html pages cause problem with browser details request
- #8243: Exception thrown in Root.init is swallowed
- #8274: Communicating back to the server doesn't work
- #8277: Convert low-level communication from client to server to support RPC
- #8278: Support RPC for communication from client to server
- #8279: Use JSON as the low level format of client to server RPC calls
- #8292: Margin API should be cleaned up
- #8294: Use HTML5 doctype
- #8304: Support simple shared state for server to client communication
- #8312: Remove client side conversion from percent size to pixel size
- #8313: Provide a way of measuring in batches to reduce reflows
- #8323: Create a client side paintable hierarchy
- #8324: Split core components into a widget and a paintable class
- #8325: Move ApplicationConnection.updateComponent to VAbstractPaintableWidget.updateFromUIDL
- #8326: Remove support for changing widget class on the client side depending on variables set on the server side
- #8405: Deprecate LoginForm as it does not save password in all browsers
- #8419: Initially only send the part of a state which has non-default values
- #8420: Support for listening to state changes on client side
- #8421: Add support for @Delayed RPC methods
- #8422: Debug console should show shared state updates
- #8425: Move Tooltip handling from ApplicationConnection to AbstractComponentConnector
- #8426: Implement server to client RPC
- #8429: button.setClickShortcut(KeyCode.ENTER) does not work on child windows
- #8434: Rename Paintable on client side to Connector
- #8435: Refactor caption handling so it is not based on UIDL
- #8436: Move code from AbstractComponentConnector.updateFromUIDL
- #8437: Refactor Error communication and error handling on client side so it is not based on UIDL
- #8438: Refactor event handler registration on client side so it is not based on UIDL
- #8439: Deprecate ApplicationConnection.getPaintable(UIDL)
- #8440: Rename @ClientWidget to @Component and move to client side
- #8441: Shared state class can't be a nested static class
- #8442: Generate and use JSON serializers for all classes referenced from other serializable classes
- #8443: Automatically generate serializers for server to client RPC call parameter classes
- #8444: Automatically generate serializers for client to server RPC call parameter classes
- #8448: Replace Connector setId and setConnection with init method parameters
- #8455: Root.getCurrentRoot returns null in Root.init
- #8462: Moving component doesn't update its caption
- #8469: Make it possible to create test Connectors/Widgets
- #8471: Create test for serialization of bean inside bean
- #8478: Don't use overflow: hidden by default
- #8500: Component/Connector hierarchy information should be automatically sent to the client side
- #8501: Client to server RPC calls for disabled/invisible components should be ignored
- #8502: Remove Connector.setState
- #8504: Support passing Connector references through the shared state
- #8507: Handle cascading disabling of components on the client side
- #8510: Support passing Resource references through the shared state
- #8515: Component state does not support Collections
- #8522: NPE on Root.getCurrentRoot() in LoginListener.onLogin()
- #8529: Send an event when the parent is changed
- #8534: JsonCodec breaks down when handling nulls
- #8540: Infinite layout loop in EmbeddedFormExample
- #8542: Not possible to use custom class loader in Application class
- #8544: Remove error reporting as error notifications
- #8555: Provide a listener method where components can modify their state before it is sent to the client
- #8574: Support custom ClassLoader for Portlets
- #8579: Components should send events on attach and detach - VOTED FEATURE
- #8581: Too many layout passes for SubWindowOrder test
- #8590: Calls to server side RPC methods should not cause internal error if no receiver has been declared
- #8591: Make server side rpc registration easier
- #8598: Support for listening to given changes on client side
- #8599: InitializableClientToServerRpc should not be an inner class of ServerRpc
- #8602: Support arbitrary types for map keys
- #8615: Redesign WebkitOverflowAutoFix
- #8618: Infinite loop in AbstractErrorMessage.getErrorMessageForException
- #8636: Code splitting not working as expected
- #8641: Move @AcceptCriteria annotation to client side
- #8642: Components have no way of knowing when a "full repaint" is needed.
- #8644: Application is not serializable because of Application.classloader
- #8651: UnknownComponent is not rendered
- #8652: v-paintable should be v-connector
- #8655: float[] and other array types do not work
- #8657: double is encoded as float
- #8664: AbstractComponentConnector removes non-primary css class names
- #8666: RPC from server to client doesn't support Resources properly
- #8667: Server should use types from RPC interface when deserializing
- #8668: Server should not allow custom types to be used with changeVariables
- #8669: State cannot include a "value" field
- #8670: GateIn/eXo/Liferay 5 portlet support broken
- #8671: Height incorrectly measured for Label with <hr>
- #8672: Remove API deprecated in Vaadin 6 or earlier
- #8673: Field named zIndex does not work in shared state
- #8674: Horizontal/vertical layout that does minimal calculations
- #8675: Support enums in shared state and as RPC parameters
- #8677: Shared state should be encoded as the declared type
- #8682: Fix box-sizing styling
- #8683: Preserve package name for state serializers
- #8684: Missing state serializer not gracefully handled
- #8685: References to connectors that are not visible should not be sent to the client
- #8688: CustomLayout stopped working
- #8698: Component managed captions do not work with Vaadin 6 legacy components
- #8700: Panel is empty in Liferay theme test
- #8708: TextArea inside a component that becomes disabled looks enabled in IE8
- #8710: Ensure that shared state types and RPC parameter types are Serializable
- #8711: Ensure Vaadin build fails but not all widgetset compilations if shared classes are not serializable
- #8714: Table throws NPE when selecting a tab containing a Table
- #8717: Really bad layout performance in IE8
- #8719: A component inside a disabled parent has v-disabled class name after parent has been enabled
- #8729: Root.getComponentIterator returns an iterator with a null component during init
- #8735: Panel setContent doesn't update client after initial rendering
- #8778: Notification added from Application.terminalError not displayed
- #8784: Class level javadoc of com.vaadin.ui.Window is incorrect for Vaadin 7
- #8785: Rendering an Upload component in the initial layout fails in Liferay
- #8791: Missing genericization for Property class as method parameter
- #8794: FormLayout: Uncaught client side exception
- #8796: Hierarchy problem with CustomFieldConnector
- #8797: Hierarchy problem with CustomFieldConnector
- #8804: Component hierarchy broken in reopened PopupView
- #8819: VScrollTable: Uncaught client side exceptions
- #8829: AbstractInMemoryContainer should create a UnmodifieableList rather than an unmodifiableCollection
- #8832: setContent() does not request paint
- #8845: Label implements Comparable but cannot be compared to another Label
- #8859: Implement view and navigation framework
- #8879: Send type info only for legacy messages
- #8888: Support wrapping javascript widgets
- #8889: AbstractField.setPropertyDataSource silently ignores throwables
- #8891: Transient red "Communication Problem" error appears when clicking on a Link
- #8907: Split Root/Region and Page (browser window/tab)
- #8908: Rename Root to UI
- #8934: There should be a "shared" package for classes common to client and server
- #8943: Components that are detached and attached cannot receive RPC calls
- #8955: Replace @VaadinApache2LicenseForJavaFiles@ with actual apache 2 license
- #8967: Broken reference images: LayoutTesterApplication
- #8977: Update mini tutorials to use Notification.show
- #8980: Make executeJavascript use new Function(code) instead of eval(code)
- #8983: Include SuperDevMode support when GWT 2.5+ is used - VOTED FEATURE
- #8985: Properly support setWidgetEnabled for ListSelectConnector
- #8986: Properly support setWidgetEnabled for NativeSelectConnector
- #8987: Properly support setWidgetEnabled for OptionGroupConnector
- #8988: Properly support setWidgetEnabled for OptionGroupConnector
- #8989: Properly support setWidgetEnabled for TwinColSelectConnector
- #8990: Label.setValue should not update the data source
- #8991: Label does not support converters
- #8992: ConverterFactory is always retrieved from Application.getCurrentApplication
- #9004: Extra scrollbar in Liferay theme demo in IE8/IE9
- #9005: CustomField calls attach for its content multiple times
- #9006: Form calls attach for its content multiple times
- #9007: Broken reference images: TabKeyboardNavigation
- #9011: Extra attach/detach calls to sub window
- #9017: Browser window size is not reported to Page unless browser is resized
- #9018: Exceptions in RPC handler causes Internal Error
- #9021: Change name & logic of Table.setSortDisabled() to ".setSortEnabled"
- #9022: NativeButton/Button setTabIndex does not work
- #9026: Only send the part of a connector state that has changed
- #9029: Change Foo.getCurrentFoo() to Foo.getCurrent()
- #9031: Don't use Root.getCaption() for bootstrap HTML title tag
- #9032: ComponentState should be AbstractComponentState
- #9034: Upload throws NPE because of missing connector
- #9044: Allow defining that a Connector type depends on external javascript or CSS
- #9048: @Javascript should work for portlets and independent of deployment configuration
- #9051: AbsoluteLayout should add child component style names to wrapper div
- #9053: AbstractMedia is not abstract
- #9054: AbstractJavascriptComponent is not abstract
- #9055: Hard to get Navigator from View
- #9056: Meaning of navigateTo() differs in Navigator and View
- #9059: Support relative @JavaScript paths in portlets
- #9060: Navigator needs a way to handle missing Views
- #9065: Integrate checkstyle into framework build
- #9066: Change Notifcations to not use HTML by default.
- #9067: Table row sizing broken after 6.8 mass merge
- #9071: Remove API deprecated in Vaadin 6 or earlier
- #9072: Change existing constants from integers to enums
- #9073: Browser window size shouls be included in browser details request
- #9074: Field value is not sent to server when navigating with browser
- #9076: FieldGroup.bindMemberFields(..) ignores configuration on fields
- #9077: TabSheet tab scrolls on mousemove
- #9078: Provide com.vaadin.Vaadin.gwt.xml for use in client side projects
- #9081: VConsole.log() throws NPE when used from a client side module
- #9083: Build a minimal vaadin jar
- #9084: Merge GWT related changes to Vaadin 7 git repository
- #9085: Add @Override for interface implementations
- #9086: Update getting started to Java6
- #9087: Split Embedded into several components
- #9088: Table cell tooltip only shown for cell element
- #9089: The v-connector class name should not be used in themes
- #9096: Run JavaScript RPC callbacks with this pointing to the connector wrapper object
- #9102: Vaadin 7.0.0.alpha3 contains GWT (and libraries) without sources
- #9106: SerializerMapGenerator.findTypesWithExistingSerializers checks for wrong method signature
- #9121: Vaadin 7 as OSGI in Glassfish 3.1.2 fails after restart
- #9122: Decide whether to officially support Firefox ESR in Vaadin 7
- #9156: Communication synchronization should be on a dedicated lock object not the Application monitor
- #9168: Redesign Portlet url handling
- #9172: Tooltip not working in Window
- #9173: Form validation error is used as tooltip for all fields in the form
- #9175: Label.toString throws UnsupportedOperationException
- #9179: Getting file name as Null from Upload component of Vaadin 7.0.0.alpha* version
- #9182: Split Panel: Strange order of sub-components in DOM resulting in wrong order for screenreader users
- #9196: CustomLayout does not show its content until addComponent
- #9201: Vaadin 7 compatible ColorPicker
- #9205: Warning for duplicate connector resource if opening multiple tabs
- #9209: JavaScript connector can't translate vaadin urls
- #9211: Make it easier to use ResourceReference
- #9212: Duplicated code for getting URL for Resource
- #9217: Add support for detecting IE10
- #9218: Install test machines for running tests on IE 10
- #9220: Add a container element for all overlays
- #9222: Provide a servlet which compiles SCSS -> CSS on the fly
- #9223: Integrate SASS compiler into Vaadin
- #9228: Replace updateState by beforeSendState(boolean initial)
- #9249: Add getLocation to Page
- #9254: Exception: Type null is not a supported internal type in JsonCodec
- #9265: Implement basic heartbeat
- #9266: Add support for heartbeat not extending session
- #9268: Decide on default URI format for navigation
- #9273: Allow add-ons to integrate with servlet/portlet functions without sublcassing the servlet/portlet
- #9274: Let add-ons modify the bootstrap page
- #9278: Fix dependencies from shared to server/client code
- #9279: Fix dependencies from server to client code
- #9280: Preserve this reference when calling RPC methods.
- #9282: Removing extension throws client-side exception
- #9283: Compile SASS parser using JavaCC during build
- #9285: Replace overloaded addListener with more specific addClickListener etc
- #9292: Allow JavaScriptConnectors to get unRegister events
- #9293: Rename the JavaScript callback concept to function instead
- #9294: Nested TabSheets and hideTabs(true)
- #9295: Review assorted Vaadin 7 patches not yet committed
- #9296: Review Vaadin 7 tickets and wiki plans that require API changes
- #9297: Make it possible to delegate state changes to widget automatically
- #9298: AbstractComponentContainerConnector should not implement onConnectorHierarchyChange
- #9299: Package Vaadin as many jars
- #9302: Update Vaadin IPC for Liferay to support Vaadin 7
- #9304: Migrate Slider to Vaadin 7
- #9312: Make getRpcProxy protected
- #9315: Make the getState method protected
- #9317: Review SASS compiler API
- #9318: Reindeer cannot be compiled on Windows
- #9322: ApplicationConnection should have a method to suspend "rendering" for a short period of time
- #9324: Support using public fields in state classes
- #9325: Handle requestRepaint automatically
- #9327: ApplicationConnection needs to have API "communication activity listeners"
- #9333: Server-side enum decode throws ClassCastException
- #9334: Update wiki tutorials once beta1 is out
- #9337: Remove PortalDefaultWidgetSet
- #9340: Add accessors for servlet init parameters to DeploymentConfiguration
- #9341: Pass DeploymentConfiguration to Application
- #9342: Add EventRouter support to AbstractExtension
- #9343: Abort widgetset compile for conflicting @Connect mappings
- #9346: SASS compiler should look for themes in the vaadin.jar
- #9347: SASS compiler fails when mixin w/ args has nested blocks
- #9357: Simplify CSSLayout
- #9367: Remove all references to fragment from Navigator API
- #9371: Unify GWT code generators
- #9372: Root.getCurrent() returns null in LoginForm LoginListener
- #9378: Rename requestRepaint to markAsDirty
- #9380: SASSCompiler should support custom list functions
- #9382: DeploymentConfiguration should not be part of Application
- #9392: Move widget classes from c.v.c.ui.<component> to c.v.c.ui
- #9399: Remove custom source file checkers
- #9400: TabSheet broken
- #9402: Remove Application
- #9406: Client NullPointerException on Image shared state update
- #9407: Using a variable color as a parameter for the lighten function alters the parameter as well
- #9408: Referencing and setting the same SASS variable on the same line causes a StackOverflowException
- #9409: If a temporary variable is used in SASS compile another variable, it needs to be used in the output in order for both to be compiled
- #9410: Interpolation doesn't work in property name
- #9411: Mixin parameters don't support values with spaces in them
- #9413: Version is wrong in latest nightly
- #9414: Mixin name can't be followed by a whitespace before the parameter braces
- #9416: Rename Navigator.[un]registerProvider()
- #9419: Replace ApplicationResource with ConnectorResource
- #9420: Container.Indexed.getIdByIndex error behavior
- #9422: State change event for fields with default value is never sent
- #9423: Don't show unsupported browser message for supported Android versions
- #9431: Merge com.vaadin.terminal and com.vaadin.terminal.gwt into com.vaadin.server
- #9432: Rename com.vaadin.terminal.gwt.client to com.vaadin.client
- #9434: Vaadin6Component should be renamed for consistency
- #9436: Merge gwt-maven-plugin and vaadin-maven-plugin
- #9437: Vaadin Maven Plug-in should use Vaadin dependencies instead of GWT dependencies
- #9438: Package a zip containing all Vaadin jars and dependencies
- #9441: Empty string should be used instead of null to denote "no fragment parameters" in Navigator
- #9442: Navigator should have a method to navigate to the current location
- #9443: Refactor UI bootstrap
- #9444: LegacyPaint.paint causes component to be marked dirty again
- #9445: Remove @EagerInit
- #9450: Run server-side tests with assertions enabled
- #9452: AbstractCommunicationManager.getDirtyVisibleConnectors() throws ConcurrentModificationException in some cases
- #9460: Rename servlet and portlet to VaadinServlet and VaadinPortlet
- #9461: Generated project should be Vaadin 7 beta 1 compatible
- #9466: Use jetty-runner instead of DemoLauncher to launch test server
- #9469: Unify ThreadLocal handling
- #9471: SASS compiler should support the @each directive
- #9472: SQLContainer.getIdByIndex broken
- #9474: A "ui" init parameter should work aswell as "UI"
- #9475: problems with components in accordion
- #9481: Calling AbstractField.toString keeps creating warning log messages
- #9482: SASS compiler should support the @if directive
- #9485: SplitPanel reverse split position is broken
- #9489: SassCompiler @each should be able to iterate over $list
- #9492: Mixin parameters not available for interpolation
- #9494: Write "Creating a custom (application) theme using SASS" tutorial
- #9495: Write "Compiling SASS to CSS manually" tutorial
- #9497: Write "Automatically compiling SASS during development" tutorial
- #9498: Write "Reducing server round trips for components" tutorial
- #9499: Write "Dynamically updating state before sending changes to client" tutorial
- #9500: Write "Modifying the startup page in an add-on" tutorial
- #9501: Write "Modifying the startup page in an application" tutorial
- #9503: Write "Cleaning up resources in a UI" tutorial
- #9505: Add getCurrent() for servlet, portlet, service, request and response.
- #9509: TreeTable renders wrong items
- #9511: Rename ViewChangeListener methods
- #9513: Create UIProvider for easily opening popups.
- #9514: Allow storing values in VaadinSession
- #9520: vaadin-application-archetype uses deprecated API
- #9522: Don't use Resource with the Page.open API
- #9524: FileDownloadExtension which avoids problems with file downloads
- #9528: Precompiled theme is version 9.9.9
- #9536: Vaadin6Connector should be renamed for consistency
- #9539: Use org.json instead of com.vaadin.external.json
- #9542: Add removeAllValidators() to Field or Validatable
- #9543: Components that wrap a single other component should not implement ComponentContainer
- #9544: New theme should create a SASS theme
- #9545: SASS mixin nesting bugs with mixin
- #9546: SASS should support @include $var
- #9549: Investigate whether the initial Navigator.navigate() call could be automated
- #9550: Bind a Navigator instance to a UI instance.
- #9551: Vaadin-maven-plugin does not add validation API to compile path
- #9552: Extra scrollbars for Accordion in SplitPanel in IE8
- #9553: /APP should not use UIProviders
- #9555: Icons do not work in Vertical/HorizontalLayout
- #9556: Portal support broken
- #9557: Vaadin jars do not contain Import-Package in MANIFEST.MF
- #9559: Spacing broken in GridLayout
- #9561: @DelegateToWidget not always working if createWidget is overridden
- #9565: Window themes are broken in Vaadin 7
- #9572: Extra scrollbars in TabSheet and Accordion in IE8
- #9576: Vertical/HorizontalLayout slot should get style name from child
- #9577: DateFieldExtendedRange test fails
- #9578: Extra scrollbars in PopupViewOffScreen in IE8
- #9579: RichTextAreaScrolling throws client side exception in Chrome/Safari/Opera
- #9580: VaadinServlet should not send a redirect on failed heartbeat request
- #9581: Infinite recursion in LegacyApplication.terminalError
- #9582: TabsheetScrolling test broken
- #9586: Servlet integration tests broken
- #9588: Vaadin-client-compiler jar is missing CodeServer classes
- #9589: SassCompiler should support microsoft extensions etc
- #9591: Rename onVaadinSessionStarted() in VaadinServlet and VaadinPortlet
- #9593: vaadin-maven-plugin can not compile widgetset without vaadin-client-precompiled
- #9596: HorizontalLayout fails to calculate relative sized children correctly
- #9597: Maven plugin should update .gwt.xml in src folder, not in target
- #9598: Rename themes-compiled package to themes
- #9600: FieldGroup: missing propagation of read-only state in setReadOnly()
- #9604: Unable to compile themes on the fly
- #9605: Packages incorrectly require servlet-api 2.5
- #9606: VaadinServlet.serveOnTheFlyCompiledScss doesn't find scss files from vaadin-themes JAR in Windows
- #9608: Package modified/rebased dependencies as separate packages and remove them from vaadin-* jar files
- #9609: Modified Flute jar is declared as an (invalid) dependency
- #9612: Create vaadin-shared-deps.jar
- #9613: Create an all-javadoc package
- #9618: Label: setPropertyDataSource() won't update Label value on client
- #9619: Multi-servlet deployment configuration broken
- #9624: Vaadin 7 Beta 1 reports the wrong widget build version
- #9625: Change "close" to "cleanup" in UI.CloseListener and others
- #9628: Allow specifying UIProvider using a servlet parameter
- #9633: Rename the WrappedXYZ classes
- #9635: Add listeners for initialized and destroyed VaadinSession
- #9637: Move UIProvider logic from VaadinSession to VaadinService
- #9638: Remove VaadinServletSession
- #9639: Support defining UIProviders as servlet/portlet init parameters
- #9640: java.io.NotSerializableException: org.json.JSONObject
- #9642: Make UIProvider easier to use
- #9644: Write tutorial "Setting and reading Cookies"
- #9645: Write tutorial "Setting and reading session attributes"
- #9646: Write tutorial "Handling logout"
- #9647: Delete ScssServlet
- #9648: Multiple Vaadin portlets on the same page does not work
- #9652: SessionExpired when embedding UIs in a HTML page
- #9654: All thread locals should be cleared at the beginning of any request
- #9655: Add getWrappedSession method that does not create a new session
- #9656: Session is not locked during browser details request
- #9658: Change VaadinService to be an abstract class
- #9684: requestRepaint deprecation message should tell that requestRepaint is rarely needed anymore
- #9687: Reindeer WINDOW_LIGHT style broken
- #9689: Update mini tutorial for using Resource in connectors
- #9690: Remove ApplicationClassException
- #9691: Rename old connector resource concept
- #9695: All components are marked dirty at the end of each request
- #9696: Diff state fails to compare null values properly
- #9704: Make GWT generator require RPC methods to return void
- #9706: Add getContextPath to VaadinRequest
- #9707: Support both ui and UI as the init parameter for selecting UI class
- #9711: Not possible to set custom system messages
- #9716: browserWindowHeight and browserWindowWidth are always -1
- #9717: ConnectorTracker should serialize diff state
- #9718: Rename ServletService and move to its own file
- #9719: Remove ApplicationStartedListener
- #9720: Remove WidgetMapGenerator and subclasses
- #9721: Pass UI id to UIProvider.createInstance
- #9722: Make DefaultUIProvider path aware
- #9723: Validatable.getValidators() is specified to return null if no validators
- #9724: Add Component.setPrimaryStyleName
- #9725: CustomLayout without children doesn't display anything
- #9726: Review usage of the Vaadin prefix in method names
- #9727: It should be easier to write custom NavigationStateManagers
- #9728: NPE when initializing LegacyVaadinPortlet
- #9730: Two portlets on the same page conflict with each other
- #9731: Map PortalDefaultWidgetSet to DefaultWidgetSet
- #9733: Make VaadinSession non-global. - VOTED FEATURE
- #9734: Slider max value is 0 by default, should be 100
- #9735: Handle exceptions from UI.init in a better way
- #9736: HTML5 doctype changes breaks vertical alignment in HorizontalLayout
- #9737: AbstractField.convertToModel error handling throws NPE
- #9740: NPE in Slider inside a GridLayout
- #9745: Build all javadoc automatically during build
- #9747: Invalid request path info in CombinedRequest
- #9749: Add common methods from servlet/portlet request, response and session to Vaadin interfaces
- #9750: Rename addVaadinSessionInitializationListener to addSessionInitListener
- #9751: Import sass tests
- #9752: UI serialization fails because of VaadinServiceData
- #9755: Roots do not get detach() notifications
- #9764: Make DefaultUIProvider serve the default UI for all paths
- #9767: ConnectorTracker throws NPE if using deserialized session
- #9768: ComboBox drop down list in PopupView Content has wrong offset
- #9770: Heartbeat and Connector resource requests do not clean up inactive UIs
- #9776: Vaadin 7 beta 1/2 and Websphere 8: Hourglass is running - no GUI components are shown
- #9777: Sass mixin does not handle named parameters correctly
- #9791: The constructor is ambiguous (Navigator)
- #9792: Layout-Bug in AbstractJavaScriptComponent
- #9793: Vaadin 7 - OSGi
- #9794: VaadinService.addUiProvider -> NPE
- #9798: Datefield's container div height is 4 pixels too much
- #9802: RpcInvoicationHandler.toString() should not cause an client rpc invocation
- #9804: sun.io.serialization.extendedDebugInfo & toString
- #9805: Javascript handling regression
- #9807: vaadin 7 beta 2 Accordion not working properly
- #9808: NPEs when calling removeAllComponents() for VerticalLayout
- #9815: Hierarchy change events should be sent to component containers which are about to be removed
- #9816: Update Google App Engine test to use UI
- #9817: GlobalResourceHandler is not serializable
- #9819: Setting custom class loader doesn't work
- #9821: Sass mixin can't call other mixin with param
- #9824: Remove support for default configuration options during bootstrap
- #9826: NoDataException when (lazy) loading CheckBox first time with overrided CheckBoxConnector
- #9828: Vaadin 7 ComponentLocator doesn't work with debug IDs
- #9832: Root div should have v-ui and v-ui-<uiclass> css class names
- #9838: Combobox popup item line heights are wrong in Chameleon theme
- #9841: Deploy vaadin-buildhelpers to Maven
- #9845: Resizing browser window throws exception in Firefox
- #9846: Sass mixin does not support multiple params w/ defaults
- #9848: VaadinServlet.servletInitialized() should throw ServletException
- #9852: Add dependencies to client-compiler module for jars which are not rebased or modified by GWT
- #9858: SassCompiler does not accept CSS3 selectors
- #9859: Need replacement for Application.close() and .setLogoutUrl()
- #9860: layout.scss contains wrong selectors
- #9863: Building with recent Ant versions throws NPE
- #9867: Add information about SuperDevMode in the widgetset in the archetype
- #9871: SASS parses CSS incorrectly
- #9880: Convert Runo to scss
- #9881: Convert Chameleon to scss
- #9883: Document limitations in setPrimaryStyleName
- #9884: Remove VaadinServiceSession.getURL
- #9887: Check Trident version before declaring IE incompatible
- #9888: NPE in getBrowserDetailsUI()
- #9891: Theme resources can not be loaded if theme name contains -
- #9893: Reorganize VOrderedLayout package and class structure
- #9895: Client-side NPE if hiding CustomComponent child
- #9896: TextField.setPrimaryStyleName does not work dynamically
- #9897: Document layout changes in migration guide
- #9898: Slider does not change primary stylenames of inner elements when calling setPrimaryStylename
- #9899: Dynamically setting the primary stylename for the AbsoluteLayout does not work
- #9900: Accordion.setPrimaryStylename does not change the stylename for inner elements
- #9901: Combobox does not support primary stylenames
- #9902: CustomLayout does not work properly with primary stylenames
- #9903: DateField does not work properly with primary stylenames
- #9904: Form does not work properly with primary stylenames
- #9907: ListSelect does not properly support primary stylenames
- #9908: MenuBars does not support primary stylenames properly
- #9917: LegacyWindow should not be a UI inner class
- #9921: Redirect if trailing slash missing after context path
- #9923: Move hierarchy related code in Form to onConnectorHierarchyChange
- #9924: Move hierarchy related code in PopupView to onConnectorHierarchyChange
- #9926: Build script should not automatically deploy to local Maven
- #9931: Vaadin-maven-plugin does not include vaadin-client-compiler dependencies when compiling widget set
- #9936: Remove Navigator.SimpleViewDisplay
- #9943: CompileTheme.createSprites hides classpath problems
- #9946: VaadinServiceSession.getCurrent() fails on first request
- #9947: UI constructor invariably throws IllegalStateException
- #9949: Browser Back Button does not trigger ValueChangeListener/Blur (Vaadin 7)
- #9952: UI is not Scrollable
- #9956: DoubleClick on table row failed in IE8
- #9963: Vaadin All zip size and JavaDoc
- #9967: UI.replaceComponent() throws UnsupportedOperationException
- #9969: UI iterator() and getComponentCount() are inconsistent with addComponent() and others
- #9970: Duplicate jars in Vaadin All zip archive
- #9972: Add Navigator.getState()
- #9974: Sass remove() does not work properly in @mixin
- #9975: Sass contains() does not work directly in if()
- #9977: ItemClickListener in Table throws NullPointerException in IE8
- #9983: Adding multiple stylenames fails in certain conditions
- #9987: Changing heartbeat interval in web.xml does not work
- #9989: Improve message when session is already set
- #9999: Debug console does not recognize ExtensionConnectors
- #10000: @keyframes syntax breaks Sass compiler
- #10003: CssLayout click listeners do not work unless there's at least one child component
- #10006: ServerRpc causes the target connector and all its parents to be marked dirty
- #10007: Property.setValue should be setValue(T) and not setValue(Object)
- #10008: Update ProgressIndicator to use state and Rpc
- #10030: Button.DisableOnClick
- #10034: Moving components from outer AbsoluteLayout to an inner layout fails with client side exception
- #10036: Selecting a row in Table leaves focus indicator for previously selected line
- #10039: ComponentLocator.getElementByDOMPath throws NPE if the target could not be found
- #10040: uitest.war web.xml does not validate
- #10043: NullPointerException in AbstractField.convertToModel()
- #10044: Reopening UI with @PreserveOnRefresh doesn't fire fragment change
- #10045: WebLogic 9 does not support Java 6
- #10049: Util.getAbsoluteUrl does nothing in IE 8
- #10050: Create tutorials for BrowserPopupOpener and FileDownloader
- #10053: A ClassResource which points to a non-existing file should return 404 and not an empty page
- #10061: OSGi - can not instantiate vaadin session anymore
- #10066: OSGi - wrong dependencies
- #10068: Vertical- and Horizontal-layouts should not attach/detach element resize listeners on state change
- #10069: Update the "Using Vaadin in an existing GWT project" tutorial
- #10070: InlineDateField broken with Chameleon
- #10071: Internal Error - Table marked as dirty while connected SQLContainer is rolled back
- #10075: InlineDateField has extra horizontal line below day names
- #10076: Write tutorial about creating a LoginForm with Vaadin components
- #10077: MenuItem stylenames are lost when the menu item is selected
- #10078: CustomField should implement HasComponents, not ComponentContainer
- #10079: AbstractOrderedLayout does not add v-disabled to caption of child when a parent is disabled
- #10080: Undefined wide HorizontalLayout becomes 100% wide
- #10082: Icon in Panel caption causes wrapping
- #10083: AbsoluteLayout does not render captions
- #10085: HasComponents should not declare getComponentIterator()
- #10088: Non-transient servlet reference in VaadinServletService
- #10089: NPE in Page.setFragment(String newFragment, boolean fireEvents)
- #10093: Allow to provide parameters for the UI in a popup window
- #10097: GridLayout insertRow() causes client side exception
- #10098: Layout bug: nested HorizontalLayout is offset vertically downward
- #10100: Sass parent selector fails if rule has more than one selector
- #10101: Client side exception with Image()
- #10104: LegacyComponent should be in com.vaadin.ui
- #10107: SCSS compiler fails when theme is not in same project as UI
- #10112: Using Upload with multiple UIs causes NPE
- #10113: VerticalLayout is a block element which always makes it 100% wide
- #10116: Idle UIs should be closed only when all UIs have been idle long enough
- #10118: josn dependency is not OSGi compatible out-of-the-box
- #10121: Fields named description don't bind in FieldGroup.bindMemberFields method
- #10124: SQLContainer.prevItem() does not return null
- #10126: Using GWT PopupPanel.show() fails with NPE due to Vaadin PopupView
- #10128: Undefined wide accordion sets width 2px too small, causing scrollbars
- #10130: ProgressIndicator keeps polling after it has been removed
- #10132: Navigator.navigateTo(…) should call View.enter(…) AFTER it has called ViewDisplay.showView(…)
- #10134: Check that connector has a matching RPC handler before deserializing parameters
- #10136: Tooltip is too high in Runo
- #10137: NativeButton does not set the v-disabled style when using disableOnClick
- #10140: Unify slash usage in constants
- #10141: Rename Page.getFragment to Page.getUriFragment
- #10143: Add AbstractConnector.getRpcProxy to be consistent with server side
- #10144: AbstractComponentContainer should implement getComponentIterator and not iterator()
- #10145: Move classes from the com.vaadin package
- #10146: Move classes from the com.vaadin.service package
- #10150: Detached SplitPanel still holds on to its previous children.
- #10151: Invalid state in hierarchy change event for detached connector
- #10153: Update "Dependencies Included in Installation package"
- #10154: HorizontalLayout adds component in wrong order
- #10155: Hiding or removing a component from an AbsoluteLayout causes ClassCastException
- #10156: Vaadin internal init parameters should be prefixed by "v-"
- #10157: Vaadin internal init parameters should be prefixed by "v-"
- #10158: API: getRootConnector() should be getUIConnector()
- #10161: VerticalLayout expand ratio cannot be changed dynamically
- #10162: VLayoutSlot.positionHorizontally does not sanitize availableWidth before setting it to the DOM
- #10166: SassCompiler parent reference in middle of selector bugs
- #10172: Ue IE9 mode for IE10
- #10174: Value of a variable cannot be assigned to another variable
- #10179: AbstractComponentConnector removes id attribute set in widget
- #10180: AbsoluteLayout will not position components with setVisible(false)
- #10181: AbsoluteLayout will not position components with setVisible(false)
- #10182: Rule order not preserved when using parent reference in sass
- #10183: InlineDateField and ComboBox broken in BaseTheme
- #10184: Match not found in GlobalResourceHandler when requesting dynamic resource from a Table
- #10186: Using the lighten function breaks up any later references to the parameter value
- #10187: VPopupView no longer works with TestBench
- #10198: FileDownloaderExtension cannot be removed
- #10202: Allow the client side to use an SASS file
- #10203: add setFileDownloadResource to FileDownloader
- #10204: Update Eclipse project template to be compatible with beta9
- #10205: Ensure Maven project template is compatible with beta9
- #10211: No longer possible to use Navigator on a Panel/Window/UI
- #10221: Generated AsyncBundleLoader.load() too long
- #10222: Aborting layout after 100 passes
- #10223: Rename VaadinServiceSession to VaadinSession
- #10224: Rename DependencyResource to PublishedFile
- #10225: Remove verifyLock() from and add getLockInstance() to VaadinSession
- #10226: SystemMessagesProvider.getSystemMessages should get an event object
- #10227: Remove DynamicConnectorResource
- #10229: Update all @deprecated messages in VaadinService related classes
- #10230: Remove Terminal
- #10231: Replace ComponentErrorHandler with ErrorListener and make error handling use hierarchy
- #10232: Remove ApplicationError
- #10235: CustomComponent should implement HasComponents
- #10236: DragAndDropWrapper should not be a ComponentContainer
- #10237: LoginForm should not be a ComponentContainer
- #10238: PopupView should implement HasComponents
- #10239: Remove Navigator.navigate()
- #10240: Update Navigator.addView(String,View) and Navigator.setErrorView(View) javadoc
- #10241: Refactor BrowserPopupOpener API
- #10242: Rename ApplicationConnection suspend/resumeRendering
- #10243: Refactor ApplicationConnection communication related API
- #10244: Correct camelCasing in @Delayed
- #10245: Add addComponents(Component...) to ComponentContainer
- #10246: Add multiple Component constructors to all ComponentContainers
- #10247: Remove EventRouter deprecation messages
- #10248: Implement abstract client side connector classes for HasComponents and SingleComponentContainer
- #10249: Add UI.close(), UI.isClosing()
- #10251: Refactor clean up of UIs
- #10252: Refactor hearbeat API
- #10253: Refactor VaadinSession API request time API
- #10254: Remove AddonContext and related methods
- #10257: Loading indicator remains visible if there is an exception during layout
- #10258: Bottom left corner of the Runo panel is not visible
- #10284: Document @PreserveOnRefresh
- #10289: Javadoc for com.vaadin.ui.Window contains wrong information
- #10293: Resolve sass compiler thread safety problems in servlet
- #10294: Change primary style name mixin parameter to $primaryStyleName
- #10299: SassCompiler input argument not resolved correctly
- #10300: Panel and Window constructors should use Component
- #10302: Remove RpcManager interface as ServerRpcManager must be used
- #10303: Move HasComponents.isComponentVisible to SelectiveRenderer.isRendered
- #10304: Update ServerConnector.getState javadoc
- #10305: Rename Page.setBrowserWindowSize to updateBrowserWindowSize
- #10306: Change WebBrowser.getTimezoneOffset and getRawTimezoneOffset to return int instead of Integer
- #10308: SassCompiler drops selectors when & is used
- #10309: SassCompiler wrong order when nesting
- #10310: Compare.Equal passesFilter() does not work on some Comparable values
- #10315: No propagation tabIndex on PopupFIeld, Table, Selects
- #10316: fails to parse selectors with parenthesis "(", ")" in styles.scss
- #10318: Compare performance with Vaadin 6
- #10322: vaadin-shared-deps osgi manifest should declare versions
- #10324: Fix GridLayout to update hierarchy in onConnectorHierarchyChange
- #10325: Opening a sub-window without content displays client-side exception
- #10326: SassCompiler wrong order when mixing parent selectors and other blocks
- #10330: Wrap themes in themename{}
- #10332: Nothing happens in browser if UI.init throws exception
- #10337: Refactor Extension API
- #10339: SassCompiler should be the only public API to sass ATM
- #10340: Rename ComponentEventListener to ConnectorEventListener
- #10355: Debug window no longer gets any styles
- #10357: Debug console can't find its theme
- #10358: Specfiy version numbers for vaadin-shared-deps imports
- #10359: Test using Firefox 17 ESR
- #10360: Overlays cause scrollbars on body
- #10362: Browser specific theme selectors broken
- #10364: com.vaadin.server.ServerRpcManager not Serializable
- #10367: Session scope converters doesn't properly works with Vaadin 7
- #10369: Include fixes from Vaadin 6
- #10370: Set Cache-Control in heartbeat responses
- #10372: Debug window should tell which theme is being used
- #10373: Write a tutorial on how to change the "unsupported browser" page
- #10374: Throw an exception if a Window is added to the component hierarchy
- #10375: ClassCastException when resizing a Window containing a Label
- #10378: AbstractExtensionConnector.extend should be abstract
- #10381: NPE in StringToDoubleConverter
- #10382: Chameleon uses "body" prefix rules which are now broken
- #10383: LoginForm generated HTML does not get "themename" style resulting in inconsistent look
- #10384: Drag'n'drop drag-image should be attached to the overlay container
- #10385: Drag elements are not shown
- #10386: Uncaught exceptions are not styled
- #10388: First accordion tab cannot be closed when active
- #10389: VisualDesigner generates invalid code for Vaadin 7
- #10395: Update release notes
- #10396: Rewrite migration guide
- #10397: Update tutorials for Vaadin 7
- #10399: ClassCastException when using extensions with multiple portlets on the same page
- #10400: NPE from VUI.windowSizeMaybeChanged
- #10401: Add Notification.show(String caption, String message, Type type) helper
- #10404: TabSheet containing a HasComponent causes child not to be rendered
- #10406: SCSS parser (sometimes) fails after ":" (colon) inside @mixin
- #10408: Converter created in a ConverterFactory isn't used in Table
- #10409: Table never uses ConverterFactory converters
- #10411: VaadinSession throws NPE if Http session is invalidated
- #10414: CustomComponent setVisible doesn't show the component
- #10415: vaadin-theme-compiler incorrectly depends on old vaadin-shared-deps
- #10416: ListSelect jumps to top row after each client -> server contact
- #10417: com.google.gwt.user.client.rpc.IsSerializable should be in vaadin-shared
- #10418: AbstractSplitPanel.setMinSplitPosition takes incorrect parameter type
- #10419: Data type conversion forced for non-used fields of a BeanItem
- #10421: Serving *nocache* files using VaadinServlet should not set the cache header to 1h
- #10422: It should be possible to remove the ?timestamp from the request for the widgetset
- #10423: "Object Expected" in IE8 if Native XMLHttpSupport is disabled
- #10432: ApplicationConnection.handleComponentRelativeSize and related methods serve no purpose
- #10433: AbstractComponentConnector.hasEventListener should be in AbstractConnector
- #10434: Wrong memcache expiration in GAEVaadinServlet
- #10438: @if does not work directly in @mixin
- #10453: Sass @mixin variables behaves strangely
- #10458: Unable to use a SQLContainer with ComboBox
- #10478: Form should support empty footer
- #10479: TabSheet custom stylename in GWT Mode gives NPE
- #10480: AssertionError when using DragAndDropWrapper with DevMode
- #10481: Custom VDropHandler causes NPE in JsonEncoder when dropping component
- #10484: ComboBox rendering problem in Runo Theme
- #10485: PopupDateField rendering problem in Runo and Chameleon theme
- #10486: @something should be passed through the sass compiler as-is
- #10488: Only measure connectors for which a measurement is actually required
- #10489: OrderedLayout should send detach and attach events when updating the DOM for expand
- #10494: Space not always properly allocated in ordered layout with fixed size
- #10496: Provide a way for connectors to avoid recalculating internal values if it gets multiple events based on the same data
- #10498: DateField in a GridLayout causes scrollbars in IE
- #10503: Panel content not displaying inside TabSheet
- #10504: FieldGroup bound to inherited layout error
- #10505: Sass compiler should preserve UTF-8 characters from imported files and output UTF-8 to the browser
- #10511: Compiling widgetset using plugin fails
- #10520: Write tutorial about using Vaadin 7 with Liferay
- #10529: "Not using retained UI" always prints Integer.class instead of the class of the UI
- #10531: Pixel values with fractions should not be rounded before sent to client
- #10532: Invalid state update for reattached connector
- #10537: NewItemsAllowed in Optiongroup and ListSelect give javascriptException
- #10541: TestBench 3 doesn't work with Vaadin 7 beta10
- #10545: FormFieldFactory should be deprecated in Vaadin 7
- #10549: Cannot send subclassed objects over RPC
- #10553: Provide a StringToFloat converter
- #10559: ComboBox popup higher in Firefox 17 than in other browsers
- #10560: EmailValidator on TextField always shows the error mark
- #10561: EmailValidator on TextField always shows the error symbol
- #10562: ReadOnlyException when TextField with setReadOnly(true) is added
- #10564: Ensure updateCaption is invoked for new children
- #10587: NativeButton broken in Liferay theme
- #10588: IE8 does not always update layout slot sizes
- #10589: Form error display does not work
- #10593: SassLinker fails for deeper folder hierarchies
- #10594: Unnesessary scss files from SassLinker
- #10596: SplitPanel splitter left in bad position if temporarily out of bounds
- #10597: Compile error for Microsoft css gradient filter
- #10598: Extra vertical scrollbars in IE 9
- #10599: Window with style Runo.WINDOW_DIALOG has rendering errors
- #10606: Chameleon styles ceased working in Vaadin 7
- #10616: Legacy style for Reindeer.TABSHEET_MINIMAL is broken in FF
- #10630: Uncaught client side exception with to narrow GridLayout in IE8
- #10631: MenuBar, css font-size in % / VerticalLayout, width in em / Button, size while dis-/enabled
- #10636: Util.getRequiredHeight/getRequiredWidth incorreclty rounds down for IE9
- #10651: Update release notes for RC1
- #10656: No requiredFieldIndicator for CustomField
- #10658: Bottom left corner of the Runo tabsheet is not visible
- #10659: "Can't start a new layout phase before the previous layout phase ends." in Opera 12
- #10682: Close element should not be placed before the caption text
- #10705: Vaadin beta 11 - Javascript error
- #10710: Enable building minimal widgetset
- #10713: NullPointerException on TextField validation
- #10722: Client ClassCastException Safari/IOS6
- #10723: Vaadin test war cannot be deployed to Liferay 6.1.1
- #10735: Ensure all server and shared classes are serializable
- #10743: NPE when reloading the browser
- #10744: Write tutorial about how to include a set of widgets in the eager bundle and defer others
- #10746: Correct which connectors are eagerly loaded
- #10783: A component which is 100% and expand=0 should not be shown
- #10792: Analyze layouts should show an error for a relative sized component which will not be expanded
Migrating from Vaadin 6
All Vaadin 6 applications need some changes when migrating to Vaadin 7. The most obvious changes are in the application/window API and require extending either UI or UI.LegacyApplication instead of Application. A detailed list of migration changes are given in the Vaadin 7 Migration Guide.
Any custom client-side widgets need to be ported to use the new client-server communication API, or the Vaadin 6 compatibility API.
Vaadin 6 add-ons (ones that contain widgets) do not work in Vaadin 7 - please check the add-ons in Vaadin Directory for Vaadin 7 support.
Vaadin @version@ Dependencies
When using Maven, Ivy, Gradle, or other dependency management system, all Vaadin dependencies are downloaded automatically. This is also the case when using the Vaadin Plugin for Eclipse.
The Vaadin ZIP installation package includes the dependencies in the lib subfolder. These need to be copied to the WEB-INF/lib folder of the web application that uses Vaadin.
The dependencies are listed in the Licensing description. Some are explicit dependencies packaged and distributed as separate JARs, while some are included inside other libraries.
Bean Validation
If you use the bean validation feature in Vaadin 7, you need a Bean Validation API implementation. You need to install the implementation JAR in the WEB-INF/lib directory of the web application that uses validation.
Upgrading to Vaadin @version-minor@
Upgrading the Eclipse Plugin
Vaadin 7 requires that you use a compatible version of the Vaadin Plugin for Eclipse. The stable version of the plugin is available from the http://vaadin.com/eclipse update site. Please see the section about updating the plugin in the Book of Vaadin and the installation instructions at the download site for more details.
You can also use the experimental Vaadin Plugin for Eclipse. Its update site is http://vaadin.com/eclipse/experimental.
General Upgrading Instructions
When upgrading from an earlier Vaadin version, you must:
- Recompile your classes using the new Vaadin version. Binary compatibility is only guaranteed for maintenance releases of Vaadin.
- Recompile any add-ons you have created using the new Vaadin
- Unless using the precompiled widget set, recompile your widget set using the new Vaadin version
Remember also to refresh the project in your IDE to ensure that the new version of everything is in use.
By using the "?debug" URL parameter, you can verify that the version of the servlet, the theme, and the widget set all match.
Eclipse users should always check if there is a new version of the Eclipse Plug-in available. The Eclipse Plug-in can be used to update the Vaadin version in the project (Project properties » Vaadin).
Maven users should update the Vaadin dependency version in the pom.xml unless it is defined as LATEST . You must also ensure that the GWT dependency uses the correct version and recompile your project and your widget set.
Liferay and other portal users must install the Vaadin libraries in
Notes and Limitations for Google App Engine
The following instructions and limitations apply when you run a Vaadin application under the Google App Engine.
-
Applications must use GAEVaadinServlet instead of VaadinServlet in web.xml.
-
Session support must be enabled in appengine-web.xml:
<sessions-enabled>true</sessions-enabled>
-
Avoid using the session for storage, usual App Engine limitations apply (no synchronization, that is, unreliable).
-
Vaadin uses memcache for mutex, the key is of the form _vmutex<sessionid>.
-
The Vaadin VaadinSession class is serialized separately into memcache and datastore; the memcache key is _vac<sessionid> and the datastore entity kind is _vac with identifiers of the type _vac<sessionid>.
-
DO NOT update application state when serving an ConnectorResource (such as ClassResource.getStream()).
-
The application remains locked during uploads - a progress bar is not possible
For other known problems, see open tickets at developer site dev.vaadin.com.
Supported Technologies
Vaadin 7 is compatible with Java 6. Vaadin 7 is especially supported on the following operating systems:
- Windows
- Linux
- Mac OS X
Vaadin 7 requires Java Servlet API 2.4 but also supports later versions and should work with any Java application server that conforms to the standard. The following application servers are supported:
- Apache Tomcat, version 5.0 or newer
- Oracle WebLogic® Server, version 10.3 or newer
- IBM WebSphere® Application Server, version 7 or newer
- JBoss Application Server, 4.0.0 or newer
- Jetty, version 5.0 or newer
- Glassfish, version 2.0 or newer
Vaadin 7 supports the JSR-286 Portlet specification. All portals that implement either of the portlet specifications should work. The following portals are supported:
- Liferay Portal 5.2 or newer
- GateIn Portal 3.1 or newer
- eXo Platform 3 or newer
Vaadin also supports Google App Engine.
Vaadin supports the following desktop browsers:
- Mozilla Firefox 18
- Mozilla Firefox 17 ESR
- Internet Explorer 8-10
- Safari 6
- Opera 12
- Google Chrome 23
Additionally, Vaadin supports the built-in browsers in the following mobile operating systems:
- iOS 5, 6
- Android 2.3, 3, 4
Vaadin SQL Container supports the following databases:
- HSQLDB
- MySQL
- MSSQL
- Oracle
- PostgreSQL
Vaadin on the Web
- vaadin.com - The developer portal containing everything you need to know about Vaadin
- vaadin.com/demo - A collection of demos for Vaadin
- vaadin.com/learn - Getting started with Vaadin
- vaadin.com/forum - Forums for Vaadin related discussions
- vaadin.com/book - Book of Vaadin - everything you need to know about Vaadin
- vaadin.com/api - Online javadocs
- vaadin.com/directory - Add-ons for Vaadin
- vaadin.com/pro-account - Commercial support and tools for Vaadin development
- vaadin.com/services - Expert services for Vaadin
- vaadin.com/company - Information about the company behind Vaadin
- dev.vaadin.com - Bug tracker
- How to get the source code of Vaadin