Helios-Workspace.deploy.js 20 KB

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