我有一个vaadin Table
,并希望将所有具有数字类类型的列对齐(例如BigDecimal
,Integer
,Double
到右边。
可以将每个表列ID的对齐设置为:
table.setColumnAlignment("username", Align.RIGHT);
但我更喜欢设置每个classtype的对齐方式。这可能吗?
答案 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);
}
}
}