Add APIs to inform components of stale objects in DataProvider (#8271)
* Add DataProvider refreshItem for single item update
* Add 'id' concept for DataProviders
This patch also adds a simplified data provider that can replace items
based on their id. This can be used to simulate stale objects from an actual
backend.
* Add refresh logic to Grid SelectionModels
* Remove broken equals and hashCode
* Refresh KeyMapper, clean up some methods
* Fix UI.access in test
* Fix tests and Grid single selection model
* Do clean up before replacing data provider
* Check correct variable for null value
* Fix other selects, add generic tests
* Code style fixes, removed assert
* Merge remote-tracking branch 'origin/master' into 286_refresh_items
* Fix documentation for refreshing an item
* Improve introduction chapter, minor clarifications
* Merge remote-tracking branch 'origin/master' into 287_refresh_items
* Add missing parameters in unit tests
Support loading of HTML imports using @HtmlImport (#8301)
Note that not all browsers yet support HTML imports. If a polyfill
is needed to load HTML imports, it must be loaded before HTML Imports
can be loaded. There is no automatic loading of any polyfills.
Add static helpers for creating callback data providers (#8314)
Cannot overload the same create method for this purpose since it
conflicts with T... overload. Each case is instead given its own
descriptive but still discoverable method name.
Fix absolute layout component sizing on size change (#8269)
* Fix absolute layout component sizing on size change (#8255, #8256, #8257)
Changing from relative to defined size leaves the component positioned wrong,
also changing from defined size to relative size leaves the component in the
wrong position with the wrong size.
Change makes the wrapper rerun setChildWidgetPosition() that adds/removes
necessary css definitions to/from the cssPosition String.
* Clean test sources according to review.
Change BackEndDataProvider into an interface (#8268)
* Change BackEndDataProvider into an interface
BackEndDataProvider is now an interface with methods for setting
sorting options based on SortOrder instances.
AbstractBackEndDataProvider stores sorting options, combines them with
the sorting provided in the query and invokes its own abstract fetch and
size methods.
CallbackDataProvider implements a BackEndDataProvider based on two
lambdas.
This is one of many steps towards #8245
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.
Replace Listing with HasDataProvider and HasFilterableDataProvider (#8122)
* Replace Listing with HasDataProvider and HasFilterableDataProvider
The type parameters of the Listing interface does in practice mean that
it isn't useful for anything. This patch replaces that interface with
separate types for components that require filterable data providers and
components that support any kind of data provider.
The setItem methods are extracted to a common interface that is also
directly implemented by AbstractListing.
* Fix TestBench API imports, move functionality from custom elements
* Fixes to TestBench APIs and JavaDocs
* Merge remote-tracking branch 'origin/master' into 578_tbapi_cleanup
* Fix method name in CheckBoxGroupTest
* Remove unused custom element classes
* Implement getOptions using getOptionElements
* Replace setValue with setSelection in CheckBoxGroupElement
* Rename CheckBoxGroupElement getSelection to getValue
* Fix one last method
Correctly reset DataCommunicator when its DataProvider is changed (#8138)
* Correctly reset DataCommunicator when its DataProvider is changed
* Improve ReplaceDataProviderTest
* Remove return type from AbstractListing.readItems
Change-Id: I73201908b537ca0a65106e03c9bad913b59fae9f
Re-added back disappeared commit from 7.7.5 migration PR:
Mark TextField/TextArea as busy when a text change event is pending
(#20469)
Change-Id: I404985ae0be1e7dc65171b610032f8649e700f50
Include Framework Element API for TestBench in the project (#8014)
This makes it possible to use the latest Element classes in the
framework tests and to simplify the build process.
The license for the included element classes are changed to Apache2
The upload test should use an Upload in non-immediate mode because the
file name is written in-line into the Upload text input and the button
is used to upload a file without showing a file chooser dialog. The test
for upload in immediate mode works for Chrome (no file chooser window
issue) but it doesn't work for IE11 (at least, may be the same issue for
FF).
So the test UI is just updated to use non-immediate mode.
Use PhantomJS2 for server integration tests (#8030)
* Run server integration tests with PhantomJS2
* Add delay to integration test screenshots
Otherwise, the progress indicator might still be fading when the
screenshot is taken, and the screenshots are not fully stable.
* Reduce integration test startup delays
* Add PhantomJS2 screenshots for integration tests
* Add PhantomJS2 screenshots for tomcat 7 proxy test
* Fix context menu missing box-shadow for Runo on Chrome (#7966)
Change-Id: I318761527a695c741f52b4c18e9f8ea943f89017
* Update Chrome version in VerifyBrowserVersionTest