Helios-Transcript.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. define("helios/Helios-Transcript", ["amber/boot", "helios/Helios-Core", "amber_core/Kernel-Objects"], function($boot){
  2. var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;
  3. $core.addPackage('Helios-Transcript');
  4. $core.packages["Helios-Transcript"].transport = {"type":"amd","amdNamespace":"helios"};
  5. $core.addClass('HLTranscript', $globals.HLWidget, ['textarea'], 'Helios-Transcript');
  6. //>>excludeStart("ide", pragmas.excludeIdeData);
  7. $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.";
  8. //>>excludeEnd("ide");
  9. $core.addMethod(
  10. $core.method({
  11. selector: "clear",
  12. protocol: 'actions',
  13. fn: function (){
  14. var self=this;
  15. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  16. return $core.withContext(function($ctx1) {
  17. //>>excludeEnd("ctx");
  18. $recv($recv(self["@textarea"])._asJQuery())._text_("");
  19. return self;
  20. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  21. }, function($ctx1) {$ctx1.fill(self,"clear",{},$globals.HLTranscript)});
  22. //>>excludeEnd("ctx");
  23. },
  24. //>>excludeStart("ide", pragmas.excludeIdeData);
  25. args: [],
  26. source: "clear\x0a\x09textarea asJQuery text: ''",
  27. referencedClasses: [],
  28. //>>excludeEnd("ide");
  29. messageSends: ["text:", "asJQuery"]
  30. }),
  31. $globals.HLTranscript);
  32. $core.addMethod(
  33. $core.method({
  34. selector: "initialize",
  35. protocol: 'initialization',
  36. fn: function (){
  37. var self=this;
  38. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  39. return $core.withContext(function($ctx1) {
  40. //>>excludeEnd("ctx");
  41. (
  42. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  43. $ctx1.supercall = true,
  44. //>>excludeEnd("ctx");
  45. $globals.HLTranscript.superclass.fn.prototype._initialize.apply($recv(self), []));
  46. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  47. $ctx1.supercall = false;
  48. //>>excludeEnd("ctx");;
  49. self._register();
  50. return self;
  51. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  52. }, function($ctx1) {$ctx1.fill(self,"initialize",{},$globals.HLTranscript)});
  53. //>>excludeEnd("ctx");
  54. },
  55. //>>excludeStart("ide", pragmas.excludeIdeData);
  56. args: [],
  57. source: "initialize\x0a\x09super initialize.\x0a\x09self register",
  58. referencedClasses: [],
  59. //>>excludeEnd("ide");
  60. messageSends: ["initialize", "register"]
  61. }),
  62. $globals.HLTranscript);
  63. $core.addMethod(
  64. $core.method({
  65. selector: "register",
  66. protocol: 'registration',
  67. fn: function (){
  68. var self=this;
  69. function $HLTranscriptHandler(){return $globals.HLTranscriptHandler||(typeof HLTranscriptHandler=="undefined"?nil:HLTranscriptHandler)}
  70. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  71. return $core.withContext(function($ctx1) {
  72. //>>excludeEnd("ctx");
  73. $recv($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;
  93. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  94. return $core.withContext(function($ctx1) {
  95. //>>excludeEnd("ctx");
  96. var $1,$2;
  97. $1=$recv(html)._div();
  98. $recv($1)._class_("transcript");
  99. $2=$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;
  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.isNil){
  134. $1;
  135. } else {
  136. $recv($recv(self["@textarea"])._asJQuery())._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 asJQuery append: aString asString ]",
  146. referencedClasses: [],
  147. //>>excludeEnd("ide");
  148. messageSends: ["ifNotNil:", "append:", "asJQuery", "asString"]
  149. }),
  150. $globals.HLTranscript);
  151. $core.addMethod(
  152. $core.method({
  153. selector: "unregister",
  154. protocol: 'registration',
  155. fn: function (){
  156. var self=this;
  157. function $HLTranscriptHandler(){return $globals.HLTranscriptHandler||(typeof HLTranscriptHandler=="undefined"?nil:HLTranscriptHandler)}
  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.fn.prototype._unregister.apply($recv(self), []));
  166. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  167. $ctx1.supercall = false;
  168. //>>excludeEnd("ctx");;
  169. $recv($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.klass.iVarNames = ['transcripts'];
  188. $core.addMethod(
  189. $core.method({
  190. selector: "clear",
  191. protocol: 'printing',
  192. fn: function (){
  193. var 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.klass)});
  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.klass);
  219. $core.addMethod(
  220. $core.method({
  221. selector: "cr",
  222. protocol: 'printing',
  223. fn: function (){
  224. var 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.klass)});
  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.klass);
  250. $core.addMethod(
  251. $core.method({
  252. selector: "register:",
  253. protocol: 'registration',
  254. fn: function (aTranscript){
  255. var 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.klass)});
  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.klass);
  273. $core.addMethod(
  274. $core.method({
  275. selector: "show:",
  276. protocol: 'printing',
  277. fn: function (aString){
  278. var 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.klass)});
  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.klass);
  304. $core.addMethod(
  305. $core.method({
  306. selector: "transcripts",
  307. protocol: 'accessing',
  308. fn: function (){
  309. var self=this;
  310. function $OrderedCollection(){return $globals.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
  311. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  312. return $core.withContext(function($ctx1) {
  313. //>>excludeEnd("ctx");
  314. var $2,$1,$receiver;
  315. $2=self["@transcripts"];
  316. if(($receiver = $2) == null || $receiver.isNil){
  317. self["@transcripts"]=$recv($OrderedCollection())._new();
  318. $1=self["@transcripts"];
  319. } else {
  320. $1=$2;
  321. };
  322. return $1;
  323. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  324. }, function($ctx1) {$ctx1.fill(self,"transcripts",{},$globals.HLTranscriptHandler.klass)});
  325. //>>excludeEnd("ctx");
  326. },
  327. //>>excludeStart("ide", pragmas.excludeIdeData);
  328. args: [],
  329. source: "transcripts\x0a\x09^ transcripts ifNil: [ transcripts := OrderedCollection new ]",
  330. referencedClasses: ["OrderedCollection"],
  331. //>>excludeEnd("ide");
  332. messageSends: ["ifNil:", "new"]
  333. }),
  334. $globals.HLTranscriptHandler.klass);
  335. $core.addMethod(
  336. $core.method({
  337. selector: "unregister:",
  338. protocol: 'registration',
  339. fn: function (aTranscript){
  340. var self=this;
  341. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  342. return $core.withContext(function($ctx1) {
  343. //>>excludeEnd("ctx");
  344. $recv(self._transcripts())._remove_(aTranscript);
  345. return self;
  346. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  347. }, function($ctx1) {$ctx1.fill(self,"unregister:",{aTranscript:aTranscript},$globals.HLTranscriptHandler.klass)});
  348. //>>excludeEnd("ctx");
  349. },
  350. //>>excludeStart("ide", pragmas.excludeIdeData);
  351. args: ["aTranscript"],
  352. source: "unregister: aTranscript\x0a\x09self transcripts remove: aTranscript",
  353. referencedClasses: [],
  354. //>>excludeEnd("ide");
  355. messageSends: ["remove:", "transcripts"]
  356. }),
  357. $globals.HLTranscriptHandler.klass);
  358. });