import com.google.gwt.dom.client.Style; //导入方法依赖的package包/类
@Override
public TableRow drawRow(DataView dataView, RowComponent rowComponent, Object valueKey,
List> columns, boolean redraw) {
T data = rowComponent.getData();
TableRow row = rowComponent.getWidget();
boolean draw = true;
if(row == null) {
// Create a new row element
row = new TableRow();
Style style = row.getElement().getStyle();
style.setDisplay(Display.NONE);
style.setProperty("height", getExpectedRowHeight() + "px");
style.setProperty("maxHeight", getExpectedRowHeight() + "px");
style.setProperty("minHeight", getExpectedRowHeight() + "px");
row.setStyleName(TableCssName.DATA_ROW);
rowComponent.setWidget(row);
if(!dataView.getSelectionType().equals(SelectionType.NONE)) {
TableData selection = drawSelectionCell();
row.add(selection);
}
} else if(!redraw && !rowComponent.isRedraw()) {
draw = false;
}
if(draw) {
// Build the columns
int colOffset = dataView.getColumnOffset();
int colSize = columns.size();
for(int c = 0; c < colSize; c++) {
int colIndex = c + colOffset;
Context context = new Context(rowComponent.getIndex(), colIndex, valueKey);
drawColumn(row, context, data, columns.get(c), colIndex, dataView.isHeaderVisible(colIndex));
}
rowComponent.setRedraw(false);
}
if(dataView.isUseRowExpansion()) {
if(!row.hasExpansionColumn()) {
TableData expand = new TableData();
expand.setId("colex");
MaterialIcon expandIcon = new MaterialIcon();
expandIcon.setId("expand");
expandIcon.setWidth("100%");
expandIcon.setIconType(IconType.KEYBOARD_ARROW_DOWN);
expandIcon.setWaves(WavesType.LIGHT);
expandIcon.getElement().getStyle().setCursor(Cursor.POINTER);
expand.add(expandIcon);
row.add(expand);
}
} else if(row.hasExpansionColumn()) {
row.removeExpansionColumn();
}
Scheduler.get().scheduleDeferred(() -> {
calculateRowHeight(rowComponent);
});
return row;
}
这篇博客介绍了如何在Java GWT应用中使用Style.setDisplay方法来控制表格行的显示与隐藏。首先,导入com.google.gwt.dom.client.Style包,然后在创建新的TableRow时,设置其DisplayStyle为NONE以隐藏行。同时,设置行的高度属性,并在需要时添加选择和展开功能。
922

被折叠的 条评论
为什么被折叠?



