Row and column header disappear [message #1818440] |
Mon, 16 December 2019 10:40 |
Ralf Heydenreich Messages: 235 Registered: July 2009 |
Senior Member |
|
|
Hi all,
I've the following two classes to build a layer stack for my NatTable (code stripped):
class BodyLayerStack {
TransformedList<T, T> rowObjectsGlazedList = GlazedLists.threadSafeList(eventList);
this.sortedList = new SortedList<T>(rowObjectsGlazedList, null);
this.bodyDataProvider = new ListDataProvider<T>(sortedList, columnPropertyAccessor);
this.bodyDataLayer = new DataLayer(bodyDataProvider);
glazedListsEventLayer = new DetailGlazedListsEventLayer<T>(bodyDataLayer, sortedList);
glazedListsEventLayer.setConfigLabelAccumulator(new ColumnLabelAccumulator());
rowReorderLayer = new RowReorderLayer(glazedListsEventLayer);
rowReorderLayer.setConfigLabelAccumulator(new AlternatingRowConfigLabelAccumulator());
this.selectionLayer = new SelectionLayer(rowReorderLayer);
RowSelectionModel<T> selectionModel = new RowSelectionModel<T>(selectionLayer, bodyDataProvider, rowIdAccessor, false);
selectionLayer.setSelectionModel(selectionModel);
selectionLayer.addConfiguration(new RowOnlySelectionConfiguration<T>());
viewportLayer = new ViewportLayer(selectionLayer);
setUnderlyingLayer(selectionLayer);
}
class GridListLayer {
IDataProvider columnHeaderDataProvider = new DefaultColumnHeaderDataProvider(columnLabels);
dataLayer = new DefaultColumnHeaderDataLayer(columnHeaderDataProvider);
columnHeaderLayer = new ColumnHeaderLayer(dataLayer, bodyLayerStack, bodyLayerStack.getSelectionLayer());
IDataProvider rowHeaderDataProvider = new ListViewRowHeaderDataProvider(bodyLayerStack.getBodyDataProvider(), withRowHeader);
DataLayer rowHeaderDataLayer = new DefaultRowHeaderDataLayer(rowHeaderDataProvider);
ILayer rowHeaderLayer = new RowHeaderLayer(rowHeaderDataLayer, bodyLayerStack, bodyLayerStack.getSelectionLayer());
cornerDataProvider = new DefaultCornerDataProvider(columnHeaderDataProvider, rowHeaderDataProvider);
DataLayer cornerDataLayer = new DataLayer(cornerDataProvider);
ILayer cornerLayer = new CornerLayer(cornerDataLayer, rowHeaderLayer, columnHeaderLayer);
gridLayer = new GridLayer(bodyLayerStack, columnHeaderLayer, rowHeaderLayer, cornerLayer);
setViewportLayer(new ViewportLayer(bodyLayerStack.getSelectionLayer()));
getViewportLayer().setRegionName(GridRegion.BODY);
}
Now, if I create the NatTable with
final NatTable natTable = new NatTable(tableComposite,gridListLayer.getViewportLayer(), false);
, the row and column headers are not shown. If I instead use
final NatTable natTable = new NatTable(tableComposite,gridListLayer.getGridLayer(), false);
, the row and column headers are shown, but if I scroll the table horizontally a bunch of exceptions is thrown because of wrong column mappings (at least it seems so). How can I correct this?
Thanks in advance,
Ralf.
|
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03447 seconds