[英]GWT List editor binding
public interface Person {
String getName();
void setName(String name);
List<PersonFriend> getFriends();
}
public interface PersonFriend {
String getName();
}
我正在嘗試為Person
實現一個只查看編輯器:
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);
}
}
當我綁定Person
對象PersonViewEditor
, friendsEditor
永遠不會綁定到人的朋友列表。 看起來PersonFriendsViewEditor
應該實現一些魔術接口以允許GWT與它交互,但我找不到任何相關的文檔。 在GWT中有dynatablerf示例,但是它們明確地綁定了它們的列表編輯器,我很好奇將它綁定為“外部”對象的一部分,所以我只是將Person
綁定到PersonViewEditor
並且它擁有所有數據/設置所有小部件。
有什么想法嗎?
PersonFriendsViewEditor
應該實現IsEditor<ListEditor<PersonFriend, PersonFriendViewEditor>>
- 解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.