Use APPLICATION_SCOPE for the session lock (#11804)
* Use APPLICATION_SCOPE for the session lock
To be able to do this, relevant methods in VaadinService are made protected so
that VaadinPortletService can override them.
The Vaadin session itself is also stored in APPLICATION_SCOPE. The default
scope is PORTLET_SCOPE, so lock would otherwise not be in sync with
the session.
* Fixes a Grid issue that breaks sorting.
When multi-select has been enabled and disabled a number of times, sorting on the first column in a Grid is broken.
Unregistering a click handler on the header solves the problem.
* Added a test checking that sorting of a grid column still works after having enabled and then disabled multi select mode.
The grid is configured with an extra header row containing a text box since it triggers an exception if the header click handler for the multi select column is not removed.
* Remove an unused import that was added by mistake
* Improve VMenuBar click handling logic
Backport to V7:
During `updateFromUIDL` inside MenuBarConnector we empty and re-instantiate the components of MenuBar. When we are modifying the Menubar from the BlurEventListener of another component, we ,by this, remove widgets, therefore clickEvent is not fired and the action of the MenuItem is not proceed as a result. (The BlurEvent is fired before the click event in the chain of events. )
To improve the situation, we catch onMouseDown event , which is fired before BlurEvent,by assigning mouseDown flag to true. Then if no click event has yet happened, we delay the execution of update inside `updateFromUIDL` by default 500 ms. Then if click event occurs, it proceeds normally. The time can be increased/decreased using setter.
There is no delay, if we are clicking on the MenuBar as usual or no Blur listener is set.
This change allows setting descriptions preserving the action from the MenuItem
(cherry picked from commit 22cc85c76f)
* Improve VMenuBar click handling logic
Add missing files from the first commit
Backported to V7:
(cherry picked from commit 22cc85c)
Fix Combo Box filtered on Property not showing results when page length is zero (#11247)
* Fix #11246
Take zero pageLength into account when calculating filtered ComboBox contents.
* Create ComboboxPageLengthZeroFilterTest.java
* add UI tests for fix
Add columns at once in a batched way to increase performance (#11261)
* provide possibility to add columns in a batched way
This is the basis to increase the performance for further changes.
* add the columns at once to the grid to increase performance
* combined performance fixes
* respect the column order
* Fixed formatting