Skip to content

Releases: vaadin/framework

Vaadin Framework 8.0.0.rc1

10 Feb 13:21
Compare
Choose a tag to compare
Pre-release

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

Full list of changes since 8.0.0.beta2

7.7.7

08 Feb 11:31
Compare
Choose a tag to compare

Enchancements:

  • BeanItem bean can now be changed with setBean
  • Errors during UI.init() are now passed to ErrorHandler
  • Disallow user selection in Grid
  • Added refreshAll method for Grid 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

03 Feb 08:58
Compare
Choose a tag to compare
Pre-release

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 and InlineDataTimeField components for selecting time
    • Replacing old V7 DateField and InlineDateField, but value is LocalDateTime instead of Date
  • 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 with binding.bind(propertyName) before calling binder.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 a ValueChangeListener 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 subclassing AbstractBackEndDataProvider.
  • ListDataProvider has methods for setting filters and sort orders and for creating wrappers that filter by some other type
  • DataProvider.withConvertedFilter can be used to create a wrapper with a different query filter type
  • DataProvider.withConfigurableFilter can be used to create a wrapper with a settable filter
  • AppendableFilterDataProvider and DataProvider.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

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 to com.vaadin.shared.ui
  • BeanBinder has been merged into Binder
    • replace new BeanBinder(Myclass.class) with new Binder(Myclass.class)
  • com.vaadin.shared.ui.datefield.Resolution for DateField and InlineDateField is replaced by com.vaadin.shared.ui.datefield.DateResolution
  • Listing has been removed and replaced with HasItems, HasDataProvider and HasFilterableDataProvider
  • BackEndDataProvider has been changed into an interface, replaced by AbstractBackEndDataProvider / CallBackDataProvider
  • The Sorting API in ListDataProvider and BackEndDataProvider has been changed
    • sortingBy is replaced by setSortOrder and setSortOrders for BackEndDataProvider
    • sortingBy is replaced by setSortComparator, addSortComparator, setSortOrder and addSortOrder for ListDataProvider
  • Switched AbstractComponent::setDescription(String) to set description as innerText instead of HTML by default
  • DataProvider filtering API has been refactored completely, see documentation for reference
  • getFirstSelectedItem replaces getFirstSelected for SelectionEvent, SingleSelectionEvent and MultiSelectionEvent

Full list of changes since 8.0.0.beta1

Vaadin Framework 8.0.0.beta1

19 Dec 20:31
Compare
Choose a tag to compare
Pre-release

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

16 Dec 12:32
Compare
Choose a tag to compare
Pre-release

New features in alpha 10

  • A list of breaking and incompatible changes in FW 8
  • Change defaults of VerticalLayout and HorizontalLayout
    • HorizontalLayout now has spacing on by default
    • VerticalLayout 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

12 Dec 11:41
Compare
Choose a tag to compare
Pre-release

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 and BindingBuilder
    • Changes existing API by modifying returned type in Binder
  • Added shorthand Listing::setItems(Stream)
  • Added shorthand HasValue::clear()
    • corresponds to field.setValue(field.getEmptyValue());
  • Read-only support for Single- & Multiselection models in Grid.
  • Make ViewChangeListener a functional interface by adding default implementation of afterViewChange
  • 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 for Grid
    • Changes existing API by hiding Grid::setSelectionModel
  • Added a generic selection listener to Grid
    • More specific selection listeners added to SingleSelectionModel and MultiSelectionModel
  • 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 to BEAN instead of Optional<BEAN>
    • Changes existing API by modifying returned type in Binder
  • Fix focus and blur handling for CheckBoxGroup, NativeSelect and RadioButtonGroup
  • 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

08 Dec 12:04
Compare
Choose a tag to compare

7.7.6

Filtering and Sorting

02 Dec 08:47
Compare
Choose a tag to compare
Filtering and Sorting Pre-release
Pre-release

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:

7.7.5

23 Nov 10:33
Compare
Choose a tag to compare
7.7.5

SingleSelect and MultiSelect interfaces

18 Nov 07:02
Compare
Choose a tag to compare
Pre-release

Feature changes in alpha7:

  • Built-in select components implement SingleSelect or MultiSelect interfaces depending on which selection type those support.
    • Grid can be bound as a SingleSelect in Binder by using Grid::asSingleSelect().
    • MultiSelect Grid is still work in progress
  • DataSource has been renamed to DataProvider
    • This breaks API compared to previous alphas