Jelajahi Sumber

update Moka

Nicolas Petton 10 tahun lalu
induk
melakukan
e8b4a47b99
5 mengubah file dengan 65 tambahan dan 46 penghapusan
  1. 1 1
      index.html
  2. 3 2
      js/Moka-Controllers.js
  3. 36 21
      js/Moka-Core.js
  4. 23 20
      js/Moka-Views.js
  5. 2 2
      st/Moka-Views.st

+ 1 - 1
index.html

@@ -12,7 +12,7 @@
 <body>
 <script type='text/javascript'>
     require(
-        ["amber/devel"],
+        ["amber/devel", "amber_core/Moka-Core", "amber_core/Moka-Controllers", "amber_core/Moka-Views"],
         function (smalltalk) {
             smalltalk.defaultAmdNamespace = "amber_core";
             smalltalk.initialize();

+ 3 - 2
js/Moka-Controllers.js

@@ -1,5 +1,6 @@
-(function(smalltalk,nil,_st){
+define("amber_core/Moka-Controllers", ["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st", "amber_core/Moka-Core"], function(smalltalk,nil,_st){
 smalltalk.addPackage('Moka-Controllers');
+smalltalk.packages["Moka-Controllers"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
 smalltalk.addClass('MKButtonController', smalltalk.MKAspectController, [], 'Moka-Controllers');
 smalltalk.MKButtonController.comment="I am the default controller for `MKButtonView`.";
@@ -60,4 +61,4 @@ referencedClasses: []
 smalltalk.MKInputController);
 
 
-})(global_smalltalk,global_nil,global__st);
+});

+ 36 - 21
js/Moka-Core.js

@@ -1,5 +1,6 @@
-(function(smalltalk,nil,_st){
+define("amber_core/Moka-Core", ["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st", "amber_core/Kernel-Objects", "amber_core/Canvas"], function(smalltalk,nil,_st){
 smalltalk.addPackage('Moka-Core');
+smalltalk.packages["Moka-Core"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
 smalltalk.addClass('MKController', smalltalk.Object, ['view', 'model'], 'Moka-Core');
 smalltalk.MKController.comment="I implement the Controller part of the MVC pattern in Moka.\x0a\x0aI hold onto my `model` and `view`, set with `MKView >> controller:`.";
@@ -116,17 +117,20 @@ category: 'actions',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-var $1;
+var $1,$2,$3;
 $1=self._aspect();
-if(($receiver = $1) == nil || $receiver == undefined){
+$ctx1.sendIdx["aspect"]=1;
+if(($receiver = $1) == nil || $receiver == null){
 $1;
 } else {
-_st(self._model())._perform_(self._aspect());
+$2=self._model();
+$3=self._aspect();
+_st($2)._perform_($3);
 };
 return self}, function($ctx1) {$ctx1.fill(self,"performAction",{},smalltalk.MKAspectController)})},
 args: [],
 source: "performAction\x0a\x09self aspect ifNotNil: [\x0a\x09\x09self model \x0a\x09\x09\x09perform: self aspect ]",
-messageSends: ["ifNotNil:", "perform:", "aspect", "model"],
+messageSends: ["ifNotNil:", "aspect", "perform:", "model"],
 referencedClasses: []
 }),
 smalltalk.MKAspectController);
@@ -138,17 +142,21 @@ category: 'actions',
 fn: function (anObject){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-var $1;
+var $1,$2,$4,$3;
 $1=self._aspect();
-if(($receiver = $1) == nil || $receiver == undefined){
+$ctx1.sendIdx["aspect"]=1;
+if(($receiver = $1) == nil || $receiver == null){
 $1;
 } else {
-_st(self._model())._perform_withArguments_(_st(self._aspect())._asMutator(),[anObject]);
+$2=self._model();
+$4=self._aspect();
+$3=_st($4)._asMutator();
+_st($2)._perform_withArguments_($3,[anObject]);
 };
 return self}, function($ctx1) {$ctx1.fill(self,"performActionWith:",{anObject:anObject},smalltalk.MKAspectController)})},
 args: ["anObject"],
 source: "performActionWith: anObject\x0a\x09self aspect ifNotNil: [\x0a\x09\x09self model \x0a\x09\x09\x09perform: self aspect asMutator\x0a\x09\x09\x09withArguments: { anObject } ]",
-messageSends: ["ifNotNil:", "perform:withArguments:", "asMutator", "aspect", "model"],
+messageSends: ["ifNotNil:", "aspect", "perform:withArguments:", "model", "asMutator"],
 referencedClasses: []
 }),
 smalltalk.MKAspectController);
@@ -312,7 +320,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
 var $1,$2;
 $1=self["@controller"];
-if(($receiver = $1) == nil || $receiver == undefined){
+if(($receiver = $1) == nil || $receiver == null){
 self._controller_(self._defaultController());
 } else {
 $1;
@@ -480,7 +488,7 @@ self["@wrapper"]=$2;
 _st(self["@wrapper"])._with_((function(){
 return smalltalk.withContext(function($ctx2) {
 return self._renderContentOn_(html);
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"renderOn:",{html:html},smalltalk.MKView)})},
 args: ["html"],
 source: "renderOn: html\x0a\x09\x22Basic rendering method.\x0a\x09Wraps the content with a `wrapper` div for updating the receiver.\x0a\x09\x0a\x09Do not override this method, but `#renderContentOn:`\x22\x0a\x09\x0a\x09wrapper := html div\x0a\x09\x09class: 'moka_view';\x0a\x09\x09yourself.\x0a\x09wrapper with: [ self renderContentOn: html ]",
@@ -496,18 +504,22 @@ category: 'updating',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-var $1;
+var $1,$2,$3,$4;
 $1=self["@wrapper"];
-if(($receiver = $1) == nil || $receiver == undefined){
+if(($receiver = $1) == nil || $receiver == null){
 self._error_("The view has not been rendered yet");
 } else {
 $1;
 };
-_st(_st(self["@wrapper"])._asJQuery())._empty();
-_st((function(html){
+$2=_st(self["@wrapper"])._asJQuery();
+$ctx1.sendIdx["asJQuery"]=1;
+_st($2)._empty();
+$3=(function(html){
 return smalltalk.withContext(function($ctx2) {
 return self._renderContentOn_(html);
-}, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1)})}))._appendToJQuery_(_st(self["@wrapper"])._asJQuery());
+}, function($ctx2) {$ctx2.fillBlock({html:html},$ctx1,2)})});
+$4=_st(self["@wrapper"])._asJQuery();
+_st($3)._appendToJQuery_($4);
 return self}, function($ctx1) {$ctx1.fill(self,"update",{},smalltalk.MKView)})},
 args: [],
 source: "update\x0a\x09\x22Update the view's content.\x22\x0a\x09\x0a\x09wrapper ifNil: [ self error: 'The view has not been rendered yet' ].\x0a\x09\x0a\x09wrapper asJQuery empty.\x0a\x09[ :html | self renderContentOn: html ] \x0a\x09\x09appendToJQuery: wrapper asJQuery",
@@ -610,7 +622,7 @@ return $1;
 }, function($ctx1) {$ctx1.fill(self,"aspectValue",{},smalltalk.MKAspectView)})},
 args: [],
 source: "aspectValue\x0a\x09^ self model perform: self aspect",
-messageSends: ["perform:", "aspect", "model"],
+messageSends: ["perform:", "model", "aspect"],
 referencedClasses: []
 }),
 smalltalk.MKAspectView);
@@ -640,15 +652,18 @@ category: 'updating',
 fn: function (anAnnouncement){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-var $1;
-$1=_st(_st(anAnnouncement)._aspect()).__eq(self._aspect());
+var $2,$3,$1;
+$2=_st(anAnnouncement)._aspect();
+$ctx1.sendIdx["aspect"]=1;
+$3=self._aspect();
+$1=_st($2).__eq($3);
 if(smalltalk.assert($1)){
 self._update();
 };
 return self}, function($ctx1) {$ctx1.fill(self,"update:",{anAnnouncement:anAnnouncement},smalltalk.MKAspectView)})},
 args: ["anAnnouncement"],
 source: "update: anAnnouncement\x0a\x09anAnnouncement aspect = self aspect\x0a\x09\x09ifTrue: [ self update ]",
-messageSends: ["ifTrue:", "update", "=", "aspect"],
+messageSends: ["ifTrue:", "=", "aspect", "update"],
 referencedClasses: []
 }),
 smalltalk.MKAspectView);
@@ -675,4 +690,4 @@ referencedClasses: []
 }),
 smalltalk.MKAspectView.klass);
 
-})(global_smalltalk,global_nil,global__st);
+});

+ 23 - 20
js/Moka-Views.js

@@ -1,5 +1,6 @@
-(function(smalltalk,nil,_st){
+define("amber_core/Moka-Views", ["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st", "amber_core/Moka-Core"], function(smalltalk,nil,_st){
 smalltalk.addPackage('Moka-Views');
+smalltalk.packages["Moka-Views"].transport = {"type":"amd","amdNamespace":"amber_core"};
 
 smalltalk.addClass('MKButtonView', smalltalk.MKAspectView, ['default', 'label'], 'Moka-Views');
 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";
@@ -10,16 +11,18 @@ category: 'accessing',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-var $2,$3,$1;
+var $2,$1;
 $2=self._isDefault();
-_st($2)._ifTrue_("default");
-$3=_st($2)._ifFalse_("");
-$1=$3;
+if(smalltalk.assert($2)){
+$1="default";
+} else {
+$1="";
+};
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"cssClass",{},smalltalk.MKButtonView)})},
 args: [],
-source: "cssClass\x0a\x09^ self isDefault \x0a\x09\x09ifTrue: 'default';\x0a\x09\x09ifFalse: ''",
-messageSends: ["ifTrue:", "isDefault", "ifFalse:"],
+source: "cssClass\x0a\x09^ self isDefault \x0a\x09\x09ifTrue: [ 'default' ]\x0a\x09\x09ifFalse: [ '' ]",
+messageSends: ["ifTrue:ifFalse:", "isDefault"],
 referencedClasses: []
 }),
 smalltalk.MKButtonView);
