#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
.