123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- smalltalk.addPackage('Trapped-Demo', {});
- smalltalk.addClass('App', smalltalk.TrappedMWIsolated, [], 'Trapped-Demo');
- smalltalk.addMethod(
- "_initialize",
- smalltalk.method({
- selector: "initialize",
- category: 'initialization',
- fn: function (){
- var self=this;
- var obj;
- smalltalk.send(self,"_initialize",[],smalltalk.TrappedMWIsolated);
- smalltalk.send(self,"_dispatcher_",[smalltalk.send((smalltalk.TrappedDumbDispatcher || TrappedDumbDispatcher),"_new",[])]);
- obj=smalltalk.HashedCollection._fromPairs_([smalltalk.send("title","__minus_gt",["To-Do List"])]);
- smalltalk.send(self,"_model_",[obj]);
- smalltalk.send((function(){
- smalltalk.send(obj,"_at_put_",["items",[[true, "hello"], [false, "world"]]]);
- return smalltalk.send(smalltalk.send(self,"_dispatcher",[]),"_changed_",[[]]);
- }),"_valueWithTimeout_",[(2000)]);
- return self},
- args: [],
- source: "initialize\x0a\x09| obj |\x0a\x09super initialize.\x0a self dispatcher: TrappedDumbDispatcher new.\x0a obj := #{'title' -> 'To-Do List'}.\x0a self model: obj.\x0a [ obj at: 'items' put: #(#(true 'hello') #(false 'world')). self dispatcher changed: #() ] valueWithTimeout: 2000\x0a",
- messageSends: ["initialize", "dispatcher:", "new", "->", "model:", "valueWithTimeout:", "at:put:", "changed:", "dispatcher"],
- referencedClasses: ["TrappedDumbDispatcher"]
- }),
- smalltalk.App);
- smalltalk.addClass('AppView', smalltalk.Widget, [], 'Trapped-Demo');
- smalltalk.addMethod(
- "_renderOn_",
- smalltalk.method({
- selector: "renderOn:",
- category: 'rendering',
- fn: function (html){
- var self=this;
- var $1,$2,$3,$4;
- smalltalk.send(smalltalk.send(html,"_h2",[]),"_trapShow_",[["title"]]);
- smalltalk.send(smalltalk.send(html,"_div",[]),"_trap_toggle_ifNotPresent_",[["items"],(function(){
- smalltalk.send(smalltalk.send(html,"_p",[]),"_with_",[(function(){
- smalltalk.send(smalltalk.send(html,"_span",[]),"_trapShow_",[[smalltalk.symbolFor("size")]]);
- return smalltalk.send(html,"_with_",[" item(s)."]);
- })]);
- smalltalk.send(smalltalk.send(html,"_form",[]),"_with_",[(function(){
- return smalltalk.send(smalltalk.send(html,"_ul",[]),"_trapIter_tag_do_",[[],smalltalk.symbolFor("li"),(function(each){
- smalltalk.send(smalltalk.send(html,"_root",[]),"_empty",[]);
- $1=smalltalk.send(html,"_input",[]);
- smalltalk.send($1,"_type_",["checkbox"]);
- $2=smalltalk.send($1,"_trapBind_",[[(1)]]);
- $2;
- return smalltalk.send(smalltalk.send(html,"_span",[]),"_trapShow_",[[(2)]]);
- })]);
- })]);
- smalltalk.send(smalltalk.send(html,"_p",[]),"_with_",["... and again, to see the bidirectional binding:"]);
- return smalltalk.send(smalltalk.send(html,"_form",[]),"_with_",[(function(){
- return smalltalk.send(smalltalk.send(html,"_ul",[]),"_trapIter_tag_do_",[[],smalltalk.symbolFor("li"),(function(each){
- smalltalk.send(smalltalk.send(html,"_root",[]),"_empty",[]);
- $3=smalltalk.send(html,"_input",[]);
- smalltalk.send($3,"_type_",["checkbox"]);
- $4=smalltalk.send($3,"_trapBind_",[[(1)]]);
- $4;
- return smalltalk.send(smalltalk.send(html,"_span",[]),"_trapShow_",[[(2)]]);
- })]);
- })]);
- }),(function(){
- return smalltalk.send(html,"_with_",["Loading ..."]);
- })]);
- return self},
- args: ["html"],
- source: "renderOn: html\x0a\x09html h2 trapShow: #('title').\x0a html div trap: #('items') toggle: [\x0a html p with: [ html span trapShow: #(#size). html with: ' item(s).' ].\x0a\x09\x09html form with: [ html ul trapIter: #() tag: #li do: [ :each |\x0a html root empty.\x0a html input\x0a type: 'checkbox';\x0a trapBind: #(1).\x0a html span trapShow: #(2).\x0a ]].\x0a html p with: '... and again, to see the bidirectional binding:'.\x0a\x09\x09html form with: [ html ul trapIter: #() tag: #li do: [ :each |\x0a html root empty.\x0a html input\x0a type: 'checkbox';\x0a trapBind: #(1).\x0a html span trapShow: #(2).\x0a ]].\x0a ] ifNotPresent: [ html with: 'Loading ...' ]",
- messageSends: ["trapShow:", "h2", "trap:toggle:ifNotPresent:", "with:", "span", "p", "trapIter:tag:do:", "empty", "root", "type:", "input", "trapBind:", "ul", "form", "div"],
- referencedClasses: []
- }),
- smalltalk.AppView);
- smalltalk.addClass('TrappedDumbDispatcher', smalltalk.TrappedDispatcher, ['queue'], 'Trapped-Demo');
- smalltalk.addMethod(
- "_add_",
- smalltalk.method({
- selector: "add:",
- category: 'accessing',
- fn: function (aSubscription){
- var self=this;
- smalltalk.send(self["@queue"],"_add_",[aSubscription]);
- return self},
- args: ["aSubscription"],
- source: "add: aSubscription\x0a\x09queue add: aSubscription.\x0a",
- messageSends: ["add:"],
- referencedClasses: []
- }),
- smalltalk.TrappedDumbDispatcher);
- smalltalk.addMethod(
- "_clean",
- smalltalk.method({
- selector: "clean",
- category: 'bookkeeping',
- fn: function (){
- var self=this;
- self["@queue"]=smalltalk.send(self["@queue"],"_select_",[(function(each){
- return smalltalk.send(each,"_isEnabled",[]);
- })]);
- return self},
- args: [],
- source: "clean\x0a\x09queue := queue select: [ :each | each isEnabled ]",
- messageSends: ["select:", "isEnabled"],
- referencedClasses: []
- }),
- smalltalk.TrappedDumbDispatcher);
- smalltalk.addMethod(
- "_do_",
- smalltalk.method({
- selector: "do:",
- category: 'enumeration',
- fn: function (aBlock){
- var self=this;
- smalltalk.send(self["@queue"],"_do_",[aBlock]);
- return self},
- args: ["aBlock"],
- source: "do: aBlock\x0a\x09queue do: aBlock",
- messageSends: ["do:"],
- referencedClasses: []
- }),
- smalltalk.TrappedDumbDispatcher);
- smalltalk.addMethod(
- "_initialize",
- smalltalk.method({
- selector: "initialize",
- category: 'initialization',
- fn: function (){
- var self=this;
- self["@queue"]=smalltalk.send((smalltalk.OrderedCollection || OrderedCollection),"_new",[]);
- return self},
- args: [],
- source: "initialize\x0a\x09queue := OrderedCollection new",
- messageSends: ["new"],
- referencedClasses: ["OrderedCollection"]
- }),
- smalltalk.TrappedDumbDispatcher);
|