* Added Griddragger.
* Refactored the GridDragger to match FW style
Unit tests, Test UI and documentation to come next.
* Change DropMode to BETWEEN and add Test UIs
* Simplify GridDragger API
* Fixes and unit tests for GridDragger
Fixed issues regarding drop index calculation when sourche and target grid is the same.
When the ListDataProvider is not internally using List, always drops to the end.
Updates the old data provider instead of creating a new one to preserve filters&sorting.
Add new drop mode ON_GRID for GridDropTarget (#10296)
* Add new drop mode ON_GRID for GridDropTarget
Also adds a way to not accept drops on rows when the user has sorted the grid.
This way the bad UX can be avoided for showing the drop indicator for the wrong place when the grid has been sorted.
This has not been made default behavior to GridDropTarget since it would change behavior compared to 8.1.
Instead if is triggerable via API in GridDropTarget.
* Refactor sorted grid drop logic to server side
* Block setDropMode calls
Blocking setDropMode set values if the grid has been sorted and drop on
sorted rows is not allowed. The value is used once the grid is not sorted
anymore or the drops are allowed on sorted rows.
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.
Fixes #9261
Refactor Html5 DnD feature based on API review (#9306)
* Refactor Html5 DnD client side based on API review
- Moved classes to "correct" packages.
- Removed method DragSourceExtension.clearDataTransferText()
- Remove ButtonDragSource in favor of more generic API
Add mobile html5 dnd support using polyfill (#9282)
First step of mobile DND support.
- Add mobile html5 dnd support using polyfill
- Adds a switch for enabling mobile html5 dnd support
- Adds polyfill only when needed
- Ignore native Android Chrome drag start because doesn't work properly
(no dragend event fired)
- Add documentation on enabling mobile HTML5 DnD support
- Add mention of drag-drop-polyfill license
- Fixed issue in polyfill when not using "snapback"
- Add mention of forked polyfill
Fixes #9174
- Always set some drag data
- Set the dropEffect on dragEnter and dragOver events on drop target
- Send the dropEffect to server on drop event with disclaimer of current support
- Remove _dragOverCriteria_ and use _dropCriteria_ for `dragenter`, `dragover` and `drop` criteria
Tested manually basic DnD and Grid DnD on Mac with Chrome, Firefox, Safari.
Safari is still missing drag image (regression).
Tested manually basic DnD and Grid Dnd on Windows IE11 and Edge.
Drop event for both is still not working properly #9174.
Move and rename server classes which go into the compatibility package
* Use com.vaadin.v7
* Use the same class name as in Vaadin 7
* Use a "vaadin7-" declarative prefix for Vaadin 7 components
Change-Id: I19a27f3835b18980b91a4f8f9464b2adde1a5fd5
Calculation of the frozen column width was wrong in multiselect mode.
It did not take into account the last frozen column, but added
the select column twice.
The same problem was in AutoScroller (as the same methods were
copy-pasted there), for which reason the autoscrolling was not
scrolling till the end.
This patch fixes the calculation error and removes copy-pasted code,
reusing the same code in both places.
Change-Id: I164e2fc96688088b620ad8785c533c593723f83e