define(["amber/boot", "require", "amber/core/Kernel-Objects"], function($boot,requirejs){"use strict"; var $core=$boot.api,nil=$boot.nilAsValue,$nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals; var $pkg = $core.addPackage("MiniMVP"); $pkg.innerEval = function (expr) { return eval(expr); }; $pkg.transport = {"type":"amd","amdNamespace":"mini-mvp"}; $core.addClass("MiniPresenter", $globals.Object, ["frame", "dataBlock", "currentData"], "MiniMVP"); $core.addMethod( $core.method({ selector: "currentData", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "currentData\x0a\x09^ currentData", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (){ var self=this,$self=this; return $self.currentData; }; }), $globals.MiniPresenter); $core.addMethod( $core.method({ selector: "currentData:", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anObject"], source: "currentData: anObject\x0a\x09currentData := anObject", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (anObject){ var self=this,$self=this; $self.currentData=anObject; return self; }; }), $globals.MiniPresenter); $core.addMethod( $core.method({ selector: "currentData:ifChangedToNil:ifChangedToNotNil:", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anObject", "aBlock", "anotherBlock"], source: "currentData: anObject ifChangedToNil: aBlock ifChangedToNotNil: anotherBlock\x0a\x09| oldData newData |\x0a\x09oldData := self currentData.\x0a\x09self currentData: anObject.\x0a\x09newData := self currentData.\x0a\x09oldData = newData ifFalse: [\x0a\x09\x09newData ifNil: [ aBlock value ] ifNotNil: [ anotherBlock value: newData ] ]", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["currentData", "currentData:", "ifFalse:", "=", "ifNil:ifNotNil:", "value", "value:"] }, function ($methodClass){ return function (anObject,aBlock,anotherBlock){ var self=this,$self=this; var oldData,newData; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; oldData=[$self._currentData() //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.sendIdx["currentData"]=1 //>>excludeEnd("ctx"); ][0]; $self._currentData_(anObject); newData=$self._currentData(); if(!$core.assert($recv(oldData).__eq(newData))){ $1=newData; if($1 == null || $1.a$nil){ $recv(aBlock)._value(); } else { $recv(anotherBlock)._value_(newData); } } return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"currentData:ifChangedToNil:ifChangedToNotNil:",{anObject:anObject,aBlock:aBlock,anotherBlock:anotherBlock,oldData:oldData,newData:newData})}); //>>excludeEnd("ctx"); }; }), $globals.MiniPresenter); $core.addMethod( $core.method({ selector: "dataBlock", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "dataBlock\x0a\x09^ dataBlock", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (){ var self=this,$self=this; return $self.dataBlock; }; }), $globals.MiniPresenter); $core.addMethod( $core.method({ selector: "dataBlock:", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anObject"], source: "dataBlock: anObject\x0a\x09dataBlock := anObject", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (anObject){ var self=this,$self=this; $self.dataBlock=anObject; return self; }; }), $globals.MiniPresenter); $core.addMethod( $core.method({ selector: "frame", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "frame\x0a\x09^ frame", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (){ var self=this,$self=this; return $self.frame; }; }), $globals.MiniPresenter); $core.addMethod( $core.method({ selector: "frame:", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anObject"], source: "frame: anObject\x0a\x09frame := anObject", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (anObject){ var self=this,$self=this; $self.frame=anObject; return self; }; }), $globals.MiniPresenter); $core.addMethod( $core.method({ selector: "hide", protocol: "private", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "hide\x0a\x09self frame asDomNode style setProperty: #display to: 'none'", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["setProperty:to:", "style", "asDomNode", "frame"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($recv($recv($self._frame())._asDomNode())._style())._setProperty_to_("display","none"); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"hide",{})}); //>>excludeEnd("ctx"); }; }), $globals.MiniPresenter); $core.addMethod( $core.method({ selector: "present:", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anObject"], source: "present: anObject\x0a\x09self subclassResponsibility", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["subclassResponsibility"] }, function ($methodClass){ return function (anObject){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $self._subclassResponsibility(); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"present:",{anObject:anObject})}); //>>excludeEnd("ctx"); }; }), $globals.MiniPresenter); $core.addMethod( $core.method({ selector: "refresh", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "refresh\x0a\x09self\x0a\x09\x09currentData: self dataBlock value\x0a\x09\x09ifChangedToNil: [ self hide ]\x0a\x09\x09ifChangedToNotNil: [ :data | self show; present: data ]", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["currentData:ifChangedToNil:ifChangedToNotNil:", "value", "dataBlock", "hide", "show", "present:"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $self._currentData_ifChangedToNil_ifChangedToNotNil_($recv($self._dataBlock())._value(),(function(){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); return $self._hide(); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)}); //>>excludeEnd("ctx"); }),(function(data){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); $self._show(); return $self._present_(data); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({data:data},$ctx1,2)}); //>>excludeEnd("ctx"); })); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"refresh",{})}); //>>excludeEnd("ctx"); }; }), $globals.MiniPresenter); $core.addMethod( $core.method({ selector: "show", protocol: "private", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "show\x0a\x09self frame asDomNode style removeProperty: 'display'", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["removeProperty:", "style", "asDomNode", "frame"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($recv($recv($self._frame())._asDomNode())._style())._removeProperty_("display"); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"show",{})}); //>>excludeEnd("ctx"); }; }), $globals.MiniPresenter); $core.addMethod( $core.method({ selector: "shows:in:", protocol: "instance creation", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aBlock", "aDommable"], source: "shows: aBlock in: aDommable\x0a\x09^ super new\x0a\x09\x09dataBlock: aBlock;\x0a\x09\x09frame: aDommable;\x0a\x09\x09hide;\x0a\x09\x09yourself", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["dataBlock:", "new", "frame:", "hide", "yourself"] }, function ($methodClass){ return function (aBlock,aDommable){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; $1=[( //>>excludeStart("ctx", pragmas.excludeDebugContexts); $ctx1.supercall = true, //>>excludeEnd("ctx"); ($methodClass.superclass||$boot.nilAsClass).fn.prototype._new.call($self)) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.supercall = false //>>excludeEnd("ctx"); ][0]; $recv($1)._dataBlock_(aBlock); $recv($1)._frame_(aDommable); $recv($1)._hide(); return $recv($1)._yourself(); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"shows:in:",{aBlock:aBlock,aDommable:aDommable})}); //>>excludeEnd("ctx"); }; }), $globals.MiniPresenter.a$cls); $core.addClass("MiniLeafPresenter", $globals.MiniPresenter, ["factory"], "MiniMVP"); $core.addMethod( $core.method({ selector: "factory", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "factory\x0a\x09^ factory", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (){ var self=this,$self=this; return $self.factory; }; }), $globals.MiniLeafPresenter); $core.addMethod( $core.method({ selector: "factory:", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anObject"], source: "factory: anObject\x0a\x09factory := anObject", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: [] }, function ($methodClass){ return function (anObject){ var self=this,$self=this; $self.factory=anObject; return self; }; }), $globals.MiniLeafPresenter); $core.addMethod( $core.method({ selector: "frameContents:", protocol: "rendering", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anObject"], source: "frameContents: anObject\x0a\x09self subclassResponsibility", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["subclassResponsibility"] }, function ($methodClass){ return function (anObject){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $self._subclassResponsibility(); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"frameContents:",{anObject:anObject})}); //>>excludeEnd("ctx"); }; }), $globals.MiniLeafPresenter); $core.addMethod( $core.method({ selector: "present:", protocol: "rendering", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anObject"], source: "present: anObject\x0a\x09(self factory value: anObject)\x0a\x09\x09ifNotNil: [ :payload | self frameContents: payload ]", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["ifNotNil:", "value:", "factory", "frameContents:"] }, function ($methodClass){ return function (anObject){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; $1=$recv($self._factory())._value_(anObject); if($1 == null || $1.a$nil){ $1; } else { var payload; payload=$1; $self._frameContents_(payload); } return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"present:",{anObject:anObject})}); //>>excludeEnd("ctx"); }; }), $globals.MiniLeafPresenter); $core.addMethod( $core.method({ selector: "shows:in:do:", protocol: "instance creation", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aDataBlock", "aDommable", "aFactoryBlock"], source: "shows: aDataBlock in: aDommable do: aFactoryBlock\x0a\x09^ (super shows: aDataBlock in: aDommable)\x0a\x09\x09factory: aFactoryBlock;\x0a\x09\x09yourself", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["factory:", "shows:in:", "yourself"] }, function ($methodClass){ return function (aDataBlock,aDommable,aFactoryBlock){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; $1=[( //>>excludeStart("ctx", pragmas.excludeDebugContexts); $ctx1.supercall = true, //>>excludeEnd("ctx"); ($methodClass.superclass||$boot.nilAsClass).fn.prototype._shows_in_.call($self,aDataBlock,aDommable)) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.supercall = false //>>excludeEnd("ctx"); ][0]; $recv($1)._factory_(aFactoryBlock); return $recv($1)._yourself(); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"shows:in:do:",{aDataBlock:aDataBlock,aDommable:aDommable,aFactoryBlock:aFactoryBlock})}); //>>excludeEnd("ctx"); }; }), $globals.MiniLeafPresenter.a$cls); $core.addClass("AmberWebLeafPresenter", $globals.MiniLeafPresenter, [], "MiniMVP"); $core.addMethod( $core.method({ selector: "frameContents:", protocol: "rendering", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anObject"], source: "frameContents: anObject\x0a\x09self frame contents: anObject", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["contents:", "frame"] }, function ($methodClass){ return function (anObject){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($self._frame())._contents_(anObject); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"frameContents:",{anObject:anObject})}); //>>excludeEnd("ctx"); }; }), $globals.AmberWebLeafPresenter); $core.addClass("SilkLeafPresenter", $globals.MiniLeafPresenter, [], "MiniMVP"); $core.addMethod( $core.method({ selector: "frameContents:", protocol: "rendering", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anObject"], source: "frameContents: anObject\x0a\x09self frame resetContents; << anObject", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["resetContents", "frame", "<<"] }, function ($methodClass){ return function (anObject){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); var $1; $1=$self._frame(); $recv($1)._resetContents(); $recv($1).__lt_lt(anObject); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"frameContents:",{anObject:anObject})}); //>>excludeEnd("ctx"); }; }), $globals.SilkLeafPresenter); $core.addClass("MiniParentPresenter", $globals.MiniPresenter, [], "MiniMVP"); $core.addMethod( $core.method({ selector: "childPresenters", protocol: "accessing", //>>excludeStart("ide", pragmas.excludeIdeData); args: [], source: "childPresenters\x0a\x09self subclassResponsibility", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["subclassResponsibility"] }, function ($methodClass){ return function (){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $self._subclassResponsibility(); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"childPresenters",{})}); //>>excludeEnd("ctx"); }; }), $globals.MiniParentPresenter); $core.addMethod( $core.method({ selector: "present:", protocol: "actions", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["anObject"], source: "present: anObject\x0a\x09self childPresenters do: [ :each | each refresh ]", referencedClasses: [], //>>excludeEnd("ide"); pragmas: [], messageSends: ["do:", "childPresenters", "refresh"] }, function ($methodClass){ return function (anObject){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); $recv($self._childPresenters())._do_((function(each){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); return $recv(each)._refresh(); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,1)}); //>>excludeEnd("ctx"); })); return self; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"present:",{anObject:anObject})}); //>>excludeEnd("ctx"); }; }), $globals.MiniParentPresenter); $core.addMethod( $core.method({ selector: "in:", protocol: "instance creation", //>>excludeStart("ide", pragmas.excludeIdeData); args: ["aDommable"], source: "in: aDommable\x0a\x09^ super shows: [ Object new ] in: aDommable", referencedClasses: ["Object"], //>>excludeEnd("ide"); pragmas: [], messageSends: ["shows:in:", "new"] }, function ($methodClass){ return function (aDommable){ var self=this,$self=this; //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx1) { //>>excludeEnd("ctx"); return [( //>>excludeStart("ctx", pragmas.excludeDebugContexts); $ctx1.supercall = true, //>>excludeEnd("ctx"); ($methodClass.superclass||$boot.nilAsClass).fn.prototype._shows_in_.call($self,(function(){ //>>excludeStart("ctx", pragmas.excludeDebugContexts); return $core.withContext(function($ctx2) { //>>excludeEnd("ctx"); return $recv($globals.Object)._new(); //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)}); //>>excludeEnd("ctx"); }),aDommable)) //>>excludeStart("ctx", pragmas.excludeDebugContexts); ,$ctx1.supercall = false //>>excludeEnd("ctx"); ][0]; //>>excludeStart("ctx", pragmas.excludeDebugContexts); }, function($ctx1) {$ctx1.fill(self,"in:",{aDommable:aDommable})}); //>>excludeEnd("ctx"); }; }), $globals.MiniParentPresenter.a$cls); });