diff options
3 files changed, 41 insertions, 2 deletions
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/FiniteStateMachine.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/FiniteStateMachine.js index d91ab45858..0b42bc24be 100644 --- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/FiniteStateMachine.js +++ b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/FiniteStateMachine.js @@ -178,7 +178,7 @@ qx.Proto.addState = function(state)    // Ensure that the state name doesn't already exist    if (stateName in this._states)    { -    throw new Error("State " + state + " already exists"); +    throw new Error("State " + stateName + " already exists");    }    // Add the new state object to the finite state machine 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"  :  | 
