Helios-KeyBindings.deploy.js 56 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727
  1. (function(smalltalk,nil,_st){
  2. smalltalk.addPackage('Helios-KeyBindings');
  3. smalltalk.addClass('HLBinding', smalltalk.Object, ['key', 'label'], 'Helios-KeyBindings');
  4. smalltalk.addMethod(
  5. smalltalk.method({
  6. selector: "applyOn:",
  7. fn: function (aKeyBinder){
  8. var self=this;
  9. return smalltalk.withContext(function($ctx1) {
  10. return self}, function($ctx1) {$ctx1.fill(self,"applyOn:",{aKeyBinder:aKeyBinder},smalltalk.HLBinding)})},
  11. messageSends: []}),
  12. smalltalk.HLBinding);
  13. smalltalk.addMethod(
  14. smalltalk.method({
  15. selector: "atKey:",
  16. fn: function (aKey){
  17. var self=this;
  18. return smalltalk.withContext(function($ctx1) {
  19. return nil;
  20. }, function($ctx1) {$ctx1.fill(self,"atKey:",{aKey:aKey},smalltalk.HLBinding)})},
  21. messageSends: []}),
  22. smalltalk.HLBinding);
  23. smalltalk.addMethod(
  24. smalltalk.method({
  25. selector: "displayLabel",
  26. fn: function (){
  27. var self=this;
  28. return smalltalk.withContext(function($ctx1) {
  29. var $1;
  30. $1=self._label();
  31. return $1;
  32. }, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLBinding)})},
  33. messageSends: ["label"]}),
  34. smalltalk.HLBinding);
  35. smalltalk.addMethod(
  36. smalltalk.method({
  37. selector: "isActive",
  38. fn: function (){
  39. var self=this;
  40. return smalltalk.withContext(function($ctx1) {
  41. var $1;
  42. $1=self._subclassResponsibility();
  43. return $1;
  44. }, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLBinding)})},
  45. messageSends: ["subclassResponsibility"]}),
  46. smalltalk.HLBinding);
  47. smalltalk.addMethod(
  48. smalltalk.method({
  49. selector: "key",
  50. fn: function (){
  51. var self=this;
  52. return smalltalk.withContext(function($ctx1) {
  53. var $1;
  54. $1=self["@key"];
  55. return $1;
  56. }, function($ctx1) {$ctx1.fill(self,"key",{},smalltalk.HLBinding)})},
  57. messageSends: []}),
  58. smalltalk.HLBinding);
  59. smalltalk.addMethod(
  60. smalltalk.method({
  61. selector: "key:",
  62. fn: function (anInteger){
  63. var self=this;
  64. return smalltalk.withContext(function($ctx1) {
  65. self["@key"]=anInteger;
  66. return self}, function($ctx1) {$ctx1.fill(self,"key:",{anInteger:anInteger},smalltalk.HLBinding)})},
  67. messageSends: []}),
  68. smalltalk.HLBinding);
  69. smalltalk.addMethod(
  70. smalltalk.method({
  71. selector: "label",
  72. fn: function (){
  73. var self=this;
  74. return smalltalk.withContext(function($ctx1) {
  75. var $1;
  76. $1=self["@label"];
  77. return $1;
  78. }, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.HLBinding)})},
  79. messageSends: []}),
  80. smalltalk.HLBinding);
  81. smalltalk.addMethod(
  82. smalltalk.method({
  83. selector: "label:",
  84. fn: function (aString){
  85. var self=this;
  86. return smalltalk.withContext(function($ctx1) {
  87. self["@label"]=aString;
  88. return self}, function($ctx1) {$ctx1.fill(self,"label:",{aString:aString},smalltalk.HLBinding)})},
  89. messageSends: []}),
  90. smalltalk.HLBinding);
  91. smalltalk.addMethod(
  92. smalltalk.method({
  93. selector: "release",
  94. fn: function (){
  95. var self=this;
  96. return smalltalk.withContext(function($ctx1) {
  97. return self}, function($ctx1) {$ctx1.fill(self,"release",{},smalltalk.HLBinding)})},
  98. messageSends: []}),
  99. smalltalk.HLBinding);
  100. smalltalk.addMethod(
  101. smalltalk.method({
  102. selector: "renderOn:html:",
  103. fn: function (aBindingHelper,html){
  104. var self=this;
  105. return smalltalk.withContext(function($ctx1) {
  106. return self}, function($ctx1) {$ctx1.fill(self,"renderOn:html:",{aBindingHelper:aBindingHelper,html:html},smalltalk.HLBinding)})},
  107. messageSends: []}),
  108. smalltalk.HLBinding);
  109. smalltalk.addMethod(
  110. smalltalk.method({
  111. selector: "shortcut",
  112. fn: function (){
  113. var self=this;
  114. function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
  115. return smalltalk.withContext(function($ctx1) {
  116. var $1;
  117. $1=_st($String())._fromCharCode_(self._key());
  118. return $1;
  119. }, function($ctx1) {$ctx1.fill(self,"shortcut",{},smalltalk.HLBinding)})},
  120. messageSends: ["fromCharCode:", "key"]}),
  121. smalltalk.HLBinding);
  122. smalltalk.addMethod(
  123. smalltalk.method({
  124. selector: "on:labelled:",
  125. fn: function (anInteger,aString){
  126. var self=this;
  127. return smalltalk.withContext(function($ctx1) {
  128. var $2,$3,$1;
  129. $2=self._new();
  130. _st($2)._key_(anInteger);
  131. _st($2)._label_(aString);
  132. $3=_st($2)._yourself();
  133. $1=$3;
  134. return $1;
  135. }, function($ctx1) {$ctx1.fill(self,"on:labelled:",{anInteger:anInteger,aString:aString},smalltalk.HLBinding.klass)})},
  136. messageSends: ["key:", "new", "label:", "yourself"]}),
  137. smalltalk.HLBinding.klass);
  138. smalltalk.addClass('HLBindingAction', smalltalk.HLBinding, ['command'], 'Helios-KeyBindings');
  139. smalltalk.addMethod(
  140. smalltalk.method({
  141. selector: "applyOn:",
  142. fn: function (aKeyBinder){
  143. var self=this;
  144. return smalltalk.withContext(function($ctx1) {
  145. var $1;
  146. $1=_st(self._command())._isInputRequired();
  147. if(smalltalk.assert($1)){
  148. _st(_st(aKeyBinder)._helper())._showWidget_(self._inputWidget());
  149. } else {
  150. self._executeCommand();
  151. };
  152. return self}, function($ctx1) {$ctx1.fill(self,"applyOn:",{aKeyBinder:aKeyBinder},smalltalk.HLBindingAction)})},
  153. messageSends: ["ifTrue:ifFalse:", "showWidget:", "inputWidget", "helper", "executeCommand", "isInputRequired", "command"]}),
  154. smalltalk.HLBindingAction);
  155. smalltalk.addMethod(
  156. smalltalk.method({
  157. selector: "command",
  158. fn: function (){
  159. var self=this;
  160. return smalltalk.withContext(function($ctx1) {
  161. var $1;
  162. $1=self["@command"];
  163. return $1;
  164. }, function($ctx1) {$ctx1.fill(self,"command",{},smalltalk.HLBindingAction)})},
  165. messageSends: []}),
  166. smalltalk.HLBindingAction);
  167. smalltalk.addMethod(
  168. smalltalk.method({
  169. selector: "command:",
  170. fn: function (aCommand){
  171. var self=this;
  172. return smalltalk.withContext(function($ctx1) {
  173. self["@command"]=aCommand;
  174. return self}, function($ctx1) {$ctx1.fill(self,"command:",{aCommand:aCommand},smalltalk.HLBindingAction)})},
  175. messageSends: []}),
  176. smalltalk.HLBindingAction);
  177. smalltalk.addMethod(
  178. smalltalk.method({
  179. selector: "executeCommand",
  180. fn: function (){
  181. var self=this;
  182. function $HLKeyBinder(){return smalltalk.HLKeyBinder||(typeof HLKeyBinder=="undefined"?nil:HLKeyBinder)}
  183. return smalltalk.withContext(function($ctx1) {
  184. _st(self._command())._execute();
  185. _st(_st($HLKeyBinder())._current())._deactivate();
  186. return self}, function($ctx1) {$ctx1.fill(self,"executeCommand",{},smalltalk.HLBindingAction)})},
  187. messageSends: ["execute", "command", "deactivate", "current"]}),
  188. smalltalk.HLBindingAction);
  189. smalltalk.addMethod(
  190. smalltalk.method({
  191. selector: "input:",
  192. fn: function (aString){
  193. var self=this;
  194. return smalltalk.withContext(function($ctx1) {
  195. _st(self._command())._input_(aString);
  196. return self}, function($ctx1) {$ctx1.fill(self,"input:",{aString:aString},smalltalk.HLBindingAction)})},
  197. messageSends: ["input:", "command"]}),
  198. smalltalk.HLBindingAction);
  199. smalltalk.addMethod(
  200. smalltalk.method({
  201. selector: "inputBinding",
  202. fn: function (){
  203. var self=this;
  204. function $HLBindingInput(){return smalltalk.HLBindingInput||(typeof HLBindingInput=="undefined"?nil:HLBindingInput)}
  205. return smalltalk.withContext(function($ctx1) {
  206. var $2,$3,$4,$5,$1;
  207. $2=_st($HLBindingInput())._new();
  208. _st($2)._label_(_st(self._command())._inputLabel());
  209. _st($2)._ghostText_(_st(self._command())._displayLabel());
  210. _st($2)._defaultValue_(_st(self._command())._defaultInput());
  211. _st($2)._inputCompletion_(_st(self._command())._inputCompletion());
  212. _st($2)._callback_((function(val){
  213. return smalltalk.withContext(function($ctx2) {
  214. $3=self._command();
  215. _st($3)._input_(val);
  216. $4=_st($3)._execute();
  217. return $4;
  218. }, function($ctx2) {$ctx2.fillBlock({val:val},$ctx1)})}));
  219. $5=_st($2)._yourself();
  220. $1=$5;
  221. return $1;
  222. }, function($ctx1) {$ctx1.fill(self,"inputBinding",{},smalltalk.HLBindingAction)})},
  223. messageSends: ["label:", "inputLabel", "command", "new", "ghostText:", "displayLabel", "defaultValue:", "defaultInput", "inputCompletion:", "inputCompletion", "callback:", "input:", "execute", "yourself"]}),
  224. smalltalk.HLBindingAction);
  225. smalltalk.addMethod(
  226. smalltalk.method({
  227. selector: "inputWidget",
  228. fn: function (){
  229. var self=this;
  230. function $HLBindingActionInputWidget(){return smalltalk.HLBindingActionInputWidget||(typeof HLBindingActionInputWidget=="undefined"?nil:HLBindingActionInputWidget)}
  231. return smalltalk.withContext(function($ctx1) {
  232. var $2,$3,$4,$5,$1;
  233. $2=_st($HLBindingActionInputWidget())._new();
  234. _st($2)._ghostText_(_st(self._command())._displayLabel());
  235. _st($2)._defaultValue_(_st(self._command())._defaultInput());
  236. _st($2)._inputCompletion_(_st(self._command())._inputCompletion());
  237. _st($2)._callback_((function(value){
  238. return smalltalk.withContext(function($ctx2) {
  239. $3=self;
  240. _st($3)._input_(value);
  241. $4=_st($3)._executeCommand();
  242. return $4;
  243. }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1)})}));
  244. $5=_st($2)._yourself();
  245. $1=$5;
  246. return $1;
  247. }, function($ctx1) {$ctx1.fill(self,"inputWidget",{},smalltalk.HLBindingAction)})},
  248. messageSends: ["ghostText:", "displayLabel", "command", "new", "defaultValue:", "defaultInput", "inputCompletion:", "inputCompletion", "callback:", "input:", "executeCommand", "yourself"]}),
  249. smalltalk.HLBindingAction);
  250. smalltalk.addMethod(
  251. smalltalk.method({
  252. selector: "isActive",
  253. fn: function (){
  254. var self=this;
  255. return smalltalk.withContext(function($ctx1) {
  256. var $1;
  257. $1=_st(self._command())._isActive();
  258. return $1;
  259. }, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLBindingAction)})},
  260. messageSends: ["isActive", "command"]}),
  261. smalltalk.HLBindingAction);
  262. smalltalk.addClass('HLBindingGroup', smalltalk.HLBinding, ['bindings'], 'Helios-KeyBindings');
  263. smalltalk.addMethod(
  264. smalltalk.method({
  265. selector: "activeBindings",
  266. fn: function (){
  267. var self=this;
  268. return smalltalk.withContext(function($ctx1) {
  269. var $1;
  270. $1=_st(self._bindings())._select_((function(each){
  271. return smalltalk.withContext(function($ctx2) {
  272. return _st(each)._isActive();
  273. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
  274. return $1;
  275. }, function($ctx1) {$ctx1.fill(self,"activeBindings",{},smalltalk.HLBindingGroup)})},
  276. messageSends: ["select:", "isActive", "bindings"]}),
  277. smalltalk.HLBindingGroup);
  278. smalltalk.addMethod(
  279. smalltalk.method({
  280. selector: "add:",
  281. fn: function (aBinding){
  282. var self=this;
  283. return smalltalk.withContext(function($ctx1) {
  284. var $1;
  285. $1=_st(self._bindings())._add_(aBinding);
  286. return $1;
  287. }, function($ctx1) {$ctx1.fill(self,"add:",{aBinding:aBinding},smalltalk.HLBindingGroup)})},
  288. messageSends: ["add:", "bindings"]}),
  289. smalltalk.HLBindingGroup);
  290. smalltalk.addMethod(
  291. smalltalk.method({
  292. selector: "addActionKey:labelled:callback:",
  293. fn: function (anInteger,aString,aBlock){
  294. var self=this;
  295. function $HLBindingAction(){return smalltalk.HLBindingAction||(typeof HLBindingAction=="undefined"?nil:HLBindingAction)}
  296. return smalltalk.withContext(function($ctx1) {
  297. var $1,$2;
  298. $1=_st($HLBindingAction())._on_labelled_(anInteger,aString);
  299. _st($1)._callback_(aBlock);
  300. $2=_st($1)._yourself();
  301. self._add_($2);
  302. return self}, function($ctx1) {$ctx1.fill(self,"addActionKey:labelled:callback:",{anInteger:anInteger,aString:aString,aBlock:aBlock},smalltalk.HLBindingGroup)})},
  303. messageSends: ["add:", "callback:", "on:labelled:", "yourself"]}),
  304. smalltalk.HLBindingGroup);
  305. smalltalk.addMethod(
  306. smalltalk.method({
  307. selector: "addGroupKey:labelled:",
  308. fn: function (anInteger,aString){
  309. var self=this;
  310. function $HLBindingGroup(){return smalltalk.HLBindingGroup||(typeof HLBindingGroup=="undefined"?nil:HLBindingGroup)}
  311. return smalltalk.withContext(function($ctx1) {
  312. self._add_(_st($HLBindingGroup())._on_labelled_(anInteger,aString));
  313. return self}, function($ctx1) {$ctx1.fill(self,"addGroupKey:labelled:",{anInteger:anInteger,aString:aString},smalltalk.HLBindingGroup)})},
  314. messageSends: ["add:", "on:labelled:"]}),
  315. smalltalk.HLBindingGroup);
  316. smalltalk.addMethod(
  317. smalltalk.method({
  318. selector: "at:",
  319. fn: function (aString){
  320. var self=this;
  321. return smalltalk.withContext(function($ctx1) {
  322. var $1;
  323. $1=_st(self._bindings())._detect_ifNone_((function(each){
  324. return smalltalk.withContext(function($ctx2) {
  325. return _st(_st(each)._label()).__eq(aString);
  326. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
  327. return smalltalk.withContext(function($ctx2) {
  328. return nil;
  329. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  330. return $1;
  331. }, function($ctx1) {$ctx1.fill(self,"at:",{aString:aString},smalltalk.HLBindingGroup)})},
  332. messageSends: ["detect:ifNone:", "=", "label", "bindings"]}),
  333. smalltalk.HLBindingGroup);
  334. smalltalk.addMethod(
  335. smalltalk.method({
  336. selector: "at:add:",
  337. fn: function (aString,aBinding){
  338. var self=this;
  339. var binding;
  340. return smalltalk.withContext(function($ctx1) {
  341. var $1,$2;
  342. binding=self._at_(aString);
  343. $1=binding;
  344. if(($receiver = $1) == nil || $receiver == undefined){
  345. $2=self;
  346. return $2;
  347. } else {
  348. $1;
  349. };
  350. _st(binding)._add_(aBinding);
  351. return self}, function($ctx1) {$ctx1.fill(self,"at:add:",{aString:aString,aBinding:aBinding,binding:binding},smalltalk.HLBindingGroup)})},
  352. messageSends: ["at:", "ifNil:", "add:"]}),
  353. smalltalk.HLBindingGroup);
  354. smalltalk.addMethod(
  355. smalltalk.method({
  356. selector: "atKey:",
  357. fn: function (anInteger){
  358. var self=this;
  359. return smalltalk.withContext(function($ctx1) {
  360. var $1;
  361. $1=_st(self._bindings())._detect_ifNone_((function(each){
  362. return smalltalk.withContext(function($ctx2) {
  363. return _st(_st(each)._key()).__eq(anInteger);
  364. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
  365. return smalltalk.withContext(function($ctx2) {
  366. return nil;
  367. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  368. return $1;
  369. }, function($ctx1) {$ctx1.fill(self,"atKey:",{anInteger:anInteger},smalltalk.HLBindingGroup)})},
  370. messageSends: ["detect:ifNone:", "=", "key", "bindings"]}),
  371. smalltalk.HLBindingGroup);
  372. smalltalk.addMethod(
  373. smalltalk.method({
  374. selector: "bindings",
  375. fn: function (){
  376. var self=this;
  377. function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
  378. return smalltalk.withContext(function($ctx1) {
  379. var $2,$1;
  380. $2=self["@bindings"];
  381. if(($receiver = $2) == nil || $receiver == undefined){
  382. self["@bindings"]=_st($OrderedCollection())._new();
  383. $1=self["@bindings"];
  384. } else {
  385. $1=$2;
  386. };
  387. return $1;
  388. }, function($ctx1) {$ctx1.fill(self,"bindings",{},smalltalk.HLBindingGroup)})},
  389. messageSends: ["ifNil:", "new"]}),
  390. smalltalk.HLBindingGroup);
  391. smalltalk.addMethod(
  392. smalltalk.method({
  393. selector: "displayLabel",
  394. fn: function (){
  395. var self=this;
  396. return smalltalk.withContext(function($ctx1) {
  397. var $1;
  398. $1=_st(smalltalk.HLBindingGroup.superclass.fn.prototype._displayLabel.apply(_st(self), [])).__comma("...");
  399. return $1;
  400. }, function($ctx1) {$ctx1.fill(self,"displayLabel",{},smalltalk.HLBindingGroup)})},
  401. messageSends: [",", "displayLabel"]}),
  402. smalltalk.HLBindingGroup);
  403. smalltalk.addMethod(
  404. smalltalk.method({
  405. selector: "isActive",
  406. fn: function (){
  407. var self=this;
  408. return smalltalk.withContext(function($ctx1) {
  409. var $1;
  410. $1=_st(self._activeBindings())._notEmpty();
  411. return $1;
  412. }, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLBindingGroup)})},
  413. messageSends: ["notEmpty", "activeBindings"]}),
  414. smalltalk.HLBindingGroup);
  415. smalltalk.addMethod(
  416. smalltalk.method({
  417. selector: "release",
  418. fn: function (){
  419. var self=this;
  420. return smalltalk.withContext(function($ctx1) {
  421. _st(self._bindings())._do_((function(each){
  422. return smalltalk.withContext(function($ctx2) {
  423. return _st(each)._release();
  424. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
  425. return self}, function($ctx1) {$ctx1.fill(self,"release",{},smalltalk.HLBindingGroup)})},
  426. messageSends: ["do:", "release", "bindings"]}),
  427. smalltalk.HLBindingGroup);
  428. smalltalk.addMethod(
  429. smalltalk.method({
  430. selector: "renderOn:html:",
  431. fn: function (aBindingHelper,html){
  432. var self=this;
  433. return smalltalk.withContext(function($ctx1) {
  434. var $1;
  435. $1=self._isActive();
  436. if(smalltalk.assert($1)){
  437. _st(aBindingHelper)._renderBindingGroup_on_(self,html);
  438. };
  439. return self}, function($ctx1) {$ctx1.fill(self,"renderOn:html:",{aBindingHelper:aBindingHelper,html:html},smalltalk.HLBindingGroup)})},
  440. messageSends: ["ifTrue:", "renderBindingGroup:on:", "isActive"]}),
  441. smalltalk.HLBindingGroup);
  442. smalltalk.addClass('HLBindingActionInputWidget', smalltalk.HLWidget, ['input', 'callback', 'status', 'wrapper', 'ghostText', 'message', 'inputCompletion', 'defaultValue', 'messageTag'], 'Helios-KeyBindings');
  443. smalltalk.addMethod(
  444. smalltalk.method({
  445. selector: "callback",
  446. fn: function (){
  447. var self=this;
  448. return smalltalk.withContext(function($ctx1) {
  449. var $2,$1;
  450. $2=self["@callback"];
  451. if(($receiver = $2) == nil || $receiver == undefined){
  452. self["@callback"]=(function(value){
  453. return smalltalk.withContext(function($ctx2) {
  454. }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1)})});
  455. $1=self["@callback"];
  456. } else {
  457. $1=$2;
  458. };
  459. return $1;
  460. }, function($ctx1) {$ctx1.fill(self,"callback",{},smalltalk.HLBindingActionInputWidget)})},
  461. messageSends: ["ifNil:"]}),
  462. smalltalk.HLBindingActionInputWidget);
  463. smalltalk.addMethod(
  464. smalltalk.method({
  465. selector: "callback:",
  466. fn: function (aBlock){
  467. var self=this;
  468. return smalltalk.withContext(function($ctx1) {
  469. self["@callback"]=aBlock;
  470. return self}, function($ctx1) {$ctx1.fill(self,"callback:",{aBlock:aBlock},smalltalk.HLBindingActionInputWidget)})},
  471. messageSends: []}),
  472. smalltalk.HLBindingActionInputWidget);
  473. smalltalk.addMethod(
  474. smalltalk.method({
  475. selector: "clearStatus",
  476. fn: function (){
  477. var self=this;
  478. return smalltalk.withContext(function($ctx1) {
  479. self._status_("info");
  480. self._message_("");
  481. self._refresh();
  482. return self}, function($ctx1) {$ctx1.fill(self,"clearStatus",{},smalltalk.HLBindingActionInputWidget)})},
  483. messageSends: ["status:", "message:", "refresh"]}),
  484. smalltalk.HLBindingActionInputWidget);
  485. smalltalk.addMethod(
  486. smalltalk.method({
  487. selector: "defaultValue",
  488. fn: function (){
  489. var self=this;
  490. return smalltalk.withContext(function($ctx1) {
  491. var $2,$1;
  492. $2=self["@defaultValue"];
  493. if(($receiver = $2) == nil || $receiver == undefined){
  494. $1="";
  495. } else {
  496. $1=$2;
  497. };
  498. return $1;
  499. }, function($ctx1) {$ctx1.fill(self,"defaultValue",{},smalltalk.HLBindingActionInputWidget)})},
  500. messageSends: ["ifNil:"]}),
  501. smalltalk.HLBindingActionInputWidget);
  502. smalltalk.addMethod(
  503. smalltalk.method({
  504. selector: "defaultValue:",
  505. fn: function (aString){
  506. var self=this;
  507. return smalltalk.withContext(function($ctx1) {
  508. self["@defaultValue"]=aString;
  509. return self}, function($ctx1) {$ctx1.fill(self,"defaultValue:",{aString:aString},smalltalk.HLBindingActionInputWidget)})},
  510. messageSends: []}),
  511. smalltalk.HLBindingActionInputWidget);
  512. smalltalk.addMethod(
  513. smalltalk.method({
  514. selector: "errorStatus",
  515. fn: function (){
  516. var self=this;
  517. return smalltalk.withContext(function($ctx1) {
  518. self._status_("error");
  519. self._refresh();
  520. return self}, function($ctx1) {$ctx1.fill(self,"errorStatus",{},smalltalk.HLBindingActionInputWidget)})},
  521. messageSends: ["status:", "refresh"]}),
  522. smalltalk.HLBindingActionInputWidget);
  523. smalltalk.addMethod(
  524. smalltalk.method({
  525. selector: "evaluate:",
  526. fn: function (aString){
  527. var self=this;
  528. function $Error(){return smalltalk.Error||(typeof Error=="undefined"?nil:Error)}
  529. return smalltalk.withContext(function($ctx1) {
  530. _st((function(){
  531. return smalltalk.withContext(function($ctx2) {
  532. return _st(self._callback())._value_(aString);
  533. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_($Error(),(function(ex){
  534. return smalltalk.withContext(function($ctx2) {
  535. _st(_st(self._input())._asJQuery())._one_do_("keydown",(function(){
  536. return smalltalk.withContext(function($ctx3) {
  537. return self._clearStatus();
  538. }, function($ctx3) {$ctx3.fillBlock({},$ctx2)})}));
  539. self._message_(_st(ex)._messageText());
  540. return self._errorStatus();
  541. }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
  542. return self}, function($ctx1) {$ctx1.fill(self,"evaluate:",{aString:aString},smalltalk.HLBindingActionInputWidget)})},
  543. messageSends: ["on:do:", "one:do:", "clearStatus", "asJQuery", "input", "message:", "messageText", "errorStatus", "value:", "callback"]}),
  544. smalltalk.HLBindingActionInputWidget);
  545. smalltalk.addMethod(
  546. smalltalk.method({
  547. selector: "ghostText",
  548. fn: function (){
  549. var self=this;
  550. return smalltalk.withContext(function($ctx1) {
  551. var $1;
  552. $1=self["@ghostText"];
  553. return $1;
  554. }, function($ctx1) {$ctx1.fill(self,"ghostText",{},smalltalk.HLBindingActionInputWidget)})},
  555. messageSends: []}),
  556. smalltalk.HLBindingActionInputWidget);
  557. smalltalk.addMethod(
  558. smalltalk.method({
  559. selector: "ghostText:",
  560. fn: function (aText){
  561. var self=this;
  562. return smalltalk.withContext(function($ctx1) {
  563. self["@ghostText"]=aText;
  564. return self}, function($ctx1) {$ctx1.fill(self,"ghostText:",{aText:aText},smalltalk.HLBindingActionInputWidget)})},
  565. messageSends: []}),
  566. smalltalk.HLBindingActionInputWidget);
  567. smalltalk.addMethod(
  568. smalltalk.method({
  569. selector: "input",
  570. fn: function (){
  571. var self=this;
  572. return smalltalk.withContext(function($ctx1) {
  573. var $1;
  574. $1=self["@input"];
  575. return $1;
  576. }, function($ctx1) {$ctx1.fill(self,"input",{},smalltalk.HLBindingActionInputWidget)})},
  577. messageSends: []}),
  578. smalltalk.HLBindingActionInputWidget);
  579. smalltalk.addMethod(
  580. smalltalk.method({
  581. selector: "inputCompletion",
  582. fn: function (){
  583. var self=this;
  584. return smalltalk.withContext(function($ctx1) {
  585. var $2,$1;
  586. $2=self["@inputCompletion"];
  587. if(($receiver = $2) == nil || $receiver == undefined){
  588. $1=[];
  589. } else {
  590. $1=$2;
  591. };
  592. return $1;
  593. }, function($ctx1) {$ctx1.fill(self,"inputCompletion",{},smalltalk.HLBindingActionInputWidget)})},
  594. messageSends: ["ifNil:"]}),
  595. smalltalk.HLBindingActionInputWidget);
  596. smalltalk.addMethod(
  597. smalltalk.method({
  598. selector: "inputCompletion:",
  599. fn: function (aCollection){
  600. var self=this;
  601. return smalltalk.withContext(function($ctx1) {
  602. self["@inputCompletion"]=aCollection;
  603. return self}, function($ctx1) {$ctx1.fill(self,"inputCompletion:",{aCollection:aCollection},smalltalk.HLBindingActionInputWidget)})},
  604. messageSends: []}),
  605. smalltalk.HLBindingActionInputWidget);
  606. smalltalk.addMethod(
  607. smalltalk.method({
  608. selector: "message",
  609. fn: function (){
  610. var self=this;
  611. return smalltalk.withContext(function($ctx1) {
  612. var $2,$1;
  613. $2=self["@message"];
  614. if(($receiver = $2) == nil || $receiver == undefined){
  615. self["@message"]="";
  616. $1=self["@message"];
  617. } else {
  618. $1=$2;
  619. };
  620. return $1;
  621. }, function($ctx1) {$ctx1.fill(self,"message",{},smalltalk.HLBindingActionInputWidget)})},
  622. messageSends: ["ifNil:"]}),
  623. smalltalk.HLBindingActionInputWidget);
  624. smalltalk.addMethod(
  625. smalltalk.method({
  626. selector: "message:",
  627. fn: function (aString){
  628. var self=this;
  629. return smalltalk.withContext(function($ctx1) {
  630. self["@message"]=aString;
  631. return self}, function($ctx1) {$ctx1.fill(self,"message:",{aString:aString},smalltalk.HLBindingActionInputWidget)})},
  632. messageSends: []}),
  633. smalltalk.HLBindingActionInputWidget);
  634. smalltalk.addMethod(
  635. smalltalk.method({
  636. selector: "refresh",
  637. fn: function (){
  638. var self=this;
  639. return smalltalk.withContext(function($ctx1) {
  640. var $1,$2;
  641. $1=self["@wrapper"];
  642. if(($receiver = $1) == nil || $receiver == undefined){
  643. $2=self;
  644. return $2;
  645. } else {
  646. $1;
  647. };
  648. _st(self["@wrapper"])._class_(self._status());
  649. _st(self["@messageTag"])._contents_(self._message());
  650. return self}, function($ctx1) {$ctx1.fill(self,"refresh",{},smalltalk.HLBindingActionInputWidget)})},
  651. messageSends: ["ifNil:", "class:", "status", "contents:", "message"]}),
  652. smalltalk.HLBindingActionInputWidget);
  653. smalltalk.addMethod(
  654. smalltalk.method({
  655. selector: "renderOn:",
  656. fn: function (html){
  657. var self=this;
  658. return smalltalk.withContext(function($ctx1) {
  659. var $1,$2,$4,$6,$5,$7,$8,$3;
  660. $1=self["@wrapper"];
  661. if(($receiver = $1) == nil || $receiver == undefined){
  662. self["@wrapper"]=_st(html)._span();
  663. self["@wrapper"];
  664. } else {
  665. $1;
  666. };
  667. $2=self["@wrapper"];
  668. _st($2)._class_(self._status());
  669. $3=_st($2)._with_((function(){
  670. return smalltalk.withContext(function($ctx2) {
  671. $4=_st(html)._input();
  672. _st($4)._placeholder_(self._ghostText());
  673. _st($4)._value_(self._defaultValue());
  674. $5=_st($4)._onKeyDown_(_st((function(event){
  675. return smalltalk.withContext(function($ctx3) {
  676. $6=_st(_st(event)._which()).__eq((13));
  677. if(smalltalk.assert($6)){
  678. return self._evaluate_(_st(_st(self["@input"])._asJQuery())._val());
  679. };
  680. }, function($ctx3) {$ctx3.fillBlock({event:event},$ctx2)})}))._yourself());
  681. self["@input"]=$5;
  682. self["@input"];
  683. _st(_st(self["@input"])._asJQuery())._typeahead_(smalltalk.HashedCollection._from_(["source".__minus_gt(self._inputCompletion())]));
  684. $7=_st(html)._span();
  685. _st($7)._class_("help-inline");
  686. _st($7)._with_(self._message());
  687. $8=_st($7)._yourself();
  688. self["@messageTag"]=$8;
  689. return self["@messageTag"];
  690. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  691. _st((function(){
  692. return smalltalk.withContext(function($ctx2) {
  693. return _st(_st(self["@input"])._asJQuery())._focus();
  694. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._valueWithTimeout_((10));
  695. return self}, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html},smalltalk.HLBindingActionInputWidget)})},
  696. messageSends: ["ifNil:", "span", "class:", "status", "with:", "placeholder:", "ghostText", "input", "value:", "defaultValue", "onKeyDown:", "yourself", "ifTrue:", "evaluate:", "val", "asJQuery", "=", "which", "typeahead:", "->", "inputCompletion", "message", "valueWithTimeout:", "focus"]}),
  697. smalltalk.HLBindingActionInputWidget);
  698. smalltalk.addMethod(
  699. smalltalk.method({
  700. selector: "status",
  701. fn: function (){
  702. var self=this;
  703. return smalltalk.withContext(function($ctx1) {
  704. var $2,$1;
  705. $2=self["@status"];
  706. if(($receiver = $2) == nil || $receiver == undefined){
  707. self["@status"]="info";
  708. $1=self["@status"];
  709. } else {
  710. $1=$2;
  711. };
  712. return $1;
  713. }, function($ctx1) {$ctx1.fill(self,"status",{},smalltalk.HLBindingActionInputWidget)})},
  714. messageSends: ["ifNil:"]}),
  715. smalltalk.HLBindingActionInputWidget);
  716. smalltalk.addMethod(
  717. smalltalk.method({
  718. selector: "status:",
  719. fn: function (aStatus){
  720. var self=this;
  721. return smalltalk.withContext(function($ctx1) {
  722. self["@status"]=aStatus;
  723. return self}, function($ctx1) {$ctx1.fill(self,"status:",{aStatus:aStatus},smalltalk.HLBindingActionInputWidget)})},
  724. messageSends: []}),
  725. smalltalk.HLBindingActionInputWidget);
  726. smalltalk.addClass('HLKeyBinder', smalltalk.Object, ['modifierKey', 'helper', 'bindings', 'selectedBinding'], 'Helios-KeyBindings');
  727. smalltalk.addMethod(
  728. smalltalk.method({
  729. selector: "activate",
  730. fn: function (){
  731. var self=this;
  732. return smalltalk.withContext(function($ctx1) {
  733. _st(self._helper())._show();
  734. return self}, function($ctx1) {$ctx1.fill(self,"activate",{},smalltalk.HLKeyBinder)})},
  735. messageSends: ["show", "helper"]}),
  736. smalltalk.HLKeyBinder);
  737. smalltalk.addMethod(
  738. smalltalk.method({
  739. selector: "activationKey",
  740. fn: function (){
  741. var self=this;
  742. return smalltalk.withContext(function($ctx1) {
  743. return (32);
  744. }, function($ctx1) {$ctx1.fill(self,"activationKey",{},smalltalk.HLKeyBinder)})},
  745. messageSends: []}),
  746. smalltalk.HLKeyBinder);
  747. smalltalk.addMethod(
  748. smalltalk.method({
  749. selector: "activationKeyLabel",
  750. fn: function (){
  751. var self=this;
  752. return smalltalk.withContext(function($ctx1) {
  753. return "ctrl + space";
  754. }, function($ctx1) {$ctx1.fill(self,"activationKeyLabel",{},smalltalk.HLKeyBinder)})},
  755. messageSends: []}),
  756. smalltalk.HLKeyBinder);
  757. smalltalk.addMethod(
  758. smalltalk.method({
  759. selector: "applyBinding:",
  760. fn: function (aBinding){
  761. var self=this;
  762. return smalltalk.withContext(function($ctx1) {
  763. var $1,$2;
  764. $1=_st(aBinding)._isActive();
  765. if(! smalltalk.assert($1)){
  766. $2=self;
  767. return $2;
  768. };
  769. self._selectBinding_(aBinding);
  770. _st(aBinding)._applyOn_(self);
  771. return self}, function($ctx1) {$ctx1.fill(self,"applyBinding:",{aBinding:aBinding},smalltalk.HLKeyBinder)})},
  772. messageSends: ["ifFalse:", "isActive", "selectBinding:", "applyOn:"]}),
  773. smalltalk.HLKeyBinder);
  774. smalltalk.addMethod(
  775. smalltalk.method({
  776. selector: "bindings",
  777. fn: function (){
  778. var self=this;
  779. return smalltalk.withContext(function($ctx1) {
  780. var $2,$1;
  781. $2=self["@bindings"];
  782. if(($receiver = $2) == nil || $receiver == undefined){
  783. self["@bindings"]=self._defaultBindings();
  784. $1=self["@bindings"];
  785. } else {
  786. $1=$2;
  787. };
  788. return $1;
  789. }, function($ctx1) {$ctx1.fill(self,"bindings",{},smalltalk.HLKeyBinder)})},
  790. messageSends: ["ifNil:", "defaultBindings"]}),
  791. smalltalk.HLKeyBinder);
  792. smalltalk.addMethod(
  793. smalltalk.method({
  794. selector: "deactivate",
  795. fn: function (){
  796. var self=this;
  797. return smalltalk.withContext(function($ctx1) {
  798. var $1;
  799. $1=self["@selectedBinding"];
  800. if(($receiver = $1) == nil || $receiver == undefined){
  801. $1;
  802. } else {
  803. _st(self["@selectedBinding"])._release();
  804. };
  805. self["@selectedBinding"]=nil;
  806. _st(self._helper())._hide();
  807. return self}, function($ctx1) {$ctx1.fill(self,"deactivate",{},smalltalk.HLKeyBinder)})},
  808. messageSends: ["ifNotNil:", "release", "hide", "helper"]}),
  809. smalltalk.HLKeyBinder);
  810. smalltalk.addMethod(
  811. smalltalk.method({
  812. selector: "defaultBindings",
  813. fn: function (){
  814. var self=this;
  815. var group;
  816. function $HLCloseTabCommand(){return smalltalk.HLCloseTabCommand||(typeof HLCloseTabCommand=="undefined"?nil:HLCloseTabCommand)}
  817. function $HLBindingGroup(){return smalltalk.HLBindingGroup||(typeof HLBindingGroup=="undefined"?nil:HLBindingGroup)}
  818. function $HLSwitchTabCommand(){return smalltalk.HLSwitchTabCommand||(typeof HLSwitchTabCommand=="undefined"?nil:HLSwitchTabCommand)}
  819. function $HLOpenCommand(){return smalltalk.HLOpenCommand||(typeof HLOpenCommand=="undefined"?nil:HLOpenCommand)}
  820. return smalltalk.withContext(function($ctx1) {
  821. var $1,$2,$3;
  822. $1=_st($HLBindingGroup())._new();
  823. _st($1)._add_(_st(_st($HLCloseTabCommand())._new())._asBinding());
  824. _st($1)._add_(_st(_st($HLSwitchTabCommand())._new())._asBinding());
  825. $2=_st($1)._yourself();
  826. group=$2;
  827. _st($HLOpenCommand())._registerConcreteClassesOn_(group);
  828. $3=group;
  829. return $3;
  830. }, function($ctx1) {$ctx1.fill(self,"defaultBindings",{group:group},smalltalk.HLKeyBinder)})},
  831. messageSends: ["add:", "asBinding", "new", "yourself", "registerConcreteClassesOn:"]}),
  832. smalltalk.HLKeyBinder);
  833. smalltalk.addMethod(
  834. smalltalk.method({
  835. selector: "escapeKey",
  836. fn: function (){
  837. var self=this;
  838. return smalltalk.withContext(function($ctx1) {
  839. return (27);
  840. }, function($ctx1) {$ctx1.fill(self,"escapeKey",{},smalltalk.HLKeyBinder)})},
  841. messageSends: []}),
  842. smalltalk.HLKeyBinder);
  843. smalltalk.addMethod(
  844. smalltalk.method({
  845. selector: "flushBindings",
  846. fn: function (){
  847. var self=this;
  848. return smalltalk.withContext(function($ctx1) {
  849. self["@bindings"]=nil;
  850. return self}, function($ctx1) {$ctx1.fill(self,"flushBindings",{},smalltalk.HLKeyBinder)})},
  851. messageSends: []}),
  852. smalltalk.HLKeyBinder);
  853. smalltalk.addMethod(
  854. smalltalk.method({
  855. selector: "handleActiveKeyDown:",
  856. fn: function (event){
  857. var self=this;
  858. return smalltalk.withContext(function($ctx1) {
  859. var $1,$2;
  860. $1=_st(_st(_st(event)._which()).__eq(self._escapeKey()))._or_((function(){
  861. return smalltalk.withContext(function($ctx2) {
  862. return _st(_st(_st(event)._which()).__eq((71)))._and_((function(){
  863. return smalltalk.withContext(function($ctx3) {
  864. return _st(event)._ctrlKey();
  865. }, function($ctx3) {$ctx3.fillBlock({},$ctx2)})}));
  866. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  867. if(smalltalk.assert($1)){
  868. self._deactivate();
  869. _st(event)._preventDefault();
  870. return false;
  871. };
  872. $2=self._handleBindingFor_(event);
  873. return $2;
  874. }, function($ctx1) {$ctx1.fill(self,"handleActiveKeyDown:",{event:event},smalltalk.HLKeyBinder)})},
  875. messageSends: ["ifTrue:", "deactivate", "preventDefault", "or:", "and:", "ctrlKey", "=", "which", "escapeKey", "handleBindingFor:"]}),
  876. smalltalk.HLKeyBinder);
  877. smalltalk.addMethod(
  878. smalltalk.method({
  879. selector: "handleBindingFor:",
  880. fn: function (anEvent){
  881. var self=this;
  882. var binding;
  883. return smalltalk.withContext(function($ctx1) {
  884. var $1;
  885. binding=_st(self._selectedBinding())._atKey_(_st(anEvent)._which());
  886. $1=binding;
  887. if(($receiver = $1) == nil || $receiver == undefined){
  888. $1;
  889. } else {
  890. self._applyBinding_(binding);
  891. _st(anEvent)._preventDefault();
  892. return false;
  893. };
  894. return self}, function($ctx1) {$ctx1.fill(self,"handleBindingFor:",{anEvent:anEvent,binding:binding},smalltalk.HLKeyBinder)})},
  895. messageSends: ["atKey:", "which", "selectedBinding", "ifNotNil:", "applyBinding:", "preventDefault"]}),
  896. smalltalk.HLKeyBinder);
  897. smalltalk.addMethod(
  898. smalltalk.method({
  899. selector: "handleInactiveKeyDown:",
  900. fn: function (event){
  901. var self=this;
  902. return smalltalk.withContext(function($ctx1) {
  903. var $1,$2;
  904. $1=_st(_st(event)._which()).__eq(self._activationKey());
  905. if(smalltalk.assert($1)){
  906. $2=_st(event)._ctrlKey();
  907. if(smalltalk.assert($2)){
  908. self._activate();
  909. _st(event)._preventDefault();
  910. return false;
  911. };
  912. };
  913. return self}, function($ctx1) {$ctx1.fill(self,"handleInactiveKeyDown:",{event:event},smalltalk.HLKeyBinder)})},
  914. messageSends: ["ifTrue:", "activate", "preventDefault", "ctrlKey", "=", "activationKey", "which"]}),
  915. smalltalk.HLKeyBinder);
  916. smalltalk.addMethod(
  917. smalltalk.method({
  918. selector: "handleKeyDown:",
  919. fn: function (event){
  920. var self=this;
  921. return smalltalk.withContext(function($ctx1) {
  922. var $2,$1;
  923. $2=self._isActive();
  924. if(smalltalk.assert($2)){
  925. $1=self._handleActiveKeyDown_(event);
  926. } else {
  927. $1=self._handleInactiveKeyDown_(event);
  928. };
  929. return $1;
  930. }, function($ctx1) {$ctx1.fill(self,"handleKeyDown:",{event:event},smalltalk.HLKeyBinder)})},
  931. messageSends: ["ifTrue:ifFalse:", "handleActiveKeyDown:", "handleInactiveKeyDown:", "isActive"]}),
  932. smalltalk.HLKeyBinder);
  933. smalltalk.addMethod(
  934. smalltalk.method({
  935. selector: "helper",
  936. fn: function (){
  937. var self=this;
  938. return smalltalk.withContext(function($ctx1) {
  939. var $1;
  940. $1=self["@helper"];
  941. return $1;
  942. }, function($ctx1) {$ctx1.fill(self,"helper",{},smalltalk.HLKeyBinder)})},
  943. messageSends: []}),
  944. smalltalk.HLKeyBinder);
  945. smalltalk.addMethod(
  946. smalltalk.method({
  947. selector: "initialize",
  948. fn: function (){
  949. var self=this;
  950. function $HLKeyBinderHelperWidget(){return smalltalk.HLKeyBinderHelperWidget||(typeof HLKeyBinderHelperWidget=="undefined"?nil:HLKeyBinderHelperWidget)}
  951. return smalltalk.withContext(function($ctx1) {
  952. var $1,$2;
  953. smalltalk.HLKeyBinder.superclass.fn.prototype._initialize.apply(_st(self), []);
  954. self["@helper"]=_st($HLKeyBinderHelperWidget())._on_(self);
  955. $1=self["@helper"];
  956. _st($1)._renderStart();
  957. $2=_st($1)._renderCog();
  958. return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.HLKeyBinder)})},
  959. messageSends: ["initialize", "on:", "renderStart", "renderCog"]}),
  960. smalltalk.HLKeyBinder);
  961. smalltalk.addMethod(
  962. smalltalk.method({
  963. selector: "isActive",
  964. fn: function (){
  965. var self=this;
  966. return smalltalk.withContext(function($ctx1) {
  967. var $1;
  968. $1=_st(_st(".".__comma(_st(self._helper())._cssClass()))._asJQuery())._is_(":visible");
  969. return $1;
  970. }, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLKeyBinder)})},
  971. messageSends: ["is:", "asJQuery", ",", "cssClass", "helper"]}),
  972. smalltalk.HLKeyBinder);
  973. smalltalk.addMethod(
  974. smalltalk.method({
  975. selector: "selectBinding:",
  976. fn: function (aBinding){
  977. var self=this;
  978. return smalltalk.withContext(function($ctx1) {
  979. var $1,$2;
  980. $1=_st(aBinding).__eq(self["@selectedBinding"]);
  981. if(smalltalk.assert($1)){
  982. $2=self;
  983. return $2;
  984. };
  985. self["@selectedBinding"]=aBinding;
  986. _st(self._helper())._refresh();
  987. return self}, function($ctx1) {$ctx1.fill(self,"selectBinding:",{aBinding:aBinding},smalltalk.HLKeyBinder)})},
  988. messageSends: ["ifTrue:", "=", "refresh", "helper"]}),
  989. smalltalk.HLKeyBinder);
  990. smalltalk.addMethod(
  991. smalltalk.method({
  992. selector: "selectedBinding",
  993. fn: function (){
  994. var self=this;
  995. return smalltalk.withContext(function($ctx1) {
  996. var $2,$1;
  997. $2=self["@selectedBinding"];
  998. if(($receiver = $2) == nil || $receiver == undefined){
  999. $1=self._bindings();
  1000. } else {
  1001. $1=$2;
  1002. };
  1003. return $1;
  1004. }, function($ctx1) {$ctx1.fill(self,"selectedBinding",{},smalltalk.HLKeyBinder)})},
  1005. messageSends: ["ifNil:", "bindings"]}),
  1006. smalltalk.HLKeyBinder);
  1007. smalltalk.addMethod(
  1008. smalltalk.method({
  1009. selector: "setupEvents",
  1010. fn: function (){
  1011. var self=this;
  1012. return smalltalk.withContext(function($ctx1) {
  1013. _st("body"._asJQuery())._keydown_((function(event){
  1014. return smalltalk.withContext(function($ctx2) {
  1015. return self._handleKeyDown_(event);
  1016. }, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1)})}));
  1017. return self}, function($ctx1) {$ctx1.fill(self,"setupEvents",{},smalltalk.HLKeyBinder)})},
  1018. messageSends: ["keydown:", "handleKeyDown:", "asJQuery"]}),
  1019. smalltalk.HLKeyBinder);
  1020. smalltalk.addMethod(
  1021. smalltalk.method({
  1022. selector: "systemIsMac",
  1023. fn: function (){
  1024. var self=this;
  1025. return smalltalk.withContext(function($ctx1) {
  1026. var $1;
  1027. $1=_st(_st(navigator)._platform())._match_("Mac");
  1028. return $1;
  1029. }, function($ctx1) {$ctx1.fill(self,"systemIsMac",{},smalltalk.HLKeyBinder)})},
  1030. messageSends: ["match:", "platform"]}),
  1031. smalltalk.HLKeyBinder);
  1032. smalltalk.HLKeyBinder.klass.iVarNames = ['current'];
  1033. smalltalk.addMethod(
  1034. smalltalk.method({
  1035. selector: "current",
  1036. fn: function (){
  1037. var self=this;
  1038. return smalltalk.withContext(function($ctx1) {
  1039. var $2,$1;
  1040. $2=self["@current"];
  1041. if(($receiver = $2) == nil || $receiver == undefined){
  1042. self["@current"]=smalltalk.HLKeyBinder.klass.superclass.fn.prototype._new.apply(_st(self), []);
  1043. $1=self["@current"];
  1044. } else {
  1045. $1=$2;
  1046. };
  1047. return $1;
  1048. }, function($ctx1) {$ctx1.fill(self,"current",{},smalltalk.HLKeyBinder.klass)})},
  1049. messageSends: ["ifNil:", "new"]}),
  1050. smalltalk.HLKeyBinder.klass);
  1051. smalltalk.addMethod(
  1052. smalltalk.method({
  1053. selector: "new",
  1054. fn: function (){
  1055. var self=this;
  1056. return smalltalk.withContext(function($ctx1) {
  1057. self._shouldNotImplement();
  1058. return self}, function($ctx1) {$ctx1.fill(self,"new",{},smalltalk.HLKeyBinder.klass)})},
  1059. messageSends: ["shouldNotImplement"]}),
  1060. smalltalk.HLKeyBinder.klass);
  1061. smalltalk.addClass('HLKeyBinderHelperWidget', smalltalk.HLWidget, ['keyBinder'], 'Helios-KeyBindings');
  1062. smalltalk.addMethod(
  1063. smalltalk.method({
  1064. selector: "cssClass",
  1065. fn: function (){
  1066. var self=this;
  1067. return smalltalk.withContext(function($ctx1) {
  1068. return "key_helper";
  1069. }, function($ctx1) {$ctx1.fill(self,"cssClass",{},smalltalk.HLKeyBinderHelperWidget)})},
  1070. messageSends: []}),
  1071. smalltalk.HLKeyBinderHelperWidget);
  1072. smalltalk.addMethod(
  1073. smalltalk.method({
  1074. selector: "hide",
  1075. fn: function (){
  1076. var self=this;
  1077. return smalltalk.withContext(function($ctx1) {
  1078. _st(_st(".".__comma(self._cssClass()))._asJQuery())._remove();
  1079. self._showCog();
  1080. return self}, function($ctx1) {$ctx1.fill(self,"hide",{},smalltalk.HLKeyBinderHelperWidget)})},
  1081. messageSends: ["remove", "asJQuery", ",", "cssClass", "showCog"]}),
  1082. smalltalk.HLKeyBinderHelperWidget);
  1083. smalltalk.addMethod(
  1084. smalltalk.method({
  1085. selector: "hideCog",
  1086. fn: function (){
  1087. var self=this;
  1088. return smalltalk.withContext(function($ctx1) {
  1089. _st("#cog-helper"._asJQuery())._hide();
  1090. return self}, function($ctx1) {$ctx1.fill(self,"hideCog",{},smalltalk.HLKeyBinderHelperWidget)})},
  1091. messageSends: ["hide", "asJQuery"]}),
  1092. smalltalk.HLKeyBinderHelperWidget);
  1093. smalltalk.addMethod(
  1094. smalltalk.method({
  1095. selector: "keyBinder",
  1096. fn: function (){
  1097. var self=this;
  1098. return smalltalk.withContext(function($ctx1) {
  1099. var $1;
  1100. $1=self["@keyBinder"];
  1101. return $1;
  1102. }, function($ctx1) {$ctx1.fill(self,"keyBinder",{},smalltalk.HLKeyBinderHelperWidget)})},
  1103. messageSends: []}),
  1104. smalltalk.HLKeyBinderHelperWidget);
  1105. smalltalk.addMethod(
  1106. smalltalk.method({
  1107. selector: "keyBinder:",
  1108. fn: function (aKeyBinder){
  1109. var self=this;
  1110. return smalltalk.withContext(function($ctx1) {
  1111. self["@keyBinder"]=aKeyBinder;
  1112. return self}, function($ctx1) {$ctx1.fill(self,"keyBinder:",{aKeyBinder:aKeyBinder},smalltalk.HLKeyBinderHelperWidget)})},
  1113. messageSends: []}),
  1114. smalltalk.HLKeyBinderHelperWidget);
  1115. smalltalk.addMethod(
  1116. smalltalk.method({
  1117. selector: "mainId",
  1118. fn: function (){
  1119. var self=this;
  1120. return smalltalk.withContext(function($ctx1) {
  1121. return "binding-helper-main";
  1122. }, function($ctx1) {$ctx1.fill(self,"mainId",{},smalltalk.HLKeyBinderHelperWidget)})},
  1123. messageSends: []}),
  1124. smalltalk.HLKeyBinderHelperWidget);
  1125. smalltalk.addMethod(
  1126. smalltalk.method({
  1127. selector: "renderBindingActionFor:on:",
  1128. fn: function (aBinding,html){
  1129. var self=this;
  1130. return smalltalk.withContext(function($ctx1) {
  1131. var $1,$3,$4,$5,$6,$2;
  1132. $1=_st(html)._span();
  1133. _st($1)._class_("command");
  1134. $2=_st($1)._with_((function(){
  1135. return smalltalk.withContext(function($ctx2) {
  1136. $3=_st(html)._span();
  1137. _st($3)._class_("label");
  1138. $4=_st($3)._with_(_st(_st(aBinding)._shortcut())._asLowercase());
  1139. $4;
  1140. $5=_st(html)._a();
  1141. _st($5)._class_("action");
  1142. _st($5)._with_(_st(aBinding)._displayLabel());
  1143. $6=_st($5)._onClick_((function(){
  1144. return smalltalk.withContext(function($ctx3) {
  1145. return _st(self._keyBinder())._applyBinding_(aBinding);
  1146. }, function($ctx3) {$ctx3.fillBlock({},$ctx2)})}));
  1147. return $6;
  1148. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  1149. return self}, function($ctx1) {$ctx1.fill(self,"renderBindingActionFor:on:",{aBinding:aBinding,html:html},smalltalk.HLKeyBinderHelperWidget)})},
  1150. messageSends: ["class:", "span", "with:", "asLowercase", "shortcut", "a", "displayLabel", "onClick:", "applyBinding:", "keyBinder"]}),
  1151. smalltalk.HLKeyBinderHelperWidget);
  1152. smalltalk.addMethod(
  1153. smalltalk.method({
  1154. selector: "renderBindingGroup:on:",
  1155. fn: function (aBindingGroup,html){
  1156. var self=this;
  1157. return smalltalk.withContext(function($ctx1) {
  1158. _st(_st(_st(aBindingGroup)._activeBindings())._sorted_((function(a,b){
  1159. return smalltalk.withContext(function($ctx2) {
  1160. return _st(_st(a)._key()).__lt(_st(b)._key());
  1161. }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(each){
  1162. return smalltalk.withContext(function($ctx2) {
  1163. return self._renderBindingActionFor_on_(each,html);
  1164. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
  1165. return self}, function($ctx1) {$ctx1.fill(self,"renderBindingGroup:on:",{aBindingGroup:aBindingGroup,html:html},smalltalk.HLKeyBinderHelperWidget)})},
  1166. messageSends: ["do:", "renderBindingActionFor:on:", "sorted:", "<", "key", "activeBindings"]}),
  1167. smalltalk.HLKeyBinderHelperWidget);
  1168. smalltalk.addMethod(
  1169. smalltalk.method({
  1170. selector: "renderCloseOn:",
  1171. fn: function (html){
  1172. var self=this;
  1173. return smalltalk.withContext(function($ctx1) {
  1174. var $1,$2;
  1175. $1=_st(html)._a();
  1176. _st($1)._class_("close");
  1177. _st($1)._with_((function(){
  1178. return smalltalk.withContext(function($ctx2) {
  1179. return _st(_st(html)._tag_("i"))._class_("icon-remove");
  1180. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  1181. $2=_st($1)._onClick_((function(){
  1182. return smalltalk.withContext(function($ctx2) {
  1183. return _st(self._keyBinder())._deactivate();
  1184. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  1185. return self}, function($ctx1) {$ctx1.fill(self,"renderCloseOn:",{html:html},smalltalk.HLKeyBinderHelperWidget)})},
  1186. messageSends: ["class:", "a", "with:", "tag:", "onClick:", "deactivate", "keyBinder"]}),
  1187. smalltalk.HLKeyBinderHelperWidget);
  1188. smalltalk.addMethod(
  1189. smalltalk.method({
  1190. selector: "renderCog",
  1191. fn: function (){
  1192. var self=this;
  1193. return smalltalk.withContext(function($ctx1) {
  1194. var $1,$3,$4,$2;
  1195. _st((function(html){
  1196. return smalltalk.withContext(function($ctx2) {
  1197. $1=_st(html)._div();
  1198. _st($1)._id_("cog-helper");
  1199. $2=_st($1)._with_((function(){
  1200. return smalltalk.withContext(function($ctx3) {
  1201. $3=_st(html)._a();
  1202. _st($3)._with_((function(){
  1203. return smalltalk.withContext(function($ctx4) {
  1204. return _st(_st(html)._tag_("i"))._class_("icon-cog");
  1205. }, function($ctx4) {$ctx4.fillBlock({},$ctx3)})}));
  1206. $4=_st($3)._onClick_((function(){
  1207. return smalltalk.withContext(function($ctx4) {
  1208. return _st(self._keyBinder())._activate();
  1209. }, function($ctx4) {$ctx4.fillBlock({},$ctx3)})}));
  1210. return $4;
  1211. }, function($ctx3) {$ctx3.fillBlock({},$ctx2)})}));
  1212. return $2;
  1213. }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}))._appendToJQuery_("body"._asJQuery());
  1214. return self}, function($ctx1) {$ctx1.fill(self,"renderCog",{},smalltalk.HLKeyBinderHelperWidget)})},
  1215. messageSends: ["appendToJQuery:", "asJQuery", "id:", "div", "with:", "class:", "tag:", "a", "onClick:", "activate", "keyBinder"]}),
  1216. smalltalk.HLKeyBinderHelperWidget);
  1217. smalltalk.addMethod(
  1218. smalltalk.method({
  1219. selector: "renderContentOn:",
  1220. fn: function (html){
  1221. var self=this;
  1222. return smalltalk.withContext(function($ctx1) {
  1223. var $1,$3,$4,$2;
  1224. $1=_st(html)._div();
  1225. _st($1)._class_(self._cssClass());
  1226. $2=_st($1)._with_((function(){
  1227. return smalltalk.withContext(function($ctx2) {
  1228. self._renderLabelOn_(html);
  1229. $3=_st(html)._div();
  1230. _st($3)._id_(self._mainId());
  1231. $4=_st($3)._with_((function(){
  1232. return smalltalk.withContext(function($ctx3) {
  1233. return self._renderSelectedBindingOn_(html);
  1234. }, function($ctx3) {$ctx3.fillBlock({},$ctx2)})}));
  1235. $4;
  1236. return self._renderCloseOn_(html);
  1237. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  1238. return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},smalltalk.HLKeyBinderHelperWidget)})},
  1239. messageSends: ["class:", "cssClass", "div", "with:", "renderLabelOn:", "id:", "mainId", "renderSelectedBindingOn:", "renderCloseOn:"]}),
  1240. smalltalk.HLKeyBinderHelperWidget);
  1241. smalltalk.addMethod(
  1242. smalltalk.method({
  1243. selector: "renderLabelOn:",
  1244. fn: function (html){
  1245. var self=this;
  1246. return smalltalk.withContext(function($ctx1) {
  1247. var $1,$3,$5,$4,$2;
  1248. $1=_st(html)._span();
  1249. _st($1)._class_("selected");
  1250. $3=$1;
  1251. $5=_st(self._selectedBinding())._label();
  1252. if(($receiver = $5) == nil || $receiver == undefined){
  1253. $4="Action";
  1254. } else {
  1255. $4=$5;
  1256. };
  1257. $2=_st($3)._with_($4);
  1258. return self}, function($ctx1) {$ctx1.fill(self,"renderLabelOn:",{html:html},smalltalk.HLKeyBinderHelperWidget)})},
  1259. messageSends: ["class:", "span", "with:", "ifNil:", "label", "selectedBinding"]}),
  1260. smalltalk.HLKeyBinderHelperWidget);
  1261. smalltalk.addMethod(
  1262. smalltalk.method({
  1263. selector: "renderSelectedBindingOn:",
  1264. fn: function (html){
  1265. var self=this;
  1266. return smalltalk.withContext(function($ctx1) {
  1267. _st(self._selectedBinding())._renderOn_html_(self,html);
  1268. return self}, function($ctx1) {$ctx1.fill(self,"renderSelectedBindingOn:",{html:html},smalltalk.HLKeyBinderHelperWidget)})},
  1269. messageSends: ["renderOn:html:", "selectedBinding"]}),
  1270. smalltalk.HLKeyBinderHelperWidget);
  1271. smalltalk.addMethod(
  1272. smalltalk.method({
  1273. selector: "renderStart",
  1274. fn: function (){
  1275. var self=this;
  1276. return smalltalk.withContext(function($ctx1) {
  1277. var $1,$2;
  1278. _st("#helper"._asJQuery())._remove();
  1279. _st((function(html){
  1280. return smalltalk.withContext(function($ctx2) {
  1281. $1=_st(html)._div();
  1282. _st($1)._id_("helper");
  1283. $2=_st($1)._with_(_st("Press ".__comma(_st(self._keyBinder())._activationKeyLabel())).__comma(" to start"));
  1284. return $2;
  1285. }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}))._appendToJQuery_("body"._asJQuery());
  1286. _st((function(){
  1287. return smalltalk.withContext(function($ctx2) {
  1288. return _st("#helper"._asJQuery())._fadeOut_((1000));
  1289. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._valueWithTimeout_((2000));
  1290. return self}, function($ctx1) {$ctx1.fill(self,"renderStart",{},smalltalk.HLKeyBinderHelperWidget)})},
  1291. messageSends: ["remove", "asJQuery", "appendToJQuery:", "id:", "div", "with:", ",", "activationKeyLabel", "keyBinder", "valueWithTimeout:", "fadeOut:"]}),
  1292. smalltalk.HLKeyBinderHelperWidget);
  1293. smalltalk.addMethod(
  1294. smalltalk.method({
  1295. selector: "selectedBinding",
  1296. fn: function (){
  1297. var self=this;
  1298. return smalltalk.withContext(function($ctx1) {
  1299. var $1;
  1300. $1=_st(self._keyBinder())._selectedBinding();
  1301. return $1;
  1302. }, function($ctx1) {$ctx1.fill(self,"selectedBinding",{},smalltalk.HLKeyBinderHelperWidget)})},
  1303. messageSends: ["selectedBinding", "keyBinder"]}),
  1304. smalltalk.HLKeyBinderHelperWidget);
  1305. smalltalk.addMethod(
  1306. smalltalk.method({
  1307. selector: "show",
  1308. fn: function (){
  1309. var self=this;
  1310. return smalltalk.withContext(function($ctx1) {
  1311. self._hideCog();
  1312. self._appendToJQuery_("body"._asJQuery());
  1313. return self}, function($ctx1) {$ctx1.fill(self,"show",{},smalltalk.HLKeyBinderHelperWidget)})},
  1314. messageSends: ["hideCog", "appendToJQuery:", "asJQuery"]}),
  1315. smalltalk.HLKeyBinderHelperWidget);
  1316. smalltalk.addMethod(
  1317. smalltalk.method({
  1318. selector: "showCog",
  1319. fn: function (){
  1320. var self=this;
  1321. return smalltalk.withContext(function($ctx1) {
  1322. _st("#cog-helper"._asJQuery())._show();
  1323. return self}, function($ctx1) {$ctx1.fill(self,"showCog",{},smalltalk.HLKeyBinderHelperWidget)})},
  1324. messageSends: ["show", "asJQuery"]}),
  1325. smalltalk.HLKeyBinderHelperWidget);
  1326. smalltalk.addMethod(
  1327. smalltalk.method({
  1328. selector: "showWidget:",
  1329. fn: function (aWidget){
  1330. var self=this;
  1331. return smalltalk.withContext(function($ctx1) {
  1332. _st(_st("#".__comma(self._mainId()))._asJQuery())._empty();
  1333. _st(aWidget)._appendToJQuery_(_st("#".__comma(self._mainId()))._asJQuery());
  1334. return self}, function($ctx1) {$ctx1.fill(self,"showWidget:",{aWidget:aWidget},smalltalk.HLKeyBinderHelperWidget)})},
  1335. messageSends: ["empty", "asJQuery", ",", "mainId", "appendToJQuery:"]}),
  1336. smalltalk.HLKeyBinderHelperWidget);
  1337. smalltalk.addMethod(
  1338. smalltalk.method({
  1339. selector: "on:",
  1340. fn: function (aKeyBinder){
  1341. var self=this;
  1342. return smalltalk.withContext(function($ctx1) {
  1343. var $2,$3,$1;
  1344. $2=self._new();
  1345. _st($2)._keyBinder_(aKeyBinder);
  1346. $3=_st($2)._yourself();
  1347. $1=$3;
  1348. return $1;
  1349. }, function($ctx1) {$ctx1.fill(self,"on:",{aKeyBinder:aKeyBinder},smalltalk.HLKeyBinderHelperWidget.klass)})},
  1350. messageSends: ["keyBinder:", "new", "yourself"]}),
  1351. smalltalk.HLKeyBinderHelperWidget.klass);
  1352. smalltalk.addClass('HLRepeatedKeyDownHandler', smalltalk.Object, ['repeatInterval', 'delay', 'interval', 'keyBindings', 'widget', 'keyDown'], 'Helios-KeyBindings');
  1353. smalltalk.addMethod(
  1354. smalltalk.method({
  1355. selector: "bindKeys",
  1356. fn: function (){
  1357. var self=this;
  1358. return smalltalk.withContext(function($ctx1) {
  1359. _st(self._widget())._bindKeyDown_keyUp_((function(e){
  1360. return smalltalk.withContext(function($ctx2) {
  1361. return self._handleKeyDown_(e);
  1362. }, function($ctx2) {$ctx2.fillBlock({e:e},$ctx1)})}),(function(e){
  1363. return smalltalk.withContext(function($ctx2) {
  1364. return self._handleKeyUp();
  1365. }, function($ctx2) {$ctx2.fillBlock({e:e},$ctx1)})}));
  1366. return self}, function($ctx1) {$ctx1.fill(self,"bindKeys",{},smalltalk.HLRepeatedKeyDownHandler)})},
  1367. messageSends: ["bindKeyDown:keyUp:", "handleKeyDown:", "handleKeyUp", "widget"]}),
  1368. smalltalk.HLRepeatedKeyDownHandler);
  1369. smalltalk.addMethod(
  1370. smalltalk.method({
  1371. selector: "defaultRepeatInterval",
  1372. fn: function (){
  1373. var self=this;
  1374. return smalltalk.withContext(function($ctx1) {
  1375. return (70);
  1376. }, function($ctx1) {$ctx1.fill(self,"defaultRepeatInterval",{},smalltalk.HLRepeatedKeyDownHandler)})},
  1377. messageSends: []}),
  1378. smalltalk.HLRepeatedKeyDownHandler);
  1379. smalltalk.addMethod(
  1380. smalltalk.method({
  1381. selector: "handleEvent:forKey:action:",
  1382. fn: function (anEvent,anInteger,aBlock){
  1383. var self=this;
  1384. return smalltalk.withContext(function($ctx1) {
  1385. var $1;
  1386. $1=_st(_st(_st(anEvent)._which()).__eq(anInteger))._and_((function(){
  1387. return smalltalk.withContext(function($ctx2) {
  1388. return _st(self._isKeyDown())._not();
  1389. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  1390. if(smalltalk.assert($1)){
  1391. self._whileKeyDownDo_(aBlock);
  1392. };
  1393. return self}, function($ctx1) {$ctx1.fill(self,"handleEvent:forKey:action:",{anEvent:anEvent,anInteger:anInteger,aBlock:aBlock},smalltalk.HLRepeatedKeyDownHandler)})},
  1394. messageSends: ["ifTrue:", "whileKeyDownDo:", "and:", "not", "isKeyDown", "=", "which"]}),
  1395. smalltalk.HLRepeatedKeyDownHandler);
  1396. smalltalk.addMethod(
  1397. smalltalk.method({
  1398. selector: "handleKeyDown:",
  1399. fn: function (anEvent){
  1400. var self=this;
  1401. return smalltalk.withContext(function($ctx1) {
  1402. _st(self._keyBindings())._keysAndValuesDo_((function(key,action){
  1403. return smalltalk.withContext(function($ctx2) {
  1404. return self._handleEvent_forKey_action_(anEvent,key,action);
  1405. }, function($ctx2) {$ctx2.fillBlock({key:key,action:action},$ctx1)})}));
  1406. return self}, function($ctx1) {$ctx1.fill(self,"handleKeyDown:",{anEvent:anEvent},smalltalk.HLRepeatedKeyDownHandler)})},
  1407. messageSends: ["keysAndValuesDo:", "handleEvent:forKey:action:", "keyBindings"]}),
  1408. smalltalk.HLRepeatedKeyDownHandler);
  1409. smalltalk.addMethod(
  1410. smalltalk.method({
  1411. selector: "handleKeyUp",
  1412. fn: function (){
  1413. var self=this;
  1414. return smalltalk.withContext(function($ctx1) {
  1415. var $1,$2,$3;
  1416. $1=self._isKeyDown();
  1417. if(smalltalk.assert($1)){
  1418. self["@keyDown"]=false;
  1419. self["@keyDown"];
  1420. $2=self["@interval"];
  1421. if(($receiver = $2) == nil || $receiver == undefined){
  1422. $2;
  1423. } else {
  1424. _st(self["@interval"])._clearInterval();
  1425. };
  1426. $3=self["@delay"];
  1427. if(($receiver = $3) == nil || $receiver == undefined){
  1428. $3;
  1429. } else {
  1430. _st(self["@delay"])._clearTimeout();
  1431. };
  1432. };
  1433. return self}, function($ctx1) {$ctx1.fill(self,"handleKeyUp",{},smalltalk.HLRepeatedKeyDownHandler)})},
  1434. messageSends: ["ifTrue:", "ifNotNil:", "clearInterval", "clearTimeout", "isKeyDown"]}),
  1435. smalltalk.HLRepeatedKeyDownHandler);
  1436. smalltalk.addMethod(
  1437. smalltalk.method({
  1438. selector: "isKeyDown",
  1439. fn: function (){
  1440. var self=this;
  1441. return smalltalk.withContext(function($ctx1) {
  1442. var $2,$1;
  1443. $2=self["@keyDown"];
  1444. if(($receiver = $2) == nil || $receiver == undefined){
  1445. $1=false;
  1446. } else {
  1447. $1=$2;
  1448. };
  1449. return $1;
  1450. }, function($ctx1) {$ctx1.fill(self,"isKeyDown",{},smalltalk.HLRepeatedKeyDownHandler)})},
  1451. messageSends: ["ifNil:"]}),
  1452. smalltalk.HLRepeatedKeyDownHandler);
  1453. smalltalk.addMethod(
  1454. smalltalk.method({
  1455. selector: "keyBindings",
  1456. fn: function (){
  1457. var self=this;
  1458. function $Dictionary(){return smalltalk.Dictionary||(typeof Dictionary=="undefined"?nil:Dictionary)}
  1459. return smalltalk.withContext(function($ctx1) {
  1460. var $2,$1;
  1461. $2=self["@keyBindings"];
  1462. if(($receiver = $2) == nil || $receiver == undefined){
  1463. self["@keyBindings"]=_st($Dictionary())._new();
  1464. $1=self["@keyBindings"];
  1465. } else {
  1466. $1=$2;
  1467. };
  1468. return $1;
  1469. }, function($ctx1) {$ctx1.fill(self,"keyBindings",{},smalltalk.HLRepeatedKeyDownHandler)})},
  1470. messageSends: ["ifNil:", "new"]}),
  1471. smalltalk.HLRepeatedKeyDownHandler);
  1472. smalltalk.addMethod(
  1473. smalltalk.method({
  1474. selector: "rebindKeys",
  1475. fn: function (){
  1476. var self=this;
  1477. return smalltalk.withContext(function($ctx1) {
  1478. var $1,$2;
  1479. $1=self;
  1480. _st($1)._unbindKeys();
  1481. $2=_st($1)._bindKeys();
  1482. return self}, function($ctx1) {$ctx1.fill(self,"rebindKeys",{},smalltalk.HLRepeatedKeyDownHandler)})},
  1483. messageSends: ["unbindKeys", "bindKeys"]}),
  1484. smalltalk.HLRepeatedKeyDownHandler);
  1485. smalltalk.addMethod(
  1486. smalltalk.method({
  1487. selector: "repeatInterval",
  1488. fn: function (){
  1489. var self=this;
  1490. return smalltalk.withContext(function($ctx1) {
  1491. var $2,$1;
  1492. $2=self["@repeatInterval"];
  1493. if(($receiver = $2) == nil || $receiver == undefined){
  1494. $1=self._defaultRepeatInterval();
  1495. } else {
  1496. $1=$2;
  1497. };
  1498. return $1;
  1499. }, function($ctx1) {$ctx1.fill(self,"repeatInterval",{},smalltalk.HLRepeatedKeyDownHandler)})},
  1500. messageSends: ["ifNil:", "defaultRepeatInterval"]}),
  1501. smalltalk.HLRepeatedKeyDownHandler);
  1502. smalltalk.addMethod(
  1503. smalltalk.method({
  1504. selector: "repeatInterval:",
  1505. fn: function (anInteger){
  1506. var self=this;
  1507. return smalltalk.withContext(function($ctx1) {
  1508. self["@repeatInterval"]=anInteger;
  1509. return self}, function($ctx1) {$ctx1.fill(self,"repeatInterval:",{anInteger:anInteger},smalltalk.HLRepeatedKeyDownHandler)})},
  1510. messageSends: []}),
  1511. smalltalk.HLRepeatedKeyDownHandler);
  1512. smalltalk.addMethod(
  1513. smalltalk.method({
  1514. selector: "startRepeatingAction:",
  1515. fn: function (aBlock){
  1516. var self=this;
  1517. return smalltalk.withContext(function($ctx1) {
  1518. var $2,$1;
  1519. $1=_st((function(){
  1520. return smalltalk.withContext(function($ctx2) {
  1521. $2=_st(self._widget())._hasFocus();
  1522. if(smalltalk.assert($2)){
  1523. return _st(aBlock)._value();
  1524. } else {
  1525. return self._handleKeyUp();
  1526. };
  1527. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._valueWithInterval_(self._repeatInterval());
  1528. return $1;
  1529. }, function($ctx1) {$ctx1.fill(self,"startRepeatingAction:",{aBlock:aBlock},smalltalk.HLRepeatedKeyDownHandler)})},
  1530. messageSends: ["valueWithInterval:", "repeatInterval", "ifTrue:ifFalse:", "value", "handleKeyUp", "hasFocus", "widget"]}),
  1531. smalltalk.HLRepeatedKeyDownHandler);
  1532. smalltalk.addMethod(
  1533. smalltalk.method({
  1534. selector: "unbindKeys",
  1535. fn: function (){
  1536. var self=this;
  1537. return smalltalk.withContext(function($ctx1) {
  1538. _st(self._widget())._unbindKeyDownKeyUp();
  1539. return self}, function($ctx1) {$ctx1.fill(self,"unbindKeys",{},smalltalk.HLRepeatedKeyDownHandler)})},
  1540. messageSends: ["unbindKeyDownKeyUp", "widget"]}),
  1541. smalltalk.HLRepeatedKeyDownHandler);
  1542. smalltalk.addMethod(
  1543. smalltalk.method({
  1544. selector: "whileKeyDown:do:",
  1545. fn: function (aKey,aBlock){
  1546. var self=this;
  1547. return smalltalk.withContext(function($ctx1) {
  1548. _st(self._keyBindings())._at_put_(aKey,aBlock);
  1549. return self}, function($ctx1) {$ctx1.fill(self,"whileKeyDown:do:",{aKey:aKey,aBlock:aBlock},smalltalk.HLRepeatedKeyDownHandler)})},
  1550. messageSends: ["at:put:", "keyBindings"]}),
  1551. smalltalk.HLRepeatedKeyDownHandler);
  1552. smalltalk.addMethod(
  1553. smalltalk.method({
  1554. selector: "whileKeyDownDo:",
  1555. fn: function (aBlock){
  1556. var self=this;
  1557. return smalltalk.withContext(function($ctx1) {
  1558. self["@keyDown"]=true;
  1559. _st(aBlock)._value();
  1560. self["@delay"]=_st((function(){
  1561. return smalltalk.withContext(function($ctx2) {
  1562. self["@interval"]=self._startRepeatingAction_(aBlock);
  1563. return self["@interval"];
  1564. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._valueWithTimeout_((300));
  1565. return self}, function($ctx1) {$ctx1.fill(self,"whileKeyDownDo:",{aBlock:aBlock},smalltalk.HLRepeatedKeyDownHandler)})},
  1566. messageSends: ["value", "valueWithTimeout:", "startRepeatingAction:"]}),
  1567. smalltalk.HLRepeatedKeyDownHandler);
  1568. smalltalk.addMethod(
  1569. smalltalk.method({
  1570. selector: "widget",
  1571. fn: function (){
  1572. var self=this;
  1573. return smalltalk.withContext(function($ctx1) {
  1574. var $1;
  1575. $1=self["@widget"];
  1576. return $1;
  1577. }, function($ctx1) {$ctx1.fill(self,"widget",{},smalltalk.HLRepeatedKeyDownHandler)})},
  1578. messageSends: []}),
  1579. smalltalk.HLRepeatedKeyDownHandler);
  1580. smalltalk.addMethod(
  1581. smalltalk.method({
  1582. selector: "widget:",
  1583. fn: function (aWidget){
  1584. var self=this;
  1585. return smalltalk.withContext(function($ctx1) {
  1586. self["@widget"]=aWidget;
  1587. return self}, function($ctx1) {$ctx1.fill(self,"widget:",{aWidget:aWidget},smalltalk.HLRepeatedKeyDownHandler)})},
  1588. messageSends: []}),
  1589. smalltalk.HLRepeatedKeyDownHandler);
  1590. smalltalk.addMethod(
  1591. smalltalk.method({
  1592. selector: "on:",
  1593. fn: function (aWidget){
  1594. var self=this;
  1595. return smalltalk.withContext(function($ctx1) {
  1596. var $2,$3,$1;
  1597. $2=self._new();
  1598. _st($2)._widget_(aWidget);
  1599. $3=_st($2)._yourself();
  1600. $1=$3;
  1601. return $1;
  1602. }, function($ctx1) {$ctx1.fill(self,"on:",{aWidget:aWidget},smalltalk.HLRepeatedKeyDownHandler.klass)})},
  1603. messageSends: ["widget:", "new", "yourself"]}),
  1604. smalltalk.HLRepeatedKeyDownHandler.klass);
  1605. })(global_smalltalk,global_nil,global__st);