/** * Creates an ExampleTablePanel. */ public ExampleTablePanel() { simpleTable. setCaption("Example table usage with no data stored in the UIContext long-term."); simpleTable. setSummary("Example table usage with no data stored in the UIContext long-term."); simpleTable.setNoDataMessage("No Data!"); simpleTable.addColumn(new WTableColumn("Colour", WText.class)); simpleTable.addColumn(new WTableColumn("Shape", WText.class)); simpleTable.addColumn(new WTableColumn("Animal", WText.class)); add(simpleTable); }
/** * Creates a AjaxWPaginationExample. */ public AjaxWPaginationExample() { table = new WDataTable(); table.addColumn(new WTableColumn("Name", WText.class)); table.addColumn(new WTableColumn("Type", WText.class)); table.addColumn(new WTableColumn("Thing", WText.class)); table.setStripingType(WDataTable.StripingType.ROWS); table.setRowsPerPage(3); table.setPaginationMode(WDataTable.PaginationMode.DYNAMIC); add(table); }
/** * Creates and configures the table to be used by the example. * * @return a new configured table. */ private WDataTable createTable() { WDataTable tbl = new WDataTable(); tbl.addColumn(new WTableColumn("First name", new WTextField())); tbl.addColumn(new WTableColumn("Last name", new WTextField())); tbl.addColumn(new WTableColumn("DOB", new WDateField())); return tbl; }
/** * Creates and configures the table to be used by the example. The table is configured with global rather than user * data. Although this is not a realistic scenario, it will suffice for this example. * * @return a new configured table. */ private WDataTable createTable() { WDataTable tbl = new WDataTable(); tbl.addColumn(new WTableColumn("First name", new WText())); tbl.addColumn(new WTableColumn("Last name", new WText())); tbl.addColumn(new WTableColumn("DOB", new WText())); return tbl; }
/** * Creates and configures the table to be used by the example. The table is configured with global rather than user * data. Although this is not a realistic scenario, it will suffice for this example. * * @return a new configured table. */ private WDataTable createTable() { WDataTable table = new WDataTable(); table.addColumn(new WTableColumn("First name", new WTextField())); table.addColumn(new WTableColumn("Last name", new WTextField())); table.addColumn(new WTableColumn("DOB", new WDateField())); table.addColumn(new WTableColumn("Action", new ExampleButton())); table.setExpandMode(ExpandMode.CLIENT); table.setDataModel(createTableModel()); return table; }
/** * Creates and configures the table to be used by the example. The table is configured with global rather than user * data. Although this is not a realistic scenario, it will suffice for this example. * * @return a new configured table. */ private WDataTable createTable() { WDataTable tbl = new WDataTable(); tbl.addColumn(new WTableColumn("First name", new WTextField())); tbl.addColumn(new WTableColumn("Last name", new WTextField())); tbl.addColumn(new WTableColumn("DOB", new WDateField())); tbl.setExpandMode(ExpandMode.CLIENT); TableTreeNode root = createTree(); tbl.setDataModel(new ExampleTreeTableModel(root)); return tbl; }
@Test public void testDoPaintSelectModeSingle() throws IOException, SAXException, XpathException { WDataTable component = new WDataTable(); component.addColumn(new WTableColumn(COL1_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL2_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL3_HEADING_TEST, WTextField.class)); TableDataModel tableModel = createTableModel(); component.setDataModel(tableModel); component.setVisible(true); component.setSelectMode(WDataTable.SelectMode.SINGLE); assertXpathExists("//ui:table/ui:rowselection", component); }
@Test public void testDoPaintExpandModeClient() throws IOException, SAXException, XpathException { WDataTable component = new WDataTable(); component.addColumn(new WTableColumn(COL1_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL2_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL3_HEADING_TEST, WTextField.class)); TableDataModel tableModel = createTableModel(); component.setDataModel(tableModel); component.setVisible(true); component.setExpandMode(ExpandMode.CLIENT); assertXpathEvaluatesTo("client", "//ui:table/ui:rowexpansion/@mode", component); }
@Test public void testDoPaintExpandModeDynamic() throws IOException, SAXException, XpathException { WDataTable component = new WDataTable(); component.addColumn(new WTableColumn(COL1_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL2_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL3_HEADING_TEST, WTextField.class)); TableDataModel tableModel = createTableModel(); component.setDataModel(tableModel); component.setVisible(true); component.setExpandMode(ExpandMode.DYNAMIC); assertXpathEvaluatesTo("dynamic", "//ui:table/ui:rowexpansion/@mode", component); }
@Test public void testDoPaintExpandModeServer() throws IOException, SAXException, XpathException { WDataTable component = new WDataTable(); component.addColumn(new WTableColumn(COL1_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL2_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL3_HEADING_TEST, WTextField.class)); TableDataModel tableModel = createTableModel(); component.setDataModel(tableModel); component.setVisible(true); component.setExpandMode(ExpandMode.SERVER); assertXpathEvaluatesTo("dynamic", "//ui:table/ui:rowexpansion/@mode", component); }
@Test public void testDoPaintEmptyTableNoAttributes() throws IOException, SAXException, XpathException { WDataTable component = new WDataTable(); component.addColumn(new WTableColumn(COL1_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL2_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL3_HEADING_TEST, WTextField.class)); component.setVisible(true); setActiveContext(createUIContext()); assertXpathEvaluatesTo(component.getNoDataMessage(), "//ui:table/ui:tbody/ui:nodata", component); }
@Test public void testDoPaintExpandModeLazy() throws IOException, SAXException, XpathException { WDataTable component = new WDataTable(); component.addColumn(new WTableColumn(COL1_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL2_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL3_HEADING_TEST, WTextField.class)); TableDataModel tableModel = createTableModel(); component.setDataModel(tableModel); component.setVisible(true); component.setExpandMode(ExpandMode.LAZY); assertXpathEvaluatesTo("lazy", "//ui:table/ui:rowexpansion/@mode", component); }
@Test public void testColumnAccessors() { WDataTable table = new WDataTable(); Assert.assertEquals("Table should not have any columns by default", 0, table. getColumnCount()); WTableColumn col1 = new WTableColumn("dummy", WText.class); WTableColumn col2 = new WTableColumn("dummy", WText.class); table.addColumn(col1); Assert.assertEquals("Incorrect column count", 1, table.getColumnCount()); table.addColumn(col2); Assert.assertEquals("Incorrect column count", 2, table.getColumnCount()); Assert.assertSame("Incorrect first column", col1, table.getColumn(0)); Assert.assertSame("Incorrect second column", col2, table.getColumn(1)); }
@Test public void testDoPaintSortableSortModeServer() throws IOException, SAXException, XpathException { WDataTable component = new WDataTable(); component.addColumn(new WTableColumn(COL1_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL2_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL3_HEADING_TEST, WTextField.class)); TableDataModel tableModel = createTableModelSortable(); // sortable data model component.setDataModel(tableModel); component.setVisible(true); component.setSortMode(SortMode.SERVER); assertXpathEvaluatesTo("dynamic", "//ui:table/ui:sort/@mode", component); assertXpathEvaluatesTo(TRUE, "//ui:table/ui:thead/ui:th[1]/@sortable", component); assertXpathNotExists("//ui:table/ui:thead/ui:th[2]/@sortable", component); assertXpathEvaluatesTo(TRUE, "//ui:table/ui:thead/ui:th[3]/@sortable", component); }
@Test public void testDoPaintSelectModeMultipleSelectAllControl() throws IOException, SAXException, XpathException { WDataTable component = new WDataTable(); component.addColumn(new WTableColumn(COL1_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL2_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL3_HEADING_TEST, WTextField.class)); TableDataModel tableModel = createTableModel(); component.setDataModel(tableModel); component.setVisible(true); component.setSelectMode(WDataTable.SelectMode.MULTIPLE); component.setSelectAllMode(WDataTable.SelectAllType.CONTROL); assertXpathExists("//ui:table/ui:rowselection", component); assertXpathEvaluatesTo(TRUE, "//ui:table/ui:rowselection/@multiple", component); assertXpathEvaluatesTo("control", "//ui:table/ui:rowselection/@selectAll", component); }
@Test public void testDoPaintMissingAttributes() throws IOException, SAXException, XpathException { WDataTable component = new WDataTable(); component.addColumn(new WTableColumn(COL1_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL2_HEADING_TEST, WTextField.class)); component.addColumn(new WTableColumn(COL3_HEADING_TEST, WTextField.class)); component.setDataModel(createTableModel()); component.setVisible(true); component.setStripingType(WDataTable.StripingType.NONE); component.setSeparatorType(WDataTable.SeparatorType.NONE); assertXpathNotExists("//ui:table/@caption", component); assertXpathEvaluatesTo("table", "//ui:table/@type", component); assertXpathNotExists("//ui:table/@striping", component); assertXpathNotExists("//ui:table/@separators", component); }
@Test public void testDoPaintWithColAlignment() throws IOException, SAXException, XpathException { WDataTable table = new WDataTable(); table.addColumn(new WTableColumn(COL1_HEADING_TEST, WTextField.class)); table.addColumn(new WTableColumn(COL2_HEADING_TEST, WTextField.class)); table.addColumn(new WTableColumn(COL3_HEADING_TEST, WTextField.class)); table.getColumn(0).setAlign(WTableColumn.Alignment.LEFT); table.getColumn(1).setAlign(WTableColumn.Alignment.CENTER); table.getColumn(2).setAlign(WTableColumn.Alignment.RIGHT); TableDataModel tableModel = createTableModel(); table.setDataModel(tableModel); assertXpathNotExists("//ui:table/ui:thead/ui:th[1]/@align", table); assertXpathEvaluatesTo("center", "//ui:table/ui:thead/ui:th[2]/@align", table); assertXpathEvaluatesTo("right", "//ui:table/ui:thead/ui:th[3]/@align", table); }
@Test public void testDoPaintWithColWidth() throws IOException, SAXException, XpathException { WDataTable table = new WDataTable(); table.addColumn(new WTableColumn(COL1_HEADING_TEST, WTextField.class)); table.addColumn(new WTableColumn(COL2_HEADING_TEST, WTextField.class)); table.addColumn(new WTableColumn(COL3_HEADING_TEST, WTextField.class)); table.getColumn(0).setWidth(0); table.getColumn(1).setWidth(1); table.getColumn(2).setWidth(100); TableDataModel tableModel = createTableModel(); table.setDataModel(tableModel); assertXpathNotExists("//ui:table/ui:thead/ui:th[1]/@width", table); assertXpathEvaluatesTo("1", "//ui:table/ui:thead/ui:th[2]/@width", table); assertXpathEvaluatesTo("100", "//ui:table/ui:thead/ui:th[3]/@width", table); }