Я пытаюсь создать редактор GWT для объекта компонента, который имеет два поля другого типа объекта, поэтому я хочу, чтобы субредакторы были для этих полей. Проблема в том, что я совершенно новичок в структуре редакторов, и я действительно не понимаю идею всех этих интерфейсов редактора там. Пожалуйста, сообщите о наилучшем решении. Мои идеи заключались в следующем: использование драйверов субредакторов для передачи данных в главный редактор; или использовать какой-то CompositeEditor (но я не знал, что делать с переопределенными методами ...). Вот пример кода:Как реализовать редактор GWT с субредакторами
public class A {
String s1, s2;
Integer i;
Double d;
B ba, bb;
}
public class B {
BigDecimal a, b;
}
//sub-editor
public class BEditor extends Composite implements Editor<B> {
interface BDriver extends BeanEditorDriver<B, BEditor> {
}
//implements HasEditorErrors interface
ValueBoxEditorDecorator<BigDecimal> a, b;
}
//main editor
public class AEditor extends Composite implements Editor<A> {
interface ADriver extends BeanEditorDriver<A, AEditor> {
}
private ADriver driver = GWT.create(ADriver.class);
ValueBoxEditorDecorator<String> s1, s2;
ValueBoxEditorDecorator<Integer> i;
ValueBoxEditorDecorator<Double> d;
BEditor ba, bb;
public AEditor() {
driver.initialize(this);
driver.edit(new A());
}
//called when the editor form is submitted
public void onSubmit() {
driver.clearErrors();
A a = driver.flush();
// A has both B fields = null
// AEditor successfully displays validation errors,
// but BEditors do not display errors, nor does
// ADriver get any errors from BEditor
}
}
}
... и вам не нужен 'EditorDriver' в' BEditor'! –
Хорошо, теперь я заполняю поля B, хотя они не получили подтверждения. Как я могу заставить ADriver собирать все ошибки проверки? – ahumellihuk
Спасибо за ваш ответ! Я узнал, почему моя проверка не работает - мне не хватало аннотации @Valid для валидатора, чтобы пометить это поле как каскадный объект. – ahumellihuk