Trigger re-measure after updating ElementResizeListeners. (#11912)
Removing ElementResizeListeners from an element makes it unmeasurable
and clears any saved measured values. Adding the listeners back makes
the element measurable again but doesn't add it to measuring queue.
Measuring needs to happen or any updates to expanded components within a
layout (without changes that would trigger full re-measuring of the
layout itself) lead to broken expand size calculations with any fixed
size elements assumed to have no size.
Fixes #10734
Further tweaks to ComboBox popup positioning. (#11910)
* Further tweaks to ComboBox popup positioning.
- Updated a comment and renamed a private method for better clarity.
- Blocked unnecessary position updates.
- Added a test for #11866 / #11894.
* Removing code causing the trouble
Removing code that was apparently not needed in previous fix and caused regression
Fixes: https://github.com/vaadin/framework/issues/11895
* Added feature to test UI
* Added test case
* Adding missing import
* Fixing test UI
* Enable DateField
Fix logic of lexicographical comparison of DateField range end (#11885)
* Fix logic of lexicographical comparison of DateField range end
Fix logic of lexicographical comparison of DateField range end with large year numbers ( > 9999)
Fixes #11881
* Added tests
Purpose of dateFieldRangeYearDigitsIncrease() is to test that rangeEnd works correctly on 4 to 5 digits change boundary
Purpose of dateFieldRangeYearBigNumbersPopupOpens() is to test that popup opens also when there is more than 4 digits in year
* Fixing typo
* Add error message
* Set the date of the field in test
* Fixing
Don't reset date to current at DateField state (e.g. read-only) updates. (#11879)
- DateFields with month or year resolution should not get their date
reset to current date if the field's state is updated (e.g. by changing
read-only status or adding a range).
Fixes: #11864, #11605
Improvements to popup positioning for ComboBox within HorizontalLayout. (#11846)
Expand ratio and spacing can cause ComboBox to miscalculate its own
position while layouting is still ongoing. Popup should not be
repositioned in such circumstances in order to avoid incorrect
intermediate states.
Continues on #11718
Close window on ESC, when maximized button is clicked (#11840)
Fixes #11838
Changes:
1. Close a window when maximized button is focused and ESC is pressed
2. Add additional check for a close button to react to the ESC key press
3. Rename a private method `onCloseClick` to `closeWindow` to allow code re-use
Don't attempt to send expand/collapse events for disabled TreeGrid. (#11823)
The attempt gets blocked later down the line in any case and never
reaches the server, but sending it messes up TreeGrid's internal state.
It gets stuck waiting for the resolution of the blocked call that can
then only be resolved by server-side sending its own expand/collapse
request programmatically. Until that happens no further expand/collapse
attempts will get sent to server even after the TreeGrid has been
enabled again.
Tree is also affected as it is built upon TreeGrid.
Fixes #11822
Fixing issue with TwinColSelect not correctly retaining visible selection (#11799)
There is a bug in TwinColSelect loging, it retains selection by indexes not by values after being sorted when new item has been added. This is a fixed by changing updateListBox method to retain the selection as it is being called after selection is being done.
Fixes: #11287
Reduce excess positioning calls for ComboBox popup. (#11808)
- If an open popup is reset to its default position on every update from
the server before getting adjusted again to the actual expected
position, on heavier applications some of those intermediate positions
might get rendered. If the ComboBox is positioned at the right edge and
the popup contents are longer than the input field (i.e. popup should
open to the left, not right) this might cause flickering.
- Setting the default position is only actually needed when the popup is
opened in order to give it a baseline, otherwise it's better to simply
adjust the position if needed.
Continues on #11718
Fix a timing issue in ComboBox filtering via paste using mouse. (#11780)
The filtering needs to be delayed, otherwise it's performed before the
new filter text is available and the old filter text is used instead.
Fixes #11779
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.
Fixes #11608
Clicking on DateField pop-up should select Month/Year (#11531)
* Clicking on DateField pop-up should select Month/Year
In Year/Month Resolution DateField should select the value, when user clicks on pop-up
Fixes #8447
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.
* Clicking on slider makes handler move
Fixes #1496
* Introducing control over clicking behaviour
- 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
Fixing autocompletion issue with ComboBox on newer Chrome versions (#11472)
* Fixing autocompletion issue with ComboBox on newer Chrome versions
Newer Chrome versions do not work with random number hack to prevent auto completion, but it finally supports autocomplete=off.
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
* Merge branch 'master' into fix11437
Use Enter and Space keys to fire Window header buttons (#11517) (#11534)
* Fixes 11517. Use ENTER and SPACE keys as shortcuts for header buttons
* Merge branch 'master' into fix-11517
* Increase sleep time for test failing in validation
* Merge branch 'master' into fix-11517
* Add Test file
* Remove redundant check for for Firefox
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
Fixes #11465
Checkbox allow customizing of input and label classNames. (#11372)
* add client side integration for custom styles for checkbox.label and checkbox.input
* add server side integration for checkbox element styling
* add server side tests
* add client side test
* Improve VMenuBar click handling logic
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
* Remove accidentally committed comment
* Don't update the state on the getDelayMs call
* Move onClick logic to the Connector
Move onClick event handling from 'VNativeButton' to NativeButtonConnector. Now works as for regular button.
Also, adding propagation of the `enabled` value to the state on disableOnClick being true
Fixes https://github.com/vaadin/framework/issues/11188
Apply missing v-readonly style to CheckBoxGroup, when component is readOnly (#11370)
Setting read-only state to CheckBoxGroup should disable adding clicking effect. Missing v-readonly style is added to every CheckBox in the component, if it's set to read-only.
Fixes: https://github.com/vaadin/framework/issues/11113
* Add file missed from initial commit
* Verifying that option is enabled
Some of the options might be disabled on there own. Verify that option is not disabled, before removing disabled styles.
* Add missing test file
Update time in ReadOnly state of DateTimeCalendar (#11269)
Fix https://github.com/vaadin/framework/issues/11268
```buildTime()``` function re-initializes ListBoxes for hours,minutes and seconds values. We need to set correct values in those ListBoxes, before assigning value to the labels displayed instead of those ListBoxes in ReadOnly state, as , otherwise, the selectedItemIndex returns 0.
Display the caption of the Empty selection in NativeSelect (#11191)
* Fixes #10937
- Previously if selected value is null, then index is set to -1; in current implementation if value is null and emptySelection is allowed then set the index to 0. (The position for the empty selection)
- Also, if changing the allowEmptySelection on the fly, ensure, that either index is to-reset to -1 by setting the selected value to null on the client-side (the value before was null) or preserve the value(value was different than empty).
* Change the test case
Since in this pr the behaviour of the NS is changed, therefore old test need to be adjusted.
Change: setting null as value will select empty selection. Before that nothing would be selected and value will be cleared.
Behaviour change in PR: Allow selecting null as value