Support for HTML5 push/replaceState for proper deep linking features (#8116)
* Added support for HTML5 push/replaceState for proper deep linkin features
* Automated test script now works at least on chrome
* Uses html5 push/popstate to implement uri fragment feature
* fire legacy fragment change events also via popstate events rpc calls
* send new fragments via pushstate mechanism
* formatting
* Formatting and adding test and workaround for IE bug
* Formatting and depracated UriFragmentListener
* Aligned naming in the new API
* Ignored IE due to web driver bug
Tested a workaround with javascript based window.location.href fetch,
but that don’t seem to work stable enough.
All components are now in immediate mode by default.
V7 compatibility components will use AbstractLegacyComponent that has immediate.
V7 ColorPickerPopup will not have setImmediate, since it extends V8 Window,
which is not in V7 compatibility packages.
Removed OutOfSync and ResynchronizeAfterAsyncRemoval Tests,
since those tested UI in not immediate mode, which is invalid now.
Removed WindowResizeListener, LazyWindowResize, test UIs,
since both used immediate and there were no test run for either.
Change-Id: Ie1c8cfa4c48461db944ff9b13efe8473c5a3298f
- Changes input prompt to be based on the placeholder attribute.
- Unifies TextChangeEvents with ValueChangeEvents.
- add*Listener methods now return Registration objects, remove*Listener methods removed.
Change-Id: Ie92506ae9db205bb0010ae9126c608c62ad023ff
Ensure server side focus is applied when opening a window (#17731)
This change removes all deferred commands for handling window focus to
ensure
the focus events are triggered in the expected order
Change-Id: I46598243d1022b82cf64f0e60169f52248c3cc72
Allow changing theme on the fly (#2874, #14139, #14124)
* Updates UI and overlay container class names when the theme changes
* Initially verifies that the theme has actually been loaded (for the embed case)
and class names have been properly set
* Forces a state change to all components to re-translate theme:// URLs
* Runs a full layout after the new theme has been loaded and activated
Change-Id: I5a7391abe1bb467130bbb4660e4829b43f3e4255
This reverts commit 1b73b00b28 as
well as the related changes to @since, release notes etc.
Conflicts:
client/src/com/vaadin/client/ResourceLoader.java
client/src/com/vaadin/client/communication/TranslatedURLReference.java
client/src/com/vaadin/client/ui/ui/UIConnector.java
server/src/com/vaadin/ui/UI.java
shared/src/com/vaadin/shared/ui/ui/UIState.java
uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
Change-Id: Id882dc730f51055f6d17200964bcaf8a1f87a35f
Prevent showing "Session Expired" notification if navigating away (#12298)
Currently only works if navigation initiated via Page.open(url, "_self").
Page.setLocation should be changed in 7.2 to use "_self" as well (#12925)
Change-Id: I56ad66ffbbd1a83b64999307d23028cbd84bb508
Fix fragment handling regression caused by #10769 (#11686)
Due to the way Window.Location.createUrlBuilder works, a location URI with no
fragment (as opposed to an empty fragment) was sent on Webkit browsers when
the client-side location had an empty fragment.
TestBench test: FragmentChangeEvents.html
Change-Id: Ie2e8dc3fffc13aaa53105b54e07b1f81f3878f1b
* Change VUI class name from v-view to v-ui
* Use state.primaryStyleName so it can be changed
* Remove useless v-app-VaadinServiceSession from bootstrap root div
Change-Id: I67d3cb3efb5b4033416dcfcf7f39cbc71ac70cbc
* Send the whole window location, not just fragment, in bootstrap and when the fragment changes
* BrowserDetails now has URI getLocation() instead of String getUriFragment()
* Keep FragmentChangeListeners as-is, should perhaps change to LocationChangeListeners at some point
* Implement Page.getFragment() by means of Page.getLocation()
* Differentiate between no fragment (null) and empty fragment ("") as java.net.URI does
Change-Id: I1da1ea0664304d0c121a57e85d127fe48605e940
Rename Root related classes and package to UI (#8908)
Automatic renames in Eclipse of:
- package com.vaadin.terminal.gwt.client.ui.root to .UI
- RootConnector to UIConnector
- RootServerRpc to UIServerRpc
- RootState to UIState
- VRoot to VUI
- RootRequiresMoreInformationException to UIRequiresMoreInformationException
Moved each component to its own package on client side
Class loaders have problems with referring to static inner classes (e.g.
state classes) when they cannot load the declaring class. To deal with
this the components have been moved to their own packages and state/rpc
classes will be defined in their own Java files.