Lively Kernel canvas
//
DraftRectanglePackageLayoutWikiViz40true
FriJul30201017:53:05GMT+0200(CEST)http://lively-kernel.org/repository/webwerkstatt/demos84morphs369runs704msFriJul30201017:51:56GMT+0200(CEST)http://lively-kernel.org/repository/webwerkstatt/demos84morphs369runs694msFriJul30201017:51:46GMT+0200(CEST)http://lively-kernel.org/repository/webwerkstatt/demos84morphs369runs515msFriJul30201017:51:30GMT+0200(CEST)http://lively-kernel.org/repository/webwerkstatt/demos84morphs218runs349msFriJul30201017:48:21GMT+0200(CEST)http://lively-kernel.org/repository/webwerkstatt/demos84morphs218runs400msFriJul30201017:48:04GMT+0200(CEST)http://lively-kernel.org/repository/webwerkstatt/demos84morphs218runs373msFriJul30201017:47:49GMT+0200(CEST)http://lively-kernel.org/repository/webwerkstatt/demos84morphs218runs379msFriJul30201017:47:27GMT+0200(CEST)http://lively-kernel.org/repository/webwerkstatt/demos84morphs218runs383msFriJul30201017:47:08GMT+0200(CEST)http://lively-kernel.org/repository/webwerkstatt/demos84morphs218runs600msFriJul30201017:46:15GMT+0200(CEST):http://lively-kernel.org/repository/webwerkstatt/demos84morphs218runs381msFriJul30201017:41:24GMT+0200(CEST):2338runs5797msFriJul30201017:40:21GMT+0200(CEST):5949runs15275msFriJul30201017:39:32GMT+0200(CEST):1242runs2306msFriJul30201017:38:41GMT+0200(CEST):529runs1147msFriJul30201017:38:27GMT+0200(CEST):541runs1173msFriJul30201017:38:10GMT+0200(CEST):533runs1142msFriJul30201017:38:03GMT+0200(CEST):529runs1147msFriJul30201017:37:49GMT+0200(CEST):541runs1165msFriJul30201017:37:20GMT+0200(CEST):529runs1157msFriJul30201017:36:57GMT+0200(CEST):218runs428msFriJul30201017:36:35GMT+0200(CEST):196runs336msFriJul30201017:36:26GMT+0200(CEST):333runs724msFriJul30201017:36:16GMT+0200(CEST):589runs1190msFriJul30201017:36:04GMT+0200(CEST):590runs1187msFriJul30201017:35:55GMT+0200(CEST):659runs1294msFriJul30201017:35:50GMT+0200(CEST):659runs1297msFriJul30201017:35:27GMT+0200(CEST):593runs1163msFriJul30201017:35:18GMT+0200(CEST):593runs1179msFriJul30201017:34:56GMT+0200(CEST):593runs1198msFriJul30201017:29:01GMT+0200(CEST):1194msFriJul30201017:28:59GMT+0200(CEST):743msFriJul30201017:28:56GMT+0200(CEST):737msFriJul30201017:28:53GMT+0200(CEST):576msFriJul30201017:28:50GMT+0200(CEST):1137msFriJul30201017:28:48GMT+0200(CEST):1130msFriJul30201017:28:44GMT+0200(CEST):1959msFriJul30201017:28:40GMT+0200(CEST):1961msFriJul30201017:28:37GMT+0200(CEST):1992msFriJul30201017:28:32GMT+0200(CEST):352msFriJul30201017:28:31GMT+0200(CEST):564msFriJul30201017:28:29GMT+0200(CEST):368msFriJul30201017:28:27GMT+0200(CEST):567msFriJul30201017:28:01GMT+0200(CEST):178642
ExperimentationofreplacingtheRow/ColumshrinklayoutofthepreviousalternativeWikivisualizationwithsome(greedy)2dbinpackingalgorithm171
Wikicontroltruetrue
//META:developedclassandexampleinoneplacetoincreasedevelopmentroundtripevenfurther//pressingalt+s,createsnewcodeandrecreatesexample//ResourceNodeMorph.VersionsCache={}ResourceNodeMorph.addMethods({padding:newRectangle(5,5,0,0),margin:newRectangle(5,3,0,0),style:{fill:Color.blue.darker(),borderColor:null,borderWidth:0,fillOpacity:0.3,borderRadius:10},})if($morph('treeWikiViz'))$morph('treeWikiViz').remove()varurl=newURL('http://lively-kernel.org/repository/webwerkstatt/demos')m=newResourceNodeMorph(url,pt(50,200));m.name='treeWikiViz';m.expand(3);//depth....m.openInWorld()m.setExtent(pt(600,100))NETXUS.toalRuns=0;ResourceNodeMorph.addMethods({binPackLayout:function(counter){NETXUS.totalRuns+=1;counter=counter||0;varcontainerExtent=this.getExtent()varpacker=newNETXUS.RectanglePacker(containerExtent.x,containerExtent.y);varfailed=0;for(vari=0;i<this.submorphs.length;i++){varea=this.submorphs[i];varexent=ea.getExtent();varcoords=packer.findCoords(exent.x,exent.y);if(coords){ea.setPosition(pt(coords.x,coords.y))}else{failed+=1;break;}}if(failed>0){this.setExtent(containerExtent.scaleByPt(pt(1.2,1.9)));this.binPackLayout(counter);}else{if(counter<2){this.setExtent(containerExtent.scaleByPt(pt(1,0.7)));this.binPackLayout(counter+1);}};this.setExtent(this.submorphBounds().extent())},deepBinPackLayout:function(){this.submorphs.each(function(ea){if(ea.deepBinPackLayout)ea.deepBinPackLayout()//if(ea.binPackLayout)ea.binPackLayout()})this.binPackLayout()},})NETXUS.totalRuns=0;vartime=Functions.timeToRun(function(){m.deepBinPackLayout()})countResourceMorphs=function(root){numberOfMorphs=0;root.withAllSubmorphsDo(function(){if(thisinstanceofResourceNodeMorph)numberOfMorphs+=1})returnnumberOfMorphs}$morph('RunTimeText').setTextString(newDate()+'\t'+m.url+'\t'+countResourceMorphs(m)+'morphs\t'+NETXUS.totalRuns+'runs\t'+time+'ms\n'+$morph('RunTimeText').textString) 0) {\n\t\t\tthis.setExtent(containerExtent.scaleByPt(pt(1.2, 1.9)));\n\t\t\tthis.binPackLayout(counter);\n\t\t} else {\n\t\t\tif (counter < 2) {\n\t\t\t\tthis.setExtent(containerExtent.scaleByPt(pt(1,0.7)));\n\t\t\t\tthis.binPackLayout( counter + 1);\n\t\t\t}\n\t\t};\n\t\tthis.setExtent(this.submorphBounds().extent())\n\t},\n\n\tdeepBinPackLayout: function() {\n\t\tthis.submorphs.each(function(ea) {\n\t\t\tif (ea.deepBinPackLayout) ea.deepBinPackLayout() \n\n\t\t\t// if (ea.binPackLayout) ea.binPackLayout() \n\n\t\t})\n\t\tthis.binPackLayout()\n\t},\n})\n\nNETXUS.totalRuns = 0;\nvar time = Functions.timeToRun(function() {\n\tm.deepBinPackLayout()\n})\n\n\ncountResourceMorphs = function(root) {\n\tnumberOfMorphs = 0;\n\troot.withAllSubmorphsDo(function(){\n\t\tif (this instanceof ResourceNodeMorph)\n\t\t\tnumberOfMorphs += 1})\n\treturn numberOfMorphs\n}\n\n$morph('RunTimeText').setTextString( new Date() + '\\t'+ m.url + '\\t ' + \n\tcountResourceMorphs(m) + ' morphs\\t'+ NETXUS.totalRuns +' runs\\t'+ \n\ttime + 'ms\\n' + $morph('RunTimeText').textString)\n\n\n\n\n\n\n"]]>truetruefalse 0) {\n\t\t\tthis.setExtent(containerExtent.scaleByPt(pt(1.2, 1.9)));\n\t\t\tthis.binPackLayout(counter);\n\t\t} else {\n\t\t\tif (counter < 2) {\n\t\t\t\tthis.setExtent(containerExtent.scaleByPt(pt(1,0.7)));\n\t\t\t\tthis.binPackLayout( counter + 1);\n\t\t\t}\n\t\t};\n\t\tthis.setExtent(this.submorphBounds().extent())\n\t},\n\n\tdeepBinPackLayout: function() {\n\t\tthis.submorphs.each(function(ea) {\n\t\t\tif (ea.deepBinPackLayout) ea.deepBinPackLayout() \n\n\t\t\t// if (ea.binPackLayout) ea.binPackLayout() \n\n\t\t})\n\t\tthis.binPackLayout()\n\t},\n})\n\nNETXUS.totalRuns = 0;\nvar time = Functions.timeToRun(function() {\n\tm.deepBinPackLayout()\n})\n\n\ncountResourceMorphs = function(root) {\n\tnumberOfMorphs = 0;\n\troot.withAllSubmorphsDo(function(){\n\t\tif (this instanceof ResourceNodeMorph)\n\t\t\tnumberOfMorphs += 1})\n\treturn numberOfMorphs\n}\n\n$morph('RunTimeText').setTextString( new Date() + '\\t'+ m.url + '\\t ' + \n\tcountResourceMorphs(m) + ' morphs\\t'+ NETXUS.totalRuns +' runs\\t'+ \n\ttime + 'ms\\n' + $morph('RunTimeText').textString)\n\n\n\n\n\n\n"]]>19truetrue
false00.11truefalsetruetrue
nullfalsetruenull
Workspacefalsenulltruefalse
false
false
falsenullfalsefalsenullnullnullnullfalse
demosfalsenulltrue
PresentationDemo/falsenulltrue
media/falsenulltrue
hpi_logo.pngfalsenulltrue
squeakev.xhtmlfalsenulltrue
DansSettings.xhtmlfalsenulltrue
overview.xhtmlfalsenulltrue
DemoSlides.jsfalsenulltrue
CreatingPresentations.xhtmlfalsenulltrue
template.xhtmlfalsenulltrue
LivelyWikiSqueakev.xhtmlfalsenulltrue
title.xhtmlfalsenulltrue
UsingPageNavigation.xhtmlfalsenulltrue
contextjs/falsenulltrue
media/falsenulltrue
PersonExample.movfalsenulltrue
ConnectorExampleScopes.pngfalsenulltrue
TestCaseSequence.pngfalsenulltrue
TestRunner.movfalsenulltrue
TestRunnerDynamicExtent.pngfalsenulltrue
ConnectorExampleModel.pngfalsenulltrue
ContextJSImplementation.pngfalsenulltrue
TimeZone.movfalsenulltrue
Connectors.movfalsenulltrue
TestRunnerModel.pngfalsenulltrue
authfalsenulltrue
testrunnerScopes.xhtmlfalsenulltrue
structural.xhtmlfalsenulltrue
testrunner.xhtmlfalsenulltrue
testrunnerModel.xhtmlfalsenulltrue
timeZone.xhtmlfalsenulltrue
connectors.xhtmlfalsenulltrue
contents.xhtmlfalsenulltrue
CustomStyles.jsfalsenulltrue
connectorsModel.xhtmlfalsenulltrue
personExample.xhtmlfalsenulltrue
lively/falsenulltrue
videos/falsenulltrue
LivelyEngineAdaptation.movfalsenulltrue
LivelyRectanglePacker.movfalsenulltrue
LivelyClock.movfalsenulltrue
LivelyEngine.movfalsenulltrue
DraftShrinkLayout.movfalsenulltrue
Engine.xhtmlfalsenulltrue
livelykernel.xhtmlfalsenulltrue
EngineAdaptation.xhtmlfalsenulltrue
Clock.xhtmlfalsenulltrue
ClockBrowser.xhtmlfalsenulltrue
squeakev/falsenulltrue
squeakev.xhtmlfalsenulltrue
Emtpy.xhtmlfalsenulltrue
Plantagenklause.xhtmlfalsenulltrue
March2010/falsenulltrue
media/falsenulltrue
hpi_logo.pngfalsenulltrue
videos/falsenulltrue
fabrikF2CConverter.movfalsenulltrue
fabrikWeatherWidget.movfalsenulltrue
contextjsPersonExample_01.movfalsenulltrue
fabrikImageSearch.movfalsenulltrue
contextjsTimeZoneExample_01.movfalsenulltrue
fabrikBrowserExample.movfalsenulltrue
contextjsPersonExample.xhtmlfalsenulltrue
fabrikImageSearch.xhtmlfalsenulltrue
fabrikF2C.xhtmlfalsenulltrue
Empty.xhtmlfalsenulltrue
fabrik.xhtmlfalsenulltrue
fabrikBrowser.xhtmlfalsenulltrue
wiki.xhtmlfalsenulltrue
kernelSimpleObjects.xhtmlfalsenulltrue
overview.xhtmlfalsenulltrue
wikiBrowser.xhtmlfalsenulltrue
contextjsTimeZoneExample.xhtmlfalsenulltrue
fabrikWeather.xhtmlfalsenulltrue
kernel.xhtmlfalsenulltrue
contextjs.xhtmlfalsenulltrue
fabrikStudiozeit.xhtmlfalsenulltrue
wikiGraphLayout.xhtmlfalsenulltrue
RectanglePacker.xhtmlfalsenulltrue
TreeWikiViz.xhtmlfalsenulltrue
TreeWikiViz2.xhtmlfalsenulltrue
DriveACar.xhtmlfalsenulltrue
SimpleConstraints.xhtmlfalsenulltrue
SimpleConstraints2.xhtmlfalsenulltrue
null73