禁止在Vaadin中显示表中的零值整数

时间:2014-08-20 01:34:43

标签: java vaadin

在财务表中很常见,我想在我的Vaadin表中禁止显示“0”为零整数。如果零值以其他各种方式呈现,则其他数字变得更加明显:

1 个答案:

答案 0 :(得分:3)

您可以使用以下两种方法之一来抑制零值的显示。如果您有许多表和/或特定数据类型的多列您希望此行为,则第一个方便。第二个用于特定的单个列。

覆盖formatPropertyValue

您可以覆盖自己的Table子类中的formatPropertyValue方法。在每个表格单元格的显示期间调用此方法。通过测试Integer对象的大小写,您可以覆盖生成的字符串以便呈现给用户。

此方法适用于Vaadin 3.1至7.x版本。

此方法会影响该目标数据类型表中的所有列

// A subclass of Vaadin Table to override formatting of Integer zero values.
public class NonZeroTable extends Table
{
    @Override
    protected String formatPropertyValue ( Object rowId , Object colId , Property property )
    {
        // Suppress display of zero-value Integers.
        // If the Property is of type Integer with a Value of zero, handle it here.
        // For other Property or Value, fallback to the default handling in the Table.
        if ( property.getType() == Integer.class ) {
            if ( property.getValue().equals( 0 ) ) {
                return ""; // Return empty string, to suppress display of zero.
                // return "\u2013";  // EN DASH
                // return "\u2014";  // EM DASH
            } 
        }
        return super.formatPropertyValue( rowId , colId , property );
    }
}

感谢Book of Vaadin Vaadin 7 example code集合提供此信息。

为每列指定转换器

或者,您可能希望控制特定列的格式。如果是,请按照Converter页面Vaadin Wiki上的说明为该列提供Formatting Data In Table

discussed here中的转换器为Book of Vaadin