Helios-Workspace.js 33 KB

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