use of org.eclipse.nebula.widgets.nattable.layer.DataLayer in project nebula.widgets.nattable by eclipse.
the class RowSelectionEditUtilsTest method testIsConverterSameWithMultiSelectionOneColumnConverterMultiSelection.
@Test
public void testIsConverterSameWithMultiSelectionOneColumnConverterMultiSelection() {
DataLayer bodyDataLayer = (DataLayer) this.gridLayerStack.getBodyDataLayer();
this.natTable.registerLabelOnColumn(bodyDataLayer, 1, TEST_LABEL);
this.natTable.getConfigRegistry().registerConfigAttribute(CellConfigAttributes.DISPLAY_CONVERTER, new DefaultBooleanDisplayConverter(), DisplayMode.EDIT, TEST_LABEL);
this.selectionLayer.selectCell(1, 1, false, true);
this.selectionLayer.selectCell(1, 2, false, true);
this.selectionLayer.selectCell(1, 3, false, true);
assertTrue(EditUtils.isConverterSame(this.selectionLayer, this.natTable.getConfigRegistry()));
}
use of org.eclipse.nebula.widgets.nattable.layer.DataLayer in project nebula.widgets.nattable by eclipse.
the class FormulaIntegrationTest method testCacheUpdate.
@Test
public void testCacheUpdate() throws InterruptedException {
assertNull(this.natTable.getDataValueByPosition(3, 5));
// wait until calculation is processed
Thread.sleep(50);
assertEquals(new BigDecimal("16"), this.natTable.getDataValueByPosition(3, 5));
ILayerEvent receivedEvent = this.listenerFixture.getReceivedEvent(CellVisualChangeEvent.class);
assertNotNull(receivedEvent);
// update a value in the first sum
((DataLayer) this.gridLayerStack.getBodyDataLayer()).setDataValue(0, 2, 20);
// right after the update we still get the old value from the cache
assertEquals(new BigDecimal("16"), this.natTable.getDataValueByPosition(3, 5));
// wait until calculation is processed
Thread.sleep(50);
assertEquals(new BigDecimal("31"), this.natTable.getDataValueByPosition(3, 5));
assertEquals(2, this.listenerFixture.getEventsCount());
}
use of org.eclipse.nebula.widgets.nattable.layer.DataLayer in project nebula.widgets.nattable by eclipse.
the class SelectionModelStructuralChangeEventHandlerTest method shouldClearSelectionOnClearingTableWithRowStructuralRefresh.
@Test
public void shouldClearSelectionOnClearingTableWithRowStructuralRefresh() throws Exception {
List<RowDataFixture> listFixture = RowDataListFixture.getList(10);
IRowDataProvider<RowDataFixture> bodyDataProvider = new ListDataProvider<RowDataFixture>(listFixture, new ReflectiveColumnPropertyAccessor<RowDataFixture>(RowDataListFixture.getPropertyNames()));
GridLayerFixture gridLayer = new GridLayerFixture(bodyDataProvider);
NatTable nattable = new NatTableFixture(gridLayer, false);
DataLayer bodyDataLayer = (DataLayer) gridLayer.getBodyDataLayer();
SelectionLayer selectionLayer = gridLayer.getBodyLayer().getSelectionLayer();
// test SelectionModel updates
assertEquals(0, selectionLayer.getFullySelectedRowPositions().length);
nattable.doCommand(new SelectRowsCommand(nattable, 1, 1, false, false));
assertEquals(1, selectionLayer.getFullySelectedRowPositions().length);
// Ford motor at top and selected
assertEquals("B Ford Motor", nattable.getDataValueByPosition(2, 1).toString());
Range selection = selectionLayer.getSelectedRowPositions().iterator().next();
assertEquals("B Ford Motor", listFixture.get(selection.start).getSecurity_description());
// clear the table
listFixture.clear();
// fire event to trigger structural refresh
bodyDataLayer.fireLayerEvent(new RowStructuralRefreshEvent(bodyDataLayer));
// row count of 1 for NatTable because of header
assertEquals(1, nattable.getRowCount());
assertTrue("selection is not empty", selectionLayer.getSelectedCells().isEmpty());
assertTrue("selection model is not empty", selectionLayer.getSelectionModel().getSelections().isEmpty());
}
use of org.eclipse.nebula.widgets.nattable.layer.DataLayer in project nebula.widgets.nattable by eclipse.
the class SelectionModelStructuralChangeEventHandlerTest method shouldClearSelectionOnClearingTableWithStructuralRefresh.
@Test
public void shouldClearSelectionOnClearingTableWithStructuralRefresh() throws Exception {
List<RowDataFixture> listFixture = RowDataListFixture.getList(10);
IRowDataProvider<RowDataFixture> bodyDataProvider = new ListDataProvider<RowDataFixture>(listFixture, new ReflectiveColumnPropertyAccessor<RowDataFixture>(RowDataListFixture.getPropertyNames()));
GridLayerFixture gridLayer = new GridLayerFixture(bodyDataProvider);
NatTable nattable = new NatTableFixture(gridLayer, false);
DataLayer bodyDataLayer = (DataLayer) gridLayer.getBodyDataLayer();
SelectionLayer selectionLayer = gridLayer.getBodyLayer().getSelectionLayer();
// test SelectionModel updates
assertEquals(0, selectionLayer.getFullySelectedRowPositions().length);
nattable.doCommand(new SelectRowsCommand(nattable, 1, 1, false, false));
assertEquals(1, selectionLayer.getFullySelectedRowPositions().length);
// Ford motor at top and selected
assertEquals("B Ford Motor", nattable.getDataValueByPosition(2, 1).toString());
Range selection = selectionLayer.getSelectedRowPositions().iterator().next();
assertEquals("B Ford Motor", listFixture.get(selection.start).getSecurity_description());
// clear the table
listFixture.clear();
// fire event to trigger structural refresh
bodyDataLayer.fireLayerEvent(new StructuralRefreshEvent(bodyDataLayer));
// row count of 1 for NatTable because of header
assertEquals(1, nattable.getRowCount());
assertTrue("selection is not empty", selectionLayer.getSelectedCells().isEmpty());
assertTrue("selection model is not empty", selectionLayer.getSelectionModel().getSelections().isEmpty());
}
use of org.eclipse.nebula.widgets.nattable.layer.DataLayer in project nebula.widgets.nattable by eclipse.
the class SelectionUtilsTest method testGetEmptyListOnCellSelectionForFullRowSelection.
@Test
public void testGetEmptyListOnCellSelectionForFullRowSelection() {
List<RowDataFixture> listFixture = RowDataListFixture.getList(10);
IRowDataProvider<RowDataFixture> bodyDataProvider = new ListDataProvider<RowDataFixture>(listFixture, new ReflectiveColumnPropertyAccessor<RowDataFixture>(RowDataListFixture.getPropertyNames()));
DataLayer dataLayer = new DataLayer(bodyDataProvider);
SelectionLayer selectionLayer = new SelectionLayer(dataLayer);
selectionLayer.selectCell(1, 3, false, false);
List<RowDataFixture> selected = SelectionUtils.getSelectedRowObjects(selectionLayer, bodyDataProvider, true);
assertNotNull(selected);
assertEquals(0, selected.size());
}
Aggregations