Helios-KeyBindings.deploy.js 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144
  1. smalltalk.addPackage('Helios-KeyBindings');
  2. smalltalk.addClass('HLBinding', smalltalk.Object, ['key', 'label', 'each'], 'Helios-KeyBindings');
  3. smalltalk.addMethod(
  4. "_applyOn_",
  5. smalltalk.method({
  6. selector: "applyOn:",
  7. fn: function (aKeyBinder){
  8. var self=this;
  9. return smalltalk.withContext(function($ctx1) { _st(self)._subclassResponsibility();
  10. return self}, function($ctx1) {$ctx1.fill(self,"applyOn:",{aKeyBinder:aKeyBinder}, smalltalk.HLBinding)})},
  11. messageSends: ["subclassResponsibility"]}),
  12. smalltalk.HLBinding);
  13. smalltalk.addMethod(
  14. "_displayLabel",
  15. smalltalk.method({
  16. selector: "displayLabel",
  17. fn: function (){
  18. var self=this;
  19. return smalltalk.withContext(function($ctx1) { var $1;
  20. $1=_st(self)._label();
  21. return $1;
  22. }, function($ctx1) {$ctx1.fill(self,"displayLabel",{}, smalltalk.HLBinding)})},
  23. messageSends: ["label"]}),
  24. smalltalk.HLBinding);
  25. smalltalk.addMethod(
  26. "_isActive",
  27. smalltalk.method({
  28. selector: "isActive",
  29. fn: function (){
  30. var self=this;
  31. return smalltalk.withContext(function($ctx1) { var $1;
  32. $1=_st(self)._subclassResponsibility();
  33. return $1;
  34. }, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLBinding)})},
  35. messageSends: ["subclassResponsibility"]}),
  36. smalltalk.HLBinding);
  37. smalltalk.addMethod(
  38. "_isBindingAction",
  39. smalltalk.method({
  40. selector: "isBindingAction",
  41. fn: function (){
  42. var self=this;
  43. return smalltalk.withContext(function($ctx1) { return false;
  44. }, function($ctx1) {$ctx1.fill(self,"isBindingAction",{}, smalltalk.HLBinding)})},
  45. messageSends: []}),
  46. smalltalk.HLBinding);
  47. smalltalk.addMethod(
  48. "_isBindingGroup",
  49. smalltalk.method({
  50. selector: "isBindingGroup",
  51. fn: function (){
  52. var self=this;
  53. return smalltalk.withContext(function($ctx1) { return false;
  54. }, function($ctx1) {$ctx1.fill(self,"isBindingGroup",{}, smalltalk.HLBinding)})},
  55. messageSends: []}),
  56. smalltalk.HLBinding);
  57. smalltalk.addMethod(
  58. "_key",
  59. smalltalk.method({
  60. selector: "key",
  61. fn: function (){
  62. var self=this;
  63. return smalltalk.withContext(function($ctx1) { var $1;
  64. $1=self["@key"];
  65. return $1;
  66. }, function($ctx1) {$ctx1.fill(self,"key",{}, smalltalk.HLBinding)})},
  67. messageSends: []}),
  68. smalltalk.HLBinding);
  69. smalltalk.addMethod(
  70. "_key_",
  71. smalltalk.method({
  72. selector: "key:",
  73. fn: function (anInteger){
  74. var self=this;
  75. return smalltalk.withContext(function($ctx1) { self["@key"]=anInteger;
  76. return self}, function($ctx1) {$ctx1.fill(self,"key:",{anInteger:anInteger}, smalltalk.HLBinding)})},
  77. messageSends: []}),
  78. smalltalk.HLBinding);
  79. smalltalk.addMethod(
  80. "_label",
  81. smalltalk.method({
  82. selector: "label",
  83. fn: function (){
  84. var self=this;
  85. return smalltalk.withContext(function($ctx1) { var $1;
  86. $1=self["@label"];
  87. return $1;
  88. }, function($ctx1) {$ctx1.fill(self,"label",{}, smalltalk.HLBinding)})},
  89. messageSends: []}),
  90. smalltalk.HLBinding);
  91. smalltalk.addMethod(
  92. "_label_",
  93. smalltalk.method({
  94. selector: "label:",
  95. fn: function (aString){
  96. var self=this;
  97. return smalltalk.withContext(function($ctx1) { self["@label"]=aString;
  98. return self}, function($ctx1) {$ctx1.fill(self,"label:",{aString:aString}, smalltalk.HLBinding)})},
  99. messageSends: []}),
  100. smalltalk.HLBinding);
  101. smalltalk.addMethod(
  102. "_renderBindingOn_actionOn_",
  103. smalltalk.method({
  104. selector: "renderBindingOn:actionOn:",
  105. fn: function (html,aBinder){
  106. var self=this;
  107. return smalltalk.withContext(function($ctx1) { var $1,$3,$4,$5,$6,$2;
  108. $1=_st(html)._span();
  109. _st($1)._class_("command");
  110. $2=_st($1)._with_((function(){
  111. return smalltalk.withContext(function($ctx2) { $3=_st(html)._span();
  112. _st($3)._class_("label");
  113. $4=_st($3)._with_(_st(_st(self)._shortcut())._asLowercase());
  114. $4;
  115. $5=_st(html)._a();
  116. _st($5)._class_("action");
  117. _st($5)._with_(_st(self)._displayLabel());
  118. $6=_st($5)._onClick_((function(){
  119. return smalltalk.withContext(function($ctx3) { return _st(aBinder)._applyBinding_(self);
  120. }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
  121. return $6;
  122. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  123. return self}, function($ctx1) {$ctx1.fill(self,"renderBindingOn:actionOn:",{html:html,aBinder:aBinder},smalltalk.HLBinding)})},
  124. messageSends: ["class:", "span", "with:", "asLowercase", "shortcut", "a", "displayLabel", "onClick:", "applyBinding:"]}),
  125. smalltalk.HLBinding);
  126. smalltalk.addMethod(
  127. "_renderOn_html_",
  128. smalltalk.method({
  129. selector: "renderOn:html:",
  130. fn: function (aBindingHelper,html){
  131. var self=this;
  132. return smalltalk.withContext(function($ctx1) { return self}, function($ctx1) {$ctx1.fill(self,"renderOn:html:",{aBindingHelper:aBindingHelper,html:html}, smalltalk.HLBinding)})},
  133. messageSends: []}),
  134. smalltalk.HLBinding);
  135. smalltalk.addMethod(
  136. "_shortcut",
  137. smalltalk.method({
  138. selector: "shortcut",
  139. fn: function (){
  140. var self=this;
  141. return smalltalk.withContext(function($ctx1) { var $1;
  142. $1=_st((smalltalk.String || String))._fromCharCode_(_st(self)._key());
  143. return $1;
  144. }, function($ctx1) {$ctx1.fill(self,"shortcut",{}, smalltalk.HLBinding)})},
  145. messageSends: ["fromCharCode:", "key"]}),
  146. smalltalk.HLBinding);
  147. smalltalk.addMethod(
  148. "_on_labelled_",
  149. smalltalk.method({
  150. selector: "on:labelled:",
  151. fn: function (anInteger,aString){
  152. var self=this;
  153. return smalltalk.withContext(function($ctx1) { var $2,$3,$1;
  154. $2=_st(self)._new();
  155. _st($2)._key_(anInteger);
  156. _st($2)._label_(aString);
  157. $3=_st($2)._yourself();
  158. $1=$3;
  159. return $1;
  160. }, function($ctx1) {$ctx1.fill(self,"on:labelled:",{anInteger:anInteger,aString:aString}, smalltalk.HLBinding.klass)})},
  161. messageSends: ["key:", "new", "label:", "yourself"]}),
  162. smalltalk.HLBinding.klass);
  163. smalltalk.addClass('HLBindingAction', smalltalk.HLBinding, ['callback', 'activeBlock'], 'Helios-KeyBindings');
  164. smalltalk.addMethod(
  165. "_activeBlock",
  166. smalltalk.method({
  167. selector: "activeBlock",
  168. fn: function (){
  169. var self=this;
  170. return smalltalk.withContext(function($ctx1) { var $2,$1;
  171. $2=self["@activeBlock"];
  172. if(($receiver = $2) == nil || $receiver == undefined){
  173. self["@activeBlock"]=(function(){
  174. return smalltalk.withContext(function($ctx2) { return true;
  175. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
  176. $1=self["@activeBlock"];
  177. } else {
  178. $1=$2;
  179. };
  180. return $1;
  181. }, function($ctx1) {$ctx1.fill(self,"activeBlock",{},smalltalk.HLBindingAction)})},
  182. messageSends: ["ifNil:"]}),
  183. smalltalk.HLBindingAction);
  184. smalltalk.addMethod(
  185. "_activeBlock_",
  186. smalltalk.method({
  187. selector: "activeBlock:",
  188. fn: function (aBlock){
  189. var self=this;
  190. return smalltalk.withContext(function($ctx1) { self["@activeBlock"]=aBlock;
  191. return self}, function($ctx1) {$ctx1.fill(self,"activeBlock:",{aBlock:aBlock},smalltalk.HLBindingAction)})},
  192. messageSends: []}),
  193. smalltalk.HLBindingAction);
  194. smalltalk.addMethod(
  195. "_applyOn_",
  196. smalltalk.method({
  197. selector: "applyOn:",
  198. fn: function (aKeyBinder){
  199. var self=this;
  200. return smalltalk.withContext(function($ctx1) { var $1,$2;
  201. $1=_st(self)._isActive();
  202. if(! smalltalk.assert($1)){
  203. $2=self;
  204. return $2;
  205. };
  206. _st(aKeyBinder)._applyBindingAction_(self);
  207. return self}, function($ctx1) {$ctx1.fill(self,"applyOn:",{aKeyBinder:aKeyBinder},smalltalk.HLBindingAction)})},
  208. messageSends: ["ifFalse:", "isActive", "applyBindingAction:"]}),
  209. smalltalk.HLBindingAction);
  210. smalltalk.addMethod(
  211. "_callback",
  212. smalltalk.method({
  213. selector: "callback",
  214. fn: function (){
  215. var self=this;
  216. return smalltalk.withContext(function($ctx1) { var $1;
  217. $1=self["@callback"];
  218. return $1;
  219. }, function($ctx1) {$ctx1.fill(self,"callback",{}, smalltalk.HLBindingAction)})},
  220. messageSends: []}),
  221. smalltalk.HLBindingAction);
  222. smalltalk.addMethod(
  223. "_callback_",
  224. smalltalk.method({
  225. selector: "callback:",
  226. fn: function (aBlock){
  227. var self=this;
  228. return smalltalk.withContext(function($ctx1) { self["@callback"]=aBlock;
  229. return self}, function($ctx1) {$ctx1.fill(self,"callback:",{aBlock:aBlock}, smalltalk.HLBindingAction)})},
  230. messageSends: []}),
  231. smalltalk.HLBindingAction);
  232. smalltalk.addMethod(
  233. "_isActive",
  234. smalltalk.method({
  235. selector: "isActive",
  236. fn: function (){
  237. var self=this;
  238. return smalltalk.withContext(function($ctx1) { var $1;
  239. $1=_st(_st(self)._activeBlock())._value();
  240. return $1;
  241. }, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLBindingAction)})},
  242. messageSends: ["value", "activeBlock"]}),
  243. smalltalk.HLBindingAction);
  244. smalltalk.addMethod(
  245. "_isBindingAction",
  246. smalltalk.method({
  247. selector: "isBindingAction",
  248. fn: function (){
  249. var self=this;
  250. return smalltalk.withContext(function($ctx1) { return true;
  251. }, function($ctx1) {$ctx1.fill(self,"isBindingAction",{}, smalltalk.HLBindingAction)})},
  252. messageSends: []}),
  253. smalltalk.HLBindingAction);
  254. smalltalk.addMethod(
  255. "_on_labelled_activeBlock_",
  256. smalltalk.method({
  257. selector: "on:labelled:activeBlock:",
  258. fn: function (anInteger,aString,aBlock){
  259. var self=this;
  260. var instance;
  261. return smalltalk.withContext(function($ctx1) { var $2,$3,$1;
  262. instance=smalltalk.HLBinding.klass.fn.prototype._on_labelled_.apply(_st(self), [anInteger,aString]);
  263. $2=instance;
  264. _st($2)._activeBlock_(aBlock);
  265. $3=_st($2)._yourself();
  266. $1=$3;
  267. return $1;
  268. }, function($ctx1) {$ctx1.fill(self,"on:labelled:activeBlock:",{anInteger:anInteger,aString:aString,aBlock:aBlock,instance:instance},smalltalk.HLBindingAction.klass)})},
  269. messageSends: ["on:labelled:", "activeBlock:", "yourself"]}),
  270. smalltalk.HLBindingAction.klass);
  271. smalltalk.addClass('HLBindingInput', smalltalk.HLBindingAction, ['input'], 'Helios-KeyBindings');
  272. smalltalk.addMethod(
  273. "_applyOn_",
  274. smalltalk.method({
  275. selector: "applyOn:",
  276. fn: function (aBinder){
  277. var self=this;
  278. return smalltalk.withContext(function($ctx1) { var $1,$2;
  279. $1=_st(self)._isActive();
  280. if(! smalltalk.assert($1)){
  281. $2=self;
  282. return $2;
  283. };
  284. _st(aBinder)._applyBindingInput_with_(self,_st(self)._input());
  285. return self}, function($ctx1) {$ctx1.fill(self,"applyOn:",{aBinder:aBinder},smalltalk.HLBindingInput)})},
  286. messageSends: ["ifFalse:", "isActive", "applyBindingInput:with:", "input"]}),
  287. smalltalk.HLBindingInput);
  288. smalltalk.addMethod(
  289. "_input",
  290. smalltalk.method({
  291. selector: "input",
  292. fn: function (){
  293. var self=this;
  294. return smalltalk.withContext(function($ctx1) { var $1;
  295. $1=_st(_st(self["@input"])._asJQuery())._val();
  296. return $1;
  297. }, function($ctx1) {$ctx1.fill(self,"input",{},smalltalk.HLBindingInput)})},
  298. messageSends: ["val", "asJQuery"]}),
  299. smalltalk.HLBindingInput);
  300. smalltalk.addMethod(
  301. "_renderBindingOn_actionOn_",
  302. smalltalk.method({
  303. selector: "renderBindingOn:actionOn:",
  304. fn: function (html,aBinder){
  305. var self=this;
  306. return smalltalk.withContext(function($ctx1) { var $1,$3,$4,$2;
  307. $1=_st(html)._span();
  308. _st($1)._class_("command");
  309. $2=_st($1)._with_((function(){
  310. return smalltalk.withContext(function($ctx2) { $3=_st(html)._input();
  311. _st($3)._class_("search-query");
  312. $4=_st($3)._placeholder_(_st(self)._displayLabel());
  313. self["@input"]=$4;
  314. return self["@input"];
  315. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  316. _st(_st(self["@input"])._asJQuery())._focus();
  317. return self}, function($ctx1) {$ctx1.fill(self,"renderBindingOn:actionOn:",{html:html,aBinder:aBinder},smalltalk.HLBindingInput)})},
  318. messageSends: ["class:", "span", "with:", "input", "placeholder:", "displayLabel", "focus", "asJQuery"]}),
  319. smalltalk.HLBindingInput);
  320. smalltalk.addClass('HLBindingGroup', smalltalk.HLBinding, ['bindings'], 'Helios-KeyBindings');
  321. smalltalk.addMethod(
  322. "_activeBindings",
  323. smalltalk.method({
  324. selector: "activeBindings",
  325. fn: function (){
  326. var self=this;
  327. return smalltalk.withContext(function($ctx1) { var $1;
  328. $1=_st(_st(self)._bindings())._select_((function(each){
  329. return smalltalk.withContext(function($ctx2) { return _st(each)._isActive();
  330. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
  331. return $1;
  332. }, function($ctx1) {$ctx1.fill(self,"activeBindings",{},smalltalk.HLBindingGroup)})},
  333. messageSends: ["select:", "isActive", "bindings"]}),
  334. smalltalk.HLBindingGroup);
  335. smalltalk.addMethod(
  336. "_add_",
  337. smalltalk.method({
  338. selector: "add:",
  339. fn: function (aBinding){
  340. var self=this;
  341. return smalltalk.withContext(function($ctx1) { var $1;
  342. $1=_st(_st(self)._bindings())._add_(aBinding);
  343. return $1;
  344. }, function($ctx1) {$ctx1.fill(self,"add:",{aBinding:aBinding}, smalltalk.HLBindingGroup)})},
  345. messageSends: ["add:", "bindings"]}),
  346. smalltalk.HLBindingGroup);
  347. smalltalk.addMethod(
  348. "_addActionKey_labelled_callback_",
  349. smalltalk.method({
  350. selector: "addActionKey:labelled:callback:",
  351. fn: function (anInteger,aString,aBlock){
  352. var self=this;
  353. return smalltalk.withContext(function($ctx1) { var $1,$2;
  354. $1=_st((smalltalk.HLBindingAction || HLBindingAction))._on_labelled_(anInteger,aString);
  355. _st($1)._callback_(aBlock);
  356. $2=_st($1)._yourself();
  357. _st(self)._add_($2);
  358. return self}, function($ctx1) {$ctx1.fill(self,"addActionKey:labelled:callback:",{anInteger:anInteger,aString:aString,aBlock:aBlock}, smalltalk.HLBindingGroup)})},
  359. messageSends: ["add:", "callback:", "on:labelled:", "yourself"]}),
  360. smalltalk.HLBindingGroup);
  361. smalltalk.addMethod(
  362. "_addActionKey_labelled_command_",
  363. smalltalk.method({
  364. selector: "addActionKey:labelled:command:",
  365. fn: function (anInteger,aString,aCommand){
  366. var self=this;
  367. return smalltalk.withContext(function($ctx1) { var $1,$2;
  368. $1=_st((smalltalk.HLBindingAction || HLBindingAction))._on_labelled_(anInteger,aString);
  369. _st($1)._command_(aCommand);
  370. $2=_st($1)._yourself();
  371. _st(self)._add_($2);
  372. return self}, function($ctx1) {$ctx1.fill(self,"addActionKey:labelled:command:",{anInteger:anInteger,aString:aString,aCommand:aCommand}, smalltalk.HLBindingGroup)})},
  373. messageSends: ["add:", "command:", "on:labelled:", "yourself"]}),
  374. smalltalk.HLBindingGroup);
  375. smalltalk.addMethod(
  376. "_addGroupKey_labelled_",
  377. smalltalk.method({
  378. selector: "addGroupKey:labelled:",
  379. fn: function (anInteger,aString){
  380. var self=this;
  381. return smalltalk.withContext(function($ctx1) { _st(self)._add_(_st((smalltalk.HLBindingGroup || HLBindingGroup))._on_labelled_(anInteger,aString));
  382. return self}, function($ctx1) {$ctx1.fill(self,"addGroupKey:labelled:",{anInteger:anInteger,aString:aString}, smalltalk.HLBindingGroup)})},
  383. messageSends: ["add:", "on:labelled:"]}),
  384. smalltalk.HLBindingGroup);
  385. smalltalk.addMethod(
  386. "_applyOn_",
  387. smalltalk.method({
  388. selector: "applyOn:",
  389. fn: function (aKeyBinder){
  390. var self=this;
  391. return smalltalk.withContext(function($ctx1) { var $1,$2;
  392. $1=_st(self)._isActive();
  393. if(! smalltalk.assert($1)){
  394. $2=self;
  395. return $2;
  396. };
  397. _st(aKeyBinder)._applyBindingGroup_(self);
  398. return self}, function($ctx1) {$ctx1.fill(self,"applyOn:",{aKeyBinder:aKeyBinder},smalltalk.HLBindingGroup)})},
  399. messageSends: ["ifFalse:", "isActive", "applyBindingGroup:"]}),
  400. smalltalk.HLBindingGroup);
  401. smalltalk.addMethod(
  402. "_at_",
  403. smalltalk.method({
  404. selector: "at:",
  405. fn: function (aString){
  406. var self=this;
  407. return smalltalk.withContext(function($ctx1) { var $1;
  408. $1=_st(_st(self)._bindings())._detect_ifNone_((function(each){
  409. return smalltalk.withContext(function($ctx2) { return _st(_st(each)._label()).__eq(aString);
  410. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
  411. return smalltalk.withContext(function($ctx2) { return nil;
  412. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  413. return $1;
  414. }, function($ctx1) {$ctx1.fill(self,"at:",{aString:aString}, smalltalk.HLBindingGroup)})},
  415. messageSends: ["detect:ifNone:", "=", "label", "bindings"]}),
  416. smalltalk.HLBindingGroup);
  417. smalltalk.addMethod(
  418. "_at_add_",
  419. smalltalk.method({
  420. selector: "at:add:",
  421. fn: function (aString,aBinding){
  422. var self=this;
  423. var binding;
  424. return smalltalk.withContext(function($ctx1) { var $1,$2;
  425. binding=_st(self)._at_(aString);
  426. $1=binding;
  427. if(($receiver = $1) == nil || $receiver == undefined){
  428. $2=self;
  429. return $2;
  430. } else {
  431. $1;
  432. };
  433. _st(binding)._add_(aBinding);
  434. return self}, function($ctx1) {$ctx1.fill(self,"at:add:",{aString:aString,aBinding:aBinding,binding:binding},smalltalk.HLBindingGroup)})},
  435. messageSends: ["at:", "ifNil:", "add:"]}),
  436. smalltalk.HLBindingGroup);
  437. smalltalk.addMethod(
  438. "_atKey_",
  439. smalltalk.method({
  440. selector: "atKey:",
  441. fn: function (anInteger){
  442. var self=this;
  443. return smalltalk.withContext(function($ctx1) { var $1;
  444. $1=_st(_st(self)._bindings())._detect_ifNone_((function(each){
  445. return smalltalk.withContext(function($ctx2) { return _st(_st(each)._key()).__eq(anInteger);
  446. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
  447. return smalltalk.withContext(function($ctx2) { return nil;
  448. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  449. return $1;
  450. }, function($ctx1) {$ctx1.fill(self,"atKey:",{anInteger:anInteger}, smalltalk.HLBindingGroup)})},
  451. messageSends: ["detect:ifNone:", "=", "key", "bindings"]}),
  452. smalltalk.HLBindingGroup);
  453. smalltalk.addMethod(
  454. "_bindings",
  455. smalltalk.method({
  456. selector: "bindings",
  457. fn: function (){
  458. var self=this;
  459. return smalltalk.withContext(function($ctx1) { var $2,$1;
  460. $2=self["@bindings"];
  461. if(($receiver = $2) == nil || $receiver == undefined){
  462. self["@bindings"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
  463. $1=self["@bindings"];
  464. } else {
  465. $1=$2;
  466. };
  467. return $1;
  468. }, function($ctx1) {$ctx1.fill(self,"bindings",{}, smalltalk.HLBindingGroup)})},
  469. messageSends: ["ifNil:", "new"]}),
  470. smalltalk.HLBindingGroup);
  471. smalltalk.addMethod(
  472. "_displayLabel",
  473. smalltalk.method({
  474. selector: "displayLabel",
  475. fn: function (){
  476. var self=this;
  477. return smalltalk.withContext(function($ctx1) { var $1;
  478. $1=_st(smalltalk.HLBinding.fn.prototype._displayLabel.apply(_st(self), [])).__comma("...");
  479. return $1;
  480. }, function($ctx1) {$ctx1.fill(self,"displayLabel",{}, smalltalk.HLBindingGroup)})},
  481. messageSends: [",", "displayLabel"]}),
  482. smalltalk.HLBindingGroup);
  483. smalltalk.addMethod(
  484. "_isActive",
  485. smalltalk.method({
  486. selector: "isActive",
  487. fn: function (){
  488. var self=this;
  489. return smalltalk.withContext(function($ctx1) { var $1;
  490. $1=_st(_st(self)._activeBindings())._notEmpty();
  491. return $1;
  492. }, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLBindingGroup)})},
  493. messageSends: ["notEmpty", "activeBindings"]}),
  494. smalltalk.HLBindingGroup);
  495. smalltalk.addMethod(
  496. "_isBindingGroup",
  497. smalltalk.method({
  498. selector: "isBindingGroup",
  499. fn: function (){
  500. var self=this;
  501. return smalltalk.withContext(function($ctx1) { return true;
  502. }, function($ctx1) {$ctx1.fill(self,"isBindingGroup",{}, smalltalk.HLBindingGroup)})},
  503. messageSends: []}),
  504. smalltalk.HLBindingGroup);
  505. smalltalk.addMethod(
  506. "_renderOn_html_",
  507. smalltalk.method({
  508. selector: "renderOn:html:",
  509. fn: function (aBindingHelper,html){
  510. var self=this;
  511. return smalltalk.withContext(function($ctx1) { var $1;
  512. $1=_st(self)._isActive();
  513. if(smalltalk.assert($1)){
  514. _st(aBindingHelper)._renderBindingGroup_on_(self,html);
  515. };
  516. return self}, function($ctx1) {$ctx1.fill(self,"renderOn:html:",{aBindingHelper:aBindingHelper,html:html},smalltalk.HLBindingGroup)})},
  517. messageSends: ["ifTrue:", "renderBindingGroup:on:", "isActive"]}),
  518. smalltalk.HLBindingGroup);
  519. smalltalk.addClass('HLKeyBinder', smalltalk.Object, ['modifierKey', 'helper', 'bindings', 'selectedBinding'], 'Helios-KeyBindings');
  520. smalltalk.addMethod(
  521. "_activate",
  522. smalltalk.method({
  523. selector: "activate",
  524. fn: function (){
  525. var self=this;
  526. return smalltalk.withContext(function($ctx1) { _st(_st(self)._helper())._show();
  527. return self}, function($ctx1) {$ctx1.fill(self,"activate",{},smalltalk.HLKeyBinder)})},
  528. messageSends: ["show", "helper"]}),
  529. smalltalk.HLKeyBinder);
  530. smalltalk.addMethod(
  531. "_activationKey",
  532. smalltalk.method({
  533. selector: "activationKey",
  534. fn: function (){
  535. var self=this;
  536. return smalltalk.withContext(function($ctx1) { return (32);
  537. }, function($ctx1) {$ctx1.fill(self,"activationKey",{}, smalltalk.HLKeyBinder)})},
  538. messageSends: []}),
  539. smalltalk.HLKeyBinder);
  540. smalltalk.addMethod(
  541. "_activationKeyLabel",
  542. smalltalk.method({
  543. selector: "activationKeyLabel",
  544. fn: function (){
  545. var self=this;
  546. return smalltalk.withContext(function($ctx1) { return "ctrl + space";
  547. }, function($ctx1) {$ctx1.fill(self,"activationKeyLabel",{}, smalltalk.HLKeyBinder)})},
  548. messageSends: []}),
  549. smalltalk.HLKeyBinder);
  550. smalltalk.addMethod(
  551. "_applyBinding_",
  552. smalltalk.method({
  553. selector: "applyBinding:",
  554. fn: function (aBinding){
  555. var self=this;
  556. return smalltalk.withContext(function($ctx1) { _st(aBinding)._applyOn_(self);
  557. return self}, function($ctx1) {$ctx1.fill(self,"applyBinding:",{aBinding:aBinding}, smalltalk.HLKeyBinder)})},
  558. messageSends: ["applyOn:"]}),
  559. smalltalk.HLKeyBinder);
  560. smalltalk.addMethod(
  561. "_applyBindingAction_",
  562. smalltalk.method({
  563. selector: "applyBindingAction:",
  564. fn: function (aBinding){
  565. var self=this;
  566. return smalltalk.withContext(function($ctx1) { _st(_st(aBinding)._callback())._value();
  567. _st(self)._deactivate();
  568. return self}, function($ctx1) {$ctx1.fill(self,"applyBindingAction:",{aBinding:aBinding}, smalltalk.HLKeyBinder)})},
  569. messageSends: ["value", "callback", "deactivate"]}),
  570. smalltalk.HLKeyBinder);
  571. smalltalk.addMethod(
  572. "_applyBindingGroup_",
  573. smalltalk.method({
  574. selector: "applyBindingGroup:",
  575. fn: function (aBinding){
  576. var self=this;
  577. return smalltalk.withContext(function($ctx1) { self["@selectedBinding"]=aBinding;
  578. _st(_st(self)._helper())._refresh();
  579. return self}, function($ctx1) {$ctx1.fill(self,"applyBindingGroup:",{aBinding:aBinding}, smalltalk.HLKeyBinder)})},
  580. messageSends: ["refresh", "helper"]}),
  581. smalltalk.HLKeyBinder);
  582. smalltalk.addMethod(
  583. "_applyBindingInput_with_",
  584. smalltalk.method({
  585. selector: "applyBindingInput:with:",
  586. fn: function (aBinding,value){
  587. var self=this;
  588. return smalltalk.withContext(function($ctx1) { _st(_st(aBinding)._callback())._value_(value);
  589. _st(self)._deactivate();
  590. return self}, function($ctx1) {$ctx1.fill(self,"applyBindingInput:with:",{aBinding:aBinding,value:value},smalltalk.HLKeyBinder)})},
  591. messageSends: ["value:", "callback", "deactivate"]}),
  592. smalltalk.HLKeyBinder);
  593. smalltalk.addMethod(
  594. "_bindings",
  595. smalltalk.method({
  596. selector: "bindings",
  597. fn: function (){
  598. var self=this;
  599. return smalltalk.withContext(function($ctx1) { var $2,$1;
  600. $2=self["@bindings"];
  601. if(($receiver = $2) == nil || $receiver == undefined){
  602. self["@bindings"]=_st(self)._defaultBindings();
  603. $1=self["@bindings"];
  604. } else {
  605. $1=$2;
  606. };
  607. return $1;
  608. }, function($ctx1) {$ctx1.fill(self,"bindings",{},smalltalk.HLKeyBinder)})},
  609. messageSends: ["ifNil:", "defaultBindings"]}),
  610. smalltalk.HLKeyBinder);
  611. smalltalk.addMethod(
  612. "_deactivate",
  613. smalltalk.method({
  614. selector: "deactivate",
  615. fn: function (){
  616. var self=this;
  617. return smalltalk.withContext(function($ctx1) { self["@selectedBinding"]=nil;
  618. _st(_st(self)._helper())._hide();
  619. return self}, function($ctx1) {$ctx1.fill(self,"deactivate",{},smalltalk.HLKeyBinder)})},
  620. messageSends: ["hide", "helper"]}),
  621. smalltalk.HLKeyBinder);
  622. smalltalk.addMethod(
  623. "_defaultBindings",
  624. smalltalk.method({
  625. selector: "defaultBindings",
  626. fn: function (){
  627. var self=this;
  628. var group;
  629. return smalltalk.withContext(function($ctx1) { var $1,$2,$3;
  630. $1=_st((smalltalk.HLBindingGroup || HLBindingGroup))._new();
  631. _st($1)._addGroupKey_labelled_((86),"View");
  632. _st($1)._add_(_st(_st((smalltalk.HLCloseTabCommand || HLCloseTabCommand))._new())._asBinding());
  633. $2=_st($1)._yourself();
  634. group=$2;
  635. _st((smalltalk.HLOpenCommand || HLOpenCommand))._registerConcreteClassesOn_(group);
  636. $3=group;
  637. return $3;
  638. }, function($ctx1) {$ctx1.fill(self,"defaultBindings",{group:group},smalltalk.HLKeyBinder)})},
  639. messageSends: ["addGroupKey:labelled:", "new", "add:", "asBinding", "yourself", "registerConcreteClassesOn:"]}),
  640. smalltalk.HLKeyBinder);
  641. smalltalk.addMethod(
  642. "_escapeKey",
  643. smalltalk.method({
  644. selector: "escapeKey",
  645. fn: function (){
  646. var self=this;
  647. return smalltalk.withContext(function($ctx1) { return (27);
  648. }, function($ctx1) {$ctx1.fill(self,"escapeKey",{}, smalltalk.HLKeyBinder)})},
  649. messageSends: []}),
  650. smalltalk.HLKeyBinder);
  651. smalltalk.addMethod(
  652. "_flushBindings",
  653. smalltalk.method({
  654. selector: "flushBindings",
  655. fn: function (){
  656. var self=this;
  657. return smalltalk.withContext(function($ctx1) { self["@bindings"]=nil;
  658. return self}, function($ctx1) {$ctx1.fill(self,"flushBindings",{}, smalltalk.HLKeyBinder)})},
  659. messageSends: []}),
  660. smalltalk.HLKeyBinder);
  661. smalltalk.addMethod(
  662. "_handleActiveKeyDown_",
  663. smalltalk.method({
  664. selector: "handleActiveKeyDown:",
  665. fn: function (event){
  666. var self=this;
  667. return smalltalk.withContext(function($ctx1) { var $1,$2;
  668. $1=_st(_st(_st(event)._which()).__eq(_st(self)._escapeKey()))._or_((function(){
  669. return smalltalk.withContext(function($ctx2) { return _st(_st(_st(event)._which()).__eq((71)))._and_((function(){
  670. return smalltalk.withContext(function($ctx3) { return _st(event)._ctrlKey();
  671. }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
  672. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  673. if(smalltalk.assert($1)){
  674. _st(self)._deactivate();
  675. _st(event)._preventDefault();
  676. return false;
  677. };
  678. $2=_st(self)._handleBindingFor_(event);
  679. return $2;
  680. }, function($ctx1) {$ctx1.fill(self,"handleActiveKeyDown:",{event:event}, smalltalk.HLKeyBinder)})},
  681. messageSends: ["ifTrue:", "deactivate", "preventDefault", "or:", "and:", "ctrlKey", "=", "which", "escapeKey", "handleBindingFor:"]}),
  682. smalltalk.HLKeyBinder);
  683. smalltalk.addMethod(
  684. "_handleBindingFor_",
  685. smalltalk.method({
  686. selector: "handleBindingFor:",
  687. fn: function (anEvent){
  688. var self=this;
  689. var binding;
  690. return smalltalk.withContext(function($ctx1) { var $1;
  691. binding=_st(_st(self)._selectedBinding())._atKey_(_st(anEvent)._which());
  692. $1=binding;
  693. if(($receiver = $1) == nil || $receiver == undefined){
  694. $1;
  695. } else {
  696. _st(self)._applyBinding_(binding);
  697. _st(anEvent)._preventDefault();
  698. return false;
  699. };
  700. return self}, function($ctx1) {$ctx1.fill(self,"handleBindingFor:",{anEvent:anEvent,binding:binding}, smalltalk.HLKeyBinder)})},
  701. messageSends: ["atKey:", "which", "selectedBinding", "ifNotNil:", "applyBinding:", "preventDefault"]}),
  702. smalltalk.HLKeyBinder);
  703. smalltalk.addMethod(
  704. "_handleInactiveKeyDown_",
  705. smalltalk.method({
  706. selector: "handleInactiveKeyDown:",
  707. fn: function (event){
  708. var self=this;
  709. return smalltalk.withContext(function($ctx1) { var $1,$2;
  710. $1=_st(_st(event)._which()).__eq(_st(self)._activationKey());
  711. if(smalltalk.assert($1)){
  712. $2=_st(event)._ctrlKey();
  713. if(smalltalk.assert($2)){
  714. _st(self)._activate();
  715. _st(event)._preventDefault();
  716. return false;
  717. };
  718. };
  719. return self}, function($ctx1) {$ctx1.fill(self,"handleInactiveKeyDown:",{event:event}, smalltalk.HLKeyBinder)})},
  720. messageSends: ["ifTrue:", "activate", "preventDefault", "ctrlKey", "=", "activationKey", "which"]}),
  721. smalltalk.HLKeyBinder);
  722. smalltalk.addMethod(
  723. "_handleKeyDown_",
  724. smalltalk.method({
  725. selector: "handleKeyDown:",
  726. fn: function (event){
  727. var self=this;
  728. return smalltalk.withContext(function($ctx1) { var $2,$1;
  729. $2=_st(self)._isActive();
  730. if(smalltalk.assert($2)){
  731. $1=_st(self)._handleActiveKeyDown_(event);
  732. } else {
  733. $1=_st(self)._handleInactiveKeyDown_(event);
  734. };
  735. return $1;
  736. }, function($ctx1) {$ctx1.fill(self,"handleKeyDown:",{event:event}, smalltalk.HLKeyBinder)})},
  737. messageSends: ["ifTrue:ifFalse:", "handleActiveKeyDown:", "handleInactiveKeyDown:", "isActive"]}),
  738. smalltalk.HLKeyBinder);
  739. smalltalk.addMethod(
  740. "_helper",
  741. smalltalk.method({
  742. selector: "helper",
  743. fn: function (){
  744. var self=this;
  745. return smalltalk.withContext(function($ctx1) { var $1;
  746. $1=self["@helper"];
  747. return $1;
  748. }, function($ctx1) {$ctx1.fill(self,"helper",{}, smalltalk.HLKeyBinder)})},
  749. messageSends: []}),
  750. smalltalk.HLKeyBinder);
  751. smalltalk.addMethod(
  752. "_initialize",
  753. smalltalk.method({
  754. selector: "initialize",
  755. fn: function (){
  756. var self=this;
  757. return smalltalk.withContext(function($ctx1) { var $1,$2;
  758. smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
  759. self["@helper"]=_st((smalltalk.HLKeyBinderHelper || HLKeyBinderHelper))._on_(self);
  760. $1=self["@helper"];
  761. _st($1)._renderStart();
  762. $2=_st($1)._renderCog();
  763. self["@active"]=false;
  764. return self}, function($ctx1) {$ctx1.fill(self,"initialize",{},smalltalk.HLKeyBinder)})},
  765. messageSends: ["initialize", "on:", "renderStart", "renderCog"]}),
  766. smalltalk.HLKeyBinder);
  767. smalltalk.addMethod(
  768. "_isActive",
  769. smalltalk.method({
  770. selector: "isActive",
  771. fn: function (){
  772. var self=this;
  773. return smalltalk.withContext(function($ctx1) { var $1;
  774. $1=_st(_st(_st(".").__comma(_st(_st(self)._helper())._cssClass()))._asJQuery())._is_(":visible");
  775. return $1;
  776. }, function($ctx1) {$ctx1.fill(self,"isActive",{},smalltalk.HLKeyBinder)})},
  777. messageSends: ["is:", "asJQuery", ",", "cssClass", "helper"]}),
  778. smalltalk.HLKeyBinder);
  779. smalltalk.addMethod(
  780. "_selectedBinding",
  781. smalltalk.method({
  782. selector: "selectedBinding",
  783. fn: function (){
  784. var self=this;
  785. return smalltalk.withContext(function($ctx1) { var $2,$1;
  786. $2=self["@selectedBinding"];
  787. if(($receiver = $2) == nil || $receiver == undefined){
  788. $1=_st(self)._bindings();
  789. } else {
  790. $1=$2;
  791. };
  792. return $1;
  793. }, function($ctx1) {$ctx1.fill(self,"selectedBinding",{}, smalltalk.HLKeyBinder)})},
  794. messageSends: ["ifNil:", "bindings"]}),
  795. smalltalk.HLKeyBinder);
  796. smalltalk.addMethod(
  797. "_setupEvents",
  798. smalltalk.method({
  799. selector: "setupEvents",
  800. fn: function (){
  801. var self=this;
  802. return smalltalk.withContext(function($ctx1) { _st(_st(window)._jQuery_("body"))._keydown_((function(event){
  803. return smalltalk.withContext(function($ctx2) { return _st(self)._handleKeyDown_(event);
  804. }, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1)})}));
  805. return self}, function($ctx1) {$ctx1.fill(self,"setupEvents",{}, smalltalk.HLKeyBinder)})},
  806. messageSends: ["keydown:", "handleKeyDown:", "jQuery:"]}),
  807. smalltalk.HLKeyBinder);
  808. smalltalk.addMethod(
  809. "_systemIsMac",
  810. smalltalk.method({
  811. selector: "systemIsMac",
  812. fn: function (){
  813. var self=this;
  814. return smalltalk.withContext(function($ctx1) { var $1;
  815. $1=_st(_st(navigator)._platform())._match_("Mac");
  816. return $1;
  817. }, function($ctx1) {$ctx1.fill(self,"systemIsMac",{}, smalltalk.HLKeyBinder)})},
  818. messageSends: ["match:", "platform"]}),
  819. smalltalk.HLKeyBinder);
  820. smalltalk.addClass('HLKeyBinderHelper', smalltalk.HLWidget, ['keyBinder'], 'Helios-KeyBindings');
  821. smalltalk.addMethod(
  822. "_cssClass",
  823. smalltalk.method({
  824. selector: "cssClass",
  825. fn: function (){
  826. var self=this;
  827. return smalltalk.withContext(function($ctx1) { return "key_helper";
  828. }, function($ctx1) {$ctx1.fill(self,"cssClass",{}, smalltalk.HLKeyBinderHelper)})},
  829. messageSends: []}),
  830. smalltalk.HLKeyBinderHelper);
  831. smalltalk.addMethod(
  832. "_hide",
  833. smalltalk.method({
  834. selector: "hide",
  835. fn: function (){
  836. var self=this;
  837. return smalltalk.withContext(function($ctx1) { _st(_st(_st(".").__comma(_st(self)._cssClass()))._asJQuery())._remove();
  838. _st(self)._showCog();
  839. return self}, function($ctx1) {$ctx1.fill(self,"hide",{},smalltalk.HLKeyBinderHelper)})},
  840. messageSends: ["remove", "asJQuery", ",", "cssClass", "showCog"]}),
  841. smalltalk.HLKeyBinderHelper);
  842. smalltalk.addMethod(
  843. "_hideCog",
  844. smalltalk.method({
  845. selector: "hideCog",
  846. fn: function (){
  847. var self=this;
  848. return smalltalk.withContext(function($ctx1) { _st(_st("#cog-helper")._asJQuery())._hide();
  849. return self}, function($ctx1) {$ctx1.fill(self,"hideCog",{},smalltalk.HLKeyBinderHelper)})},
  850. messageSends: ["hide", "asJQuery"]}),
  851. smalltalk.HLKeyBinderHelper);
  852. smalltalk.addMethod(
  853. "_keyBinder",
  854. smalltalk.method({
  855. selector: "keyBinder",
  856. fn: function (){
  857. var self=this;
  858. return smalltalk.withContext(function($ctx1) { var $1;
  859. $1=self["@keyBinder"];
  860. return $1;
  861. }, function($ctx1) {$ctx1.fill(self,"keyBinder",{}, smalltalk.HLKeyBinderHelper)})},
  862. messageSends: []}),
  863. smalltalk.HLKeyBinderHelper);
  864. smalltalk.addMethod(
  865. "_keyBinder_",
  866. smalltalk.method({
  867. selector: "keyBinder:",
  868. fn: function (aKeyBinder){
  869. var self=this;
  870. return smalltalk.withContext(function($ctx1) { self["@keyBinder"]=aKeyBinder;
  871. return self}, function($ctx1) {$ctx1.fill(self,"keyBinder:",{aKeyBinder:aKeyBinder}, smalltalk.HLKeyBinderHelper)})},
  872. messageSends: []}),
  873. smalltalk.HLKeyBinderHelper);
  874. smalltalk.addMethod(
  875. "_registerBindings",
  876. smalltalk.method({
  877. selector: "registerBindings",
  878. fn: function (){
  879. var self=this;
  880. return smalltalk.withContext(function($ctx1) { return self}, function($ctx1) {$ctx1.fill(self,"registerBindings",{}, smalltalk.HLKeyBinderHelper)})},
  881. messageSends: []}),
  882. smalltalk.HLKeyBinderHelper);
  883. smalltalk.addMethod(
  884. "_renderBindingGroup_on_",
  885. smalltalk.method({
  886. selector: "renderBindingGroup:on:",
  887. fn: function (aBindingGroup,html){
  888. var self=this;
  889. return smalltalk.withContext(function($ctx1) { _st(_st(_st(aBindingGroup)._activeBindings())._sorted_((function(a,b){
  890. return smalltalk.withContext(function($ctx2) { return _st(_st(a)._key()).__lt(_st(b)._key());
  891. }, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._do_((function(each){
  892. return smalltalk.withContext(function($ctx2) { return _st(each)._renderBindingOn_actionOn_(html,_st(self)._keyBinder());
  893. }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
  894. return self}, function($ctx1) {$ctx1.fill(self,"renderBindingGroup:on:",{aBindingGroup:aBindingGroup,html:html},smalltalk.HLKeyBinderHelper)})},
  895. messageSends: ["do:", "renderBindingOn:actionOn:", "keyBinder", "sorted:", "<", "key", "activeBindings"]}),
  896. smalltalk.HLKeyBinderHelper);
  897. smalltalk.addMethod(
  898. "_renderBindingOn_",
  899. smalltalk.method({
  900. selector: "renderBindingOn:",
  901. fn: function (html){
  902. var self=this;
  903. return smalltalk.withContext(function($ctx1) { _st(_st(self)._selectedBinding())._renderOn_html_(self,html);
  904. return self}, function($ctx1) {$ctx1.fill(self,"renderBindingOn:",{html:html}, smalltalk.HLKeyBinderHelper)})},
  905. messageSends: ["renderOn:html:", "selectedBinding"]}),
  906. smalltalk.HLKeyBinderHelper);
  907. smalltalk.addMethod(
  908. "_renderCloseOn_",
  909. smalltalk.method({
  910. selector: "renderCloseOn:",
  911. fn: function (html){
  912. var self=this;
  913. return smalltalk.withContext(function($ctx1) { var $1,$2;
  914. $1=_st(html)._a();
  915. _st($1)._class_("close");
  916. _st($1)._with_((function(){
  917. return smalltalk.withContext(function($ctx2) { return _st(_st(html)._tag_("i"))._class_("icon-remove");
  918. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  919. $2=_st($1)._onClick_((function(){
  920. return smalltalk.withContext(function($ctx2) { return _st(_st(self)._keyBinder())._deactivate();
  921. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  922. return self}, function($ctx1) {$ctx1.fill(self,"renderCloseOn:",{html:html},smalltalk.HLKeyBinderHelper)})},
  923. messageSends: ["class:", "a", "with:", "tag:", "onClick:", "deactivate", "keyBinder"]}),
  924. smalltalk.HLKeyBinderHelper);
  925. smalltalk.addMethod(
  926. "_renderCog",
  927. smalltalk.method({
  928. selector: "renderCog",
  929. fn: function (){
  930. var self=this;
  931. return smalltalk.withContext(function($ctx1) { var $1,$3,$4,$2;
  932. _st((function(html){
  933. return smalltalk.withContext(function($ctx2) { $1=_st(html)._div();
  934. _st($1)._id_("cog-helper");
  935. $2=_st($1)._with_((function(){
  936. return smalltalk.withContext(function($ctx3) { $3=_st(html)._a();
  937. _st($3)._with_((function(){
  938. return smalltalk.withContext(function($ctx4) { return _st(_st(html)._tag_("i"))._class_("icon-cog");
  939. }, function($ctx4) {$ctx4.fillBlock({},$ctx1)})}));
  940. $4=_st($3)._onClick_((function(){
  941. return smalltalk.withContext(function($ctx4) { return _st(_st(self)._keyBinder())._activate();
  942. }, function($ctx4) {$ctx4.fillBlock({},$ctx1)})}));
  943. return $4;
  944. }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
  945. return $2;
  946. }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}))._appendToJQuery_(_st("body")._asJQuery());
  947. return self}, function($ctx1) {$ctx1.fill(self,"renderCog",{},smalltalk.HLKeyBinderHelper)})},
  948. messageSends: ["appendToJQuery:", "asJQuery", "id:", "div", "with:", "class:", "tag:", "a", "onClick:", "activate", "keyBinder"]}),
  949. smalltalk.HLKeyBinderHelper);
  950. smalltalk.addMethod(
  951. "_renderContentOn_",
  952. smalltalk.method({
  953. selector: "renderContentOn:",
  954. fn: function (html){
  955. var self=this;
  956. return smalltalk.withContext(function($ctx1) { var $1,$3,$4,$2;
  957. $1=_st(html)._div();
  958. _st($1)._class_(_st(self)._cssClass());
  959. $2=_st($1)._with_((function(){
  960. return smalltalk.withContext(function($ctx2) { $3=self;
  961. _st($3)._renderSelectionOn_(html);
  962. _st($3)._renderBindingOn_(html);
  963. $4=_st($3)._renderCloseOn_(html);
  964. return $4;
  965. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  966. return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},smalltalk.HLKeyBinderHelper)})},
  967. messageSends: ["class:", "cssClass", "div", "with:", "renderSelectionOn:", "renderBindingOn:", "renderCloseOn:"]}),
  968. smalltalk.HLKeyBinderHelper);
  969. smalltalk.addMethod(
  970. "_renderSelectionOn_",
  971. smalltalk.method({
  972. selector: "renderSelectionOn:",
  973. fn: function (html){
  974. var self=this;
  975. return smalltalk.withContext(function($ctx1) { var $1,$3,$5,$4,$2;
  976. $1=_st(html)._span();
  977. _st($1)._class_("selected");
  978. $3=$1;
  979. $5=_st(_st(self)._selectedBinding())._label();
  980. if(($receiver = $5) == nil || $receiver == undefined){
  981. $4="Action";
  982. } else {
  983. $4=$5;
  984. };
  985. $2=_st($3)._with_($4);
  986. return self}, function($ctx1) {$ctx1.fill(self,"renderSelectionOn:",{html:html}, smalltalk.HLKeyBinderHelper)})},
  987. messageSends: ["class:", "span", "with:", "ifNil:", "label", "selectedBinding"]}),
  988. smalltalk.HLKeyBinderHelper);
  989. smalltalk.addMethod(
  990. "_renderStart",
  991. smalltalk.method({
  992. selector: "renderStart",
  993. fn: function (){
  994. var self=this;
  995. return smalltalk.withContext(function($ctx1) { var $1,$2;
  996. _st((function(html){
  997. return smalltalk.withContext(function($ctx2) { $1=_st(html)._div();
  998. _st($1)._id_("keybinding-start-helper");
  999. $2=_st($1)._with_(_st(_st("Press ").__comma(_st(_st(self)._keyBinder())._activationKeyLabel())).__comma(" to start"));
  1000. return $2;
  1001. }, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}))._appendToJQuery_(_st("body")._asJQuery());
  1002. _st((function(){
  1003. return smalltalk.withContext(function($ctx2) { return _st(_st(window)._jQuery_("#keybinding-start-helper"))._fadeOut_((1000));
  1004. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._valueWithTimeout_((2000));
  1005. return self}, function($ctx1) {$ctx1.fill(self,"renderStart",{}, smalltalk.HLKeyBinderHelper)})},
  1006. messageSends: ["appendToJQuery:", "asJQuery", "id:", "div", "with:", ",", "activationKeyLabel", "keyBinder", "valueWithTimeout:", "fadeOut:", "jQuery:"]}),
  1007. smalltalk.HLKeyBinderHelper);
  1008. smalltalk.addMethod(
  1009. "_selectedBinding",
  1010. smalltalk.method({
  1011. selector: "selectedBinding",
  1012. fn: function (){
  1013. var self=this;
  1014. return smalltalk.withContext(function($ctx1) { var $1;
  1015. $1=_st(_st(self)._keyBinder())._selectedBinding();
  1016. return $1;
  1017. }, function($ctx1) {$ctx1.fill(self,"selectedBinding",{}, smalltalk.HLKeyBinderHelper)})},
  1018. messageSends: ["selectedBinding", "keyBinder"]}),
  1019. smalltalk.HLKeyBinderHelper);
  1020. smalltalk.addMethod(
  1021. "_show",
  1022. smalltalk.method({
  1023. selector: "show",
  1024. fn: function (){
  1025. var self=this;
  1026. return smalltalk.withContext(function($ctx1) { _st(self)._hideCog();
  1027. _st(self)._appendToJQuery_(_st("body")._asJQuery());
  1028. return self}, function($ctx1) {$ctx1.fill(self,"show",{},smalltalk.HLKeyBinderHelper)})},
  1029. messageSends: ["hideCog", "appendToJQuery:", "asJQuery"]}),
  1030. smalltalk.HLKeyBinderHelper);
  1031. smalltalk.addMethod(
  1032. "_showCog",
  1033. smalltalk.method({
  1034. selector: "showCog",
  1035. fn: function (){
  1036. var self=this;
  1037. return smalltalk.withContext(function($ctx1) { _st(_st("#cog-helper")._asJQuery())._show();
  1038. return self}, function($ctx1) {$ctx1.fill(self,"showCog",{},smalltalk.HLKeyBinderHelper)})},
  1039. messageSends: ["show", "asJQuery"]}),
  1040. smalltalk.HLKeyBinderHelper);
  1041. smalltalk.addMethod(
  1042. "_on_",
  1043. smalltalk.method({
  1044. selector: "on:",
  1045. fn: function (aKeyBinder){
  1046. var self=this;
  1047. return smalltalk.withContext(function($ctx1) { var $2,$3,$1;
  1048. $2=_st(self)._new();
  1049. _st($2)._keyBinder_(aKeyBinder);
  1050. $3=_st($2)._yourself();
  1051. $1=$3;
  1052. return $1;
  1053. }, function($ctx1) {$ctx1.fill(self,"on:",{aKeyBinder:aKeyBinder}, smalltalk.HLKeyBinderHelper.klass)})},
  1054. messageSends: ["keyBinder:", "new", "yourself"]}),
  1055. smalltalk.HLKeyBinderHelper.klass);