Different SpanningDataBodyDataProvider for nattable [message #1720249] |
Fri, 15 January 2016 09:48  |
Eclipse User |
|
|
|
Hi,
I have a customSpanningDataBodyProvider() which changes for different kinds of settings I have.
For example, one of the setting I have displays 12 columns and other should show 25 columns and 13 columns.
My question is, Once the dataprovider is set can we change it later?
If the dataprovider vlaues are changed, do we have to create the datalayer, Viewportlayer and add configurations again?
Could you please tell me how to set the different bodydataprovider for datalayer?
|
|
|
|
|
|
|
|
Re: Different SpanningDataBodyDataProvider for nattable [message #1720424 is a reply to message #1720377] |
Mon, 18 January 2016 10:09   |
Eclipse User |
|
|
|
Hi Dirk,
As you said I subclass DataLayer and made setDataProvider() public and called the strauturalRefreshCommand. It works. Thanks for the suggestion.
I have one more question regarding the ColumnHeaderLayer. As I have mentioned before in the first post, I have different kinds of setting, each with different columnheaders and columngroupheaders.
ColumnHeaderLayer colLayer = null;
ColumnGroupHeaderLayer colgroupLayer = null;
ColumnGroupGroupHeaderLayer colgroupgroupLayer = null;
if(type == "XYZ")){
// Create HeadLayer
colLayer = new ColumnHeaderLayer(
headData.getHeaderDataLayer(),
viewportLayer,
selLayer);
colgroupLayer = new ColumnGroupHeaderLayer(colLayer, selLayer, headData.getColumnGroupModel());
for(ColumnGroups grp : colGroupsGroups){
colgroupLayer.addColumnsIndexesToGroup(grp.groupName, grp.childIndex);
}
colgroupgroupLayer = new ColumnGroupGroupHeaderLayer(
colgroupLayer,
selLayer,
headData.getColumnGroupModel());
// create groups
for (ColumnGroups cg : colGroups)
colgroupgroupLayer.addColumnsIndexesToGroup(cg.groupName, cg.childIndex);
// set HeadLayer
table.setColumnHeaderLayer(colLayer);
} else{
// Create HeadLayer
colLayer = new ColumnHeaderLayer(
headData.getHeaderDataLayer(),
viewportLayer,
selLayer);
// create groupLayer
colgroupLayer = new ColumnGroupHeaderLayer(
colLayer, selLayer, headData.getColumnGroupModel());
// create groups
for (ColumnGroups cg : colGroups)
colgroupLayer.addColumnsIndexesToGroup(cg.groupName, cg.childIndex);
// set HeadLayer
table.setColumnHeaderLayer(colLayer);
}
if(colgroupgroupLayer != null)
compLayer.setChildLayer(GridRegion.COLUMN_HEADER, colgroupgroupLayer, 0, 0);
else
compLayer.setChildLayer(GridRegion.COLUMN_HEADER, colgroupLayer, 0, 0);
compLayer.setChildLayer(GridRegion.BODY, viewportLayer, 0, 1);
Whenever I change my settings should I create ColumnHeaderLayer or ColumnGroupHeaderLayer every time ? Is it the correct way of doing it? Or If you have any other suggestions please let me know.
|
|
|
|
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.26854 seconds