简单的GWT编辑器示例

时间:2011-05-07 00:05:37

标签: gwt gwt2 gwt-editors

除了复制和粘贴现有的GWT编辑器示例之外,我发现其他任何事情都令人沮丧。这是尝试创建一个最小的编辑器,但没有成功。

public class ContactEditor extends Composite implements Editor<Contact> {

    interface Binder extends UiBinder<Widget, ContactEditor> {}

    interface ContactEditorDriver extends
        SimpleBeanEditorDriver<Contact, ContactEditor> {}
    private final ContactEditorDriver editorDriver;

    @UiField TextBox salutation;

    public ContactEditor(Contact contact) {
        editorDriver = GWT.create(ContactEditorDriver.class);
        editorDriver.initialize(this); 
        editorDriver.edit(contact);

        initWidget(GWT.<Binder> create(Binder.class).createAndBindUi(this));
    }
}

使用

实例化时
ContactEditor contactEditor = new ContactEditor(new Contact());

我得到一个包含

UmbrellaException
Caused by: java.lang.NullPointerException: null
    at ...ContactEditor_SimpleBeanEditorDelegate.attachSubEditors(ContactEditor_SimpleBeanEditorDelegate.java:12)
    at com.google.gwt.editor.client.impl.AbstractEditorDelegate.initialize(AbstractEditorDelegate.java:264)
    at com.google.gwt.editor.client.impl.SimpleBeanEditorDelegate.initialize(SimpleBeanEditorDelegate.java:32)
    at com.google.gwt.editor.client.impl.AbstractSimpleBeanEditorDriver.edit(AbstractSimpleBeanEditorDriver.java:45)
    at ...ContactEditor.<init>(ContactEditor.java

这里发生了什么--- SubEditors?失败似乎是在生成的代码中,我很难调试。

非常感谢。

1 个答案:

答案 0 :(得分:4)

当您初始化编辑器驱动程序时,“称呼”子编辑器尚未初始化(仍为null)。

在编辑createAndBindUi电话前移动init来电。