Blame | Last modification | View Log | RSS feed
<!--This file demonstrates how the dojox.wire code can be used to do declarativewiring of events. Specifically, it shows how you can chain actions togetherin a sequence. In this case the setting of a value on one textbox triggers acopy over to another textbox. That in turn triggers yet another copy to anothertext box.--><html><head><title>Sample Action Chaining</title><style type="text/css">@import "../../../../dijit/themes/tundra/tundra.css";@import "../../../../dojo/resources/dojo.css";@import "../../../../dijit/tests/css/dijitTests.css";@import "../TableContainer.css";.splitView {width: 90%;height: 90%;border: 1px solid #bfbfbf;border-collapse: separate;}</style><script type="text/javascript" src="../../../../dojo/dojo.js" djConfig="isDebug: true, parseOnLoad: true"></script><script type="text/javascript">dojo.require("dojo.parser");dojo.require("dojox.wire");dojo.require("dojox.wire.ml.Invocation");dojo.require("dojox.wire.ml.DataStore");dojo.require("dojox.wire.ml.Transfer");dojo.require("dojox.wire.ml.Data");dojo.require("dijit.form.TextBox");</script></head><body class="tundra"><!-- Layout --><font size="3"><b>Demo of Chaining Actions:</b></font><br/><br/>This demo shows how you can chain actions together to fire in a sequence.Such as the completion of setting one value on a widget triggers the setting of another value on the widget<br/><br/><table><tr><td><div dojoType="dijit.form.TextBox" id="inputField" value="" size="50"></div></td></tr><tr><td><div dojoType="dijit.form.TextBox" id="targetField1" value="" disabled="true" size="50"></div></td></tr><tr><td><div dojoType="dijit.form.TextBox" id="targetField2" value="" disabled="true" size="50"></div></td></tr></table><!-------------------------------- Using dojox.wire, declaratively wire up the widgets. ---------------------------><!--This is an example of using the declarative data value definition.These are effectively declarative variables to act as placeholdersfor data values.--><div dojoType="dojox.wire.ml.Data"id="data"><div dojoType="dojox.wire.ml.DataProperty"name="tempData"value=""></div></div><!--Whenever a key is entered into the textbox, copy the value somewhere, then invoke a method on another widget, in this caseon just another text box.--><div dojoType="dojox.wire.ml.Action"id="action1"trigger="inputField"triggerEvent="onkeyup"><div dojoType="dojox.wire.ml.Invocation" object="inputField" method="getValue" result="data.tempData"></div><div dojoType="dojox.wire.ml.Invocation" id="targetCopy" object="targetField1" method="setValue" parameters="data.tempData"></div></div><!--Whenever the primary cloning invocation completes, invoke a secondary cloning action.--><div dojoType="dojox.wire.ml.Action"id="action2"trigger="targetCopy"triggerEvent="onComplete"><!--Note that this uses the basic 'property' form of copying the property over and setting it. The Wirecode supports both getX and setX functions of setting a property as well as direct access. It first looksfor the getX/setX functions and if present, uses them. If missing, it will just do direct access. Becauseof the standard getValue/setValue API of dijit form widgets, these transfers work really well and are very compact.--><div dojoType="dojox.wire.ml.Transfer" source="targetField1.value" target="targetField2.value"></div></div></body></html>