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

mem*_*und 3 java vaadin vaadin7

我有一个vaadin Table,想对准具有数字类类型的所有列(例如BigDecimal,Integer,Double在右边.

可以使用以下表格为每个表列ID设置对齐:

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

但我更喜欢设置每个类型的对齐方式.那可能吗?

nex*_*xus 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);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)