diff options
Diffstat (limited to 'webapps/swat/source')
-rw-r--r-- | webapps/swat/source/class/swat/main/AbstractModule.js | 22 | ||||
-rw-r--r-- | webapps/swat/source/class/swat/main/AbstractModuleFsm.js | 19 |
2 files changed, 40 insertions, 1 deletions
diff --git a/webapps/swat/source/class/swat/main/AbstractModule.js b/webapps/swat/source/class/swat/main/AbstractModule.js index 01aae703c3..bf61a86fd8 100644 --- a/webapps/swat/source/class/swat/main/AbstractModule.js +++ b/webapps/swat/source/class/swat/main/AbstractModule.js @@ -75,6 +75,7 @@ qx.Proto.buildInitialFsm = function(module) * Load module's finite state machine and graphical user interface */ var thisModule = this; + var newModule = module; var trans = new qx.util.fsm.Transition( "Transition_Idle_to_Idle_Load_Gui", { @@ -87,7 +88,26 @@ qx.Proto.buildInitialFsm = function(module) // Call the module's initialAppear function to build FSM and GUI. // That function should *replace* this state, State_Idle, to which // we'll transition. - thisModule.initialAppear(module); + var canvas = fsm.getObject("swat.main.canvas"); + canvas.getTopLevelWidget().setGlobalCursor("progress"); + if (! newModule.bLoaded) + { + window.setTimeout( + function() + { + // Call the module's initial appear handler + thisModule.initialAppear(newModule); + + // Regenerate the appear event, since the original one got + // lost by doing this code inside of the timeout. + canvas.createDispatchEvent("appear"); + + // Reset the cursor to the default + canvas.getTopLevelWidget().setGlobalCursor(null); + + }, 0); + newModule.bLoaded = true; + } } }); state.addTransition(trans); diff --git a/webapps/swat/source/class/swat/main/AbstractModuleFsm.js b/webapps/swat/source/class/swat/main/AbstractModuleFsm.js index 273c9ad8a3..3cf4187676 100644 --- a/webapps/swat/source/class/swat/main/AbstractModuleFsm.js +++ b/webapps/swat/source/class/swat/main/AbstractModuleFsm.js @@ -113,6 +113,10 @@ qx.Proto.addAwaitRpcResultState = function(module, blockedEvents) { var bAuthCompleted = false; + // Change the cursor to indicate RPC in progress + var canvas = fsm.getObject("swat.main.canvas"); + canvas.getTopLevelWidget().setGlobalCursor("progress"); + // See if we just completed an authentication if (fsm.getPreviousState() == "State_Authenticate" && event.getType() == "complete") @@ -130,6 +134,21 @@ qx.Proto.addAwaitRpcResultState = function(module, blockedEvents) } }, + "onexit" : + function(fsm, event) + { + // If we're returning to the calling state (not going to the + // Authenticate state)... + var nextState = fsm.getNextState(); + if (nextState != "State_Authenticate" && + nextState != "State_AwaitRpcResult") + { + // ... then set the cursor back to normal + var canvas = fsm.getObject("swat.main.canvas"); + canvas.getTopLevelWidget().setGlobalCursor(null); + } + }, + "events" : { "execute" : |