eclipse-rcpnattablenebula

How can to show the row number in Nebula NatTable


I can show a CSV content to a NatTable using those code:

IDataProvider bodyDataProvider = ...;

DataLayer bodyDataLayer = new DataLayer(bodyDataProvider);
SelectionLayer selectionLayer = new SelectionLayer(bodyDataLayer);
ViewportLayer viewportLayer = new ViewportLayer(selectionLayer);
viewportLayer.setRegionName(GridRegion.BODY);

natTable.setLayer(viewportLayer);

How can we show the row number? I tried to used GridLayer but there are no column header. Please help!


Solution

  • I resolved this. I used CompositeLayer:

    IDataProvider rowHeaderDataProvider = new DefaultRowHeaderDataProvider(bodyDataProvider);
    DataLayer rowHeaderDataLayer = new DataLayer(rowHeaderDataProvider);
    ILayer rowHeaderLayer = new RowHeaderLayer(
                        rowHeaderDataLayer,
                        viewportLayer,
                        selectionLayer);
    CompositeLayer compositeLayer = new CompositeLayer(2, 1);
    compositeLayer.setChildLayer(GridRegion.ROW_HEADER, rowHeaderLayer, 0, 0);
    compositeLayer.setChildLayer(GridRegion.BODY, viewportLayer, 1, 0);
    natTable.setLayer(compositeLayer);