In trying Daniel's approach, I have a primary view class CompanyView implementing Editor<Company>. It has several child AddressView objects, which implement Editor<Address>; there are several Address fields in the Company. They get populated without my AddressView class ever invoking driver.edit or driver.flush (and I don't seem to need any set or getValue methods). But, that's just an aside.
I then created a sub-editor PurchasingView also implementing Editor<Company>, since the related data is in single fields within Company, instead of a sub-object.
@UiField @Editor.Path("")
PurchasingView purchasingView;
I assumed that the PurchasingView should define and GWT.create it's own driver interface, and that it's constructor should initialize that driver.
When the time comes to edit the Company in the outer view in DevMode, or when I compile, I get the following error:
Type mismatch: cannot convert from Company to String
It refers me to some generated code, which begins with:
public class PurchasingView__Context extends com.google.gwt.editor.client.impl.AbstractEditorContext<java.lang.String> {
And, as you might imagine, the methods it contains relate to String, not Company.
I don't currently have get/setValue, but tried those as well, assuming
that getValue ought to return driver.flush(), and setValue(Company
value) ought to do driver.edit(value) - needless to say, that didn't
help
What am I missing here to get it to recognize that it should be editing a Company, not a String?