Vertical scroll bar is appearing when filter applied wrt base list with empty rows [message #1855948] |
Thu, 10 November 2022 16:20  |
Eclipse User |
|
|
|
Hi,
When i apply filter in Nattable, Vertical Scroll bar is appearing with respect to base list with empty rows. Please find my SWT composite creation below and please find the attachments.
// create nattable
parent.setLayout(new GridLayout());
natTable = new NatTable(parent, compositeLayer, false);
natTable.configure();
GridDataFactory.fillDefaults().grab(true, true).applyTo(natTable);
I checked the nattable GlazzedListFilter example, there it is working perfectly.
So, could you please guide me if I am doing wrong or anything missing to resolve this issue.
Thank you in Advance.
|
|
|
|
|
|
Re: Vertical scroll bar is appearing when filter applied wrt base list with empty rows [message #1855957 is a reply to message #1855953] |
Fri, 11 November 2022 10:14  |
Eclipse User |
|
|
|
Hi Dirk,
Sorry for not providing the sufficient information. As you mentioned i am passing everywhere the filterlist only. Now i found the reason.
If I define columnGroupExpandCollapseLayer and rowGroupExpandCollapseLayer before glazedListsEventLayer, then i am getting these empty rows.
After looking some nattable exmaples and defined these layers after glazedListsEventLayer, then its working fine.
Thank you for your response and support.
Please find below my bodylayerstack class:
class BodyLayerStack extends AbstractLayerTransform {
private final FilterList<TableLine> filterList;
private final ListDataProvider<TableLine> bodyDataProvider;
private final SelectionLayer selectionLayer;
private final ViewportLayer viewportLayer;
private final DataLayer bodyDataLayer;
private final IColumnPropertyAccessor columnPropertyAccessor;
private final SortedList<TableLine> sortedList;
private ColumnGroupExpandCollapseLayer columnGroupExpandCollapseLayer;
private ColumnGroupModel columnGroupModel;
private RowGroupExpandCollapseLayer rowGroupExpandCollapseLayer;
public BodyLayerStack(List<TableLine> values, List<String> finalRows, IColumnPropertyAccessor columnPropertyAccessor, ConfigRegistry configRegistry) {
this.columnPropertyAccessor = columnPropertyAccessor;
EventList eventList = GlazedLists.eventList(values);
TransformedList rowObjectsGlazedList = GlazedLists.threadSafeList(eventList);
sortedList = new SortedList<TableLine>(rowObjectsGlazedList, null);
this.filterList = new FilterList<TableLine>(sortedList);
this.bodyDataProvider = new ListDataProvider<TableLine>(this.filterList, this.columnPropertyAccessor);
bodyDataLayer = new DataLayer(getBodyDataProvider());
bodyDataLayer.setConfigLabelAccumulator(new ColumnLabelAccumulator());
HoverLayer hoverLayer = new HoverLayer(bodyDataLayer, true);
hoverLayer.addConfiguration(new SimpleHoverStylingBindings(hoverLayer));
// layer for event handling of GlazedLists and PropertyChanges
GlazedListsEventLayer glazedListsEventLayer = new GlazedListsEventLayer<>(hoverLayer, this.filterList);
columnGroupExpandCollapseLayer = new ColumnGroupExpandCollapseLayer(glazedListsEventLayer);
rowGroupExpandCollapseLayer = new RowGroupExpandCollapseLayer(columnGroupExpandCollapseLayer);
this.selectionLayer = new SelectionLayer(rowGroupExpandCollapseLayer);
viewportLayer = new ViewportLayer(getSelectionLayer());
setUnderlyingLayer(viewportLayer);
}
public SortedList<TableLine> getSortedList() {
return sortedList;
}
public SelectionLayer getSelectionLayer() {
return this.selectionLayer;
}
public FilterList<TableLine> getFilterList() {
return this.filterList;
}
public ListDataProvider<TableLine> getBodyDataProvider() {
return this.bodyDataProvider;
}
public ViewportLayer getViewportLayer() {
return this.viewportLayer;
}
public IColumnPropertyAccessor getColumnPropertyAccessor() {
return this.columnPropertyAccessor;
}
public DataLayer getBodyDataLayer() {
return this.bodyDataLayer;
}
public ColumnGroupExpandCollapseLayer getColumnGroupExpandCollapseLayer() {
return columnGroupExpandCollapseLayer;
}
}
|
|
|
Powered by
FUDForum. Page generated in 0.04723 seconds