gwt /
gwt /
f50cc1d967e390f2be67a36beb9c1c448c7ca9b5 Introduces History integration, and takes the first steps toward the
activity scheme documented in
https://wave.google.com/wave/waveref/googlewave.com/w+eva-sERfA
Basically starting from the bottom of that document and working
up. There are no new code generators yet, so the ActivityMaps are
still written by hand, as is the core history integration class.
This has too many moving parts and so is too hard to deal with, but it's a start.
Review at http://gwt-code-reviews.appspot.com/717801
Replaces the strange Place-specific CellListPlacePickerView with a
general ValuePicker widget, and a HasValues extension to the HasValue
interface.
PlaceController and ActivityManager no longer have parameter types.
ActivityManager is now more armored against managed activities
throwing exceptions.
An EventBus interface is introduced to GWT, to abstract
HandlerManager's duties. Activities receive an EventBus at start. Any
handlers they register with it will be de-registered for them
automatically when they are stopped.
RequestFactory is now in the string token generation business, for
both proxy types (i.e. Records), and for their class objects. When a
token is inflated, a record is produced with no fields populated
except the id. (Well, it also has a version of -1, but we're supposed
to be dropping the version requirement, remember?)
Place types are now associated with PlaceTokenizer classes, which are
responsible for serializing and deserializing them as strings that are
history safe.
The PlaceHistoryHandler interface is introduced, whose code-generated
implementations sync place changes with the History framework.
Two standard place and tokenizer pairs are introduced, ProxyPlace and
ProxyListPlace. They know how to use the new RequestFactory token
methods. There is no longer a welter of place subclasses, one per
record type. ProxyPlace and ProxyType are part of GWT.
The edit acitivities now work directly with Record instances, not with
id values. This exposed bugs in how DeltaValueStoreJsonImpl generates
SyncResult instances, which have been fixed.
The Scaffold app has numerous changes which will need to be pushed
into Roo's addon-gwt at the same time that this patch is committed. In
particular, a Factory class is introduced. It is intended that this
class will be replaceable by a generated Ginjector, or whatever other
DI framework comes down the road. It's not all the way there yet, but
it will be required by the proposed actiivty scheme, and simplified
this patch.
The ExpensesEntityTypesProcessor is enhanced to make it easier for
user code to resolve the specific type of a proxy without resorting to
their one instanceof cascades.
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@8549 8db76d5a-ed1c-0410-87a9-c151d255dfc7
100 files changed