在vaadin表中按classtype对齐所有值?

时间:2014-05-21 09:42:52

标签: java vaadin vaadin7

我有一个vaadin Table,并希望将所有具有数字类类型的列对齐(例如BigDecimalIntegerDouble到右边。

可以将每个表列ID的对齐设置为:

table.setColumnAlignment("username", Align.RIGHT);

但我更喜欢设置每个classtype的对齐方式。这可能吗?

1 个答案:

答案 0 :(得分:9)

您可以覆盖setVisibleColumns方法:

new Table() {

    @Override
    public void setVisibleColumns(Object... visibleColumns) {
        super.setVisibleColumns(visibleColumns);
        for (Object propertyId : visibleColumns) {
            setPropertyAlignment(propertyId);
        }
    }

    private void setPropertyAlignment(Object propertyId) {

        Class<?> clazzProperty = getContainerDataSource().getType(propertyId);
        if (clazzProperty.isAssignableFrom(Number.class)) {
            super.setColumnAlignment(propertyId, Align.RIGHT);
        }
        else {
            super.setColumnAlignment(propertyId, Align.LEFT);
        }

    }
}