private Object[] lastMergingIds() { if (lastMergingIds == null) { lastMergingIds = new Object[getColumns().size()]; } return lastMergingIds; } @SuppressWarnings("unchecked")
public BSFlexDataTable(String id, List<? extends IColumn<T, S>> columns, ISortableDataProvider<T, S> dataProvider) { super(id, columns, dataProvider); setStripedRows(false); setHoverRows(false); }
public BSFlexDataTable<T, S> buildFlex(String id) { BSFlexDataTable<T, S> table = new BSFlexDataTable<>(id, new ArrayList<>(columns), dataProvider); table .setRowsPerPage(rowsPerPage) .setStripedRows(stripedRows) .setHoverRows(hoverRows) .setBorderedTable(borderedTable) .setCondensedTable(condensedTable); return table; }
protected void postPopulateCellItem(Item<ICellPopulator<T>> cellItem, int columnIndex, IModel<T> model) { boolean visible = !checkAndSetColumnMergingIdSameAsLast(columnIndex, model); cellItem.setVisible(visible); if (visible) { lastVisibleCellItems()[columnIndex] = cellItem; lastVisibleCellItems()[columnIndex].setMetaData(ROWSPAN_KEY, 1); cellItem.add($b.attr("rowspan", $m.get(() -> cellItem.getMetaData(ROWSPAN_KEY)))); } else { lastVisibleCellItems()[columnIndex].setMetaData(ROWSPAN_KEY, lastVisibleCellItems()[columnIndex].getMetaData(ROWSPAN_KEY) + 1); cellItem.removeAll(); } }
@SuppressWarnings("unchecked") private boolean checkAndSetColumnMergingIdSameAsLast(int columnIndex, IModel<T> currentRowModel) { final IColumn<T, S> column = getColumns().get(columnIndex); if (!(column instanceof IRowMergeableColumn)) { return false; } final Object lastId = lastMergingIds()[columnIndex]; final Object currentId = ((IRowMergeableColumn<T>) column).getRowMergeId(currentRowModel); if (!Objects.equals(lastId, currentId)) { lastMergingIds()[columnIndex] = currentId; } boolean mergingIdSameAsLast = (lastId != null) && (currentId != null) && Objects.equals(lastId, currentId); return mergingIdSameAsLast; }
public BSFlexDataTable<T, S> buildFlex(String id) { BSFlexDataTable<T, S> table = new BSFlexDataTable<>(id, new ArrayList<>(columns), dataProvider); table .setRowsPerPage(rowsPerPage) .setStripedRows(stripedRows) .setHoverRows(hoverRows) .setBorderedTable(borderedTable) .setCondensedTable(condensedTable); return table; }
protected void postPopulateCellItem(Item<ICellPopulator<T>> cellItem, int columnIndex, IModel<T> model) { boolean visible = !checkAndSetColumnMergingIdSameAsLast(columnIndex, model); cellItem.setVisible(visible); if (visible) { lastVisibleCellItems()[columnIndex] = cellItem; lastVisibleCellItems()[columnIndex].setMetaData(ROWSPAN_KEY, 1); cellItem.add($b.attr("rowspan", $m.get(() -> cellItem.getMetaData(ROWSPAN_KEY)))); } else { lastVisibleCellItems()[columnIndex].setMetaData(ROWSPAN_KEY, lastVisibleCellItems()[columnIndex].getMetaData(ROWSPAN_KEY) + 1); cellItem.removeAll(); } }
@SuppressWarnings("unchecked") private boolean checkAndSetColumnMergingIdSameAsLast(int columnIndex, IModel<T> currentRowModel) { final IColumn<T, S> column = getColumns().get(columnIndex); if (!(column instanceof IRowMergeableColumn)) { return false; } final Object lastId = lastMergingIds()[columnIndex]; final Object currentId = ((IRowMergeableColumn<T>) column).getRowMergeId(currentRowModel); if (!Objects.equals(lastId, currentId)) { lastMergingIds()[columnIndex] = currentId; } boolean mergingIdSameAsLast = (lastId != null) && (currentId != null) && Objects.equals(lastId, currentId); return mergingIdSameAsLast; }
public BSFlexDataTable(String id, List<? extends IColumn<T, S>> columns, ISortableDataProvider<T, S> dataProvider) { super(id, columns, dataProvider); setStripedRows(false); setHoverRows(false); }
private Object[] lastMergingIds() { if (lastMergingIds == null) { lastMergingIds = new Object[getColumns().size()]; } return lastMergingIds; } @SuppressWarnings("unchecked")
@SuppressWarnings("unchecked") private Item<ICellPopulator<T>>[] lastVisibleCellItems() { if (lastVisibleCellItems == null) { lastVisibleCellItems = new Item[getColumns().size()]; } return lastVisibleCellItems; }
@SuppressWarnings("unchecked") private Item<ICellPopulator<T>>[] lastVisibleCellItems() { if (lastVisibleCellItems == null) { lastVisibleCellItems = new Item[getColumns().size()]; } return lastVisibleCellItems; }