/** * Retrieve the current {@link RowIdWrapper}. * <p> * Intended for internal use only. * </p> * * @return the current row id wrapper, or null if not found */ public RowIdWrapper getCurrentRowIdWrapper() { UIContext uic = UIContextHolder.getCurrent(); if (uic instanceof SubUIContext) { int index = ((SubUIContext) uic).getRowIndex(); RowIdWrapper wrapper = table.getRepeater().getBeanList().get(index); return wrapper; } return null; }
/** * Find the UIContext for the ROW in a table. * * @return the UIContext for the row */ protected UIContext getRowUic() { // TODO This should be available from WComponents // The table maybe in a different context UIContext tblContext = WebUtilities.getContextForComponent(tbl); UIContextHolder.pushContext(tblContext); // Find the context for this row try { List<WTable.RowIdWrapper> rows = tbl.getRepeater().getBeanList(); for (WTable.RowIdWrapper row : rows) { if (Objects.equals(row.getRowKey(), rowKey)) { // Get the UIContext for this rowId return tbl.getRepeater().getRowContext(row); } } } finally { UIContextHolder.popContext(); } return null; }
/** * This can be used by column components on a {@link WTable} to determine the current row index. * * @param component the column component * @return the row index for the current row, or null if no row details */ public static List<Integer> getCurrentRowIndex(final WComponent component) { UIContext uic = UIContextHolder.getCurrent(); // Check have correct context if (!(uic instanceof SubUIContext)) { return null; } // Find the table WTable table = WebUtilities.getAncestorOfClass(WTable.class, component); if (table == null) { return null; } int repeaterIdx = ((SubUIContext) uic).getRowIndex(); RowIdWrapper wrapper = table.getRepeater().getBeanList().get(repeaterIdx); return wrapper.getRowIndex(); }
private int calculateOtherSelectedRows(WTable table) { WTable.TableRepeater repeater = table.getRepeater(); List<RowIdWrapper> wrappers = repeater.getBeanList(); Set<?> otherSelectedRows = new HashSet<>(table.getSelectedRows()); for (RowIdWrapper wrapper : wrappers) { Object rowKey = wrapper.getRowKey(); if (table.getSelectedRows().contains(rowKey)) { otherSelectedRows.remove(rowKey); } } return otherSelectedRows.size(); }
TableRepeater repeater = table.getRepeater();
@Test public void testSortTable() { SimpleTableModel model = new SimpleTableModel(new String[][]{{"1"}, {"3"}, {"2"}}); model.setComparator(0, SimpleTableModel.COMPARABLE_COMPARATOR); WTable table = new WTable(); table.setSelectMode(WTable.SelectMode.SINGLE); table.setTableModel(new AdapterBasicTableModel(model)); table.addColumn(new WTableColumn("dummy", WText.class)); table.setLocked(true); setActiveContext(createUIContext()); // Sort table manually table.sort(0, true); Assert.assertTrue("Incorrect selection after sort method", table.isSorted()); Assert. assertEquals("Incorrect sort column after sort method", 0, table. getSortColumnIndex()); Assert.assertTrue("Incorrect sort direction after sort method", table.isSortAscending()); List<RowIdWrapper> rowIndices = table.getRepeater().getBeanList(); Assert.assertEquals("Incorrect sort", 3, rowIndices.size()); Assert.assertEquals("Incorrect sort", Integer.valueOf(0), rowIndices.get(0).getRowIndex(). get(0)); Assert.assertEquals("Incorrect sort", Integer.valueOf(2), rowIndices.get(1).getRowIndex(). get(0)); Assert.assertEquals("Incorrect sort", Integer.valueOf(1), rowIndices.get(2).getRowIndex(). get(0)); }
Assert.assertTrue("Incorrect sort direction after handleRequest", table.isSortAscending()); List<RowIdWrapper> rowIndices = table.getRepeater().getBeanList(); Assert.assertEquals("Incorrect sort", 3, rowIndices.size()); Assert.assertEquals("Incorrect sort", Integer.valueOf(0), rowIndices.get(0).getRowIndex(). rowIndices = table.getRepeater().getBeanList(); Assert.assertEquals("Incorrect sort", 3, rowIndices.size()); Assert.assertEquals("Incorrect sort", Integer.valueOf(0), rowIndices.get(0).getRowIndex().
getRepeater().getId()); table.getRepeater() .getRepeatRoot().getId()); String rowPrefix = table.getRepeater().getRepeatRoot().getId(); for (UIContext uic : table.getRepeater().getRowContexts()) {
getRepeater() .getInternalId()); getRepeater() .getRepeatRoot().getInternalId()); String rowPrefix = table.getRepeater().getRepeatRoot().getInternalId(); for (UIContext uic : table.getRepeater().getRowContexts()) {
table.getRepeater().getId()); getRepeater() .getRepeatRoot().getId()); String rowPrefix = table.getRepeater().getRepeatRoot().getId(); for (UIContext uic : table.getRepeater().getRowContexts()) {
WRepeater repeater = table.getRepeater(); TableModel dataModel = table.getTableModel();