Releases: vaadin/framework
Releases · vaadin/framework
Vaadin Framework 8.0.0.rc2
Vaadin Framework 8.0.0.rc2 is a release candidate.
It does not have any API changes compared to 8.0.0.rc1.
Fixes introduced in 8.0.0.rc2
- Clarified various javadocs
- Fixed ComboBox issues with large data sets (using lazy dataprovider)
- Do not fetch all items if paging is used
- Fixed unnecessary fetches for data when it is already available on browser
- Added support for long-tap on iOS for opening context-menu
Vaadin Framework 8.0.0.rc1
Vaadin Framework 8.0.0.rc1 is a release candidate.
Enhancements introduced in 8.0.0.rc1
Grid API
- Add Grid editor events
- Add selection methods to grid that delegate to its selection model
- Add Grid.addColumn(String, Renderer)
- Make one-arg addColumn use natural sort for mutually comparable values
- Use column id as the default sort order property
- Provide a way to set styles for Header/Footer Cells and Rows in a Grid
- Added missing parametrisation onto the column field of the GridContexClickEvent
- Add shorthands for creating lazy DataProviders
- This also applies to ComboBox
- Bug fixes for column removal
Binder and Fields
- Add isValid to Binder
- Throw if there are no automatically bound fields via bindInstanceFields
- Binding a null bean should clear the bound field values
- Provide a way to configure bean validation binder to auto set required fields
- Allow configuring how string to number converters handle empty strings
Miscellaneous
- Provide a convenience method to get items set via setItems()
- Fix problem with re-opening the popup
- Use thread-safe collections for VaadinService listeners
- Fix toggling of WeekNumbers for DateTimeField
- Fix keyboard navigation for ListSelect
- Add addComponentsAndExpand to horizontal and vertical layout
Breaking Changes since 8.0.0.beta2
- Default sort order for Grid may differ from beta2
- An exception is thrown if there are no automatically bound fields in Binder.bindInstanceFields
- Binding a null bean clears the bound field values
7.7.7
Enchancements:
BeanItem
bean can now be changed withsetBean
- Errors during
UI.init()
are now passed toErrorHandler
- Disallow user selection in
Grid
- Added
refreshAll
method forGrid
that does what it says
Bug Fix Priority fixes
- Modal window draggingCurtain lingers when closed while dragging #7496
- Memory leak in ConnectorTracker when push is enabled and no transmission from the client #7748
And lots of other bugfixes, see complete list of changes for 7.7.7
Vaadin Framework 8.0.0.beta2
Vaadin Framework 8.0.0.beta2 is a pre-release version for evaluating the enhancements mentioned below. This beta release has improvements based on your feedback on 8.0.0.beta1. Thank You and Keep Them Coming! We might change things on further beta versions based on feedback if necessary.
Enhancements introduced in 8.0.0.beta2
Component API
DateTimeField
andInlineDataTimeField
components for selecting time- Replacing old V7
DateField
andInlineDateField
, but value isLocalDateTime
instead ofDate
- Replacing old V7
- Added convenience constructors to all components (similar to constructors in V7)
- Added empty selection functionality to NativeSelect
- Added
AbstractComponent::setDescription(String, ContentMode)
for setting description content mode - Grid's Columns can be setup now automatically with
new Grid<>(MyBean.class)
- Added "deselect allowed" feature for Grid
- Make it possible to disable user selection for Grid's SelectionModels
- Grid's Columns can be now ordered and sorting set using the Column ids
Binder and Fields
- Added
Binder::setReadOnly
Binder::forMemberField
is added for automatically binding a field to a bean property without the need to complete the binding withbinding.bind(propertyName)
before callingbinder.bindInstanceFields(obj)
- Added
LocalDateToDateConverter
- Value equality check in
AbstractField
is overridable - Included previous value in
ValueChangeEvent
- Added
HasValue::getOptionalValue
- Added shorthand to
Binder
for adding aValueChangeListener
to all the fields in the binder
New data provider filtering API
- Sorting and filtering is stateful for application settings and stateless for component settings
- Custom back end data providers can be implemented using factory methods in
DataProvider
or by subclassingAbstractBackEndDataProvider
. ListDataProvider
has methods for setting filters and sort orders and for creating wrappers that filter by some other typeDataProvider.withConvertedFilter
can be used to create a wrapper with a different query filter typeDataProvider.withConfigurableFilter
can be used to create a wrapper with a settable filterAppendableFilterDataProvider
andDataProvider.withFilter
concepts have been removed
Web component integration
- It is possible to define the root element for JavaScript components
- Allow multiple
@JavaScript
and@StyleSheet
annotations on a component - Support HTML imports with
@HtmlImport
for easier web component integration
Documentation updates
- Added a Migration Guide
- Documentation has been updated for version 8 for most parts, e.g. Component documentation has been updated
Miscellaneous
- Vaadin Icons are now included in the FW
- Support for HTML5 History API push/replaceState
- Unsupported browser page has been updated to look nice
Breaking Changes since 8.0.0.beta1
com.vaadin.shared.ui.label.ContentMode
has been moved tocom.vaadin.shared.ui
BeanBinder
has been merged intoBinder
- replace
new BeanBinder(Myclass.class)
withnew Binder(Myclass.class)
- replace
com.vaadin.shared.ui.datefield.Resolution
forDateField
andInlineDateField
is replaced bycom.vaadin.shared.ui.datefield.DateResolution
Listing
has been removed and replaced withHasItems
,HasDataProvider
andHasFilterableDataProvider
BackEndDataProvider
has been changed into an interface, replaced byAbstractBackEndDataProvider
/CallBackDataProvider
- The Sorting API in
ListDataProvider
andBackEndDataProvider
has been changedsortingBy
is replaced bysetSortOrder
andsetSortOrders
forBackEndDataProvider
sortingBy
is replaced bysetSortComparator
,addSortComparator
,setSortOrder
andaddSortOrder
forListDataProvider
- Switched
AbstractComponent::setDescription(String)
to set description as innerText instead of HTML by default DataProvider
filtering API has been refactored completely, see documentation for referencegetFirstSelectedItem
replacesgetFirstSelected
forSelectionEvent
,SingleSelectionEvent
andMultiSelectionEvent
Vaadin Framework 8.0.0.beta1
Vaadin Framework 8.0.0.beta1 is a pre-release version for evaluating the enhancements mentioned below. With this beta release we will change things based on your feedback, and that may lead to API breaking changes.
Enhancements in Vaadin Framework 8.0 beta 1
Java 8 API
- Use Lambdas, Streams etc.
New DataProvider API replacing Container
- Separated in-memory and lazy loading cases
- Sorting based on callback (in-memory) or property name (lazy loading)
- Filtering based on callback (in-memory) or custom Filter instance (lazy loading)
- Data representation in components configured as callbacks or bean property names
- Typed API for selection: separate variations for single and multi select
- First draft of DataProvider documentation to help get started
Binder for building forms
- Typesafe binding between field component and item property based on setter and getter callbacks or a bean property name
- Typesafe definition of validation and conversion as part of the binding
Validation of field values automatically configured based on JSR 303 annotations if present - First draft of Binder documentation to help get started
See release notes at vaadin.com for more info like backwards incompatible changes
Changes since 8.0.0.alpha10
- Vaadin CDI add-on version for Framework 8 has been added to vaadin-bom
- FontAwesome icon constants has been deprecated
- will be removed in a later beta and replaced with Vaadin Icons #7979
- Google App Engine documentation has been removed
- support for GAE will be removed in a later beta #8033
- Documentation in github updated
- First draft of Binder, DataProvider documentation for Framework 8
- Small updates to multiple places in documentation
- Marked most not-yet-updated parts for Framework 8
- Removed obsolete documentation Framework 8
Miscellaneous pre-beta changes
New features in alpha 10
- A list of breaking and incompatible changes in FW 8
- Change defaults of
VerticalLayout
andHorizontalLayout
HorizontalLayout
now has spacing on by defaultVerticalLayout
now has margins and spacing on by default- Compatibility versions of the layouts exist with the old defaults
- Most single-method interfaces are now functional interfaces
- Listener interfaces have been reorganized somewhat
Upload
component is in immediate mode by default- Client side module
vaadin-widgets
has been removed - ThreadLocals are no longer inherited by other threads
Grid::addColumn()
without renderer now accepts any type- the value is converted to a string
- Many data binding API related packages, classes and methods have been moved/renamed
com.vaadin.server.data
->com.vaadin.data.provider
com.vaadin.data.util.converter
->com.vaadin.data.converter
- etc.
- Added
ValueProvider
interface and some other common interfaces - Redesigned Grid use of column identifiers
- Extracted interfaces from Grid
- Added SortListener for Grid
- Vaadin Spring version is listed in Vaadin BOM
- etc.
Existing features added from version 7
- Declarative layout support for Grid
- Sorting of Grid from the server side
- All changes introduced by 7.7.5 are migrated into
master
for FW 8 and compatibility components when applicable
In addition to these, several small changes and fixes are included in 8.0.0.alpha10.
Lots of small improvements and fixes
New features in alpha 9
- Github workflow: create tickets and pull requests in Github!
- A list of breaking and incompatible changes in FW 8
- Introduce
VaadinServiceInitListener
- Separated
Binding
andBindingBuilder
- Changes existing API by modifying returned type in
Binder
- Changes existing API by modifying returned type in
- Added shorthand
Listing::setItems(Stream)
- Added shorthand
HasValue::clear()
- corresponds to
field.setValue(field.getEmptyValue());
- corresponds to
- Read-only support for Single- & Multiselection models in Grid.
- Make
ViewChangeListener
a functional interface by adding default implementation ofafterViewChange
- Introduced shared state for every core Framework component, except
AbstractExtension
Existing features added from version 7
- Allow to set caption for the empty selection in a ComboBox (V7)
- Added
Grid::setSelectionMode(SelectionMode)
shorthand forGrid
- Changes existing API by hiding
Grid::setSelectionModel
- Changes existing API by hiding
- Added a generic selection listener to
Grid
- More specific selection listeners added to
SingleSelectionModel
andMultiSelectionModel
- More specific selection listeners added to
- All changes introduced by 7.7.4 are migrated into
master
for FW 8 and compatibility components when applicable
Fixes in alpha 9
- Changed return type of
Binder::getBean
toBEAN
instead ofOptional<BEAN>
- Changes existing API by modifying returned type in
Binder
- Changes existing API by modifying returned type in
- Fix focus and blur handling for
CheckBoxGroup
,NativeSelect
andRadioButtonGroup
- Remove
HideAppendableDataProvider::combineFilters
- Don't use FW 8
FieldEvent
classes in FW 7 compatibility module - Deprecated
Button::setHtmlContentAllowed
- Removed unused browser specific prefixes for box-sizing
- Fix BeanBinder to accept "raw generics type" for field bindings, e.g. Listings
7.7.6
7.7.6
Filtering and Sorting
Added Features in alpha 8
- Added a filter type to Query and DataProvider
- Added setFilter method to DataProvider for setting a default filter that is always applied
- Specific DataProviders to support appendFilter and combineFilters to allow chaining of filters
- Listing Components can now define their own filter type
- Added DataProvider methods for converting filter types
- In-memory sorting provided in Query, DataProviders are now stateless.
- DataProviders implement sortingBy which returns a wrapper through which changed to sorting and filtering are done
Reference implementations: