2
0

Moka-Views.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. (function(smalltalk,nil,_st){
  2. smalltalk.addPackage('Moka-Views');
  3. smalltalk.addClass('MKButtonView', smalltalk.MKAspectView, ['default', 'label'], 'Moka-Views');
  4. smalltalk.MKButtonView.comment="I am a push button view. My default controller is `MKButtonController`.\x0a\x0aMy controller must answer to `#onPressed`.\x0a\x0a## API\x0a\x0a- Instances can be set a `default` button\x0a- Use `#label:` to set the label string";
  5. smalltalk.addMethod(
  6. smalltalk.method({
  7. selector: "cssClass",
  8. category: 'accessing',
  9. fn: function (){
  10. var self=this;
  11. return smalltalk.withContext(function($ctx1) {
  12. var $2,$3,$1;
  13. $2=self._isDefault();
  14. _st($2)._ifTrue_("default");
  15. $3=_st($2)._ifFalse_("");
  16. $1=$3;
  17. return $1;
  18. }, function($ctx1) {$ctx1.fill(self,"cssClass",{},smalltalk.MKButtonView)})},
  19. args: [],
  20. source: "cssClass\x0a\x09^ self isDefault \x0a\x09\x09ifTrue: 'default';\x0a\x09\x09ifFalse: ''",
  21. messageSends: ["ifTrue:", "isDefault", "ifFalse:"],
  22. referencedClasses: []
  23. }),
  24. smalltalk.MKButtonView);
  25. smalltalk.addMethod(
  26. smalltalk.method({
  27. selector: "default",
  28. category: 'accessing',
  29. fn: function (){
  30. var self=this;
  31. return smalltalk.withContext(function($ctx1) {
  32. var $1;
  33. $1=self["@default"];
  34. return $1;
  35. }, function($ctx1) {$ctx1.fill(self,"default",{},smalltalk.MKButtonView)})},
  36. args: [],
  37. source: "default\x0a\x09^ default",
  38. messageSends: [],
  39. referencedClasses: []
  40. }),
  41. smalltalk.MKButtonView);
  42. smalltalk.addMethod(
  43. smalltalk.method({
  44. selector: "default:",
  45. category: 'accessing',
  46. fn: function (aBoolean){
  47. var self=this;
  48. return smalltalk.withContext(function($ctx1) {
  49. self["@default"]=aBoolean;
  50. return self}, function($ctx1) {$ctx1.fill(self,"default:",{aBoolean:aBoolean},smalltalk.MKButtonView)})},
  51. args: ["aBoolean"],
  52. source: "default: aBoolean\x0a\x09default := aBoolean",
  53. messageSends: [],
  54. referencedClasses: []
  55. }),
  56. smalltalk.MKButtonView);
  57. smalltalk.addMethod(
  58. smalltalk.method({
  59. selector: "defaultControllerClass",
  60. category: 'defaults',
  61. fn: function (){
  62. var self=this;
  63. function $MKButtonController(){return smalltalk.MKButtonController||(typeof MKButtonController=="undefined"?nil:MKButtonController)}
  64. return smalltalk.withContext(function($ctx1) {
  65. var $1;
  66. $1=$MKButtonController();
  67. return $1;
  68. }, function($ctx1) {$ctx1.fill(self,"defaultControllerClass",{},smalltalk.MKButtonView)})},
  69. args: [],
  70. source: "defaultControllerClass\x0a\x09^ MKButtonController",
  71. messageSends: [],
  72. referencedClasses: ["MKButtonController"]
  73. }),
  74. smalltalk.MKButtonView);
  75. smalltalk.addMethod(
  76. smalltalk.method({
  77. selector: "defaultLabel",
  78. category: 'defaults',
  79. fn: function (){
  80. var self=this;
  81. return smalltalk.withContext(function($ctx1) {
  82. return "OK";
  83. }, function($ctx1) {$ctx1.fill(self,"defaultLabel",{},smalltalk.MKButtonView)})},
  84. args: [],
  85. source: "defaultLabel\x0a\x09^ 'OK'",
  86. messageSends: [],
  87. referencedClasses: []
  88. }),
  89. smalltalk.MKButtonView);
  90. smalltalk.addMethod(
  91. smalltalk.method({
  92. selector: "isDefault",
  93. category: 'testing',
  94. fn: function (){
  95. var self=this;
  96. return smalltalk.withContext(function($ctx1) {
  97. var $2,$1;
  98. $2=self._default();
  99. if(($receiver = $2) == nil || $receiver == undefined){
  100. $1=false;
  101. } else {
  102. $1=$2;
  103. };
  104. return $1;
  105. }, function($ctx1) {$ctx1.fill(self,"isDefault",{},smalltalk.MKButtonView)})},
  106. args: [],
  107. source: "isDefault\x0a\x09^ self default ifNil: [ false ]",
  108. messageSends: ["ifNil:", "default"],
  109. referencedClasses: []
  110. }),
  111. smalltalk.MKButtonView);
  112. smalltalk.addMethod(
  113. smalltalk.method({
  114. selector: "label",
  115. category: 'accessing',
  116. fn: function (){
  117. var self=this;
  118. return smalltalk.withContext(function($ctx1) {
  119. var $2,$1;
  120. $2=self["@label"];
  121. if(($receiver = $2) == nil || $receiver == undefined){
  122. $1=self._defaultLabel();
  123. } else {
  124. $1=$2;
  125. };
  126. return $1;
  127. }, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.MKButtonView)})},
  128. args: [],
  129. source: "label\x0a\x09^ label ifNil: [ self defaultLabel ]",
  130. messageSends: ["ifNil:", "defaultLabel"],
  131. referencedClasses: []
  132. }),
  133. smalltalk.MKButtonView);
  134. smalltalk.addMethod(
  135. smalltalk.method({
  136. selector: "label:",
  137. category: 'accessing',
  138. fn: function (aString){
  139. var self=this;
  140. return smalltalk.withContext(function($ctx1) {
  141. self["@label"]=aString;
  142. return self}, function($ctx1) {$ctx1.fill(self,"label:",{aString:aString},smalltalk.MKButtonView)})},
  143. args: ["aString"],
  144. source: "label: aString\x0a\x09label := aString",
  145. messageSends: [],
  146. referencedClasses: []
  147. }),
  148. smalltalk.MKButtonView);
  149. smalltalk.addMethod(
  150. smalltalk.method({
  151. selector: "pressed",
  152. category: 'events',
  153. fn: function (){
  154. var self=this;
  155. return smalltalk.withContext(function($ctx1) {
  156. _st(self._controller())._onPressed();
  157. return self}, function($ctx1) {$ctx1.fill(self,"pressed",{},smalltalk.MKButtonView)})},
  158. args: [],
  159. source: "pressed\x0a\x09self controller onPressed",
  160. messageSends: ["onPressed", "controller"],
  161. referencedClasses: []
  162. }),
  163. smalltalk.MKButtonView);
  164. smalltalk.addMethod(
  165. smalltalk.method({
  166. selector: "renderContentOn:",
  167. category: 'rendering',
  168. fn: function (html){
  169. var self=this;
  170. return smalltalk.withContext(function($ctx1) {
  171. var $1,$2;
  172. $1=_st(html)._button();
  173. _st($1)._class_(self._cssClass());
  174. _st($1)._with_(self._label());
  175. $2=_st($1)._onClick_((function(){
  176. return smalltalk.withContext(function($ctx2) {
  177. return self._pressed();
  178. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  179. return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},smalltalk.MKButtonView)})},
  180. args: ["html"],
  181. source: "renderContentOn: html\x0a\x09html button\x0a\x09\x09class: self cssClass;\x0a\x09\x09with: self label;\x0a\x09\x09onClick: [ self pressed ]",
  182. messageSends: ["class:", "cssClass", "button", "with:", "label", "onClick:", "pressed"],
  183. referencedClasses: []
  184. }),
  185. smalltalk.MKButtonView);
  186. smalltalk.addClass('MKCheckboxView', smalltalk.MKAspectView, ['label'], 'Moka-Views');
  187. smalltalk.MKCheckboxView.comment="I am a checkbox view. My default controller is `MKCheckboxController`.\x0a\x0aMy controller must answer to `#onToggled:`.\x0a\x0a##API\x0a\x0a- If no `aspect` is provided, the ckeckbox state will always be off.\x0a- use `#label:` to set the label string.";
  188. smalltalk.addMethod(
  189. smalltalk.method({
  190. selector: "checked",
  191. category: 'accessing',
  192. fn: function (){
  193. var self=this;
  194. return smalltalk.withContext(function($ctx1) {
  195. var $2,$1;
  196. $2=self._aspectValue();
  197. if(($receiver = $2) == nil || $receiver == undefined){
  198. $1=false;
  199. } else {
  200. $1=$2;
  201. };
  202. return $1;
  203. }, function($ctx1) {$ctx1.fill(self,"checked",{},smalltalk.MKCheckboxView)})},
  204. args: [],
  205. source: "checked\x0a\x09^ self aspectValue ifNil: [ false ]",
  206. messageSends: ["ifNil:", "aspectValue"],
  207. referencedClasses: []
  208. }),
  209. smalltalk.MKCheckboxView);
  210. smalltalk.addMethod(
  211. smalltalk.method({
  212. selector: "label",
  213. category: 'rendering',
  214. fn: function (){
  215. var self=this;
  216. return smalltalk.withContext(function($ctx1) {
  217. var $2,$1;
  218. $2=self["@label"];
  219. if(($receiver = $2) == nil || $receiver == undefined){
  220. $1="";
  221. } else {
  222. $1=$2;
  223. };
  224. return $1;
  225. }, function($ctx1) {$ctx1.fill(self,"label",{},smalltalk.MKCheckboxView)})},
  226. args: [],
  227. source: "label\x0a\x09^ label ifNil: [ '' ]",
  228. messageSends: ["ifNil:"],
  229. referencedClasses: []
  230. }),
  231. smalltalk.MKCheckboxView);
  232. smalltalk.addMethod(
  233. smalltalk.method({
  234. selector: "label:",
  235. category: 'rendering',
  236. fn: function (aString){
  237. var self=this;
  238. return smalltalk.withContext(function($ctx1) {
  239. self["@label"]=aString;
  240. return self}, function($ctx1) {$ctx1.fill(self,"label:",{aString:aString},smalltalk.MKCheckboxView)})},
  241. args: ["aString"],
  242. source: "label: aString\x0a\x09label := aString",
  243. messageSends: [],
  244. referencedClasses: []
  245. }),
  246. smalltalk.MKCheckboxView);
  247. smalltalk.addMethod(
  248. smalltalk.method({
  249. selector: "pressed",
  250. category: 'events',
  251. fn: function (){
  252. var self=this;
  253. return smalltalk.withContext(function($ctx1) {
  254. _st(self._controller())._onToggled_(_st(self._checked())._not());
  255. return self}, function($ctx1) {$ctx1.fill(self,"pressed",{},smalltalk.MKCheckboxView)})},
  256. args: [],
  257. source: "pressed\x0a\x09self controller onToggled: self checked not",
  258. messageSends: ["onToggled:", "not", "checked", "controller"],
  259. referencedClasses: []
  260. }),
  261. smalltalk.MKCheckboxView);
  262. smalltalk.addMethod(
  263. smalltalk.method({
  264. selector: "renderContentOn:",
  265. category: 'rendering',
  266. fn: function (html){
  267. var self=this;
  268. return smalltalk.withContext(function($ctx1) {
  269. var $1,$2;
  270. $1=_st(html)._input();
  271. _st($1)._type_("checkbox");
  272. _st($1)._at_put_("checked",self._checked());
  273. _st($1)._value_(self._label());
  274. $2=_st($1)._onClick_((function(){
  275. return smalltalk.withContext(function($ctx2) {
  276. return self._pressed();
  277. }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
  278. return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},smalltalk.MKCheckboxView)})},
  279. args: ["html"],
  280. source: "renderContentOn: html\x0a\x09html input\x0a\x09\x09type: 'checkbox';\x0a\x09\x09at: 'checked' put: self checked;\x0a\x09\x09value: self label;\x0a\x09\x09onClick: [ self pressed ]",
  281. messageSends: ["type:", "input", "at:put:", "checked", "value:", "label", "onClick:", "pressed"],
  282. referencedClasses: []
  283. }),
  284. smalltalk.MKCheckboxView);
  285. smalltalk.addClass('MKInputView', smalltalk.MKAspectView, ['input'], 'Moka-Views');
  286. smalltalk.MKInputView.comment="I am an input view. My default controller is `MKInputController`.\x0a\x0aMy controller must answer to `#onEnterPressed:`.";
  287. smalltalk.addMethod(
  288. smalltalk.method({
  289. selector: "enterPressed",
  290. category: 'events',
  291. fn: function (){
  292. var self=this;
  293. return smalltalk.withContext(function($ctx1) {
  294. _st(self._controller())._onEnterPressed_(self._value());
  295. return self}, function($ctx1) {$ctx1.fill(self,"enterPressed",{},smalltalk.MKInputView)})},
  296. args: [],
  297. source: "enterPressed\x0a\x09self controller onEnterPressed: self value",
  298. messageSends: ["onEnterPressed:", "value", "controller"],
  299. referencedClasses: []
  300. }),
  301. smalltalk.MKInputView);
  302. smalltalk.addMethod(
  303. smalltalk.method({
  304. selector: "keyDown:",
  305. category: 'events',
  306. fn: function (anEvent){
  307. var self=this;
  308. function $String(){return smalltalk.String||(typeof String=="undefined"?nil:String)}
  309. return smalltalk.withContext(function($ctx1) {
  310. var $1;
  311. $1=_st(_st(anEvent)._which()).__eq(_st(_st($String())._cr())._asciiValue());
  312. if(smalltalk.assert($1)){
  313. self._enterPressed();
  314. };
  315. return self}, function($ctx1) {$ctx1.fill(self,"keyDown:",{anEvent:anEvent},smalltalk.MKInputView)})},
  316. args: ["anEvent"],
  317. source: "keyDown: anEvent\x0a\x09anEvent which = String cr asciiValue ifTrue: [\x0a\x09\x09self enterPressed ]",
  318. messageSends: ["ifTrue:", "enterPressed", "=", "asciiValue", "cr", "which"],
  319. referencedClasses: ["String"]
  320. }),
  321. smalltalk.MKInputView);
  322. smalltalk.addMethod(
  323. smalltalk.method({
  324. selector: "renderContentOn:",
  325. category: 'rendering',
  326. fn: function (html){
  327. var self=this;
  328. return smalltalk.withContext(function($ctx1) {
  329. var $1,$2;
  330. $1=_st(html)._input();
  331. _st($1)._value_(self._aspectValue());
  332. _st($1)._onKeyDown_((function(event){
  333. return smalltalk.withContext(function($ctx2) {
  334. return self._keyDown_(event);
  335. }, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1)})}));
  336. $2=_st($1)._yourself();
  337. self["@input"]=$2;
  338. return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},smalltalk.MKInputView)})},
  339. args: ["html"],
  340. source: "renderContentOn: html\x0a\x09input := html input\x0a\x09\x09value: self aspectValue;\x0a\x09\x09onKeyDown: [ :event |\x0a\x09\x09\x09self keyDown: event ];\x0a\x09\x09yourself",
  341. messageSends: ["value:", "aspectValue", "input", "onKeyDown:", "keyDown:", "yourself"],
  342. referencedClasses: []
  343. }),
  344. smalltalk.MKInputView);
  345. smalltalk.addMethod(
  346. smalltalk.method({
  347. selector: "value",
  348. category: 'accessing',
  349. fn: function (){
  350. var self=this;
  351. return smalltalk.withContext(function($ctx1) {
  352. var $1;
  353. $1=_st(_st(self["@input"])._asJQuery())._val();
  354. return $1;
  355. }, function($ctx1) {$ctx1.fill(self,"value",{},smalltalk.MKInputView)})},
  356. args: [],
  357. source: "value\x0a\x09^ input asJQuery val",
  358. messageSends: ["val", "asJQuery"],
  359. referencedClasses: []
  360. }),
  361. smalltalk.MKInputView);
  362. })(global_smalltalk,global_nil,global__st);