Community
Participate
Working Groups
Created attachment 179933 [details] riena.navigation.ui.swt patch to decrease delay The class ModuleNavigationListener.NodeSwitcher delays the activation of SubModules to prevent UI flicker if somebody clicks very fast on different nodes in the navigation tree. The delay is performed on a thread, which after the delay calls display.asyncExec(...) to activate the selected SubModule. "display.asyncExec(Runnable...)" under RAP adds the Runnable to a queue and it is executed later on on the UIThread. The problem now is, during the delay the ongoing web request finishes and the UIThread goes to sleep. Only after the next request (second mouse click) comes in, the Runnable is executed on the now active UIThread. One solution would be to use the RAP polling for UI updates (UICallBackServiceHandler.activateUICallBacksFor(id)". This is not possible because we cannot access the RAP classes from Riena. A workaround which works pretty well is to decrease the delay from 300ms to 50ms when running with RAP.(see patch) Maybe somebody has an even better solution?
Patch applied, thanks Jürgen. This is a first shot to improve Riena on RAP, maybe we will find a more sophisticated solution later.
The previous patch did not work all the time - the new one should. We now use the RAP UICallBackServiceHandler to make sure all updates are delivered to the browser. To make this work we need to us a special ModuleNavigationListener (and NodeSwitcher) for RAP. The platform specific ModuleNavigationListener ist created via SWTFacade.
Created attachment 180587 [details] Fixes the double click bug in the navigation tree (workspace patch)
Looks great! Patch applied, thanks Jürgen