Anna Koskinen [Thu, 5 Sep 2019 11:21:57 +0000 (14:21 +0300)]
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.
Anna Koskinen [Thu, 29 Aug 2019 13:06:25 +0000 (16:06 +0300)]
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.
Anna Koskinen [Tue, 16 Jul 2019 12:21:23 +0000 (15:21 +0300)]
Improvements to detail row index handling. (#11345)
- Escalator should notify when an existing details row is moved to a new
index.
- Grid and DetailsManagerConnector should update their internal indexing
when details manager index changes in Escalator.
Anna Koskinen [Fri, 12 Jul 2019 06:05:20 +0000 (09:05 +0300)]
Ensure the selection has been changed before updating . (#11658)
- Initial fix attempt interfered with selection events, added regression
testing for those and found a better way to ensure shift selection works
on IE11 also with Windows 7.
Tatu Lund [Tue, 25 Jun 2019 12:03:09 +0000 (15:03 +0300)]
Fixing upload handler error handling (#11630)
* Fixing upload handler error handling
For some reason stream variable cleanup did not use UI.getCurrent(), despite current UI was set earlier in handleRequest, what I see specifically for this purpose. So I chanted this. This will address also issue #7289
Furthermore there was TODO in handle request about error handling. I interpreted this to refer to possible corner case, that UI is not found via session. In this case it is more appropriate throw UploadException and abort, than lat NPE happen.
Zhe Sun [Wed, 12 Jun 2019 09:36:55 +0000 (12:36 +0300)]
Update Chrome version in Test (#11613)
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
Old patch https://github.com/vaadin/framework/issues/11416 calls navigateTo allways when Navigator is present, which is wrong, since it is needed only when navigation state has truly changed.
Martin Vysny [Thu, 16 May 2019 06:27:33 +0000 (08:27 +0200)]
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.
edler-san [Thu, 2 May 2019 11:26:14 +0000 (13:26 +0200)]
Changed the handleSessionExpired logic to return a 404 instead of a 410 and added the no-cache parameter to the reply. (#11556)
* Changed the handleSessionExpired logic to return a 404 instead of a 410. Also added the no-cache parameter to the reply.
See https://github.com/vaadin/framework/issues/4417 for discussion.
Sun Zhe [Mon, 29 Apr 2019 08:27:35 +0000 (11:27 +0300)]
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
Sun Zhe [Wed, 24 Apr 2019 10:28:01 +0000 (13:28 +0300)]
Reset Combobox internal state (#11412)
issue in #11343 and #11385 is not reproducible on top this patch
Three different bugs are involved in this fix:
we bring the old fix(#11094) back and fixed the other related issues:
1) allow adding the same new item after dataProvider got reset, This is cause by the client side parameter `LastNewItemString`, it saves the value added before resetting.
2) clear the pending newItem eagerly, so that the same value will not be added again.
- User will have to enable process of the click event on handle calling `slider.setEnableClickHandler(true);`
- Clean-up the handler logic in VSlider.java
- Renaming the property to `updateValueOnClick`
- Added JavaDocs
- Fixing tests
Reset selection on DataProvider change in RadioButtonGroup (#11526)
* Reset selection on DataProvider change in RadioButtonGroup
Fixes #11454
Other components needing the same fix are ListSelect,NativeSelect,Combobox (The ones implementing HasDataProvider and extending AbstractSingleSelect. Grid is not affected as it extends AbstractListing and hadles selection differently)
* Added test case
Verify that ValueChangeListener is actually fired after value is reset setting new DataProvider
Martin Vysny [Mon, 1 Apr 2019 19:07:59 +0000 (22:07 +0300)]
Init logging in VaadinServlet instead of an UI (#11525)
If you use multiple UIs, the use of SLF4J would depend on the UI initialization order which could be pretty random. If you have multiple servlets, it's even better to init SLF4J in ServletContextListener.
Making V8 ReadOnly TextField select row in table upon clicking (#11480)
Add check for the V8 TextField used in Table in compatibility mode. This makes clicking cell with the TextField select the row, preserving behaviour from V7.
Through, as it's noted also before, this is an improved workaround, not a proper solution to address the issue.
Tatu Lund [Thu, 14 Mar 2019 19:24:59 +0000 (21:24 +0200)]
Add note about dependency injection in BrowserWindowOpener JavaDocs (#11495)
If BrowserWindowOpener is used with constructor using Class<? extends UI> as parameter, it will have UI provider with generated url. This will not match UI beans in contextual storage and hence newly created UI will not be managed bean. Due this, injection to new UI instance will not happen. If you are using CDI , BrowserWindowOpener(String) constructor needs to be used.
It seems that in older versions of Firefox (at least, older than 45) the KeyPress event should be used instead of KeyDownHandler. At some point (works already on 58 version, the current one is 65) the issue was resolved and starting from Firefox 65 this hook prevents from navigating in the pop-up via keyboard.
Simply removing additional logic makes navigating in both DateField and InlineDateField possible
Koen De Cock [Thu, 14 Feb 2019 14:52:40 +0000 (15:52 +0100)]
Fix initially selected CheckBox rendering in Safari in v7 compatibility package (#11024) (#11456)
This fix was already applied to com.vaadin.client.ui.VCheckBox but the committer forget to apply the same fix to the com.vaadin.v7.client.ui.VCheckBox. Some people are still temporarely using the checkbox from the compatibility package.
mlindfors [Mon, 4 Feb 2019 11:54:09 +0000 (13:54 +0200)]
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.