use of org.eclipse.nebula.widgets.nattable.hideshow.event.HideRowPositionsEvent in project nebula.widgets.nattable by eclipse.
the class RowHideShowLayerTest2 method shouldFireTheCorrectEventOnRowHide.
@Test
public void shouldFireTheCorrectEventOnRowHide() throws Exception {
NatTable natTable = new NatTableFixture(new Shell(), new DummyGridLayerStack() {
@Override
protected void init(IUniqueIndexLayer bodyDataLayer, IUniqueIndexLayer columnHeaderDataLayer, IUniqueIndexLayer rowHeaderDataLayer, IUniqueIndexLayer cornerDataLayer) {
RowHideShowLayer rowHideShowLayer = new RowHideShowLayer(bodyDataLayer);
super.init(rowHideShowLayer, columnHeaderDataLayer, rowHeaderDataLayer, cornerDataLayer);
}
});
LayerListenerFixture listener = new LayerListenerFixture();
natTable.addLayerListener(listener);
// Grid coordinates
natTable.doCommand(new RowHideCommand(natTable, 5));
assertEquals(1, listener.getReceivedEvents().size());
HideRowPositionsEvent hideEvent = (HideRowPositionsEvent) listener.getReceivedEvents().get(0);
Range range = hideEvent.getRowPositionRanges().iterator().next();
assertEquals(5, range.start);
assertEquals(6, range.end);
// The range Before hide: 5 -> 6
// The range After hide: 5 -> 5 (row is not there anymore)
StructuralDiff rowDiff = hideEvent.getRowDiffs().iterator().next();
assertEquals(5, rowDiff.getBeforePositionRange().start);
assertEquals(6, rowDiff.getBeforePositionRange().end);
assertEquals(5, rowDiff.getAfterPositionRange().start);
assertEquals(5, rowDiff.getAfterPositionRange().end);
}
use of org.eclipse.nebula.widgets.nattable.hideshow.event.HideRowPositionsEvent in project nebula.widgets.nattable by eclipse.
the class RowHideShowLayerTest2 method scrollAndHideTheLastRow.
/**
* Integration test
*/
@Test
public void scrollAndHideTheLastRow() throws Exception {
// Total rows in fixture - 20 (index 0 - 19)
NatTableFixture natTable = new NatTableFixture(new Shell(), new DummyGridLayerStack() {
@Override
protected void init(IUniqueIndexLayer bodyDataLayer, IUniqueIndexLayer columnHeaderDataLayer, IUniqueIndexLayer rowHeaderDataLayer, IUniqueIndexLayer cornerDataLayer) {
RowHideShowLayer rowHideShowLayer = new RowHideShowLayer(bodyDataLayer);
super.init(rowHideShowLayer, columnHeaderDataLayer, rowHeaderDataLayer, cornerDataLayer);
}
}, 600, 120);
LayerListenerFixture natTableListener = new LayerListenerFixture();
natTable.addLayerListener(natTableListener);
// Scroll to position 15 in grid/15 in body
natTable.scrollToRow(15);
assertEquals(15, natTable.getRowIndexByPosition(1));
// Hide last row - position 5/index 19
assertEquals(19, natTable.getRowIndexByPosition(5));
natTable.doCommand(new RowHideCommand(natTable, 5));
// Assert event received
assertNotNull(natTableListener.getReceivedEvent(HideRowPositionsEvent.class));
HideRowPositionsEvent hideEvent = (HideRowPositionsEvent) natTableListener.getReceivedEvent(HideRowPositionsEvent.class);
// When last row is hidden it is not carrying the following info
assertEquals(1, hideEvent.getRowPositionRanges().size());
// View port adjusted origin to move an extra row in
Range hiddenRange = hideEvent.getRowPositionRanges().iterator().next();
assertEquals(6, hiddenRange.start);
assertEquals(7, hiddenRange.end);
}
use of org.eclipse.nebula.widgets.nattable.hideshow.event.HideRowPositionsEvent in project nebula.widgets.nattable by eclipse.
the class SelectionLayerStructuralChangeEventHandlerTest method shouldClearSelectionIfAllRowsAreHidden.
@Test
public void shouldClearSelectionIfAllRowsAreHidden() {
this.selectionModel.addSelection(3, 4);
SelectionLayerStructuralChangeEventHandler handler = new SelectionLayerStructuralChangeEventHandler(this.selectionLayer);
List<Integer> rows = new ArrayList<Integer>();
rows.add(0);
rows.add(1);
rows.add(2);
rows.add(3);
rows.add(4);
rows.add(5);
rows.add(6);
rows.add(7);
rows.add(8);
rows.add(9);
handler.handleLayerEvent(new HideRowPositionsEvent(this.dataLayer, rows));
Assert.assertTrue(this.selectionModel.isEmpty());
}
use of org.eclipse.nebula.widgets.nattable.hideshow.event.HideRowPositionsEvent in project nebula.widgets.nattable by eclipse.
the class SelectionModelStructuralChangeEventHandlerTest method shouldClearSelectionIfAllRowsAreHidden.
@Test
public void shouldClearSelectionIfAllRowsAreHidden() {
this.selectionModel.addSelection(3, 4);
List<Integer> rows = new ArrayList<Integer>();
rows.add(0);
rows.add(1);
rows.add(2);
rows.add(3);
rows.add(4);
rows.add(5);
rows.add(6);
rows.add(7);
rows.add(8);
rows.add(9);
this.selectionModel.handleLayerEvent(new HideRowPositionsEvent(this.dataLayer, rows));
Assert.assertTrue(this.selectionModel.isEmpty());
}
use of org.eclipse.nebula.widgets.nattable.hideshow.event.HideRowPositionsEvent in project nebula.widgets.nattable by eclipse.
the class TreeLayer method collapseTreeRow.
/**
* Collapses the tree node for the given row index.
*
* @param parentIndex
* The index of the row that shows the node that should be
* collapsed
*/
public void collapseTreeRow(int parentIndex) {
List<Integer> rowIndexes = this.treeRowModel.collapse(parentIndex);
List<Integer> rowPositions = new ArrayList<Integer>(rowIndexes.size());
for (Integer rowIndex : rowIndexes) {
int rowPos = getRowPositionByIndex(rowIndex);
// state in an underlying layer
if (rowPos >= 0) {
rowPositions.add(rowPos);
}
}
this.hiddenRowIndexes.addAll(rowIndexes);
invalidateCache();
fireLayerEvent(new HideRowPositionsEvent(this, rowPositions));
}
Aggregations