1
0

Helios-Workspace.js 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266
  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. category: 'accessing',
  8. fn: function (){
  9. var self=this;
  10. var $1;
  11. if(($receiver = self["@announcer"]) == nil || $receiver == undefined){
  12. $1=smalltalk.send(self,"_initializeAnnouncer",[]);
  13. } else {
  14. $1=self["@announcer"];
  15. };
  16. return $1;
  17. },
  18. args: [],
  19. source: "announcer\x0a\x09^ announcer ifNil: [ self initializeAnnouncer ]",
  20. messageSends: ["ifNil:", "initializeAnnouncer"],
  21. referencedClasses: []
  22. }),
  23. smalltalk.HLCodeModel);
  24. smalltalk.addMethod(
  25. "_doIt_do_",
  26. smalltalk.method({
  27. selector: "doIt:do:",
  28. category: 'actions',
  29. fn: function (someCode,aReaction){
  30. var self=this;
  31. var result;
  32. result=smalltalk.send(smalltalk.send(self,"_environment",[]),"_eval_on_",[someCode,smalltalk.send(self,"_receiver",[])]);
  33. smalltalk.send(aReaction,"_value_",[result]);
  34. return result;
  35. },
  36. args: ["someCode", "aReaction"],
  37. source: "doIt: someCode do: aReaction\x0a\x0a\x09| result |\x0a result := self environment eval: someCode on: self receiver.\x0a\x09aReaction value: result.\x0a ^result",
  38. messageSends: ["eval:on:", "receiver", "environment", "value:"],
  39. referencedClasses: []
  40. }),
  41. smalltalk.HLCodeModel);
  42. smalltalk.addMethod(
  43. "_environment",
  44. smalltalk.method({
  45. selector: "environment",
  46. category: 'accessing',
  47. fn: function (){
  48. var self=this;
  49. var $1;
  50. if(($receiver = self["@environment"]) == nil || $receiver == undefined){
  51. $1=smalltalk.send(self,"_initializeEnvironment",[]);
  52. } else {
  53. $1=self["@environment"];
  54. };
  55. return $1;
  56. },
  57. args: [],
  58. source: "environment\x0a\x09^ environment ifNil: [ self initializeEnvironment]",
  59. messageSends: ["ifNil:", "initializeEnvironment"],
  60. referencedClasses: []
  61. }),
  62. smalltalk.HLCodeModel);
  63. smalltalk.addMethod(
  64. "_environment_",
  65. smalltalk.method({
  66. selector: "environment:",
  67. category: 'accessing',
  68. fn: function (anEnvironment){
  69. var self=this;
  70. self["@environment"]=anEnvironment;
  71. return self},
  72. args: ["anEnvironment"],
  73. source: "environment: anEnvironment\x0a\x09environment := anEnvironment",
  74. messageSends: [],
  75. referencedClasses: []
  76. }),
  77. smalltalk.HLCodeModel);
  78. smalltalk.addMethod(
  79. "_initializeAnnouncer",
  80. smalltalk.method({
  81. selector: "initializeAnnouncer",
  82. category: 'initialization',
  83. fn: function (){
  84. var self=this;
  85. var $1;
  86. self["@announcer"]=smalltalk.send((smalltalk.Announcer || Announcer),"_new",[]);
  87. $1=self["@announcer"];
  88. return $1;
  89. },
  90. args: [],
  91. source: "initializeAnnouncer\x0a\x09^ announcer := Announcer new",
  92. messageSends: ["new"],
  93. referencedClasses: ["Announcer"]
  94. }),
  95. smalltalk.HLCodeModel);
  96. smalltalk.addMethod(
  97. "_initializeEnvironment",
  98. smalltalk.method({
  99. selector: "initializeEnvironment",
  100. category: 'initialization',
  101. fn: function (){
  102. var self=this;
  103. var $1;
  104. self["@environment"]=smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]);
  105. $1=self["@environment"];
  106. return $1;
  107. },
  108. args: [],
  109. source: "initializeEnvironment\x0a\x09^ environment := Smalltalk current ",
  110. messageSends: ["current"],
  111. referencedClasses: ["Smalltalk"]
  112. }),
  113. smalltalk.HLCodeModel);
  114. smalltalk.addMethod(
  115. "_initializeReceiver",
  116. smalltalk.method({
  117. selector: "initializeReceiver",
  118. category: 'initialization',
  119. fn: function (){
  120. var self=this;
  121. var $1;
  122. self["@receiver"]=smalltalk.send((smalltalk.DoIt || DoIt),"_new",[]);
  123. $1=self["@receiver"];
  124. return $1;
  125. },
  126. args: [],
  127. source: "initializeReceiver\x0a\x09^receiver := DoIt new",
  128. messageSends: ["new"],
  129. referencedClasses: ["DoIt"]
  130. }),
  131. smalltalk.HLCodeModel);
  132. smalltalk.addMethod(
  133. "_receiver",
  134. smalltalk.method({
  135. selector: "receiver",
  136. category: 'accessing',
  137. fn: function (){
  138. var self=this;
  139. return self["@receiver"];
  140. },
  141. args: [],
  142. source: "receiver\x0a\x09^ receiver",
  143. messageSends: [],
  144. referencedClasses: []
  145. }),
  146. smalltalk.HLCodeModel);
  147. smalltalk.addMethod(
  148. "_receiver_",
  149. smalltalk.method({
  150. selector: "receiver:",
  151. category: 'accessing',
  152. fn: function (anObject){
  153. var self=this;
  154. self["@receiver"]=anObject;
  155. return self},
  156. args: ["anObject"],
  157. source: "receiver: anObject\x0a\x09receiver := anObject",
  158. messageSends: [],
  159. referencedClasses: []
  160. }),
  161. smalltalk.HLCodeModel);
  162. smalltalk.addMethod(
  163. "_subscribe_",
  164. smalltalk.method({
  165. selector: "subscribe:",
  166. category: 'actions',
  167. fn: function (aWidget){
  168. var self=this;
  169. smalltalk.send(aWidget,"_subscribeTo_",[smalltalk.send(self,"_announcer",[])]);
  170. return self},
  171. args: ["aWidget"],
  172. source: "subscribe: aWidget\x0a\x09aWidget subscribeTo: self announcer",
  173. messageSends: ["subscribeTo:", "announcer"],
  174. referencedClasses: []
  175. }),
  176. smalltalk.HLCodeModel);
  177. smalltalk.addMethod(
  178. "_on_",
  179. smalltalk.method({
  180. selector: "on:",
  181. category: 'actions',
  182. fn: function (anEnvironment){
  183. var self=this;
  184. var $2,$3,$1;
  185. $2=smalltalk.send(self,"_new",[]);
  186. smalltalk.send($2,"_environment_",[anEnvironment]);
  187. $3=smalltalk.send($2,"_yourself",[]);
  188. $1=$3;
  189. return $1;
  190. },
  191. args: ["anEnvironment"],
  192. source: "on: anEnvironment\x0a\x0a\x09^ self new\x0a \x09environment: anEnvironment;\x0a yourself",
  193. messageSends: ["environment:", "new", "yourself"],
  194. referencedClasses: []
  195. }),
  196. smalltalk.HLCodeModel.klass);
  197. smalltalk.addClass('HLCodeWidget', smalltalk.HLWidget, ['model', 'wrapper', 'code', 'editor', 'doItReaction'], 'Helios-Workspace');
  198. smalltalk.addMethod(
  199. "_announcer",
  200. smalltalk.method({
  201. selector: "announcer",
  202. category: 'accessing',
  203. fn: function (){
  204. var self=this;
  205. var $1;
  206. $1=smalltalk.send(smalltalk.send(self,"_model",[]),"_announcer",[]);
  207. return $1;
  208. },
  209. args: [],
  210. source: "announcer\x0a\x09^ self model announcer",
  211. messageSends: ["announcer", "model"],
  212. referencedClasses: []
  213. }),
  214. smalltalk.HLCodeWidget);
  215. smalltalk.addMethod(
  216. "_clear",
  217. smalltalk.method({
  218. selector: "clear",
  219. category: 'actions',
  220. fn: function (){
  221. var self=this;
  222. smalltalk.send(self,"_val_",[""]);
  223. return self},
  224. args: [],
  225. source: "clear\x0a self val: ''",
  226. messageSends: ["val:"],
  227. referencedClasses: []
  228. }),
  229. smalltalk.HLCodeWidget);
  230. smalltalk.addMethod(
  231. "_currentLine",
  232. smalltalk.method({
  233. selector: "currentLine",
  234. category: 'accessing',
  235. fn: function (){
  236. var self=this;
  237. var $1;
  238. $1=smalltalk.send(self["@editor"],"_getLine_",[smalltalk.send(smalltalk.send(self["@editor"],"_getCursor",[]),"_line",[])]);
  239. return $1;
  240. },
  241. args: [],
  242. source: "currentLine\x0a ^editor getLine: (editor getCursor line)",
  243. messageSends: ["getLine:", "line", "getCursor"],
  244. referencedClasses: []
  245. }),
  246. smalltalk.HLCodeWidget);
  247. smalltalk.addMethod(
  248. "_currentLineOrSelection",
  249. smalltalk.method({
  250. selector: "currentLineOrSelection",
  251. category: 'accessing',
  252. fn: function (){
  253. var self=this;
  254. var $2,$1;
  255. $2=smalltalk.send(self["@editor"],"_somethingSelected",[]);
  256. if(smalltalk.assert($2)){
  257. $1=smalltalk.send(self,"_selection",[]);
  258. } else {
  259. $1=smalltalk.send(self,"_currentLine",[]);
  260. };
  261. return $1;
  262. },
  263. args: [],
  264. source: "currentLineOrSelection\x0a ^editor somethingSelected\x0a\x09\x09ifFalse: [self currentLine]\x0a\x09\x09ifTrue: [self selection]",
  265. messageSends: ["ifFalse:ifTrue:", "currentLine", "selection", "somethingSelected"],
  266. referencedClasses: []
  267. }),
  268. smalltalk.HLCodeWidget);
  269. smalltalk.addMethod(
  270. "_doItReaction",
  271. smalltalk.method({
  272. selector: "doItReaction",
  273. category: 'accessing',
  274. fn: function (){
  275. var self=this;
  276. var $1;
  277. if(($receiver = self["@doItReaction"]) == nil || $receiver == undefined){
  278. $1=smalltalk.send(self,"_initializeDoItReaction",[]);
  279. } else {
  280. $1=self["@doItReaction"];
  281. };
  282. return $1;
  283. },
  284. args: [],
  285. source: "doItReaction\x0a\x0a\x09^ doItReaction ifNil:[self initializeDoItReaction]",
  286. messageSends: ["ifNil:", "initializeDoItReaction"],
  287. referencedClasses: []
  288. }),
  289. smalltalk.HLCodeWidget);
  290. smalltalk.addMethod(
  291. "_doItReaction_",
  292. smalltalk.method({
  293. selector: "doItReaction:",
  294. category: 'accessing',
  295. fn: function (aBlock){
  296. var self=this;
  297. self["@doItReaction"]=aBlock;
  298. return self},
  299. args: ["aBlock"],
  300. source: "doItReaction: aBlock\x0a\x0a\x09doItReaction := aBlock",
  301. messageSends: [],
  302. referencedClasses: []
  303. }),
  304. smalltalk.HLCodeWidget);
  305. smalltalk.addMethod(
  306. "_editor",
  307. smalltalk.method({
  308. selector: "editor",
  309. category: 'actions',
  310. fn: function (){
  311. var self=this;
  312. return self["@editor"];
  313. },
  314. args: [],
  315. source: "editor\x0a\x09^editor",
  316. messageSends: [],
  317. referencedClasses: []
  318. }),
  319. smalltalk.HLCodeWidget);
  320. smalltalk.addMethod(
  321. "_focus",
  322. smalltalk.method({
  323. selector: "focus",
  324. category: 'actions',
  325. fn: function (){
  326. var self=this;
  327. smalltalk.send(smalltalk.send(self,"_editor",[]),"_focus",[]);
  328. return self},
  329. args: [],
  330. source: "focus\x0a self editor focus",
  331. messageSends: ["focus", "editor"],
  332. referencedClasses: []
  333. }),
  334. smalltalk.HLCodeWidget);
  335. smalltalk.addMethod(
  336. "_initializeDoItReaction",
  337. smalltalk.method({
  338. selector: "initializeDoItReaction",
  339. category: 'initialization',
  340. fn: function (){
  341. var self=this;
  342. var $1;
  343. self["@doItReaction"]=(function(){
  344. });
  345. $1=self["@doItReaction"];
  346. return $1;
  347. },
  348. args: [],
  349. source: "initializeDoItReaction\x0a\x0a\x09^ doItReaction := [\x22no-op\x22]",
  350. messageSends: [],
  351. referencedClasses: []
  352. }),
  353. smalltalk.HLCodeWidget);
  354. smalltalk.addMethod(
  355. "_model",
  356. smalltalk.method({
  357. selector: "model",
  358. category: 'accessing',
  359. fn: function (){
  360. var self=this;
  361. return self["@model"];
  362. },
  363. args: [],
  364. source: "model\x0a\x0a\x09^ model ",
  365. messageSends: [],
  366. referencedClasses: []
  367. }),
  368. smalltalk.HLCodeWidget);
  369. smalltalk.addMethod(
  370. "_model_",
  371. smalltalk.method({
  372. selector: "model:",
  373. category: 'accessing',
  374. fn: function (aModel){
  375. var self=this;
  376. self["@model"]=aModel;
  377. return self},
  378. args: ["aModel"],
  379. source: "model: aModel\x0a\x0a\x09model := aModel",
  380. messageSends: [],
  381. referencedClasses: []
  382. }),
  383. smalltalk.HLCodeWidget);
  384. smalltalk.addMethod(
  385. "_observeWrapper",
  386. smalltalk.method({
  387. selector: "observeWrapper",
  388. category: 'actions',
  389. fn: function (){
  390. var self=this;
  391. smalltalk.send(self["@wrapper"],"_onKeyDown_",[(function(e){
  392. return smalltalk.send(self,"_onKeyDown_",[e]);
  393. })]);
  394. return self},
  395. args: [],
  396. source: "observeWrapper\x0a\x0a wrapper onKeyDown: [:e | self onKeyDown: e]\x0a",
  397. messageSends: ["onKeyDown:"],
  398. referencedClasses: []
  399. }),
  400. smalltalk.HLCodeWidget);
  401. smalltalk.addMethod(
  402. "_onDoIt",
  403. smalltalk.method({
  404. selector: "onDoIt",
  405. category: 'reactions',
  406. fn: function (){
  407. var self=this;
  408. var result;
  409. result=smalltalk.send(self["@model"],"_doIt_do_",[smalltalk.send(self,"_currentLineOrSelection",[]),smalltalk.send(self,"_doItReaction",[])]);
  410. smalltalk.send(smalltalk.send(self,"_announcer",[]),"_announce_",[smalltalk.send((smalltalk.HLDoItRequested || HLDoItRequested),"_on_",[self["@model"]])]);
  411. return result;
  412. },
  413. args: [],
  414. source: "onDoIt\x0a\x09| result |\x0a\x0a\x09result:= model \x0a \x09\x09\x09\x09doIt: self currentLineOrSelection \x0a \x09\x09\x09do: self doItReaction.\x0a \x0a\x09self announcer announce: (HLDoItRequested on: model).\x0a\x09^ result ",
  415. messageSends: ["doIt:do:", "currentLineOrSelection", "doItReaction", "announce:", "on:", "announcer"],
  416. referencedClasses: ["HLDoItRequested"]
  417. }),
  418. smalltalk.HLCodeWidget);
  419. smalltalk.addMethod(
  420. "_onInspectIt",
  421. smalltalk.method({
  422. selector: "onInspectIt",
  423. category: 'reactions',
  424. fn: function (){
  425. var self=this;
  426. return self},
  427. args: [],
  428. source: "onInspectIt",
  429. messageSends: [],
  430. referencedClasses: []
  431. }),
  432. smalltalk.HLCodeWidget);
  433. smalltalk.addMethod(
  434. "_onKeyDown_",
  435. smalltalk.method({
  436. selector: "onKeyDown:",
  437. category: 'reactions',
  438. fn: function (anEvent){
  439. var self=this;
  440. if(anEvent.ctrlKey) {
  441. if(anEvent.keyCode === 80) { //ctrl+p
  442. self._onPrintIt();
  443. anEvent.preventDefault();
  444. return false;
  445. }
  446. if(anEvent.keyCode === 68) { //ctrl+d
  447. self._onDoIt();
  448. anEvent.preventDefault();
  449. return false;
  450. }
  451. if(anEvent.keyCode === 73) { //ctrl+i
  452. self._onInspectIt();
  453. anEvent.preventDefault();
  454. return false;
  455. }
  456. };
  457. ;
  458. return self},
  459. args: ["anEvent"],
  460. source: "onKeyDown: anEvent\x0a\x0a <if(anEvent.ctrlKey) {\x0a\x09\x09if(anEvent.keyCode === 80) { //ctrl+p\x0a\x09\x09\x09self._onPrintIt();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09\x09if(anEvent.keyCode === 68) { //ctrl+d\x0a\x09\x09\x09self._onDoIt();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09\x09if(anEvent.keyCode === 73) { //ctrl+i\x0a\x09\x09\x09self._onInspectIt();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09}>\x09",
  461. messageSends: [],
  462. referencedClasses: []
  463. }),
  464. smalltalk.HLCodeWidget);
  465. smalltalk.addMethod(
  466. "_onPrintIt",
  467. smalltalk.method({
  468. selector: "onPrintIt",
  469. category: 'reactions',
  470. fn: function (){
  471. var self=this;
  472. var result;
  473. result=smalltalk.send(self["@model"],"_doIt_do_",[smalltalk.send(self,"_currentLineOrSelection",[]),smalltalk.send(self,"_doItReaction",[])]);
  474. smalltalk.send(smalltalk.send(self,"_announcer",[]),"_announce_",[smalltalk.send((smalltalk.HLPrintItRequested || HLPrintItRequested),"_on_",[self["@model"]])]);
  475. smalltalk.send(self,"_print_",[smalltalk.send(result,"_printString",[])]);
  476. smalltalk.send(self,"_focus",[]);
  477. return self},
  478. args: [],
  479. source: "onPrintIt\x0a\x0a\x09| result |\x0a\x0a\x09result:= model \x0a \x09\x09\x09\x09doIt: self currentLineOrSelection \x0a \x09\x09\x09do: self doItReaction.\x0a \x0a\x09self announcer announce: (HLPrintItRequested on: model).\x0a\x0a self print: result printString.\x0a\x09self focus.",
  480. messageSends: ["doIt:do:", "currentLineOrSelection", "doItReaction", "announce:", "on:", "announcer", "print:", "printString", "focus"],
  481. referencedClasses: ["HLPrintItRequested"]
  482. }),
  483. smalltalk.HLCodeWidget);
  484. smalltalk.addMethod(
  485. "_print_",
  486. smalltalk.method({
  487. selector: "print:",
  488. category: 'actions',
  489. fn: function (aString){
  490. var self=this;
  491. var start;
  492. var stop;
  493. start=smalltalk.send((smalltalk.HashedCollection || HashedCollection),"_new",[]);
  494. stop=smalltalk.send((smalltalk.HashedCollection || HashedCollection),"_new",[]);
  495. smalltalk.send(start,"_at_put_",["line",smalltalk.send(smalltalk.send(self["@editor"],"_getCursor_",[false]),"_line",[])]);
  496. smalltalk.send(start,"_at_put_",["ch",smalltalk.send(smalltalk.send(self["@editor"],"_getCursor_",[false]),"_ch",[])]);
  497. smalltalk.send(stop,"_at_put_",["line",smalltalk.send(start,"_at_",["line"])]);
  498. smalltalk.send(stop,"_at_put_",["ch",smalltalk.send(smalltalk.send(smalltalk.send(start,"_at_",["ch"]),"__plus",[smalltalk.send(aString,"_size",[])]),"__plus",[(2)])]);
  499. smalltalk.send(self["@editor"],"_replaceSelection_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self["@editor"],"_getSelection",[]),"__comma",[" "]),"__comma",[aString]),"__comma",[" "])]);
  500. smalltalk.send(self["@editor"],"_setCursor_",[smalltalk.send(self["@editor"],"_getCursor_",[true])]);
  501. smalltalk.send(self["@editor"],"_setSelection_end_",[stop,start]);
  502. return self},
  503. args: ["aString"],
  504. source: "print: aString\x0a\x09| start stop |\x0a\x09start := HashedCollection new.\x0a\x09stop := HashedCollection new.\x0a\x09start at: 'line' put: (editor getCursor: false) line.\x0a\x09start at: 'ch' put: (editor getCursor: false) ch.\x0a\x09stop at: 'line' put: (start at: 'line').\x0a\x09stop at: 'ch' put: ((start at: 'ch') + aString size + 2).\x0a\x09editor replaceSelection: (editor getSelection, ' ', aString, ' ').\x0a\x09editor setCursor: (editor getCursor: true).\x0a\x09editor setSelection: stop end: start",
  505. messageSends: ["new", "at:put:", "line", "getCursor:", "ch", "at:", "+", "size", "replaceSelection:", ",", "getSelection", "setCursor:", "setSelection:end:"],
  506. referencedClasses: ["HashedCollection"]
  507. }),
  508. smalltalk.HLCodeWidget);
  509. smalltalk.addMethod(
  510. "_receiver",
  511. smalltalk.method({
  512. selector: "receiver",
  513. category: 'accessing',
  514. fn: function (){
  515. var self=this;
  516. var $1;
  517. $1=smalltalk.send(smalltalk.send(self,"_model",[]),"_receiver",[]);
  518. return $1;
  519. },
  520. args: [],
  521. source: "receiver\x0a\x09^ self model receiver",
  522. messageSends: ["receiver", "model"],
  523. referencedClasses: []
  524. }),
  525. smalltalk.HLCodeWidget);
  526. smalltalk.addMethod(
  527. "_receiver_",
  528. smalltalk.method({
  529. selector: "receiver:",
  530. category: 'accessing',
  531. fn: function (anObject){
  532. var self=this;
  533. smalltalk.send(smalltalk.send(self,"_model",[]),"_receiver_",[anObject]);
  534. return self},
  535. args: ["anObject"],
  536. source: "receiver: anObject\x0a\x09self model receiver: anObject",
  537. messageSends: ["receiver:", "model"],
  538. referencedClasses: []
  539. }),
  540. smalltalk.HLCodeWidget);
  541. smalltalk.addMethod(
  542. "_renderOn_",
  543. smalltalk.method({
  544. selector: "renderOn:",
  545. category: 'rendering',
  546. fn: function (html){
  547. var self=this;
  548. self["@wrapper"]=smalltalk.send(smalltalk.send(html,"_div",[]),"_class_",["code"]);
  549. smalltalk.send(smalltalk.send(smalltalk.send(self,"_observeWrapper",[]),"_wrapper",[]),"_with_",[(function(){
  550. self["@code"]=smalltalk.send(html,"_textarea",[]);
  551. return self["@code"];
  552. })]);
  553. smalltalk.send(self,"_setEditorOn_",[smalltalk.send(self["@code"],"_element",[])]);
  554. return self},
  555. args: ["html"],
  556. source: "renderOn: html\x0a wrapper := html div class: 'code'.\x0a self observeWrapper\x0a wrapper with: [code := html textarea].\x0a self setEditorOn: code element.\x0a \x0a",
  557. messageSends: ["class:", "div", "with:", "textarea", "wrapper", "observeWrapper", "setEditorOn:", "element"],
  558. referencedClasses: []
  559. }),
  560. smalltalk.HLCodeWidget);
  561. smalltalk.addMethod(
  562. "_selection",
  563. smalltalk.method({
  564. selector: "selection",
  565. category: 'accessing',
  566. fn: function (){
  567. var self=this;
  568. var $1;
  569. $1=smalltalk.send(self["@editor"],"_getSelection",[]);
  570. return $1;
  571. },
  572. args: [],
  573. source: "selection\x0a\x09^editor getSelection",
  574. messageSends: ["getSelection"],
  575. referencedClasses: []
  576. }),
  577. smalltalk.HLCodeWidget);
  578. smalltalk.addMethod(
  579. "_selectionEnd",
  580. smalltalk.method({
  581. selector: "selectionEnd",
  582. category: 'accessing',
  583. fn: function (){
  584. var self=this;
  585. var $1;
  586. $1=smalltalk.send(smalltalk.send(self["@code"],"_element",[]),"_selectionEnd",[]);
  587. return $1;
  588. },
  589. args: [],
  590. source: "selectionEnd\x0a ^code element selectionEnd",
  591. messageSends: ["selectionEnd", "element"],
  592. referencedClasses: []
  593. }),
  594. smalltalk.HLCodeWidget);
  595. smalltalk.addMethod(
  596. "_selectionEnd_",
  597. smalltalk.method({
  598. selector: "selectionEnd:",
  599. category: 'accessing',
  600. fn: function (anInteger){
  601. var self=this;
  602. smalltalk.send(smalltalk.send(self["@code"],"_element",[]),"_selectionEnd_",[anInteger]);
  603. return self},
  604. args: ["anInteger"],
  605. source: "selectionEnd: anInteger\x0a code element selectionEnd: anInteger",
  606. messageSends: ["selectionEnd:", "element"],
  607. referencedClasses: []
  608. }),
  609. smalltalk.HLCodeWidget);
  610. smalltalk.addMethod(
  611. "_selectionStart",
  612. smalltalk.method({
  613. selector: "selectionStart",
  614. category: 'accessing',
  615. fn: function (){
  616. var self=this;
  617. var $1;
  618. $1=smalltalk.send(smalltalk.send(self["@code"],"_element",[]),"_selectionStart",[]);
  619. return $1;
  620. },
  621. args: [],
  622. source: "selectionStart\x0a ^code element selectionStart",
  623. messageSends: ["selectionStart", "element"],
  624. referencedClasses: []
  625. }),
  626. smalltalk.HLCodeWidget);
  627. smalltalk.addMethod(
  628. "_selectionStart_",
  629. smalltalk.method({
  630. selector: "selectionStart:",
  631. category: 'accessing',
  632. fn: function (anInteger){
  633. var self=this;
  634. smalltalk.send(smalltalk.send(self["@code"],"_element",[]),"_selectionStart_",[anInteger]);
  635. return self},
  636. args: ["anInteger"],
  637. source: "selectionStart: anInteger\x0a code element selectionStart: anInteger",
  638. messageSends: ["selectionStart:", "element"],
  639. referencedClasses: []
  640. }),
  641. smalltalk.HLCodeWidget);
  642. smalltalk.addMethod(
  643. "_setEditorOn_",
  644. smalltalk.method({
  645. selector: "setEditorOn:",
  646. category: 'actions',
  647. fn: function (aTextarea){
  648. var self=this;
  649. self['@editor'] = CodeMirror.fromTextArea(aTextarea, {
  650. theme: 'amber',
  651. lineNumbers: true,
  652. enterMode: 'flat',
  653. matchBrackets: true,
  654. electricChars: false
  655. });
  656. ;
  657. return self},
  658. args: ["aTextarea"],
  659. source: "setEditorOn: aTextarea\x0a\x09<self['@editor'] = CodeMirror.fromTextArea(aTextarea, {\x0a\x09\x09theme: 'amber',\x0a lineNumbers: true,\x0a enterMode: 'flat',\x0a matchBrackets: true,\x0a electricChars: false\x0a\x09})>",
  660. messageSends: [],
  661. referencedClasses: []
  662. }),
  663. smalltalk.HLCodeWidget);
  664. smalltalk.addMethod(
  665. "_val",
  666. smalltalk.method({
  667. selector: "val",
  668. category: 'accessing',
  669. fn: function (){
  670. var self=this;
  671. var $1;
  672. $1=smalltalk.send(self["@code"],"_getValue",[]);
  673. return $1;
  674. },
  675. args: [],
  676. source: "val\x0a\x09^ code getValue",
  677. messageSends: ["getValue"],
  678. referencedClasses: []
  679. }),
  680. smalltalk.HLCodeWidget);
  681. smalltalk.addMethod(
  682. "_val_",
  683. smalltalk.method({
  684. selector: "val:",
  685. category: 'accessing',
  686. fn: function (aString){
  687. var self=this;
  688. smalltalk.send(self["@code"],"_setValue_",[aString]);
  689. return self},
  690. args: ["aString"],
  691. source: "val: aString\x0a code setValue: aString",
  692. messageSends: ["setValue:"],
  693. referencedClasses: []
  694. }),
  695. smalltalk.HLCodeWidget);
  696. smalltalk.addMethod(
  697. "_wrapper",
  698. smalltalk.method({
  699. selector: "wrapper",
  700. category: 'accessing',
  701. fn: function (){
  702. var self=this;
  703. return self["@wrapper"];
  704. },
  705. args: [],
  706. source: "wrapper\x0a\x0a\x09^ wrapper",
  707. messageSends: [],
  708. referencedClasses: []
  709. }),
  710. smalltalk.HLCodeWidget);
  711. smalltalk.addClass('HLWorkspace', smalltalk.HLWidget, ['model', 'code'], 'Helios-Workspace');
  712. smalltalk.addMethod(
  713. "_code",
  714. smalltalk.method({
  715. selector: "code",
  716. category: 'accessing',
  717. fn: function (){
  718. var self=this;
  719. var $1;
  720. if(($receiver = self["@code"]) == nil || $receiver == undefined){
  721. $1=smalltalk.send(self,"_initializeCode",[]);
  722. } else {
  723. $1=self["@code"];
  724. };
  725. return $1;
  726. },
  727. args: [],
  728. source: "code\x0a\x0a\x09^ code ifNil:[self initializeCode]",
  729. messageSends: ["ifNil:", "initializeCode"],
  730. referencedClasses: []
  731. }),
  732. smalltalk.HLWorkspace);
  733. smalltalk.addMethod(
  734. "_ensureModel",
  735. smalltalk.method({
  736. selector: "ensureModel",
  737. category: 'actions',
  738. fn: function (){
  739. var self=this;
  740. if(($receiver = self["@model"]) == nil || $receiver == undefined){
  741. smalltalk.send(self,"_model_",[smalltalk.send(self,"_model",[])]);
  742. } else {
  743. self["@model"];
  744. };
  745. return self},
  746. args: [],
  747. source: "ensureModel\x0a\x09\x22Sends the #model: initialization message if needed.\x22\x0a\x0a\x09model ifNil:[\x0a\x09\x09self model: self model]\x0a\x09",
  748. messageSends: ["ifNil:", "model:", "model"],
  749. referencedClasses: []
  750. }),
  751. smalltalk.HLWorkspace);
  752. smalltalk.addMethod(
  753. "_initializeCode",
  754. smalltalk.method({
  755. selector: "initializeCode",
  756. category: 'initialization',
  757. fn: function (){
  758. var self=this;
  759. var $1;
  760. self["@code"]=smalltalk.send(self,"_makeCode",[]);
  761. $1=self["@code"];
  762. return $1;
  763. },
  764. args: [],
  765. source: "initializeCode\x0a\x0a\x09^ code := self makeCode.",
  766. messageSends: ["makeCode"],
  767. referencedClasses: []
  768. }),
  769. smalltalk.HLWorkspace);
  770. smalltalk.addMethod(
  771. "_initializeModel",
  772. smalltalk.method({
  773. selector: "initializeModel",
  774. category: 'initialization',
  775. fn: function (){
  776. var self=this;
  777. var $1;
  778. self["@model"]=smalltalk.send((smalltalk.HLWorkspaceModel || HLWorkspaceModel),"_new",[]);
  779. $1=self["@model"];
  780. return $1;
  781. },
  782. args: [],
  783. source: "initializeModel\x0a\x0a\x09^ model := HLWorkspaceModel new",
  784. messageSends: ["new"],
  785. referencedClasses: ["HLWorkspaceModel"]
  786. }),
  787. smalltalk.HLWorkspace);
  788. smalltalk.addMethod(
  789. "_makeCode",
  790. smalltalk.method({
  791. selector: "makeCode",
  792. category: 'actions',
  793. fn: function (){
  794. var self=this;
  795. var $2,$3,$1;
  796. $2=smalltalk.send((smalltalk.HLCodeWidget || HLCodeWidget),"_new",[]);
  797. smalltalk.send($2,"_model_",[smalltalk.send(self["@model"],"_code",[])]);
  798. $3=smalltalk.send($2,"_yourself",[]);
  799. $1=$3;
  800. return $1;
  801. },
  802. args: [],
  803. source: "makeCode\x0a\x0a\x09^ HLCodeWidget new\x0a \x09model: model code;\x0a yourself",
  804. messageSends: ["model:", "code", "new", "yourself"],
  805. referencedClasses: ["HLCodeWidget"]
  806. }),
  807. smalltalk.HLWorkspace);
  808. smalltalk.addMethod(
  809. "_model",
  810. smalltalk.method({
  811. selector: "model",
  812. category: 'accessing',
  813. fn: function (){
  814. var self=this;
  815. var $1;
  816. if(($receiver = self["@model"]) == nil || $receiver == undefined){
  817. $1=smalltalk.send(self,"_initializeModel",[]);
  818. } else {
  819. $1=self["@model"];
  820. };
  821. return $1;
  822. },
  823. args: [],
  824. source: "model\x0a\x0a\x09^ model ifNil:[self initializeModel]",
  825. messageSends: ["ifNil:", "initializeModel"],
  826. referencedClasses: []
  827. }),
  828. smalltalk.HLWorkspace);
  829. smalltalk.addMethod(
  830. "_model_",
  831. smalltalk.method({
  832. selector: "model:",
  833. category: 'accessing',
  834. fn: function (aModel){
  835. var self=this;
  836. self["@model"]=aModel;
  837. smalltalk.send(smalltalk.send(self,"_code",[]),"_model_",[smalltalk.send(aModel,"_code",[])]);
  838. smalltalk.send(self,"_observeCode",[]);
  839. return self},
  840. args: ["aModel"],
  841. source: "model: aModel\x0a\x0a\x09model := aModel.\x0a \x0a self code model: aModel code.\x0a self observeCode.\x0a ",
  842. messageSends: ["model:", "code", "observeCode"],
  843. referencedClasses: []
  844. }),
  845. smalltalk.HLWorkspace);
  846. smalltalk.addMethod(
  847. "_observeCode",
  848. smalltalk.method({
  849. selector: "observeCode",
  850. category: 'actions',
  851. fn: function (){
  852. var self=this;
  853. return self},
  854. args: [],
  855. source: "observeCode\x0a\x0a",
  856. messageSends: [],
  857. referencedClasses: []
  858. }),
  859. smalltalk.HLWorkspace);
  860. smalltalk.addMethod(
  861. "_onDoIt",
  862. smalltalk.method({
  863. selector: "onDoIt",
  864. category: 'reactions',
  865. fn: function (){
  866. var self=this;
  867. return self},
  868. args: [],
  869. source: "onDoIt",
  870. messageSends: [],
  871. referencedClasses: []
  872. }),
  873. smalltalk.HLWorkspace);
  874. smalltalk.addMethod(
  875. "_onInspectIt",
  876. smalltalk.method({
  877. selector: "onInspectIt",
  878. category: 'reactions',
  879. fn: function (){
  880. var self=this;
  881. return self},
  882. args: [],
  883. source: "onInspectIt",
  884. messageSends: [],
  885. referencedClasses: []
  886. }),
  887. smalltalk.HLWorkspace);
  888. smalltalk.addMethod(
  889. "_onPrintIt",
  890. smalltalk.method({
  891. selector: "onPrintIt",
  892. category: 'reactions',
  893. fn: function (){
  894. var self=this;
  895. return self},
  896. args: [],
  897. source: "onPrintIt",
  898. messageSends: [],
  899. referencedClasses: []
  900. }),
  901. smalltalk.HLWorkspace);
  902. smalltalk.addMethod(
  903. "_renderContentOn_",
  904. smalltalk.method({
  905. selector: "renderContentOn:",
  906. category: 'rendering',
  907. fn: function (html){
  908. var self=this;
  909. smalltalk.send(self,"_ensureModel",[]);
  910. smalltalk.send(html,"_with_",[smalltalk.send(self,"_code",[])]);
  911. return self},
  912. args: ["html"],
  913. source: "renderContentOn: html\x0a\x0a\x09self ensureModel.\x0a \x0a\x09html with: self code\x0a ",
  914. messageSends: ["ensureModel", "with:", "code"],
  915. referencedClasses: []
  916. }),
  917. smalltalk.HLWorkspace);
  918. smalltalk.addMethod(
  919. "_canBeOpenAsTab",
  920. smalltalk.method({
  921. selector: "canBeOpenAsTab",
  922. category: 'testing',
  923. fn: function (){
  924. var self=this;
  925. return true;
  926. },
  927. args: [],
  928. source: "canBeOpenAsTab\x0a\x09^ true",
  929. messageSends: [],
  930. referencedClasses: []
  931. }),
  932. smalltalk.HLWorkspace.klass);
  933. smalltalk.addMethod(
  934. "_tabLabel",
  935. smalltalk.method({
  936. selector: "tabLabel",
  937. category: 'accessing',
  938. fn: function (){
  939. var self=this;
  940. return "Workspace";
  941. },
  942. args: [],
  943. source: "tabLabel\x0a\x09^ 'Workspace'",
  944. messageSends: [],
  945. referencedClasses: []
  946. }),
  947. smalltalk.HLWorkspace.klass);
  948. smalltalk.addMethod(
  949. "_tabPriority",
  950. smalltalk.method({
  951. selector: "tabPriority",
  952. category: 'accessing',
  953. fn: function (){
  954. var self=this;
  955. return (10);
  956. },
  957. args: [],
  958. source: "tabPriority\x0a\x09^ 10",
  959. messageSends: [],
  960. referencedClasses: []
  961. }),
  962. smalltalk.HLWorkspace.klass);
  963. smalltalk.addClass('HLWorkspaceModel', smalltalk.Object, ['announcer', 'environment', 'code'], 'Helios-Workspace');
  964. smalltalk.addMethod(
  965. "_announcer",
  966. smalltalk.method({
  967. selector: "announcer",
  968. category: 'accessing',
  969. fn: function (){
  970. var self=this;
  971. var $1;
  972. if(($receiver = self["@announcer"]) == nil || $receiver == undefined){
  973. $1=smalltalk.send(self,"_initializeAnnouncer",[]);
  974. } else {
  975. $1=self["@announcer"];
  976. };
  977. return $1;
  978. },
  979. args: [],
  980. source: "announcer\x0a\x09^ announcer ifNil: [ self initializeAnnouncer ]",
  981. messageSends: ["ifNil:", "initializeAnnouncer"],
  982. referencedClasses: []
  983. }),
  984. smalltalk.HLWorkspaceModel);
  985. smalltalk.addMethod(
  986. "_beLocal",
  987. smalltalk.method({
  988. selector: "beLocal",
  989. category: 'actions',
  990. fn: function (){
  991. var self=this;
  992. smalltalk.send(self,"_initializeEnvironment",[]);
  993. return self},
  994. args: [],
  995. source: "beLocal\x0a\x0a\x09self initializeEnvironment\x0a",
  996. messageSends: ["initializeEnvironment"],
  997. referencedClasses: []
  998. }),
  999. smalltalk.HLWorkspaceModel);
  1000. smalltalk.addMethod(
  1001. "_beRemoteOn_port_",
  1002. smalltalk.method({
  1003. selector: "beRemoteOn:port:",
  1004. category: 'actions',
  1005. fn: function (anIPAddress,aPort){
  1006. var self=this;
  1007. return self},
  1008. args: ["anIPAddress", "aPort"],
  1009. source: "beRemoteOn: anIPAddress port: aPort\x0a\x0a\x09\x22to-do\x22\x0a \x0a \x22environment := HLRemoteEnvironment on: anIPAddress port: aPort\x0a \x0a ...kind of stuff\x22\x0a \x0a",
  1010. messageSends: [],
  1011. referencedClasses: []
  1012. }),
  1013. smalltalk.HLWorkspaceModel);
  1014. smalltalk.addMethod(
  1015. "_code",
  1016. smalltalk.method({
  1017. selector: "code",
  1018. category: 'accessing',
  1019. fn: function (){
  1020. var self=this;
  1021. var $1;
  1022. if(($receiver = self["@code"]) == nil || $receiver == undefined){
  1023. $1=smalltalk.send(self,"_initializeCode",[]);
  1024. } else {
  1025. $1=self["@code"];
  1026. };
  1027. return $1;
  1028. },
  1029. args: [],
  1030. source: "code\x0a\x09\x22Answers the code model working for this workspace model\x22\x0a\x09^ code ifNil:[self initializeCode]",
  1031. messageSends: ["ifNil:", "initializeCode"],
  1032. referencedClasses: []
  1033. }),
  1034. smalltalk.HLWorkspaceModel);
  1035. smalltalk.addMethod(
  1036. "_environment",
  1037. smalltalk.method({
  1038. selector: "environment",
  1039. category: 'accessing',
  1040. fn: function (){
  1041. var self=this;
  1042. var $1;
  1043. if(($receiver = self["@environment"]) == nil || $receiver == undefined){
  1044. $1=smalltalk.send(self,"_initializeEnvironment",[]);
  1045. } else {
  1046. $1=self["@environment"];
  1047. };
  1048. return $1;
  1049. },
  1050. args: [],
  1051. source: "environment\x0a\x09^ environment ifNil: [ self initializeEnvironment]",
  1052. messageSends: ["ifNil:", "initializeEnvironment"],
  1053. referencedClasses: []
  1054. }),
  1055. smalltalk.HLWorkspaceModel);
  1056. smalltalk.addMethod(
  1057. "_environment_",
  1058. smalltalk.method({
  1059. selector: "environment:",
  1060. category: 'accessing',
  1061. fn: function (anEnvironment){
  1062. var self=this;
  1063. self["@environment"]=anEnvironment;
  1064. return self},
  1065. args: ["anEnvironment"],
  1066. source: "environment: anEnvironment\x0a\x09environment := anEnvironment",
  1067. messageSends: [],
  1068. referencedClasses: []
  1069. }),
  1070. smalltalk.HLWorkspaceModel);
  1071. smalltalk.addMethod(
  1072. "_initializeAnnouncer",
  1073. smalltalk.method({
  1074. selector: "initializeAnnouncer",
  1075. category: 'initialization',
  1076. fn: function (){
  1077. var self=this;
  1078. var $1;
  1079. self["@announcer"]=smalltalk.send((smalltalk.Announcer || Announcer),"_new",[]);
  1080. $1=self["@announcer"];
  1081. return $1;
  1082. },
  1083. args: [],
  1084. source: "initializeAnnouncer\x0a\x09^ announcer := Announcer new",
  1085. messageSends: ["new"],
  1086. referencedClasses: ["Announcer"]
  1087. }),
  1088. smalltalk.HLWorkspaceModel);
  1089. smalltalk.addMethod(
  1090. "_initializeCode",
  1091. smalltalk.method({
  1092. selector: "initializeCode",
  1093. category: 'initialization',
  1094. fn: function (){
  1095. var self=this;
  1096. var $1;
  1097. self["@code"]=smalltalk.send((smalltalk.HLCodeModel || HLCodeModel),"_on_",[smalltalk.send(self,"_environment",[])]);
  1098. $1=self["@code"];
  1099. return $1;
  1100. },
  1101. args: [],
  1102. source: "initializeCode\x0a\x0a\x09^ code := HLCodeModel on: self environment",
  1103. messageSends: ["on:", "environment"],
  1104. referencedClasses: ["HLCodeModel"]
  1105. }),
  1106. smalltalk.HLWorkspaceModel);
  1107. smalltalk.addMethod(
  1108. "_initializeEnvironment",
  1109. smalltalk.method({
  1110. selector: "initializeEnvironment",
  1111. category: 'initialization',
  1112. fn: function (){
  1113. var self=this;
  1114. var $1;
  1115. self["@environment"]=smalltalk.send((smalltalk.HLLocalEnvironment || HLLocalEnvironment),"_new",[]);
  1116. $1=self["@environment"];
  1117. return $1;
  1118. },
  1119. args: [],
  1120. source: "initializeEnvironment\x0a\x09^ environment := HLLocalEnvironment new",
  1121. messageSends: ["new"],
  1122. referencedClasses: ["HLLocalEnvironment"]
  1123. }),
  1124. smalltalk.HLWorkspaceModel);
  1125. smalltalk.addMethod(
  1126. "_onKeyDown_",
  1127. smalltalk.method({
  1128. selector: "onKeyDown:",
  1129. category: 'reactions',
  1130. fn: function (anEvent){
  1131. var self=this;
  1132. if(anEvent.ctrlKey) {
  1133. if(anEvent.keyCode === 80) { //ctrl+p
  1134. self._printIt();
  1135. anEvent.preventDefault();
  1136. return false;
  1137. }
  1138. if(anEvent.keyCode === 68) { //ctrl+d
  1139. self._doIt();
  1140. anEvent.preventDefault();
  1141. return false;
  1142. }
  1143. if(anEvent.keyCode === 73) { //ctrl+i
  1144. self._inspectIt();
  1145. anEvent.preventDefault();
  1146. return false;
  1147. }
  1148. };
  1149. ;
  1150. return self},
  1151. args: ["anEvent"],
  1152. source: "onKeyDown: anEvent\x0a\x0a\x09<if(anEvent.ctrlKey) {\x0a\x09\x09if(anEvent.keyCode === 80) { //ctrl+p\x0a\x09\x09\x09self._printIt();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09\x09if(anEvent.keyCode === 68) { //ctrl+d\x0a\x09\x09\x09self._doIt();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09\x09if(anEvent.keyCode === 73) { //ctrl+i\x0a\x09\x09\x09self._inspectIt();\x0a\x09\x09\x09anEvent.preventDefault();\x0a\x09\x09\x09return false;\x0a\x09\x09}\x0a\x09}>",
  1153. messageSends: [],
  1154. referencedClasses: []
  1155. }),
  1156. smalltalk.HLWorkspaceModel);
  1157. smalltalk.addMethod(
  1158. "_subscribe_",
  1159. smalltalk.method({
  1160. selector: "subscribe:",
  1161. category: 'actions',
  1162. fn: function (aWidget){
  1163. var self=this;
  1164. smalltalk.send(aWidget,"_subscribeTo_",[smalltalk.send(self,"_announcer",[])]);
  1165. return self},
  1166. args: ["aWidget"],
  1167. source: "subscribe: aWidget\x0a\x09aWidget subscribeTo: self announcer",
  1168. messageSends: ["subscribeTo:", "announcer"],
  1169. referencedClasses: []
  1170. }),
  1171. smalltalk.HLWorkspaceModel);
  1172. smalltalk.addMethod(
  1173. "_on_",
  1174. smalltalk.method({
  1175. selector: "on:",
  1176. category: 'actions',
  1177. fn: function (anEnvironment){
  1178. var self=this;
  1179. var $2,$3,$1;
  1180. $2=smalltalk.send(self,"_new",[]);
  1181. smalltalk.send($2,"_environment_",[anEnvironment]);
  1182. $3=smalltalk.send($2,"_yourself",[]);
  1183. $1=$3;
  1184. return $1;
  1185. },
  1186. args: ["anEnvironment"],
  1187. source: "on: anEnvironment\x0a\x0a\x09^ self new\x0a \x09environment: anEnvironment;\x0a yourself",
  1188. messageSends: ["environment:", "new", "yourself"],
  1189. referencedClasses: []
  1190. }),
  1191. smalltalk.HLWorkspaceModel.klass);