Examples.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. define(["amber/boot", "amber/web/Web"], function($boot){"use strict";
  2. if(!("nilAsValue" in $boot))$boot.nilAsValue=$boot.nilAsReceiver;
  3. var $core=$boot.api,nil=$boot.nilAsValue,$nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
  4. $core.addPackage("Examples");
  5. ($core.packageDescriptors||$core.packages)["Examples"].innerEval = function (expr) { return eval(expr); };
  6. ($core.packageDescriptors||$core.packages)["Examples"].transport = {"type":"amd","amdNamespace":"amber/legacy"};
  7. $core.addClass("Counter", $globals.Widget, ["count", "header"], "Examples");
  8. //>>excludeStart("ide", pragmas.excludeIdeData);
  9. $globals.Counter.comment="This is a trivial Widget example mimicking the classic Counter example in Seaside.\x0aIn order to play with it, just evaluate the doit below in a workspace.\x0aThen take a look in the HTML document above the IDE.\x0a\x0a\x09\x09Counter tryExample";
  10. //>>excludeEnd("ide");
  11. $core.addMethod(
  12. $core.method({
  13. selector: "decrease",
  14. protocol: "actions",
  15. fn: function (){
  16. var self=this,$self=this;
  17. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  18. return $core.withContext(function($ctx1) {
  19. //>>excludeEnd("ctx");
  20. $self["@count"]=$recv($self["@count"]).__minus((1));
  21. $recv($self["@header"])._contents_((function(html){
  22. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  23. return $core.withContext(function($ctx2) {
  24. //>>excludeEnd("ctx");
  25. return $recv(html)._with_($recv($self["@count"])._asString());
  26. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  27. }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1,1)});
  28. //>>excludeEnd("ctx");
  29. }));
  30. return self;
  31. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  32. }, function($ctx1) {$ctx1.fill(self,"decrease",{},$globals.Counter)});
  33. //>>excludeEnd("ctx");
  34. },
  35. //>>excludeStart("ide", pragmas.excludeIdeData);
  36. args: [],
  37. source: "decrease\x0a\x09count := count - 1.\x0a\x09header contents: [ :html | html with: count asString ]",
  38. referencedClasses: [],
  39. //>>excludeEnd("ide");
  40. messageSends: ["-", "contents:", "with:", "asString"]
  41. }),
  42. $globals.Counter);
  43. $core.addMethod(
  44. $core.method({
  45. selector: "increase",
  46. protocol: "actions",
  47. fn: function (){
  48. var self=this,$self=this;
  49. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  50. return $core.withContext(function($ctx1) {
  51. //>>excludeEnd("ctx");
  52. $self["@count"]=$recv($self["@count"]).__plus((1));
  53. $recv($self["@header"])._contents_((function(html){
  54. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  55. return $core.withContext(function($ctx2) {
  56. //>>excludeEnd("ctx");
  57. return $recv(html)._with_($recv($self["@count"])._asString());
  58. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  59. }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1,1)});
  60. //>>excludeEnd("ctx");
  61. }));
  62. return self;
  63. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  64. }, function($ctx1) {$ctx1.fill(self,"increase",{},$globals.Counter)});
  65. //>>excludeEnd("ctx");
  66. },
  67. //>>excludeStart("ide", pragmas.excludeIdeData);
  68. args: [],
  69. source: "increase\x0a\x09count := count + 1.\x0a\x09header contents: [ :html | html with: count asString ]",
  70. referencedClasses: [],
  71. //>>excludeEnd("ide");
  72. messageSends: ["+", "contents:", "with:", "asString"]
  73. }),
  74. $globals.Counter);
  75. $core.addMethod(
  76. $core.method({
  77. selector: "initialize",
  78. protocol: "initialization",
  79. fn: function (){
  80. var self=this,$self=this;
  81. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  82. return $core.withContext(function($ctx1) {
  83. //>>excludeEnd("ctx");
  84. (
  85. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  86. $ctx1.supercall = true,
  87. //>>excludeEnd("ctx");
  88. ($globals.Counter.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($self, []));
  89. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  90. $ctx1.supercall = false;
  91. //>>excludeEnd("ctx");;
  92. $self["@count"]=(0);
  93. return self;
  94. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  95. }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.Counter)});
  96. //>>excludeEnd("ctx");
  97. },
  98. //>>excludeStart("ide", pragmas.excludeIdeData);
  99. args: [],
  100. source: "initialize\x0a\x09super initialize.\x0a\x09count := 0",
  101. referencedClasses: [],
  102. //>>excludeEnd("ide");
  103. messageSends: ["initialize"]
  104. }),
  105. $globals.Counter);
  106. $core.addMethod(
  107. $core.method({
  108. selector: "renderOn:",
  109. protocol: "rendering",
  110. fn: function (html){
  111. var self=this,$self=this;
  112. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  113. return $core.withContext(function($ctx1) {
  114. //>>excludeEnd("ctx");
  115. var $1,$2,$3,$4;
  116. $1=$recv(html)._h1();
  117. $recv($1)._with_($recv($self["@count"])._asString());
  118. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  119. $ctx1.sendIdx["with:"]=1;
  120. //>>excludeEnd("ctx");
  121. $self["@header"]=$recv($1)._yourself();
  122. $2=$recv(html)._button();
  123. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  124. $ctx1.sendIdx["button"]=1;
  125. //>>excludeEnd("ctx");
  126. $recv($2)._with_("++");
  127. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  128. $ctx1.sendIdx["with:"]=2;
  129. //>>excludeEnd("ctx");
  130. $3=$recv($2)._onClick_((function(){
  131. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  132. return $core.withContext(function($ctx2) {
  133. //>>excludeEnd("ctx");
  134. return $self._increase();
  135. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  136. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  137. //>>excludeEnd("ctx");
  138. }));
  139. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  140. $ctx1.sendIdx["onClick:"]=1;
  141. //>>excludeEnd("ctx");
  142. $4=$recv(html)._button();
  143. $recv($4)._with_("--");
  144. $recv($4)._onClick_((function(){
  145. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  146. return $core.withContext(function($ctx2) {
  147. //>>excludeEnd("ctx");
  148. return $self._decrease();
  149. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  150. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)});
  151. //>>excludeEnd("ctx");
  152. }));
  153. return self;
  154. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  155. }, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html},$globals.Counter)});
  156. //>>excludeEnd("ctx");
  157. },
  158. //>>excludeStart("ide", pragmas.excludeIdeData);
  159. args: ["html"],
  160. source: "renderOn: html\x0a\x09header := html h1\x0a\x09\x09with: count asString;\x0a\x09\x09yourself.\x0a\x09html button\x0a\x09\x09with: '++';\x0a\x09\x09onClick: [ self increase ].\x0a\x09html button\x0a\x09\x09with: '--';\x0a\x09\x09onClick: [ self decrease ]",
  161. referencedClasses: [],
  162. //>>excludeEnd("ide");
  163. messageSends: ["with:", "h1", "asString", "yourself", "button", "onClick:", "increase", "decrease"]
  164. }),
  165. $globals.Counter);
  166. $core.addMethod(
  167. $core.method({
  168. selector: "tryExample",
  169. protocol: "example",
  170. fn: function (){
  171. var self=this,$self=this;
  172. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  173. return $core.withContext(function($ctx1) {
  174. //>>excludeEnd("ctx");
  175. $recv($self._new())._appendToJQuery_("body"._asJQuery());
  176. return self;
  177. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  178. }, function($ctx1) {$ctx1.fill(self,"tryExample",{},$globals.Counter.a$cls)});
  179. //>>excludeEnd("ctx");
  180. },
  181. //>>excludeStart("ide", pragmas.excludeIdeData);
  182. args: [],
  183. source: "tryExample\x0a\x09\x22In order to play with the Counter, just select the\x0a\x09doit below and press the Do it button. Then take a\x0a\x09look in the HTML document above the IDE.\x22\x0a\x0a\x09\x22Counter tryExample\x22\x0a\x09\x09self new appendToJQuery: 'body' asJQuery",
  184. referencedClasses: [],
  185. //>>excludeEnd("ide");
  186. messageSends: ["appendToJQuery:", "new", "asJQuery"]
  187. }),
  188. $globals.Counter.a$cls);
  189. });