IDE.deploy.js 102 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604
  1. smalltalk.addClass('TabManager', smalltalk.Widget, ['selectedTab', 'tabs', 'opened', 'ul'], 'IDE');
  2. smalltalk.addMethod(
  3. '_tabs',
  4. smalltalk.method({
  5. selector: 'tabs',
  6. fn: function (){
  7. var self=this;
  8. return smalltalk.send(self['@tabs'], "_ifNil_", [(function(){return self['@tabs']=smalltalk.send(smalltalk.Array, "_new", []);})]);
  9. return self;}
  10. }),
  11. smalltalk.TabManager);
  12. smalltalk.addMethod(
  13. '_updateBodyMargin',
  14. smalltalk.method({
  15. selector: 'updateBodyMargin',
  16. fn: function (){
  17. var self=this;
  18. smalltalk.send(self, "_setBodyMargin_", [smalltalk.send(smalltalk.send(smalltalk.send(unescape("%23jtalk"), "_asJQuery", []), "_height", []), "__plus", [(27)])]);
  19. return self;}
  20. }),
  21. smalltalk.TabManager);
  22. smalltalk.addMethod(
  23. '_updatePosition',
  24. smalltalk.method({
  25. selector: 'updatePosition',
  26. fn: function (){
  27. var self=this;
  28. jQuery('#jtalk').css('top', '').css('bottom', '27px');
  29. return self;}
  30. }),
  31. smalltalk.TabManager);
  32. smalltalk.addMethod(
  33. '_removeBodyMargin',
  34. smalltalk.method({
  35. selector: 'removeBodyMargin',
  36. fn: function (){
  37. var self=this;
  38. smalltalk.send(self, "_setBodyMargin_", [(0)]);
  39. return self;}
  40. }),
  41. smalltalk.TabManager);
  42. smalltalk.addMethod(
  43. '_setBodyMargin_',
  44. smalltalk.method({
  45. selector: 'setBodyMargin:',
  46. fn: function (anInteger){
  47. var self=this;
  48. smalltalk.send(smalltalk.send(".jtalkBody", "_asJQuery", []), "_cssAt_put_", [unescape("margin-bottom"), smalltalk.send(smalltalk.send(anInteger, "_asString", []), "__comma", ["px"])]);
  49. return self;}
  50. }),
  51. smalltalk.TabManager);
  52. smalltalk.addMethod(
  53. '_onResize_',
  54. smalltalk.method({
  55. selector: 'onResize:',
  56. fn: function (aBlock){
  57. var self=this;
  58. jQuery('#jtalk').resizable({
  59. handles: 'n',
  60. resize: aBlock,
  61. minHeight: 230
  62. });
  63. return self;}
  64. }),
  65. smalltalk.TabManager);
  66. smalltalk.addMethod(
  67. '_onWindowResize_',
  68. smalltalk.method({
  69. selector: 'onWindowResize:',
  70. fn: function (aBlock){
  71. var self=this;
  72. jQuery(window).resize(aBlock);
  73. return self;}
  74. }),
  75. smalltalk.TabManager);
  76. smalltalk.addMethod(
  77. '_open',
  78. smalltalk.method({
  79. selector: 'open',
  80. fn: function (){
  81. var self=this;
  82. smalltalk.send(self['@opened'], "_ifFalse_", [(function(){smalltalk.send(smalltalk.send("body", "_asJQuery", []), "_addClass_", ["jtalkBody"]);smalltalk.send(smalltalk.send(unescape("%23jtalk"), "_asJQuery", []), "_show", []);smalltalk.send(smalltalk.send(self['@ul'], "_asJQuery", []), "_show", []);smalltalk.send(self, "_updateBodyMargin", []);smalltalk.send(self['@selectedTab'], "_show", []);return self['@opened']=true;})]);
  83. return self;}
  84. }),
  85. smalltalk.TabManager);
  86. smalltalk.addMethod(
  87. '_close',
  88. smalltalk.method({
  89. selector: 'close',
  90. fn: function (){
  91. var self=this;
  92. smalltalk.send(self['@opened'], "_ifTrue_", [(function(){smalltalk.send(smalltalk.send(unescape("%23jtalk"), "_asJQuery", []), "_hide", []);smalltalk.send(smalltalk.send(self['@ul'], "_asJQuery", []), "_hide", []);smalltalk.send(self['@selectedTab'], "_hide", []);smalltalk.send(self, "_removeBodyMargin", []);smalltalk.send(smalltalk.send("body", "_asJQuery", []), "_removeClass_", ["jtalkBody"]);return self['@opened']=false;})]);
  93. return self;}
  94. }),
  95. smalltalk.TabManager);
  96. smalltalk.addMethod(
  97. '_newBrowserTab',
  98. smalltalk.method({
  99. selector: 'newBrowserTab',
  100. fn: function (){
  101. var self=this;
  102. smalltalk.send(smalltalk.Browser, "_open", []);
  103. return self;}
  104. }),
  105. smalltalk.TabManager);
  106. smalltalk.addMethod(
  107. '_selectTab_',
  108. smalltalk.method({
  109. selector: 'selectTab:',
  110. fn: function (aWidget){
  111. var self=this;
  112. smalltalk.send(self, "_open", []);
  113. self['@selectedTab']=aWidget;
  114. smalltalk.send(smalltalk.send(self, "_tabs", []), "_do_", [(function(each){return smalltalk.send(each, "_hide", []);})]);
  115. smalltalk.send(aWidget, "_show", []);
  116. smalltalk.send(self, "_update", []);
  117. return self;}
  118. }),
  119. smalltalk.TabManager);
  120. smalltalk.addMethod(
  121. '_closeTab_',
  122. smalltalk.method({
  123. selector: 'closeTab:',
  124. fn: function (aWidget){
  125. var self=this;
  126. smalltalk.send(self, "_removeTab_", [aWidget]);
  127. smalltalk.send(self, "_selectTab_", [smalltalk.send(smalltalk.send(self, "_tabs", []), "_last", [])]);
  128. smalltalk.send(aWidget, "_remove", []);
  129. smalltalk.send(self, "_update", []);
  130. return self;}
  131. }),
  132. smalltalk.TabManager);
  133. smalltalk.addMethod(
  134. '_addTab_',
  135. smalltalk.method({
  136. selector: 'addTab:',
  137. fn: function (aWidget){
  138. var self=this;
  139. smalltalk.send(smalltalk.send(self, "_tabs", []), "_add_", [aWidget]);
  140. smalltalk.send(smalltalk.send(unescape("%23jtalk"), "_asJQuery", []), "_append_", [aWidget]);
  141. smalltalk.send(aWidget, "_hide", []);
  142. return self;}
  143. }),
  144. smalltalk.TabManager);
  145. smalltalk.addMethod(
  146. '_removeTab_',
  147. smalltalk.method({
  148. selector: 'removeTab:',
  149. fn: function (aWidget){
  150. var self=this;
  151. smalltalk.send(smalltalk.send(self, "_tabs", []), "_remove_", [aWidget]);
  152. smalltalk.send(self, "_update", []);
  153. return self;}
  154. }),
  155. smalltalk.TabManager);
  156. smalltalk.addMethod(
  157. '_initialize',
  158. smalltalk.method({
  159. selector: 'initialize',
  160. fn: function (){
  161. var self=this;
  162. smalltalk.send(self, "_initialize", [], smalltalk.Widget);
  163. self['@opened']=true;
  164. (function($rec){smalltalk.send($rec, "_append_", [self]);smalltalk.send($rec, "_append_", [(function(html){return smalltalk.send(smalltalk.send(html, "_div", []), "_id_", ["jtalk"]);})]);return smalltalk.send($rec, "_addClass_", ["jtalkBody"]);})(smalltalk.send("body", "_asJQuery", []));
  165. (function($rec){smalltalk.send($rec, "_addTab_", [smalltalk.send(smalltalk.Transcript, "_current", [])]);return smalltalk.send($rec, "_addTab_", [smalltalk.send(smalltalk.Workspace, "_new", [])]);})(self);
  166. smalltalk.send(self, "_selectTab_", [smalltalk.send(smalltalk.send(self, "_tabs", []), "_last", [])]);
  167. (function($rec){smalltalk.send($rec, "_onResize_", [(function(){return (function($rec){smalltalk.send($rec, "_updateBodyMargin", []);return smalltalk.send($rec, "_updatePosition", []);})(self);})]);return smalltalk.send($rec, "_onWindowResize_", [(function(){return smalltalk.send(self, "_updatePosition", []);})]);})(self);
  168. return self;}
  169. }),
  170. smalltalk.TabManager);
  171. smalltalk.addMethod(
  172. '_renderOn_',
  173. smalltalk.method({
  174. selector: 'renderOn:',
  175. fn: function (html){
  176. var self=this;
  177. self['@ul']=(function($rec){smalltalk.send($rec, "_id_", ["jtalkTabs"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_ul", []));
  178. smalltalk.send(self, "_renderTabs", []);
  179. return self;}
  180. }),
  181. smalltalk.TabManager);
  182. smalltalk.addMethod(
  183. '_renderTabFor_on_',
  184. smalltalk.method({
  185. selector: 'renderTabFor:on:',
  186. fn: function (aWidget, html){
  187. var self=this;
  188. var li=nil;
  189. li=smalltalk.send(html, "_li", []);
  190. smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", [aWidget]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);
  191. smalltalk.send(li, "_with_", [(function(){smalltalk.send(smalltalk.send(aWidget, "_canBeClosed", []), "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_class_", ["close"]);smalltalk.send($rec, "_with_", ["x"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_closeTab_", [aWidget]);})]);})(smalltalk.send(html, "_span", []));})]);return (function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(aWidget, "_label", [])]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectTab_", [aWidget]);})]);})(smalltalk.send(html, "_span", []));})]);
  192. return self;}
  193. }),
  194. smalltalk.TabManager);
  195. smalltalk.addMethod(
  196. '_renderTabs',
  197. smalltalk.method({
  198. selector: 'renderTabs',
  199. fn: function (){
  200. var self=this;
  201. smalltalk.send(self['@ul'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_class_", ["closeAll"]);smalltalk.send($rec, "_with_", ["x"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_close", []);})]);})(smalltalk.send(html, "_li", []));smalltalk.send(smalltalk.send(self, "_tabs", []), "_do_", [(function(each){return smalltalk.send(self, "_renderTabFor_on_", [each, html]);})]);return (function($rec){smalltalk.send($rec, "_class_", ["newtab"]);smalltalk.send($rec, "_with_", [unescape("%20+%20")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_newBrowserTab", []);})]);})(smalltalk.send(html, "_li", []));})]);
  202. return self;}
  203. }),
  204. smalltalk.TabManager);
  205. smalltalk.addMethod(
  206. '_update',
  207. smalltalk.method({
  208. selector: 'update',
  209. fn: function (){
  210. var self=this;
  211. smalltalk.send(self, "_renderTabs", []);
  212. return self;}
  213. }),
  214. smalltalk.TabManager);
  215. smalltalk.TabManager.klass.iVarNames = ['current'];
  216. smalltalk.addMethod(
  217. '_current',
  218. smalltalk.method({
  219. selector: 'current',
  220. fn: function (){
  221. var self=this;
  222. return smalltalk.send(self['@current'], "_ifNil_", [(function(){return self['@current']=smalltalk.send(self, "_new", [], smalltalk.Widget.klass);})]);
  223. return self;}
  224. }),
  225. smalltalk.TabManager.klass);
  226. smalltalk.addMethod(
  227. '_new',
  228. smalltalk.method({
  229. selector: 'new',
  230. fn: function (){
  231. var self=this;
  232. smalltalk.send(self, "_shouldNotImplement", []);
  233. return self;}
  234. }),
  235. smalltalk.TabManager.klass);
  236. smalltalk.addClass('TabWidget', smalltalk.Widget, ['div'], 'IDE');
  237. smalltalk.addMethod(
  238. '_label',
  239. smalltalk.method({
  240. selector: 'label',
  241. fn: function (){
  242. var self=this;
  243. smalltalk.send(self, "_subclassResponsibility", []);
  244. return self;}
  245. }),
  246. smalltalk.TabWidget);
  247. smalltalk.addMethod(
  248. '_open',
  249. smalltalk.method({
  250. selector: 'open',
  251. fn: function (){
  252. var self=this;
  253. smalltalk.send(smalltalk.send(smalltalk.TabManager, "_current", []), "_addTab_", [self]);
  254. smalltalk.send(smalltalk.send(smalltalk.TabManager, "_current", []), "_selectTab_", [self]);
  255. return self;}
  256. }),
  257. smalltalk.TabWidget);
  258. smalltalk.addMethod(
  259. '_show',
  260. smalltalk.method({
  261. selector: 'show',
  262. fn: function (){
  263. var self=this;
  264. smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_show", []);
  265. return self;}
  266. }),
  267. smalltalk.TabWidget);
  268. smalltalk.addMethod(
  269. '_hide',
  270. smalltalk.method({
  271. selector: 'hide',
  272. fn: function (){
  273. var self=this;
  274. smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_hide", []);
  275. return self;}
  276. }),
  277. smalltalk.TabWidget);
  278. smalltalk.addMethod(
  279. '_remove',
  280. smalltalk.method({
  281. selector: 'remove',
  282. fn: function (){
  283. var self=this;
  284. smalltalk.send(smalltalk.send(self['@div'], "_asJQuery", []), "_remove", []);
  285. return self;}
  286. }),
  287. smalltalk.TabWidget);
  288. smalltalk.addMethod(
  289. '_renderOn_',
  290. smalltalk.method({
  291. selector: 'renderOn:',
  292. fn: function (html){
  293. var self=this;
  294. self['@div']=(function($rec){smalltalk.send($rec, "_class_", ["jtalkTool"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_div", []));
  295. smalltalk.send(self, "_renderTab", []);
  296. return self;}
  297. }),
  298. smalltalk.TabWidget);
  299. smalltalk.addMethod(
  300. '_renderBoxOn_',
  301. smalltalk.method({
  302. selector: 'renderBoxOn:',
  303. fn: function (html){
  304. var self=this;
  305. return self;}
  306. }),
  307. smalltalk.TabWidget);
  308. smalltalk.addMethod(
  309. '_renderButtonsOn_',
  310. smalltalk.method({
  311. selector: 'renderButtonsOn:',
  312. fn: function (html){
  313. var self=this;
  314. return self;}
  315. }),
  316. smalltalk.TabWidget);
  317. smalltalk.addMethod(
  318. '_update',
  319. smalltalk.method({
  320. selector: 'update',
  321. fn: function (){
  322. var self=this;
  323. smalltalk.send(self, "_renderTab", []);
  324. return self;}
  325. }),
  326. smalltalk.TabWidget);
  327. smalltalk.addMethod(
  328. '_renderTab',
  329. smalltalk.method({
  330. selector: 'renderTab',
  331. fn: function (){
  332. var self=this;
  333. smalltalk.send(self['@div'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_class_", ["jt_box"]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(self, "_renderBoxOn_", [html]);})]);})(smalltalk.send(html, "_div", []));return (function($rec){smalltalk.send($rec, "_class_", ["jt_buttons"]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(self, "_renderButtonsOn_", [html]);})]);})(smalltalk.send(html, "_div", []));})]);
  334. return self;}
  335. }),
  336. smalltalk.TabWidget);
  337. smalltalk.addMethod(
  338. '_canBeClosed',
  339. smalltalk.method({
  340. selector: 'canBeClosed',
  341. fn: function (){
  342. var self=this;
  343. return false;
  344. return self;}
  345. }),
  346. smalltalk.TabWidget);
  347. smalltalk.addMethod(
  348. '_open',
  349. smalltalk.method({
  350. selector: 'open',
  351. fn: function (){
  352. var self=this;
  353. return smalltalk.send(smalltalk.send(self, "_new", []), "_open", []);
  354. return self;}
  355. }),
  356. smalltalk.TabWidget.klass);
  357. smalltalk.addClass('Workspace', smalltalk.TabWidget, ['sourceArea'], 'IDE');
  358. smalltalk.addMethod(
  359. '_label',
  360. smalltalk.method({
  361. selector: 'label',
  362. fn: function (){
  363. var self=this;
  364. return unescape("%5BWorkspace%5D");
  365. return self;}
  366. }),
  367. smalltalk.Workspace);
  368. smalltalk.addMethod(
  369. '_clearWorkspace',
  370. smalltalk.method({
  371. selector: 'clearWorkspace',
  372. fn: function (){
  373. var self=this;
  374. smalltalk.send(self['@sourceArea'], "_clear", []);
  375. return self;}
  376. }),
  377. smalltalk.Workspace);
  378. smalltalk.addMethod(
  379. '_doIt',
  380. smalltalk.method({
  381. selector: 'doIt',
  382. fn: function (){
  383. var self=this;
  384. smalltalk.send(self['@sourceArea'], "_doIt", []);
  385. return self;}
  386. }),
  387. smalltalk.Workspace);
  388. smalltalk.addMethod(
  389. '_printIt',
  390. smalltalk.method({
  391. selector: 'printIt',
  392. fn: function (){
  393. var self=this;
  394. smalltalk.send(self['@sourceArea'], "_printIt", []);
  395. return self;}
  396. }),
  397. smalltalk.Workspace);
  398. smalltalk.addMethod(
  399. '_inspectIt',
  400. smalltalk.method({
  401. selector: 'inspectIt',
  402. fn: function (){
  403. var self=this;
  404. smalltalk.send(self['@sourceArea'], "_inspectIt", []);
  405. return self;}
  406. }),
  407. smalltalk.Workspace);
  408. smalltalk.addMethod(
  409. '_renderBoxOn_',
  410. smalltalk.method({
  411. selector: 'renderBoxOn:',
  412. fn: function (html){
  413. var self=this;
  414. self['@sourceArea']=smalltalk.send(smalltalk.SourceArea, "_new", []);
  415. smalltalk.send(self['@sourceArea'], "_renderOn_", [html]);
  416. return self;}
  417. }),
  418. smalltalk.Workspace);
  419. smalltalk.addMethod(
  420. '_renderButtonsOn_',
  421. smalltalk.method({
  422. selector: 'renderButtonsOn:',
  423. fn: function (html){
  424. var self=this;
  425. (function($rec){smalltalk.send($rec, "_with_", ["DoIt"]);smalltalk.send($rec, "_title_", [unescape("ctrl+d")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_doIt", []);})]);})(smalltalk.send(html, "_button", []));
  426. (function($rec){smalltalk.send($rec, "_with_", ["PrintIt"]);smalltalk.send($rec, "_title_", [unescape("ctrl+p")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_printIt", []);})]);})(smalltalk.send(html, "_button", []));
  427. (function($rec){smalltalk.send($rec, "_with_", ["InspectIt"]);smalltalk.send($rec, "_title_", [unescape("ctrl+i")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_inspectIt", []);})]);})(smalltalk.send(html, "_button", []));
  428. (function($rec){smalltalk.send($rec, "_with_", ["Clear workspace"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_clearWorkspace", []);})]);})(smalltalk.send(html, "_button", []));
  429. return self;}
  430. }),
  431. smalltalk.Workspace);
  432. smalltalk.addClass('Transcript', smalltalk.TabWidget, ['textarea'], 'IDE');
  433. smalltalk.addMethod(
  434. '_label',
  435. smalltalk.method({
  436. selector: 'label',
  437. fn: function (){
  438. var self=this;
  439. return unescape("%5BTranscript%5D");
  440. return self;}
  441. }),
  442. smalltalk.Transcript);
  443. smalltalk.addMethod(
  444. '_show_',
  445. smalltalk.method({
  446. selector: 'show:',
  447. fn: function (anObject){
  448. var self=this;
  449. smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val_", [smalltalk.send(smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val", []), "__comma", [smalltalk.send(anObject, "_asString", [])])]);
  450. return self;}
  451. }),
  452. smalltalk.Transcript);
  453. smalltalk.addMethod(
  454. '_cr',
  455. smalltalk.method({
  456. selector: 'cr',
  457. fn: function (){
  458. var self=this;
  459. smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val_", [smalltalk.send(smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val", []), "__comma", [smalltalk.send(smalltalk.String, "_cr", [])])]);
  460. return self;}
  461. }),
  462. smalltalk.Transcript);
  463. smalltalk.addMethod(
  464. '_clear',
  465. smalltalk.method({
  466. selector: 'clear',
  467. fn: function (){
  468. var self=this;
  469. smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val_", [""]);
  470. return self;}
  471. }),
  472. smalltalk.Transcript);
  473. smalltalk.addMethod(
  474. '_renderBoxOn_',
  475. smalltalk.method({
  476. selector: 'renderBoxOn:',
  477. fn: function (html){
  478. var self=this;
  479. self['@textarea']=smalltalk.send(html, "_textarea", []);
  480. smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_call_", ["tabby"]);
  481. (function($rec){smalltalk.send($rec, "_class_", ["jt_transcript"]);return smalltalk.send($rec, "_at_put_", ["spellcheck", "false"]);})(self['@textarea']);
  482. return self;}
  483. }),
  484. smalltalk.Transcript);
  485. smalltalk.addMethod(
  486. '_renderButtonsOn_',
  487. smalltalk.method({
  488. selector: 'renderButtonsOn:',
  489. fn: function (html){
  490. var self=this;
  491. (function($rec){smalltalk.send($rec, "_with_", ["Clear transcript"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_clear", []);})]);})(smalltalk.send(html, "_button", []));
  492. return self;}
  493. }),
  494. smalltalk.Transcript);
  495. smalltalk.Transcript.klass.iVarNames = ['current'];
  496. smalltalk.addMethod(
  497. '_open',
  498. smalltalk.method({
  499. selector: 'open',
  500. fn: function (){
  501. var self=this;
  502. smalltalk.send(smalltalk.send(self, "_current", []), "_open", []);
  503. return self;}
  504. }),
  505. smalltalk.Transcript.klass);
  506. smalltalk.addMethod(
  507. '_new',
  508. smalltalk.method({
  509. selector: 'new',
  510. fn: function (){
  511. var self=this;
  512. smalltalk.send(self, "_shouldNotImplement", []);
  513. return self;}
  514. }),
  515. smalltalk.Transcript.klass);
  516. smalltalk.addMethod(
  517. '_current',
  518. smalltalk.method({
  519. selector: 'current',
  520. fn: function (){
  521. var self=this;
  522. return smalltalk.send(self['@current'], "_ifNil_", [(function(){return self['@current']=smalltalk.send(self, "_new", [], smalltalk.TabWidget.klass);})]);
  523. return self;}
  524. }),
  525. smalltalk.Transcript.klass);
  526. smalltalk.addMethod(
  527. '_show_',
  528. smalltalk.method({
  529. selector: 'show:',
  530. fn: function (anObject){
  531. var self=this;
  532. smalltalk.send(smalltalk.send(self, "_current", []), "_show_", [anObject]);
  533. return self;}
  534. }),
  535. smalltalk.Transcript.klass);
  536. smalltalk.addMethod(
  537. '_cr',
  538. smalltalk.method({
  539. selector: 'cr',
  540. fn: function (){
  541. var self=this;
  542. smalltalk.send(smalltalk.send(self, "_current", []), "_show_", [smalltalk.send(smalltalk.String, "_cr", [])]);
  543. return self;}
  544. }),
  545. smalltalk.Transcript.klass);
  546. smalltalk.addMethod(
  547. '_clear',
  548. smalltalk.method({
  549. selector: 'clear',
  550. fn: function (){
  551. var self=this;
  552. smalltalk.send(smalltalk.send(self, "_current", []), "_clear", []);
  553. return self;}
  554. }),
  555. smalltalk.Transcript.klass);
  556. smalltalk.addClass('Browser', smalltalk.TabWidget, ['selectedCategory', 'selectedClass', 'selectedProtocol', 'selectedMethod', 'commitButton', 'categoriesList', 'classesList', 'protocolsList', 'methodsList', 'sourceArea', 'tabsList', 'selectedTab', 'saveButton', 'classButtons', 'methodButtons', 'unsavedChanges', 'input'], 'IDE');
  557. smalltalk.addMethod(
  558. '_label',
  559. smalltalk.method({
  560. selector: 'label',
  561. fn: function (){
  562. var self=this;
  563. return smalltalk.send(self['@selectedClass'], "_ifNil_ifNotNil_", [(function(){return unescape("Browser%20%28nil%29");}), (function(){return smalltalk.send(self['@selectedClass'], "_name", []);})]);
  564. return self;}
  565. }),
  566. smalltalk.Browser);
  567. smalltalk.addMethod(
  568. '_categories',
  569. smalltalk.method({
  570. selector: 'categories',
  571. fn: function (){
  572. var self=this;
  573. var categories=nil;
  574. categories=smalltalk.send(smalltalk.Array, "_new", []);
  575. smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk, "_current", []), "_classes", []), "_do_", [(function(each){return smalltalk.send(smalltalk.send(categories, "_includes_", [smalltalk.send(each, "_category", [])]), "_ifFalse_", [(function(){return smalltalk.send(categories, "_add_", [smalltalk.send(each, "_category", [])]);})]);})]);
  576. return smalltalk.send(categories, "_sort", []);
  577. return self;}
  578. }),
  579. smalltalk.Browser);
  580. smalltalk.addMethod(
  581. '_classes',
  582. smalltalk.method({
  583. selector: 'classes',
  584. fn: function (){
  585. var self=this;
  586. return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk, "_current", []), "_classes", []), "_select_", [(function(each){return smalltalk.send(smalltalk.send(each, "_category", []), "__eq", [self['@selectedCategory']]);})]), "_sort_", [(function(a, b){return smalltalk.send(smalltalk.send(a, "_name", []), "__lt", [smalltalk.send(b, "_name", [])]);})]);
  587. return self;}
  588. }),
  589. smalltalk.Browser);
  590. smalltalk.addMethod(
  591. '_protocols',
  592. smalltalk.method({
  593. selector: 'protocols',
  594. fn: function (){
  595. var self=this;
  596. try{var klass=nil;
  597. smalltalk.send(self['@selectedClass'], "_ifNotNil_", [(function(){smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["comment"]), "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_protocols', fn: function(){return []}})})();})]);klass=smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["instance"]), "_ifTrue_ifFalse_", [(function(){return self['@selectedClass'];}), (function(){return smalltalk.send(self['@selectedClass'], "_class", []);})]);smalltalk.send(smalltalk.send(smalltalk.send(klass, "_methodDictionary", []), "_isEmpty", []), "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_protocols', fn: function(){return smalltalk.send(smalltalk.Array, "_with_", ["not yet classified"])}})})();})]);return (function(){throw({name: 'stReturn', selector: '_protocols', fn: function(){return smalltalk.send(klass, "_protocols", [])}})})();})]);
  598. (function(){throw({name: 'stReturn', selector: '_protocols', fn: function(){return smalltalk.send(smalltalk.Array, "_new", [])}})})();
  599. return self;
  600. } catch(e) {if(e.name === 'stReturn' && e.selector === '_protocols'){return e.fn()} throw(e)}}
  601. }),
  602. smalltalk.Browser);
  603. smalltalk.addMethod(
  604. '_methods',
  605. smalltalk.method({
  606. selector: 'methods',
  607. fn: function (){
  608. var self=this;
  609. try{var klass=nil;
  610. smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["comment"]), "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_methods', fn: function(){return []}})})();})]);
  611. smalltalk.send(self['@selectedClass'], "_ifNotNil_", [(function(){return klass=smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["instance"]), "_ifTrue_ifFalse_", [(function(){return self['@selectedClass'];}), (function(){return smalltalk.send(self['@selectedClass'], "_class", []);})]);})]);
  612. (function(){throw({name: 'stReturn', selector: '_methods', fn: function(){return smalltalk.send(smalltalk.send(self['@selectedProtocol'], "_ifNil_ifNotNil_", [(function(){return smalltalk.send(klass, "_ifNil_ifNotNil_", [(function(){return [];}), (function(){return smalltalk.send(smalltalk.send(klass, "_methodDictionary", []), "_values", []);})]);}), (function(){return smalltalk.send(smalltalk.send(smalltalk.send(klass, "_methodDictionary", []), "_values", []), "_select_", [(function(each){return smalltalk.send(smalltalk.send(each, "_category", []), "__eq", [self['@selectedProtocol']]);})]);})]), "_sort_", [(function(a, b){return smalltalk.send(smalltalk.send(a, "_selector", []), "__lt", [smalltalk.send(b, "_selector", [])]);})])}})})();
  613. return self;
  614. } catch(e) {if(e.name === 'stReturn' && e.selector === '_methods'){return e.fn()} throw(e)}}
  615. }),
  616. smalltalk.Browser);
  617. smalltalk.addMethod(
  618. '_source',
  619. smalltalk.method({
  620. selector: 'source',
  621. fn: function (){
  622. var self=this;
  623. try{smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["comment"]), "_ifFalse_", [(function(){return (function(){throw({name: 'stReturn', selector: '_source', fn: function(){return smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedProtocol'], "_notNil", []), "_or_", [(function(){return smalltalk.send(self['@selectedMethod'], "_notNil", []);})]), "_ifFalse_ifTrue_", [(function(){return smalltalk.send(self, "_declarationSource", []);}), (function(){return smalltalk.send(self, "_methodSource", []);})])}})})();})]);
  624. (function(){throw({name: 'stReturn', selector: '_source', fn: function(){return smalltalk.send(self['@selectedClass'], "_ifNil_ifNotNil_", [(function(){return "";}), (function(){return smalltalk.send(self, "_classCommentSource", []);})])}})})();
  625. return self;
  626. } catch(e) {if(e.name === 'stReturn' && e.selector === '_source'){return e.fn()} throw(e)}}
  627. }),
  628. smalltalk.Browser);
  629. smalltalk.addMethod(
  630. '_methodSource',
  631. smalltalk.method({
  632. selector: 'methodSource',
  633. fn: function (){
  634. var self=this;
  635. return smalltalk.send(self['@selectedMethod'], "_ifNil_ifNotNil_", [(function(){return smalltalk.send(self, "_dummyMethodSource", []);}), (function(){return smalltalk.send(self['@selectedMethod'], "_source", []);})]);
  636. return self;}
  637. }),
  638. smalltalk.Browser);
  639. smalltalk.addMethod(
  640. '_dummyMethodSource',
  641. smalltalk.method({
  642. selector: 'dummyMethodSource',
  643. fn: function (){
  644. var self=this;
  645. return unescape("messageSelectorAndArgumentNames%0A%09%22comment%20stating%20purpose%20of%20message%22%0A%0A%09%7C%20temporary%20variable%20names%20%7C%0A%09statements");
  646. return self;}
  647. }),
  648. smalltalk.Browser);
  649. smalltalk.addMethod(
  650. '_declarationSource',
  651. smalltalk.method({
  652. selector: 'declarationSource',
  653. fn: function (){
  654. var self=this;
  655. return smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["instance"]), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_classDeclarationSource", []);}), (function(){return smalltalk.send(self, "_metaclassDeclarationSource", []);})]);
  656. return self;}
  657. }),
  658. smalltalk.Browser);
  659. smalltalk.addMethod(
  660. '_classDeclarationSource',
  661. smalltalk.method({
  662. selector: 'classDeclarationSource',
  663. fn: function (){
  664. var self=this;
  665. var stream=nil;
  666. stream=smalltalk.send("", "_writeStream", []);
  667. smalltalk.send(self['@selectedClass'], "_ifNotNil_", [(function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self['@selectedClass'], "_superclass", []), "_asString", [])]);smalltalk.send($rec, "_nextPutAll_", [unescape("%20subclass%3A%20%23")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self['@selectedClass'], "_name", [])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.String, "_lf", []), "__comma", [smalltalk.send(smalltalk.String, "_tab", [])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("instanceVariableNames%3A%20%27")]);})(stream);smalltalk.send(smalltalk.send(self['@selectedClass'], "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(stream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(stream, "_nextPutAll_", [" "]);})]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [smalltalk.send(smalltalk.String, "_lf", [])]), "__comma", [smalltalk.send(smalltalk.String, "_tab", [])])]);smalltalk.send($rec, "_nextPutAll_", [unescape("category%3A%20%27")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self['@selectedClass'], "_category", [])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%27")]);})(stream);})]);
  668. return smalltalk.send(stream, "_contents", []);
  669. return self;}
  670. }),
  671. smalltalk.Browser);
  672. smalltalk.addMethod(
  673. '_metaclassDeclarationSource',
  674. smalltalk.method({
  675. selector: 'metaclassDeclarationSource',
  676. fn: function (){
  677. var self=this;
  678. var stream=nil;
  679. stream=smalltalk.send("", "_writeStream", []);
  680. smalltalk.send(self['@selectedClass'], "_ifNotNil_", [(function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self['@selectedClass'], "_asString", [])]);smalltalk.send($rec, "_nextPutAll_", [" class "]);return smalltalk.send($rec, "_nextPutAll_", [unescape("instanceVariableNames%3A%20%27")]);})(stream);smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(stream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(stream, "_nextPutAll_", [" "]);})]);return smalltalk.send(stream, "_nextPutAll_", [unescape("%27")]);})]);
  681. return smalltalk.send(stream, "_contents", []);
  682. return self;}
  683. }),
  684. smalltalk.Browser);
  685. smalltalk.addMethod(
  686. '_classCommentSource',
  687. smalltalk.method({
  688. selector: 'classCommentSource',
  689. fn: function (){
  690. var self=this;
  691. return smalltalk.send(self['@selectedClass'], "_comment", []);
  692. return self;}
  693. }),
  694. smalltalk.Browser);
  695. smalltalk.addMethod(
  696. '_selectedClass',
  697. smalltalk.method({
  698. selector: 'selectedClass',
  699. fn: function (){
  700. var self=this;
  701. return self['@selectedClass'];
  702. return self;}
  703. }),
  704. smalltalk.Browser);
  705. smalltalk.addMethod(
  706. '_disableSaveButton',
  707. smalltalk.method({
  708. selector: 'disableSaveButton',
  709. fn: function (){
  710. var self=this;
  711. smalltalk.send(self['@saveButton'], "_ifNotNil_", [(function(){return smalltalk.send(self['@saveButton'], "_at_put_", ["disabled", true]);})]);
  712. self['@unsavedChanges']=false;
  713. return self;}
  714. }),
  715. smalltalk.Browser);
  716. smalltalk.addMethod(
  717. '_hideClassButtons',
  718. smalltalk.method({
  719. selector: 'hideClassButtons',
  720. fn: function (){
  721. var self=this;
  722. smalltalk.send(smalltalk.send(self['@classButtons'], "_asJQuery", []), "_hide", []);
  723. return self;}
  724. }),
  725. smalltalk.Browser);
  726. smalltalk.addMethod(
  727. '_showClassButtons',
  728. smalltalk.method({
  729. selector: 'showClassButtons',
  730. fn: function (){
  731. var self=this;
  732. smalltalk.send(smalltalk.send(self['@classButtons'], "_asJQuery", []), "_show", []);
  733. return self;}
  734. }),
  735. smalltalk.Browser);
  736. smalltalk.addMethod(
  737. '_hideMethodButtons',
  738. smalltalk.method({
  739. selector: 'hideMethodButtons',
  740. fn: function (){
  741. var self=this;
  742. smalltalk.send(smalltalk.send(self['@methodButtons'], "_asJQuery", []), "_hide", []);
  743. return self;}
  744. }),
  745. smalltalk.Browser);
  746. smalltalk.addMethod(
  747. '_showMethodButtons',
  748. smalltalk.method({
  749. selector: 'showMethodButtons',
  750. fn: function (){
  751. var self=this;
  752. smalltalk.send(smalltalk.send(self['@methodButtons'], "_asJQuery", []), "_show", []);
  753. return self;}
  754. }),
  755. smalltalk.Browser);
  756. smalltalk.addMethod(
  757. '_compile',
  758. smalltalk.method({
  759. selector: 'compile',
  760. fn: function (){
  761. var self=this;
  762. smalltalk.send(self, "_disableSaveButton", []);
  763. smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["comment"]), "_ifTrue_", [(function(){return smalltalk.send(self['@selectedClass'], "_ifNotNil_", [(function(){return smalltalk.send(self, "_compileClassComment", []);})]);})]);
  764. smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedProtocol'], "_notNil", []), "_or_", [(function(){return smalltalk.send(self['@selectedMethod'], "_notNil", []);})]), "_ifFalse_ifTrue_", [(function(){return smalltalk.send(self, "_compileDefinition", []);}), (function(){return smalltalk.send(self, "_compileMethodDefinition", []);})]);
  765. return self;}
  766. }),
  767. smalltalk.Browser);
  768. smalltalk.addMethod(
  769. '_compileClassComment',
  770. smalltalk.method({
  771. selector: 'compileClassComment',
  772. fn: function (){
  773. var self=this;
  774. smalltalk.send(self['@selectedClass'], "_comment_", [smalltalk.send(self['@sourceArea'], "_val", [])]);
  775. return self;}
  776. }),
  777. smalltalk.Browser);
  778. smalltalk.addMethod(
  779. '_compileMethodDefinition',
  780. smalltalk.method({
  781. selector: 'compileMethodDefinition',
  782. fn: function (){
  783. var self=this;
  784. smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["instance"]), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_compileMethodDefinitionFor_", [self['@selectedClass']]);}), (function(){return smalltalk.send(self, "_compileMethodDefinitionFor_", [smalltalk.send(self['@selectedClass'], "_class", [])]);})]);
  785. return self;}
  786. }),
  787. smalltalk.Browser);
  788. smalltalk.addMethod(
  789. '_compileMethodDefinitionFor_',
  790. smalltalk.method({
  791. selector: 'compileMethodDefinitionFor:',
  792. fn: function (aClass){
  793. var self=this;
  794. try{var compiler=nil;
  795. var method=nil;
  796. var source=nil;
  797. var node=nil;
  798. source=smalltalk.send(self['@sourceArea'], "_val", []);
  799. smalltalk.send(self['@selectedProtocol'], "_ifNil_", [(function(){return self['@selectedProtocol']=smalltalk.send(self['@selectedMethod'], "_category", []);})]);
  800. compiler=smalltalk.send(smalltalk.Compiler, "_new", []);
  801. node=smalltalk.send(compiler, "_parse_", [source]);
  802. smalltalk.send(smalltalk.send(node, "_isParseFailure", []), "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_compileMethodDefinitionFor_', fn: function(){return smalltalk.send(self, "_alert_", [smalltalk.send(smalltalk.send(smalltalk.send("PARSE ERROR: ", "__comma", [smalltalk.send(node, "_reason", [])]), "__comma", [unescape("%2C%20position%3A%20")]), "__comma", [smalltalk.send(smalltalk.send(node, "_position", []), "_asString", [])])])}})})();})]);
  803. smalltalk.send(compiler, "_currentClass_", [aClass]);
  804. method=smalltalk.send(compiler, "_eval_", [smalltalk.send(compiler, "_compileNode_", [node])]);
  805. smalltalk.send(method, "_category_", [self['@selectedProtocol']]);
  806. smalltalk.send(smalltalk.send(compiler, "_unknownVariables", []), "_do_", [(function(each){return smalltalk.send(smalltalk.send(self, "_confirm_", [smalltalk.send(smalltalk.send(unescape("Declare%20%27"), "__comma", [each]), "__comma", [unescape("%27%20as%20instance%20variable%3F")])]), "_ifTrue_", [(function(){smalltalk.send(self, "_addInstanceVariableNamed_toClass_", [each, aClass]);return (function(){throw({name: 'stReturn', selector: '_compileMethodDefinitionFor_', fn: function(){return smalltalk.send(self, "_compileMethodDefinitionFor_", [aClass])}})})();})]);})]);
  807. smalltalk.send(aClass, "_addCompiledMethod_", [method]);
  808. smalltalk.send(compiler, "_setupClass_", [aClass]);
  809. smalltalk.send(self, "_updateMethodsList", []);
  810. smalltalk.send(self, "_selectMethod_", [method]);
  811. return self;
  812. } catch(e) {if(e.name === 'stReturn' && e.selector === '_compileMethodDefinitionFor_'){return e.fn()} throw(e)}}
  813. }),
  814. smalltalk.Browser);
  815. smalltalk.addMethod(
  816. '_compileDefinition',
  817. smalltalk.method({
  818. selector: 'compileDefinition',
  819. fn: function (){
  820. var self=this;
  821. var newClass=nil;
  822. newClass=smalltalk.send(smalltalk.send(smalltalk.Compiler, "_new", []), "_loadExpression_", [smalltalk.send(self['@sourceArea'], "_val", [])]);
  823. (function($rec){smalltalk.send($rec, "_resetClassesList", []);smalltalk.send($rec, "_updateCategoriesList", []);return smalltalk.send($rec, "_updateClassesList", []);})(self);
  824. return self;}
  825. }),
  826. smalltalk.Browser);
  827. smalltalk.addMethod(
  828. '_commitCategory',
  829. smalltalk.method({
  830. selector: 'commitCategory',
  831. fn: function (){
  832. var self=this;
  833. smalltalk.send(self['@selectedCategory'], "_ifNotNil_", [(function(){(function($rec){smalltalk.send($rec, "_at_put_", ["type", "PUT"]);smalltalk.send($rec, "_at_put_", ["data", smalltalk.send(smalltalk.send(smalltalk.Exporter, "_new", []), "_exportCategory_", [self['@selectedCategory']])]);smalltalk.send($rec, "_at_put_", ["error", (function(){return smalltalk.send(self, "_alert_", [unescape("Commit%20failed%21")]);})]);return smalltalk.send($rec, "_send", []);})(smalltalk.send(smalltalk.Ajax, "_url_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_commitPathJs", []), "__comma", [unescape("/")]), "__comma", [self['@selectedCategory']]), "__comma", [".js"])]));(function($rec){smalltalk.send($rec, "_at_put_", ["type", "PUT"]);smalltalk.send($rec, "_at_put_", ["data", smalltalk.send(smalltalk.send(smalltalk.StrippedExporter, "_new", []), "_exportCategory_", [self['@selectedCategory']])]);smalltalk.send($rec, "_at_put_", ["error", (function(){return smalltalk.send(self, "_alert_", [unescape("Commit%20failed%21")]);})]);return smalltalk.send($rec, "_send", []);})(smalltalk.send(smalltalk.Ajax, "_url_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_commitPathJs", []), "__comma", [unescape("/")]), "__comma", [self['@selectedCategory']]), "__comma", [".deploy.js"])]));return (function($rec){smalltalk.send($rec, "_at_put_", ["type", "PUT"]);smalltalk.send($rec, "_at_put_", ["data", smalltalk.send(smalltalk.send(smalltalk.ChunkExporter, "_new", []), "_exportCategory_", [self['@selectedCategory']])]);smalltalk.send($rec, "_at_put_", ["error", (function(){return smalltalk.send(self, "_alert_", [unescape("Commit%20failed%21")]);})]);return smalltalk.send($rec, "_send", []);})(smalltalk.send(smalltalk.Ajax, "_url_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_commitPathSt", []), "__comma", [unescape("/")]), "__comma", [self['@selectedCategory']]), "__comma", [".st"])]));})]);
  834. return self;}
  835. }),
  836. smalltalk.Browser);
  837. smalltalk.addMethod(
  838. '_cancelChanges',
  839. smalltalk.method({
  840. selector: 'cancelChanges',
  841. fn: function (){
  842. var self=this;
  843. return smalltalk.send(self['@unsavedChanges'], "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_confirm_", [unescape("Cancel%20changes%3F")]);}), (function(){return true;})]);
  844. return self;}
  845. }),
  846. smalltalk.Browser);
  847. smalltalk.addMethod(
  848. '_removeClass',
  849. smalltalk.method({
  850. selector: 'removeClass',
  851. fn: function (){
  852. var self=this;
  853. smalltalk.send(smalltalk.send(self, "_confirm_", [smalltalk.send(smalltalk.send("Do you really want to remove ", "__comma", [smalltalk.send(self['@selectedClass'], "_name", [])]), "__comma", [unescape("%3F")])]), "_ifTrue_", [(function(){smalltalk.send(smalltalk.send(smalltalk.Smalltalk, "_current", []), "_removeClass_", [self['@selectedClass']]);smalltalk.send(self, "_resetClassesList", []);return smalltalk.send(self, "_selectClass_", [nil]);})]);
  854. return self;}
  855. }),
  856. smalltalk.Browser);
  857. smalltalk.addMethod(
  858. '_removeMethod',
  859. smalltalk.method({
  860. selector: 'removeMethod',
  861. fn: function (){
  862. var self=this;
  863. smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_confirm_", [smalltalk.send(smalltalk.send(unescape("Do%20you%20really%20want%20to%20remove%20%23"), "__comma", [smalltalk.send(self['@selectedMethod'], "_selector", [])]), "__comma", [unescape("%3F")])]), "_ifTrue_", [(function(){smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["instance"]), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@selectedClass'], "_removeCompiledMethod_", [self['@selectedMethod']]);}), (function(){return smalltalk.send(smalltalk.send(self['@selectedClass'], "_class", []), "_removeCompiledMethod_", [self['@selectedMethod']]);})]);return smalltalk.send(self, "_selectMethod_", [nil]);})]);})]);
  864. return self;}
  865. }),
  866. smalltalk.Browser);
  867. smalltalk.addMethod(
  868. '_setMethodProtocol_',
  869. smalltalk.method({
  870. selector: 'setMethodProtocol:',
  871. fn: function (aString){
  872. var self=this;
  873. smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(self, "_protocols", []), "_includes_", [aString]), "_ifFalse_ifTrue_", [(function(){return smalltalk.send(self, "_addNewProtocol", []);}), (function(){smalltalk.send(self['@selectedMethod'], "_category_", [aString]);self['@selectedProtocol']=aString;self['@selectedMethod']=self['@selectedMethod'];return (function($rec){smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);})(self);})]);})]);
  874. return self;}
  875. }),
  876. smalltalk.Browser);
  877. smalltalk.addMethod(
  878. '_addNewProtocol',
  879. smalltalk.method({
  880. selector: 'addNewProtocol',
  881. fn: function (){
  882. var self=this;
  883. var newProtocol=nil;
  884. newProtocol=smalltalk.send(self, "_prompt_", ["New method protocol"]);
  885. smalltalk.send(smalltalk.send(newProtocol, "_notEmpty", []), "_ifTrue_", [(function(){smalltalk.send(self['@selectedMethod'], "_category_", [newProtocol]);return smalltalk.send(self, "_setMethodProtocol_", [newProtocol]);})]);
  886. return self;}
  887. }),
  888. smalltalk.Browser);
  889. smalltalk.addMethod(
  890. '_selectCategory_',
  891. smalltalk.method({
  892. selector: 'selectCategory:',
  893. fn: function (aCategory){
  894. var self=this;
  895. smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){self['@selectedCategory']=aCategory;self['@selectedClass']=self['@selectedProtocol']=self['@selectedMethod']=nil;smalltalk.send(self, "_resetClassesList", []);return (function($rec){smalltalk.send($rec, "_updateCategoriesList", []);smalltalk.send($rec, "_updateClassesList", []);smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);})(self);})]);
  896. return self;}
  897. }),
  898. smalltalk.Browser);
  899. smalltalk.addMethod(
  900. '_selectClass_',
  901. smalltalk.method({
  902. selector: 'selectClass:',
  903. fn: function (aClass){
  904. var self=this;
  905. smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){self['@selectedClass']=aClass;self['@selectedProtocol']=self['@selectedMethod']=nil;return (function($rec){smalltalk.send($rec, "_updateClassesList", []);smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);})(self);})]);
  906. return self;}
  907. }),
  908. smalltalk.Browser);
  909. smalltalk.addMethod(
  910. '_selectProtocol_',
  911. smalltalk.method({
  912. selector: 'selectProtocol:',
  913. fn: function (aString){
  914. var self=this;
  915. smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){self['@selectedProtocol']=aString;self['@selectedMethod']=nil;return (function($rec){smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);})(self);})]);
  916. return self;}
  917. }),
  918. smalltalk.Browser);
  919. smalltalk.addMethod(
  920. '_selectMethod_',
  921. smalltalk.method({
  922. selector: 'selectMethod:',
  923. fn: function (aMethod){
  924. var self=this;
  925. smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){self['@selectedMethod']=aMethod;return (function($rec){smalltalk.send($rec, "_updateProtocolsList", []);smalltalk.send($rec, "_updateMethodsList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);})(self);})]);
  926. return self;}
  927. }),
  928. smalltalk.Browser);
  929. smalltalk.addMethod(
  930. '_selectTab_',
  931. smalltalk.method({
  932. selector: 'selectTab:',
  933. fn: function (aString){
  934. var self=this;
  935. smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){self['@selectedTab']=aString;smalltalk.send(self, "_selectProtocol_", [nil]);return smalltalk.send(self, "_updateTabsList", []);})]);
  936. return self;}
  937. }),
  938. smalltalk.Browser);
  939. smalltalk.addMethod(
  940. '_renameClass',
  941. smalltalk.method({
  942. selector: 'renameClass',
  943. fn: function (){
  944. var self=this;
  945. var newName=nil;
  946. newName=smalltalk.send(self, "_prompt_", [smalltalk.send("Rename class ", "__comma", [smalltalk.send(self['@selectedClass'], "_name", [])])]);
  947. smalltalk.send(smalltalk.send(newName, "_notEmpty", []), "_ifTrue_", [(function(){smalltalk.send(self['@selectedClass'], "_rename_", [newName]);return (function($rec){smalltalk.send($rec, "_updateClassesList", []);return smalltalk.send($rec, "_updateSourceAndButtons", []);})(self);})]);
  948. return self;}
  949. }),
  950. smalltalk.Browser);
  951. smalltalk.addMethod(
  952. '_addInstanceVariableNamed_toClass_',
  953. smalltalk.method({
  954. selector: 'addInstanceVariableNamed:toClass:',
  955. fn: function (aString, aClass){
  956. var self=this;
  957. smalltalk.send(smalltalk.send(smalltalk.ClassBuilder, "_new", []), "_addSubclassOf_named_instanceVariableNames_", [smalltalk.send(aClass, "_superclass", []), smalltalk.send(aClass, "_name", []), (function($rec){smalltalk.send($rec, "_add_", [aString]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_copy", []))]);
  958. return self;}
  959. }),
  960. smalltalk.Browser);
  961. smalltalk.addMethod(
  962. '_searchReferencesOf_',
  963. smalltalk.method({
  964. selector: 'searchReferencesOf:',
  965. fn: function (aString){
  966. var self=this;
  967. smalltalk.send(smalltalk.ReferencesBrowser, "_search_", [aString]);
  968. return self;}
  969. }),
  970. smalltalk.Browser);
  971. smalltalk.addMethod(
  972. '_searchClassReferences',
  973. smalltalk.method({
  974. selector: 'searchClassReferences',
  975. fn: function (){
  976. var self=this;
  977. smalltalk.send(smalltalk.ReferencesBrowser, "_search_", [smalltalk.send(self['@selectedClass'], "_name", [])]);
  978. return self;}
  979. }),
  980. smalltalk.Browser);
  981. smalltalk.addMethod(
  982. '_search_',
  983. smalltalk.method({
  984. selector: 'search:',
  985. fn: function (aString){
  986. var self=this;
  987. smalltalk.send(smalltalk.send(self, "_cancelChanges", []), "_ifTrue_", [(function(){var searchedClass=nil;
  988. searchedClass=smalltalk.send(smalltalk.send(smalltalk.Smalltalk, "_current", []), "_at_", [aString]);return smalltalk.send(smalltalk.send(searchedClass, "_isClass", []), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(self, "_class", []), "_openOn_", [searchedClass]);}), (function(){return smalltalk.send(self, "_searchReferencesOf_", [aString]);})]);})]);
  989. return self;}
  990. }),
  991. smalltalk.Browser);
  992. smalltalk.addMethod(
  993. '_initialize',
  994. smalltalk.method({
  995. selector: 'initialize',
  996. fn: function (){
  997. var self=this;
  998. smalltalk.send(self, "_initialize", [], smalltalk.TabWidget);
  999. self['@selectedTab']="instance";
  1000. self['@unsavedChanges']=false;
  1001. return self;}
  1002. }),
  1003. smalltalk.Browser);
  1004. smalltalk.addMethod(
  1005. '_renderBoxOn_',
  1006. smalltalk.method({
  1007. selector: 'renderBoxOn:',
  1008. fn: function (html){
  1009. var self=this;
  1010. (function($rec){smalltalk.send($rec, "_renderTopPanelOn_", [html]);smalltalk.send($rec, "_renderTabsOn_", [html]);return smalltalk.send($rec, "_renderBottomPanelOn_", [html]);})(self);
  1011. return self;}
  1012. }),
  1013. smalltalk.Browser);
  1014. smalltalk.addMethod(
  1015. '_renderTopPanelOn_',
  1016. smalltalk.method({
  1017. selector: 'renderTopPanelOn:',
  1018. fn: function (html){
  1019. var self=this;
  1020. (function($rec){smalltalk.send($rec, "_class_", ["top"]);return smalltalk.send($rec, "_with_", [(function(){smalltalk.send(self, "_renderInputOn_", [html]);self['@categoriesList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column browser categories"]);self['@commitButton']=(function($rec){smalltalk.send($rec, "_class_", ["jt_commit"]);smalltalk.send($rec, "_title_", ["Commit classes in this category to disk"]);smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_commitCategory", []);})]);return smalltalk.send($rec, "_with_", ["Commit category"]);})(smalltalk.send(html, "_button", []));self['@classesList']=smalltalk.send(smalltalk.ClassesList, "_on_", [self]);smalltalk.send(self['@classesList'], "_renderOn_", [html]);self['@protocolsList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column browser protocols"]);self['@methodsList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column browser methods"]);(function($rec){smalltalk.send($rec, "_updateCategoriesList", []);smalltalk.send($rec, "_updateClassesList", []);smalltalk.send($rec, "_updateProtocolsList", []);return smalltalk.send($rec, "_updateMethodsList", []);})(self);return smalltalk.send(smalltalk.send(html, "_div", []), "_class_", ["jt_clear"]);})]);})(smalltalk.send(html, "_div", []));
  1021. return self;}
  1022. }),
  1023. smalltalk.Browser);
  1024. smalltalk.addMethod(
  1025. '_renderTabsOn_',
  1026. smalltalk.method({
  1027. selector: 'renderTabsOn:',
  1028. fn: function (html){
  1029. var self=this;
  1030. self['@tabsList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_tabs"]);
  1031. smalltalk.send(self, "_updateTabsList", []);
  1032. return self;}
  1033. }),
  1034. smalltalk.Browser);
  1035. smalltalk.addMethod(
  1036. '_renderBottomPanelOn_',
  1037. smalltalk.method({
  1038. selector: 'renderBottomPanelOn:',
  1039. fn: function (html){
  1040. var self=this;
  1041. (function($rec){smalltalk.send($rec, "_class_", ["jt_sourceCode"]);return smalltalk.send($rec, "_with_", [(function(){self['@sourceArea']=smalltalk.send(smalltalk.SourceArea, "_new", []);smalltalk.send(self['@sourceArea'], "_renderOn_", [html]);return smalltalk.send(self['@sourceArea'], "_onKeyUp_", [(function(){return smalltalk.send(self, "_updateStatus", []);})]);})]);})(smalltalk.send(html, "_div", []));
  1042. return self;}
  1043. }),
  1044. smalltalk.Browser);
  1045. smalltalk.addMethod(
  1046. '_renderButtonsOn_',
  1047. smalltalk.method({
  1048. selector: 'renderButtonsOn:',
  1049. fn: function (html){
  1050. var self=this;
  1051. self['@saveButton']=smalltalk.send(html, "_button", []);
  1052. (function($rec){smalltalk.send($rec, "_with_", ["Save"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_compile", []);})]);})(self['@saveButton']);
  1053. self['@methodButtons']=smalltalk.send(html, "_span", []);
  1054. self['@classButtons']=smalltalk.send(html, "_span", []);
  1055. (function($rec){smalltalk.send($rec, "_class_", ["right"]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_with_", ["DoIt"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self['@sourceArea'], "_doIt", []);})]);})(smalltalk.send(html, "_button", []));(function($rec){smalltalk.send($rec, "_with_", ["PrintIt"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self['@sourceArea'], "_printIt", []);})]);})(smalltalk.send(html, "_button", []));return (function($rec){smalltalk.send($rec, "_with_", ["InspectIt"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self['@sourceArea'], "_inspectit", []);})]);})(smalltalk.send(html, "_button", []));})]);})(smalltalk.send(html, "_div", []));
  1056. smalltalk.send(self, "_updateSourceAndButtons", []);
  1057. return self;}
  1058. }),
  1059. smalltalk.Browser);
  1060. smalltalk.addMethod(
  1061. '_renderInputOn_',
  1062. smalltalk.method({
  1063. selector: 'renderInputOn:',
  1064. fn: function (html){
  1065. var self=this;
  1066. self['@input']=(function($rec){smalltalk.send($rec, "_class_", ["implementors"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_input", []));
  1067. smalltalk.send(self['@input'], "_onKeyPress_", [(function(event){return smalltalk.send(smalltalk.send(smalltalk.send(event, "_keyCode", []), "__eq", [(13)]), "_ifTrue_", [(function(){return smalltalk.send(self, "_search_", [smalltalk.send(smalltalk.send(self['@input'], "_asJQuery", []), "_val", [])]);})]);})]);
  1068. return self;}
  1069. }),
  1070. smalltalk.Browser);
  1071. smalltalk.addMethod(
  1072. '_canBeClosed',
  1073. smalltalk.method({
  1074. selector: 'canBeClosed',
  1075. fn: function (){
  1076. var self=this;
  1077. return true;
  1078. return self;}
  1079. }),
  1080. smalltalk.Browser);
  1081. smalltalk.addMethod(
  1082. '_updateCategoriesList',
  1083. smalltalk.method({
  1084. selector: 'updateCategoriesList',
  1085. fn: function (){
  1086. var self=this;
  1087. smalltalk.send(self['@categoriesList'], "_contents_", [(function(html){return smalltalk.send(smalltalk.send(self, "_categories", []), "_do_", [(function(each){var li=nil;
  1088. var label=nil;
  1089. smalltalk.send(smalltalk.send(each, "_isEmpty", []), "_ifTrue_ifFalse_", [(function(){return label="Unclassified";}), (function(){return label=each;})]);li=smalltalk.send(html, "_li", []);smalltalk.send(smalltalk.send(self['@selectedCategory'], "__eq", [each]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);return (function($rec){smalltalk.send($rec, "_with_", [label]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectCategory_", [each]);})]);})(li);})]);})]);
  1090. return self;}
  1091. }),
  1092. smalltalk.Browser);
  1093. smalltalk.addMethod(
  1094. '_updateClassesList',
  1095. smalltalk.method({
  1096. selector: 'updateClassesList',
  1097. fn: function (){
  1098. var self=this;
  1099. smalltalk.send(smalltalk.send(smalltalk.TabManager, "_current", []), "_update", []);
  1100. smalltalk.send(self['@classesList'], "_updateNodes", []);
  1101. return self;}
  1102. }),
  1103. smalltalk.Browser);
  1104. smalltalk.addMethod(
  1105. '_updateProtocolsList',
  1106. smalltalk.method({
  1107. selector: 'updateProtocolsList',
  1108. fn: function (){
  1109. var self=this;
  1110. smalltalk.send(self['@protocolsList'], "_contents_", [(function(html){return smalltalk.send(smalltalk.send(self, "_protocols", []), "_do_", [(function(each){var li=nil;
  1111. li=smalltalk.send(html, "_li", []);smalltalk.send(smalltalk.send(self['@selectedProtocol'], "__eq", [each]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);return (function($rec){smalltalk.send($rec, "_with_", [each]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectProtocol_", [each]);})]);})(li);})]);})]);
  1112. return self;}
  1113. }),
  1114. smalltalk.Browser);
  1115. smalltalk.addMethod(
  1116. '_updateMethodsList',
  1117. smalltalk.method({
  1118. selector: 'updateMethodsList',
  1119. fn: function (){
  1120. var self=this;
  1121. smalltalk.send(self['@methodsList'], "_contents_", [(function(html){return smalltalk.send(smalltalk.send(self, "_methods", []), "_do_", [(function(each){var li=nil;
  1122. li=smalltalk.send(html, "_li", []);smalltalk.send(smalltalk.send(self['@selectedMethod'], "__eq", [each]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);return (function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(each, "_selector", [])]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectMethod_", [each]);})]);})(li);})]);})]);
  1123. return self;}
  1124. }),
  1125. smalltalk.Browser);
  1126. smalltalk.addMethod(
  1127. '_updateTabsList',
  1128. smalltalk.method({
  1129. selector: 'updateTabsList',
  1130. fn: function (){
  1131. var self=this;
  1132. smalltalk.send(self['@tabsList'], "_contents_", [(function(html){var li=nil;
  1133. li=smalltalk.send(html, "_li", []);smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["instance"]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);(function($rec){smalltalk.send($rec, "_with_", ["Instance"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectTab_", ["instance"]);})]);})(li);li=smalltalk.send(html, "_li", []);smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["class"]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);(function($rec){smalltalk.send($rec, "_with_", ["Class"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectTab_", ["class"]);})]);})(li);li=smalltalk.send(html, "_li", []);smalltalk.send(smalltalk.send(self['@selectedTab'], "__eq", ["comment"]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);return (function($rec){smalltalk.send($rec, "_with_", ["Comment"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectTab_", ["comment"]);})]);})(li);})]);
  1134. return self;}
  1135. }),
  1136. smalltalk.Browser);
  1137. smalltalk.addMethod(
  1138. '_updateSourceAndButtons',
  1139. smalltalk.method({
  1140. selector: 'updateSourceAndButtons',
  1141. fn: function (){
  1142. var self=this;
  1143. smalltalk.send(self, "_disableSaveButton", []);
  1144. smalltalk.send(self['@classButtons'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_with_", ["Rename class"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_renameClass", []);})]);})(smalltalk.send(html, "_button", []));(function($rec){smalltalk.send($rec, "_with_", ["Remove class"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_removeClass", []);})]);})(smalltalk.send(html, "_button", []));return (function($rec){smalltalk.send($rec, "_with_", ["References"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_searchClassReferences", []);})]);})(smalltalk.send(html, "_button", []));})]);
  1145. smalltalk.send(self['@methodButtons'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_with_", ["Remove method"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_removeMethod", []);})]);})(smalltalk.send(html, "_button", []));(function($rec){smalltalk.send($rec, "_onChange_", [(function(e, select){return smalltalk.send(self, "_setMethodProtocol_", [smalltalk.send(select, "_val", [])]);})]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_with_", ["Method protocol"]);return smalltalk.send($rec, "_at_put_", ["disabled", "disabled"]);})(smalltalk.send(html, "_option", []));(function($rec){smalltalk.send($rec, "_class_", ["important"]);return smalltalk.send($rec, "_with_", ["New..."]);})(smalltalk.send(html, "_option", []));return smalltalk.send(smalltalk.send(self, "_protocols", []), "_do_", [(function(each){return smalltalk.send(smalltalk.send(html, "_option", []), "_with_", [each]);})]);})]);})(smalltalk.send(html, "_select", []));return smalltalk.send(smalltalk.send(self['@selectedMethod'], "_isNil", []), "_ifFalse_", [(function(){return (function($rec){smalltalk.send($rec, "_onChange_", [(function(e, select){return smalltalk.send(self, "_searchReferencesOf_", [smalltalk.send(select, "_val", [])]);})]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_with_", ["References"]);return smalltalk.send($rec, "_at_put_", ["disabled", "disabled"]);})(smalltalk.send(html, "_option", []));(function($rec){smalltalk.send($rec, "_class_", ["important"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@selectedMethod'], "_selector", [])]);})(smalltalk.send(html, "_option", []));return smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedMethod'], "_messageSends", []), "_sorted", []), "_do_", [(function(each){return smalltalk.send(smalltalk.send(html, "_option", []), "_with_", [each]);})]);})]);})(smalltalk.send(html, "_select", []));})]);})]);
  1146. smalltalk.send(smalltalk.send(self['@selectedMethod'], "_isNil", []), "_ifTrue_ifFalse_", [(function(){smalltalk.send(self, "_hideMethodButtons", []);return smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedClass'], "_isNil", []), "_or_", [(function(){return smalltalk.send(self['@selectedProtocol'], "_notNil", []);})]), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_hideClassButtons", []);}), (function(){return smalltalk.send(self, "_showClassButtons", []);})]);}), (function(){smalltalk.send(self, "_hideClassButtons", []);return smalltalk.send(self, "_showMethodButtons", []);})]);
  1147. smalltalk.send(self['@sourceArea'], "_val_", [smalltalk.send(self, "_source", [])]);
  1148. return self;}
  1149. }),
  1150. smalltalk.Browser);
  1151. smalltalk.addMethod(
  1152. '_updateStatus',
  1153. smalltalk.method({
  1154. selector: 'updateStatus',
  1155. fn: function (){
  1156. var self=this;
  1157. smalltalk.send(smalltalk.send(smalltalk.send(self['@sourceArea'], "_val", []), "__eq", [smalltalk.send(self, "_source", [])]), "_ifTrue_ifFalse_", [(function(){smalltalk.send(self['@saveButton'], "_ifNotNil_", [(function(){return smalltalk.send(self['@saveButton'], "_at_put_", ["disabled", true]);})]);return self['@unsavedChanges']=false;}), (function(){smalltalk.send(self['@saveButton'], "_ifNotNil_", [(function(){return smalltalk.send(self['@saveButton'], "_removeAt_", ["disabled"]);})]);return self['@unsavedChanges']=true;})]);
  1158. return self;}
  1159. }),
  1160. smalltalk.Browser);
  1161. smalltalk.addMethod(
  1162. '_resetClassesList',
  1163. smalltalk.method({
  1164. selector: 'resetClassesList',
  1165. fn: function (){
  1166. var self=this;
  1167. smalltalk.send(self['@classesList'], "_resetNodes", []);
  1168. return self;}
  1169. }),
  1170. smalltalk.Browser);
  1171. smalltalk.addMethod(
  1172. '_commitPathJs',
  1173. smalltalk.method({
  1174. selector: 'commitPathJs',
  1175. fn: function (){
  1176. var self=this;
  1177. return "js";
  1178. return self;}
  1179. }),
  1180. smalltalk.Browser.klass);
  1181. smalltalk.addMethod(
  1182. '_commitPathSt',
  1183. smalltalk.method({
  1184. selector: 'commitPathSt',
  1185. fn: function (){
  1186. var self=this;
  1187. return "st";
  1188. return self;}
  1189. }),
  1190. smalltalk.Browser.klass);
  1191. smalltalk.addMethod(
  1192. '_openOn_',
  1193. smalltalk.method({
  1194. selector: 'openOn:',
  1195. fn: function (aClass){
  1196. var self=this;
  1197. return (function($rec){smalltalk.send($rec, "_open", []);smalltalk.send($rec, "_selectCategory_", [smalltalk.send(aClass, "_category", [])]);return smalltalk.send($rec, "_selectClass_", [aClass]);})(smalltalk.send(self, "_new", []));
  1198. return self;}
  1199. }),
  1200. smalltalk.Browser.klass);
  1201. smalltalk.addMethod(
  1202. '_open',
  1203. smalltalk.method({
  1204. selector: 'open',
  1205. fn: function (){
  1206. var self=this;
  1207. smalltalk.send(smalltalk.send(self, "_new", []), "_open", []);
  1208. return self;}
  1209. }),
  1210. smalltalk.Browser.klass);
  1211. smalltalk.addClass('Inspector', smalltalk.TabWidget, ['label', 'variables', 'object', 'selectedVariable', 'variablesList', 'valueTextarea', 'workspaceTextarea', 'diveButton'], 'IDE');
  1212. smalltalk.addMethod(
  1213. '_label',
  1214. smalltalk.method({
  1215. selector: 'label',
  1216. fn: function (){
  1217. var self=this;
  1218. return smalltalk.send(self['@label'], "_ifNil_", [(function(){return unescape("Inspector%20%28nil%29");})]);
  1219. return self;}
  1220. }),
  1221. smalltalk.Inspector);
  1222. smalltalk.addMethod(
  1223. '_variables',
  1224. smalltalk.method({
  1225. selector: 'variables',
  1226. fn: function (){
  1227. var self=this;
  1228. return self['@variables'];
  1229. return self;}
  1230. }),
  1231. smalltalk.Inspector);
  1232. smalltalk.addMethod(
  1233. '_setVariables_',
  1234. smalltalk.method({
  1235. selector: 'setVariables:',
  1236. fn: function (aCollection){
  1237. var self=this;
  1238. self['@variables']=aCollection;
  1239. return self;}
  1240. }),
  1241. smalltalk.Inspector);
  1242. smalltalk.addMethod(
  1243. '_setLabel_',
  1244. smalltalk.method({
  1245. selector: 'setLabel:',
  1246. fn: function (aString){
  1247. var self=this;
  1248. self['@label']=aString;
  1249. return self;}
  1250. }),
  1251. smalltalk.Inspector);
  1252. smalltalk.addMethod(
  1253. '_selectedVariable',
  1254. smalltalk.method({
  1255. selector: 'selectedVariable',
  1256. fn: function (){
  1257. var self=this;
  1258. return self['@selectedVariable'];
  1259. return self;}
  1260. }),
  1261. smalltalk.Inspector);
  1262. smalltalk.addMethod(
  1263. '_selectedVariable_',
  1264. smalltalk.method({
  1265. selector: 'selectedVariable:',
  1266. fn: function (aString){
  1267. var self=this;
  1268. self['@selectedVariable']=aString;
  1269. return self;}
  1270. }),
  1271. smalltalk.Inspector);
  1272. smalltalk.addMethod(
  1273. '_inspect_',
  1274. smalltalk.method({
  1275. selector: 'inspect:',
  1276. fn: function (anObject){
  1277. var self=this;
  1278. self['@object']=anObject;
  1279. self['@variables']=[];
  1280. smalltalk.send(self['@object'], "_inspectOn_", [self]);
  1281. return self;}
  1282. }),
  1283. smalltalk.Inspector);
  1284. smalltalk.addMethod(
  1285. '_dive',
  1286. smalltalk.method({
  1287. selector: 'dive',
  1288. fn: function (){
  1289. var self=this;
  1290. smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_at_", [smalltalk.send(self, "_selectedVariable", [])]), "_inspect", []);
  1291. return self;}
  1292. }),
  1293. smalltalk.Inspector);
  1294. smalltalk.addMethod(
  1295. '_refresh',
  1296. smalltalk.method({
  1297. selector: 'refresh',
  1298. fn: function (){
  1299. var self=this;
  1300. (function($rec){smalltalk.send($rec, "_inspect_", [self['@object']]);smalltalk.send($rec, "_updateVariablesList", []);return smalltalk.send($rec, "_updateValueTextarea", []);})(self);
  1301. return self;}
  1302. }),
  1303. smalltalk.Inspector);
  1304. smalltalk.addMethod(
  1305. '_renderBoxOn_',
  1306. smalltalk.method({
  1307. selector: 'renderBoxOn:',
  1308. fn: function (html){
  1309. var self=this;
  1310. (function($rec){smalltalk.send($rec, "_renderTopPanelOn_", [html]);return smalltalk.send($rec, "_renderBottomPanelOn_", [html]);})(self);
  1311. return self;}
  1312. }),
  1313. smalltalk.Inspector);
  1314. smalltalk.addMethod(
  1315. '_renderTopPanelOn_',
  1316. smalltalk.method({
  1317. selector: 'renderTopPanelOn:',
  1318. fn: function (html){
  1319. var self=this;
  1320. (function($rec){smalltalk.send($rec, "_class_", ["top"]);return smalltalk.send($rec, "_with_", [(function(){self['@variablesList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column variables"]);self['@valueTextarea']=(function($rec){smalltalk.send($rec, "_class_", ["jt_column value"]);return smalltalk.send($rec, "_at_put_", ["readonly", "readonly"]);})(smalltalk.send(html, "_textarea", []));(function($rec){smalltalk.send($rec, "_updateVariablesList", []);return smalltalk.send($rec, "_updateValueTextarea", []);})(self);return smalltalk.send(smalltalk.send(html, "_div", []), "_class_", ["jt_clear"]);})]);})(smalltalk.send(html, "_div", []));
  1321. return self;}
  1322. }),
  1323. smalltalk.Inspector);
  1324. smalltalk.addMethod(
  1325. '_renderBottomPanelOn_',
  1326. smalltalk.method({
  1327. selector: 'renderBottomPanelOn:',
  1328. fn: function (html){
  1329. var self=this;
  1330. (function($rec){smalltalk.send($rec, "_class_", ["jt_sourceCode"]);return smalltalk.send($rec, "_with_", [(function(){self['@workspaceTextarea']=(function($rec){smalltalk.send($rec, "_class_", ["source"]);return smalltalk.send($rec, "_at_put_", ["spellcheck", "false"]);})(smalltalk.send(html, "_textarea", []));return smalltalk.send(smalltalk.send(self['@workspaceTextarea'], "_asJQuery", []), "_call_", ["tabby"]);})]);})(smalltalk.send(html, "_div", []));
  1331. return self;}
  1332. }),
  1333. smalltalk.Inspector);
  1334. smalltalk.addMethod(
  1335. '_renderButtonsOn_',
  1336. smalltalk.method({
  1337. selector: 'renderButtonsOn:',
  1338. fn: function (html){
  1339. var self=this;
  1340. (function($rec){smalltalk.send($rec, "_with_", ["Refresh"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_refresh", []);})]);})(smalltalk.send(html, "_button", []));
  1341. self['@diveButton']=(function($rec){smalltalk.send($rec, "_with_", ["Dive"]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_dive", []);})]);})(smalltalk.send(html, "_button", []));
  1342. smalltalk.send(self, "_updateButtons", []);
  1343. return self;}
  1344. }),
  1345. smalltalk.Inspector);
  1346. smalltalk.addMethod(
  1347. '_canBeClosed',
  1348. smalltalk.method({
  1349. selector: 'canBeClosed',
  1350. fn: function (){
  1351. var self=this;
  1352. return true;
  1353. return self;}
  1354. }),
  1355. smalltalk.Inspector);
  1356. smalltalk.addMethod(
  1357. '_updateVariablesList',
  1358. smalltalk.method({
  1359. selector: 'updateVariablesList',
  1360. fn: function (){
  1361. var self=this;
  1362. smalltalk.send(self['@variablesList'], "_contents_", [(function(html){return smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_keys", []), "_do_", [(function(each){var li=nil;
  1363. li=smalltalk.send(html, "_li", []);(function($rec){smalltalk.send($rec, "_with_", [each]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectVariable_", [each]);})]);})(li);return smalltalk.send(smalltalk.send(smalltalk.send(self, "_selectedVariable", []), "__eq", [each]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);})]);})]);
  1364. return self;}
  1365. }),
  1366. smalltalk.Inspector);
  1367. smalltalk.addMethod(
  1368. '_selectVariable_',
  1369. smalltalk.method({
  1370. selector: 'selectVariable:',
  1371. fn: function (aString){
  1372. var self=this;
  1373. smalltalk.send(self, "_selectedVariable_", [aString]);
  1374. (function($rec){smalltalk.send($rec, "_updateVariablesList", []);smalltalk.send($rec, "_updateValueTextarea", []);return smalltalk.send($rec, "_updateButtons", []);})(self);
  1375. return self;}
  1376. }),
  1377. smalltalk.Inspector);
  1378. smalltalk.addMethod(
  1379. '_updateValueTextarea',
  1380. smalltalk.method({
  1381. selector: 'updateValueTextarea',
  1382. fn: function (){
  1383. var self=this;
  1384. smalltalk.send(smalltalk.send(self['@valueTextarea'], "_asJQuery", []), "_val_", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_selectedVariable", []), "_isNil", []), "_ifTrue_ifFalse_", [(function(){return "";}), (function(){return smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_at_", [smalltalk.send(self, "_selectedVariable", [])]), "_printString", []);})])]);
  1385. return self;}
  1386. }),
  1387. smalltalk.Inspector);
  1388. smalltalk.addMethod(
  1389. '_updateButtons',
  1390. smalltalk.method({
  1391. selector: 'updateButtons',
  1392. fn: function (){
  1393. var self=this;
  1394. smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_selectedVariable", []), "_notNil", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(self, "_variables", []), "_at_", [smalltalk.send(self, "_selectedVariable", [])]), "_notNil", []);})]), "_ifFalse_ifTrue_", [(function(){return smalltalk.send(self['@diveButton'], "_at_put_", ["disabled", true]);}), (function(){return smalltalk.send(self['@diveButton'], "_removeAt_", ["disabled"]);})]);
  1395. return self;}
  1396. }),
  1397. smalltalk.Inspector);
  1398. smalltalk.addMethod(
  1399. '_on_',
  1400. smalltalk.method({
  1401. selector: 'on:',
  1402. fn: function (anObject){
  1403. var self=this;
  1404. return (function($rec){smalltalk.send($rec, "_inspect_", [anObject]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
  1405. return self;}
  1406. }),
  1407. smalltalk.Inspector.klass);
  1408. smalltalk.addClass('ReferencesBrowser', smalltalk.TabWidget, ['implementors', 'senders', 'implementorsList', 'input', 'timer', 'selector', 'sendersList', 'referencedClasses', 'referencedClassesList'], 'IDE');
  1409. smalltalk.addMethod(
  1410. '_implementors',
  1411. smalltalk.method({
  1412. selector: 'implementors',
  1413. fn: function (){
  1414. var self=this;
  1415. return smalltalk.send(self['@implementors'], "_ifNil_", [(function(){return self['@implementors']=smalltalk.send(smalltalk.Array, "_new", []);})]);
  1416. return self;}
  1417. }),
  1418. smalltalk.ReferencesBrowser);
  1419. smalltalk.addMethod(
  1420. '_label',
  1421. smalltalk.method({
  1422. selector: 'label',
  1423. fn: function (){
  1424. var self=this;
  1425. return unescape("%5BReferencesBrowser%5D");
  1426. return self;}
  1427. }),
  1428. smalltalk.ReferencesBrowser);
  1429. smalltalk.addMethod(
  1430. '_selector',
  1431. smalltalk.method({
  1432. selector: 'selector',
  1433. fn: function (){
  1434. var self=this;
  1435. return self['@selector'];
  1436. return self;}
  1437. }),
  1438. smalltalk.ReferencesBrowser);
  1439. smalltalk.addMethod(
  1440. '_senders',
  1441. smalltalk.method({
  1442. selector: 'senders',
  1443. fn: function (){
  1444. var self=this;
  1445. return smalltalk.send(self['@senders'], "_ifNil_", [(function(){return self['@senders']=smalltalk.send(smalltalk.Array, "_new", []);})]);
  1446. return self;}
  1447. }),
  1448. smalltalk.ReferencesBrowser);
  1449. smalltalk.addMethod(
  1450. '_classesAndMetaclasses',
  1451. smalltalk.method({
  1452. selector: 'classesAndMetaclasses',
  1453. fn: function (){
  1454. var self=this;
  1455. return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk, "_current", []), "_classes", []), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk, "_current", []), "_classes", []), "_collect_", [(function(each){return smalltalk.send(each, "_class", []);})])]);
  1456. return self;}
  1457. }),
  1458. smalltalk.ReferencesBrowser);
  1459. smalltalk.addMethod(
  1460. '_referencedClasses',
  1461. smalltalk.method({
  1462. selector: 'referencedClasses',
  1463. fn: function (){
  1464. var self=this;
  1465. return smalltalk.send(self['@referencedClasses'], "_ifNil_", [(function(){return self['@referencedClasses']=smalltalk.send(smalltalk.Array, "_new", []);})]);
  1466. return self;}
  1467. }),
  1468. smalltalk.ReferencesBrowser);
  1469. smalltalk.addMethod(
  1470. '_openBrowserOn_',
  1471. smalltalk.method({
  1472. selector: 'openBrowserOn:',
  1473. fn: function (aMethod){
  1474. var self=this;
  1475. var browser=nil;
  1476. browser=smalltalk.send(smalltalk.Browser, "_openOn_", [smalltalk.send(smalltalk.send(smalltalk.send(aMethod, "_class", []), "_isMetaclass", []), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(aMethod, "_methodClass", []), "_instanceClass", []);}), (function(){return smalltalk.send(aMethod, "_methodClass", []);})])]);
  1477. smalltalk.send(smalltalk.send(smalltalk.send(aMethod, "_methodClass", []), "_isMetaclass", []), "_ifTrue_", [(function(){return smalltalk.send(browser, "_selectTab_", ["class"]);})]);
  1478. (function($rec){smalltalk.send($rec, "_selectProtocol_", [smalltalk.send(aMethod, "_category", [])]);return smalltalk.send($rec, "_selectMethod_", [aMethod]);})(browser);
  1479. return self;}
  1480. }),
  1481. smalltalk.ReferencesBrowser);
  1482. smalltalk.addMethod(
  1483. '_searchReferencesFor_',
  1484. smalltalk.method({
  1485. selector: 'searchReferencesFor:',
  1486. fn: function (aString){
  1487. var self=this;
  1488. self['@selector']=aString;
  1489. self['@implementors']=smalltalk.send(smalltalk.Array, "_new", []);
  1490. self['@senders']=smalltalk.send(smalltalk.Array, "_new", []);
  1491. self['@referencedClasses']=smalltalk.send(smalltalk.Array, "_new", []);
  1492. smalltalk.send(smalltalk.send(self['@selector'], "_match_", [unescape("%5E%5BA-Z%5D")]), "_ifFalse_ifTrue_", [(function(){return smalltalk.send(self, "_searchSelectorReferencesFor_", [self['@selector']]);}), (function(){return smalltalk.send(self, "_searchReferencedClassesFor_", [self['@selector']]);})]);
  1493. return self;}
  1494. }),
  1495. smalltalk.ReferencesBrowser);
  1496. smalltalk.addMethod(
  1497. '_search_',
  1498. smalltalk.method({
  1499. selector: 'search:',
  1500. fn: function (aString){
  1501. var self=this;
  1502. (function($rec){smalltalk.send($rec, "_searchReferencesFor_", [aString]);smalltalk.send($rec, "_updateImplementorsList", []);smalltalk.send($rec, "_updateSendersList", []);return smalltalk.send($rec, "_updateReferencedClassesList", []);})(self);
  1503. return self;}
  1504. }),
  1505. smalltalk.ReferencesBrowser);
  1506. smalltalk.addMethod(
  1507. '_searchReferencedClassesFor_',
  1508. smalltalk.method({
  1509. selector: 'searchReferencedClassesFor:',
  1510. fn: function (aString){
  1511. var self=this;
  1512. smalltalk.send(smalltalk.send(self, "_classesAndMetaclasses", []), "_do_", [(function(each){return smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_values", []), "_do_", [(function(value){return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(value, "_referencedClasses", []), "_select_", [(function(each){return smalltalk.send(each, "_notNil", []);})]), "_collect_", [(function(each){return smalltalk.send(each, "_name", []);})]), "_includes_", [self['@selector']]), "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_referencedClasses", []), "_add_", [value]);})]);})]);})]);
  1513. return self;}
  1514. }),
  1515. smalltalk.ReferencesBrowser);
  1516. smalltalk.addMethod(
  1517. '_searchSelectorReferencesFor_',
  1518. smalltalk.method({
  1519. selector: 'searchSelectorReferencesFor:',
  1520. fn: function (aString){
  1521. var self=this;
  1522. smalltalk.send(smalltalk.send(self, "_classesAndMetaclasses", []), "_do_", [(function(each){smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_keysAndValuesDo_", [(function(key, value){return smalltalk.send(smalltalk.send(key, "__eq", [self['@selector']]), "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_implementors", []), "_add_", [value]);})]);})]);return smalltalk.send(smalltalk.send(each, "_methodDictionary", []), "_keysAndValuesDo_", [(function(key, value){return smalltalk.send(smalltalk.send(smalltalk.send(value, "_messageSends", []), "_includes_", [self['@selector']]), "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(self, "_senders", []), "_add_", [value]);})]);})]);})]);
  1523. return self;}
  1524. }),
  1525. smalltalk.ReferencesBrowser);
  1526. smalltalk.addMethod(
  1527. '_initialize',
  1528. smalltalk.method({
  1529. selector: 'initialize',
  1530. fn: function (){
  1531. var self=this;
  1532. smalltalk.send(self, "_initialize", [], smalltalk.TabWidget);
  1533. self['@selector']="";
  1534. return self;}
  1535. }),
  1536. smalltalk.ReferencesBrowser);
  1537. smalltalk.addMethod(
  1538. '_setInputEvents',
  1539. smalltalk.method({
  1540. selector: 'setInputEvents',
  1541. fn: function (){
  1542. var self=this;
  1543. (function($rec){smalltalk.send($rec, "_onKeyUp_", [(function(){return self['@timer']=smalltalk.send((function(){return smalltalk.send(self, "_search_", [smalltalk.send(smalltalk.send(self['@input'], "_asJQuery", []), "_val", [])]);}), "_valueWithTimeout_", [(100)]);})]);return smalltalk.send($rec, "_onKeyDown_", [(function(){return smalltalk.send(self['@timer'], "_ifNotNil_", [(function(){return smalltalk.send(self['@timer'], "_clearTimeout", []);})]);})]);})(self['@input']);
  1544. return self;}
  1545. }),
  1546. smalltalk.ReferencesBrowser);
  1547. smalltalk.addMethod(
  1548. '_renderBoxOn_',
  1549. smalltalk.method({
  1550. selector: 'renderBoxOn:',
  1551. fn: function (html){
  1552. var self=this;
  1553. (function($rec){smalltalk.send($rec, "_renderInputOn_", [html]);smalltalk.send($rec, "_renderImplementorsOn_", [html]);smalltalk.send($rec, "_renderSendersOn_", [html]);return smalltalk.send($rec, "_renderReferencedClassesOn_", [html]);})(self);
  1554. return self;}
  1555. }),
  1556. smalltalk.ReferencesBrowser);
  1557. smalltalk.addMethod(
  1558. '_renderInputOn_',
  1559. smalltalk.method({
  1560. selector: 'renderInputOn:',
  1561. fn: function (html){
  1562. var self=this;
  1563. self['@input']=(function($rec){smalltalk.send($rec, "_class_", ["implementors"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_input", []));
  1564. smalltalk.send(smalltalk.send(self['@input'], "_asJQuery", []), "_val_", [self['@selector']]);
  1565. smalltalk.send(self, "_setInputEvents", []);
  1566. return self;}
  1567. }),
  1568. smalltalk.ReferencesBrowser);
  1569. smalltalk.addMethod(
  1570. '_renderImplementorsOn_',
  1571. smalltalk.method({
  1572. selector: 'renderImplementorsOn:',
  1573. fn: function (html){
  1574. var self=this;
  1575. self['@implementorsList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column implementors"]);
  1576. smalltalk.send(self, "_updateImplementorsList", []);
  1577. return self;}
  1578. }),
  1579. smalltalk.ReferencesBrowser);
  1580. smalltalk.addMethod(
  1581. '_renderSendersOn_',
  1582. smalltalk.method({
  1583. selector: 'renderSendersOn:',
  1584. fn: function (html){
  1585. var self=this;
  1586. self['@sendersList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column senders"]);
  1587. smalltalk.send(self, "_updateSendersList", []);
  1588. return self;}
  1589. }),
  1590. smalltalk.ReferencesBrowser);
  1591. smalltalk.addMethod(
  1592. '_renderReferencedClassesOn_',
  1593. smalltalk.method({
  1594. selector: 'renderReferencedClassesOn:',
  1595. fn: function (html){
  1596. var self=this;
  1597. self['@referencedClassesList']=smalltalk.send(smalltalk.send(html, "_ul", []), "_class_", ["jt_column referenced_classes"]);
  1598. smalltalk.send(self, "_updateReferencedClassesList", []);
  1599. return self;}
  1600. }),
  1601. smalltalk.ReferencesBrowser);
  1602. smalltalk.addMethod(
  1603. '_canBeClosed',
  1604. smalltalk.method({
  1605. selector: 'canBeClosed',
  1606. fn: function (){
  1607. var self=this;
  1608. return true;
  1609. return self;}
  1610. }),
  1611. smalltalk.ReferencesBrowser);
  1612. smalltalk.addMethod(
  1613. '_updateImplementorsList',
  1614. smalltalk.method({
  1615. selector: 'updateImplementorsList',
  1616. fn: function (){
  1617. var self=this;
  1618. smalltalk.send(self['@implementorsList'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_class_", ["column_label"]);smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(unescape("Implementors%20%28"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_implementors", []), "_size", []), "_asString", [])]), "__comma", [unescape("%29")])]);return smalltalk.send($rec, "_style_", [unescape("font-weight%3A%20bold")]);})(smalltalk.send(html, "_li", []));return smalltalk.send(smalltalk.send(self, "_implementors", []), "_do_", [(function(each){var li=nil;
  1619. li=smalltalk.send(html, "_li", []);return (function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodClass", []), "_asString", []), "__comma", [unescape("%20%3E%3E%20")]), "__comma", [smalltalk.send(self, "_selector", [])])]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_openBrowserOn_", [each]);})]);})(li);})]);})]);
  1620. return self;}
  1621. }),
  1622. smalltalk.ReferencesBrowser);
  1623. smalltalk.addMethod(
  1624. '_updateSendersList',
  1625. smalltalk.method({
  1626. selector: 'updateSendersList',
  1627. fn: function (){
  1628. var self=this;
  1629. smalltalk.send(self['@sendersList'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_class_", ["column_label"]);smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(unescape("Senders%20%28"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_senders", []), "_size", []), "_asString", [])]), "__comma", [unescape("%29")])]);return smalltalk.send($rec, "_style_", [unescape("font-weight%3A%20bold")]);})(smalltalk.send(html, "_li", []));return smalltalk.send(smalltalk.send(self, "_senders", []), "_do_", [(function(each){return (function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodClass", []), "_asString", []), "__comma", [unescape("%20%3E%3E%20")]), "__comma", [smalltalk.send(each, "_selector", [])])]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_openBrowserOn_", [each]);})]);})(smalltalk.send(html, "_li", []));})]);})]);
  1630. return self;}
  1631. }),
  1632. smalltalk.ReferencesBrowser);
  1633. smalltalk.addMethod(
  1634. '_updateReferencedClassesList',
  1635. smalltalk.method({
  1636. selector: 'updateReferencedClassesList',
  1637. fn: function (){
  1638. var self=this;
  1639. smalltalk.send(self['@referencedClassesList'], "_contents_", [(function(html){(function($rec){smalltalk.send($rec, "_class_", ["column_label"]);smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(unescape("Class%20references%20%28"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_referencedClasses", []), "_size", []), "_asString", [])]), "__comma", [unescape("%29")])]);return smalltalk.send($rec, "_style_", [unescape("font-weight%3A%20bold")]);})(smalltalk.send(html, "_li", []));return smalltalk.send(smalltalk.send(self, "_referencedClasses", []), "_do_", [(function(each){return (function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(each, "_methodClass", []), "_asString", []), "__comma", [unescape("%20%3E%3E%20")]), "__comma", [smalltalk.send(each, "_selector", [])])]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_openBrowserOn_", [each]);})]);})(smalltalk.send(html, "_li", []));})]);})]);
  1640. return self;}
  1641. }),
  1642. smalltalk.ReferencesBrowser);
  1643. smalltalk.addMethod(
  1644. '_search_',
  1645. smalltalk.method({
  1646. selector: 'search:',
  1647. fn: function (aString){
  1648. var self=this;
  1649. return (function($rec){smalltalk.send($rec, "_searchReferencesFor_", [aString]);return smalltalk.send($rec, "_open", []);})(smalltalk.send(self, "_new", []));
  1650. return self;}
  1651. }),
  1652. smalltalk.ReferencesBrowser.klass);
  1653. smalltalk.addClass('SourceArea', smalltalk.Widget, ['editor', 'div'], 'IDE');
  1654. smalltalk.addMethod(
  1655. '_val',
  1656. smalltalk.method({
  1657. selector: 'val',
  1658. fn: function (){
  1659. var self=this;
  1660. return smalltalk.send(self['@editor'], "_getValue", []);
  1661. return self;}
  1662. }),
  1663. smalltalk.SourceArea);
  1664. smalltalk.addMethod(
  1665. '_val_',
  1666. smalltalk.method({
  1667. selector: 'val:',
  1668. fn: function (aString){
  1669. var self=this;
  1670. smalltalk.send(self['@editor'], "_setValue_", [aString]);
  1671. return self;}
  1672. }),
  1673. smalltalk.SourceArea);
  1674. smalltalk.addMethod(
  1675. '_currentLine',
  1676. smalltalk.method({
  1677. selector: 'currentLine',
  1678. fn: function (){
  1679. var self=this;
  1680. return smalltalk.send(self['@editor'], "_getLine_", [smalltalk.send(smalltalk.send(self['@editor'], "_getCursor", []), "_line", [])]);
  1681. return self;}
  1682. }),
  1683. smalltalk.SourceArea);
  1684. smalltalk.addMethod(
  1685. '_selection',
  1686. smalltalk.method({
  1687. selector: 'selection',
  1688. fn: function (){
  1689. var self=this;
  1690. return smalltalk.send(self['@editor'], "_getSelection", []);
  1691. return self;}
  1692. }),
  1693. smalltalk.SourceArea);
  1694. smalltalk.addMethod(
  1695. '_selectionEnd',
  1696. smalltalk.method({
  1697. selector: 'selectionEnd',
  1698. fn: function (){
  1699. var self=this;
  1700. return smalltalk.send(smalltalk.send(self['@textarea'], "_element", []), "_selectionEnd", []);
  1701. return self;}
  1702. }),
  1703. smalltalk.SourceArea);
  1704. smalltalk.addMethod(
  1705. '_selectionStart',
  1706. smalltalk.method({
  1707. selector: 'selectionStart',
  1708. fn: function (){
  1709. var self=this;
  1710. return smalltalk.send(smalltalk.send(self['@textarea'], "_element", []), "_selectionStart", []);
  1711. return self;}
  1712. }),
  1713. smalltalk.SourceArea);
  1714. smalltalk.addMethod(
  1715. '_selectionStart_',
  1716. smalltalk.method({
  1717. selector: 'selectionStart:',
  1718. fn: function (anInteger){
  1719. var self=this;
  1720. smalltalk.send(smalltalk.send(self['@textarea'], "_element", []), "_selectionStart_", [anInteger]);
  1721. return self;}
  1722. }),
  1723. smalltalk.SourceArea);
  1724. smalltalk.addMethod(
  1725. '_selectionEnd_',
  1726. smalltalk.method({
  1727. selector: 'selectionEnd:',
  1728. fn: function (anInteger){
  1729. var self=this;
  1730. smalltalk.send(smalltalk.send(self['@textarea'], "_element", []), "_selectionEnd_", [anInteger]);
  1731. return self;}
  1732. }),
  1733. smalltalk.SourceArea);
  1734. smalltalk.addMethod(
  1735. '_setEditorOn_',
  1736. smalltalk.method({
  1737. selector: 'setEditorOn:',
  1738. fn: function (aTextarea){
  1739. var self=this;
  1740. self['@editor'] = CodeMirror.fromTextArea(aTextarea, {
  1741. theme: 'jtalk',
  1742. lineNumbers: true,
  1743. enterMode: 'classic',
  1744. matchBrackets: true,
  1745. electricChars: false,
  1746. });
  1747. return self;}
  1748. }),
  1749. smalltalk.SourceArea);
  1750. smalltalk.addMethod(
  1751. '_clear',
  1752. smalltalk.method({
  1753. selector: 'clear',
  1754. fn: function (){
  1755. var self=this;
  1756. smalltalk.send(smalltalk.send(self['@textarea'], "_asJQuery", []), "_val_", [""]);
  1757. return self;}
  1758. }),
  1759. smalltalk.SourceArea);
  1760. smalltalk.addMethod(
  1761. '_doIt',
  1762. smalltalk.method({
  1763. selector: 'doIt',
  1764. fn: function (){
  1765. var self=this;
  1766. var selection=nil;
  1767. smalltalk.send(smalltalk.send(self['@editor'], "_somethingSelected", []), "_ifFalse_ifTrue_", [(function(){return selection=smalltalk.send(self, "_currentLine", []);}), (function(){return selection=smalltalk.send(self, "_selection", []);})]);
  1768. return smalltalk.send(self, "_eval_", [selection]);
  1769. return self;}
  1770. }),
  1771. smalltalk.SourceArea);
  1772. smalltalk.addMethod(
  1773. '_eval_',
  1774. smalltalk.method({
  1775. selector: 'eval:',
  1776. fn: function (aString){
  1777. var self=this;
  1778. try{var compiler=nil;
  1779. var node=nil;
  1780. compiler=smalltalk.send(smalltalk.Compiler, "_new", []);
  1781. node=smalltalk.send(compiler, "_parseExpression_", [aString]);
  1782. smalltalk.send(smalltalk.send(node, "_isParseFailure", []), "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_eval_', fn: function(){return smalltalk.send(self, "_alert_", [smalltalk.send(smalltalk.send(smalltalk.send(node, "_reason", []), "__comma", [unescape("%2C%20position%3A%20")]), "__comma", [smalltalk.send(node, "_position", [])])])}})})();})]);
  1783. (function(){throw({name: 'stReturn', selector: '_eval_', fn: function(){return smalltalk.send(compiler, "_loadExpression_", [aString])}})})();
  1784. return self;
  1785. } catch(e) {if(e.name === 'stReturn' && e.selector === '_eval_'){return e.fn()} throw(e)}}
  1786. }),
  1787. smalltalk.SourceArea);
  1788. smalltalk.addMethod(
  1789. '_handleKeyDown_',
  1790. smalltalk.method({
  1791. selector: 'handleKeyDown:',
  1792. fn: function (anEvent){
  1793. var self=this;
  1794. if(anEvent.ctrlKey) {
  1795. if(anEvent.keyCode === 80) { //ctrl+p
  1796. self._printIt();
  1797. anEvent.preventDefault();
  1798. return false;
  1799. }
  1800. if(anEvent.keyCode === 68) { //ctrl+d
  1801. self._doIt();
  1802. anEvent.preventDefault();
  1803. return false;
  1804. }
  1805. if(anEvent.keyCode === 73) { //ctrl+i
  1806. self._inspectIt();
  1807. anEvent.preventDefault();
  1808. return false;
  1809. }
  1810. };
  1811. return self;}
  1812. }),
  1813. smalltalk.SourceArea);
  1814. smalltalk.addMethod(
  1815. '_inspectIt',
  1816. smalltalk.method({
  1817. selector: 'inspectIt',
  1818. fn: function (){
  1819. var self=this;
  1820. smalltalk.send(smalltalk.send(self, "_doIt", []), "_inspect", []);
  1821. return self;}
  1822. }),
  1823. smalltalk.SourceArea);
  1824. smalltalk.addMethod(
  1825. '_print_',
  1826. smalltalk.method({
  1827. selector: 'print:',
  1828. fn: function (aString){
  1829. var self=this;
  1830. var start=nil;
  1831. var stop=nil;
  1832. start=smalltalk.send(smalltalk.Dictionary, "_new", []);
  1833. stop=smalltalk.send(smalltalk.Dictionary, "_new", []);
  1834. smalltalk.send(start, "_at_put_", ["line", smalltalk.send(smalltalk.send(self['@editor'], "_getCursor_", [false]), "_line", [])]);
  1835. smalltalk.send(start, "_at_put_", ["ch", smalltalk.send(smalltalk.send(self['@editor'], "_getCursor_", [false]), "_ch", [])]);
  1836. smalltalk.send(stop, "_at_put_", ["line", smalltalk.send(start, "_at_", ["line"])]);
  1837. smalltalk.send(stop, "_at_put_", ["ch", (typeof ($receiver = (typeof ($receiver = smalltalk.send(start, "_at_", ["ch"])) === 'number') ? $receiver +smalltalk.send(aString, "_size", []) : smalltalk.send($receiver, "__plus", [smalltalk.send(aString, "_size", [])])) === 'number') ? $receiver +(2) : smalltalk.send($receiver, "__plus", [(2)])]);
  1838. smalltalk.send(self['@editor'], "_replaceSelection_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self['@editor'], "_getSelection", []), "__comma", [" "]), "__comma", [aString]), "__comma", [" "])]);
  1839. smalltalk.send(self['@editor'], "_setCursor_", [smalltalk.send(self['@editor'], "_getCursor_", [true])]);
  1840. smalltalk.send(self['@editor'], "_setSelection_end_", [stop, start]);
  1841. return self;}
  1842. }),
  1843. smalltalk.SourceArea);
  1844. smalltalk.addMethod(
  1845. '_printIt',
  1846. smalltalk.method({
  1847. selector: 'printIt',
  1848. fn: function (){
  1849. var self=this;
  1850. smalltalk.send(self, "_print_", [smalltalk.send(smalltalk.send(self, "_doIt", []), "_printString", [])]);
  1851. return self;}
  1852. }),
  1853. smalltalk.SourceArea);
  1854. smalltalk.addMethod(
  1855. '_renderOn_',
  1856. smalltalk.method({
  1857. selector: 'renderOn:',
  1858. fn: function (html){
  1859. var self=this;
  1860. var textarea=nil;
  1861. self['@div']=smalltalk.send(smalltalk.send(html, "_div", []), "_class_", ["source"]);
  1862. smalltalk.send(self['@div'], "_with_", [(function(){return textarea=smalltalk.send(html, "_textarea", []);})]);
  1863. smalltalk.send(self, "_setEditorOn_", [smalltalk.send(textarea, "_element", [])]);
  1864. smalltalk.send(self['@div'], "_onKeyDown_", [(function(e){return smalltalk.send(self, "_handleKeyDown_", [e]);})]);
  1865. return self;}
  1866. }),
  1867. smalltalk.SourceArea);
  1868. smalltalk.addMethod(
  1869. '_editor',
  1870. smalltalk.method({
  1871. selector: 'editor',
  1872. fn: function (){
  1873. var self=this;
  1874. return self['@editor'];
  1875. return self;}
  1876. }),
  1877. smalltalk.SourceArea);
  1878. smalltalk.addMethod(
  1879. '_onKeyUp_',
  1880. smalltalk.method({
  1881. selector: 'onKeyUp:',
  1882. fn: function (aBlock){
  1883. var self=this;
  1884. smalltalk.send(self['@div'], "_onKeyUp_", [aBlock]);
  1885. return self;}
  1886. }),
  1887. smalltalk.SourceArea);
  1888. smalltalk.addMethod(
  1889. '_onKeyDown_',
  1890. smalltalk.method({
  1891. selector: 'onKeyDown:',
  1892. fn: function (aBlock){
  1893. var self=this;
  1894. smalltalk.send(self['@div'], "_onKeyDown_", [aBlock]);
  1895. return self;}
  1896. }),
  1897. smalltalk.SourceArea);
  1898. smalltalk.addClass('ClassesList', smalltalk.Widget, ['browser', 'ul', 'nodes'], 'IDE');
  1899. smalltalk.addMethod(
  1900. '_category',
  1901. smalltalk.method({
  1902. selector: 'category',
  1903. fn: function (){
  1904. var self=this;
  1905. return smalltalk.send(smalltalk.send(self, "_browser", []), "_selectedCategory", []);
  1906. return self;}
  1907. }),
  1908. smalltalk.ClassesList);
  1909. smalltalk.addMethod(
  1910. '_nodes',
  1911. smalltalk.method({
  1912. selector: 'nodes',
  1913. fn: function (){
  1914. var self=this;
  1915. smalltalk.send(self['@nodes'], "_ifNil_", [(function(){return self['@nodes']=smalltalk.send(self, "_getNodes", []);})]);
  1916. return self['@nodes'];
  1917. return self;}
  1918. }),
  1919. smalltalk.ClassesList);
  1920. smalltalk.addMethod(
  1921. '_browser',
  1922. smalltalk.method({
  1923. selector: 'browser',
  1924. fn: function (){
  1925. var self=this;
  1926. return self['@browser'];
  1927. return self;}
  1928. }),
  1929. smalltalk.ClassesList);
  1930. smalltalk.addMethod(
  1931. '_browser_',
  1932. smalltalk.method({
  1933. selector: 'browser:',
  1934. fn: function (aBrowser){
  1935. var self=this;
  1936. self['@browser']=aBrowser;
  1937. return self;}
  1938. }),
  1939. smalltalk.ClassesList);
  1940. smalltalk.addMethod(
  1941. '_getNodes',
  1942. smalltalk.method({
  1943. selector: 'getNodes',
  1944. fn: function (){
  1945. var self=this;
  1946. var classes=nil;
  1947. var children=nil;
  1948. var others=nil;
  1949. classes=smalltalk.send(smalltalk.send(self, "_browser", []), "_classes", []);
  1950. children=[];
  1951. others=[];
  1952. smalltalk.send(classes, "_do_", [(function(each){return smalltalk.send(smalltalk.send(classes, "_includes_", [smalltalk.send(each, "_superclass", [])]), "_ifFalse_ifTrue_", [(function(){return smalltalk.send(children, "_add_", [each]);}), (function(){return smalltalk.send(others, "_add_", [each]);})]);})]);
  1953. return smalltalk.send(children, "_collect_", [(function(each){return smalltalk.send(smalltalk.ClassesListNode, "_on_browser_classes_level_", [each, smalltalk.send(self, "_browser", []), others, (0)]);})]);
  1954. return self;}
  1955. }),
  1956. smalltalk.ClassesList);
  1957. smalltalk.addMethod(
  1958. '_resetNodes',
  1959. smalltalk.method({
  1960. selector: 'resetNodes',
  1961. fn: function (){
  1962. var self=this;
  1963. self['@nodes']=nil;
  1964. return self;}
  1965. }),
  1966. smalltalk.ClassesList);
  1967. smalltalk.addMethod(
  1968. '_renderOn_',
  1969. smalltalk.method({
  1970. selector: 'renderOn:',
  1971. fn: function (html){
  1972. var self=this;
  1973. self['@ul']=(function($rec){smalltalk.send($rec, "_class_", ["jt_column browser classes"]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(html, "_ul", []));
  1974. smalltalk.send(self, "_updateNodes", []);
  1975. return self;}
  1976. }),
  1977. smalltalk.ClassesList);
  1978. smalltalk.addMethod(
  1979. '_updateNodes',
  1980. smalltalk.method({
  1981. selector: 'updateNodes',
  1982. fn: function (){
  1983. var self=this;
  1984. smalltalk.send(self['@ul'], "_contents_", [(function(html){return smalltalk.send(smalltalk.send(self, "_nodes", []), "_do_", [(function(each){return smalltalk.send(each, "_renderOn_", [html]);})]);})]);
  1985. return self;}
  1986. }),
  1987. smalltalk.ClassesList);
  1988. smalltalk.addMethod(
  1989. '_on_',
  1990. smalltalk.method({
  1991. selector: 'on:',
  1992. fn: function (aBrowser){
  1993. var self=this;
  1994. return (function($rec){smalltalk.send($rec, "_browser_", [aBrowser]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
  1995. return self;}
  1996. }),
  1997. smalltalk.ClassesList.klass);
  1998. smalltalk.addClass('ClassesListNode', smalltalk.Widget, ['browser', 'theClass', 'level', 'nodes'], 'IDE');
  1999. smalltalk.addMethod(
  2000. '_nodes',
  2001. smalltalk.method({
  2002. selector: 'nodes',
  2003. fn: function (){
  2004. var self=this;
  2005. return self['@nodes'];
  2006. return self;}
  2007. }),
  2008. smalltalk.ClassesListNode);
  2009. smalltalk.addMethod(
  2010. '_theClass',
  2011. smalltalk.method({
  2012. selector: 'theClass',
  2013. fn: function (){
  2014. var self=this;
  2015. return self['@theClass'];
  2016. return self;}
  2017. }),
  2018. smalltalk.ClassesListNode);
  2019. smalltalk.addMethod(
  2020. '_theClass_',
  2021. smalltalk.method({
  2022. selector: 'theClass:',
  2023. fn: function (aClass){
  2024. var self=this;
  2025. self['@theClass']=aClass;
  2026. return self;}
  2027. }),
  2028. smalltalk.ClassesListNode);
  2029. smalltalk.addMethod(
  2030. '_browser',
  2031. smalltalk.method({
  2032. selector: 'browser',
  2033. fn: function (){
  2034. var self=this;
  2035. return self['@browser'];
  2036. return self;}
  2037. }),
  2038. smalltalk.ClassesListNode);
  2039. smalltalk.addMethod(
  2040. '_browser_',
  2041. smalltalk.method({
  2042. selector: 'browser:',
  2043. fn: function (aBrowser){
  2044. var self=this;
  2045. self['@browser']=aBrowser;
  2046. return self;}
  2047. }),
  2048. smalltalk.ClassesListNode);
  2049. smalltalk.addMethod(
  2050. '_level',
  2051. smalltalk.method({
  2052. selector: 'level',
  2053. fn: function (){
  2054. var self=this;
  2055. return self['@level'];
  2056. return self;}
  2057. }),
  2058. smalltalk.ClassesListNode);
  2059. smalltalk.addMethod(
  2060. '_level_',
  2061. smalltalk.method({
  2062. selector: 'level:',
  2063. fn: function (anInteger){
  2064. var self=this;
  2065. self['@level']=anInteger;
  2066. return self;}
  2067. }),
  2068. smalltalk.ClassesListNode);
  2069. smalltalk.addMethod(
  2070. '_label',
  2071. smalltalk.method({
  2072. selector: 'label',
  2073. fn: function (){
  2074. var self=this;
  2075. var str=nil;
  2076. str=smalltalk.send(smalltalk.send(smalltalk.String, "_new", []), "_writeStream", []);
  2077. smalltalk.send(smalltalk.send(self, "_level", []), "_timesRepeat_", [(function(){return smalltalk.send(str, "_nextPutAll_", [unescape("%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B")]);})]);
  2078. smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_theClass", []), "_name", [])]);
  2079. return smalltalk.send(str, "_contents", []);
  2080. return self;}
  2081. }),
  2082. smalltalk.ClassesListNode);
  2083. smalltalk.addMethod(
  2084. '_getNodesFrom_',
  2085. smalltalk.method({
  2086. selector: 'getNodesFrom:',
  2087. fn: function (aCollection){
  2088. var self=this;
  2089. var children=nil;
  2090. var others=nil;
  2091. children=[];
  2092. others=[];
  2093. smalltalk.send(aCollection, "_do_", [(function(each){return smalltalk.send(smalltalk.send(smalltalk.send(each, "_superclass", []), "__eq", [smalltalk.send(self, "_theClass", [])]), "_ifTrue_ifFalse_", [(function(){return smalltalk.send(children, "_add_", [each]);}), (function(){return smalltalk.send(others, "_add_", [each]);})]);})]);
  2094. self['@nodes']=smalltalk.send(children, "_collect_", [(function(each){return smalltalk.send(smalltalk.ClassesListNode, "_on_browser_classes_level_", [each, smalltalk.send(self, "_browser", []), others, smalltalk.send(smalltalk.send(self, "_level", []), "__plus", [(1)])]);})]);
  2095. return self;}
  2096. }),
  2097. smalltalk.ClassesListNode);
  2098. smalltalk.addMethod(
  2099. '_renderOn_',
  2100. smalltalk.method({
  2101. selector: 'renderOn:',
  2102. fn: function (html){
  2103. var self=this;
  2104. var li=nil;
  2105. li=smalltalk.send(smalltalk.send(html, "_li", []), "_onClick_", [(function(){return smalltalk.send(smalltalk.send(self, "_browser", []), "_selectClass_", [smalltalk.send(self, "_theClass", [])]);})]);
  2106. smalltalk.send(smalltalk.send(li, "_asJQuery", []), "_contents_", [smalltalk.send(self, "_label", [])]);
  2107. smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_browser", []), "_selectedClass", []), "__eq", [smalltalk.send(self, "_theClass", [])]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);
  2108. smalltalk.send(smalltalk.send(self, "_nodes", []), "_do_", [(function(each){return smalltalk.send(each, "_renderOn_", [html]);})]);
  2109. return self;}
  2110. }),
  2111. smalltalk.ClassesListNode);
  2112. smalltalk.addMethod(
  2113. '_on_browser_classes_level_',
  2114. smalltalk.method({
  2115. selector: 'on:browser:classes:level:',
  2116. fn: function (aClass, aBrowser, aCollection, anInteger){
  2117. var self=this;
  2118. return (function($rec){smalltalk.send($rec, "_theClass_", [aClass]);smalltalk.send($rec, "_browser_", [aBrowser]);smalltalk.send($rec, "_level_", [anInteger]);smalltalk.send($rec, "_getNodesFrom_", [aCollection]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_new", []));
  2119. return self;}
  2120. }),
  2121. smalltalk.ClassesListNode.klass);
  2122. smalltalk.addClass('Debugger', smalltalk.TabWidget, ['error', 'selectedContext', 'sourceArea', 'ul'], 'IDE');
  2123. smalltalk.addMethod(
  2124. '_error',
  2125. smalltalk.method({
  2126. selector: 'error',
  2127. fn: function (){
  2128. var self=this;
  2129. return self['@error'];
  2130. return self;}
  2131. }),
  2132. smalltalk.Debugger);
  2133. smalltalk.addMethod(
  2134. '_error_',
  2135. smalltalk.method({
  2136. selector: 'error:',
  2137. fn: function (anError){
  2138. var self=this;
  2139. self['@error']=anError;
  2140. return self;}
  2141. }),
  2142. smalltalk.Debugger);
  2143. smalltalk.addMethod(
  2144. '_label',
  2145. smalltalk.method({
  2146. selector: 'label',
  2147. fn: function (){
  2148. var self=this;
  2149. return unescape("%5BDebugger%5D");
  2150. return self;}
  2151. }),
  2152. smalltalk.Debugger);
  2153. smalltalk.addMethod(
  2154. '_selectContext_',
  2155. smalltalk.method({
  2156. selector: 'selectContext:',
  2157. fn: function (aContext){
  2158. var self=this;
  2159. self['@selectedContext']=aContext;
  2160. smalltalk.send(self, "_updateContextsList", []);
  2161. smalltalk.send(self, "_updateSourceArea", []);
  2162. return self;}
  2163. }),
  2164. smalltalk.Debugger);
  2165. smalltalk.addMethod(
  2166. '_renderBoxOn_',
  2167. smalltalk.method({
  2168. selector: 'renderBoxOn:',
  2169. fn: function (html){
  2170. var self=this;
  2171. (function($rec){smalltalk.send($rec, "_renderTopPanelOn_", [html]);return smalltalk.send($rec, "_renderBottomPanelOn_", [html]);})(self);
  2172. return self;}
  2173. }),
  2174. smalltalk.Debugger);
  2175. smalltalk.addMethod(
  2176. '_renderTopPanelOn_',
  2177. smalltalk.method({
  2178. selector: 'renderTopPanelOn:',
  2179. fn: function (html){
  2180. var self=this;
  2181. self['@selectedContext']=smalltalk.send(smalltalk.send(self, "_error", []), "_context", []);
  2182. (function($rec){smalltalk.send($rec, "_class_", ["top"]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_class_", ["label"]);return smalltalk.send($rec, "_with_", [smalltalk.send(smalltalk.send(self, "_error", []), "_messageText", [])]);})(smalltalk.send(html, "_div", []));return self['@ul']=(function($rec){smalltalk.send($rec, "_class_", ["jt_column debugger contexts"]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(self, "_renderContext_on_", [smalltalk.send(smalltalk.send(self, "_error", []), "_context", []), html]);})]);})(smalltalk.send(html, "_ul", []));})]);})(smalltalk.send(html, "_div", []));
  2183. return self;}
  2184. }),
  2185. smalltalk.Debugger);
  2186. smalltalk.addMethod(
  2187. '_renderContext_on_',
  2188. smalltalk.method({
  2189. selector: 'renderContext:on:',
  2190. fn: function (aContext, html){
  2191. var self=this;
  2192. var li=nil;
  2193. li=smalltalk.send(html, "_li", []);
  2194. smalltalk.send(smalltalk.send(self['@selectedContext'], "__eq", [aContext]), "_ifTrue_", [(function(){return smalltalk.send(li, "_class_", ["selected"]);})]);
  2195. (function($rec){smalltalk.send($rec, "_with_", [smalltalk.send(aContext, "_asString", [])]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(self, "_selectContext_", [aContext]);})]);})(li);
  2196. smalltalk.send(smalltalk.send(aContext, "_home", []), "_ifNotNil_", [(function(){return smalltalk.send(self, "_renderContext_on_", [smalltalk.send(aContext, "_home", []), html]);})]);
  2197. return self;}
  2198. }),
  2199. smalltalk.Debugger);
  2200. smalltalk.addMethod(
  2201. '_renderBottomPanelOn_',
  2202. smalltalk.method({
  2203. selector: 'renderBottomPanelOn:',
  2204. fn: function (html){
  2205. var self=this;
  2206. (function($rec){smalltalk.send($rec, "_class_", ["jt_sourceCode"]);return smalltalk.send($rec, "_with_", [(function(){self['@sourceArea']=smalltalk.send(smalltalk.SourceArea, "_new", []);return smalltalk.send(self['@sourceArea'], "_renderOn_", [html]);})]);})(smalltalk.send(html, "_div", []));
  2207. smalltalk.send(self, "_updateSourceArea", []);
  2208. return self;}
  2209. }),
  2210. smalltalk.Debugger);
  2211. smalltalk.addMethod(
  2212. '_canBeClosed',
  2213. smalltalk.method({
  2214. selector: 'canBeClosed',
  2215. fn: function (){
  2216. var self=this;
  2217. return true;
  2218. return self;}
  2219. }),
  2220. smalltalk.Debugger);
  2221. smalltalk.addMethod(
  2222. '_updateContextsList',
  2223. smalltalk.method({
  2224. selector: 'updateContextsList',
  2225. fn: function (){
  2226. var self=this;
  2227. smalltalk.send(self['@ul'], "_contents_", [(function(html){return smalltalk.send(self, "_renderContext_on_", [smalltalk.send(smalltalk.send(self, "_error", []), "_context", []), html]);})]);
  2228. return self;}
  2229. }),
  2230. smalltalk.Debugger);
  2231. smalltalk.addMethod(
  2232. '_updateSourceArea',
  2233. smalltalk.method({
  2234. selector: 'updateSourceArea',
  2235. fn: function (){
  2236. var self=this;
  2237. smalltalk.send(self['@sourceArea'], "_val_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self['@selectedContext'], "_receiver", []), "_class", []), "_methodAt_", [smalltalk.send(self['@selectedContext'], "_selector", [])]), "_source", [])]);
  2238. return self;}
  2239. }),
  2240. smalltalk.Debugger);
  2241. smalltalk.addClass('DebugErrorHandler', smalltalk.ErrorHandler, [], 'IDE');
  2242. smalltalk.addMethod(
  2243. '_handleError_',
  2244. smalltalk.method({
  2245. selector: 'handleError:',
  2246. fn: function (anError){
  2247. var self=this;
  2248. smalltalk.send((function(){return (function($rec){smalltalk.send($rec, "_error_", [anError]);return smalltalk.send($rec, "_open", []);})(smalltalk.send(smalltalk.Debugger, "_new", []));}), "_on_do_", [smalltalk.Error, (function(error){return smalltalk.send(smalltalk.send(smalltalk.ErrorHandler, "_new", []), "_handleError_", [error]);})]);
  2249. return self;}
  2250. }),
  2251. smalltalk.DebugErrorHandler);
  2252. smalltalk.addMethod(
  2253. '_initialize',
  2254. smalltalk.method({
  2255. selector: 'initialize',
  2256. fn: function (){
  2257. var self=this;
  2258. smalltalk.send(self, "_register", []);
  2259. return self;}
  2260. }),
  2261. smalltalk.DebugErrorHandler.klass);
  2262. smalltalk.addMethod(
  2263. '_inspect',
  2264. smalltalk.method({
  2265. selector: 'inspect',
  2266. fn: function (){
  2267. var self=this;
  2268. (function($rec){smalltalk.send($rec, "_inspect_", [self]);return smalltalk.send($rec, "_open", []);})(smalltalk.send(smalltalk.Inspector, "_new", []));
  2269. return self;}
  2270. }),
  2271. smalltalk.Object);
  2272. smalltalk.addMethod(
  2273. '_inspectOn_',
  2274. smalltalk.method({
  2275. selector: 'inspectOn:',
  2276. fn: function (anInspector){
  2277. var self=this;
  2278. var variables=nil;
  2279. variables=smalltalk.send(smalltalk.Dictionary, "_new", []);
  2280. smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]);
  2281. smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_allInstanceVariableNames", []), "_do_", [(function(each){return smalltalk.send(variables, "_at_put_", [each, smalltalk.send(self, "_instVarAt_", [each])]);})]);
  2282. (function($rec){smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);})(anInspector);
  2283. return self;}
  2284. }),
  2285. smalltalk.Object);
  2286. smalltalk.addMethod(
  2287. '_inspectOn_',
  2288. smalltalk.method({
  2289. selector: 'inspectOn:',
  2290. fn: function (anInspector){
  2291. var self=this;
  2292. var variables=nil;
  2293. variables=smalltalk.send(smalltalk.Dictionary, "_new", []);
  2294. smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]);
  2295. smalltalk.send(variables, "_at_put_", [unescape("%23year"), smalltalk.send(self, "_year", [])]);
  2296. smalltalk.send(variables, "_at_put_", [unescape("%23month"), smalltalk.send(self, "_month", [])]);
  2297. smalltalk.send(variables, "_at_put_", [unescape("%23day"), smalltalk.send(self, "_day", [])]);
  2298. smalltalk.send(variables, "_at_put_", [unescape("%23hours"), smalltalk.send(self, "_hours", [])]);
  2299. smalltalk.send(variables, "_at_put_", [unescape("%23minutes"), smalltalk.send(self, "_minutes", [])]);
  2300. smalltalk.send(variables, "_at_put_", [unescape("%23seconds"), smalltalk.send(self, "_seconds", [])]);
  2301. smalltalk.send(variables, "_at_put_", [unescape("%23milliseconds"), smalltalk.send(self, "_milliseconds", [])]);
  2302. (function($rec){smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);})(anInspector);
  2303. return self;}
  2304. }),
  2305. smalltalk.Date);
  2306. smalltalk.addMethod(
  2307. '_inspectOn_',
  2308. smalltalk.method({
  2309. selector: 'inspectOn:',
  2310. fn: function (anInspector){
  2311. var self=this;
  2312. var variables=nil;
  2313. variables=smalltalk.send(smalltalk.Dictionary, "_new", []);
  2314. smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]);
  2315. smalltalk.send(self, "_withIndexDo_", [(function(each, i){return smalltalk.send(variables, "_at_put_", [i, each]);})]);
  2316. (function($rec){smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);})(anInspector);
  2317. return self;}
  2318. }),
  2319. smalltalk.Collection);
  2320. smalltalk.addMethod(
  2321. '_inspectOn_',
  2322. smalltalk.method({
  2323. selector: 'inspectOn:',
  2324. fn: function (anInspector){
  2325. var self=this;
  2326. var label=nil;
  2327. smalltalk.send(self, "_inspectOn_", [anInspector], smalltalk.SequenceableCollection);
  2328. smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self, "_printString", []), "_size", []), "__gt", [(30)]), "_ifTrue_ifFalse_", [(function(){return label=smalltalk.send(smalltalk.send(smalltalk.send(self, "_printString", []), "_copyFrom_to_", [(1), (30)]), "__comma", [unescape("...%27")]);}), (function(){return label=smalltalk.send(self, "_printString", []);})]);
  2329. smalltalk.send(anInspector, "_setLabel_", [label]);
  2330. return self;}
  2331. }),
  2332. smalltalk.String);
  2333. smalltalk.addMethod(
  2334. '_inspectOn_',
  2335. smalltalk.method({
  2336. selector: 'inspectOn:',
  2337. fn: function (anInspector){
  2338. var self=this;
  2339. var variables=nil;
  2340. variables=smalltalk.send(smalltalk.Dictionary, "_new", []);
  2341. smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]);
  2342. smalltalk.send(variables, "_at_put_", [unescape("%23home"), smalltalk.send(self, "_home", [])]);
  2343. smalltalk.send(variables, "_at_put_", [unescape("%23receiver"), smalltalk.send(self, "_receiver", [])]);
  2344. smalltalk.send(variables, "_at_put_", [unescape("%23selector"), smalltalk.send(self, "_selector", [])]);
  2345. smalltalk.send(variables, "_at_put_", [unescape("%23temps"), smalltalk.send(self, "_temps", [])]);
  2346. smalltalk.send(smalltalk.send(smalltalk.send(self, "_class", []), "_instanceVariableNames", []), "_do_", [(function(each){return smalltalk.send(variables, "_at_put_", [each, smalltalk.send(self, "_instVarAt_", [each])]);})]);
  2347. (function($rec){smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);})(anInspector);
  2348. return self;}
  2349. }),
  2350. smalltalk.MethodContext);
  2351. smalltalk.addMethod(
  2352. '_inspectOn_',
  2353. smalltalk.method({
  2354. selector: 'inspectOn:',
  2355. fn: function (anInspector){
  2356. var self=this;
  2357. var variables=nil;
  2358. variables=smalltalk.send(smalltalk.Dictionary, "_new", []);
  2359. smalltalk.send(variables, "_at_put_", [unescape("%23self"), self]);
  2360. smalltalk.send(variables, "_at_put_", [unescape("%23keys"), smalltalk.send(self, "_keys", [])]);
  2361. smalltalk.send(self, "_keysAndValuesDo_", [(function(key, value){return smalltalk.send(variables, "_at_put_", [key, value]);})]);
  2362. (function($rec){smalltalk.send($rec, "_setLabel_", [smalltalk.send(self, "_printString", [])]);return smalltalk.send($rec, "_setVariables_", [variables]);})(anInspector);
  2363. return self;}
  2364. }),
  2365. smalltalk.Dictionary);