Use ZoneId rather than ZoneOffset for conversion (#9620)
Use ZoneId rather than ZoneOffset for conversion between model (Date) and presentation of LocalDateTime.
LocalDateToDateConverter (correctly) uses ZoneId, whereas LocalDateTimeToDateConverter (incorrectly) used a ZoneOffset. This fix aligns the two Converter implementations and makes the latter one more robust.
A ZoneOffset is a fixed time difference, e.g., +07:00, whereas a time zone - represented by a ZoneId - is more dynamic, including features like Daylight-Savings Time. A ZoneId returns one or more ZoneOffsets via its ZoneRules method. (ZoneOffsets have trivial ZoneRules that simply return the ZoneOffset.)
Since the date/time being displayed may be from any date on the calendar, the ZoneOffset imposes a negative limitation. Using ZoneId instead gets us past that limitation and allows a more robust set of conversion rules.
Pekka Hyvönen [Thu, 29 Jun 2017 07:01:05 +0000 (10:01 +0300)]
Fix invalid index in drop target Grid (#9604)
Was using length - 1 and 0 for getting the row element,
which caused client side exception when dragging over header or footer when the grid had enough rows.
This had no effect on UX, only exceptions thrown. Now using visible range instead.
This patch changes Grid Columns, so they can have different value and presentation types. A presentation provider can be given when setting the renderer for a column. This provider takes the value of the column on a row and chooses what to present for this value. Using this approach it is easier to have an editor for the actual backing data instead of the presentation of it.
Leif Åstrand [Wed, 21 Jun 2017 08:02:46 +0000 (11:02 +0300)]
Load the debug window implementation asynchronously (#9026)
Reduces the gzipped DefaultWidgetset eager bundle size from 345kb to
325kb. The relative impact is greater optimized widgetsets that might
have down to around 150kb in the eager bundle.
Added constructor to Grid for compatibility with 8.0.7 (#9206) (#9209)
Constructor Grid(Class, DataCommunicator) was added to 8.0.7 and ported
to master to maintain backward compatibility.
Also fixed javadocs of constructors Grid(DataCommunicator) and
Grid(PropertySet, DataCommunicator) to reflect that constructors were
backported to 8.0.x and available since 8.0.7
Henri Sara [Fri, 26 May 2017 05:48:40 +0000 (08:48 +0300)]
Make dirty connector handling more deterministic (#9396)
Changes in connector tracking and cleaning (#9305) changed the
behavior so that the framework runs beforeClientResponse methods in
a non-deterministic and possibly different order than before.
This change makes the framework call beforeClientResponse methods in
a more deterministic order (parents before children) and checks that
the connector tracker knows the connector.
Pekka Hyvönen [Tue, 23 May 2017 13:51:54 +0000 (16:51 +0300)]
Fix missing drag image on FF, Safari (#9409)
When CSS transform has been applied, the drag image is missing (safari),
or gets offset (FF). Fixed by using custom drag image without transform,
and checking for transforms on parent DOM tree. Does NOT fix #9408
When there are frozen columns used, the image needs should not look weird because of the frozen column transitions.
The multiselection column is now not shown it is frozen.
Henri Sara [Fri, 19 May 2017 13:30:14 +0000 (16:30 +0300)]
Fix menu item selection in tests (#9387)
When the parent span was not used, the size of the wrong span was used
in the calculation of mouse locations for activating a menu item. This
occasionally leads to the wrong submenu being opened on IE as the
cursor passed over the corner of the next item.
Leif Åstrand [Fri, 19 May 2017 12:16:00 +0000 (15:16 +0300)]
Add dependency filters through the service init event (#9368)
We shouldn't create new service loader interfaces since each new such
interface has implications for custom integrations. Instead, the
VaadinServiceInitListener mechanism should be enhanced to allow such
listeners to introduce their own dependency filter implementations
similarly to how VaadinServiceInitListener can already be used to
contribute new request handlers