我正试图为一个bean对象创建一个GWT编辑器,该对象有另一个对象类型的两个字段,因此我需要这些字段的子编辑器。问题是,我对编辑器框架非常陌生,而且我并不真正了解所有这些编辑器接口的概念。请告知最好的解决方案。我的想法如下:使用子编辑器的驱动程序将数据传递给主编辑器驱动程序;或者使用某种类型的CompositeEditor (但我不知道如何处理重写的方法……)。下面是一个示例代码:
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
}
}}
发布于 2014-01-16 16:27:10
创建VehiculeDTO时,还创建B子类:
A a = new A();
a.setBa(new B());
a.setBb(new B());
driver.edit(a);发布于 2015-09-16 11:02:51
以下是我使用编辑器框架的经验中的一些指南,无论是个人还是行业。我已尽最大努力使它们与你的榜样相关联。
ADriver driver = GWT.create(ADriver.class);
public AEditor {
driver.initialize(this);
driver.edit(new A());
}
我提供了一些专家来演示LeafValueEditor和IsEditor,以防您需要帮助更改您的子编辑器:
https://stackoverflow.com/questions/21166559
复制相似问题