|
@@ -1,5 +1,58 @@
|
|
|
smalltalk.addPackage('Trapped-Demo', {});
|
|
|
-smalltalk.addClass('App', smalltalk.TrappedPlainModel, [], 'Trapped-Demo');
|
|
|
+smalltalk.addClass('AppView', smalltalk.Widget, [], 'Trapped-Demo');
|
|
|
+smalltalk.addMethod(
|
|
|
+"_renderOn_",
|
|
|
+smalltalk.method({
|
|
|
+selector: "renderOn:",
|
|
|
+category: 'rendering',
|
|
|
+fn: function (html){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(smalltalk.send(html,"_h2",[]),"_trapShow_",[["title"]]);
|
|
|
+smalltalk.send(smalltalk.send(html,"_p",[]),"_trapShow_",[["items"]]);
|
|
|
+return self},
|
|
|
+args: ["html"],
|
|
|
+source: "renderOn: html\x0a\x09html h2 trapShow: #('title').\x0a\x09html p trapShow: #('items')",
|
|
|
+messageSends: ["trapShow:", "h2", "p"],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.AppView);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+smalltalk.addClass('TrappedDumbDispatcher', smalltalk.TrappedDispatcher, ['queue'], 'Trapped-Demo');
|
|
|
+smalltalk.addMethod(
|
|
|
+"_add_",
|
|
|
+smalltalk.method({
|
|
|
+selector: "add:",
|
|
|
+category: 'accessing',
|
|
|
+fn: function (aTriplet){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(self["@queue"],"_add_",[aTriplet]);
|
|
|
+smalltalk.send(self,"_dirty_",[smalltalk.send(aTriplet,"_first",[])]);
|
|
|
+return self},
|
|
|
+args: ["aTriplet"],
|
|
|
+source: "add: aTriplet\x0a\x09queue add: aTriplet.\x0a self dirty: aTriplet first\x0a\x09",
|
|
|
+messageSends: ["add:", "dirty:", "first"],
|
|
|
+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({
|
|
@@ -7,35 +60,90 @@ selector: "initialize",
|
|
|
category: 'initialization',
|
|
|
fn: function (){
|
|
|
var self=this;
|
|
|
-smalltalk.send(self,"_initialize",[],smalltalk.TrappedPlainModel);
|
|
|
-smalltalk.send(self,"_payload_",[smalltalk.HashedCollection._fromPairs_([smalltalk.send("items","__minus_gt",[["hello", "world"]]),smalltalk.send("title","__minus_gt",["To-Do List"])])]);
|
|
|
+self["@queue"]=smalltalk.send((smalltalk.OrderedCollection || OrderedCollection),"_new",[]);
|
|
|
return self},
|
|
|
args: [],
|
|
|
-source: "initialize\x0a\x09super initialize.\x0a\x09self payload: #{'items'->#('hello' 'world'). 'title' -> 'To-Do List'}",
|
|
|
-messageSends: ["initialize", "payload:", "->"],
|
|
|
+source: "initialize\x0a\x09queue := OrderedCollection new",
|
|
|
+messageSends: ["new"],
|
|
|
+referencedClasses: ["OrderedCollection"]
|
|
|
+}),
|
|
|
+smalltalk.TrappedDumbDispatcher);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+smalltalk.addClass('TrappedPlainModel', smalltalk.TrappedModelWrapper, [], 'Trapped-Demo');
|
|
|
+smalltalk.addMethod(
|
|
|
+"_initialize",
|
|
|
+smalltalk.method({
|
|
|
+selector: "initialize",
|
|
|
+category: 'initialization',
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(self,"_initialize",[],smalltalk.TrappedModelWrapper);
|
|
|
+smalltalk.send(self,"_dispatcher_",[smalltalk.send((smalltalk.TrappedDumbDispatcher || TrappedDumbDispatcher),"_new",[])]);
|
|
|
+return self},
|
|
|
+args: [],
|
|
|
+source: "initialize\x0a\x09super initialize.\x0a self dispatcher: TrappedDumbDispatcher new",
|
|
|
+messageSends: ["initialize", "dispatcher:", "new"],
|
|
|
+referencedClasses: ["TrappedDumbDispatcher"]
|
|
|
+}),
|
|
|
+smalltalk.TrappedPlainModel);
|
|
|
+
|
|
|
+smalltalk.addMethod(
|
|
|
+"_read_do_",
|
|
|
+smalltalk.method({
|
|
|
+selector: "read:do:",
|
|
|
+category: 'action',
|
|
|
+fn: function (path,aBlock){
|
|
|
+var self=this;
|
|
|
+var data;
|
|
|
+data=smalltalk.send(path,"_inject_into_",[smalltalk.send(self,"_payload",[]),(function(soFar,segment){
|
|
|
+return smalltalk.send(soFar,"_at_",[segment]);
|
|
|
+})]);
|
|
|
+smalltalk.send(aBlock,"_value_",[data]);
|
|
|
+return self},
|
|
|
+args: ["path", "aBlock"],
|
|
|
+source: "read: path do: aBlock\x0a\x09| data |\x0a data := path inject: self payload\x0a \x09into: [ :soFar :segment | soFar at: segment ].\x0a\x09aBlock value: data.",
|
|
|
+messageSends: ["inject:into:", "payload", "at:", "value:"],
|
|
|
referencedClasses: []
|
|
|
}),
|
|
|
-smalltalk.App);
|
|
|
+smalltalk.TrappedPlainModel);
|
|
|
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
+"_start",
|
|
|
+smalltalk.method({
|
|
|
+selector: "start",
|
|
|
+category: 'action',
|
|
|
+fn: function (){
|
|
|
+var self=this;
|
|
|
+smalltalk.send(smalltalk.send(self,"_new",[]),"_start",[]);
|
|
|
+return self},
|
|
|
+args: [],
|
|
|
+source: "start\x0a\x09self new start",
|
|
|
+messageSends: ["start", "new"],
|
|
|
+referencedClasses: []
|
|
|
+}),
|
|
|
+smalltalk.TrappedPlainModel.klass);
|
|
|
|
|
|
-smalltalk.addClass('AppView', smalltalk.Widget, [], 'Trapped-Demo');
|
|
|
+
|
|
|
+smalltalk.addClass('App', smalltalk.TrappedPlainModel, [], 'Trapped-Demo');
|
|
|
smalltalk.addMethod(
|
|
|
-"_renderOn_",
|
|
|
+"_initialize",
|
|
|
smalltalk.method({
|
|
|
-selector: "renderOn:",
|
|
|
-category: 'rendering',
|
|
|
-fn: function (html){
|
|
|
+selector: "initialize",
|
|
|
+category: 'initialization',
|
|
|
+fn: function (){
|
|
|
var self=this;
|
|
|
-smalltalk.send(smalltalk.send(html,"_h2",[]),"_trapShow_",[["title"]]);
|
|
|
-smalltalk.send(smalltalk.send(html,"_p",[]),"_trapShow_",[["items"]]);
|
|
|
+smalltalk.send(self,"_initialize",[],smalltalk.TrappedPlainModel);
|
|
|
+smalltalk.send(self,"_payload_",[smalltalk.HashedCollection._fromPairs_([smalltalk.send("items","__minus_gt",[["hello", "world"]]),smalltalk.send("title","__minus_gt",["To-Do List"])])]);
|
|
|
return self},
|
|
|
-args: ["html"],
|
|
|
-source: "renderOn: html\x0a\x09html h2 trapShow: #('title').\x0a\x09html p trapShow: #('items')",
|
|
|
-messageSends: ["trapShow:", "h2", "p"],
|
|
|
+args: [],
|
|
|
+source: "initialize\x0a\x09super initialize.\x0a\x09self payload: #{'items'->#('hello' 'world'). 'title' -> 'To-Do List'}",
|
|
|
+messageSends: ["initialize", "payload:", "->"],
|
|
|
referencedClasses: []
|
|
|
}),
|
|
|
-smalltalk.AppView);
|
|
|
+smalltalk.App);
|
|
|
|
|
|
|
|
|
|