use of org.eclipse.scout.rt.client.ui.basic.table.ITable in project scout.rt by eclipse.
the class JsonTableTest method testUserRowFilter_preventAllRowsDeleted.
/**
* JsonTable generates an allRowsDeleted event if a row is deleted and filteredRowCount is 0. This must not happen if
* the row has been filtered by the user.
*/
@Test
public void testUserRowFilter_preventAllRowsDeleted() throws JSONException {
TableWith3Cols table = new TableWith3Cols();
table.fill(2);
table.initTable();
JsonTable<ITable> jsonTable = m_uiSession.createJsonAdapter(table, null);
ITableRow row0 = table.getRow(0);
jsonTable.toJson();
String row0Id = jsonTable.getOrCreateRowId(row0);
JsonEvent event = createJsonRowsFilteredEvent(row0Id);
jsonTable.handleUiEvent(event);
table.deleteRow(row0);
JsonTestUtility.processBufferedEvents(m_uiSession);
assertEquals(1, table.getRowCount());
assertEquals(0, table.getFilteredRowCount());
assertEquals(1, jsonTable.tableRowIdsMap().size());
// expect that NO deleteAll event is sent
List<JsonEvent> responseEvents = JsonTestUtility.extractEventsFromResponse(m_uiSession.currentJsonResponse(), JsonTable.EVENT_ALL_ROWS_DELETED);
assertTrue(responseEvents.size() == 0);
}
use of org.eclipse.scout.rt.client.ui.basic.table.ITable in project scout.rt by eclipse.
the class JsonTableTest method testIgnorableSelectionEvent3.
/**
* Same as {@link #testIgnorableSelectionEvent2()} but with an empty selection
*/
@Test
public void testIgnorableSelectionEvent3() throws JSONException {
Table table = new Table() {
@Override
protected void execRowsSelected(List<? extends ITableRow> rows) {
if (rows.size() == 0) {
selectRow(4);
}
}
};
table.fill(5);
table.initTable();
ITableRow row2 = table.getRow(2);
ITableRow row4 = table.getRow(4);
table.selectRow(row2);
JsonTable<ITable> jsonTable = UiSessionTestUtility.newJsonAdapter(m_uiSession, table, null);
jsonTable.toJson();
// ----------
JsonEvent event = createJsonRowsSelectedEvent(null);
assertTrue(row2.isSelected());
assertFalse(row4.isSelected());
jsonTable.handleUiEvent(event);
assertFalse(row2.isSelected());
assertTrue(row4.isSelected());
List<JsonEvent> responseEvents = JsonTestUtility.extractEventsFromResponse(m_uiSession.currentJsonResponse(), JsonTable.EVENT_ROWS_SELECTED);
assertTrue(responseEvents.size() == 1);
List<ITableRow> tableRows = jsonTable.extractTableRows(responseEvents.get(0).getData());
assertEquals(row4, tableRows.get(0));
}
use of org.eclipse.scout.rt.client.ui.basic.table.ITable in project scout.rt by eclipse.
the class JsonTableTest method testMenuDisposalOnPropertyChange.
@Test
public void testMenuDisposalOnPropertyChange() throws JSONException {
ITable table = new TableWithoutMenus();
JsonTable<ITable> jsonTable = UiSessionTestUtility.newJsonAdapter(m_uiSession, table, null);
jsonTable.toJson();
// ----------
Menu menu1 = new Menu();
table.getContextMenu().addChildAction(menu1);
assertNotNull(jsonTable.getAdapter(menu1));
assertTrue(jsonTable.getAdapter(menu1).isInitialized());
table.getContextMenu().removeChildAction(menu1);
assertNull(jsonTable.getAdapter(menu1));
}
use of org.eclipse.scout.rt.client.ui.basic.table.ITable in project scout.rt by eclipse.
the class JsonTableTest method testRequestFocusInCellRowRequired.
/**
* Tests if a RequestFocusInCell-Event get discarded when now row is set/available in the Event
*/
@Test
public void testRequestFocusInCellRowRequired() {
TableWith3Cols table = new TableWith3Cols();
table.fill(2);
table.initTable();
table.resetColumns();
JsonTable<ITable> jsonTable = UiSessionTestUtility.newJsonAdapter(m_uiSession, table, null);
// Response should contain no events
assertEquals(0, m_uiSession.currentJsonResponse().getEventList().size());
// Request Focus without a row
table.requestFocusInCell(table.getColumns().get(0), null);
// Events should not be in the response
assertEquals(0, m_uiSession.currentJsonResponse().getEventList().size());
// And also not in the event buffer
assertEquals(0, jsonTable.eventBuffer().size());
// So there should be no events at all in the response
JSONObject response = m_uiSession.currentJsonResponse().toJson();
assertNull(response.optJSONArray("events"));
}
use of org.eclipse.scout.rt.client.ui.basic.table.ITable in project scout.rt by eclipse.
the class JsonTableTest method testMenuDisposalOnPropertyChangeWithNonDisplayableMenu.
/**
* Tests whether it is possible to dispose (or replace) menus if at least one menu is not displayable.<br>
*/
@Test
public void testMenuDisposalOnPropertyChangeWithNonDisplayableMenu() throws JSONException {
ITable table = new TableWithNonDisplayableMenu();
table.initTable();
JsonTable<ITable> jsonTable = UiSessionTestUtility.newJsonAdapter(m_uiSession, table, null);
jsonTable.toJson();
// ----------
DisplayableMenu displayableMenu = table.getMenuByClass(TableWithNonDisplayableMenu.DisplayableMenu.class);
NonDisplayableMenu NonDisplayableMenu = table.getMenuByClass(TableWithNonDisplayableMenu.NonDisplayableMenu.class);
assertNull(jsonTable.getAdapter(NonDisplayableMenu));
assertNotNull(jsonTable.getAdapter(displayableMenu));
assertTrue(jsonTable.getAdapter(displayableMenu).isInitialized());
table.getContextMenu().removeChildAction(NonDisplayableMenu);
table.getContextMenu().removeChildAction(displayableMenu);
assertNull(jsonTable.getAdapter(NonDisplayableMenu));
assertNull(jsonTable.getAdapter(displayableMenu));
}
Aggregations