Grid vaadin7网格编辑器字段可以';t集空表示?

Grid vaadin7网格编辑器字段可以';t集空表示?,grid,vaadin,Grid,Vaadin,还是没有解决办法!(┬_┬) 我尝试用下面的代码设置空字符串的NullRepresentation,但是失败了,任何人都可以帮助吗?或者其他好的解决方案是值得赞赏的 final Collection fields = this.grid.getEditorFieldGroup().getFields(); fields.stream().forEach((field -> { if (field instanceof TextField) {

还是没有解决办法!(┬_┬)

我尝试用下面的代码设置空字符串的NullRepresentation,但是失败了,任何人都可以帮助吗?或者其他好的解决方案是值得赞赏的

final Collection fields = this.grid.getEditorFieldGroup().getFields();
    fields.stream().forEach((field -> {
        if (field instanceof TextField) {
            ((TextField) field).setNullRepresentation("");
        }
    }));
我尝试使用自定义字段组覆盖它,但再次失败

public class CmsFieldGroup extends FieldGroup {

@Override
public Field<?> getField(final Object propertyId) {
    Field field = null;
    field = super.getField(propertyId);
    if (field instanceof TextField) {
        ((TextField) field).setNullRepresentation("");
    }

    return field;
}

@Override
public Collection<Field<?>> getFields() {
    final Collection<Field<?>> fields = super.getFields();
    fields.stream().forEach((field -> {
        if (field instanceof TextField) {
            ((TextField) field).setNullRepresentation("");
        }
    }));

    return fields;
}

似乎可以按如下方式完成,但代码看起来很难看

public class CmsFieldGroup extends FieldGroup {

@Override
public Field<?> getField(final Object propertyId) {
    Field field = null;
    field = super.getField(propertyId);
    if (field instanceof TextField) {
        ((TextField) field).setNullRepresentation("");
    }

    return field;
}

@Override
public Collection<Field<?>> getFields() {
    final Collection<Field<?>> fields = super.getFields();
    for (final Field field : fields) {

        try {
            if (field instanceof TextField && !"".equals(((TextField) field).getNullRepresentation())) {
                ((TextField) field).setNullRepresentation("");
            }
        } catch (final Exception e) {
            System.out.print("something wrong");
        }
    }

    return fields;
}
公共类CmsFieldGroup扩展了FieldGroup{
@凌驾
公共字段getField(最终对象属性ID){
字段=空;
field=super.getField(propertyId);
if(字段实例of TextField){
((TextField)字段).setNullRepresentation(“”);
}
返回字段;
}
@凌驾
public Collection>fields=super.getFields();
用于(最终字段:字段){
试一试{
if(字段实例of TextField&&!“.equals(((TextField)字段).getNullRepresentation()){
((TextField)字段).setNullRepresentation(“”);
}
}捕获(最终异常e){
系统输出打印(“出错”);
}
}
返回字段;
}

}

似乎可以按如下方式完成,但代码看起来很难看

public class CmsFieldGroup extends FieldGroup {

@Override
public Field<?> getField(final Object propertyId) {
    Field field = null;
    field = super.getField(propertyId);
    if (field instanceof TextField) {
        ((TextField) field).setNullRepresentation("");
    }

    return field;
}

@Override
public Collection<Field<?>> getFields() {
    final Collection<Field<?>> fields = super.getFields();
    for (final Field field : fields) {

        try {
            if (field instanceof TextField && !"".equals(((TextField) field).getNullRepresentation())) {
                ((TextField) field).setNullRepresentation("");
            }
        } catch (final Exception e) {
            System.out.print("something wrong");
        }
    }

    return fields;
}
公共类CmsFieldGroup扩展了FieldGroup{
@凌驾
公共字段getField(最终对象属性ID){
字段=空;
field=super.getField(propertyId);
if(字段实例of TextField){
((TextField)字段).setNullRepresentation(“”);
}
返回字段;
}
@凌驾
public Collection>fields=super.getFields();
用于(最终字段:字段){
试一试{
if(字段实例of TextField&&!“.equals(((TextField)字段).getNullRepresentation()){
((TextField)字段).setNullRepresentation(“”);
}
}捕获(最终异常e){
系统输出打印(“出错”);
}
}
返回字段;
}

}

以下各项似乎也起作用:

FieldGroup fieldGroup = grid.getEditorFieldGroup();
fieldGroup.setFieldFactory(new MyFieldGroupFieldFactory());
MyFieldGroupFieldFactory的定义如下:

class MyFieldGroupFieldFactory extends DefaultFieldGroupFieldFactory {

    @Override
    public <T extends Field> T createField(Class<?> type, Class<T> fieldType) {
        T field = super.createField(type, fieldType);
        if (field instanceof TextField) {
            TextField textField = (TextField) field;
            textField.setNullRepresentation("");
        }
        return field;
    }
}
类MyFieldGroupFieldFactory扩展了DefaultFieldGroupFieldFactory{
@凌驾
公共T createField(类类型,类字段类型){
T field=super.createField(type,fieldType);
if(字段实例of TextField){
TextField TextField=(TextField)字段;
textField.setNullRepresentation(“”);
}
返回字段;
}
}

以下各项似乎也起作用:

FieldGroup fieldGroup = grid.getEditorFieldGroup();
fieldGroup.setFieldFactory(new MyFieldGroupFieldFactory());
MyFieldGroupFieldFactory的定义如下:

class MyFieldGroupFieldFactory extends DefaultFieldGroupFieldFactory {

    @Override
    public <T extends Field> T createField(Class<?> type, Class<T> fieldType) {
        T field = super.createField(type, fieldType);
        if (field instanceof TextField) {
            TextField textField = (TextField) field;
            textField.setNullRepresentation("");
        }
        return field;
    }
}
类MyFieldGroupFieldFactory扩展了DefaultFieldGroupFieldFactory{
@凌驾
公共T createField(类类型,类字段类型){
T field=super.createField(type,fieldType);
if(字段实例of TextField){
TextField TextField=(TextField)字段;
textField.setNullRepresentation(“”);
}
返回字段;
}
}