Пример простого редактора GWT

#gwt #gwt2 #gwt-editors

#gwt #gwt2 #gwt-редакторы

Вопрос:

Я нахожу что-либо другое, кроме копирования и вставки существующих примеров редактора 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
  

Что здесь происходит -подредакторы? Сбой, похоже, в сгенерированном коде, и мне сложно отлаживать.

Большое спасибо.

Ответ №1:

К моменту инициализации драйвера редактора подредактор «приветствие» еще не инициализирован (все еще null ).

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