Helios-Commands-Core.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970
  1. define("amber_core/Helios-Commands-Core", ["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st", "amber_core/Kernel-Objects"], function(smalltalk,nil,_st){
  2. smalltalk.addPackage('Helios-Commands-Core');
  3. smalltalk.packages["Helios-Commands-Core"].transport = {"type":"amd","amdNamespace":"amber_core"};
  4. smalltalk.addClass('HLCommand', smalltalk.Object, ['input'], 'Helios-Commands-Core');
  5. smalltalk.addMethod(
  6. smalltalk.method({
  7. selector: "asActionBinding",
  8. category: 'converting',
  9. fn: function (){
  10. var self=this;
  11. function $HLBindingAction(){return smalltalk.HLBindingAction||(typeof HLBindingAction=="undefined"?nil:HLBindingAction)}
  12. return smalltalk.withContext(function($ctx1) {
  13. var $2,$3,$1;
  14. $2=_st($HLBindingAction())._on_labelled_(self._keyCode(),self._label());
  15. _st($2)._command_(self);
  16. $3=_st($2)._yourself();
  17. $1=$3;
  18. return $1;
  19. }, function($ctx1) {$ctx1.fill(self,"asActionBinding",{},smalltalk.HLCommand)})},
  20. args: [],
  21. source: "asActionBinding\x0a\x09^ (HLBindingAction on: self keyCode labelled: self label)\x0a \x09command: self;\x0a\x09\x09yourself",
  22. messageSends: ["command:", "on:labelled:", "keyCode", "label", "yourself"],
  23. referencedClasses: ["HLBindingAction"]
  24. }),
  25. smalltalk.HLCommand);
  26. smalltalk.addMethod(
  27. smalltalk.method({
  28. selector: "asBinding",
  29. category: 'converting',
  30. fn: function (){
  31. var self=this;
  32. return smalltalk.withContext(function($ctx1) {
  33. var $1;
  34. if(smalltalk.assert(self._isBindingGroup())){
  35. $1=self._asGroupBinding();
  36. } else {
  37. $1=self._asActionBinding();
  38. };
  39. return $1;
  40. }, function($ctx1) {$ctx1.fill(self,"asBinding",{},smalltalk.HLCommand)})},
  41. args: [],
  42. source: "asBinding\x0a\x09^ self isBindingGroup\x0a\x09\x09ifTrue: [ self asGroupBinding ]\x0a\x09\x09ifFalse: [ self asActionBinding ]",
  43. messageSends: ["ifTrue:ifFalse:", "isBindingGroup", "asGroupBinding", "asActionBinding"],
  44. referencedClasses: []
  45. }),
  46. smalltalk.HLCommand);
  47. smalltalk.addMethod(
  48. smalltalk.method({
  49. selector: "asGroupBinding",
  50. category: 'converting',
  51. fn: function (){
  52. var self=this;
  53. function $HLBindingGroup(){return smalltalk.HLBindingGroup||(typeof HLBindingGroup=="undefined"?nil:HLBindingGroup)}
  54. return smalltalk.withContext(function($ctx1) {
  55. var $1;
  56. $1=_st($HLBindingGroup())._on_labelled_(self._keyCode(),self._label());
  57. return $1;
  58. }, function($ctx1) {$ctx1.fill(self,"asGroupBinding",{},smalltalk.HLCommand)})},
  59. args: [],
  60. source: "asGroupBinding\x0a\x09^ HLBindingGroup \x0a\x09\x09on: self keyCode\x0a\x09\x09labelled: self label",
  61. messageSends: ["on:labelled:", "keyCode", "label"],
  62. referencedClasses: ["HLBindingGroup"]
  63. }),
  64. smalltalk.HLCommand);
  65. smalltalk.addMethod(
  66. smalltalk.method({
  67. selector: "commandError:",
  68. category: 'error handling',
  69. fn: function (aString){
  70. var self=this;
  71. return smalltalk.withContext(function($ctx1) {
  72. self._error_(aString);
  73. return self}, function($ctx1) {$ctx1.fill(self,"commandError:",{aString:aString},smalltalk.HLCommand)})},
  74. args: ["aString"],
  75. source: "commandError: aString\x0a\x09self error: aString",
  76. messageSends: ["error:"],
  77. referencedClasses: []
  78. }),
  79. smalltalk.HLCommand);
  80. smalltalk.addMethod(
  81. smalltalk.method({
  82. selector: "defaultInput",
  83. category: 'defaults',
  84. fn: function (){
  85. var self=this;
  86. return smalltalk.withContext(function($ctx1) {
  87. return "";
  88. }, function($ctx1) {$ctx1.fill(self,"defaultInput",{},smalltalk.HLCommand)})},
  89. args: [],
  90. source: "defaultInput\x0a\x09^ ''",
  91. messageSends: [],
  92. referencedClasses: []
  93. }),
  94. smalltalk.HLCommand);
  95. smalltalk.addMethod(
  96. smalltalk.method({
  97. selector: "documentation",
  98. category: 'accessing',
  99. fn: function (){
  100. var self=this;
  101. return smalltalk.withContext(function($ctx1) {
  102. var $1;
  103. $1=_st(self._class())._documentation();
  104. return $1;
  105. }, function($ctx1) {$ctx1.fill(self,"documentation",{},smalltalk.HLCommand)})},
  106. args: [],
  107. source: "documentation\x0a\x09^ self class documentation",
  108. messageSends: ["documentation", "class"],
  109. referencedClasses: []
  110. }),
  111. smalltalk.HLCommand);
  112. smalltalk.addMethod(
  113. smalltalk.method({
  114. selector: "execute",
  115. category: 'executing',
  116. fn: function (){
  117. var self=this;
  118. return smalltalk.withContext(function($ctx1) {
  119. return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLCommand)})},
  120. args: [],
  121. source: "execute",
  122. messageSends: [],
  123. referencedClasses: []
  124. }),
  125. smalltalk.HLCommand);
  126. smalltalk.addMethod(
  127. smalltalk.method({
  128. selector: "input",
  129. category: 'accessing',
  130. fn: function (){
  131. var self=this;
  132. return smalltalk.withContext(function($ctx1) {
  133. var $1;
  134. $1=self["@input"];
  135. return $1;
  136. }, function($ctx1) {$ctx1.fill(self,"input",{},smalltalk.HLCommand)})},
  137. args: [],
  138. source: "input\x0a\x09^ input",
  139. messageSends: [],
  140. referencedClasses: []
  141. }),
  142. smalltalk.HLCommand);
  143. smalltalk.addMethod(
  144. smalltalk.method({
  145. selector: "input:",
  146. category: 'accessing',
  147. fn: function (aString){
  148. var self=this;
  149. return smalltalk.withContext(function($ctx1) {
  150. var $1;
  151. self["@input"]=aString;
  152. $1=self["@input"];
  153. return $1;
  154. }, function($ctx1) {$ctx1.fill(self,"input:",{aString:aString},smalltalk.HLCommand)})},
  155. args: ["aString"],
  156. source: "input: aString\x0a\x09^ input := aString",
  157. messageSends: [],
  158. referencedClasses: []
  159. }),
  160. smalltalk.HLCommand);
  161. smalltalk.addMethod(
  162. smalltalk.method({
  163. selector: "inputCompletion",
  164. category: 'accessing',
  165. fn: function (){
  166. var self=this;
  167. return smalltalk.withContext(function($ctx1) {
  168. var $1;
  169. $1=[];
  170. return $1;
  171. }, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLCommand)})},
  172. args: [],
  173. source: "inputCompletion\x0a\x09^ #()",
  174. messageSends: [],
  175. referencedClasses: []
  176. }),
  177. smalltalk.HLCommand);
  178. smalltalk.addMethod(
  179. smalltalk.method({
  180. selector: "inputLabel",
  181. category: 'accessing',
  182. fn: function (){
  183. var self=this;
  184. return smalltalk.withContext(function($ctx1) {
  185. var $1;
  186. $1=self._label();
  187. return $1;
  188. }, function($ctx1) {$ctx1.fill(self,"inputLabel",{},smalltalk.HLCommand)})},
  189. args: [],
  190. source: "inputLabel\x0a\x09^ self label",
  191. messageSends: ["label"],
  192. referencedClasses: []
  193. }),
  194. smalltalk.HLCommand);
  195. smalltalk.addMethod(
  196. smalltalk.method({
  197. selector: "isAction",
  198. category: 'testing',
  199. fn: function (){
  200. var self=this;
  201. return smalltalk.withContext(function($ctx1) {
  202. var $1;
  203. $1=_st(self._isBindingGroup())._not();
  204. return $1;
  205. }, function($ctx1) {$ctx1.fill(self,"isAction",{},smalltalk.HLCommand)})},
  206. args: [],
  207. source: "isAction\x0a\x09^ self isBindingGroup not",
  208. messageSends: ["not", "isBindingGroup"],
  209. referencedClasses: []
  210. }),
  211. smalltalk.HLCommand);
  212. smalltalk.addMethod(
  213. smalltalk.method({
  214. selector: "isActive",
  215. category: 'testing',
  216. fn: function (){
  217. var self=this;
  218. return smalltalk.withContext(function($ctx1) {
  219. return true;
  220. }, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLCommand)})},
  221. args: [],
  222. source: "isActive\x0a\x09^ true",
  223. messageSends: [],
  224. referencedClasses: []
  225. }),
  226. smalltalk.HLCommand);
  227. smalltalk.addMethod(
  228. smalltalk.method({
  229. selector: "isBindingGroup",
  230. category: 'testing',
  231. fn: function (){
  232. var self=this;
  233. return smalltalk.withContext(function($ctx1) {
  234. var $1;
  235. $1=_st(_st(_st(self._class())._methodDictionary())._includesKey_("execute"))._not();
  236. return $1;
  237. }, function($ctx1) {$ctx1.fill(self,"isBindingGroup",{},smalltalk.HLCommand)})},
  238. args: [],
  239. source: "isBindingGroup\x0a\x09^ (self class methodDictionary includesKey: 'execute') not",
  240. messageSends: ["not", "includesKey:", "methodDictionary", "class"],
  241. referencedClasses: []
  242. }),
  243. smalltalk.HLCommand);
  244. smalltalk.addMethod(
  245. smalltalk.method({
  246. selector: "isInputRequired",
  247. category: 'testing',
  248. fn: function (){
  249. var self=this;
  250. return smalltalk.withContext(function($ctx1) {
  251. return false;
  252. }, function($ctx1) {$ctx1.fill(self,"isInputRequired",{},smalltalk.HLCommand)})},
  253. args: [],
  254. source: "isInputRequired\x0a\x09^ false",
  255. messageSends: [],
  256. referencedClasses: []
  257. }),
  258. smalltalk.HLCommand);
  259. smalltalk.addMethod(
  260. smalltalk.method({
  261. selector: "key",
  262. category: 'accessing',
  263. fn: function (){
  264. var self=this;
  265. return smalltalk.withContext(function($ctx1) {
  266. var $1;
  267. $1=_st(self._class())._key();
  268. return $1;
  269. }, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLCommand)})},
  270. args: [],
  271. source: "key\x0a\x09^ self class key",
  272. messageSends: ["key", "class"],
  273. referencedClasses: []
  274. }),
  275. smalltalk.HLCommand);
  276. smalltalk.addMethod(
  277. smalltalk.method({
  278. selector: "keyCode",
  279. category: 'accessing',
  280. fn: function (){
  281. var self=this;
  282. return smalltalk.withContext(function($ctx1) {
  283. var $1;
  284. $1=_st(_st(self._key())._asUppercase())._charCodeAt_((1));
  285. return $1;
  286. }, function($ctx1) {$ctx1.fill(self,"keyCode",{},smalltalk.HLCommand)})},
  287. args: [],
  288. source: "keyCode\x0a\x09^ self key asUppercase charCodeAt: 1",
  289. messageSends: ["charCodeAt:", "asUppercase", "key"],
  290. referencedClasses: []
  291. }),
  292. smalltalk.HLCommand);
  293. smalltalk.addMethod(
  294. smalltalk.method({
  295. selector: "label",
  296. category: 'accessing',
  297. fn: function (){
  298. var self=this;
  299. return smalltalk.withContext(function($ctx1) {
  300. var $1;
  301. $1=_st(self._class())._label();
  302. return $1;
  303. }, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLCommand)})},
  304. args: [],
  305. source: "label\x0a\x09^ self class label",
  306. messageSends: ["label", "class"],
  307. referencedClasses: []
  308. }),
  309. smalltalk.HLCommand);
  310. smalltalk.addMethod(
  311. smalltalk.method({
  312. selector: "menuLabel",
  313. category: 'accessing',
  314. fn: function (){
  315. var self=this;
  316. return smalltalk.withContext(function($ctx1) {
  317. var $1;
  318. $1=_st(self._class())._menuLabel();
  319. return $1;
  320. }, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLCommand)})},
  321. args: [],
  322. source: "menuLabel\x0a\x09^ self class menuLabel",
  323. messageSends: ["menuLabel", "class"],
  324. referencedClasses: []
  325. }),
  326. smalltalk.HLCommand);
  327. smalltalk.addMethod(
  328. smalltalk.method({
  329. selector: "registerOn:",
  330. category: 'registration',
  331. fn: function (aBinding){
  332. var self=this;
  333. return smalltalk.withContext(function($ctx1) {
  334. var $1;
  335. $1=_st(aBinding)._add_(self._asBinding());
  336. return $1;
  337. }, function($ctx1) {$ctx1.fill(self,"registerOn:",{aBinding:aBinding},smalltalk.HLCommand)})},
  338. args: ["aBinding"],
  339. source: "registerOn: aBinding\x0a\x09^ aBinding add: self asBinding",
  340. messageSends: ["add:", "asBinding"],
  341. referencedClasses: []
  342. }),
  343. smalltalk.HLCommand);
  344. smalltalk.addMethod(
  345. smalltalk.method({
  346. selector: "concreteClasses",
  347. category: 'registration',
  348. fn: function (){
  349. var self=this;
  350. var classes;
  351. function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
  352. return smalltalk.withContext(function($ctx1) {
  353. var $1;
  354. classes=_st($OrderedCollection())._new();
  355. if(smalltalk.assert(self._isConcrete())){
  356. _st(classes)._add_(self);
  357. };
  358. _st(self._subclasses())._do_((function(each){
  359. return smalltalk.withContext(function($ctx2) {
  360. return _st(classes)._addAll_(_st(each)._concreteClasses());
  361. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)})}));
  362. $1=classes;
  363. return $1;
  364. }, function($ctx1) {$ctx1.fill(self,"concreteClasses",{classes:classes},smalltalk.HLCommand.klass)})},
  365. args: [],
  366. source: "concreteClasses\x0a\x09| classes |\x0a\x09\x0a\x09classes := OrderedCollection new.\x0a\x09\x0a\x09self isConcrete\x0a\x09\x09ifTrue: [ classes add: self ].\x0a\x09\x09\x0a\x09self subclasses do: [ :each | \x0a\x09\x09classes addAll: each concreteClasses ].\x0a\x09\x09\x0a\x09^ classes",
  367. messageSends: ["new", "ifTrue:", "isConcrete", "add:", "do:", "subclasses", "addAll:", "concreteClasses"],
  368. referencedClasses: ["OrderedCollection"]
  369. }),
  370. smalltalk.HLCommand.klass);
  371. smalltalk.addMethod(
  372. smalltalk.method({
  373. selector: "documentation",
  374. category: 'accessing',
  375. fn: function (){
  376. var self=this;
  377. return smalltalk.withContext(function($ctx1) {
  378. return "";
  379. }, function($ctx1) {$ctx1.fill(self,"documentation",{},smalltalk.HLCommand.klass)})},
  380. args: [],
  381. source: "documentation\x0a\x09^ ''",
  382. messageSends: [],
  383. referencedClasses: []
  384. }),
  385. smalltalk.HLCommand.klass);
  386. smalltalk.addMethod(
  387. smalltalk.method({
  388. selector: "isConcrete",
  389. category: 'testing',
  390. fn: function (){
  391. var self=this;
  392. return smalltalk.withContext(function($ctx1) {
  393. var $1;
  394. $1=_st(self._key())._notNil();
  395. return $1;
  396. }, function($ctx1) {$ctx1.fill(self,"isConcrete",{},smalltalk.HLCommand.klass)})},
  397. args: [],
  398. source: "isConcrete\x0a\x09^ self key notNil",
  399. messageSends: ["notNil", "key"],
  400. referencedClasses: []
  401. }),
  402. smalltalk.HLCommand.klass);
  403. smalltalk.addMethod(
  404. smalltalk.method({
  405. selector: "isValidFor:",
  406. category: 'testing',
  407. fn: function (aModel){
  408. var self=this;
  409. return smalltalk.withContext(function($ctx1) {
  410. return true;
  411. }, function($ctx1) {$ctx1.fill(self,"isValidFor:",{aModel:aModel},smalltalk.HLCommand.klass)})},
  412. args: ["aModel"],
  413. source: "isValidFor: aModel\x0a\x09^ true",
  414. messageSends: [],
  415. referencedClasses: []
  416. }),
  417. smalltalk.HLCommand.klass);
  418. smalltalk.addMethod(
  419. smalltalk.method({
  420. selector: "key",
  421. category: 'accessing',
  422. fn: function (){
  423. var self=this;
  424. return smalltalk.withContext(function($ctx1) {
  425. return nil;
  426. }, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLCommand.klass)})},
  427. args: [],
  428. source: "key\x0a\x09\x22Answer a single character string or nil if no key\x22\x0a\x09\x0a\x09^ nil",
  429. messageSends: [],
  430. referencedClasses: []
  431. }),
  432. smalltalk.HLCommand.klass);
  433. smalltalk.addMethod(
  434. smalltalk.method({
  435. selector: "label",
  436. category: 'accessing',
  437. fn: function (){
  438. var self=this;
  439. return smalltalk.withContext(function($ctx1) {
  440. return "";
  441. }, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLCommand.klass)})},
  442. args: [],
  443. source: "label\x0a\x09^ ''",
  444. messageSends: [],
  445. referencedClasses: []
  446. }),
  447. smalltalk.HLCommand.klass);
  448. smalltalk.addMethod(
  449. smalltalk.method({
  450. selector: "menuLabel",
  451. category: 'accessing',
  452. fn: function (){
  453. var self=this;
  454. return smalltalk.withContext(function($ctx1) {
  455. var $1;
  456. $1=self._label();
  457. return $1;
  458. }, function($ctx1) {$ctx1.fill(self,"menuLabel",{},smalltalk.HLCommand.klass)})},
  459. args: [],
  460. source: "menuLabel\x0a\x09^ self label",
  461. messageSends: ["label"],
  462. referencedClasses: []
  463. }),
  464. smalltalk.HLCommand.klass);
  465. smalltalk.addMethod(
  466. smalltalk.method({
  467. selector: "registerConcreteClassesOn:",
  468. category: 'accessing',
  469. fn: function (aBinding){
  470. var self=this;
  471. var newBinding;
  472. return smalltalk.withContext(function($ctx1) {
  473. if(smalltalk.assert(self._isConcrete())){
  474. newBinding=self._registerOn_(aBinding);
  475. newBinding;
  476. } else {
  477. newBinding=aBinding;
  478. newBinding;
  479. };
  480. _st(self._subclasses())._do_((function(each){
  481. return smalltalk.withContext(function($ctx2) {
  482. return _st(each)._registerConcreteClassesOn_(newBinding);
  483. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,3)})}));
  484. return self}, function($ctx1) {$ctx1.fill(self,"registerConcreteClassesOn:",{aBinding:aBinding,newBinding:newBinding},smalltalk.HLCommand.klass)})},
  485. args: ["aBinding"],
  486. source: "registerConcreteClassesOn: aBinding\x0a\x09| newBinding |\x0a\x09\x0a\x09self isConcrete\x0a\x09\x09ifTrue: [ newBinding := self registerOn: aBinding ]\x0a\x09\x09ifFalse: [ newBinding := aBinding ].\x0a\x09\x09\x0a\x09self subclasses do: [ :each | each registerConcreteClassesOn: newBinding ]",
  487. messageSends: ["ifTrue:ifFalse:", "isConcrete", "registerOn:", "do:", "subclasses", "registerConcreteClassesOn:"],
  488. referencedClasses: []
  489. }),
  490. smalltalk.HLCommand.klass);
  491. smalltalk.addMethod(
  492. smalltalk.method({
  493. selector: "registerOn:",
  494. category: 'registration',
  495. fn: function (aBinding){
  496. var self=this;
  497. return smalltalk.withContext(function($ctx1) {
  498. var $1;
  499. $1=_st(self._new())._registerOn_(aBinding);
  500. return $1;
  501. }, function($ctx1) {$ctx1.fill(self,"registerOn:",{aBinding:aBinding},smalltalk.HLCommand.klass)})},
  502. args: ["aBinding"],
  503. source: "registerOn: aBinding\x0a\x09^ self new registerOn: aBinding",
  504. messageSends: ["registerOn:", "new"],
  505. referencedClasses: []
  506. }),
  507. smalltalk.HLCommand.klass);
  508. smalltalk.addClass('HLCloseTabCommand', smalltalk.HLCommand, [], 'Helios-Commands-Core');
  509. smalltalk.addMethod(
  510. smalltalk.method({
  511. selector: "execute",
  512. category: 'executing',
  513. fn: function (){
  514. var self=this;
  515. function $HLManager(){return smalltalk.HLManager||(typeof HLManager=="undefined"?nil:HLManager)}
  516. return smalltalk.withContext(function($ctx1) {
  517. _st(_st($HLManager())._current())._removeActiveTab();
  518. return self}, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLCloseTabCommand)})},
  519. args: [],
  520. source: "execute\x0a\x09HLManager current removeActiveTab",
  521. messageSends: ["removeActiveTab", "current"],
  522. referencedClasses: ["HLManager"]
  523. }),
  524. smalltalk.HLCloseTabCommand);
  525. smalltalk.addMethod(
  526. smalltalk.method({
  527. selector: "key",
  528. category: 'accessing',
  529. fn: function (){
  530. var self=this;
  531. return smalltalk.withContext(function($ctx1) {
  532. return "w";
  533. }, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLCloseTabCommand.klass)})},
  534. args: [],
  535. source: "key\x0a\x09^ 'w'",
  536. messageSends: [],
  537. referencedClasses: []
  538. }),
  539. smalltalk.HLCloseTabCommand.klass);
  540. smalltalk.addMethod(
  541. smalltalk.method({
  542. selector: "label",
  543. category: 'accessing',
  544. fn: function (){
  545. var self=this;
  546. return smalltalk.withContext(function($ctx1) {
  547. return "Close tab";
  548. }, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLCloseTabCommand.klass)})},
  549. args: [],
  550. source: "label\x0a\x09^ 'Close tab'",
  551. messageSends: [],
  552. referencedClasses: []
  553. }),
  554. smalltalk.HLCloseTabCommand.klass);
  555. smalltalk.addClass('HLModelCommand', smalltalk.HLCommand, ['model'], 'Helios-Commands-Core');
  556. smalltalk.addMethod(
  557. smalltalk.method({
  558. selector: "model",
  559. category: 'accessing',
  560. fn: function (){
  561. var self=this;
  562. return smalltalk.withContext(function($ctx1) {
  563. var $1;
  564. $1=self["@model"];
  565. return $1;
  566. }, function($ctx1) {$ctx1.fill(self,"model",{},smalltalk.HLModelCommand)})},
  567. args: [],
  568. source: "model\x0a\x09^ model",
  569. messageSends: [],
  570. referencedClasses: []
  571. }),
  572. smalltalk.HLModelCommand);
  573. smalltalk.addMethod(
  574. smalltalk.method({
  575. selector: "model:",
  576. category: 'accessing',
  577. fn: function (aModel){
  578. var self=this;
  579. return smalltalk.withContext(function($ctx1) {
  580. self["@model"]=aModel;
  581. return self}, function($ctx1) {$ctx1.fill(self,"model:",{aModel:aModel},smalltalk.HLModelCommand)})},
  582. args: ["aModel"],
  583. source: "model: aModel\x0a\x09model := aModel",
  584. messageSends: [],
  585. referencedClasses: []
  586. }),
  587. smalltalk.HLModelCommand);
  588. smalltalk.addMethod(
  589. smalltalk.method({
  590. selector: "for:",
  591. category: 'instance creation',
  592. fn: function (aModel){
  593. var self=this;
  594. return smalltalk.withContext(function($ctx1) {
  595. var $1;
  596. $1=self._new();
  597. return $1;
  598. }, function($ctx1) {$ctx1.fill(self,"for:",{aModel:aModel},smalltalk.HLModelCommand.klass)})},
  599. args: ["aModel"],
  600. source: "for: aModel\x0a\x09^ self new",
  601. messageSends: ["new"],
  602. referencedClasses: []
  603. }),
  604. smalltalk.HLModelCommand.klass);
  605. smalltalk.addMethod(
  606. smalltalk.method({
  607. selector: "registerConcreteClassesOn:for:",
  608. category: 'registration',
  609. fn: function (aBinding,aModel){
  610. var self=this;
  611. var newBinding;
  612. return smalltalk.withContext(function($ctx1) {
  613. if(smalltalk.assert(_st(self._isConcrete())._and_((function(){
  614. return smalltalk.withContext(function($ctx2) {
  615. return self._isValidFor_(aModel);
  616. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)})})))){
  617. newBinding=self._registerOn_for_(aBinding,aModel);
  618. newBinding;
  619. } else {
  620. newBinding=aBinding;
  621. newBinding;
  622. };
  623. _st(self._subclasses())._do_((function(each){
  624. return smalltalk.withContext(function($ctx2) {
  625. return _st(each)._registerConcreteClassesOn_for_(newBinding,aModel);
  626. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,4)})}));
  627. return self}, function($ctx1) {$ctx1.fill(self,"registerConcreteClassesOn:for:",{aBinding:aBinding,aModel:aModel,newBinding:newBinding},smalltalk.HLModelCommand.klass)})},
  628. args: ["aBinding", "aModel"],
  629. source: "registerConcreteClassesOn: aBinding for: aModel\x0a\x09| newBinding |\x0a\x09\x0a\x09(self isConcrete and: [ self isValidFor: aModel ])\x0a\x09\x09ifTrue: [ newBinding := self registerOn: aBinding for: aModel ]\x0a\x09\x09ifFalse: [ newBinding := aBinding ].\x0a\x09\x09\x0a\x09self subclasses do: [ :each |\x0a\x09\x09each registerConcreteClassesOn: newBinding for: aModel ]",
  630. messageSends: ["ifTrue:ifFalse:", "and:", "isConcrete", "isValidFor:", "registerOn:for:", "do:", "subclasses", "registerConcreteClassesOn:for:"],
  631. referencedClasses: []
  632. }),
  633. smalltalk.HLModelCommand.klass);
  634. smalltalk.addMethod(
  635. smalltalk.method({
  636. selector: "registerOn:for:",
  637. category: 'registration',
  638. fn: function (aBinding,aModel){
  639. var self=this;
  640. return smalltalk.withContext(function($ctx1) {
  641. var $1;
  642. $1=_st(self._for_(aModel))._registerOn_(aBinding);
  643. return $1;
  644. }, function($ctx1) {$ctx1.fill(self,"registerOn:for:",{aBinding:aBinding,aModel:aModel},smalltalk.HLModelCommand.klass)})},
  645. args: ["aBinding", "aModel"],
  646. source: "registerOn: aBinding for: aModel\x0a\x09^ (self for: aModel) registerOn: aBinding",
  647. messageSends: ["registerOn:", "for:"],
  648. referencedClasses: []
  649. }),
  650. smalltalk.HLModelCommand.klass);
  651. smalltalk.addClass('HLOpenCommand', smalltalk.HLCommand, [], 'Helios-Commands-Core');
  652. smalltalk.addMethod(
  653. smalltalk.method({
  654. selector: "key",
  655. category: 'accessing',
  656. fn: function (){
  657. var self=this;
  658. return smalltalk.withContext(function($ctx1) {
  659. return "o";
  660. }, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLOpenCommand.klass)})},
  661. args: [],
  662. source: "key\x0a\x09^ 'o'",
  663. messageSends: [],
  664. referencedClasses: []
  665. }),
  666. smalltalk.HLOpenCommand.klass);
  667. smalltalk.addMethod(
  668. smalltalk.method({
  669. selector: "label",
  670. category: 'accessing',
  671. fn: function (){
  672. var self=this;
  673. return smalltalk.withContext(function($ctx1) {
  674. return "Open";
  675. }, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLOpenCommand.klass)})},
  676. args: [],
  677. source: "label\x0a\x09^ 'Open'",
  678. messageSends: [],
  679. referencedClasses: []
  680. }),
  681. smalltalk.HLOpenCommand.klass);
  682. smalltalk.addClass('HLOpenBrowserCommand', smalltalk.HLOpenCommand, [], 'Helios-Commands-Core');
  683. smalltalk.addMethod(
  684. smalltalk.method({
  685. selector: "execute",
  686. category: 'executing',
  687. fn: function (){
  688. var self=this;
  689. function $HLBrowser(){return smalltalk.HLBrowser||(typeof HLBrowser=="undefined"?nil:HLBrowser)}
  690. return smalltalk.withContext(function($ctx1) {
  691. var $1;
  692. $1=_st($HLBrowser())._openAsTab();
  693. return $1;
  694. }, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLOpenBrowserCommand)})},
  695. args: [],
  696. source: "execute\x0a\x09^ HLBrowser openAsTab",
  697. messageSends: ["openAsTab"],
  698. referencedClasses: ["HLBrowser"]
  699. }),
  700. smalltalk.HLOpenBrowserCommand);
  701. smalltalk.addMethod(
  702. smalltalk.method({
  703. selector: "key",
  704. category: 'accessing',
  705. fn: function (){
  706. var self=this;
  707. return smalltalk.withContext(function($ctx1) {
  708. return "b";
  709. }, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLOpenBrowserCommand.klass)})},
  710. args: [],
  711. source: "key\x0a\x09^ 'b'",
  712. messageSends: [],
  713. referencedClasses: []
  714. }),
  715. smalltalk.HLOpenBrowserCommand.klass);
  716. smalltalk.addMethod(
  717. smalltalk.method({
  718. selector: "label",
  719. category: 'accessing',
  720. fn: function (){
  721. var self=this;
  722. return smalltalk.withContext(function($ctx1) {
  723. return "Browser";
  724. }, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLOpenBrowserCommand.klass)})},
  725. args: [],
  726. source: "label\x0a\x09^ 'Browser'",
  727. messageSends: [],
  728. referencedClasses: []
  729. }),
  730. smalltalk.HLOpenBrowserCommand.klass);
  731. smalltalk.addClass('HLOpenWorkspaceCommand', smalltalk.HLOpenCommand, [], 'Helios-Commands-Core');
  732. smalltalk.addMethod(
  733. smalltalk.method({
  734. selector: "execute",
  735. category: 'executing',
  736. fn: function (){
  737. var self=this;
  738. function $HLWorkspace(){return smalltalk.HLWorkspace||(typeof HLWorkspace=="undefined"?nil:HLWorkspace)}
  739. return smalltalk.withContext(function($ctx1) {
  740. var $1;
  741. $1=_st($HLWorkspace())._openAsTab();
  742. return $1;
  743. }, function($ctx1) {$ctx1.fill(self,"execute",{},smalltalk.HLOpenWorkspaceCommand)})},
  744. args: [],
  745. source: "execute\x0a\x09^ HLWorkspace openAsTab",
  746. messageSends: ["openAsTab"],
  747. referencedClasses: ["HLWorkspace"]
  748. }),
  749. smalltalk.HLOpenWorkspaceCommand);
  750. smalltalk.addMethod(
  751. smalltalk.method({
  752. selector: "key",
  753. category: 'accessing',
  754. fn: function (){
  755. var self=this;
  756. return smalltalk.withContext(function($ctx1) {
  757. return "w";
  758. }, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLOpenWorkspaceCommand.klass)})},
  759. args: [],
  760. source: "key\x0a\x09^ 'w'",
  761. messageSends: [],
  762. referencedClasses: []
  763. }),
  764. smalltalk.HLOpenWorkspaceCommand.klass);
  765. smalltalk.addMethod(
  766. smalltalk.method({
  767. selector: "label",
  768. category: 'accessing',
  769. fn: function (){
  770. var self=this;
  771. return smalltalk.withContext(function($ctx1) {
  772. return "Workspace";
  773. }, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLOpenWorkspaceCommand.klass)})},
  774. args: [],
  775. source: "label\x0a\x09^ 'Workspace'",
  776. messageSends: [],
  777. referencedClasses: []
  778. }),
  779. smalltalk.HLOpenWorkspaceCommand.klass);
  780. smalltalk.addClass('HLSwitchTabCommand', smalltalk.HLCommand, [], 'Helios-Commands-Core');
  781. smalltalk.addMethod(
  782. smalltalk.method({
  783. selector: "execute",
  784. category: 'executing',
  785. fn: function (){
  786. var self=this;
  787. var activeTab;
  788. function $HLTabSelectionWidget(){return smalltalk.HLTabSelectionWidget||(typeof HLTabSelectionWidget=="undefined"?nil:HLTabSelectionWidget)}
  789. return smalltalk.withContext(function($ctx1) {
  790. var $2,$3,$4,$5,$1;
  791. activeTab=self._selectedTab();
  792. $ctx1.sendIdx["selectedTab"]=1;
  793. $2=_st($HLTabSelectionWidget())._new();
  794. _st($2)._tabs_(self._tabs());
  795. $3=$2;
  796. $4=self._selectedTab();
  797. _st($3)._selectedTab_($4);
  798. _st($2)._selectCallback_((function(tab){
  799. return smalltalk.withContext(function($ctx2) {
  800. return _st(tab)._activate();
  801. $ctx2.sendIdx["activate"]=1;
  802. }, function($ctx2) {$ctx2.fillBlock({tab:tab},$ctx1,1)})}));
  803. _st($2)._confirmCallback_((function(tab){
  804. return smalltalk.withContext(function($ctx2) {
  805. return _st(tab)._focus();
  806. }, function($ctx2) {$ctx2.fillBlock({tab:tab},$ctx1,2)})}));
  807. _st($2)._cancelCallback_((function(){
  808. return smalltalk.withContext(function($ctx2) {
  809. return _st(activeTab)._activate();
  810. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,3)})}));
  811. $5=_st($2)._show();
  812. $1=$5;
  813. return $1;
  814. }, function($ctx1) {$ctx1.fill(self,"execute",{activeTab:activeTab},smalltalk.HLSwitchTabCommand)})},
  815. args: [],
  816. source: "execute\x0a\x09| activeTab |\x0a\x09\x0a\x09activeTab := self selectedTab.\x0a\x09\x0a\x09^ HLTabSelectionWidget new\x0a\x09\x09tabs: self tabs;\x0a\x09\x09selectedTab: self selectedTab;\x0a\x09\x09selectCallback: [ :tab | tab activate ];\x0a\x09\x09confirmCallback: [ :tab | tab focus ];\x0a\x09\x09cancelCallback: [ activeTab activate ];\x0a\x09\x09show",
  817. messageSends: ["selectedTab", "tabs:", "new", "tabs", "selectedTab:", "selectCallback:", "activate", "confirmCallback:", "focus", "cancelCallback:", "show"],
  818. referencedClasses: ["HLTabSelectionWidget"]
  819. }),
  820. smalltalk.HLSwitchTabCommand);
  821. smalltalk.addMethod(
  822. smalltalk.method({
  823. selector: "selectedTab",
  824. category: 'accessing',
  825. fn: function (){
  826. var self=this;
  827. function $HLManager(){return smalltalk.HLManager||(typeof HLManager=="undefined"?nil:HLManager)}
  828. return smalltalk.withContext(function($ctx1) {
  829. var $1;
  830. $1=_st(_st($HLManager())._current())._activeTab();
  831. return $1;
  832. }, function($ctx1) {$ctx1.fill(self,"selectedTab",{},smalltalk.HLSwitchTabCommand)})},
  833. args: [],
  834. source: "selectedTab\x0a\x09^ HLManager current activeTab",
  835. messageSends: ["activeTab", "current"],
  836. referencedClasses: ["HLManager"]
  837. }),
  838. smalltalk.HLSwitchTabCommand);
  839. smalltalk.addMethod(
  840. smalltalk.method({
  841. selector: "tabs",
  842. category: 'accessing',
  843. fn: function (){
  844. var self=this;
  845. function $HLManager(){return smalltalk.HLManager||(typeof HLManager=="undefined"?nil:HLManager)}
  846. return smalltalk.withContext(function($ctx1) {
  847. var $1;
  848. $1=_st(_st($HLManager())._current())._tabs();
  849. return $1;
  850. }, function($ctx1) {$ctx1.fill(self,"tabs",{},smalltalk.HLSwitchTabCommand)})},
  851. args: [],
  852. source: "tabs\x0a\x09^ HLManager current tabs",
  853. messageSends: ["tabs", "current"],
  854. referencedClasses: ["HLManager"]
  855. }),
  856. smalltalk.HLSwitchTabCommand);
  857. smalltalk.addMethod(
  858. smalltalk.method({
  859. selector: "key",
  860. category: 'accessing',
  861. fn: function (){
  862. var self=this;
  863. return smalltalk.withContext(function($ctx1) {
  864. return "s";
  865. }, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLSwitchTabCommand.klass)})},
  866. args: [],
  867. source: "key\x0a\x09^ 's'",
  868. messageSends: [],
  869. referencedClasses: []
  870. }),
  871. smalltalk.HLSwitchTabCommand.klass);
  872. smalltalk.addMethod(
  873. smalltalk.method({
  874. selector: "label",
  875. category: 'accessing',
  876. fn: function (){
  877. var self=this;
  878. return smalltalk.withContext(function($ctx1) {
  879. return "Switch";
  880. }, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLSwitchTabCommand.klass)})},
  881. args: [],
  882. source: "label\x0a\x09^ 'Switch'",
  883. messageSends: [],
  884. referencedClasses: []
  885. }),
  886. smalltalk.HLSwitchTabCommand.klass);
  887. smalltalk.addClass('HLViewCommand', smalltalk.HLCommand, [], 'Helios-Commands-Core');
  888. smalltalk.addMethod(
  889. smalltalk.method({
  890. selector: "label",
  891. category: 'accessing',
  892. fn: function (){
  893. var self=this;
  894. return smalltalk.withContext(function($ctx1) {
  895. return "View";
  896. }, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLViewCommand.klass)})},
  897. args: [],
  898. source: "label\x0a\x09^ 'View'",
  899. messageSends: [],
  900. referencedClasses: []
  901. }),
  902. smalltalk.HLViewCommand.klass);
  903. });