Fix selecting a row that was deselected on the server (#19360)
Client-side connector of the SingleSelectionModel attempts to keep track
of currently selected row. This tracking gets lost when the row get
deselected on the server-side. Special case is now correctly handled.
Reapply DataGenerators when container changes (#19357, #19359)
Previously on container change Grid applied only its internal
DataGenerators to the new RpcDataProviderExtension. Now it goes through
all existing Extensions and adds all DataGenerators to the data
provider.
Leif Åstrand [Thu, 3 Dec 2015 11:10:25 +0000 (13:10 +0200)]
Check for optimizations when looking for missing updates (#18317)
A recently merged patch leaves out information from hierarchyInfo for
empty connectors with state changes. This must be taken into account
when looking for disappeared connectors that do not cause any hierarchy
change to be sent.
Fail during compile if required methods are missing (#18924)
A ComponentConnector must override either getWidget or createWidget for
the framework to know the type of the component's widget. Similarly
either getRenderer och createRenderer must be overridden for
AbstractRendererConnector.
Prior to this patch, the compilation succeeded when critical methods
were missing - the user just got various hard-to-debug issues when the
broken connector was used.
Leif Åstrand [Mon, 30 Nov 2015 07:52:39 +0000 (09:52 +0200)]
Remove bogus comment
The comment was introuced in commit da29f74 for a constant named
CLICK_EVENT_ID, but it was accidentally left in the code when that
constant was removed.
This patch is to test the theme, and not testing a defect (#16597).
Testing with defective screenshots causes problems if the defect is at a
later point fixed.
Omit empty hierarchy data from the response (#18510)
Reduces the payload size for the "Update all labels" action with 40
layouts in BasicPerformanceTest by 16% (from 11087 to 9270 bytes). The
reduction is improved to 22% (1855 to 1455) if the response is gzipped
since the omited data doesn't compress very well.
Henri Sara [Mon, 16 Nov 2015 12:13:32 +0000 (14:13 +0200)]
Fix some TB2 tests for Calendar (#19227)
Fix the commands in some TB2 tests broken by the test change
from #19227.
Screenshots of several calendar tests including these also
need to be updated.
Isolate text selection blocking to Grid instead of body element (#16838)
Some themes are more explicit with user-select rules, and doing this on
the level of body element does not work with said themes. To make all
the themes behave the same way, we only block selection inside of Grid.
Specify custom first day of week for Calendar #19227
Added possibility to provide first day of week independent of Locale.
(the Calendar code has been reformatted according to Eclipse 'Save
action'). Unit-tests added. UI test extended.
mtzukanov [Thu, 15 Oct 2015 10:47:23 +0000 (13:47 +0300)]
Changed grid sidebar to overlay (#18698)
Previously grid sidebar could be partially hidden by
"overflow: hidden" of an ancestor component.
Now it's in an overlay and the hierarchy doesn't affect it.
Grid tests were also updated for new DOM structure.
Leif Åstrand [Fri, 28 Aug 2015 18:47:26 +0000 (21:47 +0300)]
Force FormLayout children to shrink with the layout (#11154)
The <table> used by the FormLayout doesn't reduce its size if any child
component has locked its own size (which is the case with e.g. Table and
some other components doing explicit pixel calculations). To work around
this, we need to detect the situation, force the <table> to reduce its
width by temporarily assigning explicit widths to the cells and then
remove the forced size after all children have adjusted.
Markus Koivisto [Wed, 28 Oct 2015 17:23:22 +0000 (19:23 +0200)]
Touch long tap context click emulation improvements (#19222)
Removed Android handling since it already fires a context menu event
when not selecting text. Increased the threshold for iOS move. Prevent
some browser default functionality on TouchEnd after sending context
click event to server.
mtzukanov [Thu, 22 Oct 2015 10:52:39 +0000 (13:52 +0300)]
Fixes column header drop indicator (#18925)
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.
Removing a widget that got moved to another layout occasionally caused
slot to lose track of related widget. As a result the layout never
created a new slot when the same widget is put back in there.
Fix TreeTableContextClickTest to not scroll vertically on IE
Too wide TreeTable in a UI causes IE to scroll vertically making
calculated positions fail miserably. Also makes context clicking in
AbstractContextClickTest avoid StaleElementReferenceExceptions.
Henri Sara [Wed, 14 Oct 2015 16:49:45 +0000 (09:49 -0700)]
Make it possible to inject Navigators (#14006)
This change makes it possible to create an injectable subclass of
the navigator by providing a protected no-args constructor and a
separate initialization method.
Henri Sara [Sun, 11 Oct 2015 14:41:07 +0000 (07:41 -0700)]
Make Navigator more extensible
The Spring, CDI etc. add-ons need hook points that permit switching
contexts at the right time. This was very hard to do due to the
monolithic nature of navigateTo() - beforeViewChange() is too early
and can be cancelled, afterViewChange() is too late.
pag [Sat, 10 Oct 2015 15:05:37 +0000 (17:05 +0200)]
VTree$TreeNode avoid NPE triggered by external ONLOAD events (#18563)
If an ONLOAD event fires but the target is not the icon, an NPE
occurs. The isCaptionElement method has already used the check
against null before any call happens on the icon which logic is
enough for the onBrowserEvent check as well.
Marco Collovati [Sat, 19 Sep 2015 20:54:48 +0000 (22:54 +0200)]
Implemented HasEnabled on VLink (#18530)
Method setWidgetEnabled in AbstractComponentConnector,
called from updateEnabledState, sets enable state only for widgets
implementing HasEnabled interface.