To be clear, all these comments are nits. If you need to submit and
follow up to get to them, that's cool.

On 2010/09/24 21:48:40, rjrjr wrote:
LGTM

As we discussed, putting the new JSO in the master value store feels
skeevey but
should do no harm for this patch. Landing this lets us proceed.

We have uncovered a pretty serious problem with the api, the fact that
requests
are not responsible for their own creates. I'll log a follow up issue
on that.

http://gwt-code-reviews.appspot.com/921801/diff/8001/9002
File

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/events/EditPersonEvent.java
(right):

http://gwt-code-reviews.appspot.com/921801/diff/8001/9002#newcode41

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/events/EditPersonEvent.java:41:
public EditPersonEvent(PersonProxy person) {
A bit squirrely that this event is carrying a proxy rather than a
proxyid. Yes,
yes, more async code, more server hits. We will get caching sooner or
later, and
we'd like this app to serve as an example of thorough decoupling.

http://gwt-code-reviews.appspot.com/921801/diff/8001/9006
File

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/SummaryWidget.java
(right):

http://gwt-code-reviews.appspot.com/921801/diff/8001/9006#newcode185

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/SummaryWidget.java:185:
PersonProxy person = (PersonProxy) response;
@Override, and don't need the cast. Did eclipse not warn?

http://gwt-code-reviews.appspot.com/921801/diff/8001/9006#newcode216

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/SummaryWidget.java:216:
// XXX add back filter
NC-17

http://gwt-code-reviews.appspot.com/921801/diff/8001/9007
File

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/SummaryWidget.ui.xml
(right):

http://gwt-code-reviews.appspot.com/921801/diff/8001/9007#newcode6

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/SummaryWidget.ui.xml:6:
display: inline;
tab

http://gwt-code-reviews.appspot.com/921801/diff/8001/9007#newcode10

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/client/widgets/SummaryWidget.ui.xml:10:
width: 30%
tab

http://gwt-code-reviews.appspot.com/921801/diff/8001/9009
File

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/domain/Person.java
(right):

http://gwt-code-reviews.appspot.com/921801/diff/8001/9009#newcode71

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/domain/Person.java:71:
true, true, true, true, true, true, true};
Storing this per user is pretty funny. Not pushing back — it's a
demo, and we
need to exercise the feature. Merely sharing my amusement.

http://gwt-code-reviews.appspot.com/921801/diff/8001/9009#newcode151

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/domain/Person.java:151:
this.address.copyFrom(address);
// TODO: odd to copy an entity this, but we're waiting for value
object support.
Convert when they're ready

http://gwt-code-reviews.appspot.com/921801/diff/8001/9014
File

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/server/SchoolCalendarService.java
(right):

http://gwt-code-reviews.appspot.com/921801/diff/8001/9014#newcode50

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/server/SchoolCalendarService.java:50:
* XXX Remove this once primitive lists work.
XXX is even worse than TODO?

Thought they work now?

http://gwt-code-reviews.appspot.com/921801/diff/8001/9014#newcode75

samples/dynatablerf/src/com/google/gwt/sample/dynatablerf/server/SchoolCalendarService.java:75:
* XXX private due to inability to add method overloads.
Is there a bug on that? I can't see any excuse for it.

http://gwt-code-reviews.appspot.com/921801/diff/8001/9018
File user/src/com/google/gwt/editor/client/ValueAwareEditor.java
(right):

http://gwt-code-reviews.appspot.com/921801/diff/8001/9018#newcode41
user/src/com/google/gwt/editor/client/ValueAwareEditor.java:41: *
ValueAwareEditors should preferentially use sub-editors to alter the
They don't have a choice any more, due they?

http://gwt-code-reviews.appspot.com/921801/diff/8001/9021
File
user/src/com/google/gwt/editor/client/impl/AbstractEditorDelegate.java
(right):

http://gwt-code-reviews.appspot.com/921801/diff/8001/9021#newcode202

user/src/com/google/gwt/editor/client/impl/AbstractEditorDelegate.java:202:
protected <Q> Q ensureMutable(Q object) {
javadoc

http://gwt-code-reviews.appspot.com/921801/diff/8001/9026
File

user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java
(right):

http://gwt-code-reviews.appspot.com/921801/diff/8001/9026#newcode114

user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java:114:
private final Map<EntityProxyId<?>, WriteOperation> operations = new
HashMap<EntityProxyId<?>, WriteOperation>();
Thank you. I couldn't get this to work.

http://gwt-code-reviews.appspot.com/921801/diff/8001/9026#newcode218

user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java:218:
ProxyJsoImpl proxy = creates.get(record.stableId());
nit: I've been trying to use the proxyJso name in any var that points
to one.
Newcomers are very confused by the ProxyImpl-wraps-ProxyJsoImpl thing.

http://gwt-code-reviews.appspot.com/921801/diff/8001/9026#newcode237

user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java:237:
ProxyJsoImpl proxy = creates.get(record.stableId());
proxyJso

http://gwt-code-reviews.appspot.com/921801/diff/8001/9026#newcode329

user/src/com/google/gwt/requestfactory/client/impl/DeltaValueStoreJsonImpl.java:329:
if (!proxy.unpersisted()) {
I would not be offended if this were reversed and named persisted.

http://gwt-code-reviews.appspot.com/921801/diff/8001/9030
File user/src/com/google/gwt/requestfactory/client/impl/ProxyImpl.java
(right):

http://gwt-code-reviews.appspot.com/921801/diff/8001/9030#newcode76
user/src/com/google/gwt/requestfactory/client/impl/ProxyImpl.java:76:
* and they
are from the same Request object.
Should document this on EntityProxy.java

http://gwt-code-reviews.appspot.com/921801/diff/8001/9030#newcode79
user/src/com/google/gwt/requestfactory/client/impl/ProxyImpl.java:79:
public
boolean equals(Object o) {
need null check on o. Does instanceof take care of that?

http://gwt-code-reviews.appspot.com/921801/diff/8001/9030#newcode197
user/src/com/google/gwt/requestfactory/client/impl/ProxyImpl.java:197:
this.request = request;
Why have pointers to both the request and the dvs? They're 1:1, no?

http://gwt-code-reviews.appspot.com/921801/diff/8001/9031
File
user/src/com/google/gwt/requestfactory/client/impl/ProxyJsoImpl.java
(right):

http://gwt-code-reviews.appspot.com/921801/diff/8001/9031#newcode251

user/src/com/google/gwt/requestfactory/client/impl/ProxyJsoImpl.java:251:
return
(V) toReturn;
it's a shame you couldn't fit in a few more calls to split

http://gwt-code-reviews.appspot.com/921801/diff/8001/9033
File

user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java
(right):

http://gwt-code-reviews.appspot.com/921801/diff/8001/9033#newcode120

user/src/com/google/gwt/requestfactory/client/impl/RequestFactoryJsonImpl.java:120:
for (Object proxy : requestData.getProxyParameters()) {
Did you delete the dummy object support code in JsonRequestProcessor?
If you
can't do it now, lmk and I'll file a task.



http://gwt-code-reviews.appspot.com/921801/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to