Add 1px buffer to Escalator column natural widths. (#12075)
* Add 1px buffer to Escalator column natural widths.
The purpose of the buffer is to avoid subpixel handling issues,
especially when zoomed in or out.
In case fractions need to be adjusted for browser compatibility, round
up to ensure the contents have the space they need.
Fixes #12048
Add a regression test for Table's RowGenerator feature. (#12069)
* Add a regression test for Table's RowGenerator feature.
There used to be a TB2 test for this once upon a time, but for some
reason that never got converted into a TB3 test before getting removed.
Explicitly remove old dataprovider listener when new one is set (#12064)
* Explicitly remove old dataprovider listener when new one is set
If not done, this can cause memory leakage
* Formatting
* Fixed coding style
* Take into account further scenarios
Component maybe detached permanently and thus data provider listener needs to be remove in detach. Also if this is only momentary remove from layout add back cycle, re-setup is needed in attach, in case it was not already setup before attaching by setDataProvider.
* Change super.detach() call order
* Added null check to getDataProvider
* Setting dataProviderListener to null on detach
* Removing listener only if it exists
* Fix
There might be pending requests in the queue when a resync request is
made (e.g. through a theme change). This can cause conflicts if the
resync request is handled immediately. Therefore the resync request
should also be added to the queue and only get resolved when
doSendInvocationsToServer() gets triggered again.
Fixes #11954
Add column width recalculation when vertical scrollbar hidden/shown. (#12058)
- If the Grid has any columns with non-fixed widths, the presence of a
vertical scrollbar affects the column width calculations. Horizontal
scrollbar should only be shown when actually needed.
Calculate number of the week in the year based on Date. Note, support for "ww" is missing from GWT DateTimeFormat and java.util.Calendar is not supported in GWT, hence DIY method is needed.
Fixes: #10603
Moving disableBrowserAutocomplete to WidgetUtil and change widgets to use it (#12020)
* Add autocomplete prevention to DateField
Autocomplete popup will interfere DateField's own popup
* Adding disableBrowserAutocomplete(..) in WidgetUtil
* Change VComboBox to use WidgetUtil.disableBrowserAutocomplete(..)
* Change to use WidgetUtil.disableBrowserAutocomplete(..)
* Change VFilterSelect to use WidgetUtil.disableBrowserAutocomplete(..)
* Adding WidgetUtil.disableBrowserAutocomplete to VTextualDate
* Adding missing import
* Adding missing import
Table / TreeTable multiselect disabling of touch detection (#12014)
Added a toggle in Table (and thus TreeTable) where you can explicitly
disable multiselect touch screen detection. This allows you to work
around issues on hybrid devices that have both a touch screen and a
keyboard where you don't want automatic simple multiselection applied.
Fixes #11601, slightly modified cherry-pick of #11641
Catch exception that is thrown when Grid is scrolled during operation (#12002)
IllegalStateException may occur if user has scrolled Grid (compatibility library version) so that Escalator has updated, and row under Editor is no longer there
Chrerry pick from https://github.com/vaadin/framework/pull/11467