summaryrefslogtreecommitdiff
path: root/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/fsm.js
diff options
context:
space:
mode:
Diffstat (limited to 'webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/fsm.js')
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/fsm.js297
1 files changed, 0 insertions, 297 deletions
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/fsm.js b/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/fsm.js
deleted file mode 100644
index 50cdc25ccb..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/demo/source/html/example/Fsm_1/fsm.js
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Initialize the finite state machine.
- *
- * This finite state machine has two states: Idle and AwaitRpcResult.
- *
- * In the Idle state, the Send button is enabled, the Abort button is
- * disabled, and the three color bars are blue. In the AwaitRpcResult state,
- * the Send button is disabled, the Abort button is enabled, and three color
- * bars are red. All of these changes occur via automatic, table-driven
- * function calls in autoActionsXXX() objects, not via explicit code. This
- * demonstrates how groups of objects can all be manipulated together without
- * having to write lots of code to do so. Just as these color blocks change
- * color, numerous widgets could be disabled/hidden/etc., without writing code
- * to futz with all of them.
- */
-function initFsm()
-{
- // Create a new finite state machine
- var fsm = new qx.util.fsm.FiniteStateMachine("Fsm_1");
-
- // For this simple example application, show all debug messages.
- qx.Settings.setCustomOfClass(
- "qx.util.fsm.FiniteStateMachine",
- "debugFlags",
- (qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS |
- qx.util.fsm.FiniteStateMachine.DebugFlags.TRANSITIONS |
- qx.util.fsm.FiniteStateMachine.DebugFlags.FUNCTION_DETAIL |
- qx.util.fsm.FiniteStateMachine.DebugFlags.OBJECT_NOT_FOUND));
-
- /*
- * State: Idle
- *
- * Actions upon entry:
- * button_send.setEnabled(true);
- * button_abort.setEnabled(false);
- * change background of objects in group "group_color_change" to blue
- *
- * Transition on:
- * "execute" on button_send
- */
- var state = new qx.util.fsm.State(
- "State_Idle",
- {
- "autoActionsBeforeOnentry" :
- {
- // The name of a function.
- "setEnabled" :
- [
- {
- // We want to enable the 'send' button
- "parameters" : [ true ],
-
- // Call this.getObject("button_send").setEnabled(true)
- "objects" : [ "button_send" ]
- },
-
- {
- // We want to disable the 'abort' button
- "parameters" : [ false ],
-
- // Call this.getObject("button_abort").setEnabled(false)
- "objects" : [ "button_abort" ]
- }
- ],
-
- // The name of a function.
- "setBackgroundColor" :
- [
- {
- // We want to change the atoms' background color to blue
- "parameters" :
- [
- // We want the color oject created when needed, not "now"
- // Providing a function as a parameter allows the value to be
- // determined later.
- function (fsm) { return new qx.renderer.color.Color("blue"); }
- ],
-
- // Call this.getObject(<object>).seBackgroundcolor("blue") on
- // state entry, for each <object> in the group called
- // "group_color_change".
- "groups" : [ "group_color_change" ]
- }
- ]
- },
-
- "events" :
- {
- // If the send button is pressed, go to new state state where we
- // will await the RPC result
- "execute" :
- {
- "button_send" :
- "Transition_Idle_to_AwaitRpcResult_via_button_send"
- }
- }
- });
- fsm.addState(state);
-
- /*
- * Transition: Idle to AwaitRpcResult
- *
- * Cause: "execute" on button_send
- *
- * Action:
- * Issue RPC request with coalesced failure events
- */
- var trans = new qx.util.fsm.Transition(
- "Transition_Idle_to_AwaitRpcResult_via_button_send",
- {
- "nextState" :
- "State_AwaitRpcResult",
-
- "ontransition" :
- function(fsm, event)
- {
- var rpc = fsm.getObject("rpc");
-
- rpc.setUrl(fsm.getObject("text_url").getValue());
- rpc.setServiceName(fsm.getObject("text_service").getValue());
-
- var request =
- rpc.callAsyncListeners(true, // coalesce failure events
- fsm.getObject("text_method").getValue(),
- fsm.getObject("text_message").getValue());
- fsm.addObject("request", request);
- }
- });
- state.addTransition(trans);
-
-
- /*
- * State: AwaitRpcResult
- *
- * Actions upon entry:
- * button_send.setEnabled(false);
- * button_abort.setEnabled(true);
- * change background of objects in group "group_color_change" to red
- *
- * Transition on:
- * "completed" (on RPC)
- * "failed" (on RPC)
- * "execute on button_abort
- */
- var state = new qx.util.fsm.State(
- "State_AwaitRpcResult",
- {
- "autoActionsBeforeOnentry" :
- {
- // The name of a function.
- "setEnabled" :
- [
- {
- // We want to disable the 'send' button
- "parameters" : [ false ],
-
- // Call this.getObject("send").setEnabled(false)
- "objects" : [ "button_send" ]
- },
-
- {
- // We want to enable the 'abort' button
- "parameters" : [ true ],
-
- // Call this.getObject("abort").setEnabled(true)
- "objects" : [ "button_abort" ]
- }
- ],
-
- // The name of a function.
- "setBackgroundColor" :
- [
- {
- // We want to change the atoms' background color to red
- "parameters" :
- [
- // We want the color oject created when needed, not "now"
- // Providing a function as a parameter allows the value to be
- // determined later.
- function (fsm) { return new qx.renderer.color.Color("red"); }
- ],
-
- // Call this.getObject(<object>).seBackgroundcolor("red"), for
- // each <object> in the group called "group_color_change".
- "groups" : [ "group_color_change" ]
- }
- ]
- },
-
- "events" :
- {
- "execute" :
- {
- "button_abort" :
- "Transition_AwaitRpcResult_to_AwaitRpcResult_via_button_abort"
- },
-
- "completed" :
- "Transition_AwaitRpcResult_to_Idle_via_complete",
-
- "failed" :
- "Transition_AwaitRpcResult_to_Idle_via_failed"
- },
-
- "onentry" :
- function(fsm, state)
- {
- var message = fsm.getObject("text_result");
- message.setValue("");
- }
-
- });
- fsm.addState(state);
-
- /*
- * Transition: AwaitRpcResult to AwaitRpcResult
- *
- * Cause: "execute" on button_abort
- */
- var trans = new qx.util.fsm.Transition(
- "Transition_AwaitRpcResult_to_AwaitRpcResult_via_button_abort",
- {
- "nextState" :
- "State_AwaitRpcResult",
-
- "ontransition" :
- function(fsm, event)
- {
- // Get the request object
- var request = fsm.getObject("request");
-
- // Issue an abort for the pending request
- request.abort();
-
- var message = fsm.getObject("text_result");
- message.setValue("Abort requested...");
- }
- });
- state.addTransition(trans);
-
- /*
- * Transition: AwaitRpcResult to Idle
- *
- * Cause: "complete" (on RPC)
- */
- var trans = new qx.util.fsm.Transition(
- "Transition_AwaitRpcResult_to_Idle_via_complete",
- {
- "nextState" :
- "State_Idle",
-
- "ontransition" :
- function(fsm, event)
- {
- var message = fsm.getObject("text_result");
- message.setValue("Got result: " + event.getData());
-
- // The request has completed, so remove the object reference
- fsm.removeObject("request");
- }
- });
- state.addTransition(trans);
-
- /*
- * Transition: AwaitRpcResult to Idle
- *
- * Cause: "failed" (on RPC)
- */
- var trans = new qx.util.fsm.Transition(
- "Transition_AwaitRpcResult_to_Idle_via_failed",
- {
- "nextState" :
- "State_Idle",
-
- "ontransition" :
- function(fsm, event)
- {
- var message = fsm.getObject("text_result");
- message.setValue("Got failure: " + event.getData());
-
- // The request has completed, so remove the object reference
- fsm.removeObject("request");
- }
- });
- state.addTransition(trans);
-
- // Allocate an RPC object
- o = new qx.io.remote.Rpc();
- o.setTimeout(10000);
- o.addEventListener("completed", fsm.eventListener, fsm);
- o.addEventListener("failed", fsm.eventListener, fsm);
- o.addEventListener("timeout", fsm.eventListener, fsm);
- o.addEventListener("aborted", fsm.eventListener, fsm);
- fsm.addObject("rpc", o);
-
- return fsm;
-}