Browse Source

TrappedModelWrapper base class

Herbert Vojčík 12 years ago
parent
commit
f50515cef0
3 changed files with 86 additions and 41 deletions
  1. 28 14
      js/Trapped-Frontend.deploy.js
  2. 39 20
      js/Trapped-Frontend.js
  3. 19 7
      st/Trapped-Frontend.st

+ 28 - 14
js/Trapped-Frontend.deploy.js

@@ -13,7 +13,7 @@ smalltalk.TrappedDumbView);
 
 
 
-smalltalk.addClass('TrappedPlainModel', smalltalk.Object, ['payload'], 'Trapped-Frontend');
+smalltalk.addClass('TrappedModelWrapper', smalltalk.Object, ['payload'], 'Trapped-Frontend');
 smalltalk.addMethod(
 "_name",
 smalltalk.method({
@@ -25,7 +25,7 @@ $1=smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[]);
 return $1;
 }
 }),
-smalltalk.TrappedPlainModel);
+smalltalk.TrappedModelWrapper);
 
 smalltalk.addMethod(
 "_payload",
@@ -36,7 +36,7 @@ var self=this;
 return self["@payload"];
 }
 }),
-smalltalk.TrappedPlainModel);
+smalltalk.TrappedModelWrapper);
 
 smalltalk.addMethod(
 "_payload_",
@@ -47,22 +47,19 @@ var self=this;
 self["@payload"]=anObject;
 return self}
 }),
-smalltalk.TrappedPlainModel);
+smalltalk.TrappedModelWrapper);
 
 smalltalk.addMethod(
-"_read_do_",
+"_start",
 smalltalk.method({
-selector: "read:do:",
-fn: function (path,aBlock){
+selector: "start",
+fn: function (){
 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]);
+smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_current",[]),"_register_name_",[self,smalltalk.send(self,"_name",[])]);
 return self}
 }),
-smalltalk.TrappedPlainModel);
+smalltalk.TrappedModelWrapper);
+
 
 smalltalk.addMethod(
 "_start",
@@ -70,7 +67,24 @@ smalltalk.method({
 selector: "start",
 fn: function (){
 var self=this;
-smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_current",[]),"_register_name_",[self,smalltalk.send(self,"_name",[])]);
+smalltalk.send(smalltalk.send(self,"_new",[]),"_start",[]);
+return self}
+}),
+smalltalk.TrappedModelWrapper.klass);
+
+
+smalltalk.addClass('TrappedPlainModel', smalltalk.TrappedModelWrapper, [], 'Trapped-Frontend');
+smalltalk.addMethod(
+"_read_do_",
+smalltalk.method({
+selector: "read:do:",
+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}
 }),
 smalltalk.TrappedPlainModel);

+ 39 - 20
js/Trapped-Frontend.js

@@ -19,7 +19,7 @@ smalltalk.TrappedDumbView);
 
 
 
-smalltalk.addClass('TrappedPlainModel', smalltalk.Object, ['payload'], 'Trapped-Frontend');
+smalltalk.addClass('TrappedModelWrapper', smalltalk.Object, ['payload'], 'Trapped-Frontend');
 smalltalk.addMethod(
 "_name",
 smalltalk.method({
@@ -36,7 +36,7 @@ source: "name\x0a\x09^ self class name",
 messageSends: ["name", "class"],
 referencedClasses: []
 }),
-smalltalk.TrappedPlainModel);
+smalltalk.TrappedModelWrapper);
 
 smalltalk.addMethod(
 "_payload",
@@ -52,7 +52,7 @@ source: "payload\x0a\x09^payload",
 messageSends: [],
 referencedClasses: []
 }),
-smalltalk.TrappedPlainModel);
+smalltalk.TrappedModelWrapper);
 
 smalltalk.addMethod(
 "_payload_",
@@ -68,8 +68,43 @@ source: "payload: anObject\x0a\x09payload := anObject",
 messageSends: [],
 referencedClasses: []
 }),
-smalltalk.TrappedPlainModel);
+smalltalk.TrappedModelWrapper);
+
+smalltalk.addMethod(
+"_start",
+smalltalk.method({
+selector: "start",
+category: 'action',
+fn: function (){
+var self=this;
+smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_current",[]),"_register_name_",[self,smalltalk.send(self,"_name",[])]);
+return self},
+args: [],
+source: "start\x0a\x09Trapped current register: self name: self name",
+messageSends: ["register:name:", "name", "current"],
+referencedClasses: ["Trapped"]
+}),
+smalltalk.TrappedModelWrapper);
+
 
+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.TrappedModelWrapper.klass);
+
+
+smalltalk.addClass('TrappedPlainModel', smalltalk.TrappedModelWrapper, [], 'Trapped-Frontend');
 smalltalk.addMethod(
 "_read_do_",
 smalltalk.method({
@@ -90,22 +125,6 @@ referencedClasses: []
 }),
 smalltalk.TrappedPlainModel);
 
-smalltalk.addMethod(
-"_start",
-smalltalk.method({
-selector: "start",
-category: 'action',
-fn: function (){
-var self=this;
-smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_current",[]),"_register_name_",[self,smalltalk.send(self,"_name",[])]);
-return self},
-args: [],
-source: "start\x0a\x09Trapped current register: self name: self name",
-messageSends: ["register:name:", "name", "current"],
-referencedClasses: ["Trapped"]
-}),
-smalltalk.TrappedPlainModel);
-
 
 smalltalk.addMethod(
 "_start",

+ 19 - 7
st/Trapped-Frontend.st

@@ -11,11 +11,11 @@ renderOn: html
 	html root trapShow: #()
 ! !
 
-Object subclass: #TrappedPlainModel
+Object subclass: #TrappedModelWrapper
 	instanceVariableNames: 'payload'
 	package: 'Trapped-Frontend'!
 
-!TrappedPlainModel methodsFor: 'accessing'!
+!TrappedModelWrapper methodsFor: 'accessing'!
 
 payload
 	^payload
@@ -25,21 +25,33 @@ payload: anObject
 	payload := anObject
 ! !
 
-!TrappedPlainModel methodsFor: 'action'!
+!TrappedModelWrapper methodsFor: 'action'!
 
 name
 	^ self class name
 !
 
+start
+	Trapped current register: self name: self name
+! !
+
+!TrappedModelWrapper class methodsFor: 'action'!
+
+start
+	self new start
+! !
+
+TrappedModelWrapper subclass: #TrappedPlainModel
+	instanceVariableNames: ''
+	package: 'Trapped-Frontend'!
+
+!TrappedPlainModel methodsFor: 'action'!
+
 read: path do: aBlock
 	| data |
     data := path inject: self payload
     	into: [ :soFar :segment | soFar at: segment ].
 	aBlock value: data.
-!
-
-start
-	Trapped current register: self name: self name
 ! !
 
 !TrappedPlainModel class methodsFor: 'action'!