public interface Person {
String getName();
void setName(String name);
List<PersonFriend> getFriends();
}
public interface PersonFriend {
String getName();
}
Estoy tratando de poner en práctica una vista de sólo editor para Person
:editor de la lista GWT vinculante
public class PersonViewEditor extends Composite implements Editor<Person> {
private static PersonViewEditorUiBinder uiBinder = GWT.create(PersonViewEditorUiBinder.class);
interface PersonViewEditorUiBinder extends UiBinder<Widget, PersonViewEditor> {}
@UiField Label nameEditor;
@UiField PersonFriendsViewEditor friendsEditor;
@UiField FancyAnchor editAnchor;
public PersonViewEditor(ClientFactory clientFactory) {
initWidget(uiBinder.createAndBindUi(this));
editAnchor.setPlace(
clientFactory.getPlaceHistoryMapper(),
clientFactory.getPlaceController(),
new EditPersonPlace());
}
}
public class PersonFriendsViewEditor extends Composite {
private static PersonFriendsViewEditorUiBinder uiBinder = GWT.create(PersonFriendsViewEditorUiBinder.class);
interface PersonFriendsViewEditorUiBinder extends UiBinder<Widget, PersonFriendsViewEditor> {}
interface Driver extends SimpleBeanEditorDriver<List<PersonFriend>, ListEditor<PersonFriend, PersonFriendViewEditor>> {}
private class PersonFriendViewEditorSource extends EditorSource<PersonFriendViewEditor> {
@Override
public PersonFriendViewEditor create(int index) {
PersonFriendViewEditor friend = new PersonFriendViewEditor();
containerPanel.insert(friend, index);
return friend;
}
}
@UiField HorizontalPanel containerPanel;
public PersonFriendsViewEditor() {
initWidget(uiBinder.createAndBindUi(this));
Driver driver = GWT.create(Driver.class);
ListEditor<PersonFriend, PersonFriendViewEditor> editor = ListEditor.of(new PersonFriendViewEditorSource());
driver.initialize(editor);
}
}
Cuando Ato Person
objeto a PersonViewEditor
, friendsEditor
no está ligada a la lista de amigos de la persona. Parece que PersonFriendsViewEditor
debería implementar alguna interfaz mágica para permitir que GWT interactúe con ella, pero no puedo encontrar ningún documento relacionado. Hay un ejemplo dinámico en GWT, pero vinculan explícitamente su editor de listas y tengo curiosidad por vincularlo como parte del objeto "externo", así que solo ato Person
a PersonViewEditor
y tiene todos los datos/establece todos los widgets.
¿Alguna idea?
Además, PersonFriendsViewEditor.Driver es probable que estropee las cosas. –