Webinar: What's new in Vaadin 8?

hi .
I WANT DEVELOP ERP SYSTEM BY VAADIN.
PLEASE HELP ME.

Hello!
If we migrate a Vaadin 7 project into 8 and we want to use both 7 (to stay compatible) and 8 features, then we have to use both the vaadin-compatibility-XXX.jars and the new vaadin-XXX jars or only the vaadin-compatibility-XXX.jars?
Thanks in advance!

Hi,

I’ve tried to migrate my
https://vaadin.com/directory#!addon/gridutil
to vaadin 8 and got a lot of issues to get everything done.

Could you please explain your idea of using the grid in real-live examples. For example a grid with custom ColumnRenders, Filtering etc. The API of the grid confused me a lot - especially the mixing of ValueProvider and propertyName for column handling. Furthermore the PropertySet that is instantiated within the constructor is not accessible from outside.

Thanks in advance!

How to bind nested beans in grid, and how to add a custom column to the grid which may contain a custom component (e.g: HorizontalLayout of many components).

There was already so many questions in the sign up form, that we probably cannot tackle all of them or the ones here during the live webinar, but feel free to post the questions here (or as a separate threads to the forum) and we’ll try to answer them after the webinar.

cheers,
matti

Just started learning Vaadin. Looking for Best Practices using Vaadin with EclipseLink. We will need to develop dynamic tables with custom editors/renders. Dialogs invoked from tables (or should grids be the focus).

I know 8.1 is in the pipline and am very keen for TreeGrid to be v 8 comliant but not sure when I will get this and what else will be in the same release. Could you publish a road-map on your web-site somewhere showing planned releases and content please for say the remainder of this year?

Could you guys post this source code in github and provide the link so that other people can follow your code.

The AbstractComponent.setImmediate(boolean) method gone. Is every component is immediate = true? The setReadOnly(boolean) also disappeared. Why?

Is Calendar component will be availabale in v 8.1? we really need it.

I cannot guarantee that, but we have that as a
candidate
for 8.1 currently. Please go +1 https://github.com/vaadin/framework/issues/8217

EDITED: The Calendar component is still available in the compability packages, but it doesn’t have any API changes / updates compared to 7.7 version.

Yes, all components are now immediate, and you cannot change that. The only component that actually still has a immediate mode, is the Upload component, where there is also a difference in the UX of the component.

The read-only has been moved from
AbstractComponent
to the
HasValue
interface (implemented by all field components), as it only makes sense for components that allow the user to edit a value. It has no sense for e.g. a Label…

From the webinar, my first example is available in
the whatsnew page
.

The application that Matti migrated from V7 to V8 is available in
Spring Guides
, you can find
the source code from git
.

For 8.1 the
plan
is

  • TreeGrid and HierarchicalDataProvider
  • Components in Grid
  • HTML5 drag and drop support
  • DND of Grid’s rows
  • Better OSGi support (Liferay 7)
  • Other things are considered, but no guarantees at this point
    Currently it looks like it would be release in May, meaning that a beta would be out in April. This is the current plan, and it can change.

For rest of the year and long term roadmap, there will be announcements in due time, most likely in the blog. You can always refer to https://vaadin.com/roadmap to the most up-to-date information.

As seen from the webinar, you just need to use the compatibility ones as they depend on the “actual” V8 ones. Once you’ve migrated everything to V8 (no com.vaadin.v7.* imports), then you can switch to use the non-compatibility jars.

TL;DR: Not sure I can really explain anything better than what is in our documentation, so please refer to
grid
and
data provider
documentataion.

We probably didn’t touched this enough in the webinar, but basically the Grid has two flavours. Reading all the properties from the bean (using the constructor accepting the bean class), or defining columns per ValueProvider callbacks. For the bean based grid, the
id
of the column is the same as the property name in the bean. For the value provider based grid, you can define the id of the column using
Column.setId
in case you need to configure it more later on and don’t want to store it separately.

Not sure what you mean with the PropertySet, there is a static builder method Grid.withPropertySet where you can provide your own set of properties to use, instead of using all properties.

For custom column compontents, you can use the
build-in renderers
or build your custom one. The directory has some addons with more renderer implementations, hopefully migrated to support 8. As mentioned in the webinar, the components in grid allows you to have any component in any cell in the grid, and is being currently developed for 8.1.

The
editor fields for each column
in the grid’s inline editor can be customized.

A note of caution with EclipseLink regarding issues with Java 8 Stream API (since I believe Vaadin 8 relies on streams under the hood). Make sure to use the latest version of EclipseLink and verify that you are not being affected by this bug.
Apparently it is fixed in 2.7.0 but hasn’t been formally released yet (nightly builds are available).


https://bugs.eclipse.org/bugs/show_bug.cgi?id=467470

Or maybe consider another ORM provider such as DataNucleus.

Tell me more about the “Reindeer” theme compability tool mentioned around minute 41:00. What is it? Where can I get it? Does that tool or something else alter Valo to use same fonts, colors, and sizing of Reindeer?

I found Reindeer to be a good fit for enterprise-style apps. Valo’s defaults are too stylish, too large, and too difficult to read for data-intensive office-worker type use.

Basil, use these variables:
https://github.com/vaadin/valo-demo/blob/master/src/main/webapp/VAADIN/themes/tests-valo-reindeer/_variables.scss

Those should give you same font sizes, margins and spacings and most of the app should behave well. The looks change towards the basic Valo theme, but it don’t consume that much estate from your screen. I could ask around if we have ready made parameters to also change the colors to be closer to the Reindeer theme.

Graham, the new data binding API supports List, arrays and Stream’s for in memory listings. If you aim for best possible performance, heading to streams when accessing JPA backends probably don’t give you that big difference anyways. You can’t leave connections open for large amount of users so you need to do paged requests to the backend anyways. With basic JPA API and the new callback based lazyloading solution (setDataProvider method) will work very efficiently.

cheers,
matti