GWT 列表编辑器绑定
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
它拥有所有数据/设置所有小部件。
有什么想法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
PersonFriendsViewEditor
应该实现IsEditor>
- 解决了问题。PersonFriendsViewEditor
should implementIsEditor<ListEditor<PersonFriend, PersonFriendViewEditor>>
- that resolved the issue.