Helios-Workspace.deploy.js 19 KB

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