1
0

Helios-Browser.js 66 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973
  1. smalltalk.addPackage('Helios-Browser', {});
  2. smalltalk.addClass('HLBrowser', smalltalk.HLWidget, ['model', 'packagesListWidget', 'classesListWidget', 'protocolsListWidget', 'methodsListWidget', 'sourceWidget'], 'Helios-Browser');
  3. smalltalk.addMethod(
  4. "_announcer",
  5. smalltalk.method({
  6. selector: "announcer",
  7. category: 'accessing',
  8. fn: function (){
  9. var self=this;
  10. var $1;
  11. $1=smalltalk.send(smalltalk.send(self,"_model",[]),"_announcer",[]);
  12. return $1;
  13. },
  14. args: [],
  15. source: "announcer\x0a\x09^ self model announcer",
  16. messageSends: ["announcer", "model"],
  17. referencedClasses: []
  18. }),
  19. smalltalk.HLBrowser);
  20. smalltalk.addMethod(
  21. "_classesListWidget",
  22. smalltalk.method({
  23. selector: "classesListWidget",
  24. category: 'widgets',
  25. fn: function (){
  26. var self=this;
  27. var $1;
  28. if(($receiver = self["@classesListWidget"]) == nil || $receiver == undefined){
  29. self["@classesListWidget"]=smalltalk.send((smalltalk.HLClassesListWidget || HLClassesListWidget),"_on_",[smalltalk.send(self,"_model",[])]);
  30. self["@classesListWidget"];
  31. $1=smalltalk.send(self["@classesListWidget"],"_next_",[smalltalk.send(self,"_protocolsListWidget",[])]);
  32. } else {
  33. $1=self["@classesListWidget"];
  34. };
  35. return $1;
  36. },
  37. args: [],
  38. source: "classesListWidget\x0a\x09^ classesListWidget ifNil: [\x0a \x09classesListWidget := HLClassesListWidget on: self model.\x0a\x09\x09classesListWidget next: self protocolsListWidget ]",
  39. messageSends: ["ifNil:", "on:", "model", "next:", "protocolsListWidget"],
  40. referencedClasses: ["HLClassesListWidget"]
  41. }),
  42. smalltalk.HLBrowser);
  43. smalltalk.addMethod(
  44. "_environment",
  45. smalltalk.method({
  46. selector: "environment",
  47. category: 'accessing',
  48. fn: function (){
  49. var self=this;
  50. var $1;
  51. $1=smalltalk.send(smalltalk.send(self,"_model",[]),"_environment",[]);
  52. return $1;
  53. },
  54. args: [],
  55. source: "environment\x0a\x09^ self model environment",
  56. messageSends: ["environment", "model"],
  57. referencedClasses: []
  58. }),
  59. smalltalk.HLBrowser);
  60. smalltalk.addMethod(
  61. "_methodsListWidget",
  62. smalltalk.method({
  63. selector: "methodsListWidget",
  64. category: 'widgets',
  65. fn: function (){
  66. var self=this;
  67. var $1;
  68. if(($receiver = self["@methodsListWidget"]) == nil || $receiver == undefined){
  69. self["@methodsListWidget"]=smalltalk.send((smalltalk.HLMethodsListWidget || HLMethodsListWidget),"_on_",[smalltalk.send(self,"_model",[])]);
  70. $1=self["@methodsListWidget"];
  71. } else {
  72. $1=self["@methodsListWidget"];
  73. };
  74. return $1;
  75. },
  76. args: [],
  77. source: "methodsListWidget\x0a\x09^ methodsListWidget ifNil: [\x0a \x09methodsListWidget := HLMethodsListWidget on: self model ]",
  78. messageSends: ["ifNil:", "on:", "model"],
  79. referencedClasses: ["HLMethodsListWidget"]
  80. }),
  81. smalltalk.HLBrowser);
  82. smalltalk.addMethod(
  83. "_model",
  84. smalltalk.method({
  85. selector: "model",
  86. category: 'accessing',
  87. fn: function (){
  88. var self=this;
  89. var $1;
  90. if(($receiver = self["@model"]) == nil || $receiver == undefined){
  91. self["@model"]=smalltalk.send((smalltalk.HLBrowserModel || HLBrowserModel),"_new",[]);
  92. $1=self["@model"];
  93. } else {
  94. $1=self["@model"];
  95. };
  96. return $1;
  97. },
  98. args: [],
  99. source: "model\x0a\x09^ model ifNil: [ model := HLBrowserModel new ]",
  100. messageSends: ["ifNil:", "new"],
  101. referencedClasses: ["HLBrowserModel"]
  102. }),
  103. smalltalk.HLBrowser);
  104. smalltalk.addMethod(
  105. "_model_",
  106. smalltalk.method({
  107. selector: "model:",
  108. category: 'accessing',
  109. fn: function (aModel){
  110. var self=this;
  111. self["@model"]=aModel;
  112. return self},
  113. args: ["aModel"],
  114. source: "model: aModel\x0a\x09model := aModel",
  115. messageSends: [],
  116. referencedClasses: []
  117. }),
  118. smalltalk.HLBrowser);
  119. smalltalk.addMethod(
  120. "_packagesListWidget",
  121. smalltalk.method({
  122. selector: "packagesListWidget",
  123. category: 'widgets',
  124. fn: function (){
  125. var self=this;
  126. var $1;
  127. if(($receiver = self["@packagesListWidget"]) == nil || $receiver == undefined){
  128. self["@packagesListWidget"]=smalltalk.send((smalltalk.HLPackagesListWidget || HLPackagesListWidget),"_on_",[smalltalk.send(self,"_model",[])]);
  129. self["@packagesListWidget"];
  130. $1=smalltalk.send(self["@packagesListWidget"],"_next_",[smalltalk.send(self,"_classesListWidget",[])]);
  131. } else {
  132. $1=self["@packagesListWidget"];
  133. };
  134. return $1;
  135. },
  136. args: [],
  137. source: "packagesListWidget\x0a\x09^ packagesListWidget ifNil: [\x0a \x09packagesListWidget := HLPackagesListWidget on: self model.\x0a\x09\x09packagesListWidget next: self classesListWidget ]",
  138. messageSends: ["ifNil:", "on:", "model", "next:", "classesListWidget"],
  139. referencedClasses: ["HLPackagesListWidget"]
  140. }),
  141. smalltalk.HLBrowser);
  142. smalltalk.addMethod(
  143. "_protocolsListWidget",
  144. smalltalk.method({
  145. selector: "protocolsListWidget",
  146. category: 'widgets',
  147. fn: function (){
  148. var self=this;
  149. var $1;
  150. if(($receiver = self["@protocolsListWidget"]) == nil || $receiver == undefined){
  151. self["@protocolsListWidget"]=smalltalk.send((smalltalk.HLProtocolsListWidget || HLProtocolsListWidget),"_on_",[smalltalk.send(self,"_model",[])]);
  152. self["@protocolsListWidget"];
  153. $1=smalltalk.send(self["@protocolsListWidget"],"_next_",[smalltalk.send(self,"_methodsListWidget",[])]);
  154. } else {
  155. $1=self["@protocolsListWidget"];
  156. };
  157. return $1;
  158. },
  159. args: [],
  160. source: "protocolsListWidget\x0a\x09^ protocolsListWidget ifNil: [\x0a \x09protocolsListWidget := HLProtocolsListWidget on: self model.\x0a\x09\x09protocolsListWidget next: self methodsListWidget ]",
  161. messageSends: ["ifNil:", "on:", "model", "next:", "methodsListWidget"],
  162. referencedClasses: ["HLProtocolsListWidget"]
  163. }),
  164. smalltalk.HLBrowser);
  165. smalltalk.addMethod(
  166. "_registerBindingsOn_",
  167. smalltalk.method({
  168. selector: "registerBindingsOn:",
  169. category: 'keybindings',
  170. fn: function (aBindingGroup){
  171. var self=this;
  172. var $1;
  173. smalltalk.send(aBindingGroup,"_addGroupKey_labelled_",[(66),"Browse"]);
  174. smalltalk.send(aBindingGroup,"_addGroupKey_labelled_",[(71),"Go to"]);
  175. $1=smalltalk.send(aBindingGroup,"_addGroupKey_labelled_",[(84),"Toggle"]);
  176. return self},
  177. args: ["aBindingGroup"],
  178. source: "registerBindingsOn: aBindingGroup\x0a\x09aBindingGroup \x0a \x09addGroupKey: 66 labelled: 'Browse';\x0a addGroupKey: 71 labelled: 'Go to';\x0a addGroupKey: 84 labelled: 'Toggle'",
  179. messageSends: ["addGroupKey:labelled:"],
  180. referencedClasses: []
  181. }),
  182. smalltalk.HLBrowser);
  183. smalltalk.addMethod(
  184. "_renderContentOn_",
  185. smalltalk.method({
  186. selector: "renderContentOn:",
  187. category: 'rendering',
  188. fn: function (html){
  189. var self=this;
  190. smalltalk.send(html,"_with_",[smalltalk.send((smalltalk.HLContainer || HLContainer),"_with_",[smalltalk.send((smalltalk.HLHorizontalSplitter || HLHorizontalSplitter),"_with_with_",[smalltalk.send((smalltalk.HLVerticalSplitter || HLVerticalSplitter),"_with_with_",[smalltalk.send((smalltalk.HLVerticalSplitter || HLVerticalSplitter),"_with_with_",[smalltalk.send(self,"_packagesListWidget",[]),smalltalk.send(self,"_classesListWidget",[])]),smalltalk.send((smalltalk.HLVerticalSplitter || HLVerticalSplitter),"_with_with_",[smalltalk.send(self,"_protocolsListWidget",[]),smalltalk.send(self,"_methodsListWidget",[])])]),smalltalk.send(self,"_sourceWidget",[])])])]);
  191. return self},
  192. args: ["html"],
  193. source: "renderContentOn: html\x0a\x09html with: (HLContainer with: (HLHorizontalSplitter \x0a \x09with: (HLVerticalSplitter\x0a \x09with: (HLVerticalSplitter\x0a \x09with: self packagesListWidget\x0a with: self classesListWidget)\x0a with: (HLVerticalSplitter\x0a \x09with: self protocolsListWidget\x0a with: self methodsListWidget)) \x0a with: self sourceWidget))",
  194. messageSends: ["with:", "with:with:", "packagesListWidget", "classesListWidget", "protocolsListWidget", "methodsListWidget", "sourceWidget"],
  195. referencedClasses: ["HLVerticalSplitter", "HLHorizontalSplitter", "HLContainer"]
  196. }),
  197. smalltalk.HLBrowser);
  198. smalltalk.addMethod(
  199. "_sourceWidget",
  200. smalltalk.method({
  201. selector: "sourceWidget",
  202. category: 'widgets',
  203. fn: function (){
  204. var self=this;
  205. var $1;
  206. if(($receiver = self["@sourceWidget"]) == nil || $receiver == undefined){
  207. self["@sourceWidget"]=smalltalk.send((smalltalk.HLBrowserSourceWidget || HLBrowserSourceWidget),"_on_",[smalltalk.send(self,"_model",[])]);
  208. $1=self["@sourceWidget"];
  209. } else {
  210. $1=self["@sourceWidget"];
  211. };
  212. return $1;
  213. },
  214. args: [],
  215. source: "sourceWidget\x0a\x09^ sourceWidget ifNil: [\x0a \x09sourceWidget := HLBrowserSourceWidget on: self model ]",
  216. messageSends: ["ifNil:", "on:", "model"],
  217. referencedClasses: ["HLBrowserSourceWidget"]
  218. }),
  219. smalltalk.HLBrowser);
  220. smalltalk.HLBrowser.klass.iVarNames = ['nextId'];
  221. smalltalk.addMethod(
  222. "_canBeOpenAsTab",
  223. smalltalk.method({
  224. selector: "canBeOpenAsTab",
  225. category: 'testing',
  226. fn: function () {
  227. var self = this;
  228. return true;
  229. },
  230. args: [],
  231. source: "canBeOpenAsTab\x0a\x09^ true",
  232. messageSends: [],
  233. referencedClasses: []
  234. }),
  235. smalltalk.HLBrowser.klass);
  236. smalltalk.addMethod(
  237. "_nextId",
  238. smalltalk.method({
  239. selector: "nextId",
  240. category: 'accessing',
  241. fn: function () {
  242. var self = this;
  243. var $1;
  244. if (($receiver = self['@nextId']) == nil || $receiver == undefined) {
  245. self['@nextId'] = 0;
  246. self['@nextId'];
  247. } else {
  248. self['@nextId'];
  249. }
  250. $1 = smalltalk.send("browser_", "__comma", [smalltalk.send(smalltalk.send(self['@nextId'], "__plus", [1]), "_asString", [])]);
  251. return $1;
  252. },
  253. args: [],
  254. source: "nextId\x0a\x09nextId ifNil: [ nextId := 0 ].\x0a ^ 'browser_', (nextId + 1) asString",
  255. messageSends: ["ifNil:", ",", "asString", "+"],
  256. referencedClasses: []
  257. }),
  258. smalltalk.HLBrowser.klass);
  259. smalltalk.addMethod(
  260. "_tabLabel",
  261. smalltalk.method({
  262. selector: "tabLabel",
  263. category: 'accessing',
  264. fn: function () {
  265. var self = this;
  266. return "Browser";
  267. },
  268. args: [],
  269. source: "tabLabel\x0a\x09^ 'Browser'",
  270. messageSends: [],
  271. referencedClasses: []
  272. }),
  273. smalltalk.HLBrowser.klass);
  274. smalltalk.addMethod(
  275. "_tabPriority",
  276. smalltalk.method({
  277. selector: "tabPriority",
  278. category: 'accessing',
  279. fn: function () {
  280. var self = this;
  281. return 0;
  282. },
  283. args: [],
  284. source: "tabPriority\x0a\x09^ 0",
  285. messageSends: [],
  286. referencedClasses: []
  287. }),
  288. smalltalk.HLBrowser.klass);
  289. smalltalk.addClass('HLBrowserListWidget', smalltalk.HLNavigationListWidget, ['model'], 'Helios-Browser');
  290. smalltalk.addMethod(
  291. "_ensureSelection",
  292. smalltalk.method({
  293. selector: "ensureSelection",
  294. category: 'actions',
  295. fn: function (){
  296. var self=this;
  297. var $1;
  298. $1=smalltalk.send(self,"_selectedItem",[]);
  299. if(($receiver = $1) == nil || $receiver == undefined){
  300. smalltalk.send(smalltalk.send(self,"_items",[]),"_ifNotEmpty_",[(function(){
  301. smalltalk.send(self,"_selectItem_",[smalltalk.send(smalltalk.send(self,"_items",[]),"_first",[])]);
  302. return smalltalk.send(self,"_refresh",[]);
  303. })]);
  304. } else {
  305. smalltalk.send(self,"_selectItem_",[smalltalk.send(self,"_selectedItem",[])]);
  306. };
  307. return self},
  308. args: [],
  309. source: "ensureSelection\x0a\x09self selectedItem \x0a \x09ifNil: [\x0a \x09\x09self items ifNotEmpty: [\x0a \x09\x09\x09\x09self selectItem: self items first.\x0a \x09\x09\x09\x09self refresh ] ]\x0a\x09\x09ifNotNil: [ self selectItem: self selectedItem ]",
  310. messageSends: ["ifNil:ifNotNil:", "ifNotEmpty:", "selectItem:", "first", "items", "refresh", "selectedItem"],
  311. referencedClasses: []
  312. }),
  313. smalltalk.HLBrowserListWidget);
  314. smalltalk.addMethod(
  315. "_focus",
  316. smalltalk.method({
  317. selector: "focus",
  318. category: 'events',
  319. fn: function (){
  320. var self=this;
  321. smalltalk.send(self,"_focus",[],smalltalk.HLNavigationListWidget);
  322. smalltalk.send(self,"_ensureSelection",[]);
  323. return self},
  324. args: [],
  325. source: "focus\x0a\x09super focus.\x0a self ensureSelection",
  326. messageSends: ["focus", "ensureSelection"],
  327. referencedClasses: []
  328. }),
  329. smalltalk.HLBrowserListWidget);
  330. smalltalk.addMethod(
  331. "_model",
  332. smalltalk.method({
  333. selector: "model",
  334. category: 'accessing',
  335. fn: function (){
  336. var self=this;
  337. return self["@model"];
  338. },
  339. args: [],
  340. source: "model\x0a\x09^ model",
  341. messageSends: [],
  342. referencedClasses: []
  343. }),
  344. smalltalk.HLBrowserListWidget);
  345. smalltalk.addMethod(
  346. "_model_",
  347. smalltalk.method({
  348. selector: "model:",
  349. category: 'accessing',
  350. fn: function (aBrowserModel){
  351. var self=this;
  352. self["@model"]=aBrowserModel;
  353. smalltalk.send(self["@model"],"_subscribe_",[self]);
  354. return self},
  355. args: ["aBrowserModel"],
  356. source: "model: aBrowserModel\x0a\x09\x22TODO: unsubscribe from previous model\x22\x0a \x0a\x09model := aBrowserModel.\x0a model subscribe: self",
  357. messageSends: ["subscribe:"],
  358. referencedClasses: []
  359. }),
  360. smalltalk.HLBrowserListWidget);
  361. smalltalk.addMethod(
  362. "_on_",
  363. smalltalk.method({
  364. selector: "on:",
  365. category: 'instance creation',
  366. fn: function (aModel){
  367. var self=this;
  368. var $2,$3,$1;
  369. $2=smalltalk.send(self,"_new",[]);
  370. smalltalk.send($2,"_model_",[aModel]);
  371. $3=smalltalk.send($2,"_yourself",[]);
  372. $1=$3;
  373. return $1;
  374. },
  375. args: ["aModel"],
  376. source: "on: aModel\x0a\x09^ self new \x0a \x09model: aModel;\x0a yourself",
  377. messageSends: ["model:", "new", "yourself"],
  378. referencedClasses: []
  379. }),
  380. smalltalk.HLBrowserListWidget.klass);
  381. smalltalk.addClass('HLClassesListWidget', smalltalk.HLBrowserListWidget, [], 'Helios-Browser');
  382. smalltalk.addMethod(
  383. "_focusMethodsListWidget",
  384. smalltalk.method({
  385. selector: "focusMethodsListWidget",
  386. category: 'actions',
  387. fn: function (){
  388. var self=this;
  389. smalltalk.send(smalltalk.send(smalltalk.send(self,"_model",[]),"_announcer",[]),"_announce_",[smalltalk.send((smalltalk.HLMethodsListFocus || HLMethodsListFocus),"_new",[])]);
  390. return self},
  391. args: [],
  392. source: "focusMethodsListWidget\x0a\x09self model announcer announce: HLMethodsListFocus new",
  393. messageSends: ["announce:", "new", "announcer", "model"],
  394. referencedClasses: ["HLMethodsListFocus"]
  395. }),
  396. smalltalk.HLClassesListWidget);
  397. smalltalk.addMethod(
  398. "_focusProtocolsListWidget",
  399. smalltalk.method({
  400. selector: "focusProtocolsListWidget",
  401. category: 'actions',
  402. fn: function (){
  403. var self=this;
  404. smalltalk.send(smalltalk.send(smalltalk.send(self,"_model",[]),"_announcer",[]),"_announce_",[smalltalk.send((smalltalk.HLProtocolsListFocus || HLProtocolsListFocus),"_new",[])]);
  405. return self},
  406. args: [],
  407. source: "focusProtocolsListWidget\x0a\x09self model announcer announce: HLProtocolsListFocus new",
  408. messageSends: ["announce:", "new", "announcer", "model"],
  409. referencedClasses: ["HLProtocolsListFocus"]
  410. }),
  411. smalltalk.HLClassesListWidget);
  412. smalltalk.addMethod(
  413. "_getChildrenOf_",
  414. smalltalk.method({
  415. selector: "getChildrenOf:",
  416. category: 'accessing',
  417. fn: function (aClass){
  418. var self=this;
  419. var $1;
  420. $1=smalltalk.send(smalltalk.send(self,"_items",[]),"_select_",[(function(each){
  421. return smalltalk.send(smalltalk.send(each,"_superclass",[]),"__eq",[aClass]);
  422. })]);
  423. return $1;
  424. },
  425. args: ["aClass"],
  426. source: "getChildrenOf: aClass\x0a\x09^ self items select: [ :each | each superclass = aClass ]",
  427. messageSends: ["select:", "=", "superclass", "items"],
  428. referencedClasses: []
  429. }),
  430. smalltalk.HLClassesListWidget);
  431. smalltalk.addMethod(
  432. "_getRootClassesOf_",
  433. smalltalk.method({
  434. selector: "getRootClassesOf:",
  435. category: 'accessing',
  436. fn: function (aCollection){
  437. var self=this;
  438. var $1;
  439. $1=smalltalk.send(aCollection,"_select_",[(function(each){
  440. return smalltalk.send(smalltalk.send(smalltalk.send(each,"_allSuperclasses",[]),"_intersection_",[aCollection]),"_isEmpty",[]);
  441. })]);
  442. return $1;
  443. },
  444. args: ["aCollection"],
  445. source: "getRootClassesOf: aCollection\x0a\x09^ aCollection select: [ :each |\x0a \x09(each allSuperclasses intersection: aCollection) isEmpty ]",
  446. messageSends: ["select:", "isEmpty", "intersection:", "allSuperclasses"],
  447. referencedClasses: []
  448. }),
  449. smalltalk.HLClassesListWidget);
  450. smalltalk.addMethod(
  451. "_iconForItem_",
  452. smalltalk.method({
  453. selector: "iconForItem:",
  454. category: 'accessing',
  455. fn: function (aClass){
  456. var self=this;
  457. var $2,$1;
  458. $2=smalltalk.send(smalltalk.send(smalltalk.send(aClass,"_theNonMetaClass",[]),"_comment",[]),"_isEmpty",[]);
  459. if(smalltalk.assert($2)){
  460. $1="icon-question-sign";
  461. } else {
  462. $1="icon-none";
  463. };
  464. return $1;
  465. },
  466. args: ["aClass"],
  467. source: "iconForItem: aClass\x0a\x09^ aClass theNonMetaClass comment isEmpty\x0a \x09ifFalse: [ 'icon-none' ]\x0a \x09ifTrue: [ 'icon-question-sign' ]",
  468. messageSends: ["ifFalse:ifTrue:", "isEmpty", "comment", "theNonMetaClass"],
  469. referencedClasses: []
  470. }),
  471. smalltalk.HLClassesListWidget);
  472. smalltalk.addMethod(
  473. "_packageSelected_",
  474. smalltalk.method({
  475. selector: "packageSelected:",
  476. category: 'actions',
  477. fn: function (aPackage){
  478. var self=this;
  479. var $1;
  480. smalltalk.send(self,"_selectedItem_",[nil]);
  481. if(($receiver = aPackage) == nil || $receiver == undefined){
  482. $1=[];
  483. } else {
  484. $1=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aPackage,"_classes",[]),"_collect_",[(function(each){
  485. return smalltalk.send(each,"_theNonMetaClass",[]);
  486. })]),"_asSet",[]),"_asArray",[]);
  487. };
  488. smalltalk.send(self,"_items_",[$1]);
  489. smalltalk.send(self,"_refresh",[]);
  490. return self},
  491. args: ["aPackage"],
  492. source: "packageSelected: aPackage\x0a self selectedItem: nil.\x0a \x0a self items: (aPackage \x0a \x09ifNil: [ #() ]\x0a \x09\x09ifNotNil: [ (aPackage classes \x0a \x09collect: [ :each | each theNonMetaClass ]) asSet asArray ]).\x0a\x0a self refresh",
  493. messageSends: ["selectedItem:", "items:", "ifNil:ifNotNil:", "asArray", "asSet", "collect:", "theNonMetaClass", "classes", "refresh"],
  494. referencedClasses: []
  495. }),
  496. smalltalk.HLClassesListWidget);
  497. smalltalk.addMethod(
  498. "_registerBindingsOn_",
  499. smalltalk.method({
  500. selector: "registerBindingsOn:",
  501. category: 'keybindings',
  502. fn: function (aBindingGroup){
  503. var self=this;
  504. var $1,$2;
  505. smalltalk.send(smalltalk.send(aBindingGroup,"_at_",["Go to"]),"_addActionKey_labelled_callback_",[(67),"Classes",(function(){
  506. return smalltalk.send(self,"_focus",[]);
  507. })]);
  508. $1=smalltalk.send(aBindingGroup,"_at_",["Toggle"]);
  509. smalltalk.send($1,"_addActionKey_labelled_callback_",[(73),"Instance side",(function(){
  510. return smalltalk.send(self,"_showInstance_",[true]);
  511. })]);
  512. $2=smalltalk.send($1,"_addActionKey_labelled_callback_",[(67),"Class side",(function(){
  513. return smalltalk.send(self,"_showInstance_",[false]);
  514. })]);
  515. return self},
  516. args: ["aBindingGroup"],
  517. source: "registerBindingsOn: aBindingGroup\x0a\x09(aBindingGroup at: 'Go to') \x0a \x09addActionKey: 67 labelled: 'Classes' callback: [ self focus ].\x0a (aBindingGroup at: 'Toggle') \x0a \x09addActionKey: 73 labelled: 'Instance side' callback: [ self showInstance: true ];\x0a addActionKey: 67 labelled: 'Class side' callback: [ self showInstance: false ]",
  518. messageSends: ["addActionKey:labelled:callback:", "focus", "at:", "showInstance:"],
  519. referencedClasses: []
  520. }),
  521. smalltalk.HLClassesListWidget);
  522. smalltalk.addMethod(
  523. "_renderButtonsOn_",
  524. smalltalk.method({
  525. selector: "renderButtonsOn:",
  526. category: 'rendering',
  527. fn: function (html){
  528. var self=this;
  529. var $1,$3,$4,$5,$6,$7,$8,$2,$9,$10;
  530. $1=smalltalk.send(html,"_div",[]);
  531. smalltalk.send($1,"_class_",["btn-group"]);
  532. smalltalk.send($1,"_at_put_",["data-toggle","buttons-radio"]);
  533. $2=smalltalk.send($1,"_with_",[(function(){
  534. $3=smalltalk.send(html,"_button",[]);
  535. smalltalk.send($3,"_class_",[smalltalk.send((smalltalk.String || String),"_streamContents_",[(function(str){
  536. smalltalk.send(str,"_nextPutAll_",["btn"]);
  537. $4=smalltalk.send(self,"_showInstance",[]);
  538. if(smalltalk.assert($4)){
  539. return smalltalk.send(str,"_nextPutAll_",[" active"]);
  540. };
  541. })])]);
  542. smalltalk.send($3,"_with_",["Instance"]);
  543. $5=smalltalk.send($3,"_onClick_",[(function(){
  544. return smalltalk.send(self,"_showInstance_",[true]);
  545. })]);
  546. $5;
  547. $6=smalltalk.send(html,"_button",[]);
  548. smalltalk.send($6,"_class_",[smalltalk.send((smalltalk.String || String),"_streamContents_",[(function(str){
  549. smalltalk.send(str,"_nextPutAll_",["btn"]);
  550. $7=smalltalk.send(smalltalk.send(self,"_model",[]),"_showInstance",[]);
  551. if(! smalltalk.assert($7)){
  552. return smalltalk.send(str,"_nextPutAll_",[" active"]);
  553. };
  554. })])]);
  555. smalltalk.send($6,"_with_",["Class"]);
  556. $8=smalltalk.send($6,"_onClick_",[(function(){
  557. return smalltalk.send(smalltalk.send(self,"_model",[]),"_showInstance_",[false]);
  558. })]);
  559. return $8;
  560. })]);
  561. $9=smalltalk.send(html,"_button",[]);
  562. smalltalk.send($9,"_class_",["btn"]);
  563. smalltalk.send($9,"_at_put_",["data-toggle","button"]);
  564. $10=smalltalk.send($9,"_with_",["Comment"]);
  565. return self},
  566. args: ["html"],
  567. source: "renderButtonsOn: html\x0a\x09html div \x0a class: 'btn-group';\x0a\x09\x09at: 'data-toggle' put: 'buttons-radio';\x0a\x09\x09with: [ \x0a \x09html button \x0a class: (String streamContents: [ :str |\x0a \x09str nextPutAll: 'btn'.\x0a self showInstance ifTrue: [ \x0a \x09str nextPutAll: ' active'] ]);\x0a \x09\x09\x09\x09with: 'Instance';\x0a onClick: [ self showInstance: true ].\x0a \x09\x09\x09html button\x0a \x09\x09\x09\x09class: (String streamContents: [ :str |\x0a \x09str nextPutAll: 'btn'.\x0a self model showInstance ifFalse: [ \x0a \x09str nextPutAll: ' active'] ]);\x0a \x09\x09\x09\x09with: 'Class';\x0a\x09\x09\x09\x09onClick: [ self model showInstance: false ] ].\x0a \x0a \x09html button \x0a \x09class: 'btn';\x0a at: 'data-toggle' put: 'button';\x0a \x09\x09\x09with: 'Comment'",
  568. messageSends: ["class:", "div", "at:put:", "with:", "streamContents:", "nextPutAll:", "ifTrue:", "showInstance", "button", "onClick:", "showInstance:", "ifFalse:", "model"],
  569. referencedClasses: ["String"]
  570. }),
  571. smalltalk.HLClassesListWidget);
  572. smalltalk.addMethod(
  573. "_renderItem_level_on_",
  574. smalltalk.method({
  575. selector: "renderItem:level:on:",
  576. category: 'rendering',
  577. fn: function (aClass,anInteger,html){
  578. var self=this;
  579. var $2,$3,$1;
  580. var li;
  581. li=smalltalk.send(html,"_li",[]);
  582. smalltalk.send(li,"_at_put_",["list-data",smalltalk.send(smalltalk.send(self,"_items",[]),"_indexOf_",[aClass])]);
  583. smalltalk.send(li,"_class_",[smalltalk.send(self,"_cssClassForItem_",[aClass])]);
  584. $1=smalltalk.send(li,"_with_",[(function(){
  585. $2=smalltalk.send(html,"_a",[]);
  586. smalltalk.send($2,"_with_",[(function(){
  587. smalltalk.send(smalltalk.send(html,"_tag_",["i"]),"_class_",[smalltalk.send(self,"_iconForItem_",[aClass])]);
  588. return smalltalk.send(self,"_renderItemLabel_level_on_",[aClass,anInteger,html]);
  589. })]);
  590. $3=smalltalk.send($2,"_onClick_",[(function(){
  591. return smalltalk.send(self,"_activateListItem_",[smalltalk.send(li,"_asJQuery",[])]);
  592. })]);
  593. return $3;
  594. })]);
  595. smalltalk.send(smalltalk.send(self,"_getChildrenOf_",[aClass]),"_do_",[(function(each){
  596. return smalltalk.send(self,"_renderItem_level_on_",[each,smalltalk.send(anInteger,"__plus",[(1)]),html]);
  597. })]);
  598. return self},
  599. args: ["aClass", "anInteger", "html"],
  600. source: "renderItem: aClass level: anInteger on: html\x0a\x09| li |\x0a \x0a\x09li := html li.\x0a li\x0a \x09at: 'list-data' put: (self items indexOf: aClass);\x0a \x09class: (self cssClassForItem: aClass);\x0a with: [ \x0a \x09html a\x0a \x09with: [ \x0a \x09\x09(html tag: 'i') class: (self iconForItem: aClass).\x0a \x09\x09\x09\x09\x09self renderItemLabel: aClass level: anInteger on: html ];\x0a\x09\x09\x09\x09onClick: [\x0a \x09self activateListItem: li asJQuery ] ].\x0a \x0a (self getChildrenOf: aClass) do: [ :each |\x0a \x09self renderItem: each level: anInteger + 1 on: html ]",
  601. messageSends: ["li", "at:put:", "indexOf:", "items", "class:", "cssClassForItem:", "with:", "iconForItem:", "tag:", "renderItemLabel:level:on:", "a", "onClick:", "activateListItem:", "asJQuery", "do:", "renderItem:level:on:", "+", "getChildrenOf:"],
  602. referencedClasses: []
  603. }),
  604. smalltalk.HLClassesListWidget);
  605. smalltalk.addMethod(
  606. "_renderItem_on_",
  607. smalltalk.method({
  608. selector: "renderItem:on:",
  609. category: 'rendering',
  610. fn: function (aClass,html){
  611. var self=this;
  612. smalltalk.send(self,"_renderItem_on_",[aClass,html],smalltalk.HLBrowserListWidget);
  613. smalltalk.send(smalltalk.send(self,"_getChildrenOf_",[aClass]),"_do_",[(function(each){
  614. return smalltalk.send(self,"_renderItem_level_on_",[each,(1),html]);
  615. })]);
  616. return self},
  617. args: ["aClass", "html"],
  618. source: "renderItem: aClass on: html\x0a\x09super renderItem: aClass on: html.\x0a \x09(self getChildrenOf: aClass) do: [ :each |\x0a \x09\x09self renderItem: each level: 1 on: html ]",
  619. messageSends: ["renderItem:on:", "do:", "renderItem:level:on:", "getChildrenOf:"],
  620. referencedClasses: []
  621. }),
  622. smalltalk.HLClassesListWidget);
  623. smalltalk.addMethod(
  624. "_renderItemLabel_level_on_",
  625. smalltalk.method({
  626. selector: "renderItemLabel:level:on:",
  627. category: 'rendering',
  628. fn: function (aClass,anInteger,html){
  629. var self=this;
  630. smalltalk.send(smalltalk.send(smalltalk.send(html,"_span",[]),"_asJQuery",[]),"_html_",[smalltalk.send((smalltalk.String || String),"_streamContents_",[(function(str){
  631. smalltalk.send(anInteger,"_timesRepeat_",[(function(){
  632. return smalltalk.send(str,"_nextPutAll_",["    "]);
  633. })]);
  634. return smalltalk.send(str,"_nextPutAll_",[smalltalk.send(aClass,"_name",[])]);
  635. })])]);
  636. return self},
  637. args: ["aClass", "anInteger", "html"],
  638. source: "renderItemLabel: aClass level: anInteger on: html\x0a\x09html span asJQuery html: (String streamContents: [ :str |\x0a\x09\x09anInteger timesRepeat: [\x0a\x09\x09\x09str nextPutAll: '    '].\x0a\x09\x09\x09str nextPutAll: aClass name ])",
  639. messageSends: ["html:", "streamContents:", "timesRepeat:", "nextPutAll:", "name", "asJQuery", "span"],
  640. referencedClasses: ["String"]
  641. }),
  642. smalltalk.HLClassesListWidget);
  643. smalltalk.addMethod(
  644. "_renderItemLabel_on_",
  645. smalltalk.method({
  646. selector: "renderItemLabel:on:",
  647. category: 'rendering',
  648. fn: function (aClass,html){
  649. var self=this;
  650. smalltalk.send(self,"_renderItemLabel_level_on_",[aClass,(0),html]);
  651. return self},
  652. args: ["aClass", "html"],
  653. source: "renderItemLabel: aClass on: html\x0a\x09self renderItemLabel: aClass level: 0 on: html",
  654. messageSends: ["renderItemLabel:level:on:"],
  655. referencedClasses: []
  656. }),
  657. smalltalk.HLClassesListWidget);
  658. smalltalk.addMethod(
  659. "_renderListOn_",
  660. smalltalk.method({
  661. selector: "renderListOn:",
  662. category: 'rendering',
  663. fn: function (html){
  664. var self=this;
  665. smalltalk.send(smalltalk.send(self,"_getRootClassesOf_",[smalltalk.send(self,"_items",[])]),"_do_",[(function(each){
  666. return smalltalk.send(self,"_renderItem_on_",[each,html]);
  667. })]);
  668. return self},
  669. args: ["html"],
  670. source: "renderListOn: html\x0a\x09(self getRootClassesOf: self items)\x0a \x09do: [ :each | self renderItem: each on: html ]",
  671. messageSends: ["do:", "renderItem:on:", "getRootClassesOf:", "items"],
  672. referencedClasses: []
  673. }),
  674. smalltalk.HLClassesListWidget);
  675. smalltalk.addMethod(
  676. "_selectItem_",
  677. smalltalk.method({
  678. selector: "selectItem:",
  679. category: 'actions',
  680. fn: function (aClass){
  681. var self=this;
  682. smalltalk.send(self,"_selectItem_",[aClass],smalltalk.HLBrowserListWidget);
  683. smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedClass_",[aClass]);
  684. return self},
  685. args: ["aClass"],
  686. source: "selectItem: aClass\x0a\x09super selectItem: aClass.\x0a self model selectedClass: aClass",
  687. messageSends: ["selectItem:", "selectedClass:", "model"],
  688. referencedClasses: []
  689. }),
  690. smalltalk.HLClassesListWidget);
  691. smalltalk.addMethod(
  692. "_showInstance",
  693. smalltalk.method({
  694. selector: "showInstance",
  695. category: 'accessing',
  696. fn: function (){
  697. var self=this;
  698. var $1;
  699. $1=smalltalk.send(smalltalk.send(self,"_model",[]),"_showInstance",[]);
  700. return $1;
  701. },
  702. args: [],
  703. source: "showInstance\x0a\x09^ self model showInstance",
  704. messageSends: ["showInstance", "model"],
  705. referencedClasses: []
  706. }),
  707. smalltalk.HLClassesListWidget);
  708. smalltalk.addMethod(
  709. "_showInstance_",
  710. smalltalk.method({
  711. selector: "showInstance:",
  712. category: 'actions',
  713. fn: function (aBoolean){
  714. var self=this;
  715. smalltalk.send(smalltalk.send(self,"_model",[]),"_showInstance_",[aBoolean]);
  716. return self},
  717. args: ["aBoolean"],
  718. source: "showInstance: aBoolean\x0a\x09self model showInstance: aBoolean",
  719. messageSends: ["showInstance:", "model"],
  720. referencedClasses: []
  721. }),
  722. smalltalk.HLClassesListWidget);
  723. smalltalk.addMethod(
  724. "_subscribeTo_",
  725. smalltalk.method({
  726. selector: "subscribeTo:",
  727. category: 'announcements',
  728. fn: function (anAnnouncer){
  729. var self=this;
  730. smalltalk.send(anAnnouncer,"_on_do_",[(smalltalk.HLPackageSelected || HLPackageSelected),(function(ann){
  731. return smalltalk.send(self,"_packageSelected_",[smalltalk.send(ann,"_item",[])]);
  732. })]);
  733. smalltalk.send(anAnnouncer,"_on_do_",[(smalltalk.HLShowInstanceToggled || HLShowInstanceToggled),(function(ann){
  734. return smalltalk.send(self,"_refresh",[]);
  735. })]);
  736. return self},
  737. args: ["anAnnouncer"],
  738. source: "subscribeTo: anAnnouncer\x0a\x09anAnnouncer on: HLPackageSelected do: [ :ann |\x0a \x09self packageSelected: ann item ].\x0a anAnnouncer on: HLShowInstanceToggled do: [ :ann |\x0a \x09self refresh ]",
  739. messageSends: ["on:do:", "packageSelected:", "item", "refresh"],
  740. referencedClasses: ["HLPackageSelected", "HLShowInstanceToggled"]
  741. }),
  742. smalltalk.HLClassesListWidget);
  743. smalltalk.addClass('HLMethodsListWidget', smalltalk.HLBrowserListWidget, ['selectorsCache'], 'Helios-Browser');
  744. smalltalk.addMethod(
  745. "_allProtocol",
  746. smalltalk.method({
  747. selector: "allProtocol",
  748. category: 'accessing',
  749. fn: function (){
  750. var self=this;
  751. var $1;
  752. $1=smalltalk.send(smalltalk.send(self,"_model",[]),"_allProtocol",[]);
  753. return $1;
  754. },
  755. args: [],
  756. source: "allProtocol\x0a\x09^ self model allProtocol",
  757. messageSends: ["allProtocol", "model"],
  758. referencedClasses: []
  759. }),
  760. smalltalk.HLMethodsListWidget);
  761. smalltalk.addMethod(
  762. "_flushSelectorsCache",
  763. smalltalk.method({
  764. selector: "flushSelectorsCache",
  765. category: 'cache',
  766. fn: function (){
  767. var self=this;
  768. self["@selectorsCache"]=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
  769. return self},
  770. args: [],
  771. source: "flushSelectorsCache\x0a\x09selectorsCache := Dictionary new",
  772. messageSends: ["new"],
  773. referencedClasses: ["Dictionary"]
  774. }),
  775. smalltalk.HLMethodsListWidget);
  776. smalltalk.addMethod(
  777. "_iconForItem_",
  778. smalltalk.method({
  779. selector: "iconForItem:",
  780. category: 'accessing',
  781. fn: function (aCompiledMethod){
  782. var self=this;
  783. var $1;
  784. var override;
  785. var overriden;
  786. override=smalltalk.send(self,"_isOverride_",[aCompiledMethod]);
  787. overriden=smalltalk.send(self,"_isOverriden_",[aCompiledMethod]);
  788. if(smalltalk.assert(override)){
  789. if(smalltalk.assert(overriden)){
  790. $1="icon-resize-vertical";
  791. } else {
  792. $1="icon-arrow-up";
  793. };
  794. } else {
  795. if(smalltalk.assert(overriden)){
  796. $1="icon-arrow-down";
  797. } else {
  798. $1="icon-none";
  799. };
  800. };
  801. return $1;
  802. },
  803. args: ["aCompiledMethod"],
  804. source: "iconForItem: aCompiledMethod\x0a\x09| override overriden |\x0a \x0a override := self isOverride: aCompiledMethod.\x0a overriden := self isOverriden: aCompiledMethod.\x0a \x0a\x09^ override\x0a \x09ifTrue: [ overriden\x0a\x09\x09\x09ifTrue: [ 'icon-resize-vertical' ]\x0a\x09\x09\x09ifFalse: [ 'icon-arrow-up' ] ]\x0a\x09\x09ifFalse: [\x0a\x09\x09\x09overriden\x0a\x09\x09\x09ifTrue: [ 'icon-arrow-down' ]\x0a\x09\x09\x09ifFalse: [ 'icon-none' ] ]",
  805. messageSends: ["isOverride:", "isOverriden:", "ifTrue:ifFalse:"],
  806. referencedClasses: []
  807. }),
  808. smalltalk.HLMethodsListWidget);
  809. smalltalk.addMethod(
  810. "_initialize",
  811. smalltalk.method({
  812. selector: "initialize",
  813. category: 'initialization',
  814. fn: function (){
  815. var self=this;
  816. smalltalk.send(self,"_initialize",[],smalltalk.HLBrowserListWidget);
  817. smalltalk.send(self,"_flushSelectorsCache",[]);
  818. return self},
  819. args: [],
  820. source: "initialize\x0a\x09super initialize.\x0a self flushSelectorsCache",
  821. messageSends: ["initialize", "flushSelectorsCache"],
  822. referencedClasses: []
  823. }),
  824. smalltalk.HLMethodsListWidget);
  825. smalltalk.addMethod(
  826. "_isOverride_",
  827. smalltalk.method({
  828. selector: "isOverride:",
  829. category: 'testing',
  830. fn: function (aMethod){
  831. var self=this;
  832. var $1;
  833. $1=smalltalk.send(smalltalk.send(self,"_overrideSelectors",[]),"_includes_",[smalltalk.send(aMethod,"_selector",[])]);
  834. return $1;
  835. },
  836. args: ["aMethod"],
  837. source: "isOverride: aMethod\x0a\x0a ^ self overrideSelectors includes: aMethod selector",
  838. messageSends: ["includes:", "selector", "overrideSelectors"],
  839. referencedClasses: []
  840. }),
  841. smalltalk.HLMethodsListWidget);
  842. smalltalk.addMethod(
  843. "_isOverriden_",
  844. smalltalk.method({
  845. selector: "isOverriden:",
  846. category: 'testing',
  847. fn: function (aMethod){
  848. var self=this;
  849. var $1;
  850. $1=smalltalk.send(smalltalk.send(self,"_overridenSelectors",[]),"_includes_",[smalltalk.send(aMethod,"_selector",[])]);
  851. return $1;
  852. },
  853. args: ["aMethod"],
  854. source: "isOverriden: aMethod\x0a\x0a ^ self overridenSelectors includes: aMethod selector",
  855. messageSends: ["includes:", "selector", "overridenSelectors"],
  856. referencedClasses: []
  857. }),
  858. smalltalk.HLMethodsListWidget);
  859. smalltalk.addMethod(
  860. "_methodsInProtocol_",
  861. smalltalk.method({
  862. selector: "methodsInProtocol:",
  863. category: 'accessing',
  864. fn: function (aString){
  865. var self=this;
  866. var $2,$1;
  867. $2=smalltalk.send(aString,"__eq",[smalltalk.send(self,"_allProtocol",[])]);
  868. if(smalltalk.assert($2)){
  869. $1=smalltalk.send(smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedClass",[]),"_methods",[]);
  870. } else {
  871. $1=smalltalk.send(smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedClass",[]),"_methodsInProtocol_",[aString]);
  872. };
  873. return $1;
  874. },
  875. args: ["aString"],
  876. source: "methodsInProtocol: aString\x0a\x09^ aString = self allProtocol\x0a \x09ifTrue: [ self model selectedClass methods ]\x0a \x09ifFalse: [ self model selectedClass methodsInProtocol: aString ]",
  877. messageSends: ["ifTrue:ifFalse:", "methods", "selectedClass", "model", "methodsInProtocol:", "=", "allProtocol"],
  878. referencedClasses: []
  879. }),
  880. smalltalk.HLMethodsListWidget);
  881. smalltalk.addMethod(
  882. "_overrideSelectors",
  883. smalltalk.method({
  884. selector: "overrideSelectors",
  885. category: 'accessing',
  886. fn: function (){
  887. var self=this;
  888. var $2,$1;
  889. $1=smalltalk.send(smalltalk.send(self,"_selectorsCache",[]),"_at_ifAbsentPut_",["override",(function(){
  890. return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedClass",[]),"_allSuperclasses",[]),"_inject_into_",[smalltalk.send((smalltalk.Set || Set),"_new",[]),(function(acc,each){
  891. smalltalk.send(acc,"_addAll_",[smalltalk.send(each,"_selectors",[])]);
  892. $2=smalltalk.send(acc,"_yourself",[]);
  893. return $2;
  894. })]);
  895. })]);
  896. return $1;
  897. },
  898. args: [],
  899. source: "overrideSelectors\x0a\x09^ self selectorsCache \x0a \x09at: 'override'\x0a ifAbsentPut: [ \x0a \x09self model selectedClass allSuperclasses\x0a\x09\x09\x09\x09inject: Set new into: [ :acc :each | acc addAll: each selectors; yourself ] ]",
  900. messageSends: ["at:ifAbsentPut:", "inject:into:", "new", "addAll:", "selectors", "yourself", "allSuperclasses", "selectedClass", "model", "selectorsCache"],
  901. referencedClasses: ["Set"]
  902. }),
  903. smalltalk.HLMethodsListWidget);
  904. smalltalk.addMethod(
  905. "_overridenSelectors",
  906. smalltalk.method({
  907. selector: "overridenSelectors",
  908. category: 'accessing',
  909. fn: function (){
  910. var self=this;
  911. var $2,$1;
  912. $1=smalltalk.send(smalltalk.send(self,"_selectorsCache",[]),"_at_ifAbsentPut_",["overriden",(function(){
  913. return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedClass",[]),"_allSubclasses",[]),"_inject_into_",[smalltalk.send((smalltalk.Set || Set),"_new",[]),(function(acc,each){
  914. smalltalk.send(acc,"_addAll_",[smalltalk.send(each,"_selectors",[])]);
  915. $2=smalltalk.send(acc,"_yourself",[]);
  916. return $2;
  917. })]);
  918. })]);
  919. return $1;
  920. },
  921. args: [],
  922. source: "overridenSelectors\x0a\x09^ self selectorsCache \x0a \x09at: 'overriden'\x0a ifAbsentPut: [ \x0a \x09self model selectedClass allSubclasses\x0a\x09\x09\x09\x09inject: Set new into: [ :acc :each | acc addAll: each selectors; yourself ] ]",
  923. messageSends: ["at:ifAbsentPut:", "inject:into:", "new", "addAll:", "selectors", "yourself", "allSubclasses", "selectedClass", "model", "selectorsCache"],
  924. referencedClasses: ["Set"]
  925. }),
  926. smalltalk.HLMethodsListWidget);
  927. smalltalk.addMethod(
  928. "_protocolSelected_",
  929. smalltalk.method({
  930. selector: "protocolSelected:",
  931. category: 'actions',
  932. fn: function (aString){
  933. var self=this;
  934. var $2,$1;
  935. smalltalk.send(self,"_selectedItem_",[nil]);
  936. $2=smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedClass",[]);
  937. if(($receiver = $2) == nil || $receiver == undefined){
  938. $1=[];
  939. } else {
  940. if(($receiver = aString) == nil || $receiver == undefined){
  941. $1=smalltalk.send(smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedClass",[]),"_methods",[]);
  942. } else {
  943. $1=smalltalk.send(self,"_methodsInProtocol_",[aString]);
  944. };
  945. };
  946. smalltalk.send(self,"_items_",[$1]);
  947. smalltalk.send(self,"_refresh",[]);
  948. return self},
  949. args: ["aString"],
  950. source: "protocolSelected: aString\x0a self selectedItem: nil.\x0a \x0a self items: (self model selectedClass \x0a \x09ifNil: [ #() ]\x0a \x09ifNotNil: [ aString\x0a \x09\x09ifNil: [ self model selectedClass methods ]\x0a \x09\x09ifNotNil: [ self methodsInProtocol: aString ] ]).\x0a \x0a self refresh",
  951. messageSends: ["selectedItem:", "items:", "ifNil:ifNotNil:", "methods", "selectedClass", "model", "methodsInProtocol:", "refresh"],
  952. referencedClasses: []
  953. }),
  954. smalltalk.HLMethodsListWidget);
  955. smalltalk.addMethod(
  956. "_registerBindingsOn_",
  957. smalltalk.method({
  958. selector: "registerBindingsOn:",
  959. category: 'keybindings',
  960. fn: function (aBindingGroup){
  961. var self=this;
  962. smalltalk.send(smalltalk.send(aBindingGroup,"_at_",["Go to"]),"_addActionKey_labelled_callback_",[(77),"Methods",(function(){
  963. return smalltalk.send(self,"_focus",[]);
  964. })]);
  965. return self},
  966. args: ["aBindingGroup"],
  967. source: "registerBindingsOn: aBindingGroup\x0a\x09(aBindingGroup at: 'Go to') \x0a \x09addActionKey: 77 labelled: 'Methods' callback: [ self focus ]",
  968. messageSends: ["addActionKey:labelled:callback:", "focus", "at:"],
  969. referencedClasses: []
  970. }),
  971. smalltalk.HLMethodsListWidget);
  972. smalltalk.addMethod(
  973. "_renderContentOn_",
  974. smalltalk.method({
  975. selector: "renderContentOn:",
  976. category: 'rendering',
  977. fn: function (html){
  978. var self=this;
  979. var $1,$2,$3;
  980. $1=smalltalk.send(smalltalk.send(self,"_model",[]),"_showInstance",[]);
  981. if(smalltalk.assert($1)){
  982. smalltalk.send(self,"_renderContentOn_",[html],smalltalk.HLBrowserListWidget);
  983. } else {
  984. $2=smalltalk.send(html,"_div",[]);
  985. smalltalk.send($2,"_class_",["class_side"]);
  986. $3=smalltalk.send($2,"_with_",[(function(){
  987. return smalltalk.send(self,"_renderContentOn_",[html],smalltalk.HLBrowserListWidget);
  988. })]);
  989. $3;
  990. };
  991. smalltalk.send(self,"_flushSelectorsCache",[]);
  992. return self},
  993. args: ["html"],
  994. source: "renderContentOn: html\x0a\x09self model showInstance\x0a \x09ifFalse: [ html div \x0a \x09class: 'class_side'; \x0a with: [ super renderContentOn: html ] ]\x0a \x09ifTrue: [ super renderContentOn: html ].\x0a \x0a self flushSelectorsCache",
  995. messageSends: ["ifFalse:ifTrue:", "class:", "div", "with:", "renderContentOn:", "showInstance", "model", "flushSelectorsCache"],
  996. referencedClasses: []
  997. }),
  998. smalltalk.HLMethodsListWidget);
  999. smalltalk.addMethod(
  1000. "_renderItemLabel_on_",
  1001. smalltalk.method({
  1002. selector: "renderItemLabel:on:",
  1003. category: 'rendering',
  1004. fn: function (aCompiledMethod,html){
  1005. var self=this;
  1006. smalltalk.send(html,"_with_",[smalltalk.send(aCompiledMethod,"_selector",[])]);
  1007. return self},
  1008. args: ["aCompiledMethod", "html"],
  1009. source: "renderItemLabel: aCompiledMethod on: html\x0a\x09html with: aCompiledMethod selector",
  1010. messageSends: ["with:", "selector"],
  1011. referencedClasses: []
  1012. }),
  1013. smalltalk.HLMethodsListWidget);
  1014. smalltalk.addMethod(
  1015. "_selectItem_",
  1016. smalltalk.method({
  1017. selector: "selectItem:",
  1018. category: 'actions',
  1019. fn: function (aCompiledMethod){
  1020. var self=this;
  1021. smalltalk.send(self,"_selectItem_",[aCompiledMethod],smalltalk.HLBrowserListWidget);
  1022. smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedMethod_",[aCompiledMethod]);
  1023. return self},
  1024. args: ["aCompiledMethod"],
  1025. source: "selectItem: aCompiledMethod\x0a\x09super selectItem: aCompiledMethod.\x0a self model selectedMethod: aCompiledMethod",
  1026. messageSends: ["selectItem:", "selectedMethod:", "model"],
  1027. referencedClasses: []
  1028. }),
  1029. smalltalk.HLMethodsListWidget);
  1030. smalltalk.addMethod(
  1031. "_selectorsCache",
  1032. smalltalk.method({
  1033. selector: "selectorsCache",
  1034. category: 'accessing',
  1035. fn: function (){
  1036. var self=this;
  1037. return self["@selectorsCache"];
  1038. },
  1039. args: [],
  1040. source: "selectorsCache\x0a\x09^ selectorsCache",
  1041. messageSends: [],
  1042. referencedClasses: []
  1043. }),
  1044. smalltalk.HLMethodsListWidget);
  1045. smalltalk.addMethod(
  1046. "_subscribeTo_",
  1047. smalltalk.method({
  1048. selector: "subscribeTo:",
  1049. category: 'announcements',
  1050. fn: function (anAnnouncer){
  1051. var self=this;
  1052. smalltalk.send(anAnnouncer,"_on_do_",[(smalltalk.HLProtocolSelected || HLProtocolSelected),(function(ann){
  1053. return smalltalk.send(self,"_protocolSelected_",[smalltalk.send(ann,"_item",[])]);
  1054. })]);
  1055. smalltalk.send(anAnnouncer,"_on_do_",[(smalltalk.HLShowInstanceToggled || HLShowInstanceToggled),(function(ann){
  1056. return smalltalk.send(self,"_protocolSelected_",[nil]);
  1057. })]);
  1058. return self},
  1059. args: ["anAnnouncer"],
  1060. source: "subscribeTo: anAnnouncer\x0a\x09anAnnouncer on: HLProtocolSelected do: [ :ann |\x0a \x09self protocolSelected: ann item ].\x0a anAnnouncer on: HLShowInstanceToggled do: [ :ann |\x0a \x09self protocolSelected: nil ]",
  1061. messageSends: ["on:do:", "protocolSelected:", "item"],
  1062. referencedClasses: ["HLProtocolSelected", "HLShowInstanceToggled"]
  1063. }),
  1064. smalltalk.HLMethodsListWidget);
  1065. smalltalk.addClass('HLPackagesListWidget', smalltalk.HLBrowserListWidget, [], 'Helios-Browser');
  1066. smalltalk.addMethod(
  1067. "_focusClassesListWidget",
  1068. smalltalk.method({
  1069. selector: "focusClassesListWidget",
  1070. category: 'actions',
  1071. fn: function (){
  1072. var self=this;
  1073. smalltalk.send(smalltalk.send(smalltalk.send(self,"_model",[]),"_announcer",[]),"_announce_",[smalltalk.send((smalltalk.HLClassesListFocus || HLClassesListFocus),"_new",[])]);
  1074. return self},
  1075. args: [],
  1076. source: "focusClassesListWidget\x0a\x09self model announcer announce: HLClassesListFocus new",
  1077. messageSends: ["announce:", "new", "announcer", "model"],
  1078. referencedClasses: ["HLClassesListFocus"]
  1079. }),
  1080. smalltalk.HLPackagesListWidget);
  1081. smalltalk.addMethod(
  1082. "_items",
  1083. smalltalk.method({
  1084. selector: "items",
  1085. category: 'accessing',
  1086. fn: function (){
  1087. var self=this;
  1088. var $1;
  1089. if(($receiver = self["@items"]) == nil || $receiver == undefined){
  1090. self["@items"]=smalltalk.send(smalltalk.send(self,"_model",[]),"_packages",[]);
  1091. $1=self["@items"];
  1092. } else {
  1093. $1=self["@items"];
  1094. };
  1095. return $1;
  1096. },
  1097. args: [],
  1098. source: "items\x0a\x09^ items ifNil: [ items := self model packages ]",
  1099. messageSends: ["ifNil:", "packages", "model"],
  1100. referencedClasses: []
  1101. }),
  1102. smalltalk.HLPackagesListWidget);
  1103. smalltalk.addMethod(
  1104. "_registerBindingsOn_",
  1105. smalltalk.method({
  1106. selector: "registerBindingsOn:",
  1107. category: 'keybindings',
  1108. fn: function (aBindingGroup){
  1109. var self=this;
  1110. smalltalk.send(smalltalk.send(aBindingGroup,"_at_",["Go to"]),"_addActionKey_labelled_callback_",[(80),"Packages",(function(){
  1111. return smalltalk.send(self,"_focus",[]);
  1112. })]);
  1113. return self},
  1114. args: ["aBindingGroup"],
  1115. source: "registerBindingsOn: aBindingGroup\x0a\x09(aBindingGroup at: 'Go to') \x0a \x09addActionKey: 80 labelled: 'Packages' callback: [ self focus ]",
  1116. messageSends: ["addActionKey:labelled:callback:", "focus", "at:"],
  1117. referencedClasses: []
  1118. }),
  1119. smalltalk.HLPackagesListWidget);
  1120. smalltalk.addMethod(
  1121. "_renderButtonsOn_",
  1122. smalltalk.method({
  1123. selector: "renderButtonsOn:",
  1124. category: 'rendering',
  1125. fn: function (html){
  1126. var self=this;
  1127. var $1,$2,$3,$5,$6,$7,$8,$4,$9,$10;
  1128. $1=smalltalk.send(html,"_span",[]);
  1129. smalltalk.send($1,"_class_",["info"]);
  1130. $2=smalltalk.send($1,"_with_",["Auto commit"]);
  1131. $3=smalltalk.send(html,"_div",[]);
  1132. smalltalk.send($3,"_class_",["btn-group switch"]);
  1133. smalltalk.send($3,"_at_put_",["data-toggle","buttons-radio"]);
  1134. $4=smalltalk.send($3,"_with_",[(function(){
  1135. $5=smalltalk.send(html,"_button",[]);
  1136. smalltalk.send($5,"_class_",[smalltalk.send((smalltalk.String || String),"_streamContents_",[(function(str){
  1137. return smalltalk.send(str,"_nextPutAll_",["btn"]);
  1138. })])]);
  1139. $6=smalltalk.send($5,"_with_",["On"]);
  1140. $6;
  1141. $7=smalltalk.send(html,"_button",[]);
  1142. smalltalk.send($7,"_class_",[smalltalk.send((smalltalk.String || String),"_streamContents_",[(function(str){
  1143. return smalltalk.send(str,"_nextPutAll_",["btn active"]);
  1144. })])]);
  1145. $8=smalltalk.send($7,"_with_",["Off"]);
  1146. return $8;
  1147. })]);
  1148. $9=smalltalk.send(html,"_a",[]);
  1149. smalltalk.send($9,"_class_",["btn"]);
  1150. $10=smalltalk.send($9,"_with_",["Commit"]);
  1151. return self},
  1152. args: ["html"],
  1153. source: "renderButtonsOn: html\x0a\x0a\x09html span class: 'info'; with: 'Auto commit'.\x0a\x09html div \x0a class: 'btn-group switch';\x0a\x09\x09at: 'data-toggle' put: 'buttons-radio';\x0a\x09\x09with: [ \x0a \x09html button \x0a class: (String streamContents: [ :str |\x0a \x09str nextPutAll: 'btn' ]);\x0a \x09\x09\x09\x09with: 'On'.\x0a \x09\x09\x09html button\x0a \x09\x09\x09\x09class: (String streamContents: [ :str |\x0a \x09str nextPutAll: 'btn active' ]);\x0a \x09\x09\x09\x09with: 'Off' ].\x0a \x0a html a \x0a \x09class: 'btn';\x0a\x09\x09\x09with: 'Commit'.",
  1154. messageSends: ["class:", "span", "with:", "div", "at:put:", "streamContents:", "nextPutAll:", "button", "a"],
  1155. referencedClasses: ["String"]
  1156. }),
  1157. smalltalk.HLPackagesListWidget);
  1158. smalltalk.addMethod(
  1159. "_selectItem_",
  1160. smalltalk.method({
  1161. selector: "selectItem:",
  1162. category: 'actions',
  1163. fn: function (aPackage){
  1164. var self=this;
  1165. smalltalk.send(self,"_selectItem_",[aPackage],smalltalk.HLBrowserListWidget);
  1166. smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedPackage_",[aPackage]);
  1167. return self},
  1168. args: ["aPackage"],
  1169. source: "selectItem: aPackage\x0a\x09super selectItem: aPackage.\x0a self model selectedPackage: aPackage",
  1170. messageSends: ["selectItem:", "selectedPackage:", "model"],
  1171. referencedClasses: []
  1172. }),
  1173. smalltalk.HLPackagesListWidget);
  1174. smalltalk.addClass('HLProtocolsListWidget', smalltalk.HLBrowserListWidget, [], 'Helios-Browser');
  1175. smalltalk.addMethod(
  1176. "_allProtocol",
  1177. smalltalk.method({
  1178. selector: "allProtocol",
  1179. category: 'accessing',
  1180. fn: function (){
  1181. var self=this;
  1182. var $1;
  1183. $1=smalltalk.send(smalltalk.send(self,"_model",[]),"_allProtocol",[]);
  1184. return $1;
  1185. },
  1186. args: [],
  1187. source: "allProtocol\x0a\x09^ self model allProtocol",
  1188. messageSends: ["allProtocol", "model"],
  1189. referencedClasses: []
  1190. }),
  1191. smalltalk.HLProtocolsListWidget);
  1192. smalltalk.addMethod(
  1193. "_classSelected_",
  1194. smalltalk.method({
  1195. selector: "classSelected:",
  1196. category: 'actions',
  1197. fn: function (aClass){
  1198. var self=this;
  1199. var $2,$3,$1;
  1200. smalltalk.send(self,"_selectedItem_",[nil]);
  1201. if(($receiver = aClass) == nil || $receiver == undefined){
  1202. $1=smalltalk.send((smalltalk.Array || Array),"_with_",[smalltalk.send(self,"_allProtocol",[])]);
  1203. } else {
  1204. $2=smalltalk.send((smalltalk.Array || Array),"_with_",[smalltalk.send(self,"_allProtocol",[])]);
  1205. smalltalk.send($2,"_addAll_",[smalltalk.send(aClass,"_protocols",[])]);
  1206. $3=smalltalk.send($2,"_yourself",[]);
  1207. $1=$3;
  1208. };
  1209. smalltalk.send(self,"_items_",[$1]);
  1210. smalltalk.send(self,"_refresh",[]);
  1211. return self},
  1212. args: ["aClass"],
  1213. source: "classSelected: aClass\x0a self selectedItem: nil.\x0a \x0a self items: (aClass\x0a \x09ifNil: [ Array with: self allProtocol ]\x0a \x09ifNotNil: [ \x0a \x09(Array with: self allProtocol) \x0a \x09addAll: aClass protocols; \x0a yourself ]).\x0a\x0a self refresh",
  1214. messageSends: ["selectedItem:", "items:", "ifNil:ifNotNil:", "with:", "allProtocol", "addAll:", "protocols", "yourself", "refresh"],
  1215. referencedClasses: ["Array"]
  1216. }),
  1217. smalltalk.HLProtocolsListWidget);
  1218. smalltalk.addMethod(
  1219. "_registerBindingsOn_",
  1220. smalltalk.method({
  1221. selector: "registerBindingsOn:",
  1222. category: 'keybindings',
  1223. fn: function (aBindingGroup){
  1224. var self=this;
  1225. smalltalk.send(smalltalk.send(aBindingGroup,"_at_",["Go to"]),"_addActionKey_labelled_callback_",[(84),"Protocols",(function(){
  1226. return smalltalk.send(self,"_focus",[]);
  1227. })]);
  1228. return self},
  1229. args: ["aBindingGroup"],
  1230. source: "registerBindingsOn: aBindingGroup\x0a\x09(aBindingGroup at: 'Go to') \x0a \x09addActionKey: 84 labelled: 'Protocols' callback: [ self focus ]",
  1231. messageSends: ["addActionKey:labelled:callback:", "focus", "at:"],
  1232. referencedClasses: []
  1233. }),
  1234. smalltalk.HLProtocolsListWidget);
  1235. smalltalk.addMethod(
  1236. "_renderContentOn_",
  1237. smalltalk.method({
  1238. selector: "renderContentOn:",
  1239. category: 'rendering',
  1240. fn: function (html){
  1241. var self=this;
  1242. var $1,$2,$3;
  1243. $1=smalltalk.send(smalltalk.send(self,"_model",[]),"_showInstance",[]);
  1244. if(smalltalk.assert($1)){
  1245. smalltalk.send(self,"_renderContentOn_",[html],smalltalk.HLBrowserListWidget);
  1246. } else {
  1247. $2=smalltalk.send(html,"_div",[]);
  1248. smalltalk.send($2,"_class_",["class_side"]);
  1249. $3=smalltalk.send($2,"_with_",[(function(){
  1250. return smalltalk.send(self,"_renderContentOn_",[html],smalltalk.HLBrowserListWidget);
  1251. })]);
  1252. $3;
  1253. };
  1254. return self},
  1255. args: ["html"],
  1256. source: "renderContentOn: html\x0a\x09self model showInstance\x0a \x09ifFalse: [ html div \x0a \x09class: 'class_side'; \x0a with: [ super renderContentOn: html ] ]\x0a \x09ifTrue: [ super renderContentOn: html ]",
  1257. messageSends: ["ifFalse:ifTrue:", "class:", "div", "with:", "renderContentOn:", "showInstance", "model"],
  1258. referencedClasses: []
  1259. }),
  1260. smalltalk.HLProtocolsListWidget);
  1261. smalltalk.addMethod(
  1262. "_selectItem_",
  1263. smalltalk.method({
  1264. selector: "selectItem:",
  1265. category: 'actions',
  1266. fn: function (aString){
  1267. var self=this;
  1268. smalltalk.send(self,"_selectItem_",[aString],smalltalk.HLBrowserListWidget);
  1269. smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedProtocol_",[aString]);
  1270. return self},
  1271. args: ["aString"],
  1272. source: "selectItem: aString\x0a\x09super selectItem: aString.\x0a self model selectedProtocol: aString",
  1273. messageSends: ["selectItem:", "selectedProtocol:", "model"],
  1274. referencedClasses: []
  1275. }),
  1276. smalltalk.HLProtocolsListWidget);
  1277. smalltalk.addMethod(
  1278. "_selectedItem",
  1279. smalltalk.method({
  1280. selector: "selectedItem",
  1281. category: 'accessing',
  1282. fn: function (){
  1283. var self=this;
  1284. var $2,$1;
  1285. $2=smalltalk.send(self,"_selectedItem",[],smalltalk.HLBrowserListWidget);
  1286. if(($receiver = $2) == nil || $receiver == undefined){
  1287. $1=smalltalk.send(self,"_allProtocol",[]);
  1288. } else {
  1289. $1=$2;
  1290. };
  1291. return $1;
  1292. },
  1293. args: [],
  1294. source: "selectedItem\x0a\x09^ super selectedItem ifNil: [ self allProtocol ]",
  1295. messageSends: ["ifNil:", "allProtocol", "selectedItem"],
  1296. referencedClasses: []
  1297. }),
  1298. smalltalk.HLProtocolsListWidget);
  1299. smalltalk.addMethod(
  1300. "_subscribeTo_",
  1301. smalltalk.method({
  1302. selector: "subscribeTo:",
  1303. category: 'announcements',
  1304. fn: function (anAnnouncer){
  1305. var self=this;
  1306. smalltalk.send(anAnnouncer,"_on_do_",[(smalltalk.HLClassSelected || HLClassSelected),(function(ann){
  1307. return smalltalk.send(self,"_classSelected_",[smalltalk.send(ann,"_item",[])]);
  1308. })]);
  1309. smalltalk.send(anAnnouncer,"_on_do_",[(smalltalk.HLShowInstanceToggled || HLShowInstanceToggled),(function(ann){
  1310. return smalltalk.send(self,"_classSelected_",[smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedClass",[])]);
  1311. })]);
  1312. return self},
  1313. args: ["anAnnouncer"],
  1314. source: "subscribeTo: anAnnouncer\x0a\x09anAnnouncer on: HLClassSelected do: [ :ann |\x0a \x09self classSelected: ann item ].\x0a anAnnouncer on: HLShowInstanceToggled do: [ :ann |\x0a \x09self classSelected: self model selectedClass ]",
  1315. messageSends: ["on:do:", "classSelected:", "item", "selectedClass", "model"],
  1316. referencedClasses: ["HLClassSelected", "HLShowInstanceToggled"]
  1317. }),
  1318. smalltalk.HLProtocolsListWidget);
  1319. smalltalk.addClass('HLBrowserModel', smalltalk.Object, ['announcer', 'environment', 'selectedPackage', 'selectedClass', 'selectedProtocol', 'selectedMethod', 'showInstance', 'showComment'], 'Helios-Browser');
  1320. smalltalk.addMethod(
  1321. "_allProtocol",
  1322. smalltalk.method({
  1323. selector: "allProtocol",
  1324. category: 'accessing',
  1325. fn: function (){
  1326. var self=this;
  1327. return "-- All --";
  1328. },
  1329. args: [],
  1330. source: "allProtocol\x0a\x09^ '-- All --'",
  1331. messageSends: [],
  1332. referencedClasses: []
  1333. }),
  1334. smalltalk.HLBrowserModel);
  1335. smalltalk.addMethod(
  1336. "_announcer",
  1337. smalltalk.method({
  1338. selector: "announcer",
  1339. category: 'announcements',
  1340. fn: function (){
  1341. var self=this;
  1342. var $1;
  1343. if(($receiver = self["@announcer"]) == nil || $receiver == undefined){
  1344. self["@announcer"]=smalltalk.send((smalltalk.Announcer || Announcer),"_new",[]);
  1345. $1=self["@announcer"];
  1346. } else {
  1347. $1=self["@announcer"];
  1348. };
  1349. return $1;
  1350. },
  1351. args: [],
  1352. source: "announcer\x0a\x09^ announcer ifNil: [ announcer := Announcer new ]",
  1353. messageSends: ["ifNil:", "new"],
  1354. referencedClasses: ["Announcer"]
  1355. }),
  1356. smalltalk.HLBrowserModel);
  1357. smalltalk.addMethod(
  1358. "_environment",
  1359. smalltalk.method({
  1360. selector: "environment",
  1361. category: 'accessing',
  1362. fn: function (){
  1363. var self=this;
  1364. var $1;
  1365. if(($receiver = self["@environment"]) == nil || $receiver == undefined){
  1366. self["@environment"]=smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]);
  1367. $1=self["@environment"];
  1368. } else {
  1369. $1=self["@environment"];
  1370. };
  1371. return $1;
  1372. },
  1373. args: [],
  1374. source: "environment\x0a\x09^ environment ifNil: [ environment := Smalltalk current ]",
  1375. messageSends: ["ifNil:", "current"],
  1376. referencedClasses: ["Smalltalk"]
  1377. }),
  1378. smalltalk.HLBrowserModel);
  1379. smalltalk.addMethod(
  1380. "_environment_",
  1381. smalltalk.method({
  1382. selector: "environment:",
  1383. category: 'accessing',
  1384. fn: function (anEnvironment){
  1385. var self=this;
  1386. self["@environment"]=anEnvironment;
  1387. return self},
  1388. args: ["anEnvironment"],
  1389. source: "environment: anEnvironment\x0a\x09environment := anEnvironment",
  1390. messageSends: [],
  1391. referencedClasses: []
  1392. }),
  1393. smalltalk.HLBrowserModel);
  1394. smalltalk.addMethod(
  1395. "_packages",
  1396. smalltalk.method({
  1397. selector: "packages",
  1398. category: 'accessing',
  1399. fn: function (){
  1400. var self=this;
  1401. var $1;
  1402. $1=smalltalk.send(smalltalk.send(self,"_environment",[]),"_packages",[]);
  1403. return $1;
  1404. },
  1405. args: [],
  1406. source: "packages\x0a\x09^ self environment packages",
  1407. messageSends: ["packages", "environment"],
  1408. referencedClasses: []
  1409. }),
  1410. smalltalk.HLBrowserModel);
  1411. smalltalk.addMethod(
  1412. "_selectedClass",
  1413. smalltalk.method({
  1414. selector: "selectedClass",
  1415. category: 'accessing',
  1416. fn: function (){
  1417. var self=this;
  1418. return self["@selectedClass"];
  1419. },
  1420. args: [],
  1421. source: "selectedClass\x0a\x09^ selectedClass",
  1422. messageSends: [],
  1423. referencedClasses: []
  1424. }),
  1425. smalltalk.HLBrowserModel);
  1426. smalltalk.addMethod(
  1427. "_selectedClass_",
  1428. smalltalk.method({
  1429. selector: "selectedClass:",
  1430. category: 'accessing',
  1431. fn: function (aClass){
  1432. var self=this;
  1433. var $1,$2;
  1434. if(($receiver = aClass) == nil || $receiver == undefined){
  1435. self["@selectedClass"]=nil;
  1436. self["@selectedClass"];
  1437. } else {
  1438. $1=smalltalk.send(self,"_showInstance",[]);
  1439. if(smalltalk.assert($1)){
  1440. self["@selectedClass"]=smalltalk.send(aClass,"_theNonMetaClass",[]);
  1441. self["@selectedClass"];
  1442. } else {
  1443. self["@selectedClass"]=smalltalk.send(aClass,"_theMetaClass",[]);
  1444. self["@selectedClass"];
  1445. };
  1446. };
  1447. smalltalk.send(self,"_selectedMethod_",[nil]);
  1448. $2=smalltalk.send(self,"_selectedProtocol_",[nil]);
  1449. smalltalk.send(smalltalk.send(self,"_announcer",[]),"_announce_",[smalltalk.send((smalltalk.HLClassSelected || HLClassSelected),"_on_",[smalltalk.send(self,"_selectedClass",[])])]);
  1450. return self},
  1451. args: ["aClass"],
  1452. source: "selectedClass: aClass\x0a\x09aClass \x0a \x09ifNil: [ selectedClass := nil ]\x0a \x09ifNotNil: [\x0a\x09\x09\x09self showInstance \x0a \x09\x09\x09ifTrue: [ selectedClass := aClass theNonMetaClass ]\x0a \x09\x09\x09ifFalse: [ selectedClass := aClass theMetaClass ] ].\x0a \x0a self \x0a \x09selectedMethod: nil;\x0a selectedProtocol: nil.\x0a \x0a self announcer announce: (HLClassSelected on: self selectedClass)",
  1453. messageSends: ["ifNil:ifNotNil:", "ifTrue:ifFalse:", "theNonMetaClass", "theMetaClass", "showInstance", "selectedMethod:", "selectedProtocol:", "announce:", "on:", "selectedClass", "announcer"],
  1454. referencedClasses: ["HLClassSelected"]
  1455. }),
  1456. smalltalk.HLBrowserModel);
  1457. smalltalk.addMethod(
  1458. "_selectedMethod",
  1459. smalltalk.method({
  1460. selector: "selectedMethod",
  1461. category: 'accessing',
  1462. fn: function (){
  1463. var self=this;
  1464. return self["@selectedMethod"];
  1465. },
  1466. args: [],
  1467. source: "selectedMethod\x0a\x09^ selectedMethod",
  1468. messageSends: [],
  1469. referencedClasses: []
  1470. }),
  1471. smalltalk.HLBrowserModel);
  1472. smalltalk.addMethod(
  1473. "_selectedMethod_",
  1474. smalltalk.method({
  1475. selector: "selectedMethod:",
  1476. category: 'accessing',
  1477. fn: function (aCompiledMethod){
  1478. var self=this;
  1479. self["@selectedMethod"]=aCompiledMethod;
  1480. smalltalk.send(smalltalk.send(self,"_announcer",[]),"_announce_",[smalltalk.send((smalltalk.HLMethodSelected || HLMethodSelected),"_on_",[aCompiledMethod])]);
  1481. return self},
  1482. args: ["aCompiledMethod"],
  1483. source: "selectedMethod: aCompiledMethod\x0a\x09selectedMethod := aCompiledMethod.\x0a \x0a self announcer announce: (HLMethodSelected on: aCompiledMethod)",
  1484. messageSends: ["announce:", "on:", "announcer"],
  1485. referencedClasses: ["HLMethodSelected"]
  1486. }),
  1487. smalltalk.HLBrowserModel);
  1488. smalltalk.addMethod(
  1489. "_selectedPackage",
  1490. smalltalk.method({
  1491. selector: "selectedPackage",
  1492. category: 'accessing',
  1493. fn: function (){
  1494. var self=this;
  1495. return self["@selectedPackage"];
  1496. },
  1497. args: [],
  1498. source: "selectedPackage\x0a\x09^ selectedPackage",
  1499. messageSends: [],
  1500. referencedClasses: []
  1501. }),
  1502. smalltalk.HLBrowserModel);
  1503. smalltalk.addMethod(
  1504. "_selectedPackage_",
  1505. smalltalk.method({
  1506. selector: "selectedPackage:",
  1507. category: 'accessing',
  1508. fn: function (aPackage){
  1509. var self=this;
  1510. self["@selectedPackage"]=aPackage;
  1511. smalltalk.send(self,"_selectedClass_",[nil]);
  1512. smalltalk.send(smalltalk.send(self,"_announcer",[]),"_announce_",[smalltalk.send((smalltalk.HLPackageSelected || HLPackageSelected),"_on_",[aPackage])]);
  1513. return self},
  1514. args: ["aPackage"],
  1515. source: "selectedPackage: aPackage\x0a\x0a\x09selectedPackage := aPackage.\x0a self selectedClass: nil.\x0a \x0a self announcer announce: (HLPackageSelected on: aPackage)",
  1516. messageSends: ["selectedClass:", "announce:", "on:", "announcer"],
  1517. referencedClasses: ["HLPackageSelected"]
  1518. }),
  1519. smalltalk.HLBrowserModel);
  1520. smalltalk.addMethod(
  1521. "_selectedProtocol",
  1522. smalltalk.method({
  1523. selector: "selectedProtocol",
  1524. category: 'accessing',
  1525. fn: function (){
  1526. var self=this;
  1527. return self["@selectedProtocol"];
  1528. },
  1529. args: [],
  1530. source: "selectedProtocol\x0a\x09^ selectedProtocol",
  1531. messageSends: [],
  1532. referencedClasses: []
  1533. }),
  1534. smalltalk.HLBrowserModel);
  1535. smalltalk.addMethod(
  1536. "_selectedProtocol_",
  1537. smalltalk.method({
  1538. selector: "selectedProtocol:",
  1539. category: 'accessing',
  1540. fn: function (aString){
  1541. var self=this;
  1542. self["@selectedProtocol"]=aString;
  1543. smalltalk.send(self,"_selectedMethod_",[nil]);
  1544. smalltalk.send(smalltalk.send(self,"_announcer",[]),"_announce_",[smalltalk.send((smalltalk.HLProtocolSelected || HLProtocolSelected),"_on_",[aString])]);
  1545. return self},
  1546. args: ["aString"],
  1547. source: "selectedProtocol: aString\x0a\x09selectedProtocol := aString.\x0a \x0a self selectedMethod: nil.\x0a \x0a self announcer announce: (HLProtocolSelected on: aString)",
  1548. messageSends: ["selectedMethod:", "announce:", "on:", "announcer"],
  1549. referencedClasses: ["HLProtocolSelected"]
  1550. }),
  1551. smalltalk.HLBrowserModel);
  1552. smalltalk.addMethod(
  1553. "_showComment",
  1554. smalltalk.method({
  1555. selector: "showComment",
  1556. category: 'accessing',
  1557. fn: function (){
  1558. var self=this;
  1559. var $1;
  1560. if(($receiver = self["@showComment"]) == nil || $receiver == undefined){
  1561. $1=false;
  1562. } else {
  1563. $1=self["@showComment"];
  1564. };
  1565. return $1;
  1566. },
  1567. args: [],
  1568. source: "showComment\x0a\x09^ showComment ifNil: [ false ]",
  1569. messageSends: ["ifNil:"],
  1570. referencedClasses: []
  1571. }),
  1572. smalltalk.HLBrowserModel);
  1573. smalltalk.addMethod(
  1574. "_showComment_",
  1575. smalltalk.method({
  1576. selector: "showComment:",
  1577. category: 'accessing',
  1578. fn: function (aBoolean){
  1579. var self=this;
  1580. self["@showComment"]=aBoolean;
  1581. smalltalk.send(smalltalk.send(self,"_announcer",[]),"_announce_",[smalltalk.send((smalltalk.HLShowCommentToggled || HLShowCommentToggled),"_new",[])]);
  1582. return self},
  1583. args: ["aBoolean"],
  1584. source: "showComment: aBoolean\x0a\x09showComment := aBoolean.\x0a \x0a self announcer announce: HLShowCommentToggled new",
  1585. messageSends: ["announce:", "new", "announcer"],
  1586. referencedClasses: ["HLShowCommentToggled"]
  1587. }),
  1588. smalltalk.HLBrowserModel);
  1589. smalltalk.addMethod(
  1590. "_showInstance",
  1591. smalltalk.method({
  1592. selector: "showInstance",
  1593. category: 'accessing',
  1594. fn: function (){
  1595. var self=this;
  1596. var $1;
  1597. if(($receiver = self["@showInstance"]) == nil || $receiver == undefined){
  1598. $1=true;
  1599. } else {
  1600. $1=self["@showInstance"];
  1601. };
  1602. return $1;
  1603. },
  1604. args: [],
  1605. source: "showInstance\x0a\x09^ showInstance ifNil: [ true ]",
  1606. messageSends: ["ifNil:"],
  1607. referencedClasses: []
  1608. }),
  1609. smalltalk.HLBrowserModel);
  1610. smalltalk.addMethod(
  1611. "_showInstance_",
  1612. smalltalk.method({
  1613. selector: "showInstance:",
  1614. category: 'accessing',
  1615. fn: function (aBoolean){
  1616. var self=this;
  1617. var $1,$2;
  1618. self["@showInstance"]=aBoolean;
  1619. $1=smalltalk.send(self,"_selectedClass",[]);
  1620. if(($receiver = $1) == nil || $receiver == undefined){
  1621. $1;
  1622. } else {
  1623. if(smalltalk.assert(aBoolean)){
  1624. $2=smalltalk.send(smalltalk.send(self,"_selectedClass",[]),"_theNonMetaClass",[]);
  1625. } else {
  1626. $2=smalltalk.send(smalltalk.send(self,"_selectedClass",[]),"_theMetaClass",[]);
  1627. };
  1628. smalltalk.send(self,"_selectedClass_",[$2]);
  1629. };
  1630. smalltalk.send(smalltalk.send(self,"_announcer",[]),"_announce_",[smalltalk.send((smalltalk.HLShowInstanceToggled || HLShowInstanceToggled),"_new",[])]);
  1631. return self},
  1632. args: ["aBoolean"],
  1633. source: "showInstance: aBoolean\x0a\x09showInstance := aBoolean.\x0a \x0a self selectedClass ifNotNil: [\x0a \x09self selectedClass: (aBoolean\x0a \x09\x09ifTrue: [self selectedClass theNonMetaClass ]\x0a \x09 \x09ifFalse: [ self selectedClass theMetaClass ]) ].\x0a \x0a self announcer announce: HLShowInstanceToggled new",
  1634. messageSends: ["ifNotNil:", "selectedClass:", "ifTrue:ifFalse:", "theNonMetaClass", "selectedClass", "theMetaClass", "announce:", "new", "announcer"],
  1635. referencedClasses: ["HLShowInstanceToggled"]
  1636. }),
  1637. smalltalk.HLBrowserModel);
  1638. smalltalk.addMethod(
  1639. "_subscribe_",
  1640. smalltalk.method({
  1641. selector: "subscribe:",
  1642. category: 'announcements',
  1643. fn: function (aWidget){
  1644. var self=this;
  1645. smalltalk.send(aWidget,"_subscribeTo_",[smalltalk.send(self,"_announcer",[])]);
  1646. return self},
  1647. args: ["aWidget"],
  1648. source: "subscribe: aWidget\x0a\x09aWidget subscribeTo: self announcer",
  1649. messageSends: ["subscribeTo:", "announcer"],
  1650. referencedClasses: []
  1651. }),
  1652. smalltalk.HLBrowserModel);
  1653. smalltalk.addClass('HLBrowserSourceWidget', smalltalk.HLWidget, ['model', 'sourceArea'], 'Helios-Browser');
  1654. smalltalk.addMethod(
  1655. "_classSelected_",
  1656. smalltalk.method({
  1657. selector: "classSelected:",
  1658. category: 'actions',
  1659. fn: function (aClass){
  1660. var self=this;
  1661. var $1;
  1662. if(($receiver = aClass) == nil || $receiver == undefined){
  1663. $1=smalltalk.send(self,"_contents_",[""]);
  1664. return $1;
  1665. } else {
  1666. aClass;
  1667. };
  1668. smalltalk.send(self,"_contents_",[smalltalk.send(aClass,"_definition",[])]);
  1669. return self},
  1670. args: ["aClass"],
  1671. source: "classSelected: aClass\x0a\x09aClass ifNil: [ ^ self contents: '' ].\x0a \x0a self contents: aClass definition",
  1672. messageSends: ["ifNil:", "contents:", "definition"],
  1673. referencedClasses: []
  1674. }),
  1675. smalltalk.HLBrowserSourceWidget);
  1676. smalltalk.addMethod(
  1677. "_contents",
  1678. smalltalk.method({
  1679. selector: "contents",
  1680. category: 'accessing',
  1681. fn: function (){
  1682. var self=this;
  1683. var $1;
  1684. $1=smalltalk.send(smalltalk.send(self,"_sourceArea",[]),"_contents",[]);
  1685. return $1;
  1686. },
  1687. args: [],
  1688. source: "contents\x0a\x09^ self sourceArea contents",
  1689. messageSends: ["contents", "sourceArea"],
  1690. referencedClasses: []
  1691. }),
  1692. smalltalk.HLBrowserSourceWidget);
  1693. smalltalk.addMethod(
  1694. "_contents_",
  1695. smalltalk.method({
  1696. selector: "contents:",
  1697. category: 'accessing',
  1698. fn: function (aString){
  1699. var self=this;
  1700. smalltalk.send(smalltalk.send(self,"_sourceArea",[]),"_contents_",[aString]);
  1701. return self},
  1702. args: ["aString"],
  1703. source: "contents: aString\x0a\x09self sourceArea contents: aString",
  1704. messageSends: ["contents:", "sourceArea"],
  1705. referencedClasses: []
  1706. }),
  1707. smalltalk.HLBrowserSourceWidget);
  1708. smalltalk.addMethod(
  1709. "_methodSelected_",
  1710. smalltalk.method({
  1711. selector: "methodSelected:",
  1712. category: 'actions',
  1713. fn: function (aCompiledMethod){
  1714. var self=this;
  1715. var $1;
  1716. if(($receiver = aCompiledMethod) == nil || $receiver == undefined){
  1717. $1=smalltalk.send(self,"_contents_",[""]);
  1718. return $1;
  1719. } else {
  1720. aCompiledMethod;
  1721. };
  1722. smalltalk.send(self,"_contents_",[smalltalk.send(aCompiledMethod,"_source",[])]);
  1723. return self},
  1724. args: ["aCompiledMethod"],
  1725. source: "methodSelected: aCompiledMethod\x0a\x09aCompiledMethod ifNil: [ ^ self contents: '' ].\x0a \x0a self contents: aCompiledMethod source",
  1726. messageSends: ["ifNil:", "contents:", "source"],
  1727. referencedClasses: []
  1728. }),
  1729. smalltalk.HLBrowserSourceWidget);
  1730. smalltalk.addMethod(
  1731. "_model",
  1732. smalltalk.method({
  1733. selector: "model",
  1734. category: 'accessing',
  1735. fn: function (){
  1736. var self=this;
  1737. return self["@model"];
  1738. },
  1739. args: [],
  1740. source: "model\x0a\x09^ model",
  1741. messageSends: [],
  1742. referencedClasses: []
  1743. }),
  1744. smalltalk.HLBrowserSourceWidget);
  1745. smalltalk.addMethod(
  1746. "_model_",
  1747. smalltalk.method({
  1748. selector: "model:",
  1749. category: 'accessing',
  1750. fn: function (aBrowserModel){
  1751. var self=this;
  1752. self["@model"]=aBrowserModel;
  1753. smalltalk.send(self["@model"],"_subscribe_",[self]);
  1754. return self},
  1755. args: ["aBrowserModel"],
  1756. source: "model: aBrowserModel\x0a\x09\x22TODO: unsubscribe from previous model\x22\x0a \x0a\x09model := aBrowserModel.\x0a model subscribe: self",
  1757. messageSends: ["subscribe:"],
  1758. referencedClasses: []
  1759. }),
  1760. smalltalk.HLBrowserSourceWidget);
  1761. smalltalk.addMethod(
  1762. "_protocolSelected_",
  1763. smalltalk.method({
  1764. selector: "protocolSelected:",
  1765. category: 'actions',
  1766. fn: function (aString){
  1767. var self=this;
  1768. var $1,$2;
  1769. $1=smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedClass",[]);
  1770. if(($receiver = $1) == nil || $receiver == undefined){
  1771. $2=smalltalk.send(self,"_contents_",[""]);
  1772. return $2;
  1773. } else {
  1774. $1;
  1775. };
  1776. smalltalk.send(self,"_contents_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_model",[]),"_selectedClass",[]),"_definition",[])]);
  1777. return self},
  1778. args: ["aString"],
  1779. source: "protocolSelected: aString\x0a\x09self model selectedClass ifNil: [ ^ self contents: '' ].\x0a \x0a self contents: self model selectedClass definition",
  1780. messageSends: ["ifNil:", "contents:", "selectedClass", "model", "definition"],
  1781. referencedClasses: []
  1782. }),
  1783. smalltalk.HLBrowserSourceWidget);
  1784. smalltalk.addMethod(
  1785. "_renderContentOn_",
  1786. smalltalk.method({
  1787. selector: "renderContentOn:",
  1788. category: 'rendering',
  1789. fn: function (html){
  1790. var self=this;
  1791. smalltalk.send(smalltalk.send(self,"_sourceArea",[]),"_renderOn_",[html]);
  1792. return self},
  1793. args: ["html"],
  1794. source: "renderContentOn: html\x0a\x09self sourceArea renderOn: html",
  1795. messageSends: ["renderOn:", "sourceArea"],
  1796. referencedClasses: []
  1797. }),
  1798. smalltalk.HLBrowserSourceWidget);
  1799. smalltalk.addMethod(
  1800. "_sourceArea",
  1801. smalltalk.method({
  1802. selector: "sourceArea",
  1803. category: 'accessing',
  1804. fn: function (){
  1805. var self=this;
  1806. var $1;
  1807. if(($receiver = self["@sourceArea"]) == nil || $receiver == undefined){
  1808. self["@sourceArea"]=smalltalk.send((smalltalk.HLSourceArea || HLSourceArea),"_new",[]);
  1809. $1=self["@sourceArea"];
  1810. } else {
  1811. $1=self["@sourceArea"];
  1812. };
  1813. return $1;
  1814. },
  1815. args: [],
  1816. source: "sourceArea\x0a\x09^ sourceArea ifNil: [ sourceArea := HLSourceArea new ]",
  1817. messageSends: ["ifNil:", "new"],
  1818. referencedClasses: ["HLSourceArea"]
  1819. }),
  1820. smalltalk.HLBrowserSourceWidget);
  1821. smalltalk.addMethod(
  1822. "_subscribeTo_",
  1823. smalltalk.method({
  1824. selector: "subscribeTo:",
  1825. category: 'announcements',
  1826. fn: function (anAnnouncer){
  1827. var self=this;
  1828. smalltalk.send(anAnnouncer,"_on_do_",[(smalltalk.HLMethodSelected || HLMethodSelected),(function(ann){
  1829. return smalltalk.send(self,"_methodSelected_",[smalltalk.send(ann,"_item",[])]);
  1830. })]);
  1831. smalltalk.send(anAnnouncer,"_on_do_",[(smalltalk.HLClassSelected || HLClassSelected),(function(ann){
  1832. return smalltalk.send(self,"_classSelected_",[smalltalk.send(ann,"_item",[])]);
  1833. })]);
  1834. smalltalk.send(anAnnouncer,"_on_do_",[(smalltalk.HLProtocolSelected || HLProtocolSelected),(function(ann){
  1835. return smalltalk.send(self,"_protocolSelected_",[smalltalk.send(ann,"_item",[])]);
  1836. })]);
  1837. return self},
  1838. args: ["anAnnouncer"],
  1839. source: "subscribeTo: anAnnouncer\x0a\x09anAnnouncer on: HLMethodSelected do: [ :ann |\x0a \x09self methodSelected: ann item ].\x0a anAnnouncer on: HLClassSelected do: [ :ann |\x0a \x09self classSelected: ann item ].\x0a anAnnouncer on: HLProtocolSelected do: [ :ann |\x0a \x09self protocolSelected: ann item ]",
  1840. messageSends: ["on:do:", "methodSelected:", "item", "classSelected:", "protocolSelected:"],
  1841. referencedClasses: ["HLMethodSelected", "HLClassSelected", "HLProtocolSelected"]
  1842. }),
  1843. smalltalk.HLBrowserSourceWidget);
  1844. smalltalk.addMethod(
  1845. "_on_",
  1846. smalltalk.method({
  1847. selector: "on:",
  1848. category: 'instance creation',
  1849. fn: function (aBrowserModel){
  1850. var self=this;
  1851. var $2,$3,$1;
  1852. $2=smalltalk.send(self,"_new",[]);
  1853. smalltalk.send($2,"_model_",[aBrowserModel]);
  1854. $3=smalltalk.send($2,"_yourself",[]);
  1855. $1=$3;
  1856. return $1;
  1857. },
  1858. args: ["aBrowserModel"],
  1859. source: "on: aBrowserModel\x0a\x09^ self new\x0a \x09model: aBrowserModel;\x0a yourself",
  1860. messageSends: ["model:", "new", "yourself"],
  1861. referencedClasses: []
  1862. }),
  1863. smalltalk.HLBrowserSourceWidget.klass);