java - 如何使用子编辑器实现 GWT 编辑器

标签 java gwt bean-validation gwt-editors

我正在尝试为 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
    }  
}

}

最佳答案

当您创建 VehiculeDTO 时,还要创建 B 子类:

A a = new A();
a.setBa(new B());
a.setBb(new B());
driver.edit(a);

关于java - 如何使用子编辑器实现 GWT 编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21166559/

相关文章:

java - 简单XML : Add attributes to primitives

java - 注释从 Immutables 接口(interface)奇怪地传递到实现

GWT:开发模式下的Jetty版本

java - Spring webflux bean验证不起作用

java - 接受字符串值列表的 Spring 验证

java - 安卓 : ArrayList with Bitmap from assets

java.lang.IndexOutOfBoundsException : Index: 0, 大小 : 0 at java. util.ArrayList.rangeCheck

java - Spring Boot Rest 中自连接到 JSON

gwt - 使用 GWT 进行 UI 设计

google-app-engine - 使用 Google App Engine 和 GWT 创建移动应用程序?