Lively Kernel canvas
//
10000.0685356645867561Wikicontroltrue
10000.0009339093584311485Wikicontroltrue
10000.000002615689275001003Wikicontroltrue
10000.012101522192528894Wikicontroltrue
10000.000299234271021261Wikicontroltrue
TextMorph.addMethods({})3truetruefalsetruetruefalse
false1truefalsenulltruetruefalse
nullfalsetruenullfalse
falsenullfalse
false
false
falsenullfalsefalsenullnullnullnullfalse
10002.3855987447286473e-12Wikicontroltrue
-------------------------------------------falsetruefalse0
invoke1:WorldMorph([[0,0,1500,2000]])falsetruefalse0
status200onGEThttp://localhost/lk/webwerkstatt/draft/WidgetModelMorph.xhtmlfalsetruefalse0
extendForSerializationundefinedfalsetruefalse0
Warn:unexpected:#<Relay{{"SourceString":"SourceString","StatusMessage":"StatusMessage","RootFilters":"RootFilters","Pane1Content":"Pane1Content","Pane1Selection":"Pane1Selection","Pane1Menu":"Pane1Menu","Pane1Filters":"Pane1Filters","Pane2Content":"Pane2Content","Pane2Selection":"Pane2Selection","Pane2Menu":"Pane2Menu","Pane2Filters":"Pane2Filters"}}>sdelegateis#<Record{{"Pane1Content":{},"Pane1Selection":{},"Pane1Menu":{},"Pane1Filters":{},"Pane2Content":{},"Pane2Selection":{},"Pane2Menu":{},"Pane2Filters":{},"Pane3Content":{},"Pane3Selection":{},"Pane3Menu":{},"Pane3Filters":{},"SourceString":{},"StatusMessage":{},"RootFilters":{}}}>s delegate is #"]]>falsetruefalse0
ERRORSerializingiteminarraybuttonCommandsof#<lively.ide.LocalCodeBrowser:[objectSVGElement]>"]]>falsetruefalse0
ERRORSerializingiteminarraybuttonCommandsof#<lively.ide.LocalCodeBrowser:[objectSVGElement]>"]]>falsetruefalse0
ERRORSerializingiteminarraybuttonCommandsof#<lively.ide.LocalCodeBrowser:[objectSVGElement]>"]]>falsetruefalse0
ERRORSerializingiteminarraybuttonCommandsof#<lively.ide.LocalCodeBrowser:[objectSVGElement]>"]]>falsetruefalse0
ERRORSerializingiteminarraybuttonCommandsof#<lively.ide.LocalCodeBrowser:[objectSVGElement]>"]]>falsetruefalse0
Warn:unexpected:#<Relay{{"List":"-Pane1Content","Selection":"Pane1Selection","Menu":"-Pane1Menu"}}>sdelegateis#<Record{{"Pane1Content":{},"Pane1Selection":{},"Pane1Menu":{},"Pane1Filters":{},"Pane2Content":{},"Pane2Selection":{},"Pane2Menu":{},"Pane2Filters":{},"Pane3Content":{},"Pane3Selection":{},"Pane3Menu":{},"Pane3Filters":{},"SourceString":{},"StatusMessage":{},"RootFilters":{}}}>s delegate is #"]]>falsetruefalse0
Warn:unexpected:#<Relay{{"List":"-Pane2Content","Selection":"Pane2Selection","Menu":"-Pane2Menu"}}>sdelegateis#<Record{{"Pane1Content":{},"Pane1Selection":{},"Pane1Menu":{},"Pane1Filters":{},"Pane2Content":{},"Pane2Selection":{},"Pane2Menu":{},"Pane2Filters":{},"Pane3Content":{},"Pane3Selection":{},"Pane3Menu":{},"Pane3Filters":{},"SourceString":{},"StatusMessage":{},"RootFilters":{}}}>s delegate is #"]]>falsetruefalse0
Warn:unexpected:#<Relay{{"Text":"SourceString"}}>sdelegateis#<Record{{"Pane1Content":{},"Pane1Selection":{},"Pane1Menu":{},"Pane1Filters":{},"Pane2Content":{},"Pane2Selection":{},"Pane2Menu":{},"Pane2Filters":{},"Pane3Content":{},"Pane3Selection":{},"Pane3Menu":{},"Pane3Filters":{},"SourceString":{},"StatusMessage":{},"RootFilters":{}}}>s delegate is #"]]>falsetruefalse0
wha',norawnodeon#<ModelPlug{setValue:action,setIsActive:setIsActive,getIsActive:getIsActive}>"]]>falsetruefalse0
wha',norawnodeon#<ModelPlug{setValue:action,setIsActive:setIsActive,getIsActive:getIsActive}>"]]>falsetruefalse0
wha',norawnodeon#<ModelPlug{setValue:action,setIsActive:setIsActive,getIsActive:getIsActive}>"]]>falsetruefalse0
wha',norawnodeon#<ModelPlug{setValue:action,setIsActive:setIsActive,getIsActive:getIsActive}>"]]>falsetruefalse0
wha',norawnodeon#<ModelPlug{setValue:action,setIsActive:setIsActive,getIsActive:getIsActive}>"]]>falsetruefalse0
status204onPUThttp://localhost/lk/webwerkstatt/draft/WidgetModelMorph.xhtmlfalsetruefalse0
successpublishingworldathttp://localhost/lk/webwerkstatt/draft/WidgetModelMorph.xhtml,status204falsetruefalse0
Clipboardactionnotsuccessfulfalsetruefalse0
Clipboardactionnotsuccessfulfalsetruefalse0
BrowserstatusMessage:SuccessfullyevaluatedaDoitfalsetruefalse0
updated1browsersin0sfalsetruefalse0
Warn:noautomaticEvalfor<doitxmlns="http://www.w3.org/2000/svg"name="initializer">//</doit>//"]]>falsetruefalse0
update5.341falsetruefalse0
update4.886falsetruefalse0
update4.431falsetruefalse0
update4.091falsetruefalse0
update3.977falsetruefalse0
update3.636falsetruefalse0
update3.181falsetruefalse0
-------------------------------------------falsetruefalse0
invoke1:WorldMorph([[0,0,1500,2000]])falsetruefalse0
status200onGEThttp://localhost/lk/webwerkstatt/draft/WidgetModelMorph.xhtmlfalsetruefalse0
extendForSerializationundefinedfalsetruefalse0Warn:unexpected:#<Relay{{"SourceString":"SourceString","StatusMessage":"StatusMessage","RootFilters":"RootFilters","Pane1Content":"Pane1Content","Pane1Selection":"Pane1Selection","Pane1Menu":"Pane1Menu","Pane1Filters":"Pane1Filters","Pane2Content":"Pane2Content","Pane2Selection":"Pane2Selection","Pane2Menu":"Pane2Menu","Pane2Filters":"Pane2Filters"}}>sdelegateis#<Record{{"Pane1Content":{},"Pane1Selection":{},"Pane1Menu":{},"Pane1Filters":{},"Pane2Content":{},"Pane2Selection":{},"Pane2Menu":{},"Pane2Filters":{},"Pane3Content":{},"Pane3Selection":{},"Pane3Menu":{},"Pane3Filters":{},"SourceString":{},"StatusMessage":{},"RootFilters":{}}}>ERRORSerializingiteminarraybuttonCommandsof#<lively.ide.LocalCodeBrowser:[objectSVGElement]>ERRORSerializingiteminarraybuttonCommandsof#<lively.ide.LocalCodeBrowser:[objectSVGElement]>ERRORSerializingiteminarraybuttonCommandsof#<lively.ide.LocalCodeBrowser:[objectSVGElement]>ERRORSerializingiteminarraybuttonCommandsof#<lively.ide.LocalCodeBrowser:[objectSVGElement]>ERRORSerializingiteminarraybuttonCommandsof#<lively.ide.LocalCodeBrowser:[objectSVGElement]>Warn:unexpected:#<Relay{{"List":"-Pane1Content","Selection":"Pane1Selection","Menu":"-Pane1Menu"}}>sdelegateis#<Record{{"Pane1Content":{},"Pane1Selection":{},"Pane1Menu":{},"Pane1Filters":{},"Pane2Content":{},"Pane2Selection":{},"Pane2Menu":{},"Pane2Filters":{},"Pane3Content":{},"Pane3Selection":{},"Pane3Menu":{},"Pane3Filters":{},"SourceString":{},"StatusMessage":{},"RootFilters":{}}}>Warn:unexpected:#<Relay{{"List":"-Pane2Content","Selection":"Pane2Selection","Menu":"-Pane2Menu"}}>sdelegateis#<Record{{"Pane1Content":{},"Pane1Selection":{},"Pane1Menu":{},"Pane1Filters":{},"Pane2Content":{},"Pane2Selection":{},"Pane2Menu":{},"Pane2Filters":{},"Pane3Content":{},"Pane3Selection":{},"Pane3Menu":{},"Pane3Filters":{},"SourceString":{},"StatusMessage":{},"RootFilters":{}}}>Warn:unexpected:#<Relay{{"Text":"SourceString"}}>sdelegateis#<Record{{"Pane1Content":{},"Pane1Selection":{},"Pane1Menu":{},"Pane1Filters":{},"Pane2Content":{},"Pane2Selection":{},"Pane2Menu":{},"Pane2Filters":{},"Pane3Content":{},"Pane3Selection":{},"Pane3Menu":{},"Pane3Filters":{},"SourceString":{},"StatusMessage":{},"RootFilters":{}}}>wha',norawnodeon#<ModelPlug{setValue:action,setIsActive:setIsActive,getIsActive:getIsActive}>wha',norawnodeon#<ModelPlug{setValue:action,setIsActive:setIsActive,getIsActive:getIsActive}>wha',norawnodeon#<ModelPlug{setValue:action,setIsActive:setIsActive,getIsActive:getIsActive}>wha',norawnodeon#<ModelPlug{setValue:action,setIsActive:setIsActive,getIsActive:getIsActive}>wha',norawnodeon#<ModelPlug{setValue:action,setIsActive:setIsActive,getIsActive:getIsActive}>853-1nulltrue0falsetruetruefalse
false1truefalse
nullfalse
nullfalse
nullfalse
nullfalsefalsetruetruefalse
truetrue100false
truefalsenull050"]]]>
nullfalsetruenullfalse
Consolefalsenullfalse
false
false
falsenullfalsefalsenullnullnullnullfalse
TherearemanyincarnationsofdifferentModelViewApproachesstillinLivelyKernel.MostofthemarehalffinishedexperimentsfromSuntimes....Toreplacealloldusageswithanewandcleanersolution,wehavetodocumenttheusageoftheoldfirst.ThelastapproachusesWidgetstocreateandconnectMorphswithRecords.SinceweusedthisapproachinLivelyKernelwehadtofindawaytoserializethisSetting.Theresultisaworkingbutasomewhatuglyhacktorepresentwidgetsandmodelsinthegraphicalscenegraph:163
10nullnull5
10001.339749045222308e-29Wikicontroltrue
10002.133446501952725e-7Wikicontroltrue
rawNodefalsetruefalse0false
definitionfalsetruefalse0false
SliderExtent$Elementfalsetruefalse0false
Value$Elementfalsetruefalse0false
SliderExtent$observersfalsetruefalse0false
Value$observersfalsetruefalse0false
documentationfalsetruefalse0false
descriptionfalsetruefalse0false
noShallowCopyPropertiesfalsetruefalse0false
doNotSerializefalsetruefalse0false2034nulltruefalsefalsenulltruetruefalse
false1truefalse
nullfalse
nullfalse
nullfalse
nullfalsefalsetruetruefalse
[153364:SliderMorph([[-5,0,56,267]])]1truetruefalsetruetruefalse
false1truefalsetruetruefalse
doitsherehavethis===inspecteetruetruefalsetruetruefalse
false1truefalsetruetruefalsenull
truefalse
nullfalsetruenullfalse
Inspector(#<Record{{"Value":{},"SliderExtent":...falsenullfalse
false
false
falsenullfalsefalsenullnullnullnullfalse
10002.5313984588897394e-15Wikicontroltrue
10000.0005075287860564164Wikicontroltrue
10000.000009261388398802927Wikicontroltrue
10000.0000015445383600538383Wikicontroltrue
10000.4304672689760043Wikicontroltrue
10006.455309230119323Wikicontroltrue
nulltrueslider=$morph("slider")slider.onValueUpdate(0.3)slider.getValue()slider.formalModel.setValue(5)slider.formalModel.setValue(2)slider.formalModel.addObserver(slider)slider.formalModel.constructorfunctionanonymous_42(){Class.initializer.apply(this,arguments);}16truetruefalsefalse2truetruefalse
false1truefalsetruetruefalse
nullfalsetruenullfalse
falsenullfalse
false
false
falsenullfalse-0.007233031087952121falsenullnullnullnullfalse
10null3.181null
WidgetModelMorph40
nulltruewidget=newWidget();model=Record.newNodeInstance({Value:null,SliderExtent:null});//model=Record.newPlainInstance({Value:null,SliderExtent:null});//Widgetsownmodelsandareresponsibleforthereserializationwidget.ownModel(model);slider=newSliderMorph(newRectangle(200,150,100,20),10.0)slider.name="slider2"slider.openInWorld()slider.connectModel(model);//Morphscanownwidgets,sotheygetserializedtooslider.ownerWidget=widget//observersseemtonotbeserialized....model.addObserver(slider)slider.formalModel.setValue(2)slider.setValue(5)slider.getValue()//slider.remove()16truetruefalsetruetruefalse
false1truefalsetruetruefalse
nullfalsetruenullfalse
falsenullfalse
false
false
falsenullfalsefalsenullnullnullnullfalse
nullfalsetruenullfalse
aDoitfalsenullfalse
false
false
falsenullfalse
initializerfalsetruefalse0false
aDoitfalsetruefalse0false346.51nullnulltruenullfalsenulltruetrue
1true
null
null
null
nulltruetrue
-----falsetruefalse0false346.5-1nullnulltruetruetrue
1true
null
null
null
nulltruetrue
SliderMorph.addMethods({onValueUpdate:function(value){console.log("update"+value)this.adjustForNewBounds();},onDeserialize:function(){if(!this.slider){console.warn('nosliderin%s,%s',this,this.textContent);return;}this.slider.relayMouseEvents(this,{onMouseDown:"sliderPressed",onMouseMove:"sliderMoved",onMouseUp:"sliderReleased"});//TODO:removethisworkaroundbyserializingobserverrelationsshipsif(this.formalModel&&this.formalModel.addObserver){//console.log("SLIDERfoundmodel:"+this.formalModel+"/"+this.formalModel.addObserver)this.formalModel.addObserver(this)}},})9truetrue2000000truetrue
1truetruetrue
Browseworld...falsenull
Pushchangesbackfalsenull
Refreshfalsenull
Evalonfalsenull
Sortfalsenull
truetruenullfalsenullnullnullnullfalsenull96