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