Lively Kernel canvas
// this script is evaluated on world load
//Config.loadTests.push('MorphTest')
/*
var requirements = Config.loadTests.collect(function(ea) { return 'Tests/' + ea + '.js'});
if (requirements.length === 0) requirements.push('TestFramework.js');
require(requirements).toRun(function(currentModule) {
TestRunner.openIn();
console.log('Tests loaded: ............................. ' + TestCase.allSubclasses().length);
});
*/Config.modulesOnWorldLoad.push('lively.ide')webfileModel = {
getFile: function() { return new URL('http://lively-kernel.org/repository/lively-wiki/') },
getRootNode: function() { return new URL('http://lively-kernel.org/repository/lively-wiki/') },
setDirectoryList: function(dlist) { console.log('setting dlist..........'); this._directoryList = dlist },
}function() {
this.notify('Please wait, fetching data');
var request = new NetRequest({model: this, setResponseXML: 'onDirectoryContentUpdate'})
console.log('Propfind on ' + this.getURL().toString());
request.propfind(this.getURL().toString(), 'infinity')
}function(propfindXML) {
this.notify('Please wait, extracting version infos');
var rawNodes = new Query("/D:multistatus/D:response").findAll(propfindXML.documentElement);
var baseUrl = this.getURL();
var colItems = rawNodes.map(function(rawNode) { return new lively.storage.CollectionItem(rawNode, baseUrl) });
colItems = colItems.select(function(ea) { return ea.shortName().match(this.getFilter()) }, this);
var list;
var time = Functions.timeToRun(function() {
list = colItems
.collect(function(ea) { return this.createListItemFor(ea) }, this)
.sort(function(a,b) { return b.value.versionInfo.rev - a.value.versionInfo.rev });
list = list.slice(0, this.maxListLength);
}.bind(this))
console.log('time: ' + time + 'ms');
this.setVersionList(list);
}function(colItem) {
var versionInfo = colItem.asSVNVersionInfo();
return {
isListItem: true,
string: colItem.shortName() + ' (' + versionInfo.rev + ' -- ' + versionInfo.author + ')',
value: {
colItem: colItem,
versionInfo: versionInfo,
urlString: colItem.toURL().toString()
}
};
}
10000.244425367542953Wikicontroltrue
model={};webfilePlug={model:webfileModel,getFile:"getFile",setDirectoryList:'setDirectoryList',getRootNode:'getRootNode'}webfile=newlively.storage.WebFile(webfilePlug);webfile.getFile()webfile.startFetchingFile()webfile.updateViewwebfile.fetchContent(webfile.getFile())webfile.getModelValue('getDirectoryList')webfileModel._directoryList
nulltruetruetruefalse11truetruefalse
false1truefalsetruetruefalse
nullfalsetruenullfalse
falsenullfalse
false
false
falsenullfalsefalsenullnullnullnullfalse
nulltrueurl=URL.source.getDirectory();model=Record.newPlainInstance({URL:url,DirectoryContent:[]});webfile=newlively.storage.WebFile(model.newRelay({CollectionItems:"+DirectoryContent",RootNode:"-URL"}));webfile.startFetchingFilefunction(){if(this.modelPlug)this.updateView(webfile.modelPlug.getFile,this);}model.getDirectoryContent()webfile.getModel()webfile.fetchContent(url)Functions.timeToRun(function(){webfile.fetchContent(url,true)})model.getDirectoryContent()[0].asSVNVersionInfo()model.getDirectoryContent()[0].name()model.getDirectoryContent()[1].toURL().isLeaf()model.getDirectoryContent()[0].properties()25truetruefalsetruetruefalse
false1truefalsetruetruefalse
nullfalsetruenullfalse
falsenullfalse
false
false
falsenullfalsefalsenullnullnullnullfalse
10000.027751734352484573Wikicontroltrue
10000.7874143044245979Wikicontroltrue
nulltrue//propfindrequestModel={setResponseXML:function(xml){this.responseXML=xml}}requestModel.responseXML=null;r=newNetRequest({model:requestModel,setResponseXML:'setResponseXML'})urlstring=URL.source.getDirectory()r.propfind(urlstring,'infinity')r.getStatus()Exporter.stringify(requestModel.responseXML)result=newQuery("/D:multistatus/D:response").findAll(requestModel.responseXML.documentElement);baseUrl=urlstringcolItems=result.map(function(rawNode){returnnewlively.storage.CollectionItem(rawNode,baseUrl)});wc=newLatestWikiChangesList2(newURL('http://www.lively-kernel.org/repository/webwerkstatt/'))wc.open()wc.getURL()x.toURL()colItems19truetruefalsetruetruefalse
false1truefalsetruetruefalse
nullfalsetruenullfalse
falsenullfalse
false
false
falsenullfalsefalsenullnullnullnullfalse
nullfalsetruenullfalse
LatestWikiChangesList2falsenullfalse
false
false
falsenullfalse
initializerfalsetruefalse0false
requireidefalsetruefalse0false
webfilemodelfalsetruefalse0false
LatestWikiChangesList2falsetruefalse0false4033nullnulltruenullfalsenulltruetrue
1true
null
null
null
nulltruetrue
searchForNewestFilesfalsetruefalse0false
onDirectoryContentUpdatefalsetruefalse0false
createListItemForfalsetruefalse0false403-1nullnulltruefalsenullnulltruetrue
1true
null
null
null
nulltruetrue
1true
LatestWikiChangesList.subclass('LatestWikiChangesList2',{searchForNewestFiles:function(){this.notify('Pleasewait,fetchingdata');varrequest=newNetRequest({model:this,setResponseXML:'onDirectoryContentUpdate'})console.log('Propfindon'+this.getURL().toString());request.propfind(this.getURL().toString(),'infinity')},onDirectoryContentUpdate:function(propfindXML){this.notify('Pleasewait,extractingversioninfos');varrawNodes=newQuery("/D:multistatus/D:response").findAll(propfindXML.documentElement);varbaseUrl=this.getURL();varcolItems=rawNodes.map(function(rawNode){returnnewlively.storage.CollectionItem(rawNode,baseUrl)});colItems=colItems.select(function(ea){returnea.shortName().match(this.getFilter())},this);varlist;vartime=Functions.timeToRun(function(){list=colItems.collect(function(ea){returnthis.createListItemFor(ea)},this).sort(function(a,b){returnb.value.versionInfo.rev-a.value.versionInfo.rev});list=list.slice(0,this.maxListLength);}.bind(this))console.log('time:'+time+'ms');this.setVersionList(list);},createListItemFor:function(colItem){varversionInfo=colItem.asSVNVersionInfo();return{isListItem:true,string:colItem.shortName()+'('+versionInfo.rev+'--'+versionInfo.author+')',value:{colItem:colItem,versionInfo:versionInfo,urlString:colItem.toURL().toString()}};},});1truetrue2000000truetruetruetrue
Browseworld...falsenull
Pushchangesbackfalsenull
Refreshfalsenull
Evalonfalsenull
Sortfalsenull
truetruenullfalsenullnullnullnullfalse
Refreshfalsenullfalsefalsenull
Filenamefilterfalsenullfalsefalse
FixBoldTextComposition.xhtml(2402--jenslincke)falsetruefalse0false
Draft.xhtml(2399--jenslincke)falsetruefalse0false
kernelSimpleObjects.xhtml(2398--jenslincke)falsetruefalse0false
kernel.xhtml(2396--jenslincke)falsetruefalse0false
wiki.xhtml(2394--jenslincke)falsetruefalse0false
wikiBrowser.xhtml(2392--jenslincke)falsetruefalse0false
wikiGraphLayout.xhtml(2389--robertkrahn)falsetruefalse0false
weather.xhtml(2385--jenslincke)falsetruefalse0false
journal.xhtml(2370--jenslincke)falsetruefalse0false
fabrikImageSearch.xhtml(2358--jenslincke)falsetruefalse0false
wikiScripts3.xhtml(2329--jenslincke)falsetruefalse0false
GenerateNodes.xhtml(2324--jenslincke)falsetruefalse0false
Empty.xhtml(2321--jenslincke)falsetruefalse0false
contextjs.xhtml(2321--jenslincke)falsetruefalse0false
fabrikStudiozeit.xhtml(2321--jenslincke)falsetruefalse0false
fabrikBrowser.xhtml(2321--jenslincke)falsetruefalse0false
fabrikWeather.xhtml(2321--jenslincke)falsetruefalse0false
overview.xhtml(2321--jenslincke)falsetruefalse0false
contextjsPersonExample.xhtml(2321--jenslincke)falsetruefalse0false
fabrik.xhtml(2321--jenslincke)falsetruefalse0false
contextjsTimeZoneExample.xhtml(2316--jenslincke)falsetruefalse0false
DraftFormatingScript.xhtml(2302--jenslincke)falsetruefalse0false
fabrikF2C.xhtml(2288--jenslincke)falsetruefalse0false
LivelyTodo.xhtml(2266--jenslincke)falsetruefalse0false
FabrikTodo.xhtml(2246--jenslincke)falsetruefalse0false
FabrikEditorExample.xhtml(2241--jenslincke)falsetruefalse0false
FabrikImageSearch.xhtml(2239--jenslincke)falsetruefalse0false
FabrikImageSearchApp.xhtml(2236--jenslincke)falsetruefalse0false
FabrikBrowserExample.xhtml(2232--jenslincke)falsetruefalse0false
FabrikBrowserExample2.xhtml(2231--jenslincke)falsetruefalse0false
test.xhtml(2229--jenslincke)falsetruefalse0false
ObjectHeap.xhtml(2224--jenslincke)falsetruefalse0false
ProjectSeminarTopics2.xhtml(2223--jenslincke)falsetruefalse0false
BugBrokenFunctionComponent.xhtml(2201--jenslincke)falsetruefalse0false
Jens.xhtml(2193--jenslincke)falsetruefalse0false
ProjectSeminarDemo.xhtml(2191--jenslincke)falsetruefalse0false
ProjectSeminarOrganization.xhtml(2191--jenslincke)falsetruefalse0false
ProjectSemintarSlides.xhtml(2191--jenslincke)falsetruefalse0false
ProjectSeminarTopicsOverview.xhtml(2191--jenslincke)falsetruefalse0false
ProjectSeminarZoomableUMLCodeEditor.xhtml(2191--jenslincke)falsetruefalse0false
ProjectSeminarMotivation.xhtml(2191--jenslincke)falsetruefalse0false
ProjectSeminarSummary.xhtml(2191--jenslincke)falsetruefalse0false
ProjectSemintarMotivation.xhtml(2191--jenslincke)falsetruefalse0false
ContextJSMeta01.xhtml(2191--jenslincke)falsetruefalse0false
ProjectSeminarAboutLively.xhtml(2191--jenslincke)falsetruefalse0false
ContextJSObjectScope.xhtml(2191--jenslincke)falsetruefalse0false
WebWerkstattTodo.xhtml(2191--jenslincke)falsetruefalse0false
ContextJSTestRunner.xhtml(2191--jenslincke)falsetruefalse0false
LivelyAppsNotes.xhtml(2191--jenslincke)falsetruefalse0false
ProjectSeminarTopics.xhtml(2191--jenslincke)falsetruefalse0false2800nullnulltruefalsefalsenulltruetruefalse
false1truefalsetruetruefalse
truefalse
nullfalsetruenullfalse
Latestchangesfalsenullfalse
false
false
falsenullfalsefalsenullnullnullnullfalsenull39