use of com.github.bordertech.wcomponents.WTable.TableModel in project wcomponents by BorderTech.
the class WTableRenderer_Test method testDoPaintAttributesAndContent.
@Test
public void testDoPaintAttributesAndContent() throws IOException, SAXException, XpathException {
WTable component = new WTable();
// renderer class
component.addColumn(new WTableColumn(COL1_HEADING_TEST, WTextField.class));
// renderer instance
component.addColumn(new WTableColumn(COL2_HEADING_TEST, new WTextField()));
component.addColumn(new WTableColumn(COL3_HEADING_TEST, WTextField.class));
TableModel tableModel = createTableModel();
component.setTableModel(tableModel);
component.setVisible(true);
component.setCaption(CAPTION_TEST);
component.setType(WTable.Type.HIERARCHIC);
setActiveContext(createUIContext());
// check ui:table attributes
String tableId = component.getId();
assertXpathEvaluatesTo(tableId, "//ui:table/@id", component);
assertXpathEvaluatesTo(CAPTION_TEST, "//ui:table/@caption", component);
assertXpathEvaluatesTo("hierarchic", "//ui:table/@type", component);
// check header values
String[] colHeaders = { COL1_HEADING_TEST, COL2_HEADING_TEST, COL3_HEADING_TEST };
for (int i = 0; i < component.getColumnCount(); i++) {
assertXpathEvaluatesTo(colHeaders[i], "//ui:table/ui:thead/ui:th[" + (i + 1) + "]/ui:decoratedlabel/ui:labelbody", component);
}
// check table content
for (int i = 0; i < tableModel.getRowCount(); i++) {
List<Integer> row = new ArrayList<>();
row.add(i);
for (int j = 0; j < component.getColumnCount(); j++) {
assertXpathEvaluatesTo((String) tableModel.getValueAt(row, j), "//ui:table/ui:tbody/ui:tr[" + (i + 1) + "]/ui:td[" + (j + 1) + "]/ui:textfield", component);
}
}
}
use of com.github.bordertech.wcomponents.WTable.TableModel in project wcomponents by BorderTech.
the class WTableRenderer_Test method testDoPaintPaginatedClient.
@Test
public void testDoPaintPaginatedClient() throws IOException, SAXException, XpathException {
WTable component = new WTable();
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));
TableModel tableModel = createTableModel();
component.setTableModel(tableModel);
component.setVisible(true);
component.setPaginationMode(PaginationMode.CLIENT);
setActiveContext(createUIContext());
assertXpathEvaluatesTo("client", "//ui:table/ui:pagination/@mode", component);
assertXpathEvaluatesTo((new Integer(component.getCurrentPage())).toString(), "//ui:table/ui:pagination/@currentPage", component);
assertXpathEvaluatesTo((new Integer(component.getRowsPerPage())).toString(), "//ui:table/ui:pagination/@rowsPerPage", component);
assertXpathEvaluatesTo((new Integer(tableModel.getRowCount())).toString(), "//ui:table/ui:pagination/@rows", component);
assertXpathNotExists("//ui:table/ui:pagination/@controls", component);
component.setPaginationLocation(PaginationLocation.BOTTOM);
assertXpathEvaluatesTo("bottom", "//ui:table/ui:pagination/@controls", component);
}
use of com.github.bordertech.wcomponents.WTable.TableModel in project wcomponents by BorderTech.
the class WTableRenderer_Test method testDoPainWithRowHeaderColumn.
@Test
public void testDoPainWithRowHeaderColumn() throws IOException, SAXException, XpathException {
WTable table = new WTable();
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));
// set the first column as the row headers
table.setRowHeaders(true);
TableModel tableModel = createTableModel();
table.setTableModel(tableModel);
assertXpathExists("//ui:table/ui:tbody/ui:tr/ui:th", table);
assertXpathNotExists("//ui:table/ui:tbody/ui:tr/ui:th[2]", table);
}
use of com.github.bordertech.wcomponents.WTable.TableModel in project wcomponents by BorderTech.
the class WTableRenderer_Test method testDoPaintWithColWidth.
@Test
public void testDoPaintWithColWidth() throws IOException, SAXException, XpathException {
WTable table = new WTable();
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);
TableModel tableModel = createTableModel();
table.setTableModel(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);
}
use of com.github.bordertech.wcomponents.WTable.TableModel in project wcomponents by BorderTech.
the class WTableRenderer_Test method testDoPaintTableActions.
@Test
public void testDoPaintTableActions() throws IOException, SAXException, XpathException {
WTable component = new WTable();
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));
TableModel tableModel = createTableModel();
component.setTableModel(tableModel);
component.setVisible(true);
component.addAction(new WButton(TEST_ACTION_ONE));
component.addAction(new WButton(TEST_ACTION_TWO));
assertXpathExists("//ui:table/ui:actions", component);
assertXpathEvaluatesTo(TEST_ACTION_ONE, "//ui:table/ui:actions/ui:action[1]/html:button", component);
assertXpathEvaluatesTo(TEST_ACTION_TWO, "//ui:table/ui:actions/ui:action[2]/html:button", component);
}
Aggregations