Make UI.pushConnection transient to prevent null resource after deserialization (#11809)
* PushConnection is not Serializable anymore
* AtmospherePushConnection fields are not transient
* UI.setSession calls setPushConnection(null) instead of pushConnection.disconnect()
* pushConnection.disconnect() asserts isConnected()
* If UI has a push connection, it should now always have isConnected() == true
Artur Signell [Wed, 5 Jun 2013 16:15:49 +0000 (19:15 +0300)]
Merge changes from origin/7.0
892b8ba Do not submit TextArea value on enter in IE (#11982) bd3f975 Properly disable combobox when parent is disabled (#10734) 1b85e59 Added missing import (#11982) 3c8a3bf Merge of properly focus clicked input element in Webkit (#11854, #11297) d647d7a Ensure VBrowserFrame content is unloaded in IE (#11683) 08ba394 Disable drag&drop when source or target component is disabled, re-implementation of 6.8 fix for #11801 b01427a Change field types from LinkedHashSet back to HashSet to retain binary compatibility (#11432) 14ebd0d Fixed newlines
Leif Åstrand [Wed, 29 May 2013 07:43:07 +0000 (10:43 +0300)]
Update broadcaster tutorial code
* Don't need to start a thread for broadcasting with the new UI.access
* Add @Push to the UI
* Use CopyOnWriteArrayList instead of synchronized methods
Artur Signell [Thu, 30 May 2013 13:04:33 +0000 (16:04 +0300)]
Fix streaming issue with iOS6 (#11934)
It appears that iOS6 will not make new request (at least for images) to a server to which there is already a connection open which possibly will be kept alive after the current request is done (Connection: Keep-alive asked by the client and not denied by the server)
Leif Åstrand [Thu, 30 May 2013 07:25:23 +0000 (10:25 +0300)]
Make ProgressInidcatorConnector use VProgressIndicator (#11925)
When ProgressBar was split out from ProgressIndicator,
ProgressIndicatorConnector was accidentally left inheriting the
VProgressBar widget from ProgressBarConnector instead of using its own
VProgressIndicator.
John Ahlroos [Tue, 28 May 2013 09:39:20 +0000 (12:39 +0300)]
Fixes current text being overwritten in server update on RTA #11741
If the server happens to update the state of the RTA while a user is
typing then the users text will be replaced by the value on the server. To fix
this the RTA should not update if the value is the same as the one
cached on the client side.
Also moves blur handling and server<->client syncronization to the
connector.
Leif Åstrand [Tue, 28 May 2013 13:52:10 +0000 (16:52 +0300)]
Avoid deadlock checking in runPendingAccessTasks() (#11897)
The deadlock check in accessSynchronously() was triggered in cases where
one session was locked and tryLock() in access() did manage to lock
another session and thus attempted to run the runnable right away.
runPendingAccessTasks() needed accessSynchronously() just for setting up
the current session instance - the session was already locked and
cleaning up the CurrentInstance values afterwards was not needed. Just
setting the current session without accessSynchronously() gets rid of
the inappropriate deadlock detection as well as some overhead with
managing locks and CurrentInstance values.
Leif Åstrand [Tue, 28 May 2013 12:36:16 +0000 (15:36 +0300)]
Remove outdated testing (#11897)
* access is run right away instead of the next time there's a request
from the server.
* Non-inheritable CurrentInstance values are not carried over to access
Artur Signell [Tue, 21 May 2013 13:51:32 +0000 (16:51 +0300)]
Modified the logic in setPropertyDatasource which determines if a new converter is needed (#11863)
The previous logic had two flaws
* It allowed converter model type to be a sub type of the model type but not vice versa. Similarly for presentation type.
* If the user has set a converter it should be used and not be replaced unless it is absolutely sure that it cannot in any possible way handle conversion (e.g. converter from integer to double cannot handle string to list conversion). If there is a slight chance that it can handle conversion, let it be and let the user set another converter when needed.
Leif Åstrand [Tue, 21 May 2013 10:33:44 +0000 (13:33 +0300)]
Derive current servlet/portlet from the current service (#11779)
Implement VaadinPortlet.getCurrent() to use VaadinService.getCurrent()
instead of having a separate thread local variable. This is done to
avoid classloading issues when determining which instances to preserve
in CurrentInstance.setThreadLocals. The two current instances have
previously been kept in sync in all cases except during
VaadinPortlet.init where VaadinService has not yet been created.
VaadinPortlet.setCurrent() is removed as no way of preserving its
semantics has been found. This breaks API compatibility, but is probably
better than having a deprecated implementation that can not work as
expected in all situations.
The same changes have also been made to VaadinServlet to maintain the
symmetry.
Leif Åstrand [Mon, 20 May 2013 13:45:56 +0000 (16:45 +0300)]
Always add tooltip event handlers for Window (#11448)
This is needed to ensure tooltips are closed when moving the mouse
outside the component but still inside the window. In 7.1, this should
instead be implemented by overriding hasTooltip() to return true.
Leif Åstrand [Fri, 17 May 2013 13:14:27 +0000 (16:14 +0300)]
Merge changes from origin/7.0
1a6200e Merge #6880 test from 6.8; fix itself is not needed in Vaadin 7 67696f3 SQLContainer.indexOfId() also searches backwards (#11849, #10376) 611e5f9 Test for #11267 adapted from 6.8. 609acd1 Fixed table height rendering in Android 2.3 #11331 63dd611 Centers VOverlays in visual viewport on iOS, Android, fixes #11614 5a33d7d Test for #11775 0c8edf1 Avoid marking AbstractField dirty in primitive getters (#11201)