Helios-Workspace.deploy.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922
  1. smalltalk.addPackage('Helios-Workspace', {});
  2. smalltalk.addClass('HLCodeModel', smalltalk.Object, ['announcer', 'environment', 'receiver'], 'Helios-Workspace');
  3. smalltalk.addMethod(
  4. "_announcer",
  5. smalltalk.method({
  6. selector: "announcer",
  7. fn: function () {
  8. var self = this;
  9. var $1;
  10. if (($receiver = self['@announcer']) == nil || $receiver == undefined) {
  11. $1 = smalltalk.send(self, "_initializeAnnouncer", []);
  12. } else {
  13. $1 = self['@announcer'];
  14. }
  15. return $1;
  16. }
  17. }),
  18. smalltalk.HLCodeModel);
  19. smalltalk.addMethod(
  20. "_doIt_",
  21. smalltalk.method({
  22. selector: "doIt:",
  23. fn: function (someCode) {
  24. var self = this;
  25. var $1;
  26. $1 = smalltalk.send(smalltalk.send(self, "_environment", []), "_eval_on_", [someCode, smalltalk.send(self, "_receiver", [])]);
  27. return $1;
  28. }
  29. }),
  30. smalltalk.HLCodeModel);
  31. smalltalk.addMethod(
  32. "_environment",
  33. smalltalk.method({
  34. selector: "environment",
  35. fn: function () {
  36. var self = this;
  37. var $1;
  38. if (($receiver = self['@environment']) == nil || $receiver == undefined) {
  39. $1 = smalltalk.send(self, "_initializeEnvironment", []);
  40. } else {
  41. $1 = self['@environment'];
  42. }
  43. return $1;
  44. }
  45. }),
  46. smalltalk.HLCodeModel);
  47. smalltalk.addMethod(
  48. "_environment_",
  49. smalltalk.method({
  50. selector: "environment:",
  51. fn: function (anEnvironment) {
  52. var self = this;
  53. self['@environment'] = anEnvironment;
  54. return self;
  55. }
  56. }),
  57. smalltalk.HLCodeModel);
  58. smalltalk.addMethod(
  59. "_initializeAnnouncer",
  60. smalltalk.method({
  61. selector: "initializeAnnouncer",
  62. fn: function () {
  63. var self = this;
  64. var $1;
  65. self['@announcer'] = smalltalk.send(smalltalk.Announcer || Announcer, "_new", []);
  66. $1 = self['@announcer'];
  67. return $1;
  68. }
  69. }),
  70. smalltalk.HLCodeModel);
  71. smalltalk.addMethod(
  72. "_initializeEnvironment",
  73. smalltalk.method({
  74. selector: "initializeEnvironment",
  75. fn: function () {
  76. var self = this;
  77. var $1;
  78. self['@environment'] = smalltalk.send(smalltalk.Smalltalk || Smalltalk, "_current", []);
  79. $1 = self['@environment'];
  80. return $1;
  81. }
  82. }),
  83. smalltalk.HLCodeModel);
  84. smalltalk.addMethod(
  85. "_initializeReceiver",
  86. smalltalk.method({
  87. selector: "initializeReceiver",
  88. fn: function () {
  89. var self = this;
  90. var $1;
  91. self['@receiver'] = smalltalk.send(smalltalk.DoIt || DoIt, "_new", []);
  92. $1 = self['@receiver'];
  93. return $1;
  94. }
  95. }),
  96. smalltalk.HLCodeModel);
  97. smalltalk.addMethod(
  98. "_receiver",
  99. smalltalk.method({
  100. selector: "receiver",
  101. fn: function () {
  102. var self = this;
  103. return self['@receiver'];
  104. }
  105. }),
  106. smalltalk.HLCodeModel);
  107. smalltalk.addMethod(
  108. "_receiver_",
  109. smalltalk.method({
  110. selector: "receiver:",
  111. fn: function (anObject) {
  112. var self = this;
  113. self['@receiver'] = anObject;
  114. return self;
  115. }
  116. }),
  117. smalltalk.HLCodeModel);
  118. smalltalk.addMethod(
  119. "_subscribe_",
  120. smalltalk.method({
  121. selector: "subscribe:",
  122. fn: function (aWidget) {
  123. var self = this;
  124. smalltalk.send(aWidget, "_subscribeTo_", [smalltalk.send(self, "_announcer", [])]);
  125. return self;
  126. }
  127. }),
  128. smalltalk.HLCodeModel);
  129. smalltalk.addMethod(
  130. "_on_",
  131. smalltalk.method({
  132. selector: "on:",
  133. fn: function (anEnvironment) {
  134. var self = this;
  135. var $2, $3, $1;
  136. $2 = smalltalk.send(self, "_new", []);
  137. smalltalk.send($2, "_environment_", [anEnvironment]);
  138. $3 = smalltalk.send($2, "_yourself", []);
  139. $1 = $3;
  140. return $1;
  141. }
  142. }),
  143. smalltalk.HLCodeModel.klass);
  144. smalltalk.addClass('HLCodeWidget', smalltalk.HLWidget, ['model', 'wrapper', 'code', 'editor'], 'Helios-Workspace');
  145. smalltalk.addMethod(
  146. "_announcer",
  147. smalltalk.method({
  148. selector: "announcer",
  149. fn: function () {
  150. var self = this;
  151. var $1;
  152. $1 = smalltalk.send(smalltalk.send(self, "_model", []), "_announcer", []);
  153. return $1;
  154. }
  155. }),
  156. smalltalk.HLCodeWidget);
  157. smalltalk.addMethod(
  158. "_clear",
  159. smalltalk.method({
  160. selector: "clear",
  161. fn: function () {
  162. var self = this;
  163. smalltalk.send(self, "_val_", [""]);
  164. return self;
  165. }
  166. }),
  167. smalltalk.HLCodeWidget);
  168. smalltalk.addMethod(
  169. "_currentLine",
  170. smalltalk.method({
  171. selector: "currentLine",
  172. fn: function () {
  173. var self = this;
  174. var $1;
  175. $1 = smalltalk.send(self['@editor'], "_getLine_", [smalltalk.send(smalltalk.send(self['@editor'], "_getCursor", []), "_line", [])]);
  176. return $1;
  177. }
  178. }),
  179. smalltalk.HLCodeWidget);
  180. smalltalk.addMethod(
  181. "_currentLineOrSelection",
  182. smalltalk.method({
  183. selector: "currentLineOrSelection",
  184. fn: function () {
  185. var self = this;
  186. var $2, $1;
  187. $2 = smalltalk.send(self['@editor'], "_somethingSelected", []);
  188. if (smalltalk.assert($2)) {
  189. $1 = smalltalk.send(self, "_selection", []);
  190. } else {
  191. $1 = smalltalk.send(self, "_currentLine", []);
  192. }
  193. return $1;
  194. }
  195. }),
  196. smalltalk.HLCodeWidget);
  197. smalltalk.addMethod(
  198. "_doIt",
  199. smalltalk.method({
  200. selector: "doIt",
  201. fn: function () {
  202. var self = this;
  203. var result;
  204. smalltalk.send(smalltalk.send(self, "_announcer", []), "_announce_", [smalltalk.send(smalltalk.HLDoItRequested || HLDoItRequested, "_on_", [self['@model']])]);
  205. result = smalltalk.send(self['@model'], "_doIt_", [smalltalk.send(self, "_currentLineOrSelection", [])]);
  206. smalltalk.send(smalltalk.send(self, "_announcer", []), "_announce_", [smalltalk.send(smalltalk.HLDoItExecuted || HLDoItExecuted, "_on_", [self['@model']])]);
  207. return result;
  208. }
  209. }),
  210. smalltalk.HLCodeWidget);
  211. smalltalk.addMethod(
  212. "_editor",
  213. smalltalk.method({
  214. selector: "editor",
  215. fn: function () {
  216. var self = this;
  217. return self['@editor'];
  218. }
  219. }),
  220. smalltalk.HLCodeWidget);
  221. smalltalk.addMethod(
  222. "_focus",
  223. smalltalk.method({
  224. selector: "focus",
  225. fn: function () {
  226. var self = this;
  227. smalltalk.send(smalltalk.send(self, "_editor", []), "_focus", []);
  228. return self;
  229. }
  230. }),
  231. smalltalk.HLCodeWidget);
  232. smalltalk.addMethod(
  233. "_inspectIt",
  234. smalltalk.method({
  235. selector: "inspectIt",
  236. fn: function () {
  237. var self = this;
  238. var newInspector;
  239. smalltalk.send(smalltalk.send(self, "_announcer", []), "_announce_", [smalltalk.send(smalltalk.HLInspectItRequested || HLInspectItRequested, "_on_", [self['@model']])]);
  240. newInspector = smalltalk.send(self, "_makeInspectorOn_", [smalltalk.send(self, "_doIt", [])]);
  241. smalltalk.send(newInspector, "_open", []);
  242. return self;
  243. }
  244. }),
  245. smalltalk.HLCodeWidget);
  246. smalltalk.addMethod(
  247. "_makeInspectorOn_",
  248. smalltalk.method({
  249. selector: "makeInspectorOn:",
  250. fn: function (anObject) {
  251. var self = this;
  252. var $2, $3, $1;
  253. $2 = smalltalk.send(smalltalk.HLInspector || HLInspector, "_new", []);
  254. smalltalk.send($2, "_inspect_", [anObject]);
  255. $3 = smalltalk.send($2, "_yourself", []);
  256. $1 = $3;
  257. return $1;
  258. }
  259. }),
  260. smalltalk.HLCodeWidget);
  261. smalltalk.addMethod(
  262. "_model",
  263. smalltalk.method({
  264. selector: "model",
  265. fn: function () {
  266. var self = this;
  267. return self['@model'];
  268. }
  269. }),
  270. smalltalk.HLCodeWidget);
  271. smalltalk.addMethod(
  272. "_model_",
  273. smalltalk.method({
  274. selector: "model:",
  275. fn: function (aModel) {
  276. var self = this;
  277. self['@model'] = aModel;
  278. return self;
  279. }
  280. }),
  281. smalltalk.HLCodeWidget);
  282. smalltalk.addMethod(
  283. "_observeWrapper",
  284. smalltalk.method({
  285. selector: "observeWrapper",
  286. fn: function () {
  287. var self = this;
  288. smalltalk.send(self['@wrapper'], "_onKeyDown_", [function (e) {return smalltalk.send(self, "_onKeyDown_", [e]);}]);
  289. return self;
  290. }
  291. }),
  292. smalltalk.HLCodeWidget);
  293. smalltalk.addMethod(
  294. "_onDoIt",
  295. smalltalk.method({
  296. selector: "onDoIt",
  297. fn: function () {
  298. var self = this;
  299. smalltalk.send(self, "_doIt", []);
  300. return self;
  301. }
  302. }),
  303. smalltalk.HLCodeWidget);
  304. smalltalk.addMethod(
  305. "_onInspectIt",
  306. smalltalk.method({
  307. selector: "onInspectIt",
  308. fn: function () {
  309. var self = this;
  310. smalltalk.send(self, "_inspectIt", []);
  311. return self;
  312. }
  313. }),
  314. smalltalk.HLCodeWidget);
  315. smalltalk.addMethod(
  316. "_onKeyDown_",
  317. smalltalk.method({
  318. selector: "onKeyDown:",
  319. fn: function (anEvent) {
  320. var self = this;
  321. if (anEvent.ctrlKey) {
  322. if (anEvent.keyCode === 80) {
  323. self._onPrintIt();
  324. anEvent.preventDefault();
  325. return false;
  326. }
  327. if (anEvent.keyCode === 68) {
  328. self._onDoIt();
  329. anEvent.preventDefault();
  330. return false;
  331. }
  332. if (anEvent.keyCode === 73) {
  333. self._onInspectIt();
  334. anEvent.preventDefault();
  335. return false;
  336. }
  337. }
  338. return self;
  339. }
  340. }),
  341. smalltalk.HLCodeWidget);
  342. smalltalk.addMethod(
  343. "_onPrintIt",
  344. smalltalk.method({
  345. selector: "onPrintIt",
  346. fn: function () {
  347. var self = this;
  348. smalltalk.send(self, "_printIt", []);
  349. return self;
  350. }
  351. }),
  352. smalltalk.HLCodeWidget);
  353. smalltalk.addMethod(
  354. "_print_",
  355. smalltalk.method({
  356. selector: "print:",
  357. fn: function (aString) {
  358. var self = this;
  359. var start;
  360. var stop;
  361. start = smalltalk.send(smalltalk.HashedCollection || HashedCollection, "_new", []);
  362. stop = smalltalk.send(smalltalk.HashedCollection || HashedCollection, "_new", []);
  363. smalltalk.send(start, "_at_put_", ["line", smalltalk.send(smalltalk.send(self['@editor'], "_getCursor_", [false]), "_line", [])]);
  364. smalltalk.send(start, "_at_put_", ["ch", smalltalk.send(smalltalk.send(self['@editor'], "_getCursor_", [false]), "_ch", [])]);
  365. smalltalk.send(stop, "_at_put_", ["line", smalltalk.send(start, "_at_", ["line"])]);
  366. smalltalk.send(stop, "_at_put_", ["ch", smalltalk.send(smalltalk.send(smalltalk.send(start, "_at_", ["ch"]), "__plus", [smalltalk.send(aString, "_size", [])]), "__plus", [2])]);
  367. smalltalk.send(self['@editor'], "_replaceSelection_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self['@editor'], "_getSelection", []), "__comma", [" "]), "__comma", [aString]), "__comma", [" "])]);
  368. smalltalk.send(self['@editor'], "_setCursor_", [smalltalk.send(self['@editor'], "_getCursor_", [true])]);
  369. smalltalk.send(self['@editor'], "_setSelection_end_", [stop, start]);
  370. return self;
  371. }
  372. }),
  373. smalltalk.HLCodeWidget);
  374. smalltalk.addMethod(
  375. "_printIt",
  376. smalltalk.method({
  377. selector: "printIt",
  378. fn: function () {
  379. var self = this;
  380. var result;
  381. result = smalltalk.send(self, "_doIt", []);
  382. smalltalk.send(smalltalk.send(self, "_announcer", []), "_announce_", [smalltalk.send(smalltalk.HLPrintItRequested || HLPrintItRequested, "_on_", [self['@model']])]);
  383. smalltalk.send(self, "_print_", [smalltalk.send(result, "_printString", [])]);
  384. smalltalk.send(self, "_focus", []);
  385. return self;
  386. }
  387. }),
  388. smalltalk.HLCodeWidget);
  389. smalltalk.addMethod(
  390. "_receiver",
  391. smalltalk.method({
  392. selector: "receiver",
  393. fn: function () {
  394. var self = this;
  395. var $1;
  396. $1 = smalltalk.send(smalltalk.send(self, "_model", []), "_receiver", []);
  397. return $1;
  398. }
  399. }),
  400. smalltalk.HLCodeWidget);
  401. smalltalk.addMethod(
  402. "_receiver_",
  403. smalltalk.method({
  404. selector: "receiver:",
  405. fn: function (anObject) {
  406. var self = this;
  407. smalltalk.send(smalltalk.send(self, "_model", []), "_receiver_", [anObject]);
  408. return self;
  409. }
  410. }),
  411. smalltalk.HLCodeWidget);
  412. smalltalk.addMethod(
  413. "_renderOn_",
  414. smalltalk.method({
  415. selector: "renderOn:",
  416. fn: function (html) {
  417. var self = this;
  418. self['@wrapper'] = smalltalk.send(smalltalk.send(html, "_div", []), "_class_", ["code"]);
  419. smalltalk.send(smalltalk.send(smalltalk.send(self, "_observeWrapper", []), "_wrapper", []), "_with_", [function () {self['@code'] = smalltalk.send(html, "_textarea", []);return self['@code'];}]);
  420. smalltalk.send(self, "_setEditorOn_", [smalltalk.send(self['@code'], "_element", [])]);
  421. return self;
  422. }
  423. }),
  424. smalltalk.HLCodeWidget);
  425. smalltalk.addMethod(
  426. "_selection",
  427. smalltalk.method({
  428. selector: "selection",
  429. fn: function () {
  430. var self = this;
  431. var $1;
  432. $1 = smalltalk.send(self['@editor'], "_getSelection", []);
  433. return $1;
  434. }
  435. }),
  436. smalltalk.HLCodeWidget);
  437. smalltalk.addMethod(
  438. "_selectionEnd",
  439. smalltalk.method({
  440. selector: "selectionEnd",
  441. fn: function () {
  442. var self = this;
  443. var $1;
  444. $1 = smalltalk.send(smalltalk.send(self['@code'], "_element", []), "_selectionEnd", []);
  445. return $1;
  446. }
  447. }),
  448. smalltalk.HLCodeWidget);
  449. smalltalk.addMethod(
  450. "_selectionEnd_",
  451. smalltalk.method({
  452. selector: "selectionEnd:",
  453. fn: function (anInteger) {
  454. var self = this;
  455. smalltalk.send(smalltalk.send(self['@code'], "_element", []), "_selectionEnd_", [anInteger]);
  456. return self;
  457. }
  458. }),
  459. smalltalk.HLCodeWidget);
  460. smalltalk.addMethod(
  461. "_selectionStart",
  462. smalltalk.method({
  463. selector: "selectionStart",
  464. fn: function () {
  465. var self = this;
  466. var $1;
  467. $1 = smalltalk.send(smalltalk.send(self['@code'], "_element", []), "_selectionStart", []);
  468. return $1;
  469. }
  470. }),
  471. smalltalk.HLCodeWidget);
  472. smalltalk.addMethod(
  473. "_selectionStart_",
  474. smalltalk.method({
  475. selector: "selectionStart:",
  476. fn: function (anInteger) {
  477. var self = this;
  478. smalltalk.send(smalltalk.send(self['@code'], "_element", []), "_selectionStart_", [anInteger]);
  479. return self;
  480. }
  481. }),
  482. smalltalk.HLCodeWidget);
  483. smalltalk.addMethod(
  484. "_setEditorOn_",
  485. smalltalk.method({
  486. selector: "setEditorOn:",
  487. fn: function (aTextarea) {
  488. var self = this;
  489. self['@editor'] = CodeMirror.fromTextArea(aTextarea, {theme: "amber", lineNumbers: true, enterMode: "flat", matchBrackets: true, electricChars: false});
  490. return self;
  491. }
  492. }),
  493. smalltalk.HLCodeWidget);
  494. smalltalk.addMethod(
  495. "_val",
  496. smalltalk.method({
  497. selector: "val",
  498. fn: function () {
  499. var self = this;
  500. var $1;
  501. $1 = smalltalk.send(self['@code'], "_getValue", []);
  502. return $1;
  503. }
  504. }),
  505. smalltalk.HLCodeWidget);
  506. smalltalk.addMethod(
  507. "_val_",
  508. smalltalk.method({
  509. selector: "val:",
  510. fn: function (aString) {
  511. var self = this;
  512. smalltalk.send(self['@code'], "_setValue_", [aString]);
  513. return self;
  514. }
  515. }),
  516. smalltalk.HLCodeWidget);
  517. smalltalk.addMethod(
  518. "_wrapper",
  519. smalltalk.method({
  520. selector: "wrapper",
  521. fn: function () {
  522. var self = this;
  523. return self['@wrapper'];
  524. }
  525. }),
  526. smalltalk.HLCodeWidget);
  527. smalltalk.addClass('HLWorkspace', smalltalk.HLWidget, ['model', 'code'], 'Helios-Workspace');
  528. smalltalk.addMethod(
  529. "_code",
  530. smalltalk.method({
  531. selector: "code",
  532. fn: function () {
  533. var self = this;
  534. var $1;
  535. if (($receiver = self['@code']) == nil || $receiver == undefined) {
  536. $1 = smalltalk.send(self, "_initializeCode", []);
  537. } else {
  538. $1 = self['@code'];
  539. }
  540. return $1;
  541. }
  542. }),
  543. smalltalk.HLWorkspace);
  544. smalltalk.addMethod(
  545. "_ensureModel",
  546. smalltalk.method({
  547. selector: "ensureModel",
  548. fn: function () {
  549. var self = this;
  550. if (($receiver = self['@model']) == nil || $receiver == undefined) {
  551. smalltalk.send(self, "_model_", [smalltalk.send(self, "_model", [])]);
  552. } else {
  553. self['@model'];
  554. }
  555. return self;
  556. }
  557. }),
  558. smalltalk.HLWorkspace);
  559. smalltalk.addMethod(
  560. "_initializeCode",
  561. smalltalk.method({
  562. selector: "initializeCode",
  563. fn: function () {
  564. var self = this;
  565. var $1;
  566. self['@code'] = smalltalk.send(self, "_makeCode", []);
  567. $1 = self['@code'];
  568. return $1;
  569. }
  570. }),
  571. smalltalk.HLWorkspace);
  572. smalltalk.addMethod(
  573. "_initializeModel",
  574. smalltalk.method({
  575. selector: "initializeModel",
  576. fn: function () {
  577. var self = this;
  578. var $1;
  579. self['@model'] = smalltalk.send(smalltalk.HLWorkspaceModel || HLWorkspaceModel, "_new", []);
  580. $1 = self['@model'];
  581. return $1;
  582. }
  583. }),
  584. smalltalk.HLWorkspace);
  585. smalltalk.addMethod(
  586. "_makeCode",
  587. smalltalk.method({
  588. selector: "makeCode",
  589. fn: function () {
  590. var self = this;
  591. var $2, $3, $1;
  592. $2 = smalltalk.send(smalltalk.HLCodeWidget || HLCodeWidget, "_new", []);
  593. smalltalk.send($2, "_model_", [smalltalk.send(self['@model'], "_code", [])]);
  594. $3 = smalltalk.send($2, "_yourself", []);
  595. $1 = $3;
  596. return $1;
  597. }
  598. }),
  599. smalltalk.HLWorkspace);
  600. smalltalk.addMethod(
  601. "_model",
  602. smalltalk.method({
  603. selector: "model",
  604. fn: function () {
  605. var self = this;
  606. var $1;
  607. if (($receiver = self['@model']) == nil || $receiver == undefined) {
  608. $1 = smalltalk.send(self, "_initializeModel", []);
  609. } else {
  610. $1 = self['@model'];
  611. }
  612. return $1;
  613. }
  614. }),
  615. smalltalk.HLWorkspace);
  616. smalltalk.addMethod(
  617. "_model_",
  618. smalltalk.method({
  619. selector: "model:",
  620. fn: function (aModel) {
  621. var self = this;
  622. self['@model'] = aModel;
  623. smalltalk.send(smalltalk.send(self, "_code", []), "_model_", [smalltalk.send(aModel, "_code", [])]);
  624. smalltalk.send(self, "_observeCode", []);
  625. return self;
  626. }
  627. }),
  628. smalltalk.HLWorkspace);
  629. smalltalk.addMethod(
  630. "_observeCode",
  631. smalltalk.method({
  632. selector: "observeCode",
  633. fn: function () {
  634. var self = this;
  635. return self;
  636. }
  637. }),
  638. smalltalk.HLWorkspace);
  639. smalltalk.addMethod(
  640. "_onDoIt",
  641. smalltalk.method({
  642. selector: "onDoIt",
  643. fn: function () {
  644. var self = this;
  645. return self;
  646. }
  647. }),
  648. smalltalk.HLWorkspace);
  649. smalltalk.addMethod(
  650. "_onInspectIt",
  651. smalltalk.method({
  652. selector: "onInspectIt",
  653. fn: function () {
  654. var self = this;
  655. return self;
  656. }
  657. }),
  658. smalltalk.HLWorkspace);
  659. smalltalk.addMethod(
  660. "_onPrintIt",
  661. smalltalk.method({
  662. selector: "onPrintIt",
  663. fn: function () {
  664. var self = this;
  665. return self;
  666. }
  667. }),
  668. smalltalk.HLWorkspace);
  669. smalltalk.addMethod(
  670. "_renderContentOn_",
  671. smalltalk.method({
  672. selector: "renderContentOn:",
  673. fn: function (html) {
  674. var self = this;
  675. smalltalk.send(self, "_ensureModel", []);
  676. smalltalk.send(html, "_with_", [smalltalk.send(self, "_code", [])]);
  677. return self;
  678. }
  679. }),
  680. smalltalk.HLWorkspace);
  681. smalltalk.addMethod(
  682. "_canBeOpenAsTab",
  683. smalltalk.method({
  684. selector: "canBeOpenAsTab",
  685. fn: function () {
  686. var self = this;
  687. return true;
  688. }
  689. }),
  690. smalltalk.HLWorkspace.klass);
  691. smalltalk.addMethod(
  692. "_tabLabel",
  693. smalltalk.method({
  694. selector: "tabLabel",
  695. fn: function () {
  696. var self = this;
  697. return "Workspace";
  698. }
  699. }),
  700. smalltalk.HLWorkspace.klass);
  701. smalltalk.addMethod(
  702. "_tabPriority",
  703. smalltalk.method({
  704. selector: "tabPriority",
  705. fn: function () {
  706. var self = this;
  707. return 10;
  708. }
  709. }),
  710. smalltalk.HLWorkspace.klass);
  711. smalltalk.addClass('HLWorkspaceModel', smalltalk.Object, ['announcer', 'environment', 'code'], 'Helios-Workspace');
  712. smalltalk.addMethod(
  713. "_announcer",
  714. smalltalk.method({
  715. selector: "announcer",
  716. fn: function () {
  717. var self = this;
  718. var $1;
  719. if (($receiver = self['@announcer']) == nil || $receiver == undefined) {
  720. $1 = smalltalk.send(self, "_initializeAnnouncer", []);
  721. } else {
  722. $1 = self['@announcer'];
  723. }
  724. return $1;
  725. }
  726. }),
  727. smalltalk.HLWorkspaceModel);
  728. smalltalk.addMethod(
  729. "_code",
  730. smalltalk.method({
  731. selector: "code",
  732. fn: function () {
  733. var self = this;
  734. var $1;
  735. if (($receiver = self['@code']) == nil || $receiver == undefined) {
  736. $1 = smalltalk.send(self, "_initializeCode", []);
  737. } else {
  738. $1 = self['@code'];
  739. }
  740. return $1;
  741. }
  742. }),
  743. smalltalk.HLWorkspaceModel);
  744. smalltalk.addMethod(
  745. "_environment",
  746. smalltalk.method({
  747. selector: "environment",
  748. fn: function () {
  749. var self = this;
  750. var $1;
  751. if (($receiver = self['@environment']) == nil || $receiver == undefined) {
  752. $1 = smalltalk.send(smalltalk.send(smalltalk.HLManager || HLManager, "_current", []), "_environment", []);
  753. } else {
  754. $1 = self['@environment'];
  755. }
  756. return $1;
  757. }
  758. }),
  759. smalltalk.HLWorkspaceModel);
  760. smalltalk.addMethod(
  761. "_environment_",
  762. smalltalk.method({
  763. selector: "environment:",
  764. fn: function (anEnvironment) {
  765. var self = this;
  766. self['@environment'] = anEnvironment;
  767. return self;
  768. }
  769. }),
  770. smalltalk.HLWorkspaceModel);
  771. smalltalk.addMethod(
  772. "_initializeAnnouncer",
  773. smalltalk.method({
  774. selector: "initializeAnnouncer",
  775. fn: function () {
  776. var self = this;
  777. var $1;
  778. self['@announcer'] = smalltalk.send(smalltalk.Announcer || Announcer, "_new", []);
  779. $1 = self['@announcer'];
  780. return $1;
  781. }
  782. }),
  783. smalltalk.HLWorkspaceModel);
  784. smalltalk.addMethod(
  785. "_initializeCode",
  786. smalltalk.method({
  787. selector: "initializeCode",
  788. fn: function () {
  789. var self = this;
  790. var $1;
  791. self['@code'] = smalltalk.send(smalltalk.HLCodeModel || HLCodeModel, "_on_", [smalltalk.send(self, "_environment", [])]);
  792. $1 = self['@code'];
  793. return $1;
  794. }
  795. }),
  796. smalltalk.HLWorkspaceModel);
  797. smalltalk.addMethod(
  798. "_onKeyDown_",
  799. smalltalk.method({
  800. selector: "onKeyDown:",
  801. fn: function (anEvent) {
  802. var self = this;
  803. if (anEvent.ctrlKey) {
  804. if (anEvent.keyCode === 80) {
  805. self._printIt();
  806. anEvent.preventDefault();
  807. return false;
  808. }
  809. if (anEvent.keyCode === 68) {
  810. self._doIt();
  811. anEvent.preventDefault();
  812. return false;
  813. }
  814. if (anEvent.keyCode === 73) {
  815. self._inspectIt();
  816. anEvent.preventDefault();
  817. return false;
  818. }
  819. }
  820. return self;
  821. }
  822. }),
  823. smalltalk.HLWorkspaceModel);
  824. smalltalk.addMethod(
  825. "_subscribe_",
  826. smalltalk.method({
  827. selector: "subscribe:",
  828. fn: function (aWidget) {
  829. var self = this;
  830. smalltalk.send(aWidget, "_subscribeTo_", [smalltalk.send(self, "_announcer", [])]);
  831. return self;
  832. }
  833. }),
  834. smalltalk.HLWorkspaceModel);
  835. smalltalk.addMethod(
  836. "_on_",
  837. smalltalk.method({
  838. selector: "on:",
  839. fn: function (anEnvironment) {
  840. var self = this;
  841. var $2, $3, $1;
  842. $2 = smalltalk.send(self, "_new", []);
  843. smalltalk.send($2, "_environment_", [anEnvironment]);
  844. $3 = smalltalk.send($2, "_yourself", []);
  845. $1 = $3;
  846. return $1;
  847. }
  848. }),
  849. smalltalk.HLWorkspaceModel.klass);