@@ -102,7 +105,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
 var $2,$1;
 $2=self._default();
-if(($receiver = $2) == nil || $receiver == undefined){
+if(($receiver = $2) == nil || $receiver == null){
 $1=false;
 } else {
 $1=$2;
@@ -125,7 +128,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
 var $2,$1;
 $2=self["@label"];
-if(($receiver = $2) == nil || $receiver == undefined){
+if(($receiver = $2) == nil || $receiver == null){
 $1=self._defaultLabel();
 } else {
 $1=$2;
@@ -185,11 +188,11 @@ _st($1)._with_(self._label());
 $2=_st($1)._onClick_((function(){
 return smalltalk.withContext(function($ctx2) {
 return self._pressed();
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},smalltalk.MKButtonView)})},
 args: ["html"],
 source: "renderContentOn: html\x0a\x09html button\x0a\x09\x09class: self cssClass;\x0a\x09\x09with: self label;\x0a\x09\x09onClick: [ self pressed ]",
-messageSends: ["class:", "cssClass", "button", "with:", "label", "onClick:", "pressed"],
+messageSends: ["class:", "button", "cssClass", "with:", "label", "onClick:", "pressed"],
 referencedClasses: []
 }),
 smalltalk.MKButtonView);
@@ -207,7 +210,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
 var $2,$1;
 $2=self._aspectValue();
-if(($receiver = $2) == nil || $receiver == undefined){
+if(($receiver = $2) == nil || $receiver == null){
 $1=false;
 } else {
 $1=$2;
@@ -230,7 +233,7 @@ var self=this;
 return smalltalk.withContext(function($ctx1) { 
 var $2,$1;
 $2=self["@label"];
-if(($receiver = $2) == nil || $receiver == undefined){
+if(($receiver = $2) == nil || $receiver == null){
 $1="";
 } else {
 $1=$2;
@@ -271,7 +274,7 @@ _st(self._controller())._onToggled_(_st(self._checked())._not());
 return self}, function($ctx1) {$ctx1.fill(self,"pressed",{},smalltalk.MKCheckboxView)})},
 args: [],
 source: "pressed\x0a\x09self controller onToggled: self checked not",
-messageSends: ["onToggled:", "not", "checked", "controller"],
+messageSends: ["onToggled:", "controller", "not", "checked"],
 referencedClasses: []
 }),
 smalltalk.MKCheckboxView);
@@ -291,7 +294,7 @@ _st($1)._value_(self._label());
 $2=_st($1)._onClick_((function(){
 return smalltalk.withContext(function($ctx2) {
 return self._pressed();
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},smalltalk.MKCheckboxView)})},
 args: ["html"],
 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 ]",
@@ -315,7 +318,7 @@ _st(self._controller())._onEnterPressed_(self._value());
 return self}, function($ctx1) {$ctx1.fill(self,"enterPressed",{},smalltalk.MKInputView)})},
 args: [],
 source: "enterPressed\x0a\x09self controller onEnterPressed: self value",
-messageSends: ["onEnterPressed:", "value", "controller"],
+messageSends: ["onEnterPressed:", "controller", "value"],
 referencedClasses: []
 }),
 smalltalk.MKInputView);
@@ -336,7 +339,7 @@ self._enterPressed();
 return self}, function($ctx1) {$ctx1.fill(self,"keyDown:",{anEvent:anEvent},smalltalk.MKInputView)})},
 args: ["anEvent"],
 source: "keyDown: anEvent\x0a\x09anEvent which = String cr asciiValue ifTrue: [\x0a\x09\x09self enterPressed ]",
-messageSends: ["ifTrue:", "enterPressed", "=", "asciiValue", "cr", "which"],
+messageSends: ["ifTrue:", "=", "which", "asciiValue", "cr", "enterPressed"],
 referencedClasses: ["String"]
 }),
 smalltalk.MKInputView);
@@ -354,13 +357,13 @@ _st($1)._value_(self._aspectValue());
 _st($1)._onKeyDown_((function(event){
 return smalltalk.withContext(function($ctx2) {
 return self._keyDown_(event);
-}, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1)})}));
+}, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1,1)})}));
 $2=_st($1)._yourself();
 self["@input"]=$2;
 return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},smalltalk.MKInputView)})},
 args: ["html"],
 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",
-messageSends: ["value:", "aspectValue", "input", "onKeyDown:", "keyDown:", "yourself"],
+messageSends: ["value:", "input", "aspectValue", "onKeyDown:", "keyDown:", "yourself"],
 referencedClasses: []
 }),
 smalltalk.MKInputView);
@@ -384,4 +387,4 @@ referencedClasses: []
 smalltalk.MKInputView);
 
 
-})(global_smalltalk,global_nil,global__st);
+});

+ 2 - 2
st/Moka-Views.st

@@ -16,8 +16,8 @@ My controller must answer to `#onPressed`.
 
 cssClass
 	^ self isDefault 
-		ifTrue: 'default';
-		ifFalse: ''
+		ifTrue: [ 'default' ]
+		ifFalse: [ '' ]
 !
 
 default