1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00

r21287: Improve user feedback. Cursor now changes to stopwatch during RPC and module loading.

(This used to be commit a6fc47eff3)
This commit is contained in:
Derrell Lipman 2007-02-11 22:59:02 +00:00 committed by Gerald (Jerry) Carter
parent cb89806824
commit 6ac408eef8
3 changed files with 41 additions and 2 deletions

View File

@ -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

View File

@ -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);

View File

@ -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" :