Ensure recalculateColumnWidths works with refreshAll. (#11934)
Column widths shouldn't be calculated between the clearing of cache and
re-populating it, but be delayed until the cache has some content again.
The calculations should only be triggered immediately if no rows are
expected.
Fixes #9996
Fix an issue with frozen column count and unhiding. (#11929)
* Fix an issue with frozen column count and unhiding.
Unhiding logic should take into account that there can be hidden frozen
columns that are not the column currently getting shown.
* Test tweaks
Less fixed waiting times when there are ways to check that the operation
has been performed. This will hopefully improve the stability a bit.
* Merge branch 'master' into updateTests20191218
Check actual Grid selection instead of relying on allSelected flag. (#11787)
The checkbox for selecting all rows only selects all the rows that have
not been filtered out. Changing the filtering does not change the
selection or the checkbox state so assuming that all rows are selected
simply because the checkbox has been checked cannot work.
Fixes #11479
Improvements to ScrollDestination sanity checks (#11772)
- The new top row logical index should always be within the logical
range and high enough up to avoid leaving a gap if possible.
- Added regression testing for using the different scroll destination
types for scrolling to the top and to the bottom by index.
Fixes #11732
Fix scrollTo for destination START and END and add regression testing. (#11707)
- Initial implementation erroneously assumed that
ScrollDestination.START would only be used for scrolling up and
ScrollDestination.END for scrolling down. That's obviously not what they
are for, otherwise everyone would be using ScrollDestination.ANY.
- Moved actual scrolling to within the helper method that originally
only calculated the new scroll position. Parent method became too long
otherwise.
Fixes #11706
Updated row and spacer handling for Escalator (#11438)
Updated row and spacer handling for Escalator.
Main changes:
- Spacers are only maintained and checked for rows that have DOM
representation, and not at all if there is no details generator. This
gives notable performance improvements to some particularly large Grids
- Escalator no longer tries to trim away any rows that don't fit within
the viewport just because a details row gets opened in Grid. This leads
to some increase in simultaneous DOM elements, but simplifies the logic
considerably. For example opening or closing details rows doesn't
require checking the overall content validity beyond the details row
itself anymore, but some repositioning at most. There are also no longer
any orphaned spacers without corresponding DOM rows.
- Spacers are better integrated into the overall position calculations.
- Some public methods that are no longer used by Escalator or have
changed functionality or order of operations. Any extending classes that
tap into row, spacer, or scroll position handling are likely to need
reworking after this update.
- Auto-detecting row height is delayed until Escalator is both attached
and displayed.
1) recalculate the offset, as ChromeDriver starts to follow the standard;
2) update screenshots;
3) correct the `click()` call with using coordinates, related to 1)
4) `sendkey()` with using key.modifier adjustment
5) add sleep
6) workaround for mastery failures
Grid Editor: make Tab key skip read-only/disabled fields (#11586)
* Grid Editor: make Tab key skip read-only/disabled fields
Closes #11584
* Extracted DefaultEditorEventHandler.getDeltaFromKeyDownEvent() which allows for easy further Grid Editor customization
* Make DefaultEditorEventHandler.Delta public so that getDeltaFromKeyDownEvent() can be overridden
* Fixed exception in isEditable() if the widget was not a Field
* Refactored DefaultEditorEventHandler.Delta to CursorMoveDelta which expresses the intent more clearly
* Merge branch 'master' into master
Grid editor: TAB now skips non-editable columns (#11573)
* Grid editor: TAB now skips non-editable columns
Pressing TAB would shift the focus to non-editable cells when the Grid was in edit mode.
This patch makes DefaultEditorEventHandler to skip such columns.
Closes #10970
* Add tests
Replace the screenshot usage in framework test (#11547)
- Replace the GridDisabledTest screenshot usage
- Replace the screenshot tests in BasicCrudGridEditorRowTest
- Replace the screenshot tests in ComboboxVaadinIcons
- Replace the screenshot tests in ValoThemeUITest::accordions
- Added screenshotcomparetolerance to some screenshot test to make tests stable
Fix an NPE caused by the previous fix to Grid's frozen columns (#11444)
* Fix an NPE caused by the previous fix to Grid's frozen columns (#10653)
If the user managed to get two frozen column count changes into a single server round-trip before the component had been attached, the previous fix #11346 lead to a null pointer exception since there was no diff state available.
This fix adds a null check before removing the frozen column count value from the diff state so that this will not happen.
Closes #10653
* add possibility to configure nested null behavior to Grid.Column
* added addColumn method that allows configuring the nested null handling behavior of the column
* added uitest for nested null value handling, implements #11137
Fix Grid's frozen columns not being set (#10653) (#11346)
In certain cases setting the frozen columns didn't produce the expected result in the client side widget state. This happened if the frozen columns value was set to be the same it was before removeAllColumns was called.
This fix removes the frozen column value from the diff state so that the value gets properly set in the client side.
Closes #10653
Fix for setting default row height for a Grid with details row(s) open. (#11326)
* Fix for setting default row height for a Grid with details row(s) open.
- Details row(s) should be taken into account when the rows are
re-positioned after getting new heights.
Fixes #11325
Revert change to fix issue on removing Grid with components (#11224)
* Test case for removing Grid with components
* This reverts commit b2745dc14f.
Add test case to address the issue with removing gird with components;
Current situation: the grid cannot be removed and client-side throw an error.
fixes: Revert the corresponding change, as it didn't address any issue which was fixed.
Fixes to displaying Grid in a detail row. (#11147)
- Multiple headers shouldn't stack behind each other.
- Body rows shouldn't get stuck to default row height.
- Compatibility version's hidable row selector shouldn't try to
calculate row heights based on rows that haven't been added to DOM yet.
Fixes #7674
This patch adds the ability and configuration
for running tests against cluster running Chrome
browsers in XVFB environment.
It also contains multiple fixes for combining
newer Selenium and Chrome as well as fixes
tests that depend on timezones.