Our application contains tables with a lot of columns and we seem to run into issues with performance.
If a page with table is displayed and all the columns are displayed and we try to deselect all the columns (click “Deselect all” option in context menu),
then columns become deselected slowly.
If 2 tabs with tables are open, switching between then is slow.
I’ve attached a simple app to demonstrate issues with UI performance: example.zip (89.5 KB)
Could you please clarify how this problem can be fixed?
Unfortunately, there is no way to improve the performance of DeselectAll out of the box. You can try to split your data into smaller entities or tables.
Take a look at cuba.web.mainTabSheetMode. You can configure your screen to do not unload UI. For instance, add the following property to your web-app.properties:
cuba.web.mainTabSheetMode=MANAGED
And in your screen do the following:
@Subscribe
public void onInit(InitEvent event) {
Window window = getWindow();
if (window instanceof TabWindow) {
((TabWindow) window).setContentSwitchMode(Window.ContentSwitchMode.HIDE);
}
}
cuba.web.mainTabSheetMode=MANAGED has helped to improve performance, tabs load quickly.
We only noticed that in dark mode with helium theme the background of tabs was white so we had to redefine “background-color” property for “.c-managed-tabsheet” class for helium theme.
Regarding “DeselectAll” performance, could you please clarify if it is planned to be improved? Is there any bug/ticket on this?