Trapped-Frontend.js 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. smalltalk.addPackage('Trapped-Frontend', {});
  2. smalltalk.addClass('TrappedFly', smalltalk.Object, [], 'Trapped-Frontend');
  3. smalltalk.addMethod(
  4. "_name",
  5. smalltalk.method({
  6. selector: "name",
  7. category: 'action',
  8. fn: function (){
  9. var self=this;
  10. var $1;
  11. $1=smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[]);
  12. return $1;
  13. },
  14. args: [],
  15. source: "name\x0a\x09^ self class name",
  16. messageSends: ["name", "class"],
  17. referencedClasses: []
  18. }),
  19. smalltalk.TrappedFly);
  20. smalltalk.addMethod(
  21. "_start",
  22. smalltalk.method({
  23. selector: "start",
  24. category: 'action',
  25. fn: function (){
  26. var self=this;
  27. smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_current",[]),"_register_name_",[self,smalltalk.send(self,"_name",[])]);
  28. return self},
  29. args: [],
  30. source: "start\x0a\x09Trapped current register: self name: self name",
  31. messageSends: ["register:name:", "name", "current"],
  32. referencedClasses: ["Trapped"]
  33. }),
  34. smalltalk.TrappedFly);
  35. smalltalk.addMethod(
  36. "_start",
  37. smalltalk.method({
  38. selector: "start",
  39. category: 'action',
  40. fn: function (){
  41. var self=this;
  42. smalltalk.send(smalltalk.send(self,"_new",[]),"_start",[]);
  43. return self},
  44. args: [],
  45. source: "start\x0a\x09self new start",
  46. messageSends: ["start", "new"],
  47. referencedClasses: []
  48. }),
  49. smalltalk.TrappedFly.klass);
  50. smalltalk.addClass('TrappedSingleton', smalltalk.Object, [], 'Trapped-Frontend');
  51. smalltalk.addMethod(
  52. "_start",
  53. smalltalk.method({
  54. selector: "start",
  55. category: 'action',
  56. fn: function (){
  57. var self=this;
  58. var $1;
  59. $1=smalltalk.send(self,"_subclassResponsibility",[]);
  60. return $1;
  61. },
  62. args: [],
  63. source: "start\x0a\x09^ self subclassResponsibility",
  64. messageSends: ["subclassResponsibility"],
  65. referencedClasses: []
  66. }),
  67. smalltalk.TrappedSingleton);
  68. smalltalk.TrappedSingleton.klass.iVarNames = ['current'];
  69. smalltalk.addMethod(
  70. "_current",
  71. smalltalk.method({
  72. selector: "current",
  73. category: 'accessing',
  74. fn: function (){
  75. var self=this;
  76. var $1;
  77. if(($receiver = self["@current"]) == nil || $receiver == undefined){
  78. self["@current"]=smalltalk.send(self,"_new",[]);
  79. $1=self["@current"];
  80. } else {
  81. $1=self["@current"];
  82. };
  83. return $1;
  84. },
  85. args: [],
  86. source: "current\x0a\x09^ current ifNil: [ current := self new ]",
  87. messageSends: ["ifNil:", "new"],
  88. referencedClasses: []
  89. }),
  90. smalltalk.TrappedSingleton.klass);
  91. smalltalk.addMethod(
  92. "_start",
  93. smalltalk.method({
  94. selector: "start",
  95. category: 'action',
  96. fn: function (){
  97. var self=this;
  98. smalltalk.send(smalltalk.send(self,"_current",[]),"_start",[]);
  99. return self},
  100. args: [],
  101. source: "start\x0a\x09self current start",
  102. messageSends: ["start", "current"],
  103. referencedClasses: []
  104. }),
  105. smalltalk.TrappedSingleton.klass);
  106. smalltalk.addClass('Trapped', smalltalk.TrappedSingleton, ['registry'], 'Trapped-Frontend');
  107. smalltalk.addMethod(
  108. "_byName_",
  109. smalltalk.method({
  110. selector: "byName:",
  111. category: 'accessing',
  112. fn: function (aString){
  113. var self=this;
  114. var $1;
  115. $1=smalltalk.send(self["@registry"],"_at_",[aString]);
  116. return $1;
  117. },
  118. args: ["aString"],
  119. source: "byName: aString\x0a\x09^ registry at: aString",
  120. messageSends: ["at:"],
  121. referencedClasses: []
  122. }),
  123. smalltalk.Trapped);
  124. smalltalk.addMethod(
  125. "_initialize",
  126. smalltalk.method({
  127. selector: "initialize",
  128. category: 'initialization',
  129. fn: function (){
  130. var self=this;
  131. smalltalk.send(self,"_initialize",[],smalltalk.TrappedSingleton);
  132. self["@registry"]=smalltalk.HashedCollection._fromPairs_([]);
  133. return self},
  134. args: [],
  135. source: "initialize\x0a\x09super initialize.\x0a\x09registry := #{}.",
  136. messageSends: ["initialize"],
  137. referencedClasses: []
  138. }),
  139. smalltalk.Trapped);
  140. smalltalk.addMethod(
  141. "_register_name_",
  142. smalltalk.method({
  143. selector: "register:name:",
  144. category: 'accessing',
  145. fn: function (aFly,aString){
  146. var self=this;
  147. smalltalk.send(self["@registry"],"_at_put_",[aString,aFly]);
  148. return self},
  149. args: ["aFly", "aString"],
  150. source: "register: aFly name: aString\x0a\x09registry at: aString put: aFly",
  151. messageSends: ["at:put:"],
  152. referencedClasses: []
  153. }),
  154. smalltalk.Trapped);
  155. smalltalk.addMethod(
  156. "_start",
  157. smalltalk.method({
  158. selector: "start",
  159. category: 'action',
  160. fn: function (){
  161. var self=this;
  162. smalltalk.send(smalltalk.send("[data-trap]","_asJQuery",[]),"_each_",[(function(index,elem){
  163. var trap;
  164. var jq;
  165. var viewName;
  166. var modelName;
  167. var tokens;
  168. jq=smalltalk.send(elem,"_asJQuery",[]);
  169. jq;
  170. trap=smalltalk.send(jq,"_attr_",["data-trap"]);
  171. trap;
  172. tokens=smalltalk.send(trap,"_tokenize_",[":"]);
  173. tokens;
  174. viewName=smalltalk.send(tokens,"_first",[]);
  175. viewName;
  176. modelName=smalltalk.send(tokens,"_second",[]);
  177. modelName;
  178. return smalltalk.send([modelName],"_trapDescend_",[(function(){
  179. return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_at_",[viewName]),"_new",[]),"_appendToJQuery_",[jq]);
  180. })]);
  181. })]);
  182. return self},
  183. args: [],
  184. source: "start\x0a\x09'[data-trap]' asJQuery each: [ :index :elem |\x0a \x09| trap jq viewName modelName tokens |\x0a jq := elem asJQuery.\x0a trap := jq attr: 'data-trap'.\x0a tokens := trap tokenize: ':'.\x0a viewName := tokens first.\x0a modelName := tokens second.\x0a { modelName } trapDescend: [(Smalltalk current at: viewName) new appendToJQuery: jq].\x0a ]",
  185. messageSends: ["each:", "asJQuery", "attr:", "tokenize:", "first", "second", "trapDescend:", "appendToJQuery:", "new", "at:", "current"],
  186. referencedClasses: ["Smalltalk"]
  187. }),
  188. smalltalk.Trapped);
  189. smalltalk.addMethod(
  190. "_path",
  191. smalltalk.method({
  192. selector: "path",
  193. category: 'accessing',
  194. fn: function (){
  195. var self=this;
  196. var $1;
  197. $1=smalltalk.send(smalltalk.send((smalltalk.TrappedPathStack || TrappedPathStack),"_current",[]),"_elements",[]);
  198. return $1;
  199. },
  200. args: [],
  201. source: "path\x0a\x09^TrappedPathStack current elements",
  202. messageSends: ["elements", "current"],
  203. referencedClasses: ["TrappedPathStack"]
  204. }),
  205. smalltalk.Trapped.klass);
  206. smalltalk.addClass('TrappedPathStack', smalltalk.TrappedSingleton, ['elements'], 'Trapped-Frontend');
  207. smalltalk.addMethod(
  208. "_append_",
  209. smalltalk.method({
  210. selector: "append:",
  211. category: 'descending',
  212. fn: function (anArray){
  213. var self=this;
  214. self["@elements"]=smalltalk.send(self["@elements"],"__comma",[anArray]);
  215. return self},
  216. args: ["anArray"],
  217. source: "append: anArray\x0a elements := elements, anArray",
  218. messageSends: [","],
  219. referencedClasses: []
  220. }),
  221. smalltalk.TrappedPathStack);
  222. smalltalk.addMethod(
  223. "_elements",
  224. smalltalk.method({
  225. selector: "elements",
  226. category: 'accessing',
  227. fn: function (){
  228. var self=this;
  229. return self["@elements"];
  230. },
  231. args: [],
  232. source: "elements\x0a\x09^elements",
  233. messageSends: [],
  234. referencedClasses: []
  235. }),
  236. smalltalk.TrappedPathStack);
  237. smalltalk.addMethod(
  238. "_initialize",
  239. smalltalk.method({
  240. selector: "initialize",
  241. category: 'initialization',
  242. fn: function (){
  243. var self=this;
  244. self["@elements"]=[];
  245. return self},
  246. args: [],
  247. source: "initialize\x0a\x09elements := #().",
  248. messageSends: [],
  249. referencedClasses: []
  250. }),
  251. smalltalk.TrappedPathStack);
  252. smalltalk.addMethod(
  253. "_with_do_",
  254. smalltalk.method({
  255. selector: "with:do:",
  256. category: 'descending',
  257. fn: function (anArray,aBlock){
  258. var self=this;
  259. var old;
  260. old=self["@elements"];
  261. smalltalk.send((function(){
  262. smalltalk.send(self,"_append_",[anArray]);
  263. return smalltalk.send(aBlock,"_value",[]);
  264. }),"_ensure_",[(function(){
  265. self["@elements"]=old;
  266. return self["@elements"];
  267. })]);
  268. return self},
  269. args: ["anArray", "aBlock"],
  270. source: "with: anArray do: aBlock\x0a\x09| old |\x0a old := elements.\x0a [ self append: anArray.\x0a\x09aBlock value ] ensure: [ elements := old ]",
  271. messageSends: ["ensure:", "append:", "value"],
  272. referencedClasses: []
  273. }),
  274. smalltalk.TrappedPathStack);
  275. smalltalk.addClass('TrappedView', smalltalk.Widget, [], 'Trapped-Frontend');
  276. smalltalk.addMethod(
  277. "_renderOn_",
  278. smalltalk.method({
  279. selector: "renderOn:",
  280. category: 'rendering',
  281. fn: function (html){
  282. var self=this;
  283. smalltalk.send(smalltalk.send(html,"_root",[]),"_empty",[]);
  284. smalltalk.send(html,"_with_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[]),"__comma",[": "]),"__comma",[smalltalk.send((smalltalk.Trapped || Trapped),"_path",[])])]);
  285. return self},
  286. args: ["html"],
  287. source: "renderOn: html\x0a\x09html root empty.\x0a\x09html with: self class name, ': ', Trapped path",
  288. messageSends: ["empty", "root", "with:", ",", "path", "name", "class"],
  289. referencedClasses: ["Trapped"]
  290. }),
  291. smalltalk.TrappedView);
  292. smalltalk.addMethod(
  293. "_trapDescend_",
  294. smalltalk.method({
  295. selector: "trapDescend:",
  296. category: '*Trapped-Frontend',
  297. fn: function (aBlock){
  298. var self=this;
  299. smalltalk.send(smalltalk.send((smalltalk.TrappedPathStack || TrappedPathStack),"_current",[]),"_with_do_",[self,aBlock]);
  300. return self},
  301. args: ["aBlock"],
  302. source: "trapDescend: aBlock\x0a\x09TrappedPathStack current with: self do: aBlock",
  303. messageSends: ["with:do:", "current"],
  304. referencedClasses: ["TrappedPathStack"]
  305. }),
  306. smalltalk.Array);
  307. smalltalk.addMethod(
  308. "_trapDescend_",
  309. smalltalk.method({
  310. selector: "trapDescend:",
  311. category: '*Trapped-Frontend',
  312. fn: function (aBlock){
  313. var self=this;
  314. smalltalk.send(smalltalk.send((smalltalk.TrappedPathStack || TrappedPathStack),"_current",[]),"_with_do_",[self,aBlock]);
  315. return self},
  316. args: ["aBlock"],
  317. source: "trapDescend: aBlock\x0a\x09TrappedPathStack current with: self do: aBlock",
  318. messageSends: ["with:do:", "current"],
  319. referencedClasses: ["TrappedPathStack"]
  320. }),
  321. smalltalk.Array);