Пример простого редактора GWT - PullRequest
3 голосов
/ 07 мая 2011

Я нахожу что-то, кроме копирования и вставки существующих примеров GWT Editor, разочаровывающим.Вот попытка создать минимальный редактор, но безуспешно.

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 Ответ

4 голосов
/ 07 мая 2011

К тому времени, когда вы инициализируете драйвер редактора, субдитор "приветствия" еще не инициализирован (все еще null).

Переместите createAndBindUi вызов перед вызовом редактора init.

...