Helios-Transcript.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. define(["amber/boot", "require", "amber/core/Kernel-Objects", "helios/Helios-Core"], function($boot,requirejs){"use strict";
  2. var $core=$boot.api,nil=$boot.nilAsValue,$nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
  3. var $pkg = $core.addPackage("Helios-Transcript");
  4. $pkg.innerEval = function (expr) { return eval(expr); };
  5. $pkg.transport = {"type":"amd","amdNamespace":"helios"};
  6. $core.addClass("HLTranscript", $globals.HLWidget, ["textarea"], "Helios-Transcript");
  7. //>>excludeStart("ide", pragmas.excludeIdeData);
  8. $globals.HLTranscript.comment="I am a widget responsible for displaying transcript contents.\x0a\x0a## Transcript API\x0a\x0a Transcript \x0a show: 'hello world';\x0a cr;\x0a show: anObject.\x0a\x0a Transcript clear.\x0a\x0aSee the `Transcript` service class.";
  9. //>>excludeEnd("ide");
  10. $core.addMethod(
  11. $core.method({
  12. selector: "clear",
  13. protocol: "actions",
  14. fn: function (){
  15. var self=this,$self=this;
  16. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  17. return $core.withContext(function($ctx1) {
  18. //>>excludeEnd("ctx");
  19. $recv($recv($self["@textarea"])._asJQuery())._text_("");
  20. return self;
  21. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  22. }, function($ctx1) {$ctx1.fill(self,"clear",{},$globals.HLTranscript)});
  23. //>>excludeEnd("ctx");
  24. },
  25. //>>excludeStart("ide", pragmas.excludeIdeData);
  26. args: [],
  27. source: "clear\x0a\x09textarea asJQuery text: ''",
  28. referencedClasses: [],
  29. //>>excludeEnd("ide");
  30. messageSends: ["text:", "asJQuery"]
  31. }),
  32. $globals.HLTranscript);
  33. $core.addMethod(
  34. $core.method({
  35. selector: "initialize",
  36. protocol: "initialization",
  37. fn: function (){
  38. var self=this,$self=this;
  39. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  40. return $core.withContext(function($ctx1) {
  41. //>>excludeEnd("ctx");
  42. (
  43. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  44. $ctx1.supercall = true,
  45. //>>excludeEnd("ctx");
  46. ($globals.HLTranscript.superclass||$boot.nilAsClass).fn.prototype._initialize.apply($self, []));
  47. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  48. $ctx1.supercall = false;
  49. //>>excludeEnd("ctx");;
  50. $self._register();
  51. return self;
  52. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  53. }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.HLTranscript)});
  54. //>>excludeEnd("ctx");
  55. },
  56. //>>excludeStart("ide", pragmas.excludeIdeData);
  57. args: [],
  58. source: "initialize\x0a\x09super initialize.\x0a\x09self register",
  59. referencedClasses: [],
  60. //>>excludeEnd("ide");
  61. messageSends: ["initialize", "register"]
  62. }),
  63. $globals.HLTranscript);
  64. $core.addMethod(
  65. $core.method({
  66. selector: "register",
  67. protocol: "registration",
  68. fn: function (){
  69. var self=this,$self=this;
  70. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  71. return $core.withContext(function($ctx1) {
  72. //>>excludeEnd("ctx");
  73. $recv($globals.HLTranscriptHandler)._register_(self);
  74. return self;
  75. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  76. }, function($ctx1) {$ctx1.fill(self,"register",{},$globals.HLTranscript)});
  77. //>>excludeEnd("ctx");
  78. },
  79. //>>excludeStart("ide", pragmas.excludeIdeData);
  80. args: [],
  81. source: "register\x0a\x09HLTranscriptHandler register: self",
  82. referencedClasses: ["HLTranscriptHandler"],
  83. //>>excludeEnd("ide");
  84. messageSends: ["register:"]
  85. }),
  86. $globals.HLTranscript);
  87. $core.addMethod(
  88. $core.method({
  89. selector: "renderOn:",
  90. protocol: "rendering",
  91. fn: function (html){
  92. var self=this,$self=this;
  93. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  94. return $core.withContext(function($ctx1) {
  95. //>>excludeEnd("ctx");
  96. var $1;
  97. $1=$recv(html)._div();
  98. $recv($1)._class_("transcript");
  99. $recv($1)._with_((function(){
  100. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  101. return $core.withContext(function($ctx2) {
  102. //>>excludeEnd("ctx");
  103. $self["@textarea"]=$recv(html)._textarea();
  104. return $self["@textarea"];
  105. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  106. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  107. //>>excludeEnd("ctx");
  108. }));
  109. return self;
  110. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  111. }, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html},$globals.HLTranscript)});
  112. //>>excludeEnd("ctx");
  113. },
  114. //>>excludeStart("ide", pragmas.excludeIdeData);
  115. args: ["html"],
  116. source: "renderOn: html\x0a\x09html div\x0a\x09\x09class: 'transcript';\x0a\x09\x09with: [ textarea := html textarea ]",
  117. referencedClasses: [],
  118. //>>excludeEnd("ide");
  119. messageSends: ["class:", "div", "with:", "textarea"]
  120. }),
  121. $globals.HLTranscript);
  122. $core.addMethod(
  123. $core.method({
  124. selector: "show:",
  125. protocol: "actions",
  126. fn: function (aString){
  127. var self=this,$self=this;
  128. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  129. return $core.withContext(function($ctx1) {
  130. //>>excludeEnd("ctx");
  131. var $1,$receiver;
  132. $1=$self["@textarea"];
  133. if(($receiver = $1) == null || $receiver.a$nil){
  134. $1;
  135. } else {
  136. $recv($self["@textarea"])._append_($recv(aString)._asString());
  137. }
  138. return self;
  139. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  140. }, function($ctx1) {$ctx1.fill(self,"show:",{aString:aString},$globals.HLTranscript)});
  141. //>>excludeEnd("ctx");
  142. },
  143. //>>excludeStart("ide", pragmas.excludeIdeData);
  144. args: ["aString"],
  145. source: "show: aString\x0a\x09textarea ifNotNil: [\x0a \x09\x09textarea append: aString asString ]",
  146. referencedClasses: [],
  147. //>>excludeEnd("ide");
  148. messageSends: ["ifNotNil:", "append:", "asString"]
  149. }),
  150. $globals.HLTranscript);
  151. $core.addMethod(
  152. $core.method({
  153. selector: "unregister",
  154. protocol: "registration",
  155. fn: function (){
  156. var self=this,$self=this;
  157. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  158. return $core.withContext(function($ctx1) {
  159. //>>excludeEnd("ctx");
  160. (
  161. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  162. $ctx1.supercall = true,
  163. //>>excludeEnd("ctx");
  164. ($globals.HLTranscript.superclass||$boot.nilAsClass).fn.prototype._unregister.apply($self, []));
  165. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  166. $ctx1.supercall = false;
  167. //>>excludeEnd("ctx");;
  168. $recv($globals.HLTranscriptHandler)._unregister_(self);
  169. return self;
  170. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  171. }, function($ctx1) {$ctx1.fill(self,"unregister",{},$globals.HLTranscript)});
  172. //>>excludeEnd("ctx");
  173. },
  174. //>>excludeStart("ide", pragmas.excludeIdeData);
  175. args: [],
  176. source: "unregister\x0a\x09super unregister.\x0a\x09HLTranscriptHandler unregister: self",
  177. referencedClasses: ["HLTranscriptHandler"],
  178. //>>excludeEnd("ide");
  179. messageSends: ["unregister", "unregister:"]
  180. }),
  181. $globals.HLTranscript);
  182. $core.addClass("HLTranscriptHandler", $globals.Object, [], "Helios-Transcript");
  183. //>>excludeStart("ide", pragmas.excludeIdeData);
  184. $globals.HLTranscriptHandler.comment="I handle transcript events, dispatching them to all instances of `HLTranscript`.\x0a\x0a## API\x0a\x0aUse the class-side method `#register:` to add transcript instances.";
  185. //>>excludeEnd("ide");
  186. $globals.HLTranscriptHandler.a$cls.iVarNames = ["transcripts"];
  187. $core.addMethod(
  188. $core.method({
  189. selector: "clear",
  190. protocol: "printing",
  191. fn: function (){
  192. var self=this,$self=this;
  193. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  194. return $core.withContext(function($ctx1) {
  195. //>>excludeEnd("ctx");
  196. $recv($self._transcripts())._do_((function(each){
  197. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  198. return $core.withContext(function($ctx2) {
  199. //>>excludeEnd("ctx");
  200. return $recv(each)._clear();
  201. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  202. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  203. //>>excludeEnd("ctx");
  204. }));
  205. return self;
  206. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  207. }, function($ctx1) {$ctx1.fill(self,"clear",{},$globals.HLTranscriptHandler.a$cls)});
  208. //>>excludeEnd("ctx");
  209. },
  210. //>>excludeStart("ide", pragmas.excludeIdeData);
  211. args: [],
  212. source: "clear\x0a\x09self transcripts do: [ :each |\x0a\x09\x09each clear ]",
  213. referencedClasses: [],
  214. //>>excludeEnd("ide");
  215. messageSends: ["do:", "transcripts", "clear"]
  216. }),
  217. $globals.HLTranscriptHandler.a$cls);
  218. $core.addMethod(
  219. $core.method({
  220. selector: "cr",
  221. protocol: "printing",
  222. fn: function (){
  223. var self=this,$self=this;
  224. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  225. return $core.withContext(function($ctx1) {
  226. //>>excludeEnd("ctx");
  227. $recv($self._transcripts())._do_((function(each){
  228. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  229. return $core.withContext(function($ctx2) {
  230. //>>excludeEnd("ctx");
  231. return $recv(each)._cr();
  232. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  233. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  234. //>>excludeEnd("ctx");
  235. }));
  236. return self;
  237. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  238. }, function($ctx1) {$ctx1.fill(self,"cr",{},$globals.HLTranscriptHandler.a$cls)});
  239. //>>excludeEnd("ctx");
  240. },
  241. //>>excludeStart("ide", pragmas.excludeIdeData);
  242. args: [],
  243. source: "cr\x0a\x09self transcripts do: [ :each | each cr ]",
  244. referencedClasses: [],
  245. //>>excludeEnd("ide");
  246. messageSends: ["do:", "transcripts", "cr"]
  247. }),
  248. $globals.HLTranscriptHandler.a$cls);
  249. $core.addMethod(
  250. $core.method({
  251. selector: "register:",
  252. protocol: "registration",
  253. fn: function (aTranscript){
  254. var self=this,$self=this;
  255. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  256. return $core.withContext(function($ctx1) {
  257. //>>excludeEnd("ctx");
  258. $recv($self._transcripts())._add_(aTranscript);
  259. return self;
  260. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  261. }, function($ctx1) {$ctx1.fill(self,"register:",{aTranscript:aTranscript},$globals.HLTranscriptHandler.a$cls)});
  262. //>>excludeEnd("ctx");
  263. },
  264. //>>excludeStart("ide", pragmas.excludeIdeData);
  265. args: ["aTranscript"],
  266. source: "register: aTranscript\x0a\x09self transcripts add: aTranscript",
  267. referencedClasses: [],
  268. //>>excludeEnd("ide");
  269. messageSends: ["add:", "transcripts"]
  270. }),
  271. $globals.HLTranscriptHandler.a$cls);
  272. $core.addMethod(
  273. $core.method({
  274. selector: "show:",
  275. protocol: "printing",
  276. fn: function (aString){
  277. var self=this,$self=this;
  278. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  279. return $core.withContext(function($ctx1) {
  280. //>>excludeEnd("ctx");
  281. $recv($self._transcripts())._do_((function(each){
  282. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  283. return $core.withContext(function($ctx2) {
  284. //>>excludeEnd("ctx");
  285. return $recv(each)._show_(aString);
  286. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  287. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)});
  288. //>>excludeEnd("ctx");
  289. }));
  290. return self;
  291. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  292. }, function($ctx1) {$ctx1.fill(self,"show:",{aString:aString},$globals.HLTranscriptHandler.a$cls)});
  293. //>>excludeEnd("ctx");
  294. },
  295. //>>excludeStart("ide", pragmas.excludeIdeData);
  296. args: ["aString"],
  297. source: "show: aString\x0a\x09self transcripts do: [ :each |\x0a\x09\x09each show: aString ]",
  298. referencedClasses: [],
  299. //>>excludeEnd("ide");
  300. messageSends: ["do:", "transcripts", "show:"]
  301. }),
  302. $globals.HLTranscriptHandler.a$cls);
  303. $core.addMethod(
  304. $core.method({
  305. selector: "transcripts",
  306. protocol: "accessing",
  307. fn: function (){
  308. var self=this,$self=this;
  309. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  310. return $core.withContext(function($ctx1) {
  311. //>>excludeEnd("ctx");
  312. var $1,$receiver;
  313. $1=$self["@transcripts"];
  314. if(($receiver = $1) == null || $receiver.a$nil){
  315. $self["@transcripts"]=$recv($globals.OrderedCollection)._new();
  316. return $self["@transcripts"];
  317. } else {
  318. return $1;
  319. }
  320. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  321. }, function($ctx1) {$ctx1.fill(self,"transcripts",{},$globals.HLTranscriptHandler.a$cls)});
  322. //>>excludeEnd("ctx");
  323. },
  324. //>>excludeStart("ide", pragmas.excludeIdeData);
  325. args: [],
  326. source: "transcripts\x0a\x09^ transcripts ifNil: [ transcripts := OrderedCollection new ]",
  327. referencedClasses: ["OrderedCollection"],
  328. //>>excludeEnd("ide");
  329. messageSends: ["ifNil:", "new"]
  330. }),
  331. $globals.HLTranscriptHandler.a$cls);
  332. $core.addMethod(
  333. $core.method({
  334. selector: "unregister:",
  335. protocol: "registration",
  336. fn: function (aTranscript){
  337. var self=this,$self=this;
  338. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  339. return $core.withContext(function($ctx1) {
  340. //>>excludeEnd("ctx");
  341. $recv($self._transcripts())._remove_(aTranscript);
  342. return self;
  343. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  344. }, function($ctx1) {$ctx1.fill(self,"unregister:",{aTranscript:aTranscript},$globals.HLTranscriptHandler.a$cls)});
  345. //>>excludeEnd("ctx");
  346. },
  347. //>>excludeStart("ide", pragmas.excludeIdeData);
  348. args: ["aTranscript"],
  349. source: "unregister: aTranscript\x0a\x09self transcripts remove: aTranscript",
  350. referencedClasses: [],
  351. //>>excludeEnd("ide");
  352. messageSends: ["remove:", "transcripts"]
  353. }),
  354. $globals.HLTranscriptHandler.a$cls);
  355. });