Helios-Commands-Core.js 26 KB

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