Helios-Transcript.js 12 KB

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