(http://lively-kernel.org/repository/webwerkstatt/core/lively/lang/Closure.js?1408384643239:111:29), :4:60)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/lively/lang/Closure.js?1408384643239:111:29), :7:18)\n at withLayers (http://lively-kernel.org/repository/webwerkstatt/core/cop/Layers.js?1408384644402:492:20)","prevScroll":[0,192],"showsHalos":false,"loadingMorph":{"__isSmartRef__":true,"id":4082},"attributeConnections":[{"__isSmartRef__":true,"id":4210}],"doNotSerialize":["$$savedWorldAsURL","$$baseThemeStyleSheet"],"doNotCopyProperties":["$$savedWorldAsURL"],"_ClipMode":"visible","lastModified":{"__isSmartRef__":true,"id":4212},"lastEvt":{"__isSmartRef__":true,"id":4213},"_Scale":0.9213881409188818,"_Scroll":[0,192],"#startLetters":"with","zoomLevel":1.1104684788895316,"_StyleSheet":{"__isSmartRef__":true,"id":4218},"savedWorldAsURL":{"__isSmartRef__":true,"id":4223},"__serializedExpressions__":["eventStartPos","_Position","pastePositionInWorld","scrollOffset"],"__LivelyClassName__":"lively.morphic.World","__SourceModuleName__":"Global.lively.morphic.Core","eventStartPos":"lively.pt(965.9,1365.3)","_Position":"lively.pt(-4.0,-4.0)","pastePositionInWorld":"lively.pt(1070.0,572.0)","scrollOffset":"lively.pt(0.0,0.0)"},"1":{"submorphs":[{"__isSmartRef__":true,"id":2},{"__isSmartRef__":true,"id":803},{"__isSmartRef__":true,"id":2155},{"__isSmartRef__":true,"id":2359},{"__isSmartRef__":true,"id":2390},{"__isSmartRef__":true,"id":3679}],"scripts":[],"id":"38FB6A3C-959A-4B02-8B66-3DDACCE8F51C","shape":{"__isSmartRef__":true,"id":3738},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"WorldAnalysis","partsBinMetaInfo":{"__isSmartRef__":true,"id":3739},"eventHandler":{"__isSmartRef__":true,"id":3789},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","F2677A9D-5855-4DF2-B248-94545B34B762","5790943C-F26C-46C0-A5B1-314DCF44F5D7"],"partTests":{"__isSmartRef__":true,"id":3790},"_ClipMode":"visible","moved":true,"owner":{"__isSmartRef__":true,"id":0},"isBeingDragged":false,"layout":{"__isSmartRef__":true,"id":3795},"prevScroll":[0,0],"startLoadingWorlds":1379526534270,"doNotSerialize":["worlds","worldURLs","tables","urls","currentTable","ResizeLayer"],"#startLetters":"updateL","stopLoadingWorlds":false,"lastSortedColumn":null,"partURLs":[{"__isSmartRef__":true,"id":3796},{"__isSmartRef__":true,"id":3797},{"__isSmartRef__":true,"id":3798},{"__isSmartRef__":true,"id":3799},{"__isSmartRef__":true,"id":3800},{"__isSmartRef__":true,"id":3801},{"__isSmartRef__":true,"id":3802},{"__isSmartRef__":true,"id":3803},{"__isSmartRef__":true,"id":3804},{"__isSmartRef__":true,"id":3805},{"__isSmartRef__":true,"id":3806},{"__isSmartRef__":true,"id":3807},{"__isSmartRef__":true,"id":3808},{"__isSmartRef__":true,"id":3809},{"__isSmartRef__":true,"id":3810},{"__isSmartRef__":true,"id":3811},{"__isSmartRef__":true,"id":3812},{"__isSmartRef__":true,"id":3813},{"__isSmartRef__":true,"id":3814}],"currentTableName":"Delta","onlyLoad":false,"loadAllVersions":false,"progressBar":{"__isSmartRef__":true,"id":3815},"onlyLoadHeadRevision":true,"LazyToggleButton":false,"loadedURLsWithRev":false,"onlyLoadHeadRev":true,"parts":{"__isSmartRef__":true,"id":3865},"morphs":[],"isCopyMorphRef":true,"morphRefId":1,"_Rotation":0,"_Scale":1,"grabbingEnabled":false,"loadAllObjects":true,"dryMode":false,"stopped":false,"continueOnErrorEnabled":true,"currenColumnName":"Delta","showTable":"MessageLogLoadURL","toggleSortCurrentHistgramBy":true,"updateCurrentHistgram":"20","isInLayoutCycle":false,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3866},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(22.0,64.1)","distanceToDragEvent":"lively.pt(977.7,-16.4)"},"2":{"submorphs":[{"__isSmartRef__":true,"id":3},{"__isSmartRef__":true,"id":15},{"__isSmartRef__":true,"id":59},{"__isSmartRef__":true,"id":98},{"__isSmartRef__":true,"id":119},{"__isSmartRef__":true,"id":159},{"__isSmartRef__":true,"id":331},{"__isSmartRef__":true,"id":365},{"__isSmartRef__":true,"id":433},{"__isSmartRef__":true,"id":451},{"__isSmartRef__":true,"id":472},{"__isSmartRef__":true,"id":493},{"__isSmartRef__":true,"id":514},{"__isSmartRef__":true,"id":548},{"__isSmartRef__":true,"id":566},{"__isSmartRef__":true,"id":589},{"__isSmartRef__":true,"id":610},{"__isSmartRef__":true,"id":631}],"scripts":[],"id":"5255B7A6-7C6E-4A91-A7A3-A011615CDDCF","shape":{"__isSmartRef__":true,"id":639},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"AnalysisPane","partsBinMetaInfo":{"__isSmartRef__":true,"id":640},"eventHandler":{"__isSmartRef__":true,"id":674},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","F2677A9D-5855-4DF2-B248-94545B34B762"],"partTests":{"__isSmartRef__":true,"id":675},"_ClipMode":"visible","moved":true,"owner":{"__isSmartRef__":true,"id":1},"isBeingDragged":false,"prevScroll":[0,0],"layout":{"__isSmartRef__":true,"id":680},"_Rotation":0,"_Scale":1,"grabbingEnabled":false,"isCopyMorphRef":true,"morphRefId":3,"currentTable":{"__isSmartRef__":true,"id":681},"currenColumnName":"Delta","doNotSerialize":["tables"],"#startLetters":"getFiltere","reverseTableEnabled":true,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":682},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(10.0,962.0)","distanceToDragEvent":"lively.pt(685.1,-15.6)"},"3":{"submorphs":[],"scripts":[],"id":"5B14D14F-F3DA-4B55-A43F-B53A604AC336","shape":{"__isSmartRef__":true,"id":4},"__layered_droppingEnabled__":true,"halosEnabled":true,"itemList":["CountClasses","CountScriptsByName","CountScriptsBySource","FindParts","ListsPartsTools"],"showsHalos":false,"name":"TableList","partsBinMetaInfo":{"__isSmartRef__":true,"id":5},"_ClipMode":"auto","eventHandler":{"__isSmartRef__":true,"id":9},"derivationIds":[2860,"30186701-49A1-49AD-A42F-27F425D92029","ADD09343-51ED-44F6-85F3-257C9A52C897","373E9C7D-54CC-4F0E-9F94-642F76E5A534","FFAB9C55-4157-4267-BDBD-662A3858F06D"],"isBeingDragged":false,"changeTriggered":true,"grabbingEnabled":false,"_FontSize":10,"moved":true,"layout":{"__isSmartRef__":true,"id":10},"prevScroll":[0,144],"owner":{"__isSmartRef__":true,"id":2},"attributeConnections":[{"__isSmartRef__":true,"id":11},{"__isSmartRef__":true,"id":13}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"_Rotation":0,"_Scale":1,"selectedLineNo":4,"selection":"ListsPartsTools","__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(162.1,52.4)","distanceToDragEvent":"lively.pt(83.8,-19.2)"},"4":{"_BorderWidth":0,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(158.8,170.0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(243,243,243)","_Padding":"lively.rect(0,0,0,0)"},"5":{"partsSpaceName":"PartsBin/Inputs","migrationLevel":4,"partName":"List","comment":"a list morph","changes":[{"__isSmartRef__":true,"id":6}],"lastModifiedDate":{"__isSmartRef__":true,"id":8},"revisionOnLoad":149013,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"6":{"date":{"__isSmartRef__":true,"id":7},"author":"undefined","message":"Click on scrollbar does not grab list","id":"16AABF98-2E7D-4875-9E66-CF86EB74AF93"},"7":{"isSerializedDate":true,"string":"Thu Mar 29 2012 14:39:24 GMT+0200 (W. Europe Summer Time)"},"8":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"9":{"morph":{"__isSmartRef__":true,"id":3},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"10":{"resizeHeight":false},"11":{"sourceObj":{"__isSmartRef__":true,"id":3},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":2},"targetMethodName":"selectTable","varMapping":{"__isSmartRef__":true,"id":12},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"12":{"source":{"__isSmartRef__":true,"id":3},"target":{"__isSmartRef__":true,"id":2}},"13":{"sourceObj":{"__isSmartRef__":true,"id":3},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":2},"targetMethodName":"showTable","varMapping":{"__isSmartRef__":true,"id":14},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"14":{"source":{"__isSmartRef__":true,"id":3},"target":{"__isSmartRef__":true,"id":2}},"15":{"#startLetters":"","_ClipMode":"visible","_traitConfig_":[{"__isSmartRef__":true,"id":16},{"__isSmartRef__":true,"id":18}],"attributeConnections":[{"__isSmartRef__":true,"id":20}],"data":[{"__isSmartRef__":true,"id":34}],"derivationIds":[null,"3C1D17F3-0044-4726-B85A-A251A1F703B8","E43FA7DD-9693-40B9-8E88-821D5DCC0811","9FB8D17D-9023-44E8-9410-8AD268E25C75","9BD8C9A7-2A05-43C2-B96B-5EBD5ED44A95","54E9039F-4D91-48B7-B91C-8338A0BEC1F7","1A5EB7AE-1AC3-4FA6-8CF2-0835DF44CFA1","70EF3E19-6C17-4AF7-8C9B-406C7086FDB9"],"__layered_droppingEnabled__":true,"eventHandler":{"__isSmartRef__":true,"id":35},"halosEnabled":true,"id":"BA0223C6-C844-40FD-8A2B-A8F714CA9DE0","isBeingDragged":false,"layout":{"__isSmartRef__":true,"id":36},"name":"HistogramVis","owner":{"__isSmartRef__":true,"id":2},"partsBinMetaInfo":{"__isSmartRef__":true,"id":37},"prevScroll":[0,0],"scripts":[],"shape":{"__isSmartRef__":true,"id":22},"showsHalos":false,"submorphs":[],"xUnit":"","yUnit":"","chart":[[]],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent","updateDelayed"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":38},"__LivelyClassName__":"lively.morphic.HtmlWrapperMorph","__SourceModuleName__":"Global.lively.morphic.AdditionalMorphs","_Position":"lively.pt(7.2,338.5)","distanceToDragEvent":"lively.pt(205.5,-14.5)","updateDelayed":"lively.pt(296.0,202.0)"},"16":{"options":{"__isSmartRef__":true,"id":17},"traitName":"d3WrapperTrait"},"17":{},"18":{"options":{"__isSmartRef__":true,"id":19},"traitName":"apps.d3Interface.d3WrapperTrait"},"19":{},"20":{"dependendConnections":[{"__isSmartRef__":true,"id":21},{"__isSmartRef__":true,"id":21},{"__isSmartRef__":true,"id":21},{"__isSmartRef__":true,"id":21},{"__isSmartRef__":true,"id":23}],"sourceAttrName":"extent","sourceObj":{"__isSmartRef__":true,"id":15},"targetMethodName":"updateDelayed","targetObj":{"__isSmartRef__":true,"id":15},"attributeConnections":[{"__isSmartRef__":true,"id":26},{"__isSmartRef__":true,"id":28},{"__isSmartRef__":true,"id":30},{"__isSmartRef__":true,"id":32}],"doNotSerialize":["$$converterString","$$updaterString","$$varMapping"],"doNotCopyProperties":["$$converterString","$$updaterString","$$varMapping"],"__LivelyClassName__":"lively.morphic.GeometryConnection","__SourceModuleName__":"Global.lively.bindings.GeometryBindings"},"21":{"dependedBy":{"__isSmartRef__":true,"id":20},"sourceAttrName":"_Extent","sourceObj":{"__isSmartRef__":true,"id":22},"targetMethodName":"updateDelayed","targetObj":{"__isSmartRef__":true,"id":15},"varMapping":{"__isSmartRef__":true,"id":25},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"22":{"_BorderRadius":0,"_BorderStyle":"solid","_BorderWidth":1.036,"_Opacity":1,"attributeConnections":[{"__isSmartRef__":true,"id":21},{"__isSmartRef__":true,"id":23}],"doNotCopyProperties":["$$_Extent"],"doNotSerialize":["$$_Extent"],"stringifiedShapeNode":"
","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["_BorderColor","_Fill","_Padding","_Position","extent","_Extent"],"__LivelyClassName__":"lively.morphic.Shapes.External","__SourceModuleName__":"Global.lively.morphic.Shapes","_BorderColor":"Color.rgb(95,94,95)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)","_Position":"lively.pt(0.0,0.0)","extent":"lively.pt(298.0,204.0)","_Extent":"lively.pt(296.0,202.0)"},"23":{"sourceObj":{"__isSmartRef__":true,"id":22},"sourceAttrName":"_Extent","targetObj":{"__isSmartRef__":true,"id":20},"targetMethodName":"update","varMapping":{"__isSmartRef__":true,"id":24},"dependedBy":{"__isSmartRef__":true,"id":20},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"24":{"source":{"__isSmartRef__":true,"id":22},"target":{"__isSmartRef__":true,"id":20}},"25":{"source":{"__isSmartRef__":true,"id":22},"target":{"__isSmartRef__":true,"id":15}},"26":{"sourceObj":{"__isSmartRef__":true,"id":20},"sourceAttrName":"converterString","targetObj":{"__isSmartRef__":true,"id":21},"targetMethodName":"setConverter","varMapping":{"__isSmartRef__":true,"id":27},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"27":{"source":{"__isSmartRef__":true,"id":20},"target":{"__isSmartRef__":true,"id":21}},"28":{"sourceObj":{"__isSmartRef__":true,"id":20},"sourceAttrName":"updaterString","targetObj":{"__isSmartRef__":true,"id":21},"targetMethodName":"setUpdater","varMapping":{"__isSmartRef__":true,"id":29},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"29":{"source":{"__isSmartRef__":true,"id":20},"target":{"__isSmartRef__":true,"id":21}},"30":{"sourceObj":{"__isSmartRef__":true,"id":20},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":21},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":31},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"31":{"source":{"__isSmartRef__":true,"id":20},"target":{"__isSmartRef__":true,"id":21}},"32":{"sourceObj":{"__isSmartRef__":true,"id":20},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":23},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":33},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"33":{"source":{"__isSmartRef__":true,"id":20},"target":{"__isSmartRef__":true,"id":23}},"34":{"x":"undefined","y":151},"35":{"morph":{"__isSmartRef__":true,"id":15},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"36":{"resizeHeight":false,"resizeWidth":false},"37":{"#startLetters":"","partName":"d3Wrapper","requiredModules":["apps.d3Interface"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"38":{"drawChart":{"__isSmartRef__":true,"id":39},"drawHorizontalRules":{"__isSmartRef__":true,"id":43},"drawVerticalRules":{"__isSmartRef__":true,"id":47},"reset":{"__isSmartRef__":true,"id":51},"update":{"__isSmartRef__":true,"id":55}},"39":{"varMapping":{"__isSmartRef__":true,"id":40},"source":"function drawChart(chart, xScale, yScale) {\n chart.selectAll(\".chartElement\").remove()\n\n var chartElements = chart.selectAll(\".chartElement\")\n .data(this.data)\n\n chartElements.enter()\n .append(\"div\")\n .attr('class', 'chartElement')\n .style('background-color', Color.darkGray.toCSSString())\n\n chartElements\n .style(\"height\", yScale.wrap(function($p, d, i) { return $p(d.y) }))\n .style(\"left\", xScale.wrap(function($p, d, i) { return $p(d.x) + 'px' }))\n .style('width', xScale.rangeBand.wrap(function($p, d, i) { return $p(d.x) + 'px' }))\n .style(\"bottom\", yScale.range()[0])\n .style('text-align', 'center')\n .style('position', 'absolute')\n // .text(function(d) { return d; });\n\n chartElements.exit()\n .remove();\n}","funcProperties":{"__isSmartRef__":true,"id":41},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"40":{"this":{"__isSmartRef__":true,"id":15}},"41":{"timestamp":{"__isSmartRef__":true,"id":42},"user":"jenslincke","tags":[]},"42":{"isSerializedDate":true,"string":"Wed Oct 24 2012 17:33:30 GMT+0200 (W. Europe Summer Time)"},"43":{"varMapping":{"__isSmartRef__":true,"id":44},"source":"function drawHorizontalRules(chart, xScale, yScale) {\n chart.selectAll(\".horizontal-rule\").remove();\n\n var yUnit = this.yUnit;\n\n var hrules = chart.selectAll(\".horizontal-rule\").data(yScale.ticks(3));\n\n hrules.enter()\n .append(\"div\")\n .attr(\"class\", \"horizontal-rule\")\n .append('div') // label at the right\n .style('float', 'right')\n .style('position', 'relative')\n .style('margin-top', '-1em')\n .style('font', '0.6em Tahoma')\n .style('left', 35 + 'px')\n .text(function(d) { return d + ' ' + yUnit});\n\n hrules\n .style('border-top', '1px dashed silver')\n .style('vertical-align', 'top')\n .style(\"bottom\", yScale)\n .style(\"left\", xScale.rangeExtent()[0] + 'px')\n .style(\"height\", '1px')\n .style('width', xScale.rangeExtent()[1] - xScale.rangeExtent()[0] + 'px')\n .style('position', 'absolute')\n\n hrules.exit()\n .remove()\n}","funcProperties":{"__isSmartRef__":true,"id":45},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"44":{"this":{"__isSmartRef__":true,"id":15}},"45":{"timestamp":{"__isSmartRef__":true,"id":46},"user":"jenslincke","tags":[]},"46":{"isSerializedDate":true,"string":"Wed Oct 24 2012 17:33:58 GMT+0200 (W. Europe Summer Time)"},"47":{"varMapping":{"__isSmartRef__":true,"id":48},"source":"function drawVerticalRules(chart, xScale, yScale) {\n chart.selectAll(\".vertical-rule\").remove();\n\n var xUnit = this.xUnit,\n tickScale = d3.scale.linear()\n .domain([d3.min(xScale.domain()), d3.max(xScale.domain())])\n .range([xScale.rangeExtent()[0] + 5 + 'px', xScale.rangeExtent()[1] - 5 + 'px']);\n\n var hrules = chart.selectAll(\".vertical-rule\").data(tickScale.ticks(5));\n\n hrules.enter()\n .append(\"div\")\n .attr(\"class\", \"vertical-rule\")\n .append('div') // label at the right\n .style('position', 'relative')\n .style('top', '2px')\n .style('text-align', 'center')\n .style('width', '20px')\n .style('left', '-10px')\n .style('font', '0.4em Tahoma')\n .text(function(d) { return d + ' ' + xUnit });\n\n hrules\n .style('position', 'absolute')\n .style(\"top\", yScale.range()[1])\n .style('left', tickScale)\n .style('margin-left', '-5px')\n\n hrules.exit()\n .remove()\n}","funcProperties":{"__isSmartRef__":true,"id":49},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"48":{"this":{"__isSmartRef__":true,"id":15}},"49":{"timestamp":{"__isSmartRef__":true,"id":50},"user":"jenslincke","tags":[]},"50":{"isSerializedDate":true,"string":"Wed Oct 24 2012 17:34:22 GMT+0200 (W. Europe Summer Time)"},"51":{"varMapping":{"__isSmartRef__":true,"id":52},"source":"function reset() {\n // this.submorphs.invoke('remove');\n this.doNotSerialize = ['chart']\n \n this.data = [{x: 1, y: 1}, {x: 2, y: 2}, {x: 3, y:3}];\n // this.startStepping(1000, 'update');\n this.xUnit = 'words';\n this.yUnit = 'ms';\n // this.stopStepping()\n}","funcProperties":{"__isSmartRef__":true,"id":53},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"52":{"this":{"__isSmartRef__":true,"id":15}},"53":{"timestamp":{"__isSmartRef__":true,"id":54},"user":"jenslincke","tags":[]},"54":{"isSerializedDate":true,"string":"Tue Jul 30 2013 20:12:12 GMT+0200 (W. Europe Summer Time)"},"55":{"varMapping":{"__isSmartRef__":true,"id":56},"source":"function update() {\n\n // chart is the shapeNode\n var chart = d3.select(this.renderContext().shapeNode);\n this.chart = chart\n\n if (!this.data || this.data.length === 0) {\n chart.selectAll(\".chartElement\").remove(); return; }\n\n // define the properties used in the viz\n var barsBounds = {\n left: 12, top: this.getExtent().y ,\n right: this.getExtent().x - 40, bottom: 1};\n\n // x scale is based on indexes of data, has a 0.1 padding\n var xValues = this.data.pluck('x'),\n xScale = d3.scale.ordinal()\n .domain(xValues)\n .range([barsBounds.left, barsBounds.right])\n .rangeBands([barsBounds.left, barsBounds.right], 0.1);\n\n // y scale is just linear\n var yValues = this.data.pluck('y'),\n yScale = d3.scale.linear()\n .domain([d3.min(yValues), d3.max(yValues)])\n .range([barsBounds.bottom + 'px', barsBounds.top + 'px']);\n\n // update / add / remove bars and rules\n this.drawChart(chart, xScale, yScale);\n this.drawHorizontalRules(chart, xScale, yScale);\n //this.drawVerticalRules(chart, xScale, yScale);\n}","funcProperties":{"__isSmartRef__":true,"id":57},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"56":{"this":{"__isSmartRef__":true,"id":15}},"57":{"timestamp":{"__isSmartRef__":true,"id":58},"user":"jenslincke","tags":[]},"58":{"isSerializedDate":true,"string":"Tue Jul 30 2013 20:40:57 GMT+0200 (W. Europe Summer Time)"},"59":{"submorphs":[{"__isSmartRef__":true,"id":60}],"scripts":[],"id":"8E5D483D-DB7D-4964-9967-3DE0BDEA711D","shape":{"__isSmartRef__":true,"id":66},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"HistogramClip","partsBinMetaInfo":{"__isSmartRef__":true,"id":67},"eventHandler":{"__isSmartRef__":true,"id":91},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","6C496320-0F4B-4470-891E-47EA47A268E9","F718D618-7846-406F-9EE2-5AA4CE5CE6D6"],"partTests":{"__isSmartRef__":true,"id":92},"_ClipMode":"auto","moved":true,"_PreviousBorderWidth":1,"prevScroll":[0,0],"layout":{"__isSmartRef__":true,"id":97},"owner":{"__isSmartRef__":true,"id":2},"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(8.3,552.6)","distanceToDragEvent":"lively.pt(198.2,-17.0)"},"60":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":61},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":62}],"eventHandler":{"__isSmartRef__":true,"id":64},"_ClipMode":"visible","derivationIds":["571FF8A2-F55B-4BE7-B601-2B8C499D959E","BD26E63F-F104-4D31-945F-27B8B5D85FFF"],"id":"3681BD76-C24D-4152-B19A-2401E3278089","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":false,"_WordBreak":null,"fixedHeight":true,"_InputAllowed":true,"_HandStyle":null,"allowInput":true,"_FontFamily":"Monaco,monospace","_FontSize":7,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":59},"layout":{"__isSmartRef__":true,"id":65},"syntaxHighlightingWhileTyping":false,"accessibleInInactiveWindow":true,"_lastSyntaxHighlightTime":3,"showsHalos":false,"name":"Histogram","#startLetters":"scrol","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"prevScroll":[0,0],"isBeingDragged":false,"_PreviousBorderWidth":1,"previousSelection":[111,111],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_TextColor","_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(1.0,-1.6)","distanceToDragEvent":"lively.pt(321.3,-9.2)"},"61":{"_BorderWidth":0,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(69.0,174.5)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(95,94,95)","_Fill":"Color.rgb(243,243,243)"},"62":{"style":{"__isSmartRef__":true,"id":63},"chunkOwner":{"__isSmartRef__":true,"id":60},"_id":"_1448","storedString":"151 undefined\n151 TOTAL ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"63":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"64":{"morph":{"__isSmartRef__":true,"id":60},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"65":{"resizeWidth":false,"resizeHeight":true},"66":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(298.0,194.0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,204)","_Padding":"lively.rect(0,0,0,0)"},"67":{"partsSpaceName":"PartsBin/Basic","comment":"A morph hierarchy visualization with bundle view simulation of attribute connections.","migrationLevel":4,"partName":"Rectangle","changes":[{"__isSmartRef__":true,"id":68},{"__isSmartRef__":true,"id":70},{"__isSmartRef__":true,"id":72},{"__isSmartRef__":true,"id":74},{"__isSmartRef__":true,"id":76},{"__isSmartRef__":true,"id":78},{"__isSmartRef__":true,"id":80},{"__isSmartRef__":true,"id":82},{"__isSmartRef__":true,"id":84},{"__isSmartRef__":true,"id":86},{"__isSmartRef__":true,"id":88}],"lastModifiedDate":{"__isSmartRef__":true,"id":90},"revisionOnLoad":190152,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"68":{"date":{"__isSmartRef__":true,"id":69},"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20"},"69":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:47:05 GMT+0100 (W. Europe Standard Time)"},"70":{"date":{"__isSmartRef__":true,"id":71},"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2"},"71":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:42:31 GMT+0100 (W. Europe Standard Time)"},"72":{"date":{"__isSmartRef__":true,"id":73},"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205"},"73":{"isSerializedDate":true,"string":"Thu Nov 22 2012 10:35:51 GMT+0100 (W. Europe Standard Time)"},"74":{"date":{"__isSmartRef__":true,"id":75},"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8"},"75":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"76":{"date":{"__isSmartRef__":true,"id":77},"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350"},"77":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"78":{"date":{"__isSmartRef__":true,"id":79},"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7"},"79":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"80":{"date":{"__isSmartRef__":true,"id":81},"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B"},"81":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"82":{"date":{"__isSmartRef__":true,"id":83},"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2"},"83":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"84":{"date":{"__isSmartRef__":true,"id":85},"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC"},"85":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"86":{"date":{"__isSmartRef__":true,"id":87},"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23"},"87":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"88":{"date":{"__isSmartRef__":true,"id":89},"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8"},"89":{"isSerializedDate":true,"string":"Wed Jan 23 2013 12:57:18 GMT+0100 (W. Europe Standard Time)"},"90":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"91":{"morph":{"__isSmartRef__":true,"id":59},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"92":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":93}},"93":{"test01IsMorph":{"__isSmartRef__":true,"id":94}},"94":{"varMapping":{"__isSmartRef__":true,"id":95},"source":"function test01IsMorph(aPart) {\n this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":96},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"95":{"this":{"__isSmartRef__":true,"id":92}},"96":{},"97":{"resizeHeight":false,"resizeWidth":false},"98":{"submorphs":[],"scripts":[],"id":"53CC0525-EFD6-45BF-A5E3-C62F7E17D3DD","shape":{"__isSmartRef__":true,"id":99},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":14,"name":"Text4","partsBinMetaInfo":{"__isSmartRef__":true,"id":100},"textChunks":[{"__isSmartRef__":true,"id":116}],"charsReplaced":"Some Text","lastFindLoc":9,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":118},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","D171B791-FA0C-4E5B-99D4-9E4BA7642D7C","486494E5-DE2E-40A1-93F7-7DC692A176EB"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"owner":{"__isSmartRef__":true,"id":2},"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(4.1,265.8)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(96.5,-10.9)"},"99":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(128.7,26.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"100":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":101},{"__isSmartRef__":true,"id":103},{"__isSmartRef__":true,"id":105},{"__isSmartRef__":true,"id":107},{"__isSmartRef__":true,"id":109},{"__isSmartRef__":true,"id":111},{"__isSmartRef__":true,"id":113}],"lastModifiedDate":{"__isSmartRef__":true,"id":115},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"101":{"date":{"__isSmartRef__":true,"id":102},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"102":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"103":{"date":{"__isSmartRef__":true,"id":104},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"104":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"105":{"date":{"__isSmartRef__":true,"id":106},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"106":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"107":{"date":{"__isSmartRef__":true,"id":108},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"108":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"109":{"date":{"__isSmartRef__":true,"id":110},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"110":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"111":{"date":{"__isSmartRef__":true,"id":112},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"112":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"113":{"date":{"__isSmartRef__":true,"id":114},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"114":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"115":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"116":{"style":{"__isSmartRef__":true,"id":117},"morph":{"__isSmartRef__":true,"id":98},"chunkOwner":{"__isSmartRef__":true,"id":98},"storedString":"Histogram","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"117":{"fontWeight":"bold","__serializedExpressions__":["color"],"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore","color":"Color.rgb(0,79,152)"},"118":{"morph":{"__isSmartRef__":true,"id":98},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"119":{"submorphs":[{"__isSmartRef__":true,"id":120}],"scripts":[],"id":"D47A2EBD-A4A5-43E2-BFC4-D7E6C8EE5420","shape":{"__isSmartRef__":true,"id":125},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"registeredForMouseEvents":true,"value":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":126},"lighterFill":{"__isSmartRef__":true,"id":131},"label":{"__isSmartRef__":true,"id":120},"name":"SortHistogramButton","showsHalos":false,"partsBinMetaInfo":{"__isSmartRef__":true,"id":136},"attributeConnections":[{"__isSmartRef__":true,"id":142},{"__isSmartRef__":true,"id":143}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"eventHandler":{"__isSmartRef__":true,"id":145},"derivationIds":[2588,"C96F474C-1F3A-4E42-844C-DD2EB76BDD7E","E36FA68D-6317-416A-99FA-0ED81E4193DA","06258075-AC5A-4CAB-A248-A66D3213816C"],"_ClipMode":"visible","isPressed":false,"isToggled":true,"connections":{"__isSmartRef__":true,"id":146},"moved":true,"owner":{"__isSmartRef__":true,"id":2},"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"toggle":false,"_PreviousBorderWidth":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":150},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(204.0,306.0)","distanceToDragEvent":"lively.pt(72.5,-21.1)"},"120":{"submorphs":[],"scripts":[],"id":"24FB58E5-CFE8-48EB-9353-D2E6644E9CFF","shape":{"__isSmartRef__":true,"id":121},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","registeredForMouseEvents":true,"_MaxTextWidth":105,"_MaxTextHeight":null,"textStyle":null,"owner":{"__isSmartRef__":true,"id":119},"isLabel":true,"eventsAreIgnored":true,"_ClipMode":"hidden","textChunks":[{"__isSmartRef__":true,"id":122}],"_Align":"center","eventHandler":{"__isSmartRef__":true,"id":124},"_HandStyle":"default","_PointerEvents":"none","derivationIds":[2589,"44787449-DE07-40ED-B4D3-89A4A185AE29","F4BC3D0F-FF03-4EFC-B727-951442606730","277CDAEF-77E0-49F1-BD6F-1630D7ECC2E1"],"_MinTextWidth":105,"_MinTextHeight":null,"_WordBreak":"break-all","_FontSize":10,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"_TextStylingMode":true,"__serializedExpressions__":["_Position","padding","_Padding","_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(0.0,0.0)","padding":"lively.rect(5,5,0,0)","_Padding":"lively.rect(0,0,0,0)","_TextColor":"Color.rgb(0,0,0)"},"121":{"_BorderWidth":0,"_Fill":null,"_ClipMode":"hidden","__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(0,3,0,0)"},"122":{"style":{"__isSmartRef__":true,"id":123},"chunkOwner":{"__isSmartRef__":true,"id":120},"_id":"_69189","storedString":"sort by value","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"123":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"124":{"morph":{"__isSmartRef__":true,"id":120},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"125":{"_BorderWidth":1,"_Fill":{"__isSmartRef__":true,"id":126},"_BorderRadius":5.2,"_ClipMode":"visible","_BorderStylingMode":true,"_AppearanceStylingMode":true,"__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_BorderColor":"Color.rgb(214,214,214)","_Padding":"lively.rect(0,0,0,0)"},"126":{"stops":[{"__isSmartRef__":true,"id":127},{"__isSmartRef__":true,"id":128},{"__isSmartRef__":true,"id":129},{"__isSmartRef__":true,"id":130}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"127":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(245,245,245)"},"128":{"offset":0.4,"__serializedExpressions__":["color"],"color":"Color.rgb(209,209,209)"},"129":{"offset":0.6,"__serializedExpressions__":["color"],"color":"Color.rgb(209,209,209)"},"130":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(240,240,240)"},"131":{"stops":[{"__isSmartRef__":true,"id":132},{"__isSmartRef__":true,"id":133},{"__isSmartRef__":true,"id":134},{"__isSmartRef__":true,"id":135}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"132":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(250,250,250)"},"133":{"offset":0.4,"__serializedExpressions__":["color"],"color":"Color.rgb(232,232,232)"},"134":{"offset":0.6,"__serializedExpressions__":["color"],"color":"Color.rgb(232,232,232)"},"135":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(248,248,248)"},"136":{"partsSpaceName":"PartsBin/Inputs/","migrationLevel":4,"partName":"ToggleButton","comment":"A toggle button:\n- emits, toggle, enable, disable on pressed.\n- changes label","changes":[{"__isSmartRef__":true,"id":137},{"__isSmartRef__":true,"id":139}],"lastModifiedDate":{"__isSmartRef__":true,"id":141},"revisionOnLoad":192292,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"137":{"date":{"__isSmartRef__":true,"id":138},"author":"jenslincke","message":"no comment","id":"7471CE07-F2C0-4149-9684-90E843DB8DCE"},"138":{"isSerializedDate":true,"string":"Fri Feb 08 2013 10:43:34 GMT+0100 (W. Europe Standard Time)"},"139":{"date":{"__isSmartRef__":true,"id":140},"author":"jenslincke","message":"no comment","id":"02AB5A6F-7748-4A48-8C36-D334F97FC321"},"140":{"isSerializedDate":true,"string":"Thu Feb 07 2013 17:57:46 GMT+0100 (W. Europe Standard Time)"},"141":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"142":{"sourceObj":{"__isSmartRef__":true,"id":119},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":119},"targetMethodName":"onFire","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"143":{"sourceObj":{"__isSmartRef__":true,"id":119},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2},"targetMethodName":"updateCurrentTable","varMapping":{"__isSmartRef__":true,"id":144},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"144":{"source":{"__isSmartRef__":true,"id":119},"target":{"__isSmartRef__":true,"id":2}},"145":{"morph":{"__isSmartRef__":true,"id":119},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"146":{"enable":{"__isSmartRef__":true,"id":147},"disable":{"__isSmartRef__":true,"id":148},"toggle":{"__isSmartRef__":true,"id":149}},"147":{},"148":{},"149":{},"150":{"onFire":{"__isSmartRef__":true,"id":151},"reset":{"__isSmartRef__":true,"id":155}},"151":{"varMapping":{"__isSmartRef__":true,"id":152},"source":"function onFire() {\n\t\n this.isToggled = !this.isToggled;\n if (this.isToggled) {\n this.setLabel(\"sort by value\")\n lively.bindings.signal(this, 'disable', true)\n lively.bindings.signal(this, 'toggle', false)\n } else {\n this.setLabel(\"sort by key\")\n lively.bindings.signal(this, 'enable', true)\n lively.bindings.signal(this, 'toggle', true)\n }\n}","funcProperties":{"__isSmartRef__":true,"id":153},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"152":{"this":{"__isSmartRef__":true,"id":119}},"153":{"timestamp":{"__isSmartRef__":true,"id":154},"user":"jenslincke","tags":[]},"154":{"isSerializedDate":true,"string":"Sat Sep 07 2013 11:37:28 GMT+0200 (W. Europe Summer Time)"},"155":{"varMapping":{"__isSmartRef__":true,"id":156},"source":"function reset() {\n this.connections = {\"enable\": { }, \"disable\": { }, \"toggle\": { }}\n}","funcProperties":{"__isSmartRef__":true,"id":157},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"156":{"this":{"__isSmartRef__":true,"id":119}},"157":{"timestamp":{"__isSmartRef__":true,"id":158},"user":"jenslincke","tags":[]},"158":{"isSerializedDate":true,"string":"Fri Feb 08 2013 10:42:06 GMT+0100 (W. Europe Standard Time)"},"159":{"submorphs":[{"__isSmartRef__":true,"id":160}],"scripts":[],"id":"2B58AEF3-AB05-4418-95B5-333CD90244C2","shape":{"__isSmartRef__":true,"id":291},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"TableClip","partsBinMetaInfo":{"__isSmartRef__":true,"id":292},"eventHandler":{"__isSmartRef__":true,"id":324},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","F2677A9D-5855-4DF2-B248-94545B34B762"],"partTests":{"__isSmartRef__":true,"id":325},"_ClipMode":"scroll","moved":true,"owner":{"__isSmartRef__":true,"id":2},"prevScroll":[1,36],"isBeingDragged":false,"layout":{"__isSmartRef__":true,"id":330},"#startLetters":"scr","_Rotation":0,"_Scale":1,"draggingEnabled":false,"grabbingEnabled":false,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(330.0,50.0)","distanceToDragEvent":"lively.pt(774.4,-14.6)"},"160":{"submorphs":[],"scripts":[],"id":"193F5EE1-9971-4FE2-A34F-3E297F6F50DD","shape":{"__isSmartRef__":true,"id":161},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":false,"fixedHeight":true,"allowsInput":true,"_FontFamily":"Courier","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":9,"name":"Table","partsBinMetaInfo":{"__isSmartRef__":true,"id":162},"textChunks":[{"__isSmartRef__":true,"id":178},{"__isSmartRef__":true,"id":180},{"__isSmartRef__":true,"id":183},{"__isSmartRef__":true,"id":185},{"__isSmartRef__":true,"id":188},{"__isSmartRef__":true,"id":190},{"__isSmartRef__":true,"id":193},{"__isSmartRef__":true,"id":195},{"__isSmartRef__":true,"id":198},{"__isSmartRef__":true,"id":200},{"__isSmartRef__":true,"id":203},{"__isSmartRef__":true,"id":205},{"__isSmartRef__":true,"id":208},{"__isSmartRef__":true,"id":210},{"__isSmartRef__":true,"id":213},{"__isSmartRef__":true,"id":215},{"__isSmartRef__":true,"id":218},{"__isSmartRef__":true,"id":220},{"__isSmartRef__":true,"id":223},{"__isSmartRef__":true,"id":225},{"__isSmartRef__":true,"id":228},{"__isSmartRef__":true,"id":230},{"__isSmartRef__":true,"id":233},{"__isSmartRef__":true,"id":235},{"__isSmartRef__":true,"id":238},{"__isSmartRef__":true,"id":240},{"__isSmartRef__":true,"id":243},{"__isSmartRef__":true,"id":245},{"__isSmartRef__":true,"id":248},{"__isSmartRef__":true,"id":250},{"__isSmartRef__":true,"id":253},{"__isSmartRef__":true,"id":255},{"__isSmartRef__":true,"id":258},{"__isSmartRef__":true,"id":260},{"__isSmartRef__":true,"id":263},{"__isSmartRef__":true,"id":265},{"__isSmartRef__":true,"id":268},{"__isSmartRef__":true,"id":270},{"__isSmartRef__":true,"id":273},{"__isSmartRef__":true,"id":275},{"__isSmartRef__":true,"id":278}],"charsReplaced":"BP2012","lastFindLoc":460911,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":280},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","D7847D8B-6A94-44E4-9674-5D9847579898","C84228AF-D934-4BA0-ACAF-843BBB52C480","70140DE5-4179-4E6B-90ED-B8A521019735","54742FA7-B6B6-4441-9AF1-1AA2A4B96873"],"_WhiteSpaceHandling":"pre","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"_WordBreak":null,"layout":{"__isSmartRef__":true,"id":281},"#startLetters":"emphasize","undoSelectionRange":[110306,110306],"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"owner":{"__isSmartRef__":true,"id":159},"_PreviousBorderWidth":1.48,"_Rotation":0,"_Scale":1,"draggingEnabled":false,"savedTextString":"0 id world name match textString \n1 10222324 2013-02-28.xhtml SpecialSyntaxWorkspace [cop.create('DevLayer').refineClass(\" + , cop.create('DevLayer').refineClass(\" + ] \nobj = #ReferenceTextExample2\nscriptNames = Functions.own(obj)\n\nscriptNames.length // 12\n\nfunction methodsBlock() {\n return scriptNames.collect(function(ea) { \n var source = ea + \": \" + obj[ea] \n source = (obj.constructor.prototype[ea] ? (\" // WARNING: override \\n\") : \"\") +\n Strings.lines(source).collect(function(l) {\n return (l.length > 0 ? \" \" + l : l) // don't indent empty lines\n }).join(\"\\n\")\n return \"\" + source +\",\"}).join(\"\\n\")\n \n}\n\n// Object Scripts -> Layer\n#OutputWorkspace.textString = \"cop.create('DevLayer').refineClass(\" + \n obj.constructor.type +\", {\\n\" +\n methodsBlock() +\n \"\\n})\"\n\n#ClassWorkspace.textString = \"\" + obj.constructor.type +\".addMethods({\\n\" +\n methodsBlock() +\n \"\\n})\"\n\n\n\nStrings.lines(#OutputWorkspace.textString).length // 102\n \n2 10166071 WebDevTextColorExample.xhtml Text6 [cop.create(, cop.create(] ).beGlobal()\n'DevLayer'cop.create( \n3 10166124 WebDevTextColorExample.xhtml null [cop.create(, cop.create(] refineClass).'DevLayer'cop.create( \n4 10165633 WebDevExamples.xhtml Workspace [cop.create(, cop.create(] \n {(Morph, refineClass).'ShowClickLayer'cop.create( \n5 10131309 ContextJS.xhtml searchField [cop.create, cop.create] cop.create \n6 10130268 CopyParts.xhtml Text6 [cop.create(, cop.create(] ).beGlobal()\n'DevLayer'cop.create( \n7 10130321 CopyParts.xhtml null [cop.create(, cop.create(] refineClass).'DevLayer'cop.create( \n8 9456122 setExtent.xhtml null [cop.create('setExtentLayer').refineClass(lively.morphic.Morph, {, cop.create('setExtentLayer').refineClass(lively.morphic.Morph, {] module('cop.Layers').load(true);\n\nmodule('lively.LayerableMorphs').load(true);\n\ncop.create('setExtentLayer').refineClass(lively.morphic.Morph, {\n setExtent: function (value) {\n this.priorExtent = this.getExtent();\n this.shape.setExtent(value);\n if (this.layout && (this.layout.adjustForNewBounds || this.layout.layouter))\n this.adjustForNewBounds();\n this.owner.submorphResized(this);\n return value;\n }});\n\n'setExtentLayer' in Global\n\n\n'setExtentLayer' in Global\n\nthis.addWithLayer(setExtentLayer)\n \n9 8655708 layoutDragSnap.xhtml null [cop.create(, cop.create(] .world().addWithLayer(dragLayer);this);\n}\n});\n arguments, this.targetMorph.getGlobalPosition());\n cop.proceed.apply(this.targetMorph.distanceToDragEvent = evt.getPosition().subPt(this\n { (evt) function onDragStart:,\n });\n arguments, this);\n cop.proceed.apply(0,0 Point(new.targetMorph.draggedDistance = this\n { (evt) function onDragEnd:,\n } true;\n return.targetMorph.onDrag(evt);\n this.dragAction(evt, movedBy);\n this.prevDragPos = evt.getPosition();\n this.prevDragPos);\n this movedBy = evt.getPosition().subPt(var\n { (evt) function onDrag:\n {(lively.morphic.DragHalo, refineClass).\"dragLayer\"cop.create( \n10 8695066 layoutDragSnap.xhtml null [cop.create(, cop.create(] .world().addWithLayer(dragLayer);this);\n}\n}\n }.lastDragTime = now;\n this.owner.applyLayout();\n this\n {.lastDragTime > dragInterval) this (now - if\n };\n return.lastDragTime = now;\n this\n {.lastDragTime) this (!if\n };\n return\n {.owner.getLayouter()) this.owner || !this (!if().getTime();\n Date new now = var\n // milliseconds; 600 dragInterval = var\n { (evt) function onDrag:\n {(lively.morphic.Morph, refineClass).\"dragLayer\"cop.create( \n11 1937433 RobertsTransportationMorph.json Text8 [cop.create(, cop.create(] );},\n};\n ')'.address() + this + ' (' cop.proceed() +\n return\n 'foo' secret = var\n {() function toString:,\n }\n 'Prof.-Dr.-Helmert Str.' return\n {() function address:\n {(Person, refineClass)\n.'AddressLayer'cop.create( \n12 1937540 RobertsTransportationMorph.json Text15 [cop.create(, cop.create(] );},\n};\n ')'.employer() + this + ' (' cop.proceed() +\n return\n alert(secret)\n {() function toString:,\n } 'HPI' return {() function employer:\n {(Person, refineClass)\n.'EmployerLayer'cop.create( \n13 10709337 ShareWorldButton-mailed4.xhtml SystemConsoleMain [cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20), cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20)] \n15:49:20 System console started successfully.\n15:49:34 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_24 loaded in 5 ms\n15:49:56 Successfully saved http://lively-kernel.org/repository/webwerkstatt/PartsBin/Collaboration/EmailMorph.json in PartsBin.\n15:50:07 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_25 loaded in 6 ms\n15:50:56 Text>>rememberSelectionForDoMore setting charsReplaced=Url.\n15:51:23 Error in $super call: TypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\nTypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\n at Button.eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:60), :1:27)\n at Button.interactiveEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:55)\n at Text.lively.morphic.Morph.subclass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33863:32)\n at Namespace.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20)\n at Text.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.wrapped_function (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22614:36)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :4:60)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :7:18)\n at withLayers (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22799:20)\n15:51:26 Error in $super call: TypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\nTypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\n at Button.eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:60), :1:27)\n at Button.interactiveEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:55)\n at Text.lively.morphic.Morph.subclass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33863:32)\n at Namespace.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20)\n at Text.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.wrapped_function (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22614:36)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :4:60)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :7:18)\n at withLayers (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22799:20)\n15:55:02 Text>>rememberSelectionForDoMore setting charsReplaced=newURL\n15:57:35 Text>>rememberSelectionForDoMore setting charsReplaced=Name\n15:57:54 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_26 loaded in 5 ms\n16:00:47 Text>>rememberSelectionForDoMore setting charsReplaced=this.world()\n16:00:49 Text>>rememberSelectionForDoMore setting charsReplaced=this.world()\n16:00:54 Text>>rememberSelectionForDoMore setting charsReplaced=this.world()\n16:01:15 Text>>rememberSelectionForDoMore setting charsReplaced=this.world()\n16:01:22 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_27 loaded in 7 ms\n16:01:57 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_28 loaded in 6 ms\n16:02:52 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_29 loaded in 7 ms\n16:02:59 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_30 loaded in 7 ms\n16:03:07 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_31 loaded in 6 ms\n16:04:06 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_32 loaded in 7 ms\n16:04:08 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_33 loaded in 5 ms\n16:04:09 Text>>rememberSelectionForDoMore setting charsReplaced=SCRIPTNAME\n16:04:17 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_34 loaded in 6 ms\n16:04:18 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_35 loaded in 6 ms\n16:04:30 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_36 loaded in 6 ms\n16:04:31 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_37 loaded in 6 ms\n16:04:38 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_38 loaded in 9 ms\n16:04:40 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_39 loaded in 6 ms\n16:04:49 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_40 loaded in 6 ms\n16:05:06 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_41 loaded in 5 ms\n16:05:09 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_42 loaded in 6 ms\n16:05:15 Text>>rememberSelectionForDoMore setting charsReplaced=findNewURL(URL.source)\n16:05:22 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_43 loaded in 6 ms \n14 10708220 ShareWorldButton-mailed3.xhtml SystemConsoleMain [cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20), cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20)] \n15:49:20 System console started successfully.\n15:49:34 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_24 loaded in 5 ms\n15:49:56 Successfully saved http://lively-kernel.org/repository/webwerkstatt/PartsBin/Collaboration/EmailMorph.json in PartsBin.\n15:50:07 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_25 loaded in 6 ms\n15:50:56 Text>>rememberSelectionForDoMore setting charsReplaced=Url.\n15:51:23 Error in $super call: TypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\nTypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\n at Button.eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:60), :1:27)\n at Button.interactiveEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:55)\n at Text.lively.morphic.Morph.subclass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33863:32)\n at Namespace.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20)\n at Text.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.wrapped_function (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22614:36)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :4:60)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :7:18)\n at withLayers (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22799:20)\n15:51:26 Error in $super call: TypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\nTypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\n at Button.eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:60), :1:27)\n at Button.interactiveEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:55)\n at Text.lively.morphic.Morph.subclass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33863:32)\n at Namespace.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20)\n at Text.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.wrapped_function (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22614:36)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :4:60)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :7:18)\n at withLayers (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22799:20)\n15:55:02 Text>>rememberSelectionForDoMore setting charsReplaced=newURL\n15:57:35 Text>>rememberSelectionForDoMore setting charsReplaced=Name\n15:57:54 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_26 loaded in 5 ms\n16:00:47 Text>>rememberSelectionForDoMore setting charsReplaced=this.world()\n16:00:49 Text>>rememberSelectionForDoMore setting charsReplaced=this.world()\n16:00:54 Text>>rememberSelectionForDoMore setting charsReplaced=this.world()\n16:01:15 Text>>rememberSelectionForDoMore setting charsReplaced=this.world()\n16:01:22 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_27 loaded in 7 ms\n16:01:57 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_28 loaded in 6 ms \n15 10707038 ShareWorldButton-mailed2.xhtml SystemConsoleMain [cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20), cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20)] \n15:49:20 System console started successfully.\n15:49:34 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_24 loaded in 5 ms\n15:49:56 Successfully saved http://lively-kernel.org/repository/webwerkstatt/PartsBin/Collaboration/EmailMorph.json in PartsBin.\n15:50:07 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_25 loaded in 6 ms\n15:50:56 Text>>rememberSelectionForDoMore setting charsReplaced=Url.\n15:51:23 Error in $super call: TypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\nTypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\n at Button.eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:60), :1:27)\n at Button.interactiveEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:55)\n at Text.lively.morphic.Morph.subclass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33863:32)\n at Namespace.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20)\n at Text.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.wrapped_function (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22614:36)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :4:60)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :7:18)\n at withLayers (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22799:20)\n15:51:26 Error in $super call: TypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\nTypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\n at Button.eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:60), :1:27)\n at Button.interactiveEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:55)\n at Text.lively.morphic.Morph.subclass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33863:32)\n at Namespace.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20)\n at Text.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.wrapped_function (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22614:36)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :4:60)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :7:18)\n at withLayers (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22799:20)\n15:55:02 Text>>rememberSelectionForDoMore setting charsReplaced=newURL\n15:57:35 Text>>rememberSelectionForDoMore setting charsReplaced=Name\n15:57:54 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_26 loaded in 5 ms\n16:00:47 Text>>rememberSelectionForDoMore setting charsReplaced=this.world()\n16:00:49 Text>>rememberSelectionForDoMore setting charsReplaced=this.world()\n16:00:54 Text>>rememberSelectionForDoMore setting charsReplaced=this.world()\n16:01:15 Text>>rememberSelectionForDoMore setting charsReplaced=this.world()\n16:01:22 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_27 loaded in 7 ms \n16 10705962 ShareWorldButton-mailed1.xhtml SystemConsoleMain [cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20), cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20)] \n15:49:20 System console started successfully.\n15:49:34 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_24 loaded in 5 ms\n15:49:56 Successfully saved http://lively-kernel.org/repository/webwerkstatt/PartsBin/Collaboration/EmailMorph.json in PartsBin.\n15:50:07 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_25 loaded in 6 ms\n15:50:56 Text>>rememberSelectionForDoMore setting charsReplaced=Url.\n15:51:23 Error in $super call: TypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\nTypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\n at Button.eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:60), :1:27)\n at Button.interactiveEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:55)\n at Text.lively.morphic.Morph.subclass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33863:32)\n at Namespace.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20)\n at Text.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.wrapped_function (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22614:36)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :4:60)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :7:18)\n at withLayers (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22799:20)\n15:51:26 Error in $super call: TypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\nTypeError: Object ShareWorldButton.xhtml has no method 'asWebResource'\n at Button.eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:60), :1:27)\n at Button.interactiveEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33862:55)\n at Text.lively.morphic.Morph.subclass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:33863:32)\n at Namespace.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.cop.create.refineClass.boundEval (http://lively-kernel.org/repository/webwerkstatt/core/lively/ast/IDESupport.js?1361402198481:29:20)\n at Text.Object.extend.proceed (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22859:48)\n at Text.wrapped_function (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22614:36)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :4:60)\n at eval (eval at (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:16080:29), :7:18)\n at withLayers (http://lively-kernel.org/repository/webwerkstatt/core/generated/combinedModules.js?43afb6e8e408302674a77a17e0c7d0c0:22799:20)\n15:55:02 Text>>rememberSelectionForDoMore setting charsReplaced=newURL\n15:57:35 Text>>rememberSelectionForDoMore setting charsReplaced=Name\n15:57:54 http://lively-kernel.org/repository/webwerkstatt/core/anonymous_module_26 loaded in 5 ms \n17 10639311 SCB-overwrite-fix.xhtml null [cop.create(, cop.create(] 'ModuleWrapperDevLayer'cop.create( \n18 4408934 empty_with_SCB.xhtml null [cop.create('lively.morphic.RelativeLayer').refineClass(lively.morphic.Morph, {, cop.create('lively.morphic.RelativeLayer').refineClass(lively.morphic.Morph, {] module('lively.morphic.HTMLExperiments').requires('lively.morphic.HTML').toRun(function() {\n\ncop.create('lively.morphic.RelativeLayer').refineClass(lively.morphic.Morph, {\n adjustOrigin: function() {},\n \n appendHTML: function(ctx, optMorphAfter) {\n if (!ctx.morphNode) throw dbgOn(new Error('no ctx.morphNode!'));\n\n var parentNode = false;//ctx.morphNode.parentNode;\n if (!parentNode) {\n var ownerCtx = this.owner && this.owner.renderContext();\n parentNode = (ownerCtx && ownerCtx.shapeNode) || ctx.parentNode;\n \n if (this.owner.getShape().constructor.name === \"HTMLShape\") {\n \n parentNode = ownerCtx.shapeNode;\n parentNode.appendChild(ctx.shapeNode);\n \n }\n else if (parentNode && ownerCtx && ownerCtx.shapeNode && parentNode === ownerCtx.shapeNode) {\n\n if (!ownerCtx.originNode) {\n ownerCtx.originNode = ownerCtx.domInterface.htmlRect();\n ownerCtx.shapeNode.appendChild(ownerCtx.originNode);\n }\n this.owner.shape.compensateShapeNode(ownerCtx);\n \n parentNode = ownerCtx.originNode;\n \n var afterNode = optMorphAfter && optMorphAfter.renderContext().getMorphNode();\n this.insertMorphNodeInHTML(ctx, ctx.morphNode, parentNode, afterNode); \n \n }\n }\n\n \n //if (this.originClass) this.setOriginClassHTML(ctx, this.originClass);\n this.getShape().renderUsing(ctx);\n },\n \ngetBounds: function() {\n var p = this.getPosition();\n var e = this.getExtent();\n return new Rectangle(p.x, p.y, e.x, e.y);\n},\n\ngetRotation: function() {\n return 0;\n},\ngetScale: function() {\n return 1;\n},\n\nsetExtent: function($super, value) {\n this.extentOverride = value;\n $super(value);\n},\n\nsetPositionHTML: function(ctx) {},\n\nsetRotationHTML: function(ctx) {},\n\nsetScaleHTML: function(ctx) {},\n\n \n \n }\n);\n\nlively.morphic.Morph.subclass('lively.morphic.HTMLMorph',\n'settings', {\n tagName: 'div'\n},\n'HTML render settings', {\n htmlDispatchTable: {\n setContent: 'setContentHTML',\n setAttribute: 'setAttributeHTML',\n },\n},\n'initializing', {\n initialize: function($super, bounds, tagName) {\n if (tagName) this.tagName = tagName;\n $super(new lively.morphic.Shapes.HTMLShape(this.tagName, bounds));\n } \n \n},\n\n'accessing',{\n resetExtent: function() {\n this.shape.resetExtent(); \n },\n setContent: function(content){\n this.renderContextDispatch('setContent', content);\n },\n setContentHTML: function(ctx, content){\n this.content = content;\n var textNode = document.createTextNode(content);\n ctx.shapeNode.appendChild(textNode);\n },\n getContent: function(){\n return this.content || \"\"; \n },\n addMorph: function($super, morph, optMorphBefore) {\n // enable Relative Layout Layer\n morph.addWithLayer(lively.morphic.RelativeLayer);\n $super(morph,optMorphBefore);\n },\n setAttribute: function(attribute, value) {\n this.renderContextDispatch('setAttribute', attribute, value); \n},\nsetAttributeHTML: function(ctx, attribute, value) {\n if (value) $(shapeNode).attr(attribute, value);\n else ctx.shapeNode.removeAttribute(attribute);\n},\n\n morphMenuItems: function($super) {\n var self = this, items = $super();\n items.push([\n 'Set content', function(evt) {\n $world.prompt('Set content', function(input) {\n if (input !== null)\n self.setContent(input || '');\n }, self.getContent());\n }]);\n items.push([\n 'Reset extent', function(evt) {\n self.resetExtent();\n }]);\n return items;\n }\n \n\n\n}\n\n\n);\n\n\n\nlively.morphic.Morph.subclass('lively.morphic.RelativeMorph',\n'HTML render settings', {\n htmlDispatchTable: {\n setContent: 'setContentHTML',\n setAttribute: 'setAttributeHTML',\n resetExtent: 'resetExtentHTML',\n },\n},\n'properties', {\n \ntagName: 'div',\n \nadjustOrigin: function() {\n \n},\ninitialize: function($super, tag, optContent) {\n if (tag) this.tagName = tag;\n if (optContent) this.content = optContent;\n $super(new lively.morphic.Shapes.NullShape());\n},\nappendHTML: function(ctx, optMorphAfter) {\n if (!ctx.morphNode) throw dbgOn(new Error('no ctx.morphNode!'));\n var parentNode = ctx.morphNode.parentNode;\n if (!parentNode) {\n var ownerCtx = this.owner && this.owner.renderContext();\n parentNode = (ownerCtx && ownerCtx.shapeNode) || ctx.parentNode;\n \n if (this.owner.getShape().constructor.name === \"NullShape\") {\n \n parentNode = ownerCtx.morphNode; \n \n }\n else\n if (parentNode && ownerCtx && ownerCtx.shapeNode && parentNode === ownerCtx.shapeNode) {\n\n if (!ownerCtx.originNode) {\n ownerCtx.originNode = ownerCtx.domInterface.htmlRect();\n ownerCtx.shapeNode.appendChild(ownerCtx.originNode);\n }\n this.owner.shape.compensateShapeNode(ownerCtx);\n \n parentNode = ownerCtx.originNode;\n }\n\n if (!parentNode) {\n if (Config.debugMissingParentNode) debugger\n alert('Cannot render ' + this + ' without parentNode')\n return;\n }\n }\n\n var afterNode = optMorphAfter && optMorphAfter.renderContext().getMorphNode();\n this.insertMorphNodeInHTML(ctx, ctx.morphNode, parentNode, afterNode);\n //if (this.originClass) this.setOriginClassHTML(ctx, this.originClass);\n this.getShape().renderUsing(ctx);\n },\n \ngetBounds: function() {\n var p = this.getPosition();\n var e = this.getExtent();\n return new Rectangle(p.x, p.y, e.x, e.y);\n},\n\ngetPosition: function() {\n var ctx = this.renderContext();\n //var ownerCtx = this.owner.renderContext();\n var ownerPos = this.owner.getPosition();\n //var p = $(ctx.morphNode).position();\n var o = $(ctx.morphNode).offset();\n return pt(o.left, o.top).subPt(ownerPos);\n},\ngetRotation: function() {\n return 0;\n},\ngetScale: function() {\n return 1;\n},\n\n\n \ninitHTML: function(ctx) {\n if (!ctx.morphNode) ctx.morphNode = XHTMLNS.create(this.tagName);;\n if (this.content) this.setContentHTML(ctx, this.content);\n if (this.extentOverride) this.setExtent(this.extentOverride);\n else this.resetExtent();\n this.setFocusableHTML(ctx, this.isFocusable());\n //this.setPivotPointHTML(ctx, this.getPivotPoint())\n //ctx.domInterface.setHTMLTransformOrigin(ctx.morphNode, pt(0,0));\n //this.setPositionHTML(ctx, this.getPosition());\n //this.setRotationHTML(ctx, this.getRotation());\n //this.setScaleHTML(ctx, this.getScale());\n //this.setClipModeHTML(ctx, this.getClipMode());\n //this.setHandStyleHTML(ctx, this.getHandStyle());\n this.setPointerEventsHTML(ctx, this.getPointerEvents());\n if (this.morphicGetter('Visible') === false)\n this.setVisibleHTML(ctx, false);\n var tooltip = this.morphicGetter('ToolTip');\n tooltip && this.setToolTipHTML(ctx, tooltip);\n if (UserAgent.fireFoxVersion)\n ctx.morphNode['-moz-user-modify'] = 'read-only'\n },\nsetContent: function(content){\n this.renderContextDispatch('setContent', content); \n},\nsetContentHTML: function(ctx, content){\n this.content = content;\n var textNode = document.createTextNode(content);\n ctx.morphNode.appendChild(textNode);\n},\ngetContent: function(){\n return this.content || \"\"; \n},\n\nsetAttribute: function(attribute, value) {\n this.renderContextDispatch('setAttribute', attribute, value); \n},\nsetAttributeHTML: function(ctx, attribute, value) {\n if (value) $(ctx.morphNode).attr(attribute, value);\n else ctx.morphNode.removeAttribute(attribute);\n},\nsetPositionHTML: function(ctx) {\n \n},\nsetExtent: function($super, value) {\n this.extentOverride = value;\n $super(value);\n},\n\nresetExtent: function() {\n this.renderContextDispatch('resetExtent'); \n\n},\n\nresetExtentHTML: function(ctx){\n this.extentOverride = null;\n ctx.morphNode.style.width = null;\n ctx.morphNode.style.height = null; \n},\n\n\nsetRotationHTML: function(ctx) {\n \n},\n\nsetScaleHTML: function(ctx) {\n \n},\n\n\n\n morphMenuItems: function($super) {\n var self = this, items = $super();\n items.push([\n 'Set content', function(evt) {\n $world.prompt('Set content', function(input) {\n if (input !== null)\n self.setContent(input || '');\n }, self.getContent());\n }]);\n items.push([\n 'Reset extent', function(evt) {\n self.resetExtent();\n }]);\n return items;\n }\n});\n\n\nlively.morphic.Shapes.Shape.subclass('lively.morphic.Shapes.HTMLShape',\n'documentation', {\n documentation: 'an HTMLMorph shape',\n},\n'initializing', {\n\n htmlDispatchTable: {\n resetExtent: 'resetExtentHTML',\n },\n\n initialize: function($super, tagName, optBounds){\n this.tagName = tagName;\n $super(optBounds);\n },\n \n initHTML: function(ctx) {\n if (!ctx.shapeNode)\n ctx.shapeNode = XHTMLNS.create(this.tagName);\n },\n\n},\n'updating', {\n resetExtent: function() {\n this.renderContextDispatch('resetExtent'); \n\n },\n\n resetExtentHTML: function(ctx){\n this.extentOverride = null;\n ctx.shapeNode.style.width = null;\n ctx.shapeNode.style.height = null; \n },\n getBounds: function($super) {\n return pt(0,0).extent(this.getExtent())\n },\n getPosition: function() {\n var ctx = this.renderContext();\n var ownerPos = this.owner.getPosition();\n var o = $(ctx.shapeNode).offset();\n return pt(o.left, o.top).subPt(ownerPos);\n \n },\n setPositionHTML: function(ctx, value) {\n if (!ctx.shapeNode) return undefined;\n ctx.domInterface.setPosition(ctx.shapeNode, value);\n },\n setExtentHTML: function(ctx, value) {\n if (!ctx.shapeNode) return undefined;\n var outer = this.getExtent();\n var inner = pt($(ctx.shapeNode).width(), $(ctx.shapeNode).height());\n var delta = outer.subPt(inner);\n ctx.domInterface.setExtent(ctx.shapeNode, value.subPt(delta));\n\n return value;\n },\n getExtent: function(){\n var ctx = this.renderContext();\n var w = $(ctx.shapeNode).outerWidth();\n var h = $(ctx.shapeNode).outerHeight();\n return pt(w, h);\n },\n\n setFillHTML: function(ctx, value) {},\n\n setBorderStyleHTML: function(ctx, value) {},\n setBorderWidthHTML: function(ctx, width) {},\n setBorderHTML: function(ctx, width, fill, opacity) {},\n\n setOpacityHTML: function(ctx, value) {},\n setPaddingHTML: function(ctx, r) {},\n\n\n \n\n\n}\n);\n\n\nlively.morphic.Shapes.Shape.subclass('lively.morphic.Shapes.NullShape',\n'documentation', {\n documentation: 'a shape that does not get rendered and acts as a proxy to the morph itself',\n},\n'initializing', {\n initHTML: function(ctx) {\n ctx.shapeNode = XHTMLNS.create('div');\n },\n renderHTML: function(ctx) {\n\n },\n},\n'updating', {\n getBounds: function($super) {\n return pt(0,0).extent(this.getExtent())\n },\n getPosition: function() {\n var ctx = this.renderContext();\n var p = $(ctx.morphNode).position();\n return pt(p.left, p.top);\n },\n setPositionHTML: function(ctx, value) {\n if (!ctx.morphNode) return undefined;\n ctx.domInterface.setPosition(ctx.morphNode, value);\n },\n setExtentHTML: function(ctx, value) {\n if (!ctx.morphNode) return undefined;\n var outer = this.getExtent();\n var inner = pt($(ctx.morphNode).width(), $(ctx.morphNode).height());\n var delta = outer.subPt(inner);\n ctx.domInterface.setExtent(ctx.morphNode, value.subPt(delta));\n\n return value;\n },\n getExtent: function(){\n var ctx = this.renderContext();\n var w = $(ctx.morphNode).outerWidth();\n var h = $(ctx.morphNode).outerHeight();\n return pt(w, h);\n },\n\n \n setFillHTML: function(ctx, value) {\n \n },\n\n setBorderStyleHTML: function(ctx, value) {\n\n },\n setBorderWidthHTML: function(ctx, width) {\n this.setBorderHTML(ctx, width, this.getBorderColor(), this.getStrokeOpacity());\n // since border influences width/height in HTML, see this.setExtentHTML\n this.setExtentHTML(ctx, this.getExtent());\n return width;\n },\n\n\n setBorderHTML: function(ctx, width, fill, opacity) {\n\n },\n compensateShapeNode: function(ctx) {\n // compensates the shapeNode's position for childmorphs,\n // positions childmorphs against morphNodes (origin!)\n ctx.originNode.style.setProperty('top', -this.getPosition().y + 'px', 'important');\n ctx.originNode.style.setProperty('left', -this.getPosition().x + 'px', 'important');\n ctx.originNode.style.setProperty('position', 'absolute', 'important');\n\n // FIXME: hack, necessary until the style editor knows\n // about stroke widths of svg lines instead of using borderWidth...\n if (ctx.pathNode) return;\n\n // compensates the shapeNode's borderWidth for childmorphs, borders don't affect submorphs\n ctx.originNode.style.setProperty('margin-top', -this.getBorderWidth() + 'px', 'important');\n ctx.originNode.style.setProperty('margin-left', -this.getBorderWidth() + 'px', 'important');\n },\n setOpacityHTML: function(ctx, value) {\n\n },\n setPaddingHTML: function(ctx, r) {\n\n },\n setNodeIdHTML: function(ctx, value) {\n //console.log(\"HTML.js, setStyleIdHTML(): Ok, got it, setting shape HTML id to \"+value);\n ctx.morphNode.id = value;\n },\n setNodeClassHTML: function(ctx, value) {\n var a = value;\n if (value instanceof Array) {\n a = value.join(\" \");\n }\n ctx.morphNode.className = a;\n },\n setStyleSheetHTML: function(ctx, value) {\n var morphId = ctx.morphNode.id;\n if (!morphId) {\n alert(\"Cannot set morph specific style sheet. Morph node was not assigned any id.\");\n return;\n }\n\n var styleTagId = \"style-for-\"+morphId;\n\n\t var css = $('#' + styleTagId);\n\t css.remove();\n\n if (value && value.length > 1) {\n \n \t //console.log(\"Setting CSS for shape \"+morphId+\" to \"+value);\n var specificCss = \"#\"+morphId+\" { \"+value+\" }\";\n \n // syntax fixes for the sap gold reflection css\n specificCss = specificCss.replace(/[\\s]*=[\\s]*/g,\"=\");\n specificCss = specificCss.replace(/alpha[\\s]*\\([\\s]*opacity[\\s]*\\:/g,\"alpha(opacity=\");\n specificCss = specificCss.replace(\".dev-datepicker/jQuery\",\".dev-datepicker.jQuery\");\n \n\n if (less) {\n new less.Parser().parse(specificCss, function(e, tree) {\n console.log(e);\n specificCss = tree.toCSS();\n });\n console.log(specificCss);\n }\n\n\n\t css = $('');\n\t css.text(specificCss);\n\t css.appendTo(document.head);\n }\n\n },\n\n setComputedStylesHTML: function(ctx) {\n \n if (!ctx.morphNode) return;\n var style = window.getComputedStyle(ctx.morphNode),\n borderWidth = parseInt(style[\"borderWidth\"].replace(\"px\",\"\"));\n this.shapeSetter('ComputedBorderWidth', borderWidth );\n\n if (ctx.originNode) {\n this.compensateShapeNode(ctx);\n }\n this.setExtentHTML(ctx, this.getExtent());\n \n },\n \n\n\n}\n);\n\n\n\n}) // end of module\n19 4248755 TrackerDev.xhtml null [cop.create(, cop.create(] );\n\nMenuVisualizationLayer.beGlobal();\nMenuTrackerLayer.beGlobal();},\n}\n }));\n this.bind(};\n debugger;\n entry.setFill(\n MenuTracker.getInstance().getColorForMenuEntry(\n count, total\n )); \n 0 count = usage ? \n (usage.__count ? usage.__count : usage) : var.menuUsage.__count;\n this total = var.menuUsage[entry.textString];\n this usage = var\n {(entry) function.itemMorphs.each(this\n {.menuUsage) this (if\n {() function showUsage:,\n } subMenu;\n return.showUsage();\n subMenu.showUsage();\n this.menuUsage[name];\n this.menuUsage && this);\n subMenu.menuUsage = arguments, this subMenu = cop.proceed.apply(var\n {(evt, name, items) function openSubMenu:,\n } output;\n return.showUsage();\n this.menuUsage = MenuTracker.getInstance().getMenuUsage(menuPath);\n this.owner.constructor.type];\n this menuPath = [var output = cop.proceed(parentMorph, pos, remainOnScreen, captionIfAny);\n MenuTracker.getInstance().prepareMenuVisualization();\n var\n { (parentMorph, pos, remainOnScreen, captionIfAny) function openIn:\n {(lively.morphic.Menu, refineClass).'MenuVisualizationLayer'cop.create( \n20 5487356 SyncMorphDev.xhtml Text3 [cop.create({() function).requires().toRun('projects.BP2012.SyncMorph'module(, cop.create({() function).requires().toRun('projects.BP2012.SyncMorph'module(] // end of module}) // end of module}) // end of module) }\n SyncMorph.beGlobal();\n// end of cop); },\n }.serializeProperty(propertyName));\n this.findSyncMorph();\n syncMorph.saveUpdate(this syncMorph = var\n // TODO implement detection of change\n { (propertyName) function changed:,\n } syncMorph;\n \n return\n }\n syncMorph = syncMorph.owner;\n { (!syncMorph.isSyncMorph()) while;\n this syncMorph = var\n {() function findSyncMorph:,\n }\n }[propertyName]\n this propertyValue: propertyName,\n propertyName:().getTime(),\n Date new time:.id,\n this id:\n { return\n { (propertyName) function serializeProperty:,\n } serializedObject;\n return\n }.databaseRev;\n this\n serializedObject._rev = {) undefined.databaseRev!==this(if\n }.databaseID;\n this\n serializedObject._id = {) undefined.databaseID!==this(if\n })\n this serializer.serialize(morph:\n { serializedObject = var\n serializer.addPlugin(ignoreDatabaseID);\n serializer.addPlugin(ignoreDatabaseRev);\n }\n serializer.addPlugin(ignoreOwnerPlugin);\n { (aMorph.saveMorph) if\n // dirty test for SyncMorph);\n }.name == obj.name;\n this) && 'databaseRev' (propName === return\n {(obj, propName) function);\n ignoreDatabaseRev.addFilter(}.name == obj.name;\n this) && 'databaseID' (propName === return\n {(obj, propName) function);\n ignoreDatabaseID.addFilter(}.name == obj.name;\n this) && 'owner' (propName === return\n {(obj, propName) function GenericFilter();\n ignoreOwnerPlugin.addFilter(new GenericFilter(),\n ignoreDatabaseRev = new GenericFilter(),\n ignoreDatabaseID = new ignoreOwnerPlugin = var serializer = ObjectGraphLinearizer.forNewLivelyCopy()\n var\n { () function serialize:,\n }\n });\n this\n aMorph.saveMorph({ (aMorph.saveMorph) if\n { (aMorph) function onDropOn:,\n } false;\n return\n {() function isSyncMorph:\n {(lively.morphic.Morph, refineClass).'SyncMorph'\n cop.create({() function).requires().toRun('projects.BP2012.SyncMorph'module( \n21 5486223 SyncMorphDev.xhtml Text [cop.create('SyncMorph').refineClass(lively.morphic.Morph, {, cop.create('SyncMorph').refineClass(lively.morphic.Morph, {] module('projects.BP2012.SyncMorph').requires().toRun(function() {\n cop.create('SyncMorph').refineClass(lively.morphic.Morph, {\n onDropOn: function (aMorph) {\n if (aMorph.saveMorph) {\n this.disableHalos();\n aMorph.saveMorph(this);\n } else {\n this.enableHalos();\n }\n },\n serialize: function () {\n var serializer = ObjectGraphLinearizer.forNewLivelyCopy()\n var ignoreOwnerPlugin = new GenericFilter();\n ignoreOwnerPlugin.addFilter(function(obj, propName) {\n return (propName === 'owner' || propName === 'databaseID' || propName === 'databaseRev') && this.name == obj.name;\n });\n serializer.addPlugin(ignoreOwnerPlugin);\n var serializedObject = {\n morph: serializer.serialize(this)\n }\n if(this.databaseID!==undefined) {\n serializedObject._id = this.databaseID;\n }\n if(this.databaseRev!==undefined) {\n serializedObject._rev = this.databaseRev;\n }\n return serializedObject;\n },\n // }).refineClass(CouchDB, {\n // createProgressBar: function (label) {\n // // this.enableShowingProgress();\n // // var labelFunc = Object.isString(labelOrFunc) ?\n // // function() { return labelOrFunc } : labelOrFunc;\n // if (!Config.isNewMorphic) return this;\n // var progressBar = lively.morphic.World.current().addStatusProgress(label);\n // connect(this, 'progressEvent', progressBar, 'setValue',\n // {converter: function(rpe) { return (rpe.loaded / this.getTargetObj().total) }});\n // connect(this.last_req, 'status', progressBar, 'remove', {\n // updater: function($upd, status) { if (status.isDone()) $upd() }});\n // return progressBar;\n // },\n // requestSynOrAsyn: function(method, uri, options, async, callback) {\n // options = options || {};\n // var req = this.newXhr();\n // var that = this;\n // \n // function onProgress(evt) {\n // that.progressEvent = evt;\n // // var percentComplete = (e.position / e.totalSize)*100;\n // };\n // \n // if (method === 'PUT' || method === 'POST') {\n // req.upload.addEventListener(\"progress\", onProgress, false);\n // // req.upload.addEventListener(\"load\", transferComplete, false);\n // // req.upload.addEventListener(\"error\", transferFailed, false);\n // // req.upload.addEventListener(\"abort\", transferCanceled, false);\n // } else {\n // req.addEventListener(\"progress\", onProgress, false);\n // }\n // \n // if (options.body) {\n // var pb = this.createProgressBar(\"saving\");\n // pb.total = options.body.length;\n // }\n // req.open(method, uri, async);\n // if (options.headers) {\n // var headers = options.headers;\n // for (var headerName in headers) {\n // if (!headers.hasOwnProperty(headerName)) continue;\n // req.setRequestHeader(headerName, headers[headerName]);\n // }\n // }\n // if(typeof callback === 'function'){\n // req.onreadystatechange = callback;\n // }\n // req.send(options.body || \"\");\n // return req;\n // },\n // save: function(doc, options) {\n // if (doc._id == undefined)\n // doc._id = this.newUuids(1)[0];\n // \n // this.last_req = this.request(\"PUT\", this.uri +\n // this.specialEncodeURIComponent(doc._id) + this.encodeOptions(options),\n // {body: this.toJSON(doc)});\n // this.maybeThrowError(this.last_req);\n // var result = this.fromJSON(this.last_req.responseText);\n // doc._rev = result.rev;\n // return result;\n // },\n }); // end of cop\n SyncMorph.beGlobal();\n}) // end of module}) // end of module}) // end of module \n22 5486607 SyncMorphDev.xhtml null [cop.create('SyncMorph').refineClass(lively.morphic.Morph, {, cop.create('SyncMorph').refineClass(lively.morphic.Morph, {] module('projects.BP2012.SyncMorph').requires().toRun(function() {\n cop.create('SyncMorph').refineClass(lively.morphic.Morph, {\n onDropOn: function (aMorph) {\n if (aMorph.saveMorph) {\n this.disableHalos();\n aMorph.saveMorph(this);\n } else {\n this.enableHalos();\n }\n },\n serialize: function () {\n var serializer = ObjectGraphLinearizer.forNewLivelyCopy()\n var ignoreOwnerPlugin = new GenericFilter();\n ignoreOwnerPlugin.addFilter(function(obj, propName) {\n return (propName === 'owner' || propName === 'databaseID' || propName === 'databaseRev') && this.name == obj.name;\n });\n serializer.addPlugin(ignoreOwnerPlugin);\n var serializedObject = {\n morph: serializer.serialize(this)\n }\n if(this.databaseID!==undefined) {\n serializedObject._id = this.databaseID;\n }\n if(this.databaseRev!==undefined) {\n serializedObject._rev = this.databaseRev;\n }\n return serializedObject;\n },\n // }).refineClass(CouchDB, {\n // createProgressBar: function (label) {\n // // this.enableShowingProgress();\n // // var labelFunc = Object.isString(labelOrFunc) ?\n // // function() { return labelOrFunc } : labelOrFunc;\n // if (!Config.isNewMorphic) return this;\n // var progressBar = lively.morphic.World.current().addStatusProgress(label);\n // connect(this, 'progressEvent', progressBar, 'setValue',\n // {converter: function(rpe) { return (rpe.loaded / this.getTargetObj().total) }});\n // connect(this.last_req, 'status', progressBar, 'remove', {\n // updater: function($upd, status) { if (status.isDone()) $upd() }});\n // return progressBar;\n // },\n // requestSynOrAsyn: function(method, uri, options, async, callback) {\n // options = options || {};\n // var req = this.newXhr();\n // var that = this;\n // \n // function onProgress(evt) {\n // that.progressEvent = evt;\n // // var percentComplete = (e.position / e.totalSize)*100;\n // };\n // \n // if (method === 'PUT' || method === 'POST') {\n // req.upload.addEventListener(\"progress\", onProgress, false);\n // // req.upload.addEventListener(\"load\", transferComplete, false);\n // // req.upload.addEventListener(\"error\", transferFailed, false);\n // // req.upload.addEventListener(\"abort\", transferCanceled, false);\n // } else {\n // req.addEventListener(\"progress\", onProgress, false);\n // }\n // \n // if (options.body) {\n // var pb = this.createProgressBar(\"saving\");\n // pb.total = options.body.length;\n // }\n // req.open(method, uri, async);\n // if (options.headers) {\n // var headers = options.headers;\n // for (var headerName in headers) {\n // if (!headers.hasOwnProperty(headerName)) continue;\n // req.setRequestHeader(headerName, headers[headerName]);\n // }\n // }\n // if(typeof callback === 'function'){\n // req.onreadystatechange = callback;\n // }\n // req.send(options.body || \"\");\n // return req;\n // },\n // save: function(doc, options) {\n // if (doc._id == undefined)\n // doc._id = this.newUuids(1)[0];\n // \n // this.last_req = this.request(\"PUT\", this.uri +\n // this.specialEncodeURIComponent(doc._id) + this.encodeOptions(options),\n // {body: this.toJSON(doc)});\n // this.maybeThrowError(this.last_req);\n // var result = this.fromJSON(this.last_req.responseText);\n // doc._rev = result.rev;\n // return result;\n // },\n }); // end of cop\n SyncMorph.beGlobal();\n}) // end of module}) // end of module}) // end of module \n23 3496914 FindingRelatives.xhtml null [cop.create(, cop.create(] ).beGlobal();},\n}\n }));\n -1, -(x0.derivationIds.slice(this return\n default:.derivationIds;\n this return\n 1: case.id])\n this.derivationIds.concat([this return\n 0: case\n { (x) switch\n { (x) function prepareDerivationIds:,\n }\n })\n }\n } otherIds.last() === myIds.last()\n return\n { (otherIds && (!(iAmNew && otherIsNew))) if otherIds = ea.prepareDerivationIds(n),\n otherIsNew = ea.findCurrentPartVersion().derivationIds.last() === ea.derivationIds.last();\n var\n { (ea) function scope.withAllSubmorphsDetect(return\n { (myIds) if other = scope\n var;\n this self = var.derivationIds.last();\n this.findCurrentPartVersion().derivationIds.last() === this\n iAmNew = // TODO: This is sooo slow.prepareDerivationIds(m),\n this myIds = var\n { (scope, m, n) function findAncestorIn:\n {(lively.morphic.Morph, refineClass).'Relatives'cop.create( \n24 3393094 ButtonSelectionDoubleTap.xhtml Text [cop.create('DoubleTapSelection').refineClass(lively.morphic.Button,{, cop.create('DoubleTapSelection').refineClass(lively.morphic.Button,{] cop.create('DoubleTapSelection').refineClass(lively.morphic.Button,{\n onDoubleTap: function(){\n this.select();\n },\n}).refineClass(lively.morphic.Text,{\n onDoubleTap: function(){\n this.select();\n },\n}).refineClass(lively.morphic.Morph,{\n tapped: function(evt) {\n var doubleTapTimeout = 250,\n that = this;\n \n if (this.lastTap && new Date() - this.lastTap <= doubleTapTimeout) {\n if (typeof this.onDoubleTap === \"function\") {\n this.lastTap = false;\n this.onDoubleTap(evt);\n }\n\n } else {\n if (typeof this.onTap === \"function\") {\n window.setTimeout(function () {\n if (that.lastTap) {\n that.onTap(evt);\n }\n }, doubleTapTimeout);\n }\n this.lastTap = new Date();\n }\n },\n});\n \n25 3515809 MorphMerging.xhtml Text1 [cop.create(, cop.create(] ).beGlobal();},\n}\n }\n prop[subProp] = value;\n { else.applyNestedProperty(prop[subProp], pathArray, value)\n this) \n 0 (pathArray.length > if).first();\n 1,0 subProp = pathArray.splice(var\n\n // the property is in the form of ['shape', '_Fill', 'g'] at the beginning;\n { (prop, pathArray, value) function applyNestedProperty:,\n });\n }\n self.addMorph(submorphList[ea].copy());\n { (ea) function;\n Properties.own(submorphList).each(this self = var\n { (submorphList) function addAdded:,\n })\n } toRemove = parentIdList[ea].findDerivationSibling(self)\n toRemove && toRemove.remove();\n var\n { (ea) function;\n Properties.own(parentIdList).each(this self = var\n { (parentIdList) function removeRemoved:,\n })\n })\n self.addScript(modList[eachProp].newValue)\n 'script' (modList.type == if else), modList[eachProp].newValue);\n '::')\n self.applyNestedProperty(self, eachProp.split('property' (modList[eachProp].type == if\n { (eachProp) function;\n Properties.own(modList).each(this self = var\n { (modList) function applyModifications:,\n })\n }\n self.applyModifications(diffList[id].conflicted)\n { (id) function\n Properties.own(diffList).each({ (diffList) function pullConflicts:,\n });\n\n 'Could not revert - no parent version found'\n alert(else\n }.owner.addMorph(parent, morphBefore);\n\n this.remove();\n this.submorphs;\n this submorphs = var\n { (parent) if.findParentPartVersion()\n this parent = var];\n 1)-this.owner.submorphs.indexOf(this.owner.submorphs[this morphBefore = var\n { () function revert:,\n })\n }])\n 1 morph = self.findById(eachId);\n\n morph.applyModifications(diffList[eachId].modifiedInPartsBin);\n morph.removeRemoved(diffList[eachId].removedInPartsBin);\n morph.addAdded(diffList[eachId].addedInPartsBin);\n\n morph.owner && morph.owner.addMorph(morph, morph.owner.submorphs[morph.owner.submorphs.indexOf(morph)-var\n { (eachId) function;\n Properties.own(diffList).each(this self = var\n { (diffList) function update:\n {(lively.morphic.Morph, refineClass).'MorphMerging'cop.create( \n26 3362251 ButtonSelection.xhtml TestText [cop.create('DoubleTapSelection').refineClass(lively.morphic.Button,{, cop.create('DoubleTapSelection').refineClass(lively.morphic.Button,{] cop.create('DoubleTapSelection').refineClass(lively.morphic.Button,{\n onDoubleTap: function(){\n this.select();\n },\n}).refineClass(lively.morphic.Text,{\n onDoubleTap: function(){\n this.select();\n },\n}).refineClass(lively.morphic.Morph,{\n tapped: function(evt) {\n var doubleTapTimeout = 250,\n that = this;\n \n if (this.lastTap && new Date() - this.lastTap <= doubleTapTimeout) {\n if (typeof this.onDoubleTap === \"function\") {\n this.lastTap = false;\n this.onDoubleTap(evt);\n }\n\n } else {\n if (typeof this.onTap === \"function\") {\n window.setTimeout(function () {\n if (that.lastTap) {\n that.onTap(evt);\n }\n }, doubleTapTimeout);\n }\n this.lastTap = new Date();\n }\n },\n});\n \n27 3265112 ConfirmationBlockingExample.xhtml null [cop.create(// do all!, cop.create(// do all!] ).beGlobal()\n}\n} dialog;\n return);\n 'remove', blockMorph, 'remove')\n \n blockMorph.addMorph(d.panel);\n \n d.panel.align(d.panel.bounds().topRight(), pointOfAlign);\n\n activeWindow.addMorph(blockMorph);\n connect(d.panel, },\n 0.5 opacity: Color.black,\n fill:\n { transparentMorph = Morph.makeRectangle(blockMorph.getShape().getBounds())\n blockMorph.addMorph(transparentMorph);\n transparentMorph.applyStyle(var)\n },\n 0 borderWidth: null,\n fill:\n { blockMorph = Morph.makeRectangle(blockee.bounds());\n blockMorph.applyStyle(var d;\n\n return (!activeWindow) if d = cop.proceed(dialog);\n var pointOfAlign = activeWindow.targetMorph? blockee.getShape().getBounds().topRight() : $world.visibleBounds().center();\n\n var blockee = activeWindow.targetMorph || $world;\n var activeWindow = $world.getActiveWindow() || $world;\n var\n { (dialog) function openDialog:,\n } false;\n return;\n }\n activeWindow.highlight(false)\n { (activeWindow) if.getActiveWindow();\n this activeWindow = var\n cop.proceed(evt);\n { (evt) function onMouseDown:,\n });\n } ea.isWindow && ea.highlighted\n return\n { (ea) function.world().submorphs.detect(this return\n { () function getActiveWindow:\n {(lively.morphic.World, refineClass).\"DialogLayer\"\ncop.create(// do all! \n28 1870017 PrototypeWithPartsWorkflow.xhtml SpecialSyntaxWorkspace [cop.create('DevLayer').refineClass(\", cop.create('DevLayer').refineClass(\"] \n 102//.lines(#OutputWorkspace.textString).length Strings\n\n\n\n\"\\n})\" +\n methodsBlock() +\n \".addMethods({\\n\".constructor.type +obj + \"\"\n\n#ClassWorkspace.textString = \"\\n})\" +\n methodsBlock() +\n \", {\\n\".constructor.type +obj \n +\"cop.create('DevLayer').refineClass(\"\n#OutputWorkspace.textString = Object Scripts -> Layer//\n\n} \n)\n\"\\n\").join(}\",\" + source +\"\" return)\n \"\\n\").join(}\n don't indent empty lines// + l : l) \" \" ? 0 (l.length > return\n {(l) function.lines(source).collect(Strings\n ) : \"\") +\" // WARNING: override \\n\".constructor.prototype[ea] ? (obj source = ( \n[ea]obj + \": \" source = ea + var \n{(ea) function.collect(scriptNames return\n { methodsBlock() function\n\n 12//.length scriptNames)\n\nobj.own(Functions = scriptNames = #ReferenceTextExample2\nobj\n \n29 3056544 slider.xhtml null [cop.create(, cop.create(] );\n},\n});\n this.grabbingEnabled == true)) && evt.hand.grabMorph(this) || (undefined.grabbingEnabled == this (bounds.containsPoint(pos) && !smallerBounds.containsPoint(pos))\n ((if.localize(evt.getPosition());\n this),\n pos = 6.innerBounds(),\n smallerBounds = bounds.insetBy(this bounds = var\n // only grab when in outer area of bounds;\n return (cop.proceed(evt)) if\n {(evt) function onDragStart:\n {(lively.morphic.Text, refineClass)\n.},\n});\n this.grabbingEnabled == true)) && evt.hand.grabMorph(this) || (undefined.grabbingEnabled == this;\n ((return (cop.proceed(evt)) if\n {(evt) function onDragStart:,\n } false return {() function isLocked:\n {(lively.morphic.Morph, refineClass)\n.'lively.morphic.GrabbingLayer'cop.create( \n30 3726003 2011-11-02-talk.xhtml Text [cop.create({() function).requires().toRun('projects.BP2012.Highlighting'module(, cop.create({() function).requires().toRun('projects.BP2012.Highlighting'module(] // attention this is example code ... do not use at home)\n});\n},\n }\n $world.markerMorph.setVisible(false);\n { () functionremoveHighlight:,\n }.globalBounds());\n $world.markerMorph.setVisible(true);\n $world.markerMorph.bringToFront();\n this\n $world.markerMorph.setBounds({ () functionsetHighlight:\n {(Morph, refineClass).'Highlighting'\n cop.create({() function).requires().toRun('projects.BP2012.Highlighting'module( \n31 984954 120228_ContextJSBugRefiningMethodsInClassAndSubclassIsBroken.xhtml null [cop.create(}, cop.create(}] \n\n\n\n// This is a bug\n\n// it should be: LA_S.m, S.m, LA_O.m, O.m\n\n\n// -> LA_S.m, S.m, LA_S.m, O.m)\n} s.m()\nreturn\n {() function MySubObject()\ns.m()\n\nwithLayers([LayerA], new\n\ns = // -> LA_O.m, O.m)\n\n} o.m()\nreturn\n {() function MyObject()\no.m()\n\nwithLayers([LayerA], new\no = )\n\n\n}\n} + cop.proceed() \n \"LA_S.m, \" return\n {(a) function m:\n {(MySubObject, refineClass.LayerA)\n\n}\n} + cop.proceed()\n \"LA_O.m, \" return\n {(a) function m:\n {(MyObject, refineClass.LayerA)\n'LayerA')\n\n\ncop.create(}\n} + $super()\n \"S.m, \" return\n {($super) function m:\n {, \"MySubObject\"(subclass.MyObject)\n\n}\n}\n \"O.m\" return\n {() function m:\n {, \"MyObject\"(subclass.Object \n32 1410114 TextDebugWorld.xhtml null [cop.create(this, cop.create(this] )},\n}\n // return r\n // })\n // alert('set cachedTextString\\n' + printStack())\n // cop.withoutLayers([TextDebugLayer], function() { r\n return r = cop.proceed(s);\n var\n {,\n get cachedTextString() } r\n return\n // }) + printStack())\n 'set cachedTextString\\n'\n alert(// cop.withoutLayers([TextDebugLayer], function() { r = cop.proceed(s);\n var\n {,\n set cachedTextString(s) } r\n return)\n } + printStack())\n 'get textString\\n'\n alert({() function r = cop.proceed();\n cop.withoutLayers([TextDebugLayer], var\n {,\n get textString() } r\n return)\n } + printStack())\n 'set textString\\n'\n alert({() function r = cop.proceed(s);\n cop.withoutLayers([TextDebugLayer], var\n {\n set textString(s) {), 'debugText'.get(this).refineObject('TextDebugLayer'.textString\ncop.create(this\n// printStack()\n// \n// this.fixChunks()\n// this.cachedTextString = null\n// this.textString \n33 1323002 111103_SCBCanNotBrowseExternalModules.xhtml null [cop.create(, cop.create(] \n\n\n\n// DevLayer.beNotGlobal();).beGlobal();\n\n}\n}.target.name)\n cop.proceed();\n this\n alertOK({() function onSelect:\n {(lively.ide.CompleteFileFragmentNode, refineClass)\n.}\n})\n cop.proceed()\n \"location Changed\"\n alertOK({() function locationChanged:\n {(lively.ide.SourceControlNode, refineClass)\n.} ,\n} root;\n return\n // throw dbgOn(new Error('Cannot find parsed source for ' + fileName));\n // if (!root) root = moduleWrapper && moduleWrapper.ast();\n var.findModuleWrapperForFileName(fileName);\n this moduleWrapper = var + fileName));\n 'Don\\'t know what to do with '(Error new dbgOn(throw.isString(fileName))\n Object (!if + fileName)\n 'root for '\n alertOK({(fileName) function rootFragmentForModule:,\n\n\n })\n } ea.fileName() == fileName return {(ea) function.allModules().detect(this return\n }]\n 2] + m[1])\n fileName = m[1 + m[\"external: \"\n alertOK({])) 1 (m && Config.modulePaths.include(m[if)\n /\\.\\.\\/([A-Za-z0-9]+\\/)(.*)/ m = fileName.match(var + fileName)\n 'find '\n alert({(fileName) function findModuleWrapperForFileName:,\n\n } cop.proceed(fileName, source)\n return + fileName)\n \"add module \"\n alertOK({(fileName, source) function addModule:,\n\n } lively.ide.ModuleWrapper.forFile(fileName);\n return\n { (fileName) function createModuleWrapperForFileName:\n {(AnotherSourceDatabase, refineClass)\n.'DevLayer'cop.create( \n34 1315447 111019_PublishingPartsWithCommitMessages.xhtml null [cop.create(, cop.create(] )\n\n},\n}) \n this.world().openPublishPartDialogFor(this\n {() function copyToPartsBinWithUserRequest:\n\n {(Morph, refineClass)\n.beGlobal()\n.'DevLayer'cop.create( \n35 1226192 110528_ClickBehaviorOfScbIsStrange.xhtml null [cop.create('NodeMorphLayer'), cop.create('NodeMorphLayer')] /*\n * Copyright (c) 2008-2011 Hasso Plattner Institute\n *\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nmodule('lively.Connector').requires('lively.Widgets', 'cop.Layers', 'lively.Helper', 'lively.LayerableMorphs').toRun(function() {\n\ncop.create('NodeMorphLayer')\n.refineClass(Morph, {\n\tgetConnectorMorphs: function() {\n\t\tif (this.attributeConnections == undefined)\n\t\t\treturn [];\n\n\t\treturn this.attributeConnections\n\t\t\t.select(function(ea){ return ea.getTargetMethodName() == 'updateConnection'})\n\t\t\t.collect(function(ea){ return ea.getTargetObj()})\n\t},\n\tconnectLineMorph: function(line) {\n\t\tlively.bindings.connect(this, \"geometryChanged\", line, \"updateConnection\")\n\t},\n\tdeconnectLineMorph: function(line) {\n\t\tlively.bindings.disconnect(this, \"geometryChanged\", line, \"updateConnection\")\t\n \t},\n});\n\n\ncop.create(\"ConnectorMorphLayer\").refineClass(HandleMorph, {\n\n\tonMouseUp: function(evt) {\n\t\tvar morph = this.findMorphUnderMe(), line = this.owner;\n\t\t// console.log(\"handle mouse up on \" + morph)\n\t\tthis.connectToMorph(morph);\t\t\n\t\tvar result = cop.proceed(evt);\n\t\tline.updateConnection();\n\t\t// RESEARCH: the layer is not active any more... because the proceed set owner to nil\n\t\treturn result;\n\t},\n\n\tonMouseMove: function(evt) {\n\t\tvar result = cop.proceed(evt);\n\t\t// Fabrik connectors intercepted the setVertices in the shape\n\t\t// but instance wrappers are fragile but shapes have no \"owner\" references\n\t\tif (this.owner)\n\t\t\tthis.owner.updateArrow();\n\t\treturn result;\n\t},\n\n\tconnectToMorph: function(newMorph) {\n\t\tvar connector = this.owner;\n\t\t// Bugfix for connecting to connector itself\n\t\tif (newMorph === connector.arrowHead.head) newMorph = null;\n\t\tif (newMorph)\n\t\t\tnewMorph.setWithLayers([NodeMorphLayer]);\n\t\tif (this.isStartHandle()) {\n\t\t\t// console.log(\"I am a start handle!\");\n\t\t\tif (connector.startMorph)\n\t\t\t\tconnector.startMorph.deconnectLineMorph(connector);\n\t\t\tconnector.startMorph = newMorph;\n\t\t}\n\t\tif (this.isEndHandle()) {\n\t\t\t// console.log(\"I am an end handle!\");\n\t\t\tif (connector.endMorph)\n\t\t\t\tconnector.endMorph.deconnectLineMorph(connector);\n\t\t\tconnector.endMorph = newMorph;\n\t\t}\n\n\t\tif (newMorph) {\n\t\t\tnewMorph.connectLineMorph(connector);\n\t\t\t// console.log(\"connect to new morph \" + newMorph)\n\t\t\tconnector.updateConnection();\n\t\t}\t\t\t\n\t},\n\n\tisStartHandle: function() {\n\t\treturn this.partName == 0;\n\t},\n\n\tisEndHandle: function() {\n\t\treturn this.partName == (this.owner.shape.vertices().length - 1);\n\t},\n\n\tget openForDragAndDrop() {\n\t\treturn false;\n\t},\n\n\tfindMorphUnderMe: function(){\t\n\t\tvar evt = newFakeMouseEvent(this.getGlobalPosition());\n\t\tvar result;\n\t\tcop.withLayers([FindMorphLayer], function(){\n\t\t\tresult = this.world().morphToGrabOrReceive(evt, this, true);\n\t\t}.bind(this));\n\t\tif (result instanceof WorldMorph)\n\t\t\treturn undefined;\n\t\treturn result;\n\t},\n\n\tgetGlobalPosition: function() {\n\t\treturn this.owner ?\n\t\t\tthis.owner.getGlobalTransform().transformPoint(this.getPosition()) :\n\t\t\tthis.getPosition();\n\t},\n});\n\n\n/**\n * Little Helper Layer to allow TextMorphs to be used as valid connector points\n * even if they don't want to be dragged or dropped\n * TODO: seperated the find Morph from event and drag and drop behavior\n */\ncop.create(\"FindMorphLayer\").refineClass(TextMorph, {\n\tacceptsDropping: function(){\n\t\treturn true\n\t}\n});\n\ncop.create('UpdateConnectorLayer')\n.beGlobal()\n.refineClass(WorldMorph, {\n\t\n\tmigrateConnectorMorphs: function() {\n\t\t// replace old connectors with new instance...\n\t\tthis.withAllSubmorphsDo(function() {\n\t\t\tif (this instanceof lively.Connector.ConnectorMorph)\n\t\t\t\treturn;\n\n\t\t\tif (this.startMorph && this.endMorph ) {\n\t\t\t\talert(\"migrate \" + this)\n\t\t\t\tvar m = new lively.Connector.ConnectorMorph();\n\t\t\t\tm.connectMorphs(this.startMorph, this.endMorph);\n\t\t\t\tthis.owner.addMorph(m);\n\t\t\t\tthis.remove()\n\t\t\t}\n\t\t})\n\n\t\t// this.withAllSubmorphsDo(function() {\n\t\t\t// if (this.getWithLayers().include(NodeMorphLayer)) \n\t\t\t\t// this.setupConnectorBindings();\n\t\t// })\n \t},\n\n\tdebuggingSubMenuItems: function(evt) {\n\t\tvar items = cop.proceed(evt);\n\t\titems.push([\"update connectors\", this.migrateConnectorMorphs.bind(this)]);\n\t\treturn items\n\t},\n});\n\n\nObject.extend(Morph, {\n\tmakeConnector: function(startPoint, endPoint) {\n\t\tendPoint = endPoint || startPoint;\n\t\t// var m = Morph.makeLine([pt(-1,-1), pt(0,0)], 1, Color.black);\n\t\t// m.setWithLayers([ConnectorMorphLayer]);\n\t\t// m.setupConnector();\n\t\t// m.updateArrow()\n\t\tvar m = new lively.Connector.ConnectorMorph();\n\t\tm.setGlobalStartPos(startPoint);\n\t\tm.setGlobalEndPos(endPoint);\n\t\tm.updateArrow()\n\t\treturn m;\n\t}\n});\n\nPathMorph.subclass('lively.Connector.ConnectorMorph',\n'settings', {\n\tsuppressGrabbing: true,\n},\n'initializing', {\n\tinitialize: function($super, startPoint, endPoint) {\n\t\tstartPoint = startPoint || pt(0,0);\n\t\tendPoint = endPoint || pt(100,100);\n\t\t$super([startPoint, endPoint]);\n\t\tthis.setGlobalStartPos(startPoint);\n\t\tthis.setGlobalEndPos(endPoint);\n\t\tthis.setWithLayers([ConnectorMorphLayer]);\n\t\tthis.setupConnector();\n\t\tthis.updateArrow()\n\t},\n\tsetupConnector: function() {\n\t\tvar lineColor = Color.black;\n\t\tthis.arrowHead = new ArrowHeadMorph(1, lineColor, lineColor);\n\t\tthis.addMorph(this.arrowHead);\n\t\tthis.updateArrow()\n\t},\n},\n'morphic', {\n\n\tremove: function($super) {\n\t\tthis.disconnectMorphs();\n\t\treturn $super();\n\t}\n},\n'accessing', {\n\tgetStartPos: function() { return this.shape.vertices().first() },\n\tgetEndPos: function() { return this.shape.vertices().last() },\n\t\n\tsetStartPos: function(p) {\n\t\tvar v = this.shape.vertices(); \n\t\tv[0] = p; \n\t\tthis.setVertices(v);\n\t},\n\t\n\tsetEndPos: function(p) {\n\t\tvar v = this.shape.vertices(); \n\t\tv[v.length-1] = p; \n\t\tthis.setVertices(v);\n\t},\n\n\tsetGlobalStartPos: function(p) { this.setStartPos(this.localize(p)) },\n\tsetGlobalEndPos: function(p) { this.setEndPos(this.localize(p)) },\n\tgetGlobalStartPos: function(p) { return this.worldPoint(this.getStartPos()) },\n\tgetGlobalEndPos: function(p) { return this.worldPoint(this.getEndPos()) },\n},\n'updating', {\n \tupdateArrow: function() {\n\t\tif (!this.arrowHead) return;\n\t\t// get to points at the end of the path and calculate a vector\n\t\tvar toPos = this.getRelativePoint(1),\n\t\t\tfromPos = this.getRelativePoint(0.9); // some point near the end\n\t\tthis.arrowHead.pointFromTo(fromPos, toPos);\n \t},\n\tupdateConnection: function (force) {\n\t\t// console.log(\"updateConnection\");\n\t\tif (!this.world()) return; // because of localize...\n\t\tvar obj1 = this.startMorph,\n\t\t\tobj2 = this.endMorph,\n\t\t\tbb1 = obj1 ? obj1.getGlobalTransform().transformRectToRect(obj1.shape.bounds()) :\n\t\t\t\t\t\trect(this.getGlobalStartPos(), this.getGlobalStartPos()),\n\t\t\tbb2 = obj2 ? obj2.getGlobalTransform().transformRectToRect(obj2.shape.bounds()) :\n\t\t\t\t\t\tbb2 = rect(this.getGlobalEndPos(), this.getGlobalEndPos());\n\n\t\tvar ptArr = this.pathBetweenRects(bb1, bb2),\n\t\t\tp1 = ptArr[0],\n\t\t\tc1 = ptArr[1],\n\t\t\tc2 = ptArr[2],\n\t\t\tp2 = ptArr[3],\n\t\t\toldP1 = this.getStartPos(),\n\t\t\toldP2 = this.getEndPos();\n\n\t\tif (!force && oldP1.eqPt(p1) && oldP2.eqPt(p2)) return;\n\n\t\t// to not move the connectors because of rounding errors\n\t\tp1 = obj1 ? p1 : this.getGlobalStartPos();\n\t\tp2 = obj2 ? p2 : this.getGlobalEndPos()\n\n\t\tthis.updatePath(p1, c1, c2, p2);\n\t},\n\tupdatePath: function(p1, c1, c2, p2) {\n\t\tthis.shape.setVertices([p1,p2]);\n\t\tif (this.isCurve) {\n\t\t\tvar elements = this.shape.getElements(), e = elements.last();\n\t\t\t// only has an effect when ctrl point was not edited by ser because then it's a Q\n\t\t\tif (e.charCode == 'C') { // it's a BezierCurve with 2 ctrl pts that we will upd\n\t\t\t\te.controlX1 = c1.x;\n\t\t\t\te.controlY1 = c1.y;\n\t\t\t\te.controlX2 = c2.x;\n\t\t\t\te.controlY2 = c2.y;\n\t\t\t\tthis.shape.setElements(elements);\n\t\t\t}\n\t\t}\n\t\tthis.updateArrow();\n\t\treturn;\n\t},\n\ttoggleLineStyle: function($super) {\n\t\t$super();\n\t\tthis.updateArrow();\n\t},\n},\n'connecting', {\n\tconnectMorphs: function(startMorph, endMorph) {\n\t\tif (startMorph) startMorph.addWithLayer(NodeMorphLayer);\n\t\tif (endMorph) endMorph.addWithLayer(NodeMorphLayer);\n\t\t\n\t\tif (this.startMorph) this.startMorph.deconnectLineMorph(this);\n\t\tif (this.endMorph) this.endMorph.deconnectLineMorph(this)\n\t\t\n\t\tthis.startMorph = startMorph;\n\t\tthis.endMorph = endMorph;\n\t\t\t\n\t\tif (startMorph) startMorph.connectLineMorph(this);\n\t\tif (endMorph) endMorph.connectLineMorph(this);\n\t\t\n\t\tthis.updateConnection();\t\t\t\t\n\t},\n\tconnectEndMorph: function(endMorph) {\n\t\tif (endMorph) endMorph.addWithLayer(NodeMorphLayer);\n\t\tif (this.endMorph) this.endMorph.deconnectLineMorph(this)\n\t\tthis.endMorph = endMorph;\t\t\n\t\tif (endMorph) endMorph.connectLineMorph(this);\n\t\t\n\t\tthis.updateConnection();\t\t\t\t\n\t},\n\n\tdisconnectMorphs: function(s) {\t\n\t\tif (this.startMorph) this.startMorph.deconnectLineMorph(this);\n\t\tif (this.endMorph) this.endMorph.deconnectLineMorph(this)\n\t\tthis.startMorph = null;\n\t\tthis.endMorph = null;\t\t\t\n\t},\n\n});\n\n\n\n}); // module Connector\n \n36 1299433 110831_ButtonLabelsAreNotCenteredAnymore.xhtml null [cop.create('lively.morphic.TransformRefactoringLayer'), cop.create('lively.morphic.TransformRefactoringLayer')] /*\ncop.create('lively.morphic.TransformRefactoringLayer')\n.refineClass(lively.morphic.Morph, {\n get originInTransform() { return false },\n addMorph: function(morph, optMorphBefore) {\n if (morph.owner) {\n var tfm = morph.transformForNewOwner(this);\n morph.remove();\n }\n\n if (morph.owner !== this) morph.owner = this;\n\n var indexToInsert = optMorphBefore && this.submorphs.indexOf(optMorphBefore);\n if (indexToInsert === undefined || indexToInsert < 0)\n indexToInsert = this.submorphs.length;\n this.submorphs.pushAt(morph, indexToInsert); \n\n // actually this should be done below so that geometry connects works correctly\n // but for the current Chrome stable (12.0.7) this leads to a render bug (morph is offseted)\n if (tfm) morph.setTransform(tfm);\n\n var parentRenderCtxt = this.renderContext(),\n subRenderCtxt = morph.renderContext(),\n ctx = parentRenderCtxt.constructor !== subRenderCtxt.constructor ?\n parentRenderCtxt.newForChild() : subRenderCtxt;\n morph.renderAfterUsing(ctx, optMorphBefore);\n\n // important to set transform after owner is set so that geometry connects work\n // if (tfm) morph.setTransform(tfm);\n\n morph.resumeSteppingAll();\n\n this.applyLayout();\n\n return morph\n },\n\n getTransform: function() {\n var scale = this.getScale(),\n pivot = this.getPivotPoint();\n return new lively.morphic.Similitude(pivot.negated())\n .preConcatenate(new lively.morphic.Similitude(this.getPosition(), this.getRotation(), pt(scale, scale)))\n .preConcatenate(new lively.morphic.Similitude(pivot));\n },\n\n setTransform: function(tfm) {\n this._Position = tfm.getTranslation();\n this._Rotation = tfm.getRotation().toRadians();\n this._Scale = tfm.getScale();\n this._PivotPoint = pt(0,0);\n return this.morphicSetter('Transform', tfm);\n },\n\n\n updateTransform: function(pos, rot, scale, pivot) {\n var t1 = $t(pos),\n t2 = $t(pivot),\n t3 = $t(pt(0,0), rot.toDegrees()),\n t4 = $t(pivot.negated()),\n tfm = t4.preConcatenate(t3.preConcatenate(t2.preConcatenate(t1)));\n return this.morphicSetter('Transform', tfm);\n },\n initHTML: function(ctx) {\n cop.proceed(ctx);\n ctx.morphNode.style.position = 'absolute';\n },\n\n\n setTransformHTML: function(ctx, transform) {\n if (ctx.morphNode)\n ctx.morphNode.style[ctx.domInterface.html5CssPrefix + 'transform'] = \n transform.toCSSTransformString()\n },\n setPivotPointHTML: function(ctx, value) {},\n\n setPositionHTML: function(ctx, value) { this.setTransformHTML(ctx, this.getTransform()) },\n setRotationHTML: function(ctx, rad) { this.setTransformHTML(ctx, this.getTransform()) },\n setScaleHTML: function(ctx, scale) { this.setTransformHTML(ctx, this.getTransform()) },\n\n setPosition: function(value) {\n this._Position = value;\n this.updateTransform(value, this.getRotation(), this.getScale(), this.getPivotPoint());\n return value;\n },\n getPosition: function() { return this.morphicGetter('Position') || pt(0,0) },\n setRotation: function(value) {\n this._Rotation = value;\n this.updateTransform(this.getPosition(), value, this.getScale(), this.getPivotPoint());\n return value;\n },\n getRotation: function() { return this.morphicGetter('Rotation') || 0 },\n setScale: function(value) {\n this._Scale = value;\n this.updateTransform(this.getPosition(), this.getRotation(), value, this.getPivotPoint());\n return value;\n },\n getScale: function() { return this.morphicGetter('Scale') || 1 },\n\n globalBounds: function() {\n var bounds = this.innerBounds();\n return this.getTransform().transformRectToRect(bounds);\n },\n\n\n // changed at Mon Jul 18 2011 02:38:57 GMT+0200 (CEST) by robertkrahn \n\n innerBounds: function() { return this.shape.getBounds() },\n\n\n // changed at Mon Jul 18 2011 02:43:15 GMT+0200 (CEST) by robertkrahn \n\n onMouseDown: function(evt) {\n // show(this.globalBounds())\n // show(this.getOrigin().addPt(this.getPosition()))\n // show(this.getOrigin().matrixTransform(this.getTransform()))\n // show(this.getOrigin())\n // t = new lively.morphic.Similitude(this.getPosition(), this.getRotation(), pt(1,1));\n // t = this.getTransform()\n // r= t.transformRectToRect(this.innerBounds())\n // show(r)\n // dot = this.world().addMorph(Morph.makeRectangle(r));\n // dot.setFill(null)\n\n // \n // var dot = this.addMorph(Morph.makeRectangle(0,0,5,5));\n // dot.ignoreEvents();\n // var pos = evt.getPosition().matrixTransform(this.getGlobalTransform().createInverse());\n // dot.align(dot.bounds().center(), pos);\n // alert(pos);\n // (function() { dot.remove() }).delay(1);\n\n return cop.proceed(evt);\n },\n\n\n // changed at Mon Jul 18 2011 01:26:16 GMT+0200 (CEST) by robertkrahn \n\n\n\n\n // changed at Mon Jul 18 2011 00:46:18 GMT+0200 (CEST) by robertkrahn \n\n\n\n\n // changed at Mon Jul 18 2011 00:46:18 GMT+0200 (CEST) by robertkrahn \n\n\n setPivotPoint: function(value) {\n return this.morphicSetter('PivotPoint', value);\n },\n getPivotPoint: function() {\n return this.morphicGetter('PivotPoint') || pt(0,0);\n },\n})\n.refineClass(lively.morphic.OriginHalo, {\n computePositionAtTarget: function() {\n var world = this.targetMorph.world();\n if (!world) return pt(0,0);\n\n var morph = this.targetMorph,\n pivot = morph.getPivotPoint().matrixTransform(morph.getGlobalTransform());\n pivot = pivot.subPt(this.getExtent().scaleBy(0.5))\n return pivot;\n },\n dragAction: function(evt, moveDelta) {\n var transform = this.targetMorph.getGlobalTransform();\n var oldPivot = transform.transformPoint(this.targetMorph.getPivotPoint()),\n newPivot = oldPivot.addPt(moveDelta);\n this.targetMorph.setPivotPoint(transform.inverse().transformPoint(newPivot));\n this.targetMorph.halos.invoke('alignAtTarget')\n },\n})\n.refineClass(lively.morphic.Rendering.DOMInterface, {\n setHTMLTransform: function(node, pos, rotationInRad, scale, pivot) {\n // var transformString = 'translate(' + pos.x + 'px' + + ') translate(' + pivot.x + 'px,' + pivot.y + 'px) rotate(' + rotationInRad.toDegrees() + 'deg) scale(' + scale + ',' + scale + ') ' + 'translate(' + -pivot.x + 'px,' + -pivot.y + 'px)';\n// \n // node.style[this.html5CssPrefix + 'transform'] = transformString;\n },\n}).beNotGlobal();\ncop.create('lively.morphic.TransformAggregationLayer')\n.refineClass(lively.morphic.Morph, {\n updateTransform: function(pos, rot, scale, pivot) {\n var prev = $t(this.prevTransform),\n t1 = $t(pos.subPt(prev.getTranslation())).preConcatenate(prev),\n t2 = $t(pivot),\n t3 = $t(pt(0,0), rot.toDegrees() - prev.getRotation()),\n t4 = $t(pivot.negated());\n alert('t1 ' + t1 + '\\nt2 ' + t2 + '\\nt3 ' + t3 + '\\nt4 ' + t4);\n var tfm = t4.preConcatenate(t3.preConcatenate(t2.preConcatenate(t1)));\n alert('updateTransform ' + tfm + ' (prev: ' + prev + ')');\n this.prevTransform = tfm;\n return this.morphicSetter('Transform', tfm);\n },\n});\n\nObject.extend(Global, {\n $t: function(translation, rotation, scale) {\n return new lively.morphic.Similitude(translation, rotation && rotation.toRadians(), scale && pt(scale,scale))\n },\n show2: function(obj) {\n var offs = $morph('container').getPosition();\n if (obj.translatedBy) show(obj.translatedBy(offs))\n else if (obj.addPt) show(obj.addPt(offs))\n else show(obj)\n },\n inv: function(t) { return t.copy().inverse() },\n concatTransforms: function(/*transforms*/) {\n // t1 x t2 x t3\n var transforms = $A(arguments),\n result = $t();\n transforms.reverse().forEach(function(t) { result.preConcatenate(t) }) \n return result;\n },\n});\n\n*/ \n37 1262582 110704_DontGrabTextWithJensFancyGrabber.xhtml ObjectEditorScriptPane [cop.create('lively.LayerableMorphs', cop.create('lively.LayerableMorphs'] );} (!targetObj.withoutLayers.include(GrabbingLayer))\n targetObj.withoutLayers.push(GrabbingLayer)\n\nif (!targetObj.withoutLayers)\n targetObj.withoutLayers = [];\n\nif targetObj = lively.morphic.Window.prototype\nvar)\n\n\n},\n} true;\n return\n cop.proceed(evt)\n {(evt) function onDragEnd:,\n\n } true;\n return\n cop.proceed(evt)\n {(evt) function onDrag:,\n\n })\n this (bounds.containsPoint(pos) && !smallerBounds.containsPoint(pos))\n evt.hand.grabMorph(if.localize(evt.getPosition());\n this),\n pos = 6.innerBounds(),\n smallerBounds = bounds.insetBy(this bounds = var\n // only grab when in outer area of bounds;\n return (cop.proceed(evt)) if\n {(evt) function onDragStart:,\n\n } truereturn{\n get draggingEnabled() {(lively.morphic.Text, refineClass)\n.},\n} true;\n return\n cop.proceed(evt)\n {(evt) function onDragEnd:,\n\n } true;\n return\n cop.proceed(evt)\n {(evt) function onDrag:,\n\n })\n this;\n evt.hand.grabMorph(return (cop.proceed(evt)) if\n {(evt) function onDragStart:,\n\n } truereturn{\n get draggingEnabled() {(lively.morphic.Morph, refineClass).'GrabbingLayer').load()\n\ncop.create('lively.LayerableMorphs'\nmodule(// this.setupGrabbing()\n{ setupGrabbing() function.addScript(this\n\n// changed at Mon Jul 04 2011 18:03:21 GMT+0200 (CEST) by robertkrahn \n38 1236986 110530_MakeSyntaxHighlightingFaster.xhtml null [cop.create({() function).toRun('lively.Widgets', 'lib.jslint', 'cop.Layers').requires('lively.ide.JSLint'module(, cop.create({() function).toRun('lively.Widgets', 'lib.jslint', 'cop.Layers').requires('lively.ide.JSLint'module(] // end of module) });\nfsdfsdf\nJSLintLayer.beGlobal();\n\n} ]\"All 'debugger' statements should be removed.\",\n\t\t\"Bad escapement.\",\n\t\t\"'new' should not be used as a statement.\",\n\t\t\"Expected an assignment or function call and instead saw an expression.\",\n\t\t\"Unnecessary semicolon.\",\n\t\t\"eval is evil.\",\n\t\t\"Expected '{a}' and instead saw '{b}'.\", \n\t\t'Missing semicolon.', 'Extra comma.' [\n\t\tignoreErrorList:\n\t{(JSLintLayer, extend.Object);\n\n},\n}\t\n\t0 errors.length === return.handleJSLintErrors(errors, lines, offset)\n\t\tthis);\n\t\t} JSLintLayer.ignoreErrorList.include(ea.raw)return {(ea)function)\n\t\t\t.reject(} eareturn {(ea)function errors = JSLINT.errors\n\t\t\t.select(var)\n\t\tJSLINT(lines);\n\t\t/[\\n\\r]/ lines = contentString.split(var\n\t\t{(contentString, offset) function jslintContents:,\n\n\t}], pos)\n\t0.handleFirstJSLintError(errors[this pos = offset + errorPos;\n\t\tvar].character);\n\t\t0, errors[1].line - 0.dasdasdasdasdasdasdasdpvtPositionInString(lines, errors[this errorPos = var;\n\n\t\t0)\n\t\toffset = offset || }))\n\t\t500,900, fullErrors)asdasd\n\t\t\tdialog.owner.setExteaasdasdasd\n\n\n\n\n\nsdfsdf\n\nsdfsdf\n\nsdfsdf\nsdfsdfsdasdasdasdnt(pt(undefined, \"JSLint Errors\" dialog = world.easdasdasdditPrompt(var);adasdasdasd\n\t\t\t'\\n').join(} + ea.raw\n\t\t\t\"raw=\" +dasdasdasd \")\" + ea.evidence + \" (\" + ea.reason + \"]: \" + ea.character + \"[\" + ea.line + \" \" + ea.id + \"\" return\n\t\t\t\t{(ea) function fullErrors = errors.collect(var\n\t\t\t{() function, 10 + allErrors, Color.orange, \" errors:\\n\" + errors.length + \"JSLint found \".world();\n\t\tworld.setStatusMessage(this world = var);\n\t\t'\\n').join(} + ea.reason\n\t\t\"]: \" + ea.character + \"[\" + ea.line + \"\" return\n\t\t {(ea) function allErrors = errors.collect(var;\n\n\t\treturn) 1 (errors.length < if\n\t\t{(errors, lines, offset) function handleJSLintErrors:,\n\t\t\n\t}\n\t}.setStatusMessage(error.reason, Color.orange);\n\t\tthis\n\t\t\t{ else }.setSelectionRange(pos, pos + replacement.length);\n\t\tthis.replaceSelectionWith(replacement);\n\t\t\tthis\n\t\t\t\"/* \" + error.reason + \" */\" replacement = var\n\t\t\t{ (Config.showJSLintErrorsInline) if.setSelectionRange(pos, pos);\n\t\tthis\n\t\t{(error, pos) function handleFirstJSLintError:,\n\t\n\t}\n\t} cop.proceed(str, offset, printIt);\n\t\treturn\n\t\t\t// continue anywhay\n\t\t\t// I don't care if there where errors!\n\t\t\t{ else } cop.proceed(str, offset, printIt);\n\t\treturn \n\t\t\t{.jslintContents(str, offset)) this (if\n\t\t{(str, offset, printIt) function tryBoundEval:\n\t{(TextMorph, refineClass).'JSLintLayer'\ncop.create({() function).toRun('lively.Widgets', 'lib.jslint', 'cop.Layers').requires('lively.ide.JSLint'module( \n39 1219432 110522_ClickingTheScrollbarInListsDoesNotWork.xhtml null [cop.create(, cop.create(] ).setWithLayers([])'List'.get(this).setWithLayers([])\n'ClipMorph'.get(this\nEventLogLayer.beNotGlobal()\n// module('lively.LayerableMorphs').load())\n\n},\n\n} cop.proceed(evt);\n return)\n this + 'onMouseDown '\n alert({(evt) function onMouseDown:\n {(lively.morphic.List, refineClass\n.// })\n// },\n // return cop.proceed(evt);\n // alert('onMouseDown ' + this)\n // onMouseDown: function(evt) {\n // .refineClass(lively.morphic.Morph, {)\n'EventLogLayer'cop.create( \n40 1223794 110522_ListAndTextScrollWorldAfterReachingTheirScrollBounds.xhtml null [cop.create(, cop.create(] ).beGlobal()\n},\n} true;\n return\n\n })\n evt.stop();\n 0 && currentVerticalScroll <= 0 (evt. wheelDeltaY > if && currentVerticalScroll >= maxVerticalScroll)\n evt.stop();\n 0 (evt. wheelDeltaY < if maxVerticalScroll = div.scrollHeight - div.clientHeight,\n currentVerticalScroll = div.scrollTop;\n var\n { (evt.wheelDeltaY) if else })\n evt.stop();\n 0 && currentHorizontalScroll <= 0 (evt.wheelDeltaX > if && currentHorizontalScroll >= maxHorizontalScroll)\n evt.stop();\n 0 (evt.wheelDeltaX < if maxHorizontalScroll = div.scrollWidth - div.clientWidth,\n currentHorizontalScroll = div.scrollLeft;\n var\n { (evt.wheelDeltaX) if.getScrollableNode();\n this div = var\n // FIXME HTML specfic! Move to HTML module\n {(evt) function stopScrollWhenBordersAreReached:\n {(lively.morphic.List, refineClass)\n.'FixAddMorphLayer'cop.create( \n41 1223366 110522_FixSubmorphOrderWhenAddingMorphs.xhtml null [cop.create(, cop.create(] ).beGlobal()\n},\n\n} morph\n return.renderContext().newForChild() : morph.renderContext();\n morph.renderAfterUsing(ctx, optMorphBefore);\n\n morph.resumeSteppingAll();\n\n this.renderContext().constructor !== morph.renderContext().constructor ?\n this ctx = var.submorphs.pushAt(morph, indexToInsert);\n \n\n this.submorphs.length;\n this\n indexToInsert = // even if it's 0) 0 || indexToInsert < undefined (indexToInsert === if.submorphs.indexOf(optMorphBefore);\n this indexToInsert = optMorphBefore && var;\n\n this) morph.owner = this (morph.owner !== if\n });\n morph.remove();\n morph.setTransform(tfm);\n this tfm = morph.transformForNewOwner(var\n {) /*&& morph.owner !== this*/ (morph.owner if\n {(morph, optMorphBefore) function addMorph:\n {(lively.morphic.Morph, refineClass)\n.'FixAddMorphLayer'cop.create( \n42 1202944 110511_LinesCannotBeClicked.xhtml null [cop.create('ClickOnLineLayer'), cop.create('ClickOnLineLayer')] module('lively.morphic.ClickOnLineHack').requires('lively.morphic.Events', 'cop.Layers').toRun(function() {\n\n// this is an experiment!!!\n// this should not end up in the code!!!\n// just for Dan's 5/11 demo!!!\ncop.create('ClickOnLineLayer')\n.refineClass(lively.morphic.Morph, {\n\tglobalPointIsInExtendedBorder: function(p) {\n\t\tvar outset = 10,\n\t\t\tthreshold = 10; // the minimal width or height to trigger this behavior\n\n\t\tvar extent = this.getExtent();\n\t\tif (extent.x > threshold && extent.y > threshold) return false;\n\t\tvar loclizedP = this.localize(p);\n\t\treturn this.innerBounds().insetBy(-outset).containsPoint(loclizedP) &&\n\t\t\t!this.innerBounds().containsPoint(loclizedP);\n\t},\n\n\ttryToFindBarelyClickedOnMorphAndInvokeEventHandler: function(evt, selector) {\n\t\tvar p = evt.getPosition();\n\t\tvar clicked = this.submorphs && this.submorphs.detect(function(ea) { return !(ea instanceof lively.morphic.HandMorph) && ea. globalPointIsInExtendedBorder(p) })\n\t\treturn clicked && clicked[selector](evt);\n\t},\n\tonMouseDown: function(evt) {\n\t\treturn this.tryToFindBarelyClickedOnMorphAndInvokeEventHandler(evt, 'onMouseDown') || cop.proceed(evt);\n\t},\n\tonMouseUp: function(evt) {\n\t\treturn this. tryToFindBarelyClickedOnMorphAndInvokeEventHandler(evt, 'onMouseUp') || cop.proceed(evt);\n\t},\n}).beGlobal();\n\n\n}) // end of module \n43 1203579 110511_LinesCannotBeClicked.xhtml null [cop.create('ClickOnLineLayer').refineClass(lively.morphic.Morph, {, cop.create('ClickOnLineLayer').refineClass(lively.morphic.Morph, {] cop.create('ClickOnLineLayer').refineClass(lively.morphic.Morph, {\n\tglobalPointIsInExtendedBorder: function(p) {\n\t\tvar outset = 10,\n\t\t\tthreshold = 10; // the minimal width or height to trigger this behavior\n\n\t\tvar extent = this.getExtent();\n\t\tif (extent.x > threshold && extent.y > threshold) return false;\n\t\tvar loclizedP = this.localize(p);\n\t\treturn this.innerBounds().insetBy(-outset).containsPoint(loclizedP) &&\n\t\t\t!this.innerBounds().containsPoint(loclizedP);\n\t},\n\n\ttryToFindBarelyClickedOnMorphAndInvokeEventHandler: function(evt, selector) {\n\t\tvar p = evt.getPosition();\n\t\tvar clicked = this.submorphs.detect(function(ea) { return ea. globalPointIsInExtendedBorder(p) })\n\t\treturn clicked && clicked[selector](evt);\n\t},\n\tonMouseDown: function(evt) {\n\t\tthis. tryToFindBarelyClickedOnMorphAndInvokeEventHandler(evt, 'onMouseDown');\n\t\treturn cop.proceed(evt);\n\t},\n\n\tonMouseUp: function(evt) {\n\t\tthis. tryToFindBarelyClickedOnMorphAndInvokeEventHandler(evt, 'onMouseUp');\n\t\treturn cop.proceed(evt);\n\t},\n});\n\n\n\n\n\nmodule('lively.LayerableMorphs').load()\nthis.get('Rectangle').setWithLayers([]) \n44 836150 110722_ClipModeShouldClipMorphsInTheirBounds.xhtml null [cop.create(, cop.create(] )\n\nOuterClipNodeLayer.beGlobal()\n},\n} renderContext;\n return.morphNode);\n this.newInstance();\n renderContext.setParentNode(this renderContext = var\n { () function newForChild:\n {(lively.morphic.Rendering.RenderContext, refineClass)\n.},\n\n}.moveBy(transformedDelta);\n this\n // }, delta.negated());\n'moveBy'.submorphs.invoke(this.shape.setPosition(value.negated());\n this\n // } else { \n// this.renderContext().domInterface.setPosition(this.renderContext().clipNode, value.negated());\n // if (this.renderContext().clipNode) {\n\n// change the shapes position and own translation._origin= value;\n this.getTransform(),\n oldTransformedOrigin = transform.transformPoint(oldOrigin),\n newTransformedOrigin = transform.transformPoint(value),\n transformedDelta = newTransformedOrigin.subPt(oldTransformedOrigin);\nthis.getOrigin(),\n delta = value.subPt(oldOrigin),\n transform = this oldOrigin = var\n // without changing its position on the screen\n // changes the origin / pivot of the morph \n {(value) function setOrigin:,\n }.shape.getPosition().negated();\n this._origin || this return\n {() function getOrigin:\n // origin,\n\n }\n }\n })\n } \n ctx.clipNode.removeChild(ctx.morphNode);\n ctx.clipNode = null;\n else (ctx.clipNode.parentNode)\n ctx.clipNode.parentNode.appendChild(ctx.morphNode)\n if\n {() function.reapplyNodeStateHTML(ctx, this\n { (ctx.clipNode) if\n { else };\n 'auto'.getExtent());\n ctx.clipNode.style.overflow = modeString || this\n ctx.domInterface.setExtent(ctx.clipNode, })\n } (ctx.morphNode.parentNode)\n ctx.morphNode.parentNode.appendChild(ctx.clipNode);\n ctx.clipNode.appendChild(ctx.morphNode);\n if\n // ctx.clipNode.style.pointerEvents = false;;\n 'absolute')\n ctx.clipNode.style.position = 'div'\n ctx.clipNode = XHTMLNS.create({() function.reapplyNodeStateHTML(ctx, this\n { (!ctx.clipNode) if\n {.isClippingMode(modeString)) this (if\n {(ctx, modeString) function setClipModeHTML:,\n };\n '' && modeString !== 'visible' modeString !== return\n {(modeString) function isClippingMode:,\n }.getClipMode());\n this.isClippingMode(this return\n {() function isClip:\n // clipping specifc,\n\n });\n ctx.clipNode && ctx.removeNode(ctx.clipNode);\n ctx.morphNode && ctx.removeNode(ctx.morphNode);\n this.owner.removeMorph(this.owner && this\n {(ctx) function removeHTML:,\n }.getShape().renderUsing(ctx);\n this.insertMorphNodeInHTML(ctx, node, parentNode, afterNode);\n\n this afterNode = optMorphAfter && optMorphAfter.renderContext().getMorphNode();\n var\n }\n };\n return)\n ' without parentNode' + this + 'Cannot render ' (Config.debugMissingParentNode) debugger\n alert(if\n { (!parentNode) if.owner.renderContext();\n parentNode = (ownerCtx && ownerCtx.morphNode) || ctx.parentNode;\n this.owner && this ownerCtx = var\n { (!parentNode) if node = ctx.clipNode || ctx.morphNode,\n parentNode = node.parentNode;\n var));\n 'no ctx.morphNode!'(Error new dbgOn(throw (!ctx.morphNode) if\n {(ctx, optMorphAfter) function appendHTML:,\n };\n 'hidden' : '' (node)\n node.style.visibility = bool ? if node = ctx.clipNode || ctx.morphNode;\n var\n {(ctx, bool) function setVisibleHTML:,\n } (node)\n ctx.domInterface.setExtent(node, value);\n if node = ctx.clipNode || ctx.morphNode;\n var\n {(ctx, value) function setExtentHTML:,\n }.getPivotPoint());\n this.getRotation(), scale, this (node)\n ctx.domInterface.setHTMLTransform(node, if node = ctx.clipNode || ctx.morphNode;\n var\n {(ctx, scale) function setScaleHTML:,\n }.getPivotPoint());\n this.getScale(), this (node)\n ctx.domInterface.setHTMLTransform(node, rad, if node = ctx.clipNode || ctx.morphNode;\n var\n {(ctx, rad) function setRotationHTML:,\n } (node)\n ctx.domInterface.setPosition(node, value);\n if node = ctx.clipNode || ctx.morphNode;\n var\n {(ctx, value) function setPositionHTML:,\n }.isVisible());\n this.setVisibleHTML(ctx, this.getScale());\n this.setScaleHTML(ctx, this.getRotation());\n this.setRotationHTML(ctx, this.getPosition());\n this.setPositionHTML(ctx, this.setVisibleHTML(ctx, true);\n func && func();\n this);\n 1.setScaleHTML(ctx, this);\n 0.setRotationHTML(ctx, this));\n 0,0.setPositionHTML(ctx, pt(this\n {(ctx, func) function reapplyNodeStateHTML:\n {(lively.morphic.Morph, refineClass)\n.'OuterClipNodeLayer'cop.create( \n45 837872 110722_ClipModeShouldClipMorphsInTheirBounds.xhtml null [cop.create(, cop.create(] )\n\nOriginBugFixLayer.beNotGlobal()},\n} pos;\n return));\n 0.5.getExtent().scaleBy(this.targetMorph.getOrigin()),\n pos = pos.subPt(this.targetMorph.worldPoint(this pos = var);\n 0,0 pt(return (!world) if.targetMorph.world();\n this world = var\n {() function computePositionAtTarget:\n {(lively.morphic.OriginHalo, refineClass)\n.},\n} pos;\n return.verticalPos));\n\n this.horizontalPos, haloOffsetY*this.maxVerticalLabels,\n pos = visibleBounds.topLeft().addPt(\n pt(haloOffsetX*this.maxHorizontalLabels,\n haloOffsetY = (visibleBounds.realHeight()-haloItemExtent.y) / this.defaultExtent,\n haloOffsetX = (visibleBounds.realWidth()-haloItemExtent.x) / this haloItemExtent = var.computeHaloBounds(boundsInWorld, world);\n\n this bounds = targetMorph.bounds(),\n boundsInWorld = targetMorph.getGlobalTransform().transformRectToRect(targetMorph.innerBounds()),\n visibleBounds = var);\n\n 0,0 pt(return (!world || !owner) if world = targetMorph.world(),\n owner = targetMorph.owner;\n var.targetMorph;\n this\n targetMorph = targetMorph || {(targetMorph) function computePositionAtTarget:\n {(lively.morphic.Halo, refineClass)\n.},\n}.moveBy(transformedDelta);\n this\n }, delta.negated());\n'moveBy'.submorphs.invoke(this.shape.setPosition(value.negated());\n this\n { else }.renderContext().clipNode, value.negated());\nthis.renderContext().domInterface.setPosition(this\n {.renderContext().clipNode) this (if\n\n// change the shapes position and own translation._origin= value;\n this.getTransform(),\n oldTransformedOrigin = transform.transformPoint(oldOrigin),\n newTransformedOrigin = transform.transformPoint(value),\n transformedDelta = newTransformedOrigin.subPt(oldTransformedOrigin);\nthis.getOrigin(),\n delta = value.subPt(oldOrigin),\n transform = this oldOrigin = var\n // without changing its position on the screen\n // changes the origin / pivot of the morph \n {(value) function setOrigin:,\n }.shape.getPosition().negated();\n this._origin || this return\n {() function getOrigin:,\n } globalTransform;\n return\n }\n globalTransform.preConcatenate(t);\n }\n // alert('t:' + t + ' origin: ' + morph.getOrigin().negated()))).preConcatenate(t);\n 1,1, pt(0 lively.morphic.Similitude(morph.getOrigin().negated(), new\n t = {) this (morph.isClip() && morph !== if t = morph.getTransform();\n var\n {); morph = morph.owner) undefined; (morph != world) && (morph != this morph = var (for.world();\n this lively.morphic.Similitude(),\n world = new globalTransform = var\n // return cop.proceed();\n {() function getGlobalTransform:,\n }.getRotation(), pt(scale,scale));\n this lively.morphic.Similitude(pos, new return\n // if (this.isClip()) pos = pos.addPt(this.getOrigin().negated());.getPosition();\n this.getScale(),\n pos = this scale = var\n { () function getTransform:,\n }.getOrigin().negated()) : cop.proceed();\n this.isClip() ?\n cop.proceed().translatedBy(this return\n // return cop.proceed();\n {() function innerBounds:\n {(lively.morphic.Morph, refineClass)\n.'OriginBugFixLayer'cop.create( \n46 839065 110722_ClipModeShouldClipMorphsInTheirBounds.xhtml null [cop.create('OriginBugFixLayer'), cop.create('OriginBugFixLayer')] cop.create('OriginBugFixLayer')\n.refineClass(lively.morphic.Morph, {\n isClip: function() {\n return this.isClippingMode(this.getClipMode());\n },\n isClippingMode: function(modeString) {\n return modeString !== 'visible' && modeString !== '';\n },\n innerBounds: function() {\n // return cop.proceed();\n return this.isClip() ?\n cop.proceed().translatedBy(this.getOrigin().negated()) : cop.proceed();\n },\n getTransform: function () {\n var scale = this.getScale(),\n pos = this.getPosition();\n // if (this.isClip()) pos = pos.addPt(this.getOrigin().negated());\n return new lively.morphic.Similitude(pos, this.getRotation(), pt(scale,scale));\n },\n getGlobalTransform: function() {\n // return cop.proceed();\n var globalTransform = new lively.morphic.Similitude(),\n world = this.world();\n for (var morph = this; (morph != world) && (morph != undefined); morph = morph.owner) {\n var t = morph.getTransform();\n if (morph.isClip() && morph !== this) {\n t = new lively.morphic.Similitude(morph.getOrigin().negated(), 0, pt(1,1)).preConcatenate(t);\n // alert('t:' + t + ' origin: ' + morph.getOrigin().negated())\n }\n globalTransform.preConcatenate(t);\n }\n return globalTransform;\n },\n setClipModeHTML: function(ctx, modeString) {\n if (this.isClippingMode(modeString)) {\n if (!ctx.clipNode) {\n ctx.clipNode = XHTMLNS.create('div')\n ctx.clipNode.style.position = 'absolute';\n while (ctx.morphNode.childNodes.length > 0)\n ctx.clipNode.appendChild(ctx.morphNode.childNodes[0])\n ctx.morphNode.appendChild(ctx.clipNode);\n\n // origin: moving clipNode and resetting shape + submorphs\n var origin = this.getOrigin();\n ctx.domInterface.setPosition(ctx.clipNode, origin.negated());\n this.shape.setPosition(this.shape.getPosition().addPt(origin));\n this.submorphs.invoke('moveBy', origin);\n }\n ctx.domInterface.setExtent(ctx.clipNode, this.getExtent());\n ctx.clipNode.style.overflow = modeString || 'auto';\n } else {\n if (ctx.clipNode) {\n while (ctx.clipNode.childNodes.length > 0)\n ctx.morphNode.appendChild(ctx.clipNode.childNodes[0])\n ctx.morphNode.removeChild(ctx.clipNode);\n ctx.clipNode = null;\n\n // offsetting shape + submorphs\n var origin = this.getOrigin();\n this.shape.setPosition(this.shape.getPosition().addPt(origin.negated()));\n this.submorphs.invoke('moveBy', origin.negated());\n }\n }\n },\n getOrigin: function() {\n return this._origin || this.shape.getPosition().negated();\n },\n setOrigin: function(value) {\n // changes the origin / pivot of the morph \n // without changing its position on the screen\n var oldOrigin = this.getOrigin(),\n delta = value.subPt(oldOrigin),\n transform = this.getTransform(),\n oldTransformedOrigin = transform.transformPoint(oldOrigin),\n newTransformedOrigin = transform.transformPoint(value),\n transformedDelta = newTransformedOrigin.subPt(oldTransformedOrigin);\nthis._origin= value;\n // change the shapes position and own translation\n\nif (this.renderContext().clipNode) {\n this.renderContext().domInterface.setPosition(this.renderContext().clipNode, value.negated());\n} else {\n this.shape.setPosition(value.negated());\n this.submorphs.invoke('moveBy', delta.negated());\n}\n this.moveBy(transformedDelta);\n },\n})\n.refineClass(lively.morphic.Shapes.Shape, {\n setExtentHTML: function(ctx, value) {\n var extentWithoutBorder = value.addXY(-2*this.getBorderWidth(), -2*this.getBorderWidth());\n if (ctx.shapeNode)\n ctx.domInterface.setExtent(ctx.shapeNode, extentWithoutBorder);\n if (ctx.clipNode)\n ctx.domInterface.setExtent(ctx.clipNode, value);\n },\n})\n.refineClass(lively.morphic.Shapes.External, {\n setExtentHTML: function(ctx, value) {\n cop.proceed(ctx, value)\n if (ctx.clipNode)\n ctx.domInterface.setExtent(ctx.clipNode, value);\n },\n})\n.refineClass(lively.morphic.Halo, {\n computePositionAtTarget: function(targetMorph) {\n targetMorph = targetMorph || this.targetMorph;\n var world = targetMorph.world(),\n owner = targetMorph.owner;\n if (!world || !owner) return pt(0,0);\n\n var bounds = targetMorph.bounds(),\n boundsInWorld = targetMorph.getGlobalTransform().transformRectToRect(targetMorph.innerBounds()),\n visibleBounds = this.computeHaloBounds(boundsInWorld, world);\n\n var haloItemExtent = this.defaultExtent,\n haloOffsetX = (visibleBounds.realWidth()-haloItemExtent.x) / this.maxHorizontalLabels,\n haloOffsetY = (visibleBounds.realHeight()-haloItemExtent.y) / this.maxVerticalLabels,\n pos = visibleBounds.topLeft().addPt(\n pt(haloOffsetX*this.horizontalPos, haloOffsetY*this.verticalPos));\n\n return pos;\n },\n})\n.refineClass(lively.morphic.OriginHalo, {\n computePositionAtTarget: function() {\n var world = this.targetMorph.world();\n if (!world) return pt(0,0);\n var pos = this.targetMorph.worldPoint(this.targetMorph.getOrigin()),\n pos = pos.subPt(this.getExtent().scaleBy(0.5));\n return pos;\n },\n})\n\nOriginBugFixLayer.beNotGlobal() \n47 839508 110722_ClipModeShouldClipMorphsInTheirBounds.xhtml null [cop.create(, cop.create(] )\n\n\nOriginBugFixLayer.beGlobal()},\n}\n // ctx.domInterface.setExtent(ctx.morphNode, value);\n // if (ctx.morphNode)\n cop.proceed(ctx, value)\n {(ctx, value) function setExtentHTML:\n {(lively.morphic.Shapes.External, refineClass)\n.},\n}\n // ctx.domInterface.setExtent(ctx.morphNode, value);\n // if (ctx.morphNode) (ctx.shapeNode)\n ctx.domInterface.setExtent(ctx.shapeNode, extentWithoutBorder);\n if.getBorderWidth());\n this*2.getBorderWidth(), -this*2 extentWithoutBorder = value.addXY(-var\n {(ctx, value) function setExtentHTML:\n {(lively.morphic.Shapes.Shape, refineClass)\n.},\n}\n }.getExtent())\n this.setExtentHTML(ctx, this)\n }}.targetObj.getExtent())this.targetObj.renderContext(), this$upd({($upd) function\n updater:{, 'setExtentHTML', this, 'shapeNode'\n lively.bindings.callWhenNotNull(ctx, {) '' && modeString !== 'auto' && modeString !== 'visible' (modeString !== if;\n 'auto'\n ctx.morphNode.style.overflow = modeString || {(ctx, modeString) function setClipModeHTML:\n {(lively.morphic.Morph, refineClass)\n.'OriginBugFixLayer'cop.create( \n48 845599 110722_ClipModeShouldClipMorphsInTheirBounds.xhtml null [cop.create('NewMorphicCompatLayer'), cop.create('NewMorphicCompatLayer')] cop.create('NewMorphicCompatLayer')\n.refineObject(Global, {\n get Morph() { return lively.morphic.Morph },\n get BoxMorph() { return lively.morphic.Box },\n get TextMorph() { return lively.morphic.Text },\n get WorldMorph() { return lively.morphic.World },\n get ButtonMorph() { return lively.morphic.Button },\n get PanelMorph() { return lively.morphic.Panel },\n get HorizontalDivider() { return lively.morphic.HorizontalDivider },\n get SliderMorph() { return lively.morphic.Slider },\n get MenuMorph() { return lively.morphic.Menu },\n get ImageMorph() { return lively.morphic.Image },\n get ContainerMorph() { return lively.morphic.Morph },\n\n get TextSelectionMorph() { return lively.morphic.Morph },\n get Widget() { return lively.morphic.WindowedApp },\n\n get newTextPane() {\n return function(initialBounds, defaultText) {\n var text = new TextMorph(initialBounds, defaultText);\n text.applyStyle({clipMode: 'scroll', fixedWidth: true, fixedHeight: true})\n return text\n }\n },\n get newDragnDropListPane() {\n return function(initialBounds, suppressSelectionOnUpdate) {\n return new lively.morphic.List(initialBounds, ['-----'])\n }\n },\n})\n.refineObject(lively, {\n get scene() { return {\n Text: lively.morphic.Shapes.Rectangle,\n Similitude: lively.morphic.Similitude,\n Group: lively.morphic.Shapes.Rectangle,\n Rectangle: lively.morphic.Shapes.Rectangle} },\n get Text() { return {Text: lively.morphic.Compat.Text, isLoaded: Functions.True} },\n get paint() { return {\n RadialGradient: lively.morphic.RadialGradient,\n LinearGradient: lively.morphic.LinearGradient,\n Stop: Object}},\n});\n \n49 828002 EditStyleInWorldMenu.json EditStyleInWorldMenu [cop.create(, cop.create(] )\nDevLayer.beGlobal()\n\n\n}\n} items\n \n return])\n }\n $world.openStyleEditorFor($world)\n {() function , \"style\"].push([1 (prefMenu)\n prefMenu[if)\n }\n \"Preferences\"] == 0 ea[return \n {(ea) function prefMenu = items.detect(var\n // inspect(items) items = cop.proceed();\n var\n {() function morphMenuItems:\n {(WorldMorph, refineClass).\"DevLayer\"cop.create( \n50 816880 ContextJSScopingSlide.json Workspace [cop.create(, cop.create(] \n// ShowClickLayer.beNotGlobal();\n// ShowClickLayer.beGlobal();)\n}\n} cop.proceed(evt)\n return\n show(evt.mousePoint)\n {(evt) function onMouseDown:,\n } cop.proceed(evt)\n return\n show(evt.mousePoint)\n {(evt) function onMouseMove:\n {(Morph, refineClass).'ShowClickLayer'cop.create( \n51 795013 SlideItem.json null [cop.create(, cop.create(] )\n\n\n\n\n}\n} cop.proceed(evt)\n return + evt);\n \"key down\"\n alertOK({(evt) function onKeyDown:\n {(TextMorph, refineClass).'DevLayer'cop.create( \n52 795604 SlideItem.json Workspace [cop.create(, cop.create(] \n// ShowClickLayer.beNotGlobal();\n// ShowClickLayer.beGlobal();)\n}\n} cop.proceed(evt)\n return\n show(evt.mousePoint)\n {(evt) function onMouseDown:,\n } cop.proceed(evt)\n return\n show(evt.mousePoint)\n {(evt) function onMouseMove:\n {(Morph, refineClass).'ShowClickLayer'cop.create( \n53 795935 SlideItem.json null [cop.create(}, cop.create(}] )\n}\n})\n 2 cop.proceed(a * return\n {(a) function m:\n {(MyObject, refineClass.LayerB)\n'LayerB')\n\ncop.create(}\n}\n 4 cop.proceed(a) + return\n {(a) function m:\n {(MyObject, refineClass.LayerA)\n\n'LayerA')\n\ncop.create(}\n}\n 3 a * return\n {(a) function m:\n {, \"MyObject\"(subclass.Object \n54 916081 120126_BetterCodeCompletion.xhtml DevSnippet [cop.create(, cop.create(] )},\n}]\n })\n 0).delay(}]);\n textMorph.insertAtCursor(signature, true)\n 1], range[0 + range);\n textMorph.focus();\n range && textMorph.setSelectionRange(range[\"range \"\n newShowMorph(textMorph);\n alertOK({() function\n (// FIXME not sure if this has to be delayed\n {() function [signature, return.textMorph,\n range = textMorph && textMorph.getSelectionRange();\n this textMorph = var\n {(signature) function createSubMenuItemFromSignature:\n {(lively.morphic.Text.ProtocolLister, refineClass)\n.beGlobal()\n.'DevLayer'cop.create( \n55 863500 111108_HalosOfMorphsAtTheEdgeOfTheWorldAreNotClickable.xhtml null [cop.create(, cop.create(] )}\n} cop.proceed(evt)\n return + evt.hand.haloLastClickedOn)\n 'mouse up '\n alert({(evt) function onMouseUp:\n {(lively.morphic.Halo, refineClass).beGlobal().\n\"DevLayer\"cop.create( \n56 944003 120208_ErrorMessagesWithCombinedSourcesAreNotUsefull.xhtml null [cop.create(, cop.create(] )\n\n\n\n},\n}))\n this.bind(});\n errorStackViewer.setError(er)\n \"PartsBin/Tools\", \"ErrorStackViewer\".openPartItem(this errorStackViewer = var\n {() function, 10.setStatusMessage(msg, Color.red, this + er.stack;\n \"\\nstack:\"(er) + String) + 'LOGERROR: ' msg = (optName || var)\n Global.LastError = er;\n \"logError\"\n alertOK({ (er, optName) function logError:\n {(WorldMorph, refineClass).\"DevLayer\"cop.create( \n57 898251 120120_FixTextCopyingInChrome.xhtml null [cop.create(, cop.create(] )}\n} true;\n return)\n\n evt.stop()\n this\n richText = lively.morphic.HTMLParser.pastedHTMLToRichText(data);\n richText.replaceSelectionInMorph(// own rich text, '' + textData + '' data = htmlData || var\n\n }\n // let HTML magic handle paste false; return.fixChunksDelayed();\n this\n {) /*when html text is pasted*/ ((!htmlData && !textData) || htmlData === textDataif\n\n\n }return); evt.stop(); \"paste disabled on windows!\" alert({ (UserAgent.isWindows) if\n\n// this.get(\"PasteSourcePLAINText\").setTextString(plainData)).setTextString(htmlData)\n \"PasteSourceHTMLText\".get(this);\n \n \"text/plain\"),\n textData = evt.clipboardData && evt.clipboardData.getData(\"text/html\" htmlData = evt.clipboardData && evt.clipboardData.getData(var\n\n\n // if (UserAgent.isWindows) { alert(\"paste disabled on windows!\"); evt.stop(); return}\n { (evt) function onPaste:\n {(TextMorph, refineClass)\n.beGlobal()\n.'DevPasteLayer'cop.create( \n58 868153 111118_ScrollingTheWorldResetsSometimes.xhtml null [cop.create(// changes here only affect runtime, cop.create(// changes here only affect runtime] )\n\n\n\n\n\n}\n} true;\n return\n } true;\n return\n scrollable.undoScroll(evt);\n // focused enough! Let me go back!\n // Thank you browser for scrolling me. I don't want that, because I'm not\n { else } \n } false;\n return\n scrollable.stopScrollWhenBordersAreReached(evt);\n { else } true;\n return\n scrollable.scrollWithMouseWheelEvent(evt);\n scrollable.onMouseWheel(evt);\n { (!scrollable.isList) if\n // hence the if/else orgy. Let the browser handle List scrolling\n // Lists seem to behave a little different than other scrollable morphs in Chrome,\n }\n } false;\n return\n scrollable.undoScroll(evt);\n { (scrollable !== evt.hand.scrollFocusMorph) if\n // but we don't seem to have them.\n // This will probably break nested scrollable structures in the world\n // scrollable is not in a window hierarchy but in the world.\n { (!scrollable.getWindow()) if\n {.getTopmostMorph(evt.getPosition())) &&\n scrollable.isInSameWindowAs(evt.hand.scrollFocusMorph) &&\n evt.hand.scrollFocusMorph.isInFrontOf(scrollable, evt.getPosition())) this (scrollable.isInSameWindowAs(if\n }\n false;\n return\n { (!scrollable) if);\n } ea.isScrollable(); return {(ea) function scrollable = world.morphsContainingPoint(evt.getPosition()).\n detect(var\n } false; return { (!world || !evt.hand.scrollFocusMorph) if.world();\n this world = var.getScroll();\n this.prevScroll = this().getTime();\n Date new \n evt.hand.lastScrollTime = {\n (evt) function :onMouseWheelEntry ,\n } true;\n return\n })\n evt.stop();\n 0 && currentVerticalScroll <= 0 (evt. wheelDeltaY > if && currentVerticalScroll >= maxVerticalScroll)\n evt.stop();\n 0 (evt. wheelDeltaY < if\n //alertOK('vscroll: ' + currentVerticalScroll); maxVerticalScroll = div.scrollHeight - div.clientHeight,\n currentVerticalScroll = div.scrollTop;\n var\n { (evt.wheelDeltaY) if\n })\n evt.stop();\n 0 && currentHorizontalScroll <= 0 (evt.wheelDeltaX > if && currentHorizontalScroll >= maxHorizontalScroll)\n evt.stop();\n 0 (evt.wheelDeltaX < if\n //alertOK('hscroll: ' + currentHorizontalScroll); maxHorizontalScroll = div.scrollWidth - div.clientWidth,\n currentHorizontalScroll = div.scrollLeft;\n var\n { (evt.wheelDeltaX) if\n //var div = evt.hand.clickedOnMorph.getScrollableNode(evt);.getScrollableNode(evt);\n this div = var\n // FIXME HTML specfic! Move to HTML module)\n 'stop scrolling'\n alert({ (evt) function stopScrollWhenBordersAreReached:,\n };\n node.scrollLeft = horiz;\n node.scrollTop = vert\n return (!node) if.getScrollableNode();\n this node = var) \n } + printStack())'setScroll'alertOK({() function\n cop.withoutLayers([DevLayer], // FIXME HTML specific \n return\n { (horiz, vert) function setScroll:,\n } false;\n return\n // cop.withoutLayers([DevLayer], function() {alertOK('on mouse wheel')}) false;\n return\n { (evt) function onMouseWheel:\n {(lively.morphic.Morph, refineClass)\n.}\n} false;\n return\n evt.stop()\n //}\n // this.undoScroll(evt); // browser scrolled me automatically, need to restore\n //} else {\n // this.stopScrollWhenBordersAreReached(evt);\n //if (evt.hand.scrollFocusMorph === this) {\n { (evt) function onMouseWheel:\n {(lively.morphic.List, refineClass)\n.},\n\n} cop.proceed(horiz, vert) \n return) \n \n } + printStack())'set scroll 'alertOK({() function\n cop.withoutLayers([DevLayer], // the bug result can be stopped here...\n { (horiz, vert) function setScroll:,\n\n });\n }\n hand.scrollFocusMorph = that.getTopmostMorph(hand.getPosition());\n {(hand) function.hands.forEach(this\n // cop.withoutLayers([DevLayer], function() {alertOK('updateScrollFocus')}) ;\n this that = var\n { () function updateScrollFocus:\n {(lively.morphic.World, refineClass)\n.},\n} cop.proceed(v)\n return)) \n this.bind(}\n }\n // alertOK('set scrollFocusMorph to new ' + v)\n {.scrollFocusMorph !== v) this (if\n {() function\n cop.withoutLayers([DevLayer], {,\n set scrollFocusMorph(v) } cop.proceed()\n return\n {\n get scrollFocusMorph() {)\n.refineObject($world.hands.first(), 'DevLayer'\ncop.create(// changes here only affect runtime \n59 714886 RobertsSlides.xhtml null [cop.create(, cop.create(] )\n\n\n}\n} cop.proceed(evt)\n return + evt);\n \"key down\"\n alertOK({(evt) function onKeyDown:\n {(TextMorph, refineClass).'DevLayer'cop.create( \n60 715718 RobertsSlides.xhtml null [cop.create(}, cop.create(}] )\n}\n})\n 2 cop.proceed(a * return\n {(a) function m:\n {(MyObject, refineClass.LayerB)\n'LayerB')\n\ncop.create(}\n}\n 4 cop.proceed(a) + return\n {(a) function m:\n {(MyObject, refineClass.LayerA)\n'LayerA')\n\ncop.create(}\n}\n 3 a * return\n {(a) function m:\n {, \"MyObject\"(subclass.Object \n61 715439 RobertsSlides.xhtml Text8 [cop.create(this self = var, cop.create(this self = var] )\nShowClickLayer.beGlobal();\nShowClickLayer.beNotGlobal();\n\n\n\n\n}\n} cop.proceed(evt)\n return + evt.mousePoint)\n \"clicked \").setTextString('LastClickedText'\n self.get({(evt) function onMouseDown:\n {(Morph, refineClass).'ShowClickLayer';\ncop.create(this self = var \n62 723380 RobertsSlides.xhtml null [cop.create(}, cop.create(}] )\n}\n})\n 2 cop.proceed(a * return\n {(a) function m:\n {(MyObject, refineClass.LayerB)\n'LayerB')\n\ncop.create(}\n}\n 4 cop.proceed(a) + return\n {(a) function m:\n {(MyObject, refineClass.LayerA)\n'LayerA')\n\ncop.create(}\n}\n 3 a * return\n {(a) function m:\n {, \"MyObject\"(subclass.Object \n63 723766 RobertsSlides.xhtml Text8 [cop.create(this self = var, cop.create(this self = var] )\nShowClickLayer.beGlobal();\nShowClickLayer.beNotGlobal();\n\n\n\n\n}\n} cop.proceed(evt)\n return + evt.mousePoint)\n \"clicked \").setTextString('LastClickedText'\n self.get({(evt) function onMouseDown:\n {(Morph, refineClass).'ShowClickLayer';\ncop.create(this self = var \n64 724120 RobertsSlides.xhtml null [cop.create(, cop.create(] )\n\n\n}\n} cop.proceed(evt)\n return + evt);\n \"key down\"\n alertOK({(evt) function onKeyDown:\n {(TextMorph, refineClass).'DevLayer'cop.create( \n65 703159 LivelyWebwerkstatt.xhtml null [cop.create(, cop.create(] )\n\n\n\n\n}\n} cop.proceed(evt)\n return + evt);\n \"key down\"\n alertOK({(evt) function onKeyDown:\n {(TextMorph, refineClass).'DevLayer'cop.create( \n66 703783 LivelyWebwerkstatt.xhtml Workspace [cop.create(, cop.create(] \n// ShowClickLayer.beNotGlobal();\n// ShowClickLayer.beGlobal();)\n}\n} cop.proceed(evt)\n return\n show(evt.mousePoint)\n {(evt) function onMouseDown:,\n } cop.proceed(evt)\n return\n show(evt.mousePoint)\n {(evt) function onMouseMove:\n {(Morph, refineClass).'ShowClickLayer'cop.create( \n67 703350 LivelyWebwerkstatt.xhtml null [cop.create(, cop.create(] )\n\n\n\n\n}\n} cop.proceed(evt)\n return + evt);\n \"key down\"\n alertOK({(evt) function onKeyDown:\n {(TextMorph, refineClass).'DevLayer'cop.create( \n68 703999 LivelyWebwerkstatt.xhtml Workspace [cop.create(, cop.create(] \n// ShowClickLayer.beNotGlobal();\n// ShowClickLayer.beGlobal();)\n}\n} cop.proceed(evt)\n return\n show(evt.mousePoint)\n {(evt) function onMouseDown:,\n } cop.proceed(evt)\n return\n show(evt.mousePoint)\n {(evt) function onMouseMove:\n {(Morph, refineClass).'ShowClickLayer'cop.create( \n69 704238 LivelyWebwerkstatt.xhtml null [cop.create(}, cop.create(}] )\n}\n})\n 2 cop.proceed(a * return\n {(a) function m:\n {(MyObject, refineClass.LayerB)\n'LayerB')\n\ncop.create(}\n}\n 4 cop.proceed(a) + return\n {(a) function m:\n {(MyObject, refineClass.LayerA)\n\n'LayerA')\n\ncop.create(}\n}\n 3 a * return\n {(a) function m:\n {, \"MyObject\"(subclass.Object \n70 704549 LivelyWebwerkstatt.xhtml null [cop.create(}, cop.create(}] )\n}\n})\n 2 cop.proceed(a * return\n {(a) function m:\n {(MyObject, refineClass.LayerB)\n'LayerB')\n\ncop.create(}\n}\n 4 cop.proceed(a) + return\n {(a) function m:\n {(MyObject, refineClass.LayerA)\n\n'LayerA')\n\ncop.create(}\n}\n 3 a * return\n {(a) function m:\n {, \"MyObject\"(subclass.Object \n71 710190 LivelyWebwerkstatt.xhtml Text8 [cop.create(this self = var, cop.create(this self = var] )\nShowClickLayer.beGlobal();\nShowClickLayer.beNotGlobal();\n\n\n\n\n}\n} cop.proceed(evt)\n return + evt.mousePoint)\n \"clicked \").setTextString('LastClickedText'\n show(evt.mousePoint)\n self.get({(evt) function onMouseDown:\n {(Morph, refineClass).'ShowClickLayer';\ncop.create(this self = var \n72 709805 LivelyWebwerkstatt.xhtml null [cop.create(}, cop.create(}] )\n}\n})\n 2 cop.proceed(a * return\n {(a) function m:\n {(MyObject, refineClass.LayerB)\n'LayerB')\n\ncop.create(}\n}\n 4 cop.proceed(a) + return\n {(a) function m:\n {(MyObject, refineClass.LayerA)\n'LayerA')\n\ncop.create(}\n}\n 3 a * return\n {(a) function m:\n {, \"MyObject\"(subclass.Object \n73 710542 LivelyWebwerkstatt.xhtml null [cop.create(, cop.create(] )\n\n\n}\n} cop.proceed(evt)\n return + evt);\n \"key down\"\n alertOK({(evt) function onKeyDown:\n {(TextMorph, refineClass).'DevLayer'cop.create( \n74 688234 120306_LivelyWebwerkstatt.xhtml null [cop.create(, cop.create(] )\n\n\n}\n} cop.proceed(evt)\n return + evt);\n \"key down\"\n alertOK({(evt) function onKeyDown:\n {(TextMorph, refineClass).'DevLayer'cop.create( \n75 688787 120306_LivelyWebwerkstatt.xhtml Text8 [cop.create(this self = var, cop.create(this self = var] )\nShowClickLayer.beGlobal();\nShowClickLayer.beNotGlobal();\n\n\n\n\n}\n} cop.proceed(evt)\n return + evt.mousePoint)\n \"clicked \").setTextString('LastClickedText'\n self.get({(evt) function onMouseDown:\n {(Morph, refineClass).'ShowClickLayer';\ncop.create(this self = var \n76 689066 120306_LivelyWebwerkstatt.xhtml null [cop.create(}, cop.create(}] )\n}\n})\n 2 cop.proceed(a * return\n {(a) function m:\n {(MyObject, refineClass.LayerB)\n'LayerB')\n\ncop.create(}\n}\n 4 cop.proceed(a) + return\n {(a) function m:\n {(MyObject, refineClass.LayerA)\n'LayerA')\n\ncop.create(}\n}\n 3 a * return\n {(a) function m:\n {, \"MyObject\"(subclass.Object \n77 696848 120306_LivelyWebwerkstatt.xhtml Text8 [cop.create(this self = var, cop.create(this self = var] )\nShowClickLayer.beGlobal();\nShowClickLayer.beNotGlobal();\n\n\n\n\n}\n} cop.proceed(evt)\n return + evt.mousePoint)\n \"clicked \").setTextString('LastClickedText'\n self.get({(evt) function onMouseDown:\n {(Morph, refineClass).'ShowClickLayer';\ncop.create(this self = var \n78 622838 evaluation_debug.xhtml ExampleSource [cop.create(\"TraceLayer\"), cop.create(\"TraceLayer\")] module('cop.Flatten').load(true)\n\nsetupExample = function() {\n Target = new Object();\n Target.m1 = function(a) { return a * 2};\n Target.m2 = function() { return this.m1(this.p)};\n Target.toString = function() {return \"Target\"}\n Target.print = function() {\n Transcript.show(this.toString() + \", p = \" + this.p)\n };\n\n Target.p = 3\n\n Transcript = new Object();\n Transcript.toString = function() { return \"Transcript\" };\n Transcript.items = [];\n Transcript.show = function(s) { \n this.items.push(s);\n }\n\n Tracer = new Object();\n Tracer.log = function(object, methodName, args) { \n Transcript.show('called ' + object + \"'s \" + methodName, \" \")\n };\n\n Tracer.traceObject = function(object) {\n for (var name in object) { \n if (object.hasOwnProperty(name) && (typeof object[name] == \"function\")) {\n // alert(\"trace \" + name) \n this.trace(object, name)\n }\n }\n }\n}\n\nsetupSimpleTracer = function() {\n Tracer.inTrace = false;\n\n Tracer.log = function(object, methodName, args) { \n if (Tracer.inTrace) return false;\n Tracer.inTrace = true\n Transcript.show('called ' + object + \"'s \" + methodName, \" \")\n Tracer.inTrace = false\n };\n Tracer.trace = function(object, methodName) {\n \tvar orgFunc = object[methodName];\n \tobject[methodName] = function() {\n \t\tTracer.log(this, methodName, arguments, Tracer.depth); \n \t\treturn orgFunc.apply(this, arguments) \n \t}\n }\n Tracer.traceObject(Target)\n};\n\nsetupLayerTracer = function() {\n cop.create(\"TraceLayer\")\n Tracer.trace = function(object, methodName) {\n var layeredMethodDef = {};\n layeredMethodDef[methodName] = function() {\n var args = arguments;\n var obj = this;\n cop.withoutLayers([TraceLayer], function() {\n Tracer.log(obj, methodName, args); \n })\n return cop.proceed.apply(this, args)\n }\n TraceLayer.refineObject(object, layeredMethodDef);\n }\n \n Tracer.traceObject(Target)\n}\n\nsetupBenchmarkObject = function() {\n benchmarkObj = {\n m_simple: function(result, context) {\n if (context.l5) result += 'l5'\n if (context.l4) result += 'l4'\n if (context.l3) result += 'l3'\n if (context.l2) result += 'l2'\n if (context.l1) result += 'l1'\n result += 'base';\n return result;\n },\n\n m_base: function(result) {\n result += 'base'\n return result\n },\n }\n}\n\n\nsetupBenchmarkObjectLayers = function() {\n layers = []\n for (var i = 1; i<=5; i++) {\n var func = eval('(function(result) { result += \\'l' + i + '\\'; return cop.proceed(result) })')\n layers.push(cop.create('BenchLayer' + i).refineObject(benchmarkObj, {m_base: func}))\n }\n\n // benchmarkObj.m_simple('', {l5: true,l4: true,l3: true,l2: true,l1: true})\n\n // withLayers(layers, function() { return benchmarkObj.m_base('') })\n // withLayers([], function() { return benchmarkObj.m_base('') })\n\n layers.invoke('beNotGlobal')\n\n\n}\n\n\nbenchmark_m_base_global_layers_inlining = function(n, timesToRun) {\n var obj = {\n name: 'benchmarkObj.m_base ' + n+' layer (with inlining)',\n setupCode: 'cop.dynamicInlining = true; setupBenchmarkObject(); setupBenchmarkObjectLayers(); layers.slice(0,' + n + ').invoke(\"beGlobal\")',\n code: \"benchmarkObj.m_base('')\"\n }\n if (timesToRun) obj.timesToRun = timesToRun;\n return obj\n}\n\nbenchmark_m_base_global_layers_dispatch = function(n, timesToRun) {\n var obj = {\n name: 'benchmarkObj.m_base ' + n+' layer (dispatch)',\n setupCode: 'cop.dynamicInlining = false; setupBenchmarkObject(); setupBenchmarkObjectLayers(); layers.slice(0,' + n + ').invoke(\"beGlobal\")',\n code: \"benchmarkObj.m_base('')\"\n };\n if (timesToRun) obj.timesToRun = timesToRun;\n return obj\n}\n\n\nbenchmark_m_simple_with_ctx = function(n) {\nreturn {\n name: 'benchmarkObj.m_simple ' + n +' ctx ',\n setupCode: 'cop.dynamicInlining = true; setupBenchmarkObject(); setupBenchmarkObjectLayers(); conf = {}; for(i=0; i<' +n +'; i++) { conf[\"l\" + i]=true};',\n code: \" benchmarkObj.m_simple('', conf)\"\n}\n\n}\n\n\n// benchmark_m_simple_with_ctx(1).setupCode\n\ncop.dynamicInlining = true; setupBenchmarkObject(); setupBenchmarkObjectLayers(); conf = {}; for(i=0; i<1; i++) { conf[\"l\" + i]=true};\n\ncop.dynamicInlining = true; setupBenchmarkObject(); setupBenchmarkObjectLayers(); conf = {}; for(i=0; i<5; i++) { conf[\"l\" + i]=true};\n\n\n// benchmark_m_simple_with_ctx(1).code\n\n benchmarkObj.m_simple('', conf)\n\n\n\n\n\n\n \n79 625290 Presentation.xhtml Text [cop.create(}, cop.create(}] // etc ... to BenchLayer5)\n}\n} cop.proceed(result) \n return; \n 'l2' \n result += {(result) function m:\n {).refineObject(benchmarkObj, 'BenchLayer2')\ncop.create(}\n} cop.proceed(result) \n return; \n 'l1' \n result += {(result) function m:\n {).refineObject(benchmarkObj, 'BenchLayer1'\n\ncop.create(},\n} result\n return\n 'base'\n result += {(result) function m:\n {\nbenchmarkObj = // 2. Behavioral variations expressed with layers \n80 612846 DraftPresentation.xhtml Text20 [cop.create(, cop.create(] );},\n};\n ')'.employer() + this + ' (' cop.proceed() +\n return\n {() function toString:,\n } 'HPI' return {() function employer:\n {(Person, refineClass)\n.'EmployerLayer'cop.create( \n81 599493 dev.xhtml setupCodeText [cop.create(}} 100.random() * Math.number = this {() function m:{obj = , cop.create(}} 100.random() * Math.number = this {() function m:{obj = ] ).beGlobal()}\n} cop.proceed() {() function m:\n {).refineObject(obj, 'InlineBenchmarkLayer'\ncop.create(}} 100.random() * Math.number = this {() function m:{obj = \n82 394975 110521_BetterLists.xhtml null [cop.create(, cop.create(] )},\n} true;\n return\n\n })\n evt.stop();\n 0 && currentVerticalScroll <= 0 (evt. wheelDeltaY > if && currentVerticalScroll >= maxVerticalScroll)\n evt.stop();\n 0 (evt. wheelDeltaY < if maxVerticalScroll = div.scrollHeight - div.clientHeight,\n currentVerticalScroll = div.scrollTop;\n var\n { (evt.wheelDeltaY) if else })\n evt.stop();\n 0 && currentHorizontalScroll <= 0 (evt.wheelDeltaX > if && currentHorizontalScroll >= maxHorizontalScroll)\n evt.stop();\n 0 (evt.wheelDeltaX < if maxHorizontalScroll = div.scrollWidth - div.clientWidth,\n currentHorizontalScroll = div.scrollLeft;\n var\n { (evt.wheelDeltaX) if.getScrollableNode();\n this div = var\n // FIXME HTML specfic! Move to HTML module\n {(evt) function stopScrollWhenBordersAreReached:,\n } false;\n return\n } true;\n return);\n 0.getMenu()).delay(this.selection;\n lively.morphic.Menu.openAt.curry(evt.getPosition(), sel, this.selection.string || this sel = var\n evt.stop();\n // would be also in front of the new menu\n // delayed because when owner is a window and comes forward the window\n {) 0 (evt.isRightMouseButtonDown() && idx >= if.updateSelectionAndLineNoProperties(idx);\n this, evt);\n 'getItemIndexFromEvent'.renderContextDispatch(this idx = var\n evt.hand.removeOpenMenu(evt);\n } cop.proceed(evt);\n return\n evt.stop()\n { (evt.isCommandKey()) if\n {(evt) function onMouseDown:,\n })\n } ea.selected = false {(ea) function\n ctx.subNodes.forEach({(ctx) function deselectNodesHTML:,\n }\n }\n node.scrollIntoViewIfNeeded();\n // no Firefox support (node.scrollIntoViewIfNeeded) if\n node.selected = true;\n { (node) if node = ctx.subNodes[idx];\n var;\n return.itemList.length) this || idx >= 0 (idx < if.deselectNodesHTML(ctx);\n this\n {(ctx, idx) function selectAtHTML:,\n };\n 'px' + /*- this.padding.bottom() - this.padding.top()*/;\n listNode.style.height = extent.y 'px' + /*- this.padding.right() - this.padding.left())*/;\n listNode.style.width = extent.x 'px' + /*+ this.padding.top()*/.shape.getPosition().y this;\n listNode.style.top = 'px' + /*+ this.padding.left()*/.shape.getPosition().x this*borderWidth)),\n listNode = ctx.listNode;\n listNode.style.left = 2*borderWidth, 2.getExtent().subPt(pt(this.getBorderWidth(),\n extent = this borderWidth = var\n {(ctx) function resizeListHTML:,\n }.selectedLineNo);\n this.selectAtHTML(ctx, this.resizeListHTML(ctx);\n this\n });\n option.textContent = itemStrings[i];\n ctx.listNode.appendChild(option);\n ctx.subNodes.push(option);\n 'option' option = XHTMLNS.create(var\n {; i < itemStrings.length; i++) 0 i = var (for.getExtent();\n this extent = var.removeListContentHTML(ctx);\n this) 0 (ctx.subNodes.length > if;\n return(!ctx || !ctx.subNodes) if.getScroll();\n this scroll = var (!itemStrings) itemStrings = [];\n if\n {(ctx, itemStrings) function updateListContentHTML:,\n } node;\n return;\n 'font-family: Helvetica; font-size: 11pt';\n node.style.cssText = 2);\n node.size = 'select' node = XHTMLNS.create(var\n {() function createListNodeHTML:\n {(lively.morphic.List, refineClass)\n.'BetterListLayer'cop.create( \n83 696462 120306_LivelyWebwerkstatt.xhtml null [cop.create(}, cop.create(}] )\n}\n})\n 2 cop.proceed(a * return\n {(a) function m:\n {(MyObject, refineClass.LayerB)\n'LayerB')\n\ncop.create(}\n}\n 4 cop.proceed(a) + return\n {(a) function m:\n {(MyObject, refineClass.LayerA)\n'LayerA')\n\ncop.create(}\n}\n 3 a * return\n {(a) function m:\n {, \"MyObject\"(subclass.Object \n84 626207 Presentation.xhtml Text8 [cop.create(, cop.create(] )\nShowClickLayer.beGlobal();\nShowClickLayer.beNotGlobal();\n\n\n\n\n\n}\n} cop.proceed(evt)\n return + evt.mousePoint)\n \"clicked \").setTextString('LastClickedText'\n $morph({(evt) function onMouseDown:\n {(Morph, refineClass).'ShowClickLayer'cop.create( \n85 612226 DraftPresentation.xhtml Text15 [cop.create(, cop.create(] );},\n} secret = ...\n cop.proceed();\n ...\n var\n {() function toString:\n {(Person, refineClass)\n.'EmployerLayer'cop.create( \n86 601576 dev.xhtml setupCodeText [cop.create(}} 100.random() * Math.number = this {() function m:{obj = , cop.create(}} 100.random() * Math.number = this {() function m:{obj = ] ).beGlobal()}\n} cop.proceed() {() function m:\n {).refineObject(obj, 'InlineBenchmarkLayer'\ncop.create(}} 100.random() * Math.number = this {() function m:{obj = \n87 621412 evaluation.xhtml ExampleSource [cop.create('BenchLayer' + i).refineObject(benchmarkObj, {m_base: func})), cop.create('BenchLayer' + i).refineObject(benchmarkObj, {m_base: func}))] \n\nsetupBenchmarkObjectLayers = function() {\n layers = []\n for (var i = 1; i<=5; i++) {\n var func = eval('(function(result) { result += \\'l' + i + '\\'; return cop.proceed(result) })')\n layers.push(cop.create('BenchLayer' + i).refineObject(benchmarkObj, {m_base: func}))\n }\n\n // benchmarkObj.m_simple('', {l5: true,l4: true,l3: true,l2: true,l1: true})\n\n // withLayers(layers, function() { return benchmarkObj.m_base('') })\n // withLayers([], function() { return benchmarkObj.m_base('') })\n\n layers.invoke('beNotGlobal')\n\n\n}\n\n\nbenchmark_m_base_global_layers_inlining = function(n, timesToRun) {\n var obj = {\n name: 'benchmarkObj.m_base ' + n+' layer (with inlining)',\n setupCode: 'cop.dynamicInlining = true; setupBenchmarkObject(); setupBenchmarkObjectLayers(); layers.slice(0,' + n + ').invoke(\"beGlobal\");benchmarkObj.m_base(\"\")',\n code: \"benchmarkObj.m_base('')\"\n }\n if (timesToRun) obj.timesToRun = timesToRun;\n return obj\n}\n\n\nbenchmark_m_base_global_layers_dispatch = function(n, timesToRun) {\n var obj = {\n name: 'benchmarkObj.m_base ' + n+' layer (dispatch)',\n setupCode: 'cop.dynamicInlining = false; setupBenchmarkObject(); setupBenchmarkObjectLayers(); layers.slice(0,' + n + ').invoke(\"beGlobal\");benchmarkObj.m_base(\"\")',\n code: \"benchmarkObj.m_base('')\"\n };\n if (timesToRun) obj.timesToRun = timesToRun;\n return obj\n}\n\n\nbenchmark_m_simple_with_ctx = function(n) {\nreturn {\n name: 'benchmarkObj.m_simple ' + n +' ctx ',\n setupCode: 'cop.dynamicInlining = true; setupBenchmarkObject(); setupBenchmarkObjectLayers(); conf = {}; for(i=0; i<' +n +'; i++) { conf[\"l\" + i]=true};',\n code: \" benchmarkObj.m_simple('', conf)\"\n}\n\n}\n\n\n// benchmark_m_simple_with_ctx(1).setupCode\n\ncop.dynamicInlining = true; setupBenchmarkObject(); setupBenchmarkObjectLayers(); conf = {}; for(i=0; i<1; i++) { conf[\"l\" + i]=true};\n\ncop.dynamicInlining = true; setupBenchmarkObject(); setupBenchmarkObjectLayers(); conf = {}; for(i=0; i<5; i++) { conf[\"l\" + i]=true};\n\n\n// benchmark_m_simple_with_ctx(1).code\n\n benchmarkObj.m_simple('', conf)\n\n\n\n\n\n\n\ncop.create('BenchLayer2).refineObject(benchmarkObj, {\n m: function(result) { \n result += 'l2'; \n return cop.proceed(result) \n }\n})\n// etc ... to 5\n\n\n})function(result) { \n result += 'l1\\'; \n return cop.proceed(result) \n }\ncop.create('BenchLayer1).refineObject(benchmarkObj, {\n m: \n m: function(result) {\n result += 'base'\n return result\n },\n }\n}\n\nbenchmarkObj = {// Behavioral variations expressed with conditionals\nbenchmarkObj = {\n m: function(result, context) {\n if (context.l5) result += 'l5'\n if (context.l4) result += 'l4'\n if (context.l3) result += 'l3'\n if (context.l2) result += 'l2'\n if (context.l1) result += 'l1'\n result += 'base';\n return result;\n },\n}\n\n \n88 608941 Draft.xhtml null [cop.create('cop.LayerInliningTests.FlattenTestLayer'), cop.create('cop.LayerInliningTests.FlattenTestLayer')] module('cop.LayerInliningTests').requires('lively.TestFramework', 'cop.Flatten').toRun(function() {\n\nObject.subclass('cop.LayerInliningTests.Dummy', {\n\n m1: function() { return 23 },\n\n m2: function(arg) { return arg + 2 },\n\n m3: function(arg) { return arg + 9 },\n\n m4: function(arg) {\n var result = arg * 3;\n return result + 9\n },\n\n printLayers: function() { return 'BaseLayer'},\n\n});\n\nObject.extend(cop.LayerInliningTests.Dummy, {\n classMethod1: function() { return 49 },\n});\n\ncop.create('cop.LayerInliningTests.FlattenTestLayer')\n.refineClass(cop.LayerInliningTests.Dummy, {\n \n get x() { return 4 },\n\n m1: function() { return 42 },\n \n m2: function(arg) { return arg + 3 },\n\n m3: function(arg) {\n cop.proceed(arg);\n return arg + 10;\n },\n\n m4: function(arg) {\n var x = cop.proceed(arg);\n return x + 9;\n },\n\n printLayers: function() { return 'FlattenTestLayer-' + cop.proceed() },\n})\n.refineObject(cop.LayerInliningTests.Dummy, {\n classMethod1: Functions.Null\n})\n.refineObject(cop.LayerInliningTests, {\n get foo() { return 3 },\n})\n\ncop.create('cop.LayerInliningTests.FlattenTestLayer2')\n.refineClass(cop.LayerInliningTests.Dummy, {\n \n m1: function() { return 43 },\n\n m4: function(arg) {\n return cop.proceed(arg) + 1;\n },\n\n printLayers: function() { return 'FlattenTestLayer2-' + cop.proceed() },\n});\nTestCase.subclass('cop.LayerInliningTests.MethodManipulatorTest', {\n\n setUp: function() {\n this.sut = new MethodManipulator();\n this.dummyClass = cop.LayerInliningTests.Dummy;\n },\n\n test01ExtractFirstParameter: function() {\n var src = 'function() { return 42 },';\n var result = this.sut.firstParameter(src);\n this.assertEqual(null, result)\n\n src = 'function($super, arg) {\\n\\t\\tcop.proceed(arg);\\n\\t\\treturn arg + 10;\\n\\t },';\n result = this.sut.firstParameter(src);\n this.assertEqual('$super', result)\n },\n\n test02ExtractMethodBody: function() {\n var src = 'function() { return 42 },';\n var result = this.sut.methodBody(src);\n var expected = 'return 42'\n this.assertEquals(expected, result, 'm1');\n\n src = 'function(arg) {\\n\\t\\tcop.proceed(arg);\\n\\t\\treturn arg + 10;\\n\\t},'\n result = this.sut.methodBody(src); \n expected = 'cop.proceed(arg);\\n\\t\\treturn arg + 10;';\n this.assertEquals(expected, result, 'm3');\n },\n\n test03RemoveFirstParameter: function() {\n var src = 'function(arg1, arg2) { this.foo(); },';\n var expected = 'function(arg2) { this.foo(); },';\n var result = this.sut.removeFirstParameter(src);\n this.assertEquals(expected, result);\n },\n \n test04InlineProceed: function() {\n var proceedName = 'cop.proceed';\n var data = [\n {\n layer: 'function() { this.foo(); },',\n original: 'function(arg1, arg2) { this.bar() },',\n expected: 'function() { this.foo(); },'\n },\n {\n layer: 'function(arg1) { this.foo(); },',\n original: 'function(arg1) { this.bar() },',\n expected: 'function(arg1) { this.foo(); },'\n },\n {\n layer: 'function() {\\ncop.proceed()\\nthis.foo(); },',\n original: 'function() { this.bar() },',\n expected: 'function() {\\n(function() { this.bar() }).call(this)\\nthis.foo(); },'\n },\n {\n layer: 'function() { cop.proceed() + 1 },',\n original: 'function($super) { $super(23) },',\n expected: 'function($super) { (function() { $super(23) }).call(this) + 1 },'\n },\n ]\n for (var i = 0; i < data.length; i++) {\n var spec = data[i],\n layerSrc = spec.layer,\n originalSrc = spec.original,\n expected = spec.expected,\n result = this.sut.inlineProceed(layerSrc, originalSrc, proceedName);\n this.assertEquals(expected, result, 'at ' + i);\n }\n },\n\n});\n\n\nTestCase.subclass('cop.LayerInliningTests.FlattenTest', {\n\n setUp: function() {\n this.sut = cop.LayerInliningTests.FlattenTestLayer;\n this.dummyClass = cop.LayerInliningTests.Dummy;\n },\n\n test01aFindLayeredMethods: function() {\n var result = this.sut.namesOfLayeredMethods(this.dummyClass.prototype),\n expected = ['m1', 'm2', 'm3' ,'m4'];\n \n result = this.sut.namesOfLayeredMethods(this.dummyClass);\n expected = ['classMethod1'];\n this.assertEqualState(expected, result);\n },\n test01bFindLayeredProperties: function() {\n var result = this.sut.namesOfLayeredProperties(this.dummyClass.prototype),\n expected = ['x'];\n this.assertEqualState(expected, result);\n\n result = this.sut.namesOfLayeredProperties(this.dummyClass);\n expected = [];\n this.assertEqualState(expected, result);\n },\n\n test01cFindAllLayeredObjects: function() {\n var result = this.sut.layeredObjects(),\n expected = [this.dummyClass.prototype, this.dummyClass, cop.LayerInliningTests];\n this.assertEquals(expected[0], result[0]);\n this.assertEquals(expected[1], result[1]);\n this.assertEquals(expected[2], result[2]);\n },\n\n\n test02GenerateReplaceMethod: function() {\n var result = this.sut.generateMethodReplacement(this.dummyClass.prototype, 'm1'),\n expected = 'm1: function() { return 42 },'\n this.assertEquals(expected, result);\n },\n\n test03GenerateReplaceMethodWhenProceedIsThereButNotUsed: function() {\n var result = this.sut.generateMethodReplacement(this.dummyClass.prototype, 'm2'),\n expected = 'm2: function(arg) { return arg + 3 },'\n this.assertEquals(expected, result);\n },\n test04GenerateReplaceMethod: function() {\n var result = this.sut.generateMethodReplacement(this.dummyClass.prototype, 'm4'),\n expected = 'm4: function(arg) {\\n\\\n var x = (function(arg) {\\n\\\n var result = arg * 3;\\n\\\n return result + 9\\n\\\n }).call(this, arg);\\n\\\n return x + 9;\\n\\\n },'\n this.assertEquals(expected.replace(/ /g, '\\t'), result.replace(/ /g, '\\t'));\n },\n\n test05GenerateReplaceProperty: function() {\n var result = this.sut.generatePropertyReplacement(this.dummyClass.prototype, 'x', 'getter'),\n expected = 'get x() { return 4 },'\n this.assertEquals(expected, result);\n },\n test06FlattenLayer: function() {\n var blacklist = [{object: cop.LayerInliningTests.Dummy.prototype, name: 'm2'}],\n result = this.sut.flattened(blacklist),\n expected =\n'cop.LayerInliningTests.Dummy.addMethods({\\n\\n\\\n get x() { return 4 },\\n\\n\\\n m1: function() { return 42 },\\n\\n\\\n m3: function(arg) {\\n\\\n (function(arg) { return arg + 9 }).call(this, arg);\\n\\\n return arg + 10;\\n\\\n },\\n\\n\\\n m4: function(arg) {\\n\\\n var x = (function(arg) {\\n\\\n var result = arg * 3;\\n\\\n return result + 9\\n\\\n }).call(this, arg);\\n\\\n return x + 9;\\n\\\n },\\n\\n\\\n printLayers: function() { return \\'FlattenTestLayer-\\' + (function() { return \\'BaseLayer\\'}).call(this) },\\n\\n\\\n});\\n\\n\\\nObject.extend(cop.LayerInliningTests.Dummy, {\\n\\n\\\n classMethod1: function Functions$Null() { return null; },\\n\\n\\\n});\\n\\n\\\nObject.extend(Global.cop.LayerInliningTests, {\\n\\n\\\n get foo() { return 3 },\\n\\n\\\n});'\n this.assertEquals(expected.replace(/ /g, '\\t'), result.replace(/ /g, '\\t'));\n },\n\n\n\n});\nTestCase.subclass('cop.LayerInliningTests.InlinerTest',\n'running', {\n setUp: function($super) {\n $super();\n this.dummyClass = cop.LayerInliningTests.Dummy;\n this.layer1 = cop.LayerInliningTests.FlattenTestLayer;\n this.layer2 = cop.LayerInliningTests.FlattenTestLayer2;\ncop.recompileLayers([this.layer1, this.layer2])\n },\n tearDown: function($super) {\n $super();\ncop.recompileLayers([this.layer1, this.layer2])\n if (!this.methodsToRestore) return;\n this.methodsToRestore.forEach(function(spec) {\n spec.obj[spec.name] = spec.value;\n })\n },\n restoreMethodAfterwards: function(obj, methodName) {\n if (!this.methodsToRestore) this.methodsToRestore = []\n this.methodsToRestore.push({obj: obj, name: methodName, value: obj[methodName]})\n },\n\n\n},\n'tests', {\n test01GetInlinedMethodForOneLayer: function() {\n var inliner = new cop.LayerInliner(),\n method = inliner.inlineMethod(\n this.dummyClass.prototype, 'printLayers', [this.layer1]),\n expected = [this.layer1.getName(), 'BaseLayer'].join('-');\n this.assertEquals(expected, method.call());\n },\n test02GetInlinedMethodForTwoLayers: function() {\n var inliner = new cop.LayerInliner(),\n method = inliner.inlineMethod(\n this.dummyClass.prototype, 'printLayers', [this.layer2, this.layer1]),\n expected = [this.layer1.getName(), this.layer2.getName(), 'BaseLayer'].join('-');\n this.assertEquals(expected, method.call());\n },\n test03aDynamicallyCreateInlinedMethod: function() {\n this.restoreMethodAfterwards(this.dummyClass.prototype, 'printLayers')\n\n var result,\n expected = this.layer1.getName() + '-' + 'BaseLayer',\n test = this,\n obj = new this.dummyClass();\ndebugger\n cop.withLayers([this.layer1], function() {\n result = obj.printLayers();\n test.assert(obj.printLayers.isInlinedByCop, 'method not inlined');\n })\n this.assertEquals(expected, result, 'inlined method has not the correct layers');\n\n // test if inlined method gets uninstalled when necessary...\n this.assertEquals('BaseLayer', obj.printLayers(), 'not uninstalled')\n },\n test03bDynamicallyCreateInlinedMethodWhenLayersChange: function() {\n this.restoreMethodAfterwards(this.dummyClass.prototype, 'printLayers')\n\n var result,\n expected = this.layer1.getName() + '-' + 'BaseLayer',\n test = this,\n obj = new this.dummyClass();\n cop.withLayers([this.layer1], function() { result = obj.printLayers() })\n this.assertEquals(expected, result, 'inlined method has not the correct layers 1');\n\n expected = this.layer2.getName() + '-' + this.layer1.getName() + '-' + 'BaseLayer';\n cop.withLayers([this.layer1, this.layer2], function() { result = obj.printLayers() })\n this.assertEquals(expected, result, 'inlined method has not the correct layers 2');\n\n expected = this.layer1.getName() + '-' + this.layer2.getName() + '-' + 'BaseLayer';\n cop.withLayers([this.layer2, this.layer1], function() { result = obj.printLayers() });\n this.assertEquals(expected, result, 'inlined method has not the correct layers 3');\n\n this.assertEquals('BaseLayer', obj.printLayers(), 'not uninstalled')\n },\n\n test04OnLayerChangeCompiledMethodIsOnvalidated: function() {\n this.restoreMethodAfterwards(this.dummyClass.prototype, 'printLayers')\n var layer = cop.create('cop.LayerInliningTests.FlattenTestLayer3')\n .refineClass(this.dummyClass, {\n printLayers: function() { return 'FlattenTestLayer3-' + cop.proceed() },\n })\n\n var obj = new this.dummyClass();\n // first do it so that compiled method is installed\n cop.withLayers([layer], function() { obj.printLayers() })\n\n // now change layer\n layer.refineClass(this.dummyClass, {\n printLayers: function() { return 'FlattenTestLayer3Changed-' + cop.proceed() },\n })\n\n var result, expected = layer.getName() + 'Changed-' + 'BaseLayer';\n cop.withLayers([layer], function() { result = obj.printLayers() })\n this.assertEquals(expected, result, 'inlined method was not invalidated when layer changed');\n },\n test05DynamicallyCreateInlinedMethodWhenLayersChange: function() {\n this.restoreMethodAfterwards(this.dummyClass.prototype, 'printLayers')\n\n var result,\n expected = this.layer1.getName() + '-' + 'BaseLayer',\n test = this,\n obj = new this.dummyClass();\n cop.withLayers([this.layer1], function() { result = obj.printLayers() })\n this.assertEquals(expected, result, 'inlined method has not the correct layers 1');\n\n expected = this.layer2 + '-' + expected;\n cop.withLayers([this.layer1, this.layer2], function() { result = obj.printLayers() })\n this.assertEquals(expected, result, 'inlined method has not the correct layers 2');\n\n this.assertEquals('BaseLayer', obj.printLayers(), 'not uninstalled')\n },\n\n\n test06LayerWithSetter: function() {\n if (Global.Test06LayerWithSetterClass) Global.Test06LayerWithSetterClass.remove();\n var klass = Object.subclass('Test06LayerWithSetterClass', {y: 2}),\n obj = new klass();\n\n var layer = cop.basicCreate('test06').refineClass(klass, {\n get y() { return 23 }\n })\n this.assertEquals(2, obj.y, 'cannot access prop before layering')\n\n cop.withLayers([layer], function() {\n this.assertEquals(23, obj.y, 'not correctly layered getter')\n }.bind(this))\n this.assertEquals(2, obj.y, 'cannot correctly access prop after layering')\n },\n test07PartialMethodsCanBindClosureValues: function() {\n if (Global.Test07PartialMethodsCanBindClosureValues) \n Global.Test07PartialMethodsCanBindClosureValues.remove();\n var klass = Object.subclass('Test07PartialMethodsCanBindClosureValues', {\n m: function() { return x }.binds({x: 3})\n }),\n obj = new klass();\n\n this.assertEquals(3, obj.m(), 'explicit closure not working');\n\n var layer = cop.basicCreate('test07').refineClass(klass, {\n m: function() { return cop.proceed() + y }.binds({y: 5})\n })\n\n this.assertEquals(3, obj.m(), 'closure not working after making it layer aware');\n cop.withLayers([layer], function() {\n this.assertEquals(8, obj.m(), 'closures in layer not working')\n }.bind(this))\n },\n\n\n\n\n});\nTestCase.subclass('cop.LayerInliningTests.LayerHashingTest',\n'running', {\n setUp: function($super) {\n $super();\n this.klass = Object.subclass('cop.LayerInliningTests.LayerHashingTestDummy', {\n m1: function() { return 3 }\n });\n this.layer = cop.create('LayerHashingTest').refineClass(this.klass, {\n m1: function() { return 4 }\n })\n },\n tearDown: function($super) {\n $super();\n this.klass.remove();\n this.layer.remove();\n },\n},\n'tests', {\n test01LayerHasHash: function() {\n var expected = this.layer.fullName() + ':' + Date.now();\n this.layer.ensureHash()\n this.assertEquals(expected, this.layer.hash);\n },\n newMethod: function() {\n // enter comment here\n },\n \n});\n\n}) // end of module \n89 625993 Presentation.xhtml null [cop.create(, cop.create(] )\n\n\n\n}\n} cop.proceed(evt)\n return + evt);\n \"key down\"\n alertOK({(evt) function onKeyDown:\n {(TextMorph, refineClass).'DevLayer'cop.create( \n90 612667 DraftPresentation.xhtml Text8 [cop.create(, cop.create(] );},\n};\n ')'.address() + this + ' (' cop.proceed() +\n return\n {() function toString:,\n };\n 'Prof.-Dr.-Helmert Str.' return\n {() function address:\n {(Person, refineClass)\n.'AddressLayer'cop.create( \n91 567727 Slides.xhtml content1 [cop.create(// layer creation, cop.create(// layer creation] \n)}\n Target.m2()\n{() function\nwithLayers([TraceLayer], // layer activation)\n},\n} cop.proceed()\n return)\n \"m2\"\n Transcript.show({(a) function m2:,\n } cop.proceed(a)\n return + a)\n \"m1 \"\n Transcript.show({(a) function m1:\n {\nTraceLayer.refineObject(Target, // definition of behavioral-variation)\n\n\"TraceLayer\"\ncop.create(// layer creation \n92 697202 120306_LivelyWebwerkstatt.xhtml null [cop.create(, cop.create(] )\n\n\n}\n} cop.proceed(evt)\n return + evt);\n \"key down\"\n alertOK({(evt) function onKeyDown:\n {(TextMorph, refineClass).'DevLayer'cop.create( \n93 573919 Slides_2.xhtml null [cop.create(// layer creation, cop.create(// layer creation] )\n\n\n}\n Target.m2()\n{() function\nwithoutLayers([TraceLayer], // layer deactivation)\n\n}\n Target.m2()\n{() function\nwithLayers([TraceLayer], // layer activation)\n\n},\n} cop.proceed()\n return)\n \"m2\"\n Transcript.show({(a) function m2:,\n } cop.proceed(a)\n return + a)\n \"m1 \"\n Transcript.show({(a) function m1:\n {\nTraceLayer.refineObject(Target, // definition of behavioral-variation)\n\n\"TraceLayer\"\ncop.create(// layer creation \n94 587973 TranscriptLayer.xhtml CodePane [cop.create(// (A) layer creation, cop.create(// (A) layer creation] )}\n\tTarget.m2()\n{() function\nwithoutLayers([TranscriptLayer], // (D) layer deactivation)\n\n}\n\tTarget.m2()\n{() function\nwithLayers([TranscriptLayer], // (C) layer activation)\n\n},\n} cop.proceed()\n\treturn)\n\t\t\"m2\"\n\t\tTranscript.show({(a) function m2:,\n\t} cop.proceed(a)\n\treturn + a)\n\t\t\"m1 \"\n\t\tTranscript.show({(a) function m1:\n\t{\nTranscriptLayer.refineObject(Target, // (B) refine methods m1 and m2)\n\n\"TranscriptLayer\"\ncop.create(// (A) layer creation \n95 424086 Dragging.xhtml null [cop.create(},, cop.create(},] )\n\nGrabbingLayer.beGlobal()\n\n},\n})\n this;\n evt.hand.grabMorph(return (cop.proceed(evt)) if\n {(evt) function onDragStart:,\n\n } truereturn{\n get draggingEnabled() {(lively.morphic.Morph, refineClass).'GrabbingLayer')\n\nDraggingLayer.beNotGlobal()\nDraggingLayer.beGlobal()\n\n\ncop.create(},\n} true;\n return.dragOffset\n this delete true;\n return (cop.proceed(evt)) if\n {(evt) function onDragEnd:,\n } true;\n return.getPosition().subPt(evt.getPosition());\n this.dragOffset = this true;\n return (cop.proceed(evt)) if\n {(evt) function onDragStart:,\n } true;\n return.getGridPoint()))\n this.setPosition(pos.griddedBy(this.dragOffset)\n this pos = evt.getPosition().addPt(var true;\n return (cop.proceed(evt)) if\n {(evt) function onDrag:,\n\n } truereturn{\n get draggingEnabled() {(lively.morphic.Morph, refineClass).'DraggingLayer'cop.create( \n96 394504 110521_BetterLists.xhtml null [cop.create(, cop.create(] )\nEventClickLayer.beGlobal()\nEventClickLayer.unrefineClass(lively.morphic.Morph)\nEventClickLayer.beNotGlobal()},\n} cop.proceed(evt)\n return)\n this + 'onMouseDown '\n alert({(evt) function onMouseDown:\n {(lively.morphic.Morph, refineClass)\n.'EventClickLayer'cop.create( \n97 566453 SimpleObjectTracing.xhtml Text11 [cop.create(}, cop.create(}] )\n\n}\n o.foo()\n{() function)\n\nwithLayers([TestLayer], }\n})\n arguments, this cop.proceed.apply(return)\n 'refine foo'\n alertOK({() function foo:\n {).refineObject(o, \"TestLayer\"\n\no.foo()\n\ncop.create(}\n})this + \"I am: \"alertOK({() function foo:,\n }\"TestObject\" return {() function toString:\n {\no = // but there is no problem... \n// Test to recreate issue \n98 627257 Presentation.xhtml setupCodeText [cop.create(}} 100.random() * Math.number = this {() function m:{obj = , cop.create(}} 100.random() * Math.number = this {() function m:{obj = ] ).beGlobal()}\n} cop.proceed() {() function m:\n {).refineObject(obj, 'InlineBenchmarkLayer'\ncop.create(}} 100.random() * Math.number = this {() function m:{obj = \n99 611921 DraftPresentation.xhtml Text15 [cop.create(, cop.create(] );},\n} secret = ...\n cop.proceed();\n ...\n var\n {() function toString:\n {(Person, refineClass)\n.'EmployerLayer'cop.create( \n100 600458 dev.xhtml null [cop.create('\\'; return cop.proceed(result) })' + i + '(function(result) { result += \\'l'(eval func = var, cop.create('\\'; return cop.proceed(result) })' + i + '(function(result) { result += \\'l'(eval func = var] )\n'beNotGlobal')\n\nlayers.invoke(}) '' benchmarkObj.m_base(return {() function)\nwithLayers([], }) '' benchmarkObj.m_base(return {() function)\n\nwithLayers(layers, } truel1: true,l2: true,l3: true,l4: true,l5:{, ''\n\nbenchmarkObj.m_simple(}))\n} funcm_base:{ + i).refineObject(benchmarkObj, 'BenchLayer')\n layers.push(cop.create('\\'; return cop.proceed(result) })' + i + '(function(result) { result += \\'l'(eval func = var\n {; i++) 5; i<=1 i = var (for\n\nlayers = []\n},\n} result\n return\n 'base'\n result += {(result) function m_base:,\n\n } result;\n return;\n 'base'\n result += 'l1' (context.l1) result += if\n 'l2' (context.l2) result += if\n 'l3' (context.l3) result += if\n 'l4' (context.l4) result += if\n 'l5' (context.l5) result += if\n {(result, context) function m_simple:\n {)\n\nbenchmarkObj = 'beNotGlobal'cop.GlobalLayers.clone().invoke( \n101 593612 bechmarks1.xhtml null [cop.create('\\'; return cop.proceed(result) })' + i + '(function(result) { result += \\'l'(eval func = var, cop.create('\\'; return cop.proceed(result) })' + i + '(function(result) { result += \\'l'(eval func = var] )}) '' benchmarkObj.m_base(return {() function)\nwithLayers([], }) '' benchmarkObj.m_base(return {() function)\n\nwithLayers(layers, } truel1: true,l2: true,l3: true,l4: true,l5:{, ''\n\nbenchmarkObj.m_simple(}))\n} funcm_base:{ + i).refineObject(benchmarkObj, 'BenchLayer')\n layers.push(cop.create('\\'; return cop.proceed(result) })' + i + '(function(result) { result += \\'l'(eval func = var\n {; i++) 5; i<=1 i = var (for\n\nlayers = []\n},\n} result\n return\n 'base'\n result += {(result) function m_base:,\n\n } result;\n return;\n 'base'\n result += 'l1' (context.l1) result += if\n 'l2' (context.l2) result += if\n 'l3' (context.l3) result += if\n 'l4' (context.l4) result += if\n 'l5' (context.l5) result += if\n {(result, context) function m_simple:\n {benchmarkObj = \n102 576745 Slides_2.xhtml content1 [cop.create(// layer creation, cop.create(// layer creation] \n)}\n Target.m2()\n{() function\nwithLayers([TraceLayer], // layer activation)\n},\n} cop.proceed()\n return)\n \"m2\"\n Transcript.show({(a) function m2:,\n } cop.proceed(a)\n return + a)\n \"m1 \"\n Transcript.show({(a) function m1:\n {\nTraceLayer.refineObject(Target, // definition of behavioral-variation)\n\n\"TraceLayer\"\ncop.create(// layer creation \n103 565289 SimpleObjectTracing.xhtml null [cop.create(// layer creation, cop.create(// layer creation] )\n\n\n}\n Target.m2()\n{() function\nwithoutLayers([TraceLayer], // layer deactivation)\n\n}\n Target.m2()\n{() function\nwithLayers([TraceLayer], // layer activation)\n\n},\n} cop.proceed()\n return)\n \"m2\"\n Transcript.show({(a) function m2:,\n } cop.proceed(a)\n return + a)\n \"m1 \"\n Transcript.show({(a) function m1:\n {\nTraceLayer.refineObject(Target, // definition of behavioral-variation)\n\n\"TraceLayer\"\ncop.create(// layer creation \n104 626407 Presentation.xhtml PersonExampleSource [cop.create(}, cop.create(}] );\n\n\n\n\n}\n};\n ')'.address() + this + ' (' cop.proceed(beShort) +\n return\n {(beShort) function toString:,\n };\n 'Prof.-Dr.-Helmert Str.' return\n {() function address:\n {(Person, refineClass)\n.'AddressLayer');\n\ncop.create(}\n};\n ' (HPI)' cop.proceed(beShort) + return\n {(beShort) function toString:\n {(Person, refineClass)\n.'EmployerLayer');\n\ncop.create(}\n};\n ')'.fullName +this+'Person('.fullName : this beShort ?\n return\n {(beShort) function toString:,\n }.fullName = fullName;\n this\n {(fullName) function initialize:\n {, 'Person'(subclass.Object \n105 611548 DraftPresentation.xhtml Text15 [cop.create(, cop.create(] );},\n};\n ')'.employer() + this + ' (' cop.proceed() +\n return\n {() function toString:\n {(Person, refineClass)\n.'EmployerLayer'cop.create( \n106 606716 Draft.xhtml setupCodeText [cop.create(}} 100.random() * Math.number = this {() function m:{obj = , cop.create(}} 100.random() * Math.number = this {() function m:{obj = ] ).beGlobal()}\n} cop.proceed() {() function m:\n {).refineObject(obj, 'InlineBenchmarkLayer'\ncop.create(}} 100.random() * Math.number = this {() function m:{obj = \n107 601094 dev.xhtml null [cop.create(},, cop.create(},] ClassA()\nobj2.m1()\nnew ClassB()\nobj.m1()\n\nobj2 = new)\nl.beGlobal()\n\nobj = }\n})\n cop.proceed()\n this + 'in layer ' \n alert({() function m1:\n {)\ncop.layerClassAndSubclasses(l, ClassA, 'TestSuperLayer')\nl = cop.create(},\n} $super() {($super) function m1:\n {, 'ClassB'(subclass.ClassA)\n},\n}.constructor.type this return {() function toString:,\n } ) '>>m1' + this alert({() function m1:\n {, 'ClassA'(subclass.Object \n108 303977 ObjectEditor.xhtml ObjectEditorScriptPane [cop.create(\"ScriptAnnotationLayer\");, cop.create(\"ScriptAnnotationLayer\");] // changed at Wed Nov 16 2011 19:52:56 GMT-0800 (PST) by lauritz \nthis.addScript(function confirmUnsavedChanges(callback) {\n var message = \"Discard unsaved changes?\";\n var dialog = new lively.morphic.ConfirmDialog(message, callback);\n\n return this.world().openDialog(dialog);\n}).tag([]);\n\n\n// changed at Thu Nov 17 2011 11:04:19 GMT-0800 (PST) by lauritz \nthis.addScript(function copyToPartsBinWithUserRequest() {\n this.owner.copyToPartsBinWithUserRequest();\n}).tag([]);\n\n\n// changed at Wed Nov 16 2011 19:13:43 GMT-0800 (PST) by lauritz \nthis.addScript(function displayInitialScript() {\n if (this.scriptList.getList().size() > 1) {\n this.scriptList.preselectItem();\n } else if (this.connectionList.getList().size() > 1) {\n this.connectionList.preselectItem();\n } else {\n this.scriptList.selectAt(0);\n }\n}).tag([]);\n\n\n// changed at Wed Nov 16 2011 19:59:26 GMT-0800 (PST) by lauritz \nthis.addScript(function displayJavaScriptSource(jsCode) {\n if (this.scriptPane.hasChanged()) {\n var that = this;\n var callback = function(confirmed) {\n if (confirmed) that.scriptPane.display(jsCode)\n };\n this.confirmUnsavedChanges(callback);\n } else {\n this.scriptPane.display(jsCode);\n }\n}).tag([]);\n\n\n// changed at Wed Nov 16 2011 19:52:36 GMT-0800 (PST) by lauritz \nthis.addScript(function displaySourceForConnection(connection) {\n var code = \"\", that = this;\n if (connection === null) {\n this.sortedConnectionNamesOfObj(this.target).forEach(function(each) {\n code = code.concat(that.generateSourceForConnection(each[1])).concat(\"\\n\\n\");\n });\n code = code.substring(0, code.length - \"\\n\\n\".length - 1);\n } else {\n code = this.generateSourceForConnection(connection);\n }\n this.displayJavaScriptSource(code);\n}).tag([]);\n\n\n// changed at Wed Nov 16 2011 19:51:37 GMT-0800 (PST) by lauritz \nthis.addScript(function displaySourceForScript(scriptName) {\n var code = \"\",\n that = this;\n if (scriptName === null) {\n this.sortedScriptNamesOfObj(this.target).forEach(function(each) {\n code = code.concat(that.generateSourceForScript(each)).concat(\"\\n\\n\\n\");\n });\n code = code.substring(0, code.length - \"\\n\\n\\n\".length - 1);\n } else {\n code = this.generateSourceForScript(scriptName); \n }\n this.displayJavaScriptSource(code);\n}).tag([]);\n\n\n// changed at Mon Nov 28 2011 19:38:23 GMT-0800 (PST) by lauritz \nthis.addScript(function ensureAnnotationLayer() {\n module('lively.LayerableMorphs').load(true);\n\n if (\"ScriptAnnotationLayer\" in Global) return;\n \n cop.create(\"ScriptAnnotationLayer\");\n ScriptAnnotationLayer.refineClass(\n lively.morphic.Morph,{\n \n addScript: function(funcOrString) {\n var func = Function.fromString(funcOrString),\n oldFunction = this[func.name],\n changed = oldFunction && oldFunction.toString() !== func.toString();\n \n var result = cop.proceed.apply(this, arguments);\n\n if (oldFunction && !changed) {\n this[func.name].setTimestampAndUser(oldFunction.timestamp, oldFunction.user);\n } else {\n this[func.name].setTimestampAndUser();\n }\n return result;\n },\n\n tagScript: function(scriptName, tags) {\n return this[scriptName].tag(tags);\n }\n\n }); \n ScriptAnnotationLayer.refineObject(\n Function.prototype,{\n\n setTimestampAndUser: function(timestamp, user) {\n this.setProperty('timestamp', timestamp || new Date());\n if ($world && $world.getUserName()) {\n this.setProperty('user', user || $world.getUserName());\n }\n },\n \n tag: function(tags) {\n var tags = (typeof tags === 'string') ? [tags] : tags;\n this.setProperty(\"tags\", tags);\n return true; \n } \n });\n\n}).tag([]);\n\n\n// changed at Wed Nov 16 2011 19:59:26 GMT-0800 (PST) by lauritz \nthis.addScript(function generateSourceForConnection(connection) {\n var c = connection, targetObject = this.target;\n\tif (!c.getTargetObj() || !c.getTargetObj().name || \n\t\t!c.getSourceObj() || !c.getSourceObj().name) return String(c);\n\n\tvar optConfig = []\n\tif (c.converterString)\n\t\toptConfig.push(\"converter: \\n\\t\" + c.converterString)\n\tif (c.updaterString)\n\t\toptConfig.push(\"updater: \\n\\t\" + c.updaterString)\n\treturn Strings.format('connect(%s, \"%s\", %s, \"%s\", {%s});', \n\t\t\tthis.generateTargetCode(targetObject, c.getSourceObj()),\n\t\t\tc.getSourceAttrName(),\n\t\t\tthis.generateTargetCode(targetObject, c.getTargetObj()),\n\t\t\tc.getTargetMethodName(),\n\t\t\toptConfig.join(','));\n\n}).tag([]);\n\n\n// changed at Mon Nov 28 2011 19:32:42 GMT-0800 (PST) by lauritz \nthis.addScript(function generateSourceForScript(scriptName) {\n var script = this.target[scriptName],\n annotation = '',\n scriptSource = '',\n tagScript = '';\n\n if (script.timestamp && script.user) \n annotation = Strings.format('// changed at %s by %s \\n', script.timestamp, script.user);\n scriptSource = Strings.format('this.addScript(%s)', script.getOriginal());\n tagScript = Strings.format('.tag(%s);', this.printTags(script));\n\n return annotation + scriptSource + tagScript;\n}).tag([]);\n\n\n// changed at Wed Nov 16 2011 19:59:26 GMT-0800 (PST) by lauritz \nthis.addScript(function generateTargetCode(baseObject, targetObject) {\n\tvar name = targetObject.name;\n\tif (baseObject === targetObject) \n\t\treturn \"this\";\n\telse if (baseObject[name] === targetObject) \n\t\treturn \"this.\" + name;\n\telse if (baseObject.testObject === targetObject) \n\t\treturn \"this.testObject\";\n\telse if (baseObject.get(name) === targetObject) \n\t\treturn 'this.get(\"' + name + '\")';\n\telse if (targetObject instanceof Morph) \n\t\treturn '$morph(\"' + name + '\")';\n\telse \n\t\treturn \"????\";\n}).tag([]);\n\n\n// changed at Mon Nov 28 2011 19:41:00 GMT-0800 (PST) by lauritz \nthis.addScript(function migrateOldScriptAnnotations() {\n var target = this.target;\n\n if (!target) return;\n\n if (target.scriptAnnotations) {\n Functions.own(target).forEach(function (scriptName){\n var scriptAnnotation = target.scriptAnnotations[scriptName];\n if (!scriptAnnotation) return;\n if (scriptAnnotation.user) {\n target[scriptName].setProperty('user', scriptAnnotation.user);\n }\n if (scriptAnnotation.time) {\n target[scriptName].setProperty('timestamp', scriptAnnotation.time);\n }\n if (scriptAnnotation.categories) {\n target[scriptName].setProperty('tags', scriptAnnotation.categories);\n }\n });\n delete target.scriptAnnotations;\n } \n\n Functions.own(target).forEach(function (scriptName) {\n if (target[scriptName].categories) {\n target[scriptName].tags = target[scriptName].categories;\n delete target[scriptName].categories;\n } \n });\n\n}).tag([]);\n\n\n// changed at Wed Nov 16 2011 19:59:26 GMT-0800 (PST) by lauritz \nthis.addScript(function newConnection() {\n if (this.target) {\n var code = \"connect(SOURCE, SOURCE_PROPERTY, TARGET, TARGET_PROPERTY);\";\n this.displayJavaScriptSource(code);\n }\n}).tag([]);\n\n\n// changed at Mon Nov 28 2011 19:24:25 GMT-0800 (PST) by lauritz \nthis.addScript(function newScript() {\n if (this.target) {\n var code = \"this.addScript(function SCRIPTNAME() {\\n \\n}).tag([]);\";\n this.displayJavaScriptSource(code);\n }\n}).tag([]);\n\n\n// changed at Wed Nov 16 2011 19:59:26 GMT-0800 (PST) by lauritz \nthis.addScript(function onShutdown() {\n if (this.scriptPane.hasChanged()) {\n var that = this;\n // callback is executed asynchronously since waits on user input.\n // however, the editor should not be closed before input\n // therefore, we patch the remove method until the user reacted\n this.owner.remove = function() {};\n var callback = function(confirmed) {\n if (that.owner.state === \"shutdown\") delete that.owner.state;\n that.owner.remove = that.owner.__proto__.remove;\n if (confirmed) that.owner.remove();\n }\n this.confirmUnsavedChanges(callback);\n } \n}).tag([]);\n\n\n// changed at Mon Nov 28 2011 19:33:20 GMT-0800 (PST) by lauritz \nthis.addScript(function printTags(script) {\n if (!script.tags) return \"[]\";\n\n var printString = '[';\n for (var i=0; i < script.tags.length; i++) {\n if (i !== 0) printString += ', ';\n printString += '\"' + script.tags[i] + '\"';\n }\n printString += ']';\n return printString;\n}).tag([]);\n\n\n// changed at Mon Nov 28 2011 19:37:05 GMT-0800 (PST) by lauritz \nthis.addScript(function reset() {\n this.scriptPane = this.get('ObjectEditorScriptPane')\n this.scriptList = this.get('ObjectEditorScriptList')\n this.connectionList = this.get('ObjectEditorConnectionList')\n this.morphSelector = this.get('ObjectEditorMorphSelector')\n this.target = null;\n this.scriptPane.reset();\n this.scriptList.setList();\n this.connectionList.setList();\n this.morphSelector.reset();\n this.tagChooser.reset();\n this.currentTag = null;\n this.stopStepping();\n}).tag([]);\n\n\n// changed at Wed Nov 16 2011 19:47:56 GMT-0800 (PST) by lauritz \nthis.addScript(function selectChangedContent(source) {\n\n var addScriptRegex = /this\\.addScript\\s*\\(\\s*function\\s*([^\\(]*)/g;\n var addScriptMatches = [];\n var addScriptMatch = addScriptRegex.exec(source);\n while (addScriptMatch) {\n addScriptMatches.push(addScriptMatch[1]);\n addScriptMatch = addScriptRegex.exec(source);\n }\n \n // if scripts were added, select either a specific one or all\n if (addScriptMatches.length > 0) { \n if (addScriptMatches.length === 1) {\n return this.scriptList.selectAddedScript(addScriptMatches[0]);\n }\n return this.scriptList.selectAt(0);\n }\n\n var connectionRegex = \n /connect\\(\\s*([^,]*)\\s*,\\s*\"([^,]*)\"\\s*,\\s*([^,]*)\\s*,\\s*\"([^,]*)\"/g;\n var connectionMatches = [];\n var connectionMatch = connectionRegex.exec(source);\n while (connectionMatch) {\n connectionMatches.push(connectionMatch);\n connectionMatch = connectionRegex.exec(source);\n }\n\n // if connections were made, select either a specific one or all\n if (connectionMatches.length > 0) {\n if (connectionMatches.length === 1) {\n var match = connectionMatches[0];\n for (var i=0; i undefined\ncop.getLayerDefinitionForObject(L, o2) }}3 return {() function foo:{\n\n\no2 = // -> [object Object])\n\ncop.getLayerDefinitionForObject(L, o) }\n}4 return{() function foo: \n {).refineObject(o, \"L\"\ncop.create(}}3 return {() function foo:{\no= \n111 119529 LivelyWikiPresentation.xhtml Workspace [cop.create('ShowClickLayer').refineClass(Morph, {, cop.create('ShowClickLayer').refineClass(Morph, {] cop.create('ShowClickLayer').refineClass(Morph, {\n onMouseMove: function(evt) {\n show(evt.mousePoint)\n return cop.proceed(evt)\n },\n onMouseDown: function(evt) {\n show(evt.mousePoint)\n return cop.proceed(evt)\n }\n})\n// ShowClickLayer.beGlobal();\n// ShowClickLayer.beNotGlobal();\n \n112 119933 LivelyWikiPresentation.xhtml null [cop.create('LayerA'), cop.create('LayerA')] Object.subclass(\"MyObject\", {\n m: function(a) {\n return a * 3\n }\n})\n\ncop.create('LayerA')\n\nLayerA.refineClass(MyObject, {\n m: function(a) {\n return cop.proceed(a) + 4\n }\n})\n\ncop.create('LayerB')\nLayerB.refineClass(MyObject, {\n m: function(a) {\n return cop.proceed(a * 2)\n }\n})\n \n113 48707 cop-demo.xhtml null [cop.create(} Person().sayHello()), cop.create(} Person().sayHello())] )\n}\n} cop.proceed(fill.invert());\n return\n {(fill) function setFill:\n {(lively.morphic.Morph, refineClass).'ColorLayer')\n\nthat.setFill(Color.green)\nColorLayer.beNotGlobal()\n\nthat.setWithLayers([ColorLayer]);\n\nColor.red.invert()\ncop.create(} Person().sayHello())\n\nnew\n alert({() function Person().sayHello()\n\nwithLayers([PersonLayer], new)\n\n}\n};\n \" from a layer\" cop.proceed() + return\n {() function sayHello:\n {(Person, refineClass).'PersonLayer');\n\n\ncop.create(}\n\n} \"Hello 2\" return {() function sayHello:\n\n {, 'Person'(subclass.Object);\n\n\n}\n\n} \"Hello \" return {() function sayHello:\n\n {, 'Person'(subclass.Object \n114 48356 cop-demo.xhtml Text [cop.create(}, cop.create(}] )\n}\n})\n 2 cop.proceed(a * return\n {(a) function m:\n {(MyObject, refineClass.LayerB)\n'LayerB')\n\ncop.create(}\n}\n 4 cop.proceed(a) + return\n {(a) function m:\n {(MyObject, refineClass.LayerA)\n'LayerA')\n\ncop.create(}\n}\n 3 a * return\n {(a) function m:\n {, \"MyObject\"(subclass.Object \n115 47640 Syntax.xhtml Text [cop.create(}, cop.create(}] )\n}\n})\n 2 cop.proceed(a * return\n {(a) function m:\n {(MyObject, refineClass.LayerB)\n'LayerB')\n\ncop.create(}\n}\n 4 cop.proceed(a) + return\n {(a) function m:\n {(MyObject, refineClass.LayerA)\n'LayerA')\n\ncop.create(}\n}\n 3 a * return\n {(a) function m:\n {, \"MyObject\"(subclass.Object \n116 37973 flattening.xhtml Text2 [cop.create(, cop.create(] );},\n};\n ')'.employer() + this + ' (' cop.proceed() +\n return\n alert(secret)\n {() function toString:,\n } 'HPI' return {() function employer:\n {(Person, refineClass)\n.'EmployerLayer'cop.create( \n117 34261 EfficientLayerActivation.xhtml Text8 [cop.create(, cop.create(] )\nShowClickLayer.beGlobal();\nShowClickLayer.beNotGlobal();\n\n\n\n\n\n}\n} cop.proceed(evt)\n return + evt.mousePoint)\n \"clicked \").setTextString('LastClickedText'\n $morph({(evt) function onMouseDown:\n {(Morph, refineClass).'ShowClickLayer'cop.create( \n118 51855 WordCompletion.xhtml Text8 [cop.create(, cop.create(] )}\n} cop.proceed(evt)\n return\n } + lastWord)\n \"last word: \")\n alertOK(1] + 1], lastWordRange[0.textString.slice(lastWordRange[this lastWord = var)\n 1.textString, cursor - this.selectWord(this lastWordRange = var\n {) 0 (cursor > if];\n 0 cursor = range[var.getSelectionRange()\n this range = var\n {(evt) function onKeyPress:\n {(lively.morphic.Text, refineClass).'WordCompletionLayer'cop.create( \n119 46798 PersonExample.xhtml Text [cop.create('AddressLayer'cop.create(, cop.create('AddressLayer'cop.create(] );}\n}.address;\n\tthis + \"; Address: \" cop.proceed() + return\n\t\t{() function print:\n\t{(Employer, refineClass.AddressLayer);\n\n}\n}.name;\n\tthis + \"Employer: \" return\n\t\t{() function toString:,\n\t}.name;\n\tthis + \"Name: \" return\n\t\t{() function print:,\n\t}.address = newAddress;\n\tthis.name = newName;\n\t\tthis\n\t\t{(newName, newAddress) function initialize:\n\t{, 'Employer'(subclass.Object);\n\n}\n}.name;\n\tthis + \"Person: \" return\n\t\t{() function toString:,\n\t}.employer.print();\n\tthis +\n\t\t\t\"; [Employer] \" cop.proceed() + return\n\t\t{() function EmploymentLayer$print:,\n\t}.address;\n\tthis + \"; Address: \" cop.proceed() + return\n\t\t{() function AddressLayer$print:,\n\t}.name;\n\tthis + \"Name: \" return\n\t\t{() function print:,\n\t}.employer = newEmployer;\n\tthis.address = newAddress;\n\t\tthis.name = newName;\n\t\tthis\n\t\t{(newName, newAddress, newEmployer) function initialize:\n\t{, 'Person'(subclass.Object);\n\n'EmploymentLayer');\ncop.create('AddressLayer'cop.create( \n120 52792 WordCompletion.xhtml Text8 [cop.create(, cop.create(] )\n},\n} cop.proceed(evt)\n return\n }\n // without proceed; return) \n m.remove()\n \" \".replaceSelectionWith(m.textString + this);\n 1] + 1], wordRange[0.setSelectionRange(wordRange[this.showWordCompletionMorph();\n this m = var)\n 1.getCursorPos() - this.textString, this.locale.selectWord(this wordRange = var\n {.isShowingWordCompletionMorph() && evt.getKeyCode() == Event.KEY_RETURN) this (if\n {(evt) function onKeyDown:\n {(TextMorph, refineClass).'WordCompletionLayer'cop.create( \n121 47291 SimpleObjectTracing.xhtml null [cop.create(\"TraceLayer\"), cop.create(\"TraceLayer\")] // Implementing the trace function with ContextJS\n\n\n// layer creation\ncop.create(\"TraceLayer\")\n\n// definition of behavioral-variation\nTraceLayer.refineObject(Target, {\n\tm1: function(a) {\n\t\tTranscript.show(\"m1 \" + a)\n\t\treturn cop.proceed(a)\n\t},\n\tm2: function(a) {\n\t\tTranscript.show(\"m2\")\n\t\treturn cop.proceed()\n\t},\n})\n\n// layer activation\nwithLayers([TraceLayer], function() {\n\tTarget.m2()\n})\n\n\n// layer deactivation\nwithoutLayers([TraceLayer], function() {\n\tTarget.m2()\n})\n\n\n\n\n\nTracer.trace = function(object, methodName) {\n\tvar layeredMethodDef = {};\n\tlayeredMethodDef[methodName] = function() {\n\t\tvar args = arguments;\n\t\tvar obj = this;\n\t\tcop.withoutLayers([TraceLayer], function() {\n\t\t\tTracer.log(obj, methodName, args); \n\t\t})\n\t\tcop.proceed.apply(this, args)\n\t}\n\tTraceLayer.refineObject(object, layeredMethodDef);\n}\n\n\n// TraceLayer.beNotGlobal()\n\nTracer.trace(Target, \"m1\")\nTracer.trace(Target, \"m2\")\nTracer.trace(Target, \"print\")\n\n\n// Solves Problem 1:\n// 'Tracer.trace(Target, \"m1\")' can be called as often as need, e.g. during developing the tracing code, or during experimenting with what objects (classes) should be traced\n\n// Solves Problem 2:\nTracer.trace(Transcript, \"show\")\nTarget.print()\n\n\nTracer.traceObject(Target)\n\nwithLayers([TraceLayer], function() {\n\tTarget.m2()\n})\n\n \n122 52411 WordCompletion.xhtml null [cop.create(, cop.create(] );}\n} cop.proceed(evt)\n return\n }\n }]).bottomLeft());\n 0.getCharBounds(lastWordRange[this.showWordCompletionMorph();\n m.setTextString(previewWord); \n m.setPosition(this m = var\n { (previewWord) if)\n previewWord = WordCompletion.current().complete(lastWord);\n 1] + 1], lastWordRange[0.textString.slice(lastWordRange[this),\n lastWord = 1.textString, cursor - this.selectWord(this lastWordRange = var\n {) 0 (cursor > if];\n 0 cursor = range[var.getSelectionRange()\n this range = var\n };\n return.hideWordCompletionMorph();\n this\n {)) /\\w/ (!key.match(if key = evt.getKeyChar();\n var\n {(evt) function onKeyPress:,\n });\n this.wordCompletionMorph.owner === this.wordCompletionMorph && (this return\n {() function isShowingWordCompletionMorph:, \n }.wordCompletionMorph.remove();\n this.wordCompletionMorph) \n this (if\n {() function hideWordCompletionMorph:, \n }.wordCompletionMorph;\n this return.wordCompletionMorph);\n this.addMorph(this.getFontSize());\n this.wordCompletionMorph.setFontSize(this);\n } Color.whitefill: Color.gray.darker(), textColor:{.wordCompletionMorph.applyStyle(this\n }.wordCompletionMorph = m;\n this).beLabel();\n '' Rectangle(), new lively.morphic.Text(new m = var\n {) undefined.wordCompletionMorph === this (if\n {() function showWordCompletionMorph:\n {(lively.morphic.Text, refineClass).'WordCompletionLayer'\ncop.create( \n123 35875 EfficientLayerActivation.xhtml Text [cop.create(}, cop.create(}] // etc ... to BenchLayer5)\n}\n} cop.proceed(result) \n return; \n 'l2' \n result += {(result) function m:\n {).refineObject(benchmarkObj, 'BenchLayer2')\ncop.create(}\n} cop.proceed(result) \n return; \n 'l1' \n result += {(result) function m:\n {).refineObject(benchmarkObj, 'BenchLayer1'\n\ncop.create(},\n} result\n return\n 'base'\n result += {(result) function m:\n {\nbenchmarkObj = // 2. Behavioral variations expressed with layers \n124 51634 WordCompletion.xhtml Text4 [cop.create(, cop.create(] )}\n})\n\t\t\tcop.proceed(evt)\n\t'\"' + c +'pressed \"' c = evt.getKeyChar();\n\t\t\talertOK(var\n\t\t\t{(evt) function onKeyPress:\n\t{(lively.morphic.Text, refineClass).'WordCompletionLayer'cop.create( \n125 46398 OpenImplementation.xhtml Text [cop.create(// Layer Definition), cop.create(// Layer Definition)] );\n\n\n\n\n\n\"Hello\");\n\no.say(},\n} [SayNoLayer]\n\treturn\n\t\t{() function activeLayers:\n\t{( addMethods.MyObject\n// Hard Wired...);\n\n\n});\n\"Hello\"\n\to.say({() function\nwithLayers([SayNoLayer], // dynamical activation does not work any more);\n\n},\n} []\n\treturn\n\t\t{() function activeLayers:\n\t{( addMethods.MyObject\n// No Layer at all...\n\n// With own layer compostion) \n\n\n\"Hello\");\n\no.say(});\n\"Hello\"\n\to.say({() function)\n\nwithLayers([SayNoLayer], }\n} result\n\treturn\n\t\t// after + string)\n\t\t\"not \" result = cop.proceed(var\n\t\t// before\n\t\t{(string) function say:\n\t{(MyObject, refineClass)\n.'SayNoLayer'\ncop.create(// Layer Definition)\n\n\"Hello\");\no.say(\"joe\" MyObject(new);\n\no = }\n});\n\t10 + text, Color.black, \" says \".name + this\n\t\tWorldMorph.current().setStatusMessage(\n\t\t\t{(text) function say:,\n\t}.name = name\n\tthis\n\t\t{(name) function initialize:\n\t{, 'MyObject'(subclass.Object\n\n// Class Defintion \n126 43091 flattening.xhtml Text6 [cop.create(, cop.create(] );},\n};\n ')'.address() + this + ' (' cop.proceed() +\n return\n 'foo' secret = var\n {() function toString:,\n }\n 'Prof.-Dr.-Helmert Str.' return\n {() function address:\n {(Person, refineClass)\n.'AddressLayer'cop.create( \n127 35581 EfficientLayerActivation.xhtml setupCodeText [cop.create(}} 100.random() * Math.number = this {() function m:{obj = , cop.create(}} 100.random() * Math.number = this {() function m:{obj = ] ).beGlobal()}\n} cop.proceed() {() function m:\n {).refineObject(obj, 'InlineBenchmarkLayer'\ncop.create(}} 100.random() * Math.number = this {() function m:{obj = \n128 37310 EfficientLayerActivation.xhtml null [cop.create(, cop.create(] )\n\n\n\n}\n} cop.proceed(evt)\n return + evt);\n \"key down\"\n alertOK({(evt) function onKeyDown:\n {(TextMorph, refineClass).'DevLayer'cop.create( \n129 34555 EfficientLayerActivation.xhtml PersonExampleSource [cop.create(}, cop.create(}] );\n\n\n\n\n}\n};\n ')'.address() + this + ' (' cop.proceed(beShort) +\n return\n {(beShort) function toString:,\n };\n 'Prof.-Dr.-Helmert Str.' return\n {() function address:\n {(Person, refineClass)\n.'AddressLayer');\n\ncop.create(}\n};\n ' (HPI)' cop.proceed(beShort) + return\n {(beShort) function toString:\n {(Person, refineClass)\n.'EmployerLayer');\n\ncop.create(}\n};\n ')'.fullName +this+'Person('.fullName : this beShort ?\n return\n {(beShort) function toString:,\n }.fullName = fullName;\n this\n {(fullName) function initialize:\n {, 'Person'(subclass.Object \n130 32837 ComplexLayerLookup.xhtml Text [cop.create(}, cop.create(}] )\n\n}\n} + cop.proceed() \n \"LA_S.m, \" return\n {(a) function m:\n {(MySubObject, refineClass.LayerA)\n\n}\n} + cop.proceed()\n \"LA_O.m, \" return\n {(a) function m:\n {(MyObject, refineClass.LayerA)\n'LayerA')\n\n\ncop.create(}\n} + $super()\n \"S.m, \" return\n {($super) function m:\n {, \"MySubObject\"(subclass.MyObject)\n\n}\n}\n \"O.m\" return\n {() function m:\n {, \"MyObject\"(subclass.Object ","previousSelection":[2561,2561],"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":282},"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(2.8,1.0)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(614.9,-15.9)"},"161":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","_Fill":null,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(3385.0,528.6)","_BorderColor":"Color.rgb(174,174,174)","_Padding":"lively.rect(4,2,0,0)"},"162":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":163},{"__isSmartRef__":true,"id":165},{"__isSmartRef__":true,"id":167},{"__isSmartRef__":true,"id":169},{"__isSmartRef__":true,"id":171},{"__isSmartRef__":true,"id":173},{"__isSmartRef__":true,"id":175}],"lastModifiedDate":{"__isSmartRef__":true,"id":177},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"163":{"date":{"__isSmartRef__":true,"id":164},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"164":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"165":{"date":{"__isSmartRef__":true,"id":166},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"166":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"167":{"date":{"__isSmartRef__":true,"id":168},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"168":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"169":{"date":{"__isSmartRef__":true,"id":170},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"170":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"171":{"date":{"__isSmartRef__":true,"id":172},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"172":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"173":{"date":{"__isSmartRef__":true,"id":174},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"174":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"175":{"date":{"__isSmartRef__":true,"id":176},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"176":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"177":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"178":{"style":{"__isSmartRef__":true,"id":179},"chunkOwner":{"__isSmartRef__":true,"id":160},"_id":"_1406","storedString":"0 ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"179":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"180":{"_id":"_1407","style":{"__isSmartRef__":true,"id":181},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"id","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"181":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":182},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"182":{"code":"this.sortCurrentTableBy(\"id\")","context":{"__isSmartRef__":true,"id":2}},"183":{"_id":"_1408","style":{"__isSmartRef__":true,"id":184},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"184":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"185":{"_id":"_1409","style":{"__isSmartRef__":true,"id":186},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"path","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"186":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":187},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"187":{"code":"this.sortCurrentTableBy(\"path\")","context":{"__isSmartRef__":true,"id":2}},"188":{"_id":"_1410","style":{"__isSmartRef__":true,"id":189},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"189":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"190":{"_id":"_1411","style":{"__isSmartRef__":true,"id":191},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"name","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"191":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":192},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"192":{"code":"this.sortCurrentTableBy(\"name\")","context":{"__isSmartRef__":true,"id":2}},"193":{"_id":"_1412","style":{"__isSmartRef__":true,"id":194},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"194":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"195":{"_id":"_1413","style":{"__isSmartRef__":true,"id":196},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"rev","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"196":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":197},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"197":{"code":"this.sortCurrentTableBy(\"rev\")","context":{"__isSmartRef__":true,"id":2}},"198":{"_id":"_1414","style":{"__isSmartRef__":true,"id":199},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"199":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"200":{"_id":"_1415","style":{"__isSmartRef__":true,"id":201},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"Objects","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"201":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":202},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"202":{"code":"this.sortCurrentTableBy(\"Objects\")","context":{"__isSmartRef__":true,"id":2}},"203":{"_id":"_1416","style":{"__isSmartRef__":true,"id":204},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"204":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"205":{"_id":"_1417","style":{"__isSmartRef__":true,"id":206},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"Size","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"206":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":207},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"207":{"code":"this.sortCurrentTableBy(\"Size\")","context":{"__isSmartRef__":true,"id":2}},"208":{"_id":"_1418","style":{"__isSmartRef__":true,"id":209},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"209":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"210":{"_id":"_1419","style":{"__isSmartRef__":true,"id":211},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"Submorphs","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"211":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":212},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"212":{"code":"this.sortCurrentTableBy(\"Submorphs\")","context":{"__isSmartRef__":true,"id":2}},"213":{"_id":"_1420","style":{"__isSmartRef__":true,"id":214},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"214":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"215":{"_id":"_1421","style":{"__isSmartRef__":true,"id":216},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"TextMorphs","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"216":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":217},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"217":{"code":"this.sortCurrentTableBy(\"TextMorphs\")","context":{"__isSmartRef__":true,"id":2}},"218":{"_id":"_1422","style":{"__isSmartRef__":true,"id":219},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"219":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"220":{"_id":"_1423","style":{"__isSmartRef__":true,"id":221},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"TextSize","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"221":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":222},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"222":{"code":"this.sortCurrentTableBy(\"TextSize\")","context":{"__isSmartRef__":true,"id":2}},"223":{"_id":"_1424","style":{"__isSmartRef__":true,"id":224},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"224":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"225":{"_id":"_1425","style":{"__isSmartRef__":true,"id":226},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"DerivationIds","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"226":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":227},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"227":{"code":"this.sortCurrentTableBy(\"DerivationIds\")","context":{"__isSmartRef__":true,"id":2}},"228":{"_id":"_1426","style":{"__isSmartRef__":true,"id":229},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"229":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"230":{"_id":"_1427","style":{"__isSmartRef__":true,"id":231},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"Revisions","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"231":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":232},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"232":{"code":"this.sortCurrentTableBy(\"Revisions\")","context":{"__isSmartRef__":true,"id":2}},"233":{"_id":"_1428","style":{"__isSmartRef__":true,"id":234},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"234":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"235":{"_id":"_1429","style":{"__isSmartRef__":true,"id":236},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"Changes","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"236":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":237},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"237":{"code":"this.sortCurrentTableBy(\"Changes\")","context":{"__isSmartRef__":true,"id":2}},"238":{"_id":"_1430","style":{"__isSmartRef__":true,"id":239},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"239":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"240":{"_id":"_1431","style":{"__isSmartRef__":true,"id":241},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"Scripts","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"241":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":242},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"242":{"code":"this.sortCurrentTableBy(\"Scripts\")","context":{"__isSmartRef__":true,"id":2}},"243":{"_id":"_1432","style":{"__isSmartRef__":true,"id":244},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"244":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"245":{"_id":"_1433","style":{"__isSmartRef__":true,"id":246},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"ScriptsSize","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"246":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":247},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"247":{"code":"this.sortCurrentTableBy(\"ScriptsSize\")","context":{"__isSmartRef__":true,"id":2}},"248":{"_id":"_1434","style":{"__isSmartRef__":true,"id":249},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"249":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"250":{"_id":"_1435","style":{"__isSmartRef__":true,"id":251},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"DerivationIdSum","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"251":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":252},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"252":{"code":"this.sortCurrentTableBy(\"DerivationIdSum\")","context":{"__isSmartRef__":true,"id":2}},"253":{"_id":"_1436","style":{"__isSmartRef__":true,"id":254},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"254":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"255":{"_id":"_1437","style":{"__isSmartRef__":true,"id":256},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"PartsBinMetaInfoSum","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"256":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":257},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"257":{"code":"this.sortCurrentTableBy(\"PartsBinMetaInfoSum\")","context":{"__isSmartRef__":true,"id":2}},"258":{"_id":"_1438","style":{"__isSmartRef__":true,"id":259},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"259":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"260":{"_id":"_1439","style":{"__isSmartRef__":true,"id":261},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"MetaInfoOverhead","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"261":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":262},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"262":{"code":"this.sortCurrentTableBy(\"MetaInfoOverhead\")","context":{"__isSmartRef__":true,"id":2}},"263":{"_id":"_1440","style":{"__isSmartRef__":true,"id":264},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"264":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"265":{"_id":"_1441","style":{"__isSmartRef__":true,"id":266},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"ErrorNodes","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"266":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":267},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"267":{"code":"this.sortCurrentTableBy(\"ErrorNodes\")","context":{"__isSmartRef__":true,"id":2}},"268":{"_id":"_1442","style":{"__isSmartRef__":true,"id":269},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"269":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"270":{"_id":"_1443","style":{"__isSmartRef__":true,"id":271},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"ScriptAuthors","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"271":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":272},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"272":{"code":"this.sortCurrentTableBy(\"ScriptAuthors\")","context":{"__isSmartRef__":true,"id":2}},"273":{"_id":"_1444","style":{"__isSmartRef__":true,"id":274},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"274":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"275":{"_id":"_1445","style":{"__isSmartRef__":true,"id":276},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":"ScriptTimestamps","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"276":{"fontWeight":"bold","doit":{"__isSmartRef__":true,"id":277},"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"277":{"code":"this.sortCurrentTableBy(\"ScriptTimestamps\")","context":{"__isSmartRef__":true,"id":2}},"278":{"_id":"_1446","style":{"__isSmartRef__":true,"id":279},"chunkOwner":{"__isSmartRef__":true,"id":160},"storedString":" \n1 1424598 PartsBin/Basic Triangle.json 148697 27 5156 0 0 0 0 3 0 0 0 0 368 7 0 [:] [:] \n2 1424525 PartsBin/Basic TransparentRectangle.json 196077 71 11639 1 0 0 10 1 12 0 0 690 7309 69 0 [:] [:] \n3 1424497 PartsBin/Basic Text.json 193597 26 4770 0 1 9 4 12 7 0 0 111 2677 58 0 [:] [:] \n4 1424443 PartsBin/Basic Star.json 148691 52 10454 0 0 0 0 7 1 0 0 0 717 7 0 [:] [:] \n5 1424414 PartsBin/Basic Rectangle.json 198774 27 6714 0 0 0 11 23 16 0 0 363 4570 73 0 [:] [:] \n6 1424237 PartsBin/Basic PrimitiveShapes.json 81428 174 34111 6 1 4 0 3 0 3 440 0 1702 5 0 [undefined:3] [undefined:3] \n7 1424099 PartsBin/Basic Pen.json 195197 135 25124 0 0 0 2 2 2 0 0 39 1345 6 0 [:] [:] \n8 1424026 PartsBin/Basic Notebook.json 165893 71 14961 1 1 8 7 1 10 0 0 330 5153 37 0 [:] [:] \n9 1423995 PartsBin/Basic Marker.json 148673 29 4939 0 0 0 0 3 0 0 0 0 301 6 0 [:] [:] \n10 1421743 PartsBin/Basic LineWithArrows.json 148809 101 22575 3 0 0 0 5 1 0 0 0 850 4 0 [:] [:] \n11 1421687 PartsBin/Basic LineWithArrowOrange.json 148754 54 11253 1 0 0 0 1 3 0 0 0 1142 10 0 [:] [:] \n12 1421640 PartsBin/Basic LineWithArrow.json 148733 45 9921 1 0 0 0 6 2 0 0 0 935 9 0 [:] [:] \n13 1421618 PartsBin/Basic Line.json 148769 20 4396 0 0 0 0 5 0 0 0 0 281 6 0 [:] [:] \n14 1421607 PartsBin/Basic Image.json 148804 9 2438 0 0 0 0 5 0 0 0 0 254 10 0 [:] [:] \n15 1421595 PartsBin/Basic Ellipse.json 196938 10 2536 0 0 0 3 16 3 0 0 75 1250 52 0 [:] [:] \n16 1421583 PartsBin/Basic Editor.json 196330 10 2497 0 0 0 1 1 2 0 0 36 962 40 0 [:] [:] \n17 1421524 PartsBin/Basic Cloud.json 195182 57 13584 7 0 0 2 4 3 0 0 312 3320 27 0 [:] [:] \n18 11358052 PartsBin/Tools CompactTestRunner.json 200311 0 1 0 0 0 0 2 0 0 0 0 0 0 0 \n19 11357509 PartsBin/Tools FRPInspector.json 200268 0 1 0 0 0 0 8 0 0 0 0 0 0 0 \n20 3001749 PartsBin/Tools WorldCSS.json 181549 587 131053 17 8 35 7 5 22 11 2240 5254 17803 18 0 [undefined:3, robertkrahn:2, bgnauk:6] [undefined:3, 2012-09:2, 2012-06:4, 2012-08:2] \n21 3001165 PartsBin/Tools TestRunner.json 196194 547 150675 28 10 69 45 15 47 39 11461 38304 18695 38 0 [test:32, JDoe:7] [2013-05:14, 2013-04:18, 2013-06:7] \n22 3000929 PartsBin/Tools SystemConsole.json 196935 213 49572 16 7 19 12 18 7 12 1745 2940 2381 11 0 [ohshima:2, cschuster:9, robertkrahn:1] [undefined:12] \n23 2997607 PartsBin/Tools ModulePart.json 185810 283 57539 18 8 60 0 1 12 17 4715 637 8627 16 0 [undefined:9, robertkrahn:8] [undefined:9, 2012-12:1, 2012-01:7] \n24 2996370 PartsBin/Tools AutoSave.json 198774 123 30758 7 5 27 5 7 12 2 116 1256 5034 20 0 [undefined:2] [undefined:2] \n25 2318297 PartsBin/Tools HTMLPrinter.json 156379 597 141055 21 8 1768 4 7 8 10 6283 3357 13532 12 0 [bsiegmund:7, lauritz:1, sstamm:2] [2012-04:9, 2011-11:1] \n26 2317978 PartsBin/Tools WorldFreshness.json 197386 136 34393 5 4 42 9 3 24 1 81 1490 11730 38 0 [aran:1] [undefined:1] \n27 2315896 PartsBin/Tools StyleEditor.json 185130 922 302125 76 34 336 13 40 16 16 8474 85646 28605 38 0 [undefined:5, bgnauk:7, robertkrahn:2, lauritz:2] [undefined:5, 2012-08:7, 2011-06:1, 2011-12:2, 2012-09:1] \n28 2313669 PartsBin/Tools TextColorChooser.json 193216 1077 281991 66 5 19 0 1 12 23 5014 4197 16044 7 0 [undefined:9, jenslincke:8, lauritz:6] [undefined:9, 2013-03:4, 2012-08:5, 2012-12:4, 2012-06:1] \n29 2312238 PartsBin/Tools ManualLayouter.json 199174 684 135026 30 13 131 1 3 19 26 5142 7146 34204 31 0 [jenslincke:13, undefined:7, lauritz:6] [2013-07:9, 2012-12:11, 2012-08:5, 2012-06:1] \n30 2288949 PartsBin/Tools ColorReplacer.json 148800 0 1 0 0 0 0 1 0 0 0 0 0 0 0 \n31 2285937 PartsBin/Tools TextAttributePanel.json 192856 754 161675 47 27 354 5 5 2 55 13301 7565 10940 11 0 [undefined:48, jenslincke:1, lauritz:6] [2011-09:1, 2012-05:14, 2011-12:6, undefined:34] \n32 2285007 PartsBin/Tools DropboxBrowser.json 197853 262 51239 16 7 32 1 2 5 13 4122 67 4850 10 0 [jenslincke:8, markoroeder:2, lauritz:3] [2011-11:11, 2013-07:2] \n33 2282115 PartsBin/Tools SerializationInspector.json 199299 768 171771 29 14 3216 3 8 24 39 11073 9357 47841 33 691 [jenslincke:31, undefined:4, lauritz:4] [2013-08:27, 2012-12:7, 2012-08:3, 2012-06:1, 2013-04:1] \n34 2281792 PartsBin/Tools Toolbar.json 182355 139 27556 0 0 0 14 1 12 0 0 471 4193 17 0 [:] [:] \n35 2277859 PartsBin/Tools WorldBrowserPane.json 194130 1323 302497 50 23 49310 13 5 20 30 9933 11015 33712 15 0 [jenslincke:25, undefined:5] [2013-02:9, 2013-03:16, 2012-12:5] \n36 2276326 PartsBin/Tools ScriptOverview.json 176541 415 107794 13 6 27 0 1 8 18 8335 2493 5456 7 0 [undefined:3, jenslincke:6, timfelgentreff:8, lauritz:1] [undefined:3, 2012-08:6, 2012-07:3, 2011-12:1, 2012-06:5] \n37 2252848 PartsBin/Tools MorphProfiler.json 172989 13875 1592216 31 17 189 9 13 6 25 10308 10553 17970 2 0 [bsiegmund:10, undefined:10, lauritz:5] [2012-06:10, 2012-05:10, 2011-11:5] \n38 2251392 PartsBin/Tools Benchmarker.json 149994 591 137223 21 10 145 5 7 4 9 4792 3574 9295 9 0 [cschuster:3, sstamm:3, undefined:3] [2012-04:3, 2012-02:3, undefined:3] \n39 2251079 PartsBin/Tools RightSpaceMaker.json 194038 121 24937 4 2 19 5 1 2 7 3123 594 2014 10 0 [sstamm:3, undefined:4] [2012-02:3, undefined:3, 2012-03:1] \n40 2249588 PartsBin/Tools ClassBrowser.json 195040 775 163649 24 6 233 0 6 3 46 17494 3934 30624 21 0 [undefined:16, jenslincke:30] [undefined:16, 2013-04:25, 2012-11:5] \n41 2248810 PartsBin/Tools MethodFinder.json 185133 331 77057 20 10 72 7 39 22 17 12218 2847 8771 15 0 [undefined:13, jenslincke:3, robertkrahn:1] [2012-01:5, undefined:7, 2011-11:3, 2012-05:1, 2012-02:1] \n42 2246029 PartsBin/Tools StyleCopier.json 190634 1442 325894 71 69 290 10 1 12 2 337 2534 6683 3 0 [jenslincke:2] [2013-01:2] \n43 2245092 PartsBin/Tools ErrorStackViewer.json 148668 433 96863 15 7 25 7 4 9 14 2899 3626 4600 8 0 [jenslincke:11, lauritz:3] [2012-02:11, 2011-11:3] \n44 2244326 PartsBin/Tools PartTestRunnerWithCodeEditor.json 196529 329 90454 28 9 26 0 1 41 15 4117 7977 16688 27 0 [fbo:8, jenslincke:5, robertkrahn:2] [undefined:15] \n45 2243913 PartsBin/Tools MorphsAtWorldPosition.json 199180 184 33744 5 2 8 12 2 18 1 28 949 13557 43 0 [undefined:1] [2012-12:1] \n46 2238781 PartsBin/Tools ObjectGroupEditor.json 179675 2318 593225 60 31 96 31 21 79 82 36885 41790 30903 12 0 [lauritz:46, jenslincke:1, tessi:7, conradcalmez:3, timfelgentreff:21, undefined:3, cschuster:1] [2011-11:29, 2012-03:1, 2012-06:26, 2011-12:8, 2012-02:3, undefined:3, 2011-09:3, 2012-08:2, 2012-07:5, 2012-05:1, 2011-10:1]\n47 2237661 PartsBin/Tools BootstrapParts.json 142537 479 110096 17 10 111 4 5 8 14 5282 2227 5145 7 0 [undefined:9, jenslincke:2, sstamm:3] [2012-02:9, 2012-03:2, undefined:3] \n48 2237044 PartsBin/Tools SearchSourceCode.json 148728 267 54348 13 6 47 0 5 0 3 742 0 1117 2 0 [undefined:3] [undefined:3] \n49 2235526 PartsBin/Tools CodeBrowser.json 172502 463 119310 13 6 14 22 40 44 15 5789 10459 16411 23 0 [undefined:3, cschuster:12] [undefined:3, 2012-06:12] \n50 2211542 PartsBin/Tools SyncManager.json 181234 0 1 0 0 0 0 18 0 0 0 0 0 0 0 \n51 2210654 PartsBin/Tools ObjectInspector.json 198852 381 83563 19 7 30 36 50 44 17 7457 9575 19457 35 0 [cschuster:11, JDoe:2, jenslincke:4] [2012-06:9, 2013-05:2, 2012-07:1, 2012-05:1, 2012-11:4] \n52 2209748 PartsBin/Tools ServerSearch.json 197526 402 86987 27 16 80 4 11 5 22 6389 4672 5681 12 0 [undefined:14, jenslincke:8] [undefined:14, 2011-11:5, 2013-04:1, 2013-07:2] \n53 2208760 PartsBin/Tools PrettyPrintJavascript.json 159134 473 113722 17 8 101 1 6 11 10 8840 682 14969 14 0 [undefined:10] [undefined:3, 2012-05:7] \n54 2207957 PartsBin/Tools SourceInspector.json 192323 389 90118 17 7 7607 0 2 13 24 7148 3723 9247 14 0 [undefined:9, jenslincke:9, lauritz:6] [undefined:9, 2013-02:5, 2012-08:5, 2012-12:4, 2012-06:1] \n55 2206401 PartsBin/Tools TestRunnerWithDebuggingSupport.json 197417 776 153977 45 21 169 5 1 23 31 6873 6834 10660 11 0 [lauritz:25, cschuster:3, timfelgentreff:3] [2011-12:25, 2012-02:3, 2013-07:3] \n56 2206009 PartsBin/Tools VerticalSpaceMaker.json 149100 167 35069 4 2 21 2 3 3 4 825 341 2034 7 0 [undefined:1, lauritz:3] [2012-03:1, 2011-11:3] \n57 2204760 PartsBin/Tools FileManagerFullScreen.json 184244 642 135777 14 6 77 11 3 15 7 1914 4197 11196 11 0 [cschuster:4, jenslincke:3] [2012-07:5, 2012-08:2] \n58 2201354 PartsBin/Tools ObjectEditor.json 199664 1517 404295 59 31 71 37 135 81 75 28487 41355 34643 19 0 [lauritz:53, cschuster:3, jenslincke:12, robertkrahn:1, conradcalmez:2, undefined:4] [1970-01:55, 2013-09:4, undefined:4, 2013-08:5, 2012-12:3, 2012-08:3, 2012-06:1] \n59 2198161 PartsBin/Tools ColorPicker.json 198679 363 82766 8 3 32 14 21 26 10 3966 2720 16224 23 0 [bgnauk:10] [2012-08:10] \n60 2196757 PartsBin/Tools CommanderTrait.json 195085 86 18483 0 0 0 4 2 3 0 0 112 1615 9 0 [:] [:] \n61 2195706 PartsBin/Tools WorldBrowser.json 197329 482 120971 30 11 100 1 4 19 24 9270 5679 24505 25 0 [jenslincke:23, undefined:1] [undefined:24] \n62 2195529 PartsBin/Tools Flap.json 182377 64 14544 1 1 5 1 1 1 0 0 7 836 6 0 [:] [:] \n63 2176533 PartsBin/Tools MorphDiffer.json 150013 1138 292262 33 15 96 25 4 23 29 9055 38140 18073 19 0 [undefined:23, athomschke:6] [2012-03:22, 2012-01:6, 2012-04:1] \n64 2173714 PartsBin/Tools ProtocolBrowser.json 182670 1061 271414 16 10 15032 2 1 12 10 2116 1845 10768 5 0 [undefined:3, jenslincke:7] [undefined:3, 2012-10:7] \n65 2172944 PartsBin/Tools GlobalLogger.json 182371 370 80307 9 4 51 9 1 8 7 1410 1657 9893 14 0 [athomschke:7] [2012-05:7] \n66 2171181 PartsBin/Tools MorphTable.json 198939 525 210226 19 7 99378 0 2 23 23 6321 5169 27839 16 360 [jenslincke:18, lauritz:4, undefined:1] [2013-08:14, 2012-12:4, 2012-08:3, 2012-06:1, 2013-04:1] \n67 2170399 PartsBin/Tools TextEditor.json 104143 315 73076 17 9 99 0 1 0 0 0 0 261 0 0 [:] [:] \n68 2170019 PartsBin/Tools IFrameLoader.json 148692 172 32694 6 3 78 0 5 0 3 541 0 1090 3 0 [undefined:3] [undefined:3] \n69 2166621 PartsBin/Tools PartsBinBrowser.json 198683 1546 286857 39 20 132 23 69 12 56 20356 25472 9155 12 0 [undefined:33, jenslincke:6, robertkrahn:10, fabian:1, lauritz:3, sstamm:3] [2011-12:26, 2013-05:1, 2012-01:6, 2011-07:5, 2012-02:5, 2012-09:3, 2012-03:2, undefined:8] \n70 2166286 PartsBin/Tools LeftSpaceMaker.json 194041 119 24571 4 2 18 4 1 2 7 3123 450 2041 10 0 [sstamm:3, undefined:4] [2012-02:3, undefined:3, 2012-03:1] \n71 2166135 PartsBin/Tools SiblingExtractor.json 198753 62 10347 0 0 0 11 1 16 0 0 363 5221 54 0 [:] [:] \n72 2162696 PartsBin/Tools VersionDiffer.json 183901 837 193627 30 14 73 1 3 5 31 15685 880 4492 3 0 [undefined:18, robertkrahn:13] [undefined:18, 2012-05:13] \n73 2162232 PartsBin/Tools ColumnCollapser.json 198758 218 39630 6 3 15 11 1 16 4 900 1091 11616 32 0 [jenslincke:4] [2013-02:2, 2013-08:2] \n74 2153914 PartsBin/Tools PartTestRunner.json 199473 1418 331319 51 24 548 0 21 9 87 37107 12855 61555 22 0 [fbo:8, jenslincke:73, undefined:3, lauritz:3] [2012-02:8, 2012-03:7, 2013-08:50, 2013-09:8, 2013-07:8, 2012-12:3, 2011-11:3] \n75 2152862 PartsBin/Tools Explorer.json 148785 440 95734 12 5 11 6 22 22 23 12417 2379 8114 11 0 [lauritz:17, undefined:6] [2011-12:2, 2011-09:8, 2012-01:4, 2011-10:3, undefined:6] \n76 2151210 PartsBin/Tools WorldRecoveryLoader.json 194023 778 203280 44 20 49280 3 9 20 38 12310 5555 30030 18 0 [undefined:14, jenslincke:24] [undefined:9, 2013-02:9, 2013-03:15, 2012-12:5] \n77 2127031 PartsBin/Tools SyncWorld.json 179220 0 1 0 0 0 0 11 0 0 0 0 0 0 0 \n78 1961896 PartsBin/Visualization ZoomableSunburstExample.json 183043 461 107882 13 5 32 2 1 22 12 6583 2247 14263 15 0 [undefined:3, jenslincke:8, robertkrahn:1] [undefined:3, 2012-08:1, 2012-10:7, 2012-06:1] \n79 1961169 PartsBin/Visualization MiniMap.json 167559 724 188784 49 0 0 13 16 9 0 0 631 2839 2 0 [:] [:] \n80 1960607 PartsBin/Visualization FileSizeTreeMap.json 191924 519 100272 19 9 233 2 3 26 24 7994 3447 25345 29 0 [undefined:11, jenslincke:12, robertkrahn:1] [undefined:11, 2012-08:1, 2013-01:7, 2012-10:4, 2012-06:1] \n81 1959429 PartsBin/Visualization BalancedSearchTrees.json 188841 882 199512 25 8 51 23 88 94 45 25703 24313 70180 47 0 [undefined:3, sstamm:34, bsiegmund:8] [undefined:3, 2012-12:6, 2012-11:4, 2013-01:32] \n82 1959247 PartsBin/Visualization d3ForceLayoutExample.json 187113 162 39738 2 1 35 15 1 16 7 4569 1162 7138 21 0 [markoroeder:5, jenslincke:2] [2012-12:5, 2012-10:2] \n83 1959068 PartsBin/Visualization d3BubbleExample.json 182781 169 36889 2 1 35 14 3 15 7 2175 1054 6713 21 0 [jenslincke:7] [2012-10:7] \n84 1958500 PartsBin/Visualization ConnectionsInHierarchyVisualization.json 190011 530 130492 9 3 112 9 3 11 21 7173 3951 8744 10 0 [undefined:1, lauritz:6, jenslincke:13, markoroeder:1] [2012-12:8, 2012-08:5, 2012-06:1, 2013-01:7] \n85 1958017 PartsBin/Visualization BubbleVisExample.json 183027 454 100644 13 5 25 1 1 21 12 4390 1743 13953 16 0 [undefined:3, jenslincke:8, robertkrahn:1] [undefined:3, 2012-08:1, 2012-10:7, 2012-06:1] \n86 1957762 PartsBin/Visualization ProtovisStackDrawing.json 107150 249 46630 3 1 5 0 8 0 15 8431 0 760 2 0 [undefined:15] [undefined:15] \n87 1957530 PartsBin/Visualization d3Example.json 176960 222 50748 2 1 274 10 3 11 1 235 622 5860 13 0 [robertkrahn:1] [2012-07:1] \n88 1957249 PartsBin/Visualization URLTree.json 83881 274 57014 8 5 127 0 4 0 8 2060 0 1813 3 0 [undefined:8] [undefined:8] \n89 1957000 PartsBin/Visualization URLCirclePacking.json 83888 242 50799 7 4 94 0 4 0 8 2329 0 1621 3 0 [undefined:8] [undefined:8] \n90 1956745 PartsBin/Visualization d3ExampleFull.json 182770 245 57781 2 1 274 13 1 12 5 4630 946 5874 12 0 [jenslincke:4, robertkrahn:1] [2012-10:4, 2012-07:1] \n91 1956277 PartsBin/Visualization TreeViewExampleD3.json 197280 432 80357 15 5 26 1 5 26 19 5457 2391 16967 24 0 [undefined:9, jenslincke:9, robertkrahn:1] [undefined:9, 2012-08:1, 2012-10:3, 2013-01:3, 2013-07:2, 2012-06:1] \n92 1955980 PartsBin/Visualization TreeMap.json 81702 289 64320 8 5 84 0 3 0 8 2325 0 1813 3 0 [undefined:8] [undefined:8] \n93 1955731 PartsBin/Visualization URLTreeMap.json 83877 244 50171 7 4 92 0 3 0 8 2143 0 1615 3 0 [undefined:8] [undefined:8] \n94 1955067 PartsBin/Visualization ScatterplotD3Example.json 183116 635 153386 14 6 3884 4 2 25 12 3844 3291 15099 12 0 [undefined:3, jenslincke:8, robertkrahn:1] [undefined:3, 2012-08:1, 2012-11:3, 2012-10:4, 2012-06:1] \n95 1953090 PartsBin/Visualization MorphHierrachyVisualization.json 191990 1897 1275398 23 9 53 3 13 19 38 13127 6696 21083 2 0 [undefined:10, jenslincke:21, lauritz:6, markoroeder:1] [undefined:9, 2013-01:6, 2012-12:8, 2012-08:5, 2012-06:1, 2013-02:9] \n96 1952561 PartsBin/Visualization MorphBrowserSunburst.json 183112 500 120272 13 5 29 4 3 25 14 7108 3255 15095 15 0 [undefined:3, jenslincke:10, robertkrahn:1] [undefined:3, 2012-08:1, 2012-10:8, 2012-11:1, 2012-06:1] \n97 1952283 PartsBin/Visualization URLIndentedTree.json 107155 271 62607 8 5 150 0 3 0 8 3151 0 1821 3 0 [undefined:8] [undefined:8] \n98 1952013 PartsBin/Visualization URLSunbursts.json 81710 263 53652 7 4 83 0 4 0 9 2397 0 1617 3 0 [undefined:9] [undefined:9] \n99 1951642 PartsBin/Visualization TreeMapLayouter.json 183552 359 73122 7 3 17 16 9 16 3 84 3450 13056 23 0 [robertkrahn:3] [2012-06:3] \n100 1951227 PartsBin/Visualization ZoomableBubbleView.json 191831 379 76398 15 5 25 0 1 21 20 6928 1527 14198 21 0 [undefined:9, jenslincke:10, robertkrahn:1] [undefined:9, 2012-08:1, 2012-10:6, 2013-01:3, 2012-06:1] \n101 1949768 PartsBin/Visualization ModuleBrowsD3Vis.json 190114 1421 368957 14 5 25 1 5 21 16 6804 1783 14464 4 0 [undefined:3, jenslincke:12, robertkrahn:1] [undefined:3, 2012-08:1, 2012-10:11, 2012-06:1] \n102 1949514 PartsBin/Visualization WorldMorphTreeMap.json 83873 249 44251 5 2 17 0 6 0 8 2146 0 1220 3 0 [undefined:8] [undefined:8] \n103 1949317 PartsBin/Visualization d3BubbleExampleWithChildren.json 182819 187 41950 2 1 35 15 1 16 7 2449 1162 6999 19 0 [jenslincke:7] [2012-10:7] \n104 1948869 PartsBin/Visualization ProtovisDrawing.json 164242 427 93454 13 5 23 1 11 2 19 7920 56 2270 2 0 [undefined:12, robertkrahn:7] [undefined:12, 2011-09:6, 2012-05:1] \n105 1948353 PartsBin/Visualization WorldGraphD3.json 187147 481 115136 15 5 426 0 1 17 21 8616 1741 15860 15 0 [undefined:10, jenslincke:6, markoroeder:5] [undefined:9, 2012-08:1, 2012-11:4, 2012-12:5, 2012-10:2] \n106 1977825 PartsBin/Widgets ScrollBox.json 169792 34 7045 0 0 0 7 1 7 0 0 219 2390 37 0 [:] [:] \n107 1977646 PartsBin/Widgets MinimizedMorphContainer.json 148688 174 34551 4 1 8 6 1 7 3 579 1061 3229 12 0 [lauritz:3] [2011-11:3] \n108 1977585 PartsBin/Widgets SimpleColorButton.json 177291 59 14071 1 0 0 1 1 1 0 0 8 649 5 0 [:] [:] \n109 1977518 PartsBin/Widgets QuickTable.json 198869 62 11817 0 1 41 11 2 9 0 0 363 3278 31 3 [:] [:] \n110 1977392 PartsBin/Widgets ExtentAdjustingContainer.json 195014 123 21215 3 1 9 11 1 12 0 0 876 10863 55 0 [:] [:] \n111 1972871 PartsBin/Widgets HyperCard.json 182234 3467 910583 106 69 870 5 1 47 85 24352 16753 46041 7 0 [athomschke:72, conradcalmez:5, sstamm:2, undefined:6] [2011-11:26, 2011-12:46, 2012-05:5, 2012-01:2, undefined:6] \n112 1972811 PartsBin/Widgets CodePane.json 82282 56 10572 0 1 49 0 3 0 0 0 0 266 3 0 [:] [:] \n113 1972641 PartsBin/Widgets PrintingWorkspace.json 148791 163 32991 4 2 130 1 1 1 3 579 414 1103 5 0 [lauritz:3] [2011-11:3] \n114 1972611 PartsBin/Widgets LabeledBox.json 148664 28 6667 1 1 5 0 3 0 0 0 0 425 6 0 [:] [:] \n115 1971624 PartsBin/Widgets RGBColorChooser.json 93794 440 85562 6 1 16 0 3 0 0 0 0 1013 1 0 [:] [:] \n116 1971566 PartsBin/Widgets JournalEntry.json 148706 56 14071 2 2 28 0 11 1 0 0 0 782 6 0 [:] [:] \n117 1970983 PartsBin/Widgets DrawingCanvas.json 154360 559 137143 21 8 66 2 4 8 4 583 1920 12630 11 0 [robertkrahn:4] [2012-04:4] \n118 1970914 PartsBin/Widgets HorizontalSplitterMorph.json 195020 67 12475 0 0 0 15 2 12 0 0 507 3825 35 0 [:] [:] \n119 1970884 PartsBin/Widgets NameLabel.json 81738 25 5440 0 1 9 0 2 0 0 0 0 299 5 0 [:] [:] \n120 1970817 PartsBin/Widgets SplitterMorph.json 198521 65 12107 0 0 0 10 3 11 0 0 327 3660 33 0 [:] [:] \n121 1963588 PartsBin/Widgets ObjectEditorScriptPane.json 169707 2143 509166 57 31 98 17 1 0 59 21852 20898 6003 5 0 [lauritz:52, jenslincke:1, robertkrahn:1, conradcalmez:3, undefined:1, tessi:1] [2011-11:31, 2012-03:1, 2012-01:1, 2011-12:14, 2012-02:3, undefined:1, 2011-09:2, 2012-05:4, 2012-06:2] \n122 1963575 PartsBin/Widgets ProgressIndicator.json 148670 11 3647 0 0 0 0 2 0 0 0 0 267 7 0 [:] [:] \n123 1963536 PartsBin/Widgets CloseButton.json 199005 35 6277 1 1 1 1 4 1 0 0 8 766 12 0 [:] [:] \n124 1963523 PartsBin/Widgets ClipMorph.json 148694 11 2645 0 0 0 0 3 0 0 0 0 287 11 0 [:] [:] \n125 1963450 PartsBin/Widgets HorizontalSpacerMorph.json 195028 71 13155 0 0 0 15 2 14 0 0 507 4395 37 0 [:] [:] \n126 1963396 PartsBin/Widgets AdaptZoomButton.json 199002 49 9090 1 1 1 5 5 12 0 0 360 3850 46 0 [:] [:] \n127 1963313 PartsBin/Widgets ProgressBar.json 148741 73 17620 3 2 16 0 8 2 0 0 0 941 5 0 [:] [:] \n128 1963174 PartsBin/Widgets MinimizedMorphContainerBottom.json 198639 132 27280 4 1 8 7 1 8 6 2877 1278 3790 19 0 [sstamm:3, undefined:3] [2012-02:3, undefined:3] \n129 1963095 PartsBin/Widgets SpacerMorph.json 195033 77 16066 0 0 0 16 1 15 0 0 543 4653 32 0 [:] [:] \n130 1962959 PartsBin/Widgets GotoMorph.json 199008 125 21367 3 2 13 13 4 20 1 28 906 11163 56 0 [undefined:1] [2012-12:1] \n131 1962908 PartsBin/Widgets FilterableList.json 199249 46 8522 2 1 0 2 9 4 0 0 119 2132 26 0 [:] [:] \n132 1962906 PartsBin/Widgets TabFolder.json 148811 0 1 0 0 0 0 3 0 0 0 0 0 0 0 \n133 1962861 PartsBin/Widgets ScalingCorner.json 193148 41 7440 0 0 0 3 1 1 0 0 76 768 11 0 [:] [:] \n134 1962821 PartsBin/Widgets VerticalItemScrollBox.json 169959 38 7716 0 0 0 8 1 8 0 0 255 2693 38 0 [:] [:] \n135 1962759 PartsBin/Widgets ResizeCorner.json 148786 58 12465 0 0 0 2 9 1 0 0 40 678 6 0 [:] [:] \n136 2352449 PartsBin/Wiki WikiActivities.json 193811 344 103108 21 12 93 0 7 1 17 6451 2154 13605 15 0 [undefined:9, jenslincke:8] [undefined:9, 2012-11:7, 2012-10:1] \n137 2350276 PartsBin/Wiki WikiLatestChanges.json 183184 1067 513995 37 22 220305 6 2 16 20 9671 7452 31599 8 0 [jenslincke:14, undefined:6] [2012-11:11, 2012-10:3, undefined:6] \n138 2349753 PartsBin/Wiki LinkNavigationReverse.json 182411 182 42883 4 3 245 3 2 3 0 0 342 1575 4 0 [:] [:] \n139 2348006 PartsBin/Wiki MyWikiActivities.json 183017 861 186121 14 7 7555 2 4 8 6 3898 654 5340 3 0 [jenslincke:3, undefined:3] [2012-10:3, undefined:3] \n140 2347581 PartsBin/Wiki LinkNavigationWithDirs.json 165020 147 32978 3 2 196 1 1 2 0 0 16 1325 4 0 [:] [:] \n141 2347160 PartsBin/Wiki JournalNavigation.json 91368 152 29553 3 2 205 0 2 0 0 0 0 836 3 0 [:] [:] \n142 2345976 PartsBin/Wiki WikiChangeLog.json 183177 572 169805 19 12 92 5 3 18 11 4672 3261 18052 13 0 [jenslincke:8, undefined:3] [2012-11:7, 2012-10:1, undefined:3] \n143 2345579 PartsBin/Wiki RelativeLinkNavigation.json 185176 166 32597 6 3 88 4 1 4 3 945 886 6935 24 0 [undefined:3] [undefined:3] \n144 2343715 PartsBin/Wiki WikiActivitiesWithVisualization.json 191870 891 369464 13 9 55717 6 1 1 18 7732 3601 20623 7 0 [jenslincke:18] [2013-01:15, 2012-10:3] \n145 2341913 PartsBin/Wiki PartsBinHistory.json 194621 899 170807 27 12 144 0 10 21 29 9271 3820 40395 26 0 [undefined:11, jenslincke:18] [undefined:9, 2013-03:16, 2012-12:2, 2013-02:1, 1970-01:1] \n146 2330453 PartsBin/Wiki CommitCounter.json 100229 5680 900697 15 9 95 0 10 0 0 0 0 3170 0 0 [:] [:] \n147 2329182 PartsBin/Wiki WhatDidIDo.json 98108 542 108948 11 9 98 0 1 0 0 0 0 2154 2 0 [:] [:] \n148 2328778 PartsBin/Wiki LinkNavigationBig.json 150861 135 29629 3 2 132 1 2 2 0 0 16 1295 4 0 [:] [:] \n149 2328405 PartsBin/Wiki LinkNavigation.json 149884 121 26933 3 2 115 1 1 1 0 0 16 1042 4 0 [:] [:] \n150 2326926 PartsBin/Wiki VersionViewer.json 185157 799 111587 18 8 131 1 3 4 3 945 66 1584 1 0 [undefined:3] [undefined:3] \n151 2325695 PartsBin/Wiki LatestChangesViewer.json 160978 582 132617 21 13 139 1 9 2 23 4772 66 3548 3 0 [undefined:17, markoroeder:5, cschuster:1] [undefined:17, 2011-08:5, 2012-05:1] \n152 TOTAL null null null 80692 18009529 2065 983 522829 831 1143 1682 1773 648977 585224 ","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"279":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"280":{"morph":{"__isSmartRef__":true,"id":160},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"281":{"adjustForNewBounds":true,"resizeWidth":true,"resizeHeight":true},"282":{"onrestore":{"__isSmartRef__":true,"id":283}},"283":{"varMapping":{"__isSmartRef__":true,"id":284},"source":"function onrestore() {\n // hack, is fixedWidth not persisted?\n this.applyStyle({fixedWidth: false})\n}","funcProperties":{"__isSmartRef__":true,"id":289},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"284":{"this":{"__isSmartRef__":true,"id":160},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":285}},"285":{"$super":{"__isSmartRef__":true,"id":286}},"286":{"varMapping":{"__isSmartRef__":true,"id":287},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":288},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"287":{"obj":{"__isSmartRef__":true,"id":160},"name":"onrestore"},"288":{},"289":{"timestamp":{"__isSmartRef__":true,"id":290},"user":"jenslincke","tags":[]},"290":{"isSerializedDate":true,"string":"Thu Apr 18 2013 11:53:11 GMT+0200 (W. Europe Summer Time)"},"291":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":true,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1023.4,555.3)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(0,0,204)","_Padding":"lively.rect(0,0,0,0)"},"292":{"partsSpaceName":"PartsBin/Basic","comment":"A plain simple rectangle","migrationLevel":4,"partName":"Rectangle","changes":[{"__isSmartRef__":true,"id":293},{"__isSmartRef__":true,"id":295},{"__isSmartRef__":true,"id":297},{"__isSmartRef__":true,"id":299},{"__isSmartRef__":true,"id":301},{"__isSmartRef__":true,"id":303},{"__isSmartRef__":true,"id":305},{"__isSmartRef__":true,"id":307},{"__isSmartRef__":true,"id":309},{"__isSmartRef__":true,"id":311},{"__isSmartRef__":true,"id":313},{"__isSmartRef__":true,"id":315},{"__isSmartRef__":true,"id":317},{"__isSmartRef__":true,"id":319},{"__isSmartRef__":true,"id":321}],"lastModifiedDate":{"__isSmartRef__":true,"id":323},"revisionOnLoad":196389,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"293":{"date":{"__isSmartRef__":true,"id":294},"author":"SAPLivelyScreen","message":"no comment","id":"7A44D8CA-6D5F-42A3-A4B4-4D7F51EECA52"},"294":{"isSerializedDate":true,"string":"Tue Jun 18 2013 20:49:27 GMT+0200 (W. Europe Summer Time)"},"295":{"date":{"__isSmartRef__":true,"id":296},"author":"SAPLivelyScreen","message":"no comment","id":"EF145198-0649-41BD-A92E-521D98FEC49D"},"296":{"isSerializedDate":true,"string":"Thu May 30 2013 00:36:50 GMT+0200 (W. Europe Summer Time)"},"297":{"date":{"__isSmartRef__":true,"id":298},"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20"},"298":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:47:05 GMT+0100 (W. Europe Standard Time)"},"299":{"date":{"__isSmartRef__":true,"id":300},"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2"},"300":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:42:31 GMT+0100 (W. Europe Standard Time)"},"301":{"date":{"__isSmartRef__":true,"id":302},"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205"},"302":{"isSerializedDate":true,"string":"Thu Nov 22 2012 10:35:51 GMT+0100 (W. Europe Standard Time)"},"303":{"date":{"__isSmartRef__":true,"id":304},"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8"},"304":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"305":{"date":{"__isSmartRef__":true,"id":306},"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350"},"306":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"307":{"date":{"__isSmartRef__":true,"id":308},"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7"},"308":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"309":{"date":{"__isSmartRef__":true,"id":310},"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B"},"310":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"311":{"date":{"__isSmartRef__":true,"id":312},"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2"},"312":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"313":{"date":{"__isSmartRef__":true,"id":314},"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC"},"314":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"315":{"date":{"__isSmartRef__":true,"id":316},"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23"},"316":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"317":{"date":{"__isSmartRef__":true,"id":318},"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8"},"318":{"isSerializedDate":true,"string":"Wed Jan 23 2013 12:57:18 GMT+0100 (W. Europe Standard Time)"},"319":{"date":{"__isSmartRef__":true,"id":320},"author":"robertkrahn","message":"no comment","id":"67FD74CD-7AE4-4050-ADC7-4DF73804258D"},"320":{"isSerializedDate":true,"string":"Thu May 30 2013 09:18:06 GMT+0200 (W. Europe Summer Time)"},"321":{"date":{"__isSmartRef__":true,"id":322},"author":"robertkrahn","message":"no comment","id":"FBBB9C99-B61C-4D5F-8750-6E2987DF0C9C"},"322":{"isSerializedDate":true,"string":"Fri Jun 21 2013 00:16:24 GMT+0200 (W. Europe Summer Time)"},"323":{"isSerializedDate":true,"string":"Fri Jun 21 2013 00:15:30 GMT+0200 (W. Europe Summer Time)"},"324":{"morph":{"__isSmartRef__":true,"id":159},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"325":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":326}},"326":{"test01IsMorph":{"__isSmartRef__":true,"id":327}},"327":{"varMapping":{"__isSmartRef__":true,"id":328},"source":"function test01IsMorph(aPart) {\n this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":329},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"328":{"this":{"__isSmartRef__":true,"id":325}},"329":{},"330":{"resizeWidth":true,"resizeHeight":true},"331":{"submorphs":[{"__isSmartRef__":true,"id":332}],"scripts":[],"shape":{"__isSmartRef__":true,"id":337},"eventHandler":{"__isSmartRef__":true,"id":338},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"9C4E8E6F-9AAB-4908-BF9B-C86005D27035","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":332},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":339},{"__isSmartRef__":true,"id":341}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button15","partsBinMetaInfo":{"__isSmartRef__":true,"id":343},"pinSpecs":[{"__isSmartRef__":true,"id":359}],"owner":{"__isSmartRef__":true,"id":2},"_Rotation":0,"_Scale":1,"prevScroll":[0,0],"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":360},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(10.0,230.0)","distanceToDragEvent":"lively.pt(40.0,-17.0)"},"332":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":333},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":334}],"eventHandler":{"__isSmartRef__":true,"id":336},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"9D4D353A-4074-4E95-86EC-9CD9FC303974","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":331},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"333":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(60.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"334":{"style":{"__isSmartRef__":true,"id":335},"chunkOwner":{"__isSmartRef__":true,"id":332},"_id":"_14040","storedString":"Save","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"335":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"336":{"morph":{"__isSmartRef__":true,"id":332},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"337":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(60.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"338":{"morph":{"__isSmartRef__":true,"id":331},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"339":{"sourceObj":{"__isSmartRef__":true,"id":331},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":331},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":340},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"340":{"source":{"__isSmartRef__":true,"id":331},"target":{"__isSmartRef__":true,"id":331}},"341":{"sourceObj":{"__isSmartRef__":true,"id":331},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2},"targetMethodName":"saveCurrentTable","varMapping":{"__isSmartRef__":true,"id":342},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"342":{"source":{"__isSmartRef__":true,"id":331},"target":{"__isSmartRef__":true,"id":2}},"343":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":344},{"__isSmartRef__":true,"id":346},{"__isSmartRef__":true,"id":348},{"__isSmartRef__":true,"id":350},{"__isSmartRef__":true,"id":352},{"__isSmartRef__":true,"id":354},{"__isSmartRef__":true,"id":356}],"migrationLevel":7,"lastModifiedDate":{"__isSmartRef__":true,"id":358},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"344":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","date":{"__isSmartRef__":true,"id":345}},"345":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:15:42 GMT+0100 (W. Europe Standard Time)"},"346":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","date":{"__isSmartRef__":true,"id":347}},"347":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:53:16 GMT+0100 (W. Europe Standard Time)"},"348":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","date":{"__isSmartRef__":true,"id":349}},"349":{"isSerializedDate":true,"string":"Wed May 01 2013 05:34:25 GMT+0200 (W. Europe Summer Time)"},"350":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","date":{"__isSmartRef__":true,"id":351}},"351":{"isSerializedDate":true,"string":"Wed May 01 2013 05:35:59 GMT+0200 (W. Europe Summer Time)"},"352":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","date":{"__isSmartRef__":true,"id":353}},"353":{"isSerializedDate":true,"string":"Wed May 01 2013 05:36:30 GMT+0200 (W. Europe Summer Time)"},"354":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","date":{"__isSmartRef__":true,"id":355}},"355":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:22:38 GMT+0200 (W. Europe Summer Time)"},"356":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","date":{"__isSmartRef__":true,"id":357}},"357":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:50 GMT+0200 (W. Europe Summer Time)"},"358":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:29 GMT+0200 (W. Europe Summer Time)"},"359":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"360":{"doAction":{"__isSmartRef__":true,"id":361}},"361":{"varMapping":{"__isSmartRef__":true,"id":362},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":363},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"362":{"this":{"__isSmartRef__":true,"id":331}},"363":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":364}},"364":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"365":{"submorphs":[],"scripts":[],"id":"190EB3F3-F90C-4C77-9A38-1C56873B3B60","shape":{"__isSmartRef__":true,"id":366},"__layered_droppingEnabled__":true,"halosEnabled":true,"itemList":[{"__isSmartRef__":true,"id":367},{"__isSmartRef__":true,"id":369},{"__isSmartRef__":true,"id":371},{"__isSmartRef__":true,"id":373},{"__isSmartRef__":true,"id":375},{"__isSmartRef__":true,"id":377},{"__isSmartRef__":true,"id":379},{"__isSmartRef__":true,"id":381},{"__isSmartRef__":true,"id":383},{"__isSmartRef__":true,"id":385},{"__isSmartRef__":true,"id":387},{"__isSmartRef__":true,"id":389},{"__isSmartRef__":true,"id":391},{"__isSmartRef__":true,"id":393},{"__isSmartRef__":true,"id":395},{"__isSmartRef__":true,"id":397},{"__isSmartRef__":true,"id":399},{"__isSmartRef__":true,"id":401},{"__isSmartRef__":true,"id":403},{"__isSmartRef__":true,"id":405},{"__isSmartRef__":true,"id":407},{"__isSmartRef__":true,"id":409},{"__isSmartRef__":true,"id":411},{"__isSmartRef__":true,"id":413},{"__isSmartRef__":true,"id":415},{"__isSmartRef__":true,"id":417},{"__isSmartRef__":true,"id":419},{"__isSmartRef__":true,"id":421},{"__isSmartRef__":true,"id":423},{"__isSmartRef__":true,"id":425}],"showsHalos":false,"name":"FileList","partsBinMetaInfo":{"__isSmartRef__":true,"id":427},"_ClipMode":"auto","eventHandler":{"__isSmartRef__":true,"id":431},"derivationIds":[2860,"30186701-49A1-49AD-A42F-27F425D92029","ADD09343-51ED-44F6-85F3-257C9A52C897","373E9C7D-54CC-4F0E-9F94-642F76E5A534","FFAB9C55-4157-4267-BDBD-662A3858F06D","5B14D14F-F3DA-4B55-A43F-B53A604AC336"],"isBeingDragged":false,"changeTriggered":true,"grabbingEnabled":false,"_FontSize":10,"moved":true,"layout":{"__isSmartRef__":true,"id":432},"prevScroll":[0,361.21209716796875],"selectedLineNo":19,"owner":{"__isSmartRef__":true,"id":2},"_Rotation":0,"_Scale":1,"selection":{"__isSmartRef__":true,"id":406},"__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(7.1,55.4)","distanceToDragEvent":"lively.pt(94.3,-18.8)"},"366":{"_BorderWidth":0,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(148.8,165.6)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(243,243,243)","_Padding":"lively.rect(0,0,0,0)"},"367":{"string":"130930_ListRootObjects.json","value":{"__isSmartRef__":true,"id":368},"isListItem":true},"368":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/130930_ListRootObjects.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"369":{"string":"131002_ListRootObjectsDetails.json","value":{"__isSmartRef__":true,"id":370},"isListItem":true},"370":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/131002_ListRootObjectsDetails.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"371":{"string":"140416_Objects.json","value":{"__isSmartRef__":true,"id":372},"isListItem":true},"372":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/140416_Objects.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"373":{"string":"AllScriptsThatCreateLayers.json","value":{"__isSmartRef__":true,"id":374},"isListItem":true},"374":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/AllScriptsThatCreateLayers.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"375":{"string":"AllScriptsThatGlobalScopeLayers.json","value":{"__isSmartRef__":true,"id":376},"isListItem":true},"376":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/AllScriptsThatGlobalScopeLayers.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"377":{"string":"AllScriptsThatStructuralLayers.json","value":{"__isSmartRef__":true,"id":378},"isListItem":true},"378":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/AllScriptsThatStructuralLayers.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"379":{"string":"AllScriptsThatWithLayers.json","value":{"__isSmartRef__":true,"id":380},"isListItem":true},"380":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/AllScriptsThatWithLayers.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"381":{"string":"CountWorlds.json","value":{"__isSmartRef__":true,"id":382},"isListItem":true},"382":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/CountWorlds.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"383":{"string":"CountWorldsErrors.json","value":{"__isSmartRef__":true,"id":384},"isListItem":true},"384":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/CountWorldsErrors.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"385":{"string":"Empty.json","value":{"__isSmartRef__":true,"id":386},"isListItem":true},"386":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/Empty.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"387":{"string":"ExploreReferences_TestRunnerInIssues.json","value":{"__isSmartRef__":true,"id":388},"isListItem":true},"388":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ExploreReferences_TestRunnerInIssues.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"389":{"string":"ExploreReferences_TestRunnerIssue.json","value":{"__isSmartRef__":true,"id":390},"isListItem":true},"390":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ExploreReferences_TestRunnerIssue.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"391":{"string":"ExploreReferences_TestRunnerIssueSize.json","value":{"__isSmartRef__":true,"id":392},"isListItem":true},"392":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ExploreReferences_TestRunnerIssueSize.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"393":{"string":"ExploreReferences_TestRunner_01.json","value":{"__isSmartRef__":true,"id":394},"isListItem":true},"394":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ExploreReferences_TestRunner_01.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"395":{"string":"FindTextMorphs.json","value":{"__isSmartRef__":true,"id":396},"isListItem":true},"396":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/FindTextMorphs.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"397":{"string":"FindTextMorphs_ContextJS_WithLayers.json","value":{"__isSmartRef__":true,"id":398},"isListItem":true},"398":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/FindTextMorphs_ContextJS_WithLayers.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"399":{"string":"ListPath.json","value":{"__isSmartRef__":true,"id":400},"isListItem":true},"400":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ListPath.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"401":{"string":"ListRootObjects.json","value":{"__isSmartRef__":true,"id":402},"isListItem":true},"402":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ListRootObjects.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"403":{"string":"ListRootObjectsDetails.json","value":{"__isSmartRef__":true,"id":404},"isListItem":true},"404":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ListRootObjectsDetails.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"405":{"string":"ListsParts.json","value":{"__isSmartRef__":true,"id":406},"isListItem":true},"406":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ListsParts.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"407":{"string":"ListsPartsJens.json","value":{"__isSmartRef__":true,"id":408},"isListItem":true},"408":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ListsPartsJens.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"409":{"string":"ListsPartsTools.json","value":{"__isSmartRef__":true,"id":410},"isListItem":true},"410":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ListsPartsTools.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"411":{"string":"ListsParts_Basic.json","value":{"__isSmartRef__":true,"id":412},"isListItem":true},"412":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ListsParts_Basic.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"413":{"string":"MessageLog.json","value":{"__isSmartRef__":true,"id":414},"isListItem":true},"414":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/MessageLog.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"415":{"string":"MessageLogLoadURL.json","value":{"__isSmartRef__":true,"id":416},"isListItem":true},"416":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/MessageLogLoadURL.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"417":{"string":"PrintObjectsDetails2.json","value":{"__isSmartRef__":true,"id":418},"isListItem":true},"418":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/PrintObjectsDetails2.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"419":{"string":"PrintObjectsDetailsWithScripts.json","value":{"__isSmartRef__":true,"id":420},"isListItem":true},"420":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/PrintObjectsDetailsWithScripts.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"421":{"string":"ShowDerivationHistory.json","value":{"__isSmartRef__":true,"id":422},"isListItem":true},"422":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ShowDerivationHistory.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"423":{"string":"ShowObject.json","value":{"__isSmartRef__":true,"id":424},"isListItem":true},"424":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ShowObject.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"425":{"string":"ToolsInWebwerkstatt.json","value":{"__isSmartRef__":true,"id":426},"isListItem":true},"426":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/ToolsInWebwerkstatt.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"427":{"partsSpaceName":"PartsBin/Inputs","migrationLevel":4,"partName":"List","comment":"a list morph","changes":[{"__isSmartRef__":true,"id":428}],"lastModifiedDate":{"__isSmartRef__":true,"id":430},"revisionOnLoad":149013,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"428":{"date":{"__isSmartRef__":true,"id":429},"author":"undefined","message":"Click on scrollbar does not grab list","id":"16AABF98-2E7D-4875-9E66-CF86EB74AF93"},"429":{"isSerializedDate":true,"string":"Thu Mar 29 2012 14:39:24 GMT+0200 (W. Europe Summer Time)"},"430":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"431":{"morph":{"__isSmartRef__":true,"id":365},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"432":{"resizeHeight":false},"433":{"submorphs":[{"__isSmartRef__":true,"id":434}],"scripts":[],"shape":{"__isSmartRef__":true,"id":439},"eventHandler":{"__isSmartRef__":true,"id":440},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"ACA43907-1C4F-42A4-B5EC-F25C37DBD5DA","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":434},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":441},{"__isSmartRef__":true,"id":443}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button16","partsBinMetaInfo":{"__isSmartRef__":true,"id":343},"pinSpecs":[{"__isSmartRef__":true,"id":445}],"owner":{"__isSmartRef__":true,"id":2},"_Rotation":0,"_Scale":1,"prevScroll":[0,0],"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":446},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(80.0,230.0)","distanceToDragEvent":"lively.pt(64.0,-13.0)"},"434":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":435},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":436}],"eventHandler":{"__isSmartRef__":true,"id":438},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"08ED3352-5E12-405F-B2C1-A385102C1E53","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":433},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"435":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(70.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"436":{"style":{"__isSmartRef__":true,"id":437},"chunkOwner":{"__isSmartRef__":true,"id":434},"_id":"_23377","storedString":"Load","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"437":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"438":{"morph":{"__isSmartRef__":true,"id":434},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"439":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(70.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"440":{"morph":{"__isSmartRef__":true,"id":433},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"441":{"sourceObj":{"__isSmartRef__":true,"id":433},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":433},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":442},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"442":{"source":{"__isSmartRef__":true,"id":433},"target":{"__isSmartRef__":true,"id":433}},"443":{"sourceObj":{"__isSmartRef__":true,"id":433},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2},"targetMethodName":"loadTable","varMapping":{"__isSmartRef__":true,"id":444},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"444":{"source":{"__isSmartRef__":true,"id":433},"target":{"__isSmartRef__":true,"id":2}},"445":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"446":{"doAction":{"__isSmartRef__":true,"id":447}},"447":{"varMapping":{"__isSmartRef__":true,"id":448},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":449},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"448":{"this":{"__isSmartRef__":true,"id":433}},"449":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":450}},"450":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"451":{"submorphs":[],"scripts":[],"id":"C4993113-C608-4881-9028-FD42D28C5241","shape":{"__isSmartRef__":true,"id":452},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":11,"name":"HistogramBucketSizeLabel","partsBinMetaInfo":{"__isSmartRef__":true,"id":453},"textChunks":[{"__isSmartRef__":true,"id":469}],"charsReplaced":"bucketsize","lastFindLoc":13,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":471},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","8B949AFA-406B-4F40-A4E6-1D122FE2C366"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2},"_Rotation":0,"_Scale":1,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(6.2,306.9)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(54.4,-11.0)"},"452":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(73.7,21.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"453":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":454},{"__isSmartRef__":true,"id":456},{"__isSmartRef__":true,"id":458},{"__isSmartRef__":true,"id":460},{"__isSmartRef__":true,"id":462},{"__isSmartRef__":true,"id":464},{"__isSmartRef__":true,"id":466}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":468},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"454":{"date":{"__isSmartRef__":true,"id":455},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"455":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"456":{"date":{"__isSmartRef__":true,"id":457},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"457":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"458":{"date":{"__isSmartRef__":true,"id":459},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"459":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"460":{"date":{"__isSmartRef__":true,"id":461},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"461":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"462":{"date":{"__isSmartRef__":true,"id":463},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"463":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"464":{"date":{"__isSmartRef__":true,"id":465},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"465":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"466":{"date":{"__isSmartRef__":true,"id":467},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"467":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"468":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"469":{"style":{"__isSmartRef__":true,"id":470},"morph":{"__isSmartRef__":true,"id":451},"chunkOwner":{"__isSmartRef__":true,"id":451},"storedString":"bucketsize","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"470":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"471":{"morph":{"__isSmartRef__":true,"id":451},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"472":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":473},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":474}],"eventHandler":{"__isSmartRef__":true,"id":476},"_ClipMode":"hidden","derivationIds":[],"id":"22754BA7-CF08-4408-85F5-5191BA005533","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":true,"_HandStyle":null,"allowInput":true,"_FontFamily":"Monaco,monospace","_FontSize":10,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2},"layout":{"__isSmartRef__":true,"id":477},"syntaxHighlightingWhileTyping":true,"attributeConnections":[{"__isSmartRef__":true,"id":478},{"__isSmartRef__":true,"id":480},{"__isSmartRef__":true,"id":482}],"doNotSerialize":["$$textString","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","$$savedTextString","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors"],"doNotCopyProperties":["$$textString","$$savedTextString"],"accessibleInInactiveWindow":true,"_lastSyntaxHighlightTime":15,"showsHalos":false,"_Rotation":0,"_Scale":1,"isBeingDragged":false,"charsReplaced":"name","lastFindLoc":10,"name":"FilterRowFunction","draggingEnabled":false,"isInputLine":true,"prevScroll":[0,0],"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"savedTextString":"!this.id.match(\"users/erp\")","previousSelection":[6,10],"__serializedExpressions__":["_TextColor","_Position","distanceToDragEvent"],"textString":"undefined","__serializedLivelyClosures__":{"__isSmartRef__":true,"id":484},"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(333.1,9.9)","distanceToDragEvent":"lively.pt(534.6,-13.9)"},"473":{"_BorderWidth":1,"_Fill":null,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(802.4,31.1)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(95,94,95)"},"474":{"style":{"__isSmartRef__":true,"id":475},"chunkOwner":{"__isSmartRef__":true,"id":472},"_id":"_1361","storedString":"undefined","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"475":{"__serializedExpressions__":["color"],"backgroundColor":null,"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore","color":"Color.rgb(128,0,128)"},"476":{"morph":{"__isSmartRef__":true,"id":472},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"477":{"resizeWidth":false,"resizeHeight":false},"478":{"sourceObj":{"__isSmartRef__":true,"id":472},"sourceAttrName":"textString","targetObj":{"__isSmartRef__":true,"id":472},"targetMethodName":"highlightSyntaxDebounced","varMapping":{"__isSmartRef__":true,"id":479},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"479":{"source":{"__isSmartRef__":true,"id":472},"target":{"__isSmartRef__":true,"id":472}},"480":{"sourceObj":{"__isSmartRef__":true,"id":472},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":2},"targetMethodName":"saveFilterSource","varMapping":{"__isSmartRef__":true,"id":481},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"481":{"source":{"__isSmartRef__":true,"id":472},"target":{"__isSmartRef__":true,"id":2}},"482":{"sourceObj":{"__isSmartRef__":true,"id":472},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":2},"targetMethodName":"updateCurrentTable","varMapping":{"__isSmartRef__":true,"id":483},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"483":{"source":{"__isSmartRef__":true,"id":472},"target":{"__isSmartRef__":true,"id":2}},"484":{"getDoitContext":{"__isSmartRef__":true,"id":485}},"485":{"varMapping":{"__isSmartRef__":true,"id":486},"source":"function getDoitContext() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":491},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"486":{"this":{"__isSmartRef__":true,"id":472},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":487}},"487":{"$super":{"__isSmartRef__":true,"id":488}},"488":{"varMapping":{"__isSmartRef__":true,"id":489},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":490},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"489":{"obj":{"__isSmartRef__":true,"id":472},"name":"getDoitContext"},"490":{},"491":{"timestamp":{"__isSmartRef__":true,"id":492},"user":"jenslincke","tags":[]},"492":{"isSerializedDate":true,"string":"Sun Sep 15 2013 16:38:33 GMT+0200 (W. Europe Summer Time)"},"493":{"submorphs":[],"scripts":[],"id":"023383DA-DA8E-4335-9B60-0C203CDAE2FC","shape":{"__isSmartRef__":true,"id":494},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":13,"name":"TableName","partsBinMetaInfo":{"__isSmartRef__":true,"id":495},"textChunks":[{"__isSmartRef__":true,"id":511}],"charsReplaced":"Color","lastFindLoc":26,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":513},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2},"_Rotation":0,"_Scale":1,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"previousSelection":[17,17],"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(10.9,24.8)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(280.8,-22.8)"},"494":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(199.7,24.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"495":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":496},{"__isSmartRef__":true,"id":498},{"__isSmartRef__":true,"id":500},{"__isSmartRef__":true,"id":502},{"__isSmartRef__":true,"id":504},{"__isSmartRef__":true,"id":506},{"__isSmartRef__":true,"id":508}],"lastModifiedDate":{"__isSmartRef__":true,"id":510},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"496":{"date":{"__isSmartRef__":true,"id":497},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"497":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"498":{"date":{"__isSmartRef__":true,"id":499},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"499":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"500":{"date":{"__isSmartRef__":true,"id":501},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"501":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"502":{"date":{"__isSmartRef__":true,"id":503},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"503":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"504":{"date":{"__isSmartRef__":true,"id":505},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"505":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"506":{"date":{"__isSmartRef__":true,"id":507},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"507":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"508":{"date":{"__isSmartRef__":true,"id":509},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"509":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"510":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"511":{"style":{"__isSmartRef__":true,"id":512},"chunkOwner":{"__isSmartRef__":true,"id":493},"_id":"_1362","storedString":"ListsPartsTools","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"512":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"513":{"morph":{"__isSmartRef__":true,"id":493},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"514":{"submorphs":[{"__isSmartRef__":true,"id":515}],"scripts":[],"shape":{"__isSmartRef__":true,"id":520},"eventHandler":{"__isSmartRef__":true,"id":521},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"F1BE7700-37B2-4634-A70D-347283EF36EB","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":515},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":522},{"__isSmartRef__":true,"id":524}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button18","partsBinMetaInfo":{"__isSmartRef__":true,"id":526},"pinSpecs":[{"__isSmartRef__":true,"id":542}],"owner":{"__isSmartRef__":true,"id":2},"_Rotation":0,"_Scale":1,"prevScroll":[0,0],"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":543},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(160.0,230.0)","distanceToDragEvent":"lively.pt(37.0,-14.0)"},"515":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":516},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":517}],"eventHandler":{"__isSmartRef__":true,"id":519},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"5C0BB463-C6FE-43D2-9594-D6327B0C44C9","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":514},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"516":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(60.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"517":{"style":{"__isSmartRef__":true,"id":518},"chunkOwner":{"__isSmartRef__":true,"id":515},"_id":"_58598","storedString":"Delete","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"518":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"519":{"morph":{"__isSmartRef__":true,"id":515},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"520":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(60.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"521":{"morph":{"__isSmartRef__":true,"id":514},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"522":{"sourceObj":{"__isSmartRef__":true,"id":514},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":514},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":523},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"523":{"source":{"__isSmartRef__":true,"id":514},"target":{"__isSmartRef__":true,"id":514}},"524":{"sourceObj":{"__isSmartRef__":true,"id":514},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2},"targetMethodName":"deleteCurrentTable","varMapping":{"__isSmartRef__":true,"id":525},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"525":{"source":{"__isSmartRef__":true,"id":514},"target":{"__isSmartRef__":true,"id":2}},"526":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":527},{"__isSmartRef__":true,"id":529},{"__isSmartRef__":true,"id":531},{"__isSmartRef__":true,"id":533},{"__isSmartRef__":true,"id":535},{"__isSmartRef__":true,"id":537},{"__isSmartRef__":true,"id":539}],"migrationLevel":7,"lastModifiedDate":{"__isSmartRef__":true,"id":541},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"527":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","date":{"__isSmartRef__":true,"id":528}},"528":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:15:42 GMT+0100 (W. Europe Standard Time)"},"529":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","date":{"__isSmartRef__":true,"id":530}},"530":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:53:16 GMT+0100 (W. Europe Standard Time)"},"531":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","date":{"__isSmartRef__":true,"id":532}},"532":{"isSerializedDate":true,"string":"Wed May 01 2013 05:34:25 GMT+0200 (W. Europe Summer Time)"},"533":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","date":{"__isSmartRef__":true,"id":534}},"534":{"isSerializedDate":true,"string":"Wed May 01 2013 05:35:59 GMT+0200 (W. Europe Summer Time)"},"535":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","date":{"__isSmartRef__":true,"id":536}},"536":{"isSerializedDate":true,"string":"Wed May 01 2013 05:36:30 GMT+0200 (W. Europe Summer Time)"},"537":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","date":{"__isSmartRef__":true,"id":538}},"538":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:22:38 GMT+0200 (W. Europe Summer Time)"},"539":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","date":{"__isSmartRef__":true,"id":540}},"540":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:50 GMT+0200 (W. Europe Summer Time)"},"541":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:29 GMT+0200 (W. Europe Summer Time)"},"542":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"543":{"doAction":{"__isSmartRef__":true,"id":544}},"544":{"varMapping":{"__isSmartRef__":true,"id":545},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":546},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"545":{"this":{"__isSmartRef__":true,"id":514}},"546":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":547}},"547":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"548":{"submorphs":[{"__isSmartRef__":true,"id":549}],"scripts":[],"shape":{"__isSmartRef__":true,"id":554},"eventHandler":{"__isSmartRef__":true,"id":555},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"67FAAC6E-D591-40B3-B422-9DF623F6BFD5","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":549},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":556},{"__isSmartRef__":true,"id":558}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button19","partsBinMetaInfo":{"__isSmartRef__":true,"id":526},"pinSpecs":[{"__isSmartRef__":true,"id":560}],"owner":{"__isSmartRef__":true,"id":2},"_Rotation":0,"_Scale":1,"prevScroll":[0,0],"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":561},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(280.0,9.8)","distanceToDragEvent":"lively.pt(29.7,-15.8)"},"549":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":550},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":551}],"eventHandler":{"__isSmartRef__":true,"id":553},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"4E8A35DF-D006-44FE-A44D-9B4BF6BCE994","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":548},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"550":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(30.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"551":{"style":{"__isSmartRef__":true,"id":552},"chunkOwner":{"__isSmartRef__":true,"id":549},"_id":"_69208","storedString":"X","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"552":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"553":{"morph":{"__isSmartRef__":true,"id":549},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"554":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(30.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"555":{"morph":{"__isSmartRef__":true,"id":548},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"556":{"sourceObj":{"__isSmartRef__":true,"id":548},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":548},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":557},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"557":{"source":{"__isSmartRef__":true,"id":548},"target":{"__isSmartRef__":true,"id":548}},"558":{"sourceObj":{"__isSmartRef__":true,"id":548},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2},"targetMethodName":"removeSelectedTable","varMapping":{"__isSmartRef__":true,"id":559},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"559":{"source":{"__isSmartRef__":true,"id":548},"target":{"__isSmartRef__":true,"id":2}},"560":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"561":{"doAction":{"__isSmartRef__":true,"id":562}},"562":{"varMapping":{"__isSmartRef__":true,"id":563},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":564},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"563":{"this":{"__isSmartRef__":true,"id":548}},"564":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":565}},"565":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"566":{"submorphs":[],"scripts":[],"id":"8B949AFA-406B-4F40-A4E6-1D122FE2C366","shape":{"__isSmartRef__":true,"id":567},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":12,"name":"HistogramBucketSize","partsBinMetaInfo":{"__isSmartRef__":true,"id":568},"textChunks":[{"__isSmartRef__":true,"id":584}],"charsReplaced":"10","lastFindLoc":2,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":586},"_ClipMode":"hidden","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2},"attributeConnections":[{"__isSmartRef__":true,"id":587}],"doNotSerialize":["$$savedTextString"],"doNotCopyProperties":["$$savedTextString"],"isInputLine":true,"_WordBreak":"break-all","_InputAllowed":true,"_HandStyle":null,"allowInput":true,"_Rotation":0,"_Scale":1,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"savedTextString":"20","priorSelectionRange":[0,2],"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(90.1,308.0)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(49.4,-14.1)"},"567":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(73.0,23.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"568":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":569},{"__isSmartRef__":true,"id":571},{"__isSmartRef__":true,"id":573},{"__isSmartRef__":true,"id":575},{"__isSmartRef__":true,"id":577},{"__isSmartRef__":true,"id":579},{"__isSmartRef__":true,"id":581}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":583},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"569":{"date":{"__isSmartRef__":true,"id":570},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"570":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"571":{"date":{"__isSmartRef__":true,"id":572},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"572":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"573":{"date":{"__isSmartRef__":true,"id":574},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"574":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"575":{"date":{"__isSmartRef__":true,"id":576},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"576":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"577":{"date":{"__isSmartRef__":true,"id":578},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"578":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"579":{"date":{"__isSmartRef__":true,"id":580},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"580":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"581":{"date":{"__isSmartRef__":true,"id":582},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"582":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"583":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"584":{"style":{"__isSmartRef__":true,"id":585},"chunkOwner":{"__isSmartRef__":true,"id":566},"_id":"_9539","storedString":"20","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"585":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"586":{"morph":{"__isSmartRef__":true,"id":566},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"587":{"sourceObj":{"__isSmartRef__":true,"id":566},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":1},"targetMethodName":"updateCurrentHistgram","varMapping":{"__isSmartRef__":true,"id":588},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"588":{"source":{"__isSmartRef__":true,"id":566},"target":{"__isSmartRef__":true,"id":1}},"589":{"submorphs":[],"scripts":[],"id":"88307755-2182-4CAB-8C1F-661123CCC159","shape":{"__isSmartRef__":true,"id":590},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":12,"name":"Text15","partsBinMetaInfo":{"__isSmartRef__":true,"id":591},"textChunks":[{"__isSmartRef__":true,"id":607}],"charsReplaced":"Table","lastFindLoc":5,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":609},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","AF3DDCDC-849D-4EF9-B0E0-A465A3D25EBB"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"previousSelection":[5,5],"isBeingDragged":false,"moved":true,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"owner":{"__isSmartRef__":true,"id":2},"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(7.1,3.2)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(102.9,-17.5)"},"590":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(148.2,23.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"591":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":592},{"__isSmartRef__":true,"id":594},{"__isSmartRef__":true,"id":596},{"__isSmartRef__":true,"id":598},{"__isSmartRef__":true,"id":600},{"__isSmartRef__":true,"id":602},{"__isSmartRef__":true,"id":604}],"lastModifiedDate":{"__isSmartRef__":true,"id":606},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"592":{"date":{"__isSmartRef__":true,"id":593},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"593":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"594":{"date":{"__isSmartRef__":true,"id":595},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"595":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"596":{"date":{"__isSmartRef__":true,"id":597},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"597":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"598":{"date":{"__isSmartRef__":true,"id":599},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"599":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"600":{"date":{"__isSmartRef__":true,"id":601},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"601":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"602":{"date":{"__isSmartRef__":true,"id":603},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"603":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"604":{"date":{"__isSmartRef__":true,"id":605},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"605":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"606":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"607":{"style":{"__isSmartRef__":true,"id":608},"morph":{"__isSmartRef__":true,"id":589},"chunkOwner":{"__isSmartRef__":true,"id":589},"storedString":"Analysis","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"608":{"fontWeight":"bold","__serializedExpressions__":["color"],"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore","color":"Color.rgb(0,79,152)"},"609":{"morph":{"__isSmartRef__":true,"id":589},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"610":{"submorphs":[],"scripts":[],"id":"1556617E-B7A4-4D8A-B8B6-564CD443F16E","shape":{"__isSmartRef__":true,"id":611},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":12,"name":"GroupColumns","partsBinMetaInfo":{"__isSmartRef__":true,"id":612},"textChunks":[{"__isSmartRef__":true,"id":628}],"charsReplaced":"","lastFindLoc":16,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":630},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2},"_Rotation":0,"_Scale":1,"_Align":"right","previousSelection":[2,2],"savedTextString":"MetaInfoOverhead","__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(175.5,264.9)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(86.9,-18.0)"},"611":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(128.7,23.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"612":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":613},{"__isSmartRef__":true,"id":615},{"__isSmartRef__":true,"id":617},{"__isSmartRef__":true,"id":619},{"__isSmartRef__":true,"id":621},{"__isSmartRef__":true,"id":623},{"__isSmartRef__":true,"id":625}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":627},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"613":{"date":{"__isSmartRef__":true,"id":614},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"614":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"615":{"date":{"__isSmartRef__":true,"id":616},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"616":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"617":{"date":{"__isSmartRef__":true,"id":618},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"618":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"619":{"date":{"__isSmartRef__":true,"id":620},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"620":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"621":{"date":{"__isSmartRef__":true,"id":622},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"622":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"623":{"date":{"__isSmartRef__":true,"id":624},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"624":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"625":{"date":{"__isSmartRef__":true,"id":626},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"626":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"627":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"628":{"style":{"__isSmartRef__":true,"id":629},"chunkOwner":{"__isSmartRef__":true,"id":610},"_id":"_1447","storedString":"undefined","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"629":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"630":{"morph":{"__isSmartRef__":true,"id":610},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"631":{"submorphs":[],"scripts":[],"id":"83B983EB-088C-46F2-9B97-201F9EEFF364","shape":{"__isSmartRef__":true,"id":632},"__layered_droppingEnabled__":true,"halosEnabled":true,"_ClipMode":"auto","eventHandler":{"__isSmartRef__":true,"id":633},"itemList":["Strings","Latex","Tabs"],"selectOnMove":false,"showsHalos":false,"name":"PrintMode","partsBinMetaInfo":{"__isSmartRef__":true,"id":634},"derivationIds":[6545,"A335DD01-8DCB-4044-A950-96FB15D26AEE","2426314B-1C96-411E-9248-D62539507DBA"],"moved":true,"changeTriggered":false,"selectedLineNo":0,"owner":{"__isSmartRef__":true,"id":2},"_Rotation":0,"_Scale":1,"attributeConnections":[{"__isSmartRef__":true,"id":636}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"layout":{"__isSmartRef__":true,"id":638},"prevScroll":[0,0],"selection":"Strings","__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.DropDownList","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(1248.1,8.1)","distanceToDragEvent":"lively.pt(75.2,-19.1)"},"632":{"_BorderWidth":0,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["_Position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(107.0,25.0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(243,243,243)","_Padding":"lively.rect(0,0,0,0)"},"633":{"morph":{"__isSmartRef__":true,"id":631},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"634":{"requiredModules":[],"migrationLevel":2,"partsSpaceName":"PartsBin/Inputs/","comment":"\"Native\" drop down list","partName":"DropDownList","lastModifiedDate":{"__isSmartRef__":true,"id":635},"revisionOnLoad":206034,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"635":{"isSerializedDate":true,"string":"Sat Feb 15 2014 05:31:08 GMT+0100 (W. Europe Standard Time)"},"636":{"sourceObj":{"__isSmartRef__":true,"id":631},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":2},"targetMethodName":"updateCurrentTable","varMapping":{"__isSmartRef__":true,"id":637},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"637":{"source":{"__isSmartRef__":true,"id":631},"target":{"__isSmartRef__":true,"id":2}},"638":{"moveHorizontal":true},"639":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1359.2,613.0)","_BorderColor":"Color.rgb(164,164,164)","_Fill":"Color.rgb(253,253,253)","_Padding":"lively.rect(0,0,0,0)"},"640":{"partsSpaceName":"PartsBin/Basic","comment":"a morph that can be used (morph menu) to extract submorphs of other morphs ","migrationLevel":4,"partName":"SiblingExtractor","changes":[{"__isSmartRef__":true,"id":641},{"__isSmartRef__":true,"id":643},{"__isSmartRef__":true,"id":645},{"__isSmartRef__":true,"id":647},{"__isSmartRef__":true,"id":649},{"__isSmartRef__":true,"id":651},{"__isSmartRef__":true,"id":653},{"__isSmartRef__":true,"id":655},{"__isSmartRef__":true,"id":657},{"__isSmartRef__":true,"id":659},{"__isSmartRef__":true,"id":661},{"__isSmartRef__":true,"id":663},{"__isSmartRef__":true,"id":665},{"__isSmartRef__":true,"id":667},{"__isSmartRef__":true,"id":669},{"__isSmartRef__":true,"id":671}],"lastModifiedDate":{"__isSmartRef__":true,"id":673},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"641":{"date":{"__isSmartRef__":true,"id":642},"author":"SAPLivelyScreen","message":"no comment","id":"7A44D8CA-6D5F-42A3-A4B4-4D7F51EECA52"},"642":{"isSerializedDate":true,"string":"Tue Jun 18 2013 20:49:27 GMT+0200 (W. Europe Summer Time)"},"643":{"date":{"__isSmartRef__":true,"id":644},"author":"SAPLivelyScreen","message":"no comment","id":"EF145198-0649-41BD-A92E-521D98FEC49D"},"644":{"isSerializedDate":true,"string":"Thu May 30 2013 00:36:50 GMT+0200 (W. Europe Summer Time)"},"645":{"date":{"__isSmartRef__":true,"id":646},"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20"},"646":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:47:05 GMT+0100 (W. Europe Standard Time)"},"647":{"date":{"__isSmartRef__":true,"id":648},"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2"},"648":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:42:31 GMT+0100 (W. Europe Standard Time)"},"649":{"date":{"__isSmartRef__":true,"id":650},"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205"},"650":{"isSerializedDate":true,"string":"Thu Nov 22 2012 10:35:51 GMT+0100 (W. Europe Standard Time)"},"651":{"date":{"__isSmartRef__":true,"id":652},"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8"},"652":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"653":{"date":{"__isSmartRef__":true,"id":654},"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350"},"654":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"655":{"date":{"__isSmartRef__":true,"id":656},"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7"},"656":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"657":{"date":{"__isSmartRef__":true,"id":658},"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B"},"658":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"659":{"date":{"__isSmartRef__":true,"id":660},"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2"},"660":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"661":{"date":{"__isSmartRef__":true,"id":662},"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC"},"662":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"663":{"date":{"__isSmartRef__":true,"id":664},"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23"},"664":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"665":{"date":{"__isSmartRef__":true,"id":666},"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8"},"666":{"isSerializedDate":true,"string":"Wed Jan 23 2013 12:57:18 GMT+0100 (W. Europe Standard Time)"},"667":{"date":{"__isSmartRef__":true,"id":668},"author":"robertkrahn","message":"no comment","id":"67FD74CD-7AE4-4050-ADC7-4DF73804258D"},"668":{"isSerializedDate":true,"string":"Thu May 30 2013 09:18:06 GMT+0200 (W. Europe Summer Time)"},"669":{"date":{"__isSmartRef__":true,"id":670},"author":"robertkrahn","message":"no comment","id":"FBBB9C99-B61C-4D5F-8750-6E2987DF0C9C"},"670":{"isSerializedDate":true,"string":"Fri Jun 21 2013 00:16:24 GMT+0200 (W. Europe Summer Time)"},"671":{"date":{"__isSmartRef__":true,"id":672},"author":"jenslincke","message":"no comment","id":"FD28DE79-6DB3-46A6-9304-3276DA66C449"},"672":{"isSerializedDate":true,"string":"Thu Aug 15 2013 12:00:23 GMT+0200 (W. Europe Summer Time)"},"673":{"isSerializedDate":true,"string":"Fri Jun 21 2013 00:15:30 GMT+0200 (W. Europe Summer Time)"},"674":{"morph":{"__isSmartRef__":true,"id":2},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"675":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":676}},"676":{"test01IsMorph":{"__isSmartRef__":true,"id":677}},"677":{"varMapping":{"__isSmartRef__":true,"id":678},"source":"function test01IsMorph(aPart) {\n this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":679},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"678":{"this":{"__isSmartRef__":true,"id":675}},"679":{},"680":{"adjustForNewBounds":true,"resizeWidth":true},"681":{"name":"ListsPartsTools","date":1407402340855,"columns":["id","path","name","rev","Objects","Size","Submorphs","TextMorphs","TextSize","DerivationIds","Revisions","Changes","Scripts","ScriptsSize","DerivationIdSum","PartsBinMetaInfoSum","MetaInfoOverhead","ErrorNodes","ScriptAuthors","ScriptTimestamps"],"data":[[1424598,"PartsBin/Basic","Triangle.json","148697",27,5156,0,0,0,0,3,0,0,0,0,368,7,0,"[:]","[:]"],[1424525,"PartsBin/Basic","TransparentRectangle.json","196077",71,11639,1,0,0,10,1,12,0,0,690,7309,69,0,"[:]","[:]"],[1424497,"PartsBin/Basic","Text.json","193597",26,4770,0,1,9,4,12,7,0,0,111,2677,58,0,"[:]","[:]"],[1424443,"PartsBin/Basic","Star.json","148691",52,10454,0,0,0,0,7,1,0,0,0,717,7,0,"[:]","[:]"],[1424414,"PartsBin/Basic","Rectangle.json","198774",27,6714,0,0,0,11,23,16,0,0,363,4570,73,0,"[:]","[:]"],[1424237,"PartsBin/Basic","PrimitiveShapes.json","81428",174,34111,6,1,4,0,3,0,3,440,0,1702,5,0,"[undefined:3]","[undefined:3]"],[1424099,"PartsBin/Basic","Pen.json","195197",135,25124,0,0,0,2,2,2,0,0,39,1345,6,0,"[:]","[:]"],[1424026,"PartsBin/Basic","Notebook.json","165893",71,14961,1,1,8,7,1,10,0,0,330,5153,37,0,"[:]","[:]"],[1423995,"PartsBin/Basic","Marker.json","148673",29,4939,0,0,0,0,3,0,0,0,0,301,6,0,"[:]","[:]"],[1421743,"PartsBin/Basic","LineWithArrows.json","148809",101,22575,3,0,0,0,5,1,0,0,0,850,4,0,"[:]","[:]"],[1421687,"PartsBin/Basic","LineWithArrowOrange.json","148754",54,11253,1,0,0,0,1,3,0,0,0,1142,10,0,"[:]","[:]"],[1421640,"PartsBin/Basic","LineWithArrow.json","148733",45,9921,1,0,0,0,6,2,0,0,0,935,9,0,"[:]","[:]"],[1421618,"PartsBin/Basic","Line.json","148769",20,4396,0,0,0,0,5,0,0,0,0,281,6,0,"[:]","[:]"],[1421607,"PartsBin/Basic","Image.json","148804",9,2438,0,0,0,0,5,0,0,0,0,254,10,0,"[:]","[:]"],[1421595,"PartsBin/Basic","Ellipse.json","196938",10,2536,0,0,0,3,16,3,0,0,75,1250,52,0,"[:]","[:]"],[1421583,"PartsBin/Basic","Editor.json","196330",10,2497,0,0,0,1,1,2,0,0,36,962,40,0,"[:]","[:]"],[1421524,"PartsBin/Basic","Cloud.json","195182",57,13584,7,0,0,2,4,3,0,0,312,3320,27,0,"[:]","[:]"],[11358052,"PartsBin/Tools","CompactTestRunner.json","200311",0,1,0,0,0,0,2,0,0,0,0,0,0,0,"",""],[11357509,"PartsBin/Tools","FRPInspector.json","200268",0,1,0,0,0,0,8,0,0,0,0,0,0,0,"",""],[3001749,"PartsBin/Tools","WorldCSS.json","181549",587,131053,17,8,35,7,5,22,11,2240,5254,17803,18,0,"[undefined:3, robertkrahn:2, bgnauk:6]","[undefined:3, 2012-09:2, 2012-06:4, 2012-08:2]"],[3001165,"PartsBin/Tools","TestRunner.json","196194",547,150675,28,10,69,45,15,47,39,11461,38304,18695,38,0,"[test:32, JDoe:7]","[2013-05:14, 2013-04:18, 2013-06:7]"],[3000929,"PartsBin/Tools","SystemConsole.json","196935",213,49572,16,7,19,12,18,7,12,1745,2940,2381,11,0,"[ohshima:2, cschuster:9, robertkrahn:1]","[undefined:12]"],[2997607,"PartsBin/Tools","ModulePart.json","185810",283,57539,18,8,60,0,1,12,17,4715,637,8627,16,0,"[undefined:9, robertkrahn:8]","[undefined:9, 2012-12:1, 2012-01:7]"],[2996370,"PartsBin/Tools","AutoSave.json","198774",123,30758,7,5,27,5,7,12,2,116,1256,5034,20,0,"[undefined:2]","[undefined:2]"],[2318297,"PartsBin/Tools","HTMLPrinter.json","156379",597,141055,21,8,1768,4,7,8,10,6283,3357,13532,12,0,"[bsiegmund:7, lauritz:1, sstamm:2]","[2012-04:9, 2011-11:1]"],[2317978,"PartsBin/Tools","WorldFreshness.json","197386",136,34393,5,4,42,9,3,24,1,81,1490,11730,38,0,"[aran:1]","[undefined:1]"],[2315896,"PartsBin/Tools","StyleEditor.json","185130",922,302125,76,34,336,13,40,16,16,8474,85646,28605,38,0,"[undefined:5, bgnauk:7, robertkrahn:2, lauritz:2]","[undefined:5, 2012-08:7, 2011-06:1, 2011-12:2, 2012-09:1]"],[2313669,"PartsBin/Tools","TextColorChooser.json","193216",1077,281991,66,5,19,0,1,12,23,5014,4197,16044,7,0,"[undefined:9, jenslincke:8, lauritz:6]","[undefined:9, 2013-03:4, 2012-08:5, 2012-12:4, 2012-06:1]"],[2312238,"PartsBin/Tools","ManualLayouter.json","199174",684,135026,30,13,131,1,3,19,26,5142,7146,34204,31,0,"[jenslincke:13, undefined:7, lauritz:6]","[2013-07:9, 2012-12:11, 2012-08:5, 2012-06:1]"],[2288949,"PartsBin/Tools","ColorReplacer.json","148800",0,1,0,0,0,0,1,0,0,0,0,0,0,0,"",""],[2285937,"PartsBin/Tools","TextAttributePanel.json","192856",754,161675,47,27,354,5,5,2,55,13301,7565,10940,11,0,"[undefined:48, jenslincke:1, lauritz:6]","[2011-09:1, 2012-05:14, 2011-12:6, undefined:34]"],[2285007,"PartsBin/Tools","DropboxBrowser.json","197853",262,51239,16,7,32,1,2,5,13,4122,67,4850,10,0,"[jenslincke:8, markoroeder:2, lauritz:3]","[2011-11:11, 2013-07:2]"],[2282115,"PartsBin/Tools","SerializationInspector.json","199299",768,171771,29,14,3216,3,8,24,39,11073,9357,47841,33,691,"[jenslincke:31, undefined:4, lauritz:4]","[2013-08:27, 2012-12:7, 2012-08:3, 2012-06:1, 2013-04:1]"],[2281792,"PartsBin/Tools","Toolbar.json","182355",139,27556,0,0,0,14,1,12,0,0,471,4193,17,0,"[:]","[:]"],[2277859,"PartsBin/Tools","WorldBrowserPane.json","194130",1323,302497,50,23,49310,13,5,20,30,9933,11015,33712,15,0,"[jenslincke:25, undefined:5]","[2013-02:9, 2013-03:16, 2012-12:5]"],[2276326,"PartsBin/Tools","ScriptOverview.json","176541",415,107794,13,6,27,0,1,8,18,8335,2493,5456,7,0,"[undefined:3, jenslincke:6, timfelgentreff:8, lauritz:1]","[undefined:3, 2012-08:6, 2012-07:3, 2011-12:1, 2012-06:5]"],[2252848,"PartsBin/Tools","MorphProfiler.json","172989",13875,1592216,31,17,189,9,13,6,25,10308,10553,17970,2,0,"[bsiegmund:10, undefined:10, lauritz:5]","[2012-06:10, 2012-05:10, 2011-11:5]"],[2251392,"PartsBin/Tools","Benchmarker.json","149994",591,137223,21,10,145,5,7,4,9,4792,3574,9295,9,0,"[cschuster:3, sstamm:3, undefined:3]","[2012-04:3, 2012-02:3, undefined:3]"],[2251079,"PartsBin/Tools","RightSpaceMaker.json","194038",121,24937,4,2,19,5,1,2,7,3123,594,2014,10,0,"[sstamm:3, undefined:4]","[2012-02:3, undefined:3, 2012-03:1]"],[2249588,"PartsBin/Tools","ClassBrowser.json","195040",775,163649,24,6,233,0,6,3,46,17494,3934,30624,21,0,"[undefined:16, jenslincke:30]","[undefined:16, 2013-04:25, 2012-11:5]"],[2248810,"PartsBin/Tools","MethodFinder.json","185133",331,77057,20,10,72,7,39,22,17,12218,2847,8771,15,0,"[undefined:13, jenslincke:3, robertkrahn:1]","[2012-01:5, undefined:7, 2011-11:3, 2012-05:1, 2012-02:1]"],[2246029,"PartsBin/Tools","StyleCopier.json","190634",1442,325894,71,69,290,10,1,12,2,337,2534,6683,3,0,"[jenslincke:2]","[2013-01:2]"],[2245092,"PartsBin/Tools","ErrorStackViewer.json","148668",433,96863,15,7,25,7,4,9,14,2899,3626,4600,8,0,"[jenslincke:11, lauritz:3]","[2012-02:11, 2011-11:3]"],[2244326,"PartsBin/Tools","PartTestRunnerWithCodeEditor.json","196529",329,90454,28,9,26,0,1,41,15,4117,7977,16688,27,0,"[fbo:8, jenslincke:5, robertkrahn:2]","[undefined:15]"],[2243913,"PartsBin/Tools","MorphsAtWorldPosition.json","199180",184,33744,5,2,8,12,2,18,1,28,949,13557,43,0,"[undefined:1]","[2012-12:1]"],[2238781,"PartsBin/Tools","ObjectGroupEditor.json","179675",2318,593225,60,31,96,31,21,79,82,36885,41790,30903,12,0,"[lauritz:46, jenslincke:1, tessi:7, conradcalmez:3, timfelgentreff:21, undefined:3, cschuster:1]","[2011-11:29, 2012-03:1, 2012-06:26, 2011-12:8, 2012-02:3, undefined:3, 2011-09:3, 2012-08:2, 2012-07:5, 2012-05:1, 2011-10:1]"],[2237661,"PartsBin/Tools","BootstrapParts.json","142537",479,110096,17,10,111,4,5,8,14,5282,2227,5145,7,0,"[undefined:9, jenslincke:2, sstamm:3]","[2012-02:9, 2012-03:2, undefined:3]"],[2237044,"PartsBin/Tools","SearchSourceCode.json","148728",267,54348,13,6,47,0,5,0,3,742,0,1117,2,0,"[undefined:3]","[undefined:3]"],[2235526,"PartsBin/Tools","CodeBrowser.json","172502",463,119310,13,6,14,22,40,44,15,5789,10459,16411,23,0,"[undefined:3, cschuster:12]","[undefined:3, 2012-06:12]"],[2211542,"PartsBin/Tools","SyncManager.json","181234",0,1,0,0,0,0,18,0,0,0,0,0,0,0,"",""],[2210654,"PartsBin/Tools","ObjectInspector.json","198852",381,83563,19,7,30,36,50,44,17,7457,9575,19457,35,0,"[cschuster:11, JDoe:2, jenslincke:4]","[2012-06:9, 2013-05:2, 2012-07:1, 2012-05:1, 2012-11:4]"],[2209748,"PartsBin/Tools","ServerSearch.json","197526",402,86987,27,16,80,4,11,5,22,6389,4672,5681,12,0,"[undefined:14, jenslincke:8]","[undefined:14, 2011-11:5, 2013-04:1, 2013-07:2]"],[2208760,"PartsBin/Tools","PrettyPrintJavascript.json","159134",473,113722,17,8,101,1,6,11,10,8840,682,14969,14,0,"[undefined:10]","[undefined:3, 2012-05:7]"],[2207957,"PartsBin/Tools","SourceInspector.json","192323",389,90118,17,7,7607,0,2,13,24,7148,3723,9247,14,0,"[undefined:9, jenslincke:9, lauritz:6]","[undefined:9, 2013-02:5, 2012-08:5, 2012-12:4, 2012-06:1]"],[2206401,"PartsBin/Tools","TestRunnerWithDebuggingSupport.json","197417",776,153977,45,21,169,5,1,23,31,6873,6834,10660,11,0,"[lauritz:25, cschuster:3, timfelgentreff:3]","[2011-12:25, 2012-02:3, 2013-07:3]"],[2206009,"PartsBin/Tools","VerticalSpaceMaker.json","149100",167,35069,4,2,21,2,3,3,4,825,341,2034,7,0,"[undefined:1, lauritz:3]","[2012-03:1, 2011-11:3]"],[2204760,"PartsBin/Tools","FileManagerFullScreen.json","184244",642,135777,14,6,77,11,3,15,7,1914,4197,11196,11,0,"[cschuster:4, jenslincke:3]","[2012-07:5, 2012-08:2]"],[2201354,"PartsBin/Tools","ObjectEditor.json","199664",1517,404295,59,31,71,37,135,81,75,28487,41355,34643,19,0,"[lauritz:53, cschuster:3, jenslincke:12, robertkrahn:1, conradcalmez:2, undefined:4]","[1970-01:55, 2013-09:4, undefined:4, 2013-08:5, 2012-12:3, 2012-08:3, 2012-06:1]"],[2198161,"PartsBin/Tools","ColorPicker.json","198679",363,82766,8,3,32,14,21,26,10,3966,2720,16224,23,0,"[bgnauk:10]","[2012-08:10]"],[2196757,"PartsBin/Tools","CommanderTrait.json","195085",86,18483,0,0,0,4,2,3,0,0,112,1615,9,0,"[:]","[:]"],[2195706,"PartsBin/Tools","WorldBrowser.json","197329",482,120971,30,11,100,1,4,19,24,9270,5679,24505,25,0,"[jenslincke:23, undefined:1]","[undefined:24]"],[2195529,"PartsBin/Tools","Flap.json","182377",64,14544,1,1,5,1,1,1,0,0,7,836,6,0,"[:]","[:]"],[2176533,"PartsBin/Tools","MorphDiffer.json","150013",1138,292262,33,15,96,25,4,23,29,9055,38140,18073,19,0,"[undefined:23, athomschke:6]","[2012-03:22, 2012-01:6, 2012-04:1]"],[2173714,"PartsBin/Tools","ProtocolBrowser.json","182670",1061,271414,16,10,15032,2,1,12,10,2116,1845,10768,5,0,"[undefined:3, jenslincke:7]","[undefined:3, 2012-10:7]"],[2172944,"PartsBin/Tools","GlobalLogger.json","182371",370,80307,9,4,51,9,1,8,7,1410,1657,9893,14,0,"[athomschke:7]","[2012-05:7]"],[2171181,"PartsBin/Tools","MorphTable.json","198939",525,210226,19,7,99378,0,2,23,23,6321,5169,27839,16,360,"[jenslincke:18, lauritz:4, undefined:1]","[2013-08:14, 2012-12:4, 2012-08:3, 2012-06:1, 2013-04:1]"],[2170399,"PartsBin/Tools","TextEditor.json","104143",315,73076,17,9,99,0,1,0,0,0,0,261,0,0,"[:]","[:]"],[2170019,"PartsBin/Tools","IFrameLoader.json","148692",172,32694,6,3,78,0,5,0,3,541,0,1090,3,0,"[undefined:3]","[undefined:3]"],[2166621,"PartsBin/Tools","PartsBinBrowser.json","198683",1546,286857,39,20,132,23,69,12,56,20356,25472,9155,12,0,"[undefined:33, jenslincke:6, robertkrahn:10, fabian:1, lauritz:3, sstamm:3]","[2011-12:26, 2013-05:1, 2012-01:6, 2011-07:5, 2012-02:5, 2012-09:3, 2012-03:2, undefined:8]"],[2166286,"PartsBin/Tools","LeftSpaceMaker.json","194041",119,24571,4,2,18,4,1,2,7,3123,450,2041,10,0,"[sstamm:3, undefined:4]","[2012-02:3, undefined:3, 2012-03:1]"],[2166135,"PartsBin/Tools","SiblingExtractor.json","198753",62,10347,0,0,0,11,1,16,0,0,363,5221,54,0,"[:]","[:]"],[2162696,"PartsBin/Tools","VersionDiffer.json","183901",837,193627,30,14,73,1,3,5,31,15685,880,4492,3,0,"[undefined:18, robertkrahn:13]","[undefined:18, 2012-05:13]"],[2162232,"PartsBin/Tools","ColumnCollapser.json","198758",218,39630,6,3,15,11,1,16,4,900,1091,11616,32,0,"[jenslincke:4]","[2013-02:2, 2013-08:2]"],[2153914,"PartsBin/Tools","PartTestRunner.json","199473",1418,331319,51,24,548,0,21,9,87,37107,12855,61555,22,0,"[fbo:8, jenslincke:73, undefined:3, lauritz:3]","[2012-02:8, 2012-03:7, 2013-08:50, 2013-09:8, 2013-07:8, 2012-12:3, 2011-11:3]"],[2152862,"PartsBin/Tools","Explorer.json","148785",440,95734,12,5,11,6,22,22,23,12417,2379,8114,11,0,"[lauritz:17, undefined:6]","[2011-12:2, 2011-09:8, 2012-01:4, 2011-10:3, undefined:6]"],[2151210,"PartsBin/Tools","WorldRecoveryLoader.json","194023",778,203280,44,20,49280,3,9,20,38,12310,5555,30030,18,0,"[undefined:14, jenslincke:24]","[undefined:9, 2013-02:9, 2013-03:15, 2012-12:5]"],[2127031,"PartsBin/Tools","SyncWorld.json","179220",0,1,0,0,0,0,11,0,0,0,0,0,0,0,"",""],[1961896,"PartsBin/Visualization","ZoomableSunburstExample.json","183043",461,107882,13,5,32,2,1,22,12,6583,2247,14263,15,0,"[undefined:3, jenslincke:8, robertkrahn:1]","[undefined:3, 2012-08:1, 2012-10:7, 2012-06:1]"],[1961169,"PartsBin/Visualization","MiniMap.json","167559",724,188784,49,0,0,13,16,9,0,0,631,2839,2,0,"[:]","[:]"],[1960607,"PartsBin/Visualization","FileSizeTreeMap.json","191924",519,100272,19,9,233,2,3,26,24,7994,3447,25345,29,0,"[undefined:11, jenslincke:12, robertkrahn:1]","[undefined:11, 2012-08:1, 2013-01:7, 2012-10:4, 2012-06:1]"],[1959429,"PartsBin/Visualization","BalancedSearchTrees.json","188841",882,199512,25,8,51,23,88,94,45,25703,24313,70180,47,0,"[undefined:3, sstamm:34, bsiegmund:8]","[undefined:3, 2012-12:6, 2012-11:4, 2013-01:32]"],[1959247,"PartsBin/Visualization","d3ForceLayoutExample.json","187113",162,39738,2,1,35,15,1,16,7,4569,1162,7138,21,0,"[markoroeder:5, jenslincke:2]","[2012-12:5, 2012-10:2]"],[1959068,"PartsBin/Visualization","d3BubbleExample.json","182781",169,36889,2,1,35,14,3,15,7,2175,1054,6713,21,0,"[jenslincke:7]","[2012-10:7]"],[1958500,"PartsBin/Visualization","ConnectionsInHierarchyVisualization.json","190011",530,130492,9,3,112,9,3,11,21,7173,3951,8744,10,0,"[undefined:1, lauritz:6, jenslincke:13, markoroeder:1]","[2012-12:8, 2012-08:5, 2012-06:1, 2013-01:7]"],[1958017,"PartsBin/Visualization","BubbleVisExample.json","183027",454,100644,13,5,25,1,1,21,12,4390,1743,13953,16,0,"[undefined:3, jenslincke:8, robertkrahn:1]","[undefined:3, 2012-08:1, 2012-10:7, 2012-06:1]"],[1957762,"PartsBin/Visualization","ProtovisStackDrawing.json","107150",249,46630,3,1,5,0,8,0,15,8431,0,760,2,0,"[undefined:15]","[undefined:15]"],[1957530,"PartsBin/Visualization","d3Example.json","176960",222,50748,2,1,274,10,3,11,1,235,622,5860,13,0,"[robertkrahn:1]","[2012-07:1]"],[1957249,"PartsBin/Visualization","URLTree.json","83881",274,57014,8,5,127,0,4,0,8,2060,0,1813,3,0,"[undefined:8]","[undefined:8]"],[1957000,"PartsBin/Visualization","URLCirclePacking.json","83888",242,50799,7,4,94,0,4,0,8,2329,0,1621,3,0,"[undefined:8]","[undefined:8]"],[1956745,"PartsBin/Visualization","d3ExampleFull.json","182770",245,57781,2,1,274,13,1,12,5,4630,946,5874,12,0,"[jenslincke:4, robertkrahn:1]","[2012-10:4, 2012-07:1]"],[1956277,"PartsBin/Visualization","TreeViewExampleD3.json","197280",432,80357,15,5,26,1,5,26,19,5457,2391,16967,24,0,"[undefined:9, jenslincke:9, robertkrahn:1]","[undefined:9, 2012-08:1, 2012-10:3, 2013-01:3, 2013-07:2, 2012-06:1]"],[1955980,"PartsBin/Visualization","TreeMap.json","81702",289,64320,8,5,84,0,3,0,8,2325,0,1813,3,0,"[undefined:8]","[undefined:8]"],[1955731,"PartsBin/Visualization","URLTreeMap.json","83877",244,50171,7,4,92,0,3,0,8,2143,0,1615,3,0,"[undefined:8]","[undefined:8]"],[1955067,"PartsBin/Visualization","ScatterplotD3Example.json","183116",635,153386,14,6,3884,4,2,25,12,3844,3291,15099,12,0,"[undefined:3, jenslincke:8, robertkrahn:1]","[undefined:3, 2012-08:1, 2012-11:3, 2012-10:4, 2012-06:1]"],[1953090,"PartsBin/Visualization","MorphHierrachyVisualization.json","191990",1897,1275398,23,9,53,3,13,19,38,13127,6696,21083,2,0,"[undefined:10, jenslincke:21, lauritz:6, markoroeder:1]","[undefined:9, 2013-01:6, 2012-12:8, 2012-08:5, 2012-06:1, 2013-02:9]"],[1952561,"PartsBin/Visualization","MorphBrowserSunburst.json","183112",500,120272,13,5,29,4,3,25,14,7108,3255,15095,15,0,"[undefined:3, jenslincke:10, robertkrahn:1]","[undefined:3, 2012-08:1, 2012-10:8, 2012-11:1, 2012-06:1]"],[1952283,"PartsBin/Visualization","URLIndentedTree.json","107155",271,62607,8,5,150,0,3,0,8,3151,0,1821,3,0,"[undefined:8]","[undefined:8]"],[1952013,"PartsBin/Visualization","URLSunbursts.json","81710",263,53652,7,4,83,0,4,0,9,2397,0,1617,3,0,"[undefined:9]","[undefined:9]"],[1951642,"PartsBin/Visualization","TreeMapLayouter.json","183552",359,73122,7,3,17,16,9,16,3,84,3450,13056,23,0,"[robertkrahn:3]","[2012-06:3]"],[1951227,"PartsBin/Visualization","ZoomableBubbleView.json","191831",379,76398,15,5,25,0,1,21,20,6928,1527,14198,21,0,"[undefined:9, jenslincke:10, robertkrahn:1]","[undefined:9, 2012-08:1, 2012-10:6, 2013-01:3, 2012-06:1]"],[1949768,"PartsBin/Visualization","ModuleBrowsD3Vis.json","190114",1421,368957,14,5,25,1,5,21,16,6804,1783,14464,4,0,"[undefined:3, jenslincke:12, robertkrahn:1]","[undefined:3, 2012-08:1, 2012-10:11, 2012-06:1]"],[1949514,"PartsBin/Visualization","WorldMorphTreeMap.json","83873",249,44251,5,2,17,0,6,0,8,2146,0,1220,3,0,"[undefined:8]","[undefined:8]"],[1949317,"PartsBin/Visualization","d3BubbleExampleWithChildren.json","182819",187,41950,2,1,35,15,1,16,7,2449,1162,6999,19,0,"[jenslincke:7]","[2012-10:7]"],[1948869,"PartsBin/Visualization","ProtovisDrawing.json","164242",427,93454,13,5,23,1,11,2,19,7920,56,2270,2,0,"[undefined:12, robertkrahn:7]","[undefined:12, 2011-09:6, 2012-05:1]"],[1948353,"PartsBin/Visualization","WorldGraphD3.json","187147",481,115136,15,5,426,0,1,17,21,8616,1741,15860,15,0,"[undefined:10, jenslincke:6, markoroeder:5]","[undefined:9, 2012-08:1, 2012-11:4, 2012-12:5, 2012-10:2]"],[1977825,"PartsBin/Widgets","ScrollBox.json","169792",34,7045,0,0,0,7,1,7,0,0,219,2390,37,0,"[:]","[:]"],[1977646,"PartsBin/Widgets","MinimizedMorphContainer.json","148688",174,34551,4,1,8,6,1,7,3,579,1061,3229,12,0,"[lauritz:3]","[2011-11:3]"],[1977585,"PartsBin/Widgets","SimpleColorButton.json","177291",59,14071,1,0,0,1,1,1,0,0,8,649,5,0,"[:]","[:]"],[1977518,"PartsBin/Widgets","QuickTable.json","198869",62,11817,0,1,41,11,2,9,0,0,363,3278,31,3,"[:]","[:]"],[1977392,"PartsBin/Widgets","ExtentAdjustingContainer.json","195014",123,21215,3,1,9,11,1,12,0,0,876,10863,55,0,"[:]","[:]"],[1972871,"PartsBin/Widgets","HyperCard.json","182234",3467,910583,106,69,870,5,1,47,85,24352,16753,46041,7,0,"[athomschke:72, conradcalmez:5, sstamm:2, undefined:6]","[2011-11:26, 2011-12:46, 2012-05:5, 2012-01:2, undefined:6]"],[1972811,"PartsBin/Widgets","CodePane.json","82282",56,10572,0,1,49,0,3,0,0,0,0,266,3,0,"[:]","[:]"],[1972641,"PartsBin/Widgets","PrintingWorkspace.json","148791",163,32991,4,2,130,1,1,1,3,579,414,1103,5,0,"[lauritz:3]","[2011-11:3]"],[1972611,"PartsBin/Widgets","LabeledBox.json","148664",28,6667,1,1,5,0,3,0,0,0,0,425,6,0,"[:]","[:]"],[1971624,"PartsBin/Widgets","RGBColorChooser.json","93794",440,85562,6,1,16,0,3,0,0,0,0,1013,1,0,"[:]","[:]"],[1971566,"PartsBin/Widgets","JournalEntry.json","148706",56,14071,2,2,28,0,11,1,0,0,0,782,6,0,"[:]","[:]"],[1970983,"PartsBin/Widgets","DrawingCanvas.json","154360",559,137143,21,8,66,2,4,8,4,583,1920,12630,11,0,"[robertkrahn:4]","[2012-04:4]"],[1970914,"PartsBin/Widgets","HorizontalSplitterMorph.json","195020",67,12475,0,0,0,15,2,12,0,0,507,3825,35,0,"[:]","[:]"],[1970884,"PartsBin/Widgets","NameLabel.json","81738",25,5440,0,1,9,0,2,0,0,0,0,299,5,0,"[:]","[:]"],[1970817,"PartsBin/Widgets","SplitterMorph.json","198521",65,12107,0,0,0,10,3,11,0,0,327,3660,33,0,"[:]","[:]"],[1963588,"PartsBin/Widgets","ObjectEditorScriptPane.json","169707",2143,509166,57,31,98,17,1,0,59,21852,20898,6003,5,0,"[lauritz:52, jenslincke:1, robertkrahn:1, conradcalmez:3, undefined:1, tessi:1]","[2011-11:31, 2012-03:1, 2012-01:1, 2011-12:14, 2012-02:3, undefined:1, 2011-09:2, 2012-05:4, 2012-06:2]"],[1963575,"PartsBin/Widgets","ProgressIndicator.json","148670",11,3647,0,0,0,0,2,0,0,0,0,267,7,0,"[:]","[:]"],[1963536,"PartsBin/Widgets","CloseButton.json","199005",35,6277,1,1,1,1,4,1,0,0,8,766,12,0,"[:]","[:]"],[1963523,"PartsBin/Widgets","ClipMorph.json","148694",11,2645,0,0,0,0,3,0,0,0,0,287,11,0,"[:]","[:]"],[1963450,"PartsBin/Widgets","HorizontalSpacerMorph.json","195028",71,13155,0,0,0,15,2,14,0,0,507,4395,37,0,"[:]","[:]"],[1963396,"PartsBin/Widgets","AdaptZoomButton.json","199002",49,9090,1,1,1,5,5,12,0,0,360,3850,46,0,"[:]","[:]"],[1963313,"PartsBin/Widgets","ProgressBar.json","148741",73,17620,3,2,16,0,8,2,0,0,0,941,5,0,"[:]","[:]"],[1963174,"PartsBin/Widgets","MinimizedMorphContainerBottom.json","198639",132,27280,4,1,8,7,1,8,6,2877,1278,3790,19,0,"[sstamm:3, undefined:3]","[2012-02:3, undefined:3]"],[1963095,"PartsBin/Widgets","SpacerMorph.json","195033",77,16066,0,0,0,16,1,15,0,0,543,4653,32,0,"[:]","[:]"],[1962959,"PartsBin/Widgets","GotoMorph.json","199008",125,21367,3,2,13,13,4,20,1,28,906,11163,56,0,"[undefined:1]","[2012-12:1]"],[1962908,"PartsBin/Widgets","FilterableList.json","199249",46,8522,2,1,0,2,9,4,0,0,119,2132,26,0,"[:]","[:]"],[1962906,"PartsBin/Widgets","TabFolder.json","148811",0,1,0,0,0,0,3,0,0,0,0,0,0,0,"",""],[1962861,"PartsBin/Widgets","ScalingCorner.json","193148",41,7440,0,0,0,3,1,1,0,0,76,768,11,0,"[:]","[:]"],[1962821,"PartsBin/Widgets","VerticalItemScrollBox.json","169959",38,7716,0,0,0,8,1,8,0,0,255,2693,38,0,"[:]","[:]"],[1962759,"PartsBin/Widgets","ResizeCorner.json","148786",58,12465,0,0,0,2,9,1,0,0,40,678,6,0,"[:]","[:]"],[2352449,"PartsBin/Wiki","WikiActivities.json","193811",344,103108,21,12,93,0,7,1,17,6451,2154,13605,15,0,"[undefined:9, jenslincke:8]","[undefined:9, 2012-11:7, 2012-10:1]"],[2350276,"PartsBin/Wiki","WikiLatestChanges.json","183184",1067,513995,37,22,220305,6,2,16,20,9671,7452,31599,8,0,"[jenslincke:14, undefined:6]","[2012-11:11, 2012-10:3, undefined:6]"],[2349753,"PartsBin/Wiki","LinkNavigationReverse.json","182411",182,42883,4,3,245,3,2,3,0,0,342,1575,4,0,"[:]","[:]"],[2348006,"PartsBin/Wiki","MyWikiActivities.json","183017",861,186121,14,7,7555,2,4,8,6,3898,654,5340,3,0,"[jenslincke:3, undefined:3]","[2012-10:3, undefined:3]"],[2347581,"PartsBin/Wiki","LinkNavigationWithDirs.json","165020",147,32978,3,2,196,1,1,2,0,0,16,1325,4,0,"[:]","[:]"],[2347160,"PartsBin/Wiki","JournalNavigation.json","91368",152,29553,3,2,205,0,2,0,0,0,0,836,3,0,"[:]","[:]"],[2345976,"PartsBin/Wiki","WikiChangeLog.json","183177",572,169805,19,12,92,5,3,18,11,4672,3261,18052,13,0,"[jenslincke:8, undefined:3]","[2012-11:7, 2012-10:1, undefined:3]"],[2345579,"PartsBin/Wiki","RelativeLinkNavigation.json","185176",166,32597,6,3,88,4,1,4,3,945,886,6935,24,0,"[undefined:3]","[undefined:3]"],[2343715,"PartsBin/Wiki","WikiActivitiesWithVisualization.json","191870",891,369464,13,9,55717,6,1,1,18,7732,3601,20623,7,0,"[jenslincke:18]","[2013-01:15, 2012-10:3]"],[2341913,"PartsBin/Wiki","PartsBinHistory.json","194621",899,170807,27,12,144,0,10,21,29,9271,3820,40395,26,0,"[undefined:11, jenslincke:18]","[undefined:9, 2013-03:16, 2012-12:2, 2013-02:1, 1970-01:1]"],[2330453,"PartsBin/Wiki","CommitCounter.json","100229",5680,900697,15,9,95,0,10,0,0,0,0,3170,0,0,"[:]","[:]"],[2329182,"PartsBin/Wiki","WhatDidIDo.json","98108",542,108948,11,9,98,0,1,0,0,0,0,2154,2,0,"[:]","[:]"],[2328778,"PartsBin/Wiki","LinkNavigationBig.json","150861",135,29629,3,2,132,1,2,2,0,0,16,1295,4,0,"[:]","[:]"],[2328405,"PartsBin/Wiki","LinkNavigation.json","149884",121,26933,3,2,115,1,1,1,0,0,16,1042,4,0,"[:]","[:]"],[2326926,"PartsBin/Wiki","VersionViewer.json","185157",799,111587,18,8,131,1,3,4,3,945,66,1584,1,0,"[undefined:3]","[undefined:3]"],[2325695,"PartsBin/Wiki","LatestChangesViewer.json","160978",582,132617,21,13,139,1,9,2,23,4772,66,3548,3,0,"[undefined:17, markoroeder:5, cschuster:1]","[undefined:17, 2011-08:5, 2012-05:1]"],["TOTAL","null","null","null",80692,18009529,2065,983,522829,831,1143,1682,1773,648977,585224]]},"682":{"selectTable":{"__isSmartRef__":true,"id":683},"saveCurrentTable":{"__isSmartRef__":true,"id":687},"getCurrentTable":{"__isSmartRef__":true,"id":691},"updateTableList":{"__isSmartRef__":true,"id":695},"updateFileList":{"__isSmartRef__":true,"id":699},"loadTable":{"__isSmartRef__":true,"id":703},"loadSelectedTable":{"__isSmartRef__":true,"id":707},"updateTable":{"__isSmartRef__":true,"id":711},"getAndCheckFilterFunction":{"__isSmartRef__":true,"id":715},"printHistogram":{"__isSmartRef__":true,"id":719},"printHistogramSortedBy":{"__isSmartRef__":true,"id":723},"printTableSortedBy":{"__isSmartRef__":true,"id":727},"sortCurrentTableBy":{"__isSmartRef__":true,"id":731},"showTable":{"__isSmartRef__":true,"id":735},"update":{"__isSmartRef__":true,"id":739},"updateCurrentHistgram":{"__isSmartRef__":true,"id":743},"isLatexPrinting":{"__isSmartRef__":true,"id":747},"histogram":{"__isSmartRef__":true,"id":751},"histogramDict":{"__isSmartRef__":true,"id":755},"reset":{"__isSmartRef__":true,"id":759},"neoPane":{"__isSmartRef__":true,"id":763},"updateCurrentTable":{"__isSmartRef__":true,"id":767},"saveFilterSource":{"__isSmartRef__":true,"id":771},"log":{"__isSmartRef__":true,"id":775},"deleteCurrentTable":{"__isSmartRef__":true,"id":779},"removeSelectedTable":{"__isSmartRef__":true,"id":783},"maxNumbersInTable":{"__isSmartRef__":true,"id":787},"minNumbersInTable":{"__isSmartRef__":true,"id":791},"getFilteredTable":{"__isSmartRef__":true,"id":795},"isTabedPrinting":{"__isSmartRef__":true,"id":799}},"683":{"varMapping":{"__isSmartRef__":true,"id":684},"source":"function selectTable(tableName) {\n this.get(\"TableName\").textString = tableName\n}","funcProperties":{"__isSmartRef__":true,"id":685},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"684":{"this":{"__isSmartRef__":true,"id":2}},"685":{"timestamp":{"__isSmartRef__":true,"id":686},"user":"jenslincke","tags":[]},"686":{"isSerializedDate":true,"string":"Sat Sep 07 2013 15:00:28 GMT+0200 (W. Europe Summer Time)"},"687":{"varMapping":{"__isSmartRef__":true,"id":688},"source":"function saveCurrentTable() {\n var filename = this.get(\"TableName\").textString + \".json\"\n var webR = new WebResource(URL.source.withFilename(filename))\n webR.beAsync()\n var source = JSON.serialize(this.getCurrentTable())\n webR.createProgressBar(\"save \" + filename)\n webR.put(source)\n connect(webR, 'status', {$: function(){ this.updateFileList() }.bind(this)}, \"$\")\n}","funcProperties":{"__isSmartRef__":true,"id":689},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"688":{"this":{"__isSmartRef__":true,"id":2}},"689":{"timestamp":{"__isSmartRef__":true,"id":690},"user":"jenslincke","tags":[]},"690":{"isSerializedDate":true,"string":"Sun Sep 15 2013 17:41:57 GMT+0200 (W. Europe Summer Time)"},"691":{"varMapping":{"__isSmartRef__":true,"id":692},"source":"function getCurrentTable() {\n return this.currentTable\n}","funcProperties":{"__isSmartRef__":true,"id":693},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"692":{"this":{"__isSmartRef__":true,"id":2}},"693":{"timestamp":{"__isSmartRef__":true,"id":694},"user":"jenslincke","tags":[]},"694":{"isSerializedDate":true,"string":"Sun Sep 15 2013 21:15:31 GMT+0200 (W. Europe Summer Time)"},"695":{"varMapping":{"__isSmartRef__":true,"id":696},"source":"function updateTableList() {\n var loadedTables = Properties.own(this.tables)\n this.get(\"TableList\").setList(loadedTables)\n}","funcProperties":{"__isSmartRef__":true,"id":697},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"696":{"this":{"__isSmartRef__":true,"id":2}},"697":{"timestamp":{"__isSmartRef__":true,"id":698},"user":"jenslincke","tags":[]},"698":{"isSerializedDate":true,"string":"Sun Sep 15 2013 21:06:24 GMT+0200 (W. Europe Summer Time)"},"699":{"varMapping":{"__isSmartRef__":true,"id":700},"source":"function updateFileList() {\n var urls = URL.source.getDirectory().asWebResource().getSubElements(1).subDocuments\n .invoke('getURL')\n .sort()\n .select(function(ea) {\n return ea.filename().match(/\\.json$/)})\n\n this.get(\"FileList\").setList(urls.collect(function(ea) {\n return {string: ea.filename(), value: ea, isListItem: true}\n }))\n}","funcProperties":{"__isSmartRef__":true,"id":701},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"700":{"this":{"__isSmartRef__":true,"id":2}},"701":{"timestamp":{"__isSmartRef__":true,"id":702},"user":"jenslincke","tags":[]},"702":{"isSerializedDate":true,"string":"Sun Sep 14 2014 22:44:31 GMT+0200 (W. Europe Summer Time)"},"703":{"varMapping":{"__isSmartRef__":true,"id":704},"source":"function loadTable(url) {\n\n if (!url) url = this.get(\"FileList\").selection\n try {\n var webR = new WebResource(url)\n webR.get()\n var table = JSON.parse(webR.content)\n } catch(e) {\n alert(\"Could not load table: \" + url + \" due to error: \" + e )\n }\n if(table) {\n alertOK(\"load table\")\n this.updateTable(table)\n \n }\n\n}","funcProperties":{"__isSmartRef__":true,"id":705},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"704":{"this":{"__isSmartRef__":true,"id":2}},"705":{"timestamp":{"__isSmartRef__":true,"id":706},"user":"jenslincke","tags":[]},"706":{"isSerializedDate":true,"string":"Sun Sep 15 2013 21:24:05 GMT+0200 (W. Europe Summer Time)"},"707":{"varMapping":{"__isSmartRef__":true,"id":708},"source":"function loadSelectedTable() {\n var url = this.get(\"FileList\").selection\n if (!url) return\n var content = url.asWebResource().get().content\n var table = Strings.lines(content).collect(function(ea) {\n return ea.split(\"\\t\").collect(function(cell) { \n try { return JSON.parse(cell)} // try to deserialize cell\n catch(e) { return cell} // otherwise take the string as it is...\n })\n })\n\n}","funcProperties":{"__isSmartRef__":true,"id":709},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"708":{"this":{"__isSmartRef__":true,"id":2}},"709":{"timestamp":{"__isSmartRef__":true,"id":710},"user":"jenslincke","tags":[]},"710":{"isSerializedDate":true,"string":"Sat Sep 07 2013 15:46:22 GMT+0200 (W. Europe Summer Time)"},"711":{"varMapping":{"__isSmartRef__":true,"id":712},"source":"function updateTable(table) {\n if (!this.tables) this.tables = {};\n this.tables[table.name] = table\n this.currentTable = table\n this.tables[table.name] = table\n this.lastSortedColumn = undefined\n this.updateTableList()\n this.get(\"FilterRowFunction\").textString = table.filterSource\n this.get('TableList').setSelection(table.name)\n this.updateCurrentTable()\n}","funcProperties":{"__isSmartRef__":true,"id":713},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"712":{"this":{"__isSmartRef__":true,"id":2}},"713":{"timestamp":{"__isSmartRef__":true,"id":714},"user":"jenslincke","tags":[]},"714":{"isSerializedDate":true,"string":"Sat Aug 09 2014 18:20:21 GMT+0200 (W. Europe Summer Time)"},"715":{"varMapping":{"__isSmartRef__":true,"id":716},"source":"function getAndCheckFilterFunction() {\n if (this.currentTable.filterSource == undefined) return\n try {\n var source = this.currentTable.filterSource || \"true\"\n var filter = eval(\"(function() {return \" +this.get(\"FilterRowFunction\").textString + \"})\")\n } catch (e) {\n this.log(\"Error in Filter Function: \" + e)\n }\n return filter\n\n}","funcProperties":{"__isSmartRef__":true,"id":717},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"716":{"this":{"__isSmartRef__":true,"id":2}},"717":{"timestamp":{"__isSmartRef__":true,"id":718},"user":"jenslincke","tags":[]},"718":{"isSerializedDate":true,"string":"Sun Sep 15 2013 23:49:40 GMT+0200 (W. Europe Summer Time)"},"719":{"varMapping":{"__isSmartRef__":true,"id":720},"source":"function printHistogram(histogram) {\n\n if (this.get(\"SortHistogramButton\").isToggled) {\n histogram = histogram\n .sortBy(function(ea) { return ea.value})\n .reverse()\n }\n var table =histogram.collect(function(ea) { return [ea.value, ea.key] })\n\n\n this.get(\"HistogramVis\").data = table.collect(function(ea) {\n return {x: ea[1] , y: ea[0] }\n })\n\n table = table.concat([\n [histogram.inject(0, function(sum, ea) { return ea.value + sum }), \"TOTAL\"]\n ])\n\n\n var s=\"\"\n if(this.isTabedPrinting()){\n s = table.collect(function(ea){\n return ea.join(\"\\t\")\n }).join(\"\\n\");\n } else {\n s = Strings.printTable(table);\n }\n this.get(\"Histogram\").textString = s;\n\n this.get(\"Histogram\").setScroll(0,0)\n this.get(\"HistogramVis\").update()\n\n // this.printMetaHistogram(histogram)\n\n}","funcProperties":{"__isSmartRef__":true,"id":721},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"720":{"this":{"__isSmartRef__":true,"id":2}},"721":{"timestamp":{"__isSmartRef__":true,"id":722},"user":"jenslincke","tags":[]},"722":{"isSerializedDate":true,"string":"Thu Aug 07 2014 11:34:45 GMT+0200 (W. Europe Summer Time)"},"723":{"varMapping":{"__isSmartRef__":true,"id":724},"source":"function printHistogramSortedBy(tableWithColumns, column) {\n if (!tableWithColumns) return \n // table = table\n var header = tableWithColumns.columns\n var table = tableWithColumns.data\n var pos = header.indexOf(column)\n this.currentTableName = column\n\n table = table.reject(function(ea) { return ea.include(\"TOTAL\") })\n var buckets = Number(this.get(\"HistogramBucketSize\").textString) || 20\n\n var maxNumbers = this.neoPane().maxNumbersInTable(header, table)\n if (maxNumbers[column]) {\n var max = maxNumbers[column]\n var bucketSize = max / buckets\n // max = 100\n var roundTo = Math.pow(10, Math.round(Math.log(max) / Math.log(10)) - 3)\n bucketSize = (Math.floor(bucketSize / roundTo) + 1) * roundTo\n\n // assume possitive numbers\n var keyFunc = function(n) { return \"\"+(Math.floor(n / bucketSize) * bucketSize).roundTo(roundTo) +\n \"-\" + ((Math.floor(n / bucketSize) + 1) * bucketSize).roundTo(roundTo)}\n var histogram = this.histogram(table, function(ea) {return keyFunc(ea[pos])});\n for(i=0; i < max; i += bucketSize) {\n var key = keyFunc(i)\n if (! (histogram.detect(function(ea) { return ea.key == key}))) \n histogram.push({key: key, value: 0})\n }\n histogram = histogram.sortBy(function(ea) { return Number(ea.key.split(\" - \")[0])})\n\n } else {\n histogram = this.histogram(table, function(ea) { return ea[pos]});\n }\n\n this.get(\"GroupColumns\").textString = column\n this.printHistogram(histogram)\n}","funcProperties":{"__isSmartRef__":true,"id":725},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"724":{"this":{"__isSmartRef__":true,"id":2}},"725":{"timestamp":{"__isSmartRef__":true,"id":726},"user":"jenslincke","tags":[]},"726":{"isSerializedDate":true,"string":"Thu Aug 07 2014 15:18:12 GMT+0200 (W. Europe Summer Time)"},"727":{"varMapping":{"__isSmartRef__":true,"id":728},"source":"function printTableSortedBy(tableWithColumns, column) {\n if (!tableWithColumns) return \n // table = this.currentTable\n // column = \"FileName\"\n\n var table = tableWithColumns.data\n var columns = tableWithColumns.columns\n\n this.currentColumnName = column;\n if (column !== undefined) {\n var pos = columns.indexOf(column)\n if (table.last()[0] == \"TOTAL\") {\n table = table.clone(); \n table.pop()\n }\n table = table.sortBy(function(ea) { return ea[pos]})\n if (this.reverseTableEnabled)\n table = table.reverse()\n }\n\n var indexedTable = ([columns].concat(table)).collect(function(ea, index) { return [index].concat(ea)})\n if (this.isLatexPrinting()) {\n this.get(\"Table\").textString = \"not implemented any more\"\n return \n var label = \"tab:\" + this.get(\"TableList\").selection\n var caption = this.get(\"TableList\").selection\n if (column) caption += \" sorted by \" + column\n // this.get(\"Table\").textString = this.asLatexTable(indexedTable, label, caption)\n } if(this.isTabedPrinting()){\n this.get(\"Table\").textString = indexedTable.collect(function(ea){\n return ea.join(\"\\t\")\n }).join(\"\\n\");\n } else {\n this.get(\"Table\").textString = Strings.printTable(indexedTable);\n }\n var s = this.get(\"Table\").textString\n columns.each(function(ea) {\n this.get(\"Table\").emphasize(\n {\n fontWeight: 'bold',\n doit: {code: 'this.sortCurrentTableBy(\"' + ea + '\")', context: this}\n },\n s.indexOf(ea), s.indexOf(ea) + ea.length\n )\n }, this)\n \n this.get(\"Table\").setFixedWidth(false)\n\n}","funcProperties":{"__isSmartRef__":true,"id":729},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"728":{"this":{"__isSmartRef__":true,"id":2}},"729":{"timestamp":{"__isSmartRef__":true,"id":730},"user":"jenslincke","tags":[]},"730":{"isSerializedDate":true,"string":"Sat Aug 09 2014 18:20:41 GMT+0200 (W. Europe Summer Time)"},"731":{"varMapping":{"__isSmartRef__":true,"id":732},"source":"function sortCurrentTableBy(columnName) {\n // this.sortCurrentTableBy(\"FileName\")\n\n if (!this.currentTable) return;\n var table = this.getFilteredTable()\n if (this.currentTable.lastSortedColumn == columnName) {\n this.reverseTableEnabled = !this.reverseTableEnabled\n }\n this.currentTable.lastSortedColumn = columnName\n this.printTableSortedBy(table, columnName);\n this.printHistogramSortedBy(table, columnName);\n}","funcProperties":{"__isSmartRef__":true,"id":733},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"732":{"this":{"__isSmartRef__":true,"id":2}},"733":{"timestamp":{"__isSmartRef__":true,"id":734},"user":"jenslincke","tags":[]},"734":{"isSerializedDate":true,"string":"Fri Oct 25 2013 14:03:03 GMT+0200 (W. Europe Summer Time)"},"735":{"varMapping":{"__isSmartRef__":true,"id":736},"source":"function showTable(tableName) {\n if (!this.tables[tableName]) {\n return\n }\n this.updateTable(this.tables[tableName]);\n}","funcProperties":{"__isSmartRef__":true,"id":737},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"736":{"this":{"__isSmartRef__":true,"id":2}},"737":{"timestamp":{"__isSmartRef__":true,"id":738},"user":"jenslincke","tags":[]},"738":{"isSerializedDate":true,"string":"Sun Sep 15 2013 21:27:11 GMT+0200 (W. Europe Summer Time)"},"739":{"varMapping":{"__isSmartRef__":true,"id":740},"source":"function update() {\n this.get(\"TableList\").selectAt(0)\n this.get(\"TableClip\").setScroll(0,0);\n\n}","funcProperties":{"__isSmartRef__":true,"id":741},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"740":{"this":{"__isSmartRef__":true,"id":2}},"741":{"timestamp":{"__isSmartRef__":true,"id":742},"user":"jenslincke","tags":[]},"742":{"isSerializedDate":true,"string":"Sun Sep 15 2013 21:29:37 GMT+0200 (W. Europe Summer Time)"},"743":{"varMapping":{"__isSmartRef__":true,"id":744},"source":"function updateCurrentHistgram() {\n // this.sortCurrentTableBy(\"FileName\")\n this.printHistogramSortedBy(this.currentTable, this.currentColumnName);\n}","funcProperties":{"__isSmartRef__":true,"id":745},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"744":{"this":{"__isSmartRef__":true,"id":2}},"745":{"timestamp":{"__isSmartRef__":true,"id":746},"user":"jenslincke","tags":[]},"746":{"isSerializedDate":true,"string":"Sun Sep 15 2013 17:38:41 GMT+0200 (W. Europe Summer Time)"},"747":{"varMapping":{"__isSmartRef__":true,"id":748},"source":"function isLatexPrinting() {\n return this.get(\"PrintMode\").selection == \"Latex\"\n}","funcProperties":{"__isSmartRef__":true,"id":749},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"748":{"this":{"__isSmartRef__":true,"id":2}},"749":{"timestamp":{"__isSmartRef__":true,"id":750},"user":"jenslincke","tags":[]},"750":{"isSerializedDate":true,"string":"Mon Aug 04 2014 16:47:10 GMT+0200 (W. Europe Summer Time)"},"751":{"varMapping":{"__isSmartRef__":true,"id":752},"source":"function histogram(collection, keyFunc) {\n var h = this.histogramDict(collection, keyFunc)\n return Properties.own(h)\n .collect(function(ea) {\n return {\n key: ea, \n value: h[ea], \n toString: function() {\n return this.key + \": \" + this.value\n } \n }\n })\n //.sortBy(function(ea) { return ea.value})\n // .reverse()\n}","funcProperties":{"__isSmartRef__":true,"id":753},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"752":{"this":{"__isSmartRef__":true,"id":2}},"753":{"timestamp":{"__isSmartRef__":true,"id":754},"user":"jenslincke","tags":[]},"754":{"isSerializedDate":true,"string":"Sun Sep 15 2013 16:15:06 GMT+0200 (W. Europe Summer Time)"},"755":{"varMapping":{"__isSmartRef__":true,"id":756},"source":"function histogramDict(collection, keyFunc) {\n var h = {}\n collection.each(function(ea) {\n var key = keyFunc(ea)\n h[key] = h[key] || 0;\n h[key] ++ \n })\n return h\n}","funcProperties":{"__isSmartRef__":true,"id":757},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"756":{"this":{"__isSmartRef__":true,"id":2}},"757":{"timestamp":{"__isSmartRef__":true,"id":758},"user":"jenslincke","tags":[]},"758":{"isSerializedDate":true,"string":"Sun Sep 15 2013 16:15:14 GMT+0200 (W. Europe Summer Time)"},"759":{"varMapping":{"__isSmartRef__":true,"id":760},"source":"function reset() {\n this.doNotSerialize = ['tables']\n}","funcProperties":{"__isSmartRef__":true,"id":761},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"760":{"this":{"__isSmartRef__":true,"id":2}},"761":{"timestamp":{"__isSmartRef__":true,"id":762},"user":"jenslincke","tags":[]},"762":{"isSerializedDate":true,"string":"Sun Sep 15 2013 23:48:34 GMT+0200 (W. Europe Summer Time)"},"763":{"varMapping":{"__isSmartRef__":true,"id":764},"source":"function neoPane() {\n return this.get(\"DerivationNeo4JGraphPane\")\n}","funcProperties":{"__isSmartRef__":true,"id":765},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"764":{"this":{"__isSmartRef__":true,"id":2}},"765":{"timestamp":{"__isSmartRef__":true,"id":766},"user":"jenslincke","tags":[]},"766":{"isSerializedDate":true,"string":"Sun Sep 15 2013 16:17:34 GMT+0200 (W. Europe Summer Time)"},"767":{"varMapping":{"__isSmartRef__":true,"id":768},"source":"function updateCurrentTable() {\n // this.sortCurrentTableBy(\"FileName\")\n\n var table = this.getFilteredTable()\n\n this.printTableSortedBy(table, this.lastSortedColumn);\n this.printHistogramSortedBy(table, this.lastSortedColumn);\n \n this.get(\"TableVisualizer\").visualizeTable()\n}","funcProperties":{"__isSmartRef__":true,"id":769},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"768":{"this":{"__isSmartRef__":true,"id":2}},"769":{"timestamp":{"__isSmartRef__":true,"id":770},"user":"jenslincke","tags":[]},"770":{"isSerializedDate":true,"string":"Tue Sep 24 2013 19:17:26 GMT+0200 (W. Europe Summer Time)"},"771":{"varMapping":{"__isSmartRef__":true,"id":772},"source":"function saveFilterSource(source) {\n if (!this.currentTable) return;\n this.currentTable.filterSource = source\n}","funcProperties":{"__isSmartRef__":true,"id":773},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"772":{"this":{"__isSmartRef__":true,"id":2}},"773":{"timestamp":{"__isSmartRef__":true,"id":774},"user":"jenslincke","tags":[]},"774":{"isSerializedDate":true,"string":"Sun Sep 15 2013 17:25:01 GMT+0200 (W. Europe Summer Time)"},"775":{"varMapping":{"__isSmartRef__":true,"id":776},"source":"function log(s) {\n this.owner.log(s)\n}","funcProperties":{"__isSmartRef__":true,"id":777},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"776":{"this":{"__isSmartRef__":true,"id":2}},"777":{"timestamp":{"__isSmartRef__":true,"id":778},"user":"jenslincke","tags":[]},"778":{"isSerializedDate":true,"string":"Sun Sep 15 2013 17:29:34 GMT+0200 (W. Europe Summer Time)"},"779":{"varMapping":{"__isSmartRef__":true,"id":780},"source":"function deleteCurrentTable() {\n var url = this.get(\"FileList\").selection\n this.world().confirm(\"Do you want to delete \" + url + \"?\", function(bool) {\n if (bool) {\n new WebResource(url).del()\n this.updateFileList()\n }\n }.bind(this))\n}","funcProperties":{"__isSmartRef__":true,"id":781},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"780":{"this":{"__isSmartRef__":true,"id":2}},"781":{"timestamp":{"__isSmartRef__":true,"id":782},"user":"jenslincke","tags":[]},"782":{"isSerializedDate":true,"string":"Sun Sep 15 2013 17:45:07 GMT+0200 (W. Europe Summer Time)"},"783":{"varMapping":{"__isSmartRef__":true,"id":784},"source":"function removeSelectedTable() {\n delete this.tables[this.get('TableList').selection]\n this.updateTableList()\n\n \n}","funcProperties":{"__isSmartRef__":true,"id":785},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"784":{"this":{"__isSmartRef__":true,"id":2}},"785":{"timestamp":{"__isSmartRef__":true,"id":786},"user":"jenslincke","tags":[]},"786":{"isSerializedDate":true,"string":"Sun Sep 15 2013 21:06:07 GMT+0200 (W. Europe Summer Time)"},"787":{"varMapping":{"__isSmartRef__":true,"id":788},"source":"function maxNumbersInTable(columns, table) {\r\n // tests are gone... :-(\n var maxNumbers = {}\r\n columns.each(function(ea, idx) {\r\n table.detect(function(row) {\r\n if (row.include(\"TOTAL\")) return false\r\n var n = row[idx]\r\n if (n == null || n == \"null\") n = 0\r\n if (Object.isNumber(n)) {\r\n maxNumbers[ea] = Math.max(maxNumbers[ea] || 0, n)\r\n return false // continue for next falue\r\n } else {\r\n maxNumbers[ea] = undefined\r\n return true // stop, no number\r\n }\r\n })\r\n })\r\n return maxNumbers\r\n}","funcProperties":{"__isSmartRef__":true,"id":789},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"788":{"this":{"__isSmartRef__":true,"id":2}},"789":{"timestamp":{"__isSmartRef__":true,"id":790},"user":"jenslincke","tags":["table"]},"790":{"isSerializedDate":true,"string":"Wed Aug 06 2014 16:05:23 GMT+0200 (W. Europe Summer Time)"},"791":{"varMapping":{"__isSmartRef__":true,"id":792},"source":"function minNumbersInTable(columns, table) {\r\n var minNumbers = {}\r\n columns.each(function(ea, idx) {\r\n table.detect(function(row) {\r\n var n = row[idx]\r\n if (n == null || n == \"null\") return false // null is allowed here\r\n if (Object.isNumber(n)) {\r\n if (minNumbers[ea] == undefined) \r\n minNumbers[ea] = n\r\n else\r\n minNumbers [ea] = Math.min(minNumbers[ea], n)\r\n return false // continue for next falue\r\n } else {\r\n minNumbers [ea] = undefined\r\n return true // stop, no number\r\n }\r\n })\r\n })\r\n return minNumbers \r\n}","funcProperties":{"__isSmartRef__":true,"id":793},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"792":{"this":{"__isSmartRef__":true,"id":2}},"793":{"timestamp":{"__isSmartRef__":true,"id":794},"user":"jenslincke","tags":["table"]},"794":{"isSerializedDate":true,"string":"Wed Aug 06 2014 16:05:17 GMT+0200 (W. Europe Summer Time)"},"795":{"varMapping":{"__isSmartRef__":true,"id":796},"source":"function getFilteredTable() {\n var table = Object.clone(this.currentTable)\r\n var columns = table.columns\r\n var filter = this.getAndCheckFilterFunction();\r\n if (filter) table.data = table.data.select(function(row) {\r\n var obj = {}\r\n columns.each(function(column) {obj[column] = row[columns.indexOf(column)] })\r\n try { return filter.call(obj)} catch(e) {return false} })\n return table\n}","funcProperties":{"__isSmartRef__":true,"id":797},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"796":{"this":{"__isSmartRef__":true,"id":2}},"797":{"timestamp":{"__isSmartRef__":true,"id":798},"user":"jenslincke","tags":[]},"798":{"isSerializedDate":true,"string":"Tue Sep 24 2013 19:56:28 GMT+0200 (W. Europe Summer Time)"},"799":{"varMapping":{"__isSmartRef__":true,"id":800},"source":"function isTabedPrinting() {\n // this.get(\"PrintMode\").setList([\"Strings\", \"Latex\", \"Tabs\"])\n return this.get(\"PrintMode\").selection == \"Tabs\"\n}","funcProperties":{"__isSmartRef__":true,"id":801},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"800":{"this":{"__isSmartRef__":true,"id":2}},"801":{"timestamp":{"__isSmartRef__":true,"id":802},"user":"jenslincke","tags":[]},"802":{"isSerializedDate":true,"string":"Mon Aug 04 2014 16:46:41 GMT+0200 (W. Europe Summer Time)"},"803":{"submorphs":[{"__isSmartRef__":true,"id":804},{"__isSmartRef__":true,"id":1417},{"__isSmartRef__":true,"id":1541},{"__isSmartRef__":true,"id":1606},{"__isSmartRef__":true,"id":1640},{"__isSmartRef__":true,"id":1661},{"__isSmartRef__":true,"id":1666},{"__isSmartRef__":true,"id":1708},{"__isSmartRef__":true,"id":1726},{"__isSmartRef__":true,"id":1760},{"__isSmartRef__":true,"id":1798},{"__isSmartRef__":true,"id":1832},{"__isSmartRef__":true,"id":1868},{"__isSmartRef__":true,"id":2082},{"__isSmartRef__":true,"id":2103}],"scripts":[],"id":"75C033E7-FC4D-4C9D-831C-E0B86F8BD93E","shape":{"__isSmartRef__":true,"id":2108},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"NeoVisualization","partsBinMetaInfo":{"__isSmartRef__":true,"id":2109},"eventHandler":{"__isSmartRef__":true,"id":2135},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","2CD745E0-90A8-4FC8-B8A3-3DB32859D78B","3AFFA9AE-3FC2-4DDD-BF00-44057AD72B31","41862988-796D-4FF8-9D5B-9FD59D65CB3C","811998BA-E62C-4392-9373-EDC02EA8CC7C"],"partTests":{"__isSmartRef__":true,"id":2136},"_ClipMode":"visible","moved":true,"owner":{"__isSmartRef__":true,"id":1},"isBeingDragged":false,"layout":{"__isSmartRef__":true,"id":2141},"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"grabbingEnabled":false,"isCopyMorphRef":true,"morphRefId":3,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2142},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(9.0,1641.4)","distanceToDragEvent":"lively.pt(1214.8,-17.1)"},"804":{"#startLetters":"d3","_ClipMode":"visible","_traitConfig_":[{"__isSmartRef__":true,"id":805},{"__isSmartRef__":true,"id":807}],"derivationIds":[null,"3C1D17F3-0044-4726-B85A-A251A1F703B8","E43FA7DD-9693-40B9-8E88-821D5DCC0811","9FB8D17D-9023-44E8-9410-8AD268E25C75","9BD8C9A7-2A05-43C2-B96B-5EBD5ED44A95","54E9039F-4D91-48B7-B91C-8338A0BEC1F7","1A5EB7AE-1AC3-4FA6-8CF2-0835DF44CFA1","70EF3E19-6C17-4AF7-8C9B-406C7086FDB9","F339FE29-2DCB-412C-AC2A-3427836D8E01","1C09A3B2-9BEC-4791-8140-328F82C79025","717B61B6-1ED9-4352-89F1-215B0148A491","7C62382C-A5E1-4302-BA7E-79A1EAB06592","D7236C84-FA4D-4A12-A484-272D5B76E919","10F38E43-8F87-4ED9-B839-C55255A3C121","2AC30033-165B-4812-9CFE-3056BB5B211B","CFB6B1E6-8C7E-4A34-BFE7-27D8FB6E9570","4628B9BA-F948-4874-95EC-B0E1E6615699","51FD6EA3-83B2-4E5B-985E-88F399944801","1E1F9B91-A691-4B7F-B963-AFC5B3A6A38F"],"__layered_droppingEnabled__":false,"eventHandler":{"__isSmartRef__":true,"id":809},"halosEnabled":true,"id":"46F2A1FD-11EA-41D1-945E-A857D86982B0","isBeingDragged":false,"layout":{"__isSmartRef__":true,"id":810},"name":"D3Panel","partsBinMetaInfo":{"__isSmartRef__":true,"id":811},"prevScroll":[0,0],"scripts":[],"shape":{"__isSmartRef__":true,"id":827},"showsHalos":false,"submorphs":[],"xUnit":"words","yUnit":"ms","yValues":[1,0,2,4,4,2,2,6,6,5,1],"doNotSerialize":["chart","svgNode","data","lastNode"],"isLockOwner":false,"grabbingEnabled":false,"nextDataIndex":6,"nextDataInde":0,"nextDataIndex2":null,"moved":true,"_StyleSheet":{"__isSmartRef__":true,"id":859},"_StyleClassNames":["Morph","HtmlWrapperMorph"],"isCopyMorphRef":true,"morphRefId":1,"owner":{"__isSmartRef__":true,"id":803},"scaleDetail":3.1361627548203748,"_PreviousBorderWidth":0,"attributeConnections":[{"__isSmartRef__":true,"id":830}],"target":{"__isSmartRef__":true,"id":895},"_Visible":true,"nodeSizeFuncions":[],"nodeSizeFunctions":null,"_Rotation":0,"_Scale":1,"partTests":{"__isSmartRef__":true,"id":896},"graphData":{"__isSmartRef__":true,"id":897},"lastD3Translate":[223.24327820066492,-29.187721840188942],"lastD3Scale":1.0000000000000004,"__serializedExpressions__":["distanceToDragEvent","updateDelayed","_Position"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1200},"__LivelyClassName__":"lively.morphic.HtmlWrapperMorph","__SourceModuleName__":"Global.lively.morphic.AdditionalMorphs","distanceToDragEvent":"lively.pt(978.4,-22.2)","updateDelayed":"lively.pt(1194.0,979.0)","_Position":"lively.pt(158.6,26.2)"},"805":{"options":{"__isSmartRef__":true,"id":806},"traitName":"d3WrapperTrait"},"806":{},"807":{"options":{"__isSmartRef__":true,"id":808},"traitName":"apps.d3Interface.d3WrapperTrait"},"808":{},"809":{"morph":{"__isSmartRef__":true,"id":804},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"810":{"resizeHeight":true,"resizeWidth":true,"adjustForNewBounds":true},"811":{"#startLetters":"","partName":"ConnectionsInHierarchyVisualization","requiredModules":["apps.d3Interface"],"partsSpaceName":"PartsBin/Visualization/","comment":"no comment","changes":[{"__isSmartRef__":true,"id":812},{"__isSmartRef__":true,"id":814},{"__isSmartRef__":true,"id":816},{"__isSmartRef__":true,"id":818},{"__isSmartRef__":true,"id":820},{"__isSmartRef__":true,"id":822},{"__isSmartRef__":true,"id":824}],"migrationLevel":4,"lastModifiedDate":{"__isSmartRef__":true,"id":826},"revisionOnLoad":189878,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"812":{"date":{"__isSmartRef__":true,"id":813},"author":"jenslincke","message":"no comment","id":"900E924E-3DCD-4D36-8A5E-D127326B5E11"},"813":{"isSerializedDate":true,"string":"Fri Jan 18 2013 11:57:37 GMT+0100 (W. Europe Standard Time)"},"814":{"date":{"__isSmartRef__":true,"id":815},"author":"jenslincke","message":"no comment","id":"EA8F98BC-8C7A-4CAE-AE29-018891B193BD"},"815":{"isSerializedDate":true,"string":"Tue Dec 18 2012 13:13:31 GMT+0100 (W. Europe Standard Time)"},"816":{"date":{"__isSmartRef__":true,"id":817},"author":"jenslincke","message":"no comment","id":"0755F3DA-DF64-42F7-ABDB-3C44A0BB26AE"},"817":{"isSerializedDate":true,"string":"Tue Dec 18 2012 13:13:06 GMT+0100 (W. Europe Standard Time)"},"818":{"date":{"__isSmartRef__":true,"id":819},"author":"jenslincke","message":"no comment","id":"7D1101AA-8EAA-45A3-815A-CD8CA3E33E22"},"819":{"isSerializedDate":true,"string":"Fri Jan 18 2013 14:24:46 GMT+0100 (W. Europe Standard Time)"},"820":{"date":{"__isSmartRef__":true,"id":821},"author":"jenslincke","message":"no comment","id":"1DF7B5DC-D35D-48A1-96CC-D41D3A09E32D"},"821":{"isSerializedDate":true,"string":"Fri Jan 18 2013 14:26:16 GMT+0100 (W. Europe Standard Time)"},"822":{"date":{"__isSmartRef__":true,"id":823},"author":"jenslincke","message":"no comment","id":"49533FF8-27AF-4D61-AF07-8C2333C56248"},"823":{"isSerializedDate":true,"string":"Fri Jan 18 2013 15:16:13 GMT+0100 (W. Europe Standard Time)"},"824":{"date":{"__isSmartRef__":true,"id":825},"author":"jenslincke","message":"no comment","id":"A98DE527-3D34-4333-9255-890015DC8B5E"},"825":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:24:08 GMT+0100 (W. Europe Standard Time)"},"826":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:21:17 GMT+0100 (W. Europe Standard Time)"},"827":{"_BorderRadius":0,"_BorderStyle":"solid","_BorderWidth":0,"_Opacity":1,"stringifiedShapeNode":"","_AppearanceStylingMode":false,"_BorderStylingMode":true,"attributeConnections":[{"__isSmartRef__":true,"id":828},{"__isSmartRef__":true,"id":837}],"doNotSerialize":["$$_Extent"],"doNotCopyProperties":["$$_Extent"],"__serializedExpressions__":["_BorderColor","_Fill","_Padding","_Position","extent","_Extent"],"__LivelyClassName__":"lively.morphic.Shapes.External","__SourceModuleName__":"Global.lively.morphic.Shapes","_BorderColor":"Color.rgb(222,222,222)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)","_Position":"lively.pt(0.0,-3.0)","extent":"lively.pt(1194.0,979.0)","_Extent":"lively.pt(1194.0,979.0)"},"828":{"sourceObj":{"__isSmartRef__":true,"id":827},"sourceAttrName":"_Extent","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"updateDelayed","varMapping":{"__isSmartRef__":true,"id":829},"dependedBy":{"__isSmartRef__":true,"id":830},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"829":{"source":{"__isSmartRef__":true,"id":827},"target":{"__isSmartRef__":true,"id":804}},"830":{"dependendConnections":[{"__isSmartRef__":true,"id":831},{"__isSmartRef__":true,"id":831},{"__isSmartRef__":true,"id":831},{"__isSmartRef__":true,"id":831},{"__isSmartRef__":true,"id":834},{"__isSmartRef__":true,"id":828},{"__isSmartRef__":true,"id":837}],"sourceAttrName":"extent","sourceObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"updateDelayed","targetObj":{"__isSmartRef__":true,"id":804},"attributeConnections":[{"__isSmartRef__":true,"id":839},{"__isSmartRef__":true,"id":841},{"__isSmartRef__":true,"id":843},{"__isSmartRef__":true,"id":845},{"__isSmartRef__":true,"id":847},{"__isSmartRef__":true,"id":849},{"__isSmartRef__":true,"id":851},{"__isSmartRef__":true,"id":853},{"__isSmartRef__":true,"id":855},{"__isSmartRef__":true,"id":857}],"doNotSerialize":["$$converterString","$$updaterString","$$varMapping"],"doNotCopyProperties":["$$converterString","$$updaterString","$$varMapping"],"__LivelyClassName__":"lively.morphic.GeometryConnection","__SourceModuleName__":"Global.lively.bindings.GeometryBindings"},"831":{"dependedBy":{"__isSmartRef__":true,"id":830},"sourceAttrName":"_Extent","sourceObj":{"__isSmartRef__":true,"id":832},"targetMethodName":"updateDelayed","targetObj":{"__isSmartRef__":true,"id":804},"varMapping":{"__isSmartRef__":true,"id":833},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"832":{"_BorderRadius":0,"_BorderStyle":"solid","_BorderWidth":0,"_Opacity":1,"attributeConnections":[{"__isSmartRef__":true,"id":831}],"doNotCopyProperties":["$$_Extent"],"doNotSerialize":["$$_Extent"],"stringifiedShapeNode":"","_AppearanceStylingMode":false,"_BorderStylingMode":true,"__serializedExpressions__":["_BorderColor","_Fill","_Padding","_Position","extent","_Extent"],"__LivelyClassName__":"lively.morphic.Shapes.External","__SourceModuleName__":"Global.lively.morphic.Shapes","_BorderColor":"Color.rgb(222,222,222)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)","_Position":"lively.pt(0.0,-3.0)","extent":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1299.0,962.0)"},"833":{"source":{"__isSmartRef__":true,"id":832},"target":{"__isSmartRef__":true,"id":804}},"834":{"sourceObj":{"__isSmartRef__":true,"id":835},"sourceAttrName":"_Extent","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"updateDelayed","varMapping":{"__isSmartRef__":true,"id":836},"dependedBy":{"__isSmartRef__":true,"id":830},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"835":{"_BorderRadius":0,"_BorderStyle":"solid","_BorderWidth":0,"_Opacity":1,"stringifiedShapeNode":"","_AppearanceStylingMode":false,"_BorderStylingMode":true,"attributeConnections":[{"__isSmartRef__":true,"id":834}],"doNotSerialize":["$$_Extent"],"doNotCopyProperties":["$$_Extent"],"__serializedExpressions__":["_BorderColor","_Fill","_Padding","_Position","extent","_Extent"],"__LivelyClassName__":"lively.morphic.Shapes.External","__SourceModuleName__":"Global.lively.morphic.Shapes","_BorderColor":"Color.rgb(222,222,222)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)","_Position":"lively.pt(0.0,-3.0)","extent":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1299.0,962.0)"},"836":{"source":{"__isSmartRef__":true,"id":835},"target":{"__isSmartRef__":true,"id":804}},"837":{"sourceObj":{"__isSmartRef__":true,"id":827},"sourceAttrName":"_Extent","targetObj":{"__isSmartRef__":true,"id":830},"targetMethodName":"update","varMapping":{"__isSmartRef__":true,"id":838},"dependedBy":{"__isSmartRef__":true,"id":830},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"838":{"source":{"__isSmartRef__":true,"id":827},"target":{"__isSmartRef__":true,"id":830}},"839":{"sourceObj":{"__isSmartRef__":true,"id":830},"sourceAttrName":"converterString","targetObj":{"__isSmartRef__":true,"id":831},"targetMethodName":"setConverter","varMapping":{"__isSmartRef__":true,"id":840},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"840":{"source":{"__isSmartRef__":true,"id":830},"target":{"__isSmartRef__":true,"id":831}},"841":{"sourceObj":{"__isSmartRef__":true,"id":830},"sourceAttrName":"updaterString","targetObj":{"__isSmartRef__":true,"id":831},"targetMethodName":"setUpdater","varMapping":{"__isSmartRef__":true,"id":842},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"842":{"source":{"__isSmartRef__":true,"id":830},"target":{"__isSmartRef__":true,"id":831}},"843":{"sourceObj":{"__isSmartRef__":true,"id":830},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":831},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":844},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"844":{"source":{"__isSmartRef__":true,"id":830},"target":{"__isSmartRef__":true,"id":831}},"845":{"sourceObj":{"__isSmartRef__":true,"id":830},"sourceAttrName":"converterString","targetObj":{"__isSmartRef__":true,"id":834},"targetMethodName":"setConverter","varMapping":{"__isSmartRef__":true,"id":846},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"846":{"source":{"__isSmartRef__":true,"id":830},"target":{"__isSmartRef__":true,"id":834}},"847":{"sourceObj":{"__isSmartRef__":true,"id":830},"sourceAttrName":"updaterString","targetObj":{"__isSmartRef__":true,"id":834},"targetMethodName":"setUpdater","varMapping":{"__isSmartRef__":true,"id":848},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"848":{"source":{"__isSmartRef__":true,"id":830},"target":{"__isSmartRef__":true,"id":834}},"849":{"sourceObj":{"__isSmartRef__":true,"id":830},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":834},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":850},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"850":{"source":{"__isSmartRef__":true,"id":830},"target":{"__isSmartRef__":true,"id":834}},"851":{"sourceObj":{"__isSmartRef__":true,"id":830},"sourceAttrName":"converterString","targetObj":{"__isSmartRef__":true,"id":828},"targetMethodName":"setConverter","varMapping":{"__isSmartRef__":true,"id":852},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"852":{"source":{"__isSmartRef__":true,"id":830},"target":{"__isSmartRef__":true,"id":828}},"853":{"sourceObj":{"__isSmartRef__":true,"id":830},"sourceAttrName":"updaterString","targetObj":{"__isSmartRef__":true,"id":828},"targetMethodName":"setUpdater","varMapping":{"__isSmartRef__":true,"id":854},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"854":{"source":{"__isSmartRef__":true,"id":830},"target":{"__isSmartRef__":true,"id":828}},"855":{"sourceObj":{"__isSmartRef__":true,"id":830},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":828},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":856},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"856":{"source":{"__isSmartRef__":true,"id":830},"target":{"__isSmartRef__":true,"id":828}},"857":{"sourceObj":{"__isSmartRef__":true,"id":830},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":837},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":858},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"858":{"source":{"__isSmartRef__":true,"id":830},"target":{"__isSmartRef__":true,"id":837}},"859":{"rules":[{"__isSmartRef__":true,"id":860},{"__isSmartRef__":true,"id":863},{"__isSmartRef__":true,"id":865},{"__isSmartRef__":true,"id":869},{"__isSmartRef__":true,"id":873},{"__isSmartRef__":true,"id":877},{"__isSmartRef__":true,"id":884},{"__isSmartRef__":true,"id":886},{"__isSmartRef__":true,"id":892}],"originMorph":{"__isSmartRef__":true,"id":804},"__LivelyClassName__":"lively.morphic.StyleSheet","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"860":{"declarations":[{"__isSmartRef__":true,"id":861},{"__isSmartRef__":true,"id":862}],"styleSheet":{"__isSmartRef__":true,"id":859},"selector":".node circle","__LivelyClassName__":"lively.morphic.StyleSheetRule","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"861":{"values":["steelblue"],"rule":{"__isSmartRef__":true,"id":860},"property":"stroke","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"862":{"values":["1.5px"],"rule":{"__isSmartRef__":true,"id":860},"property":"stroke-width","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"863":{"declarations":[{"__isSmartRef__":true,"id":864}],"styleSheet":{"__isSmartRef__":true,"id":859},"selector":".node","__LivelyClassName__":"lively.morphic.StyleSheetRule","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"864":{"values":["10px","sans-serif"],"rule":{"__isSmartRef__":true,"id":863},"property":"font","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"865":{"declarations":[{"__isSmartRef__":true,"id":866},{"__isSmartRef__":true,"id":867},{"__isSmartRef__":true,"id":868}],"styleSheet":{"__isSmartRef__":true,"id":859},"selector":".link","__LivelyClassName__":"lively.morphic.StyleSheetRule","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"866":{"values":["none"],"rule":{"__isSmartRef__":true,"id":865},"property":"fill","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"867":{"values":["#ccc"],"rule":{"__isSmartRef__":true,"id":865},"property":"stroke","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"868":{"values":["1px"],"rule":{"__isSmartRef__":true,"id":865},"property":"stroke-width","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"869":{"declarations":[{"__isSmartRef__":true,"id":870},{"__isSmartRef__":true,"id":871},{"__isSmartRef__":true,"id":872}],"styleSheet":{"__isSmartRef__":true,"id":859},"selector":".link2","__LivelyClassName__":"lively.morphic.StyleSheetRule","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"870":{"values":["none"],"rule":{"__isSmartRef__":true,"id":869},"property":"fill","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"871":{"values":["red"],"rule":{"__isSmartRef__":true,"id":869},"property":"stroke","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"872":{"values":["0.7"],"rule":{"__isSmartRef__":true,"id":869},"property":"stroke-opacity","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"873":{"declarations":[{"__isSmartRef__":true,"id":874},{"__isSmartRef__":true,"id":875},{"__isSmartRef__":true,"id":876}],"styleSheet":{"__isSmartRef__":true,"id":859},"selector":".link2:hover","__LivelyClassName__":"lively.morphic.StyleSheetRule","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"874":{"values":["1"],"rule":{"__isSmartRef__":true,"id":873},"property":"stroke-opacity","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"875":{"values":["3px"],"rule":{"__isSmartRef__":true,"id":873},"property":"stroke-width","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"876":{"values":["none"],"rule":{"__isSmartRef__":true,"id":873},"property":"fill","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"877":{"declarations":[{"__isSmartRef__":true,"id":878},{"__isSmartRef__":true,"id":879},{"__isSmartRef__":true,"id":880},{"__isSmartRef__":true,"id":881},{"__isSmartRef__":true,"id":882},{"__isSmartRef__":true,"id":883}],"styleSheet":{"__isSmartRef__":true,"id":859},"selector":".treeMapNode","__LivelyClassName__":"lively.morphic.StyleSheetRule","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"878":{"values":["solid","1px","black"],"rule":{"__isSmartRef__":true,"id":877},"property":"border","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetShorthandDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"879":{"values":["10px","sans-serif"],"rule":{"__isSmartRef__":true,"id":877},"property":"font","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"880":{"values":["12px"],"rule":{"__isSmartRef__":true,"id":877},"property":"line-height","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"881":{"values":["hidden"],"rule":{"__isSmartRef__":true,"id":877},"property":"overflow","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"882":{"values":["absolute"],"rule":{"__isSmartRef__":true,"id":877},"property":"position","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"883":{"values":["2px"],"rule":{"__isSmartRef__":true,"id":877},"property":"text-indent","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"884":{"declarations":[{"__isSmartRef__":true,"id":885}],"styleSheet":{"__isSmartRef__":true,"id":859},"selector":".labelbody","__LivelyClassName__":"lively.morphic.StyleSheetRule","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"885":{"values":["2px"],"rule":{"__isSmartRef__":true,"id":884},"property":"margin","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"886":{"declarations":[{"__isSmartRef__":true,"id":887},{"__isSmartRef__":true,"id":888},{"__isSmartRef__":true,"id":889},{"__isSmartRef__":true,"id":890},{"__isSmartRef__":true,"id":891}],"styleSheet":{"__isSmartRef__":true,"id":859},"selector":".foreignObject","__LivelyClassName__":"lively.morphic.StyleSheetRule","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"887":{"values":["sans-serif"],"rule":{"__isSmartRef__":true,"id":886},"property":"font","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"888":{"values":["9px"],"rule":{"__isSmartRef__":true,"id":886},"property":"font-size","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"889":{"values":["ellipsis"],"rule":{"__isSmartRef__":true,"id":886},"property":"text-overflow","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"890":{"values":["left"],"rule":{"__isSmartRef__":true,"id":886},"property":"text-align","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"891":{"values":["break-word"],"rule":{"__isSmartRef__":true,"id":886},"property":"word-wrap","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"892":{"declarations":[{"__isSmartRef__":true,"id":893},{"__isSmartRef__":true,"id":894}],"styleSheet":{"__isSmartRef__":true,"id":859},"selector":"rect","__LivelyClassName__":"lively.morphic.StyleSheetRule","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"893":{"values":["none"],"rule":{"__isSmartRef__":true,"id":892},"property":"fill","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"894":{"values":["#FFFFFF"],"rule":{"__isSmartRef__":true,"id":892},"property":"stroke","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"895":{"name":"root","submorphs":[null]},"896":{},"897":{"nodes":[{"__isSmartRef__":true,"id":898},{"__isSmartRef__":true,"id":900},{"__isSmartRef__":true,"id":902},{"__isSmartRef__":true,"id":904},{"__isSmartRef__":true,"id":906},{"__isSmartRef__":true,"id":908},{"__isSmartRef__":true,"id":910},{"__isSmartRef__":true,"id":912},{"__isSmartRef__":true,"id":914},{"__isSmartRef__":true,"id":916},{"__isSmartRef__":true,"id":918},{"__isSmartRef__":true,"id":920},{"__isSmartRef__":true,"id":922},{"__isSmartRef__":true,"id":924},{"__isSmartRef__":true,"id":926},{"__isSmartRef__":true,"id":928},{"__isSmartRef__":true,"id":930},{"__isSmartRef__":true,"id":932},{"__isSmartRef__":true,"id":934},{"__isSmartRef__":true,"id":936},{"__isSmartRef__":true,"id":938},{"__isSmartRef__":true,"id":940},{"__isSmartRef__":true,"id":942},{"__isSmartRef__":true,"id":944},{"__isSmartRef__":true,"id":946},{"__isSmartRef__":true,"id":948},{"__isSmartRef__":true,"id":950},{"__isSmartRef__":true,"id":952},{"__isSmartRef__":true,"id":954},{"__isSmartRef__":true,"id":956},{"__isSmartRef__":true,"id":958},{"__isSmartRef__":true,"id":960},{"__isSmartRef__":true,"id":962},{"__isSmartRef__":true,"id":964},{"__isSmartRef__":true,"id":966},{"__isSmartRef__":true,"id":968},{"__isSmartRef__":true,"id":970},{"__isSmartRef__":true,"id":972},{"__isSmartRef__":true,"id":974},{"__isSmartRef__":true,"id":976},{"__isSmartRef__":true,"id":978},{"__isSmartRef__":true,"id":980},{"__isSmartRef__":true,"id":982},{"__isSmartRef__":true,"id":984},{"__isSmartRef__":true,"id":986},{"__isSmartRef__":true,"id":988},{"__isSmartRef__":true,"id":990},{"__isSmartRef__":true,"id":992},{"__isSmartRef__":true,"id":994},{"__isSmartRef__":true,"id":996},{"__isSmartRef__":true,"id":998},{"__isSmartRef__":true,"id":1000},{"__isSmartRef__":true,"id":1002},{"__isSmartRef__":true,"id":1004},{"__isSmartRef__":true,"id":1006},{"__isSmartRef__":true,"id":1008},{"__isSmartRef__":true,"id":1010},{"__isSmartRef__":true,"id":1012},{"__isSmartRef__":true,"id":1014},{"__isSmartRef__":true,"id":1016},{"__isSmartRef__":true,"id":1018},{"__isSmartRef__":true,"id":1020},{"__isSmartRef__":true,"id":1022},{"__isSmartRef__":true,"id":1024},{"__isSmartRef__":true,"id":1026},{"__isSmartRef__":true,"id":1028},{"__isSmartRef__":true,"id":1030},{"__isSmartRef__":true,"id":1032},{"__isSmartRef__":true,"id":1034},{"__isSmartRef__":true,"id":1036},{"__isSmartRef__":true,"id":1038},{"__isSmartRef__":true,"id":1040},{"__isSmartRef__":true,"id":1042},{"__isSmartRef__":true,"id":1044},{"__isSmartRef__":true,"id":1046},{"__isSmartRef__":true,"id":1048},{"__isSmartRef__":true,"id":1050},{"__isSmartRef__":true,"id":1052},{"__isSmartRef__":true,"id":1054},{"__isSmartRef__":true,"id":1056},{"__isSmartRef__":true,"id":1058},{"__isSmartRef__":true,"id":1060},{"__isSmartRef__":true,"id":1062},{"__isSmartRef__":true,"id":1064},{"__isSmartRef__":true,"id":1066},{"__isSmartRef__":true,"id":1068},{"__isSmartRef__":true,"id":1070},{"__isSmartRef__":true,"id":1072},{"__isSmartRef__":true,"id":1074},{"__isSmartRef__":true,"id":1076},{"__isSmartRef__":true,"id":1078},{"__isSmartRef__":true,"id":1080},{"__isSmartRef__":true,"id":1082},{"__isSmartRef__":true,"id":1084},{"__isSmartRef__":true,"id":1086},{"__isSmartRef__":true,"id":1088},{"__isSmartRef__":true,"id":1090},{"__isSmartRef__":true,"id":1092},{"__isSmartRef__":true,"id":1094},{"__isSmartRef__":true,"id":1096},{"__isSmartRef__":true,"id":1098},{"__isSmartRef__":true,"id":1100},{"__isSmartRef__":true,"id":1102},{"__isSmartRef__":true,"id":1104},{"__isSmartRef__":true,"id":1106},{"__isSmartRef__":true,"id":1108},{"__isSmartRef__":true,"id":1110},{"__isSmartRef__":true,"id":1112},{"__isSmartRef__":true,"id":1114},{"__isSmartRef__":true,"id":1116},{"__isSmartRef__":true,"id":1118},{"__isSmartRef__":true,"id":1120},{"__isSmartRef__":true,"id":1122},{"__isSmartRef__":true,"id":1124},{"__isSmartRef__":true,"id":1126},{"__isSmartRef__":true,"id":1128},{"__isSmartRef__":true,"id":1130},{"__isSmartRef__":true,"id":1132},{"__isSmartRef__":true,"id":1134},{"__isSmartRef__":true,"id":1136},{"__isSmartRef__":true,"id":1138},{"__isSmartRef__":true,"id":1140},{"__isSmartRef__":true,"id":1142},{"__isSmartRef__":true,"id":1144},{"__isSmartRef__":true,"id":1146},{"__isSmartRef__":true,"id":1148},{"__isSmartRef__":true,"id":1150},{"__isSmartRef__":true,"id":1152},{"__isSmartRef__":true,"id":1154},{"__isSmartRef__":true,"id":1156},{"__isSmartRef__":true,"id":1158},{"__isSmartRef__":true,"id":1160},{"__isSmartRef__":true,"id":1162},{"__isSmartRef__":true,"id":1164},{"__isSmartRef__":true,"id":1166},{"__isSmartRef__":true,"id":1168},{"__isSmartRef__":true,"id":1170},{"__isSmartRef__":true,"id":1172},{"__isSmartRef__":true,"id":1174},{"__isSmartRef__":true,"id":1176},{"__isSmartRef__":true,"id":1178},{"__isSmartRef__":true,"id":1180},{"__isSmartRef__":true,"id":1182},{"__isSmartRef__":true,"id":1184},{"__isSmartRef__":true,"id":1186},{"__isSmartRef__":true,"id":1188},{"__isSmartRef__":true,"id":1190},{"__isSmartRef__":true,"id":1192},{"__isSmartRef__":true,"id":1194},{"__isSmartRef__":true,"id":1196},{"__isSmartRef__":true,"id":1198}],"links":[],"objects":[{"__isSmartRef__":true,"id":899},{"__isSmartRef__":true,"id":901},{"__isSmartRef__":true,"id":903},{"__isSmartRef__":true,"id":905},{"__isSmartRef__":true,"id":907},{"__isSmartRef__":true,"id":909},{"__isSmartRef__":true,"id":911},{"__isSmartRef__":true,"id":913},{"__isSmartRef__":true,"id":915},{"__isSmartRef__":true,"id":917},{"__isSmartRef__":true,"id":919},{"__isSmartRef__":true,"id":921},{"__isSmartRef__":true,"id":923},{"__isSmartRef__":true,"id":925},{"__isSmartRef__":true,"id":927},{"__isSmartRef__":true,"id":929},{"__isSmartRef__":true,"id":931},{"__isSmartRef__":true,"id":933},{"__isSmartRef__":true,"id":935},{"__isSmartRef__":true,"id":937},{"__isSmartRef__":true,"id":939},{"__isSmartRef__":true,"id":941},{"__isSmartRef__":true,"id":943},{"__isSmartRef__":true,"id":945},{"__isSmartRef__":true,"id":947},{"__isSmartRef__":true,"id":949},{"__isSmartRef__":true,"id":951},{"__isSmartRef__":true,"id":953},{"__isSmartRef__":true,"id":955},{"__isSmartRef__":true,"id":957},{"__isSmartRef__":true,"id":959},{"__isSmartRef__":true,"id":961},{"__isSmartRef__":true,"id":963},{"__isSmartRef__":true,"id":965},{"__isSmartRef__":true,"id":967},{"__isSmartRef__":true,"id":969},{"__isSmartRef__":true,"id":971},{"__isSmartRef__":true,"id":973},{"__isSmartRef__":true,"id":975},{"__isSmartRef__":true,"id":977},{"__isSmartRef__":true,"id":979},{"__isSmartRef__":true,"id":981},{"__isSmartRef__":true,"id":983},{"__isSmartRef__":true,"id":985},{"__isSmartRef__":true,"id":987},{"__isSmartRef__":true,"id":989},{"__isSmartRef__":true,"id":991},{"__isSmartRef__":true,"id":993},{"__isSmartRef__":true,"id":995},{"__isSmartRef__":true,"id":997},{"__isSmartRef__":true,"id":999},{"__isSmartRef__":true,"id":1001},{"__isSmartRef__":true,"id":1003},{"__isSmartRef__":true,"id":1005},{"__isSmartRef__":true,"id":1007},{"__isSmartRef__":true,"id":1009},{"__isSmartRef__":true,"id":1011},{"__isSmartRef__":true,"id":1013},{"__isSmartRef__":true,"id":1015},{"__isSmartRef__":true,"id":1017},{"__isSmartRef__":true,"id":1019},{"__isSmartRef__":true,"id":1021},{"__isSmartRef__":true,"id":1023},{"__isSmartRef__":true,"id":1025},{"__isSmartRef__":true,"id":1027},{"__isSmartRef__":true,"id":1029},{"__isSmartRef__":true,"id":1031},{"__isSmartRef__":true,"id":1033},{"__isSmartRef__":true,"id":1035},{"__isSmartRef__":true,"id":1037},{"__isSmartRef__":true,"id":1039},{"__isSmartRef__":true,"id":1041},{"__isSmartRef__":true,"id":1043},{"__isSmartRef__":true,"id":1045},{"__isSmartRef__":true,"id":1047},{"__isSmartRef__":true,"id":1049},{"__isSmartRef__":true,"id":1051},{"__isSmartRef__":true,"id":1053},{"__isSmartRef__":true,"id":1055},{"__isSmartRef__":true,"id":1057},{"__isSmartRef__":true,"id":1059},{"__isSmartRef__":true,"id":1061},{"__isSmartRef__":true,"id":1063},{"__isSmartRef__":true,"id":1065},{"__isSmartRef__":true,"id":1067},{"__isSmartRef__":true,"id":1069},{"__isSmartRef__":true,"id":1071},{"__isSmartRef__":true,"id":1073},{"__isSmartRef__":true,"id":1075},{"__isSmartRef__":true,"id":1077},{"__isSmartRef__":true,"id":1079},{"__isSmartRef__":true,"id":1081},{"__isSmartRef__":true,"id":1083},{"__isSmartRef__":true,"id":1085},{"__isSmartRef__":true,"id":1087},{"__isSmartRef__":true,"id":1089},{"__isSmartRef__":true,"id":1091},{"__isSmartRef__":true,"id":1093},{"__isSmartRef__":true,"id":1095},{"__isSmartRef__":true,"id":1097},{"__isSmartRef__":true,"id":1099},{"__isSmartRef__":true,"id":1101},{"__isSmartRef__":true,"id":1103},{"__isSmartRef__":true,"id":1105},{"__isSmartRef__":true,"id":1107},{"__isSmartRef__":true,"id":1109},{"__isSmartRef__":true,"id":1111},{"__isSmartRef__":true,"id":1113},{"__isSmartRef__":true,"id":1115},{"__isSmartRef__":true,"id":1117},{"__isSmartRef__":true,"id":1119},{"__isSmartRef__":true,"id":1121},{"__isSmartRef__":true,"id":1123},{"__isSmartRef__":true,"id":1125},{"__isSmartRef__":true,"id":1127},{"__isSmartRef__":true,"id":1129},{"__isSmartRef__":true,"id":1131},{"__isSmartRef__":true,"id":1133},{"__isSmartRef__":true,"id":1135},{"__isSmartRef__":true,"id":1137},{"__isSmartRef__":true,"id":1139},{"__isSmartRef__":true,"id":1141},{"__isSmartRef__":true,"id":1143},{"__isSmartRef__":true,"id":1145},{"__isSmartRef__":true,"id":1147},{"__isSmartRef__":true,"id":1149},{"__isSmartRef__":true,"id":1151},{"__isSmartRef__":true,"id":1153},{"__isSmartRef__":true,"id":1155},{"__isSmartRef__":true,"id":1157},{"__isSmartRef__":true,"id":1159},{"__isSmartRef__":true,"id":1161},{"__isSmartRef__":true,"id":1163},{"__isSmartRef__":true,"id":1165},{"__isSmartRef__":true,"id":1167},{"__isSmartRef__":true,"id":1169},{"__isSmartRef__":true,"id":1171},{"__isSmartRef__":true,"id":1173},{"__isSmartRef__":true,"id":1175},{"__isSmartRef__":true,"id":1177},{"__isSmartRef__":true,"id":1179},{"__isSmartRef__":true,"id":1181},{"__isSmartRef__":true,"id":1183},{"__isSmartRef__":true,"id":1185},{"__isSmartRef__":true,"id":1187},{"__isSmartRef__":true,"id":1189},{"__isSmartRef__":true,"id":1191},{"__isSmartRef__":true,"id":1193},{"__isSmartRef__":true,"id":1195},{"__isSmartRef__":true,"id":1197},{"__isSmartRef__":true,"id":1199}]},"898":{"name":"Triangle.json","id":1424598,"row":{"__isSmartRef__":true,"id":899},"index":0},"899":{"id":1424598,"path":"PartsBin/Basic","name":"Triangle.json","rev":"148697","Objects":27,"Size":5156,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":3,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":368,"MetaInfoOverhead":7,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"900":{"name":"TransparentRectangle.json","id":1424525,"row":{"__isSmartRef__":true,"id":901},"index":1},"901":{"id":1424525,"path":"PartsBin/Basic","name":"TransparentRectangle.json","rev":"196077","Objects":71,"Size":11639,"Submorphs":1,"TextMorphs":0,"TextSize":0,"DerivationIds":10,"Revisions":1,"Changes":12,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":690,"PartsBinMetaInfoSum":7309,"MetaInfoOverhead":69,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"902":{"name":"Text.json","id":1424497,"row":{"__isSmartRef__":true,"id":903},"index":2},"903":{"id":1424497,"path":"PartsBin/Basic","name":"Text.json","rev":"193597","Objects":26,"Size":4770,"Submorphs":0,"TextMorphs":1,"TextSize":9,"DerivationIds":4,"Revisions":12,"Changes":7,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":111,"PartsBinMetaInfoSum":2677,"MetaInfoOverhead":58,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"904":{"name":"Star.json","id":1424443,"row":{"__isSmartRef__":true,"id":905},"index":3},"905":{"id":1424443,"path":"PartsBin/Basic","name":"Star.json","rev":"148691","Objects":52,"Size":10454,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":7,"Changes":1,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":717,"MetaInfoOverhead":7,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"906":{"name":"Rectangle.json","id":1424414,"row":{"__isSmartRef__":true,"id":907},"index":4},"907":{"id":1424414,"path":"PartsBin/Basic","name":"Rectangle.json","rev":"198774","Objects":27,"Size":6714,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":11,"Revisions":23,"Changes":16,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":363,"PartsBinMetaInfoSum":4570,"MetaInfoOverhead":73,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"908":{"name":"PrimitiveShapes.json","id":1424237,"row":{"__isSmartRef__":true,"id":909},"index":5},"909":{"id":1424237,"path":"PartsBin/Basic","name":"PrimitiveShapes.json","rev":"81428","Objects":174,"Size":34111,"Submorphs":6,"TextMorphs":1,"TextSize":4,"DerivationIds":0,"Revisions":3,"Changes":0,"Scripts":3,"ScriptsSize":440,"DerivationIdSum":0,"PartsBinMetaInfoSum":1702,"MetaInfoOverhead":5,"ErrorNodes":0,"ScriptAuthors":"[undefined:3]","ScriptTimestamps":"[undefined:3]"},"910":{"name":"Pen.json","id":1424099,"row":{"__isSmartRef__":true,"id":911},"index":6},"911":{"id":1424099,"path":"PartsBin/Basic","name":"Pen.json","rev":"195197","Objects":135,"Size":25124,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":2,"Revisions":2,"Changes":2,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":39,"PartsBinMetaInfoSum":1345,"MetaInfoOverhead":6,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"912":{"name":"Notebook.json","id":1424026,"row":{"__isSmartRef__":true,"id":913},"index":7},"913":{"id":1424026,"path":"PartsBin/Basic","name":"Notebook.json","rev":"165893","Objects":71,"Size":14961,"Submorphs":1,"TextMorphs":1,"TextSize":8,"DerivationIds":7,"Revisions":1,"Changes":10,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":330,"PartsBinMetaInfoSum":5153,"MetaInfoOverhead":37,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"914":{"name":"Marker.json","id":1423995,"row":{"__isSmartRef__":true,"id":915},"index":8},"915":{"id":1423995,"path":"PartsBin/Basic","name":"Marker.json","rev":"148673","Objects":29,"Size":4939,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":3,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":301,"MetaInfoOverhead":6,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"916":{"name":"LineWithArrows.json","id":1421743,"row":{"__isSmartRef__":true,"id":917},"index":9},"917":{"id":1421743,"path":"PartsBin/Basic","name":"LineWithArrows.json","rev":"148809","Objects":101,"Size":22575,"Submorphs":3,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":5,"Changes":1,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":850,"MetaInfoOverhead":4,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"918":{"name":"LineWithArrowOrange.json","id":1421687,"row":{"__isSmartRef__":true,"id":919},"index":10},"919":{"id":1421687,"path":"PartsBin/Basic","name":"LineWithArrowOrange.json","rev":"148754","Objects":54,"Size":11253,"Submorphs":1,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":1,"Changes":3,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":1142,"MetaInfoOverhead":10,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"920":{"name":"LineWithArrow.json","id":1421640,"row":{"__isSmartRef__":true,"id":921},"index":11},"921":{"id":1421640,"path":"PartsBin/Basic","name":"LineWithArrow.json","rev":"148733","Objects":45,"Size":9921,"Submorphs":1,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":6,"Changes":2,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":935,"MetaInfoOverhead":9,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"922":{"name":"Line.json","id":1421618,"row":{"__isSmartRef__":true,"id":923},"index":12},"923":{"id":1421618,"path":"PartsBin/Basic","name":"Line.json","rev":"148769","Objects":20,"Size":4396,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":5,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":281,"MetaInfoOverhead":6,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"924":{"name":"Image.json","id":1421607,"row":{"__isSmartRef__":true,"id":925},"index":13},"925":{"id":1421607,"path":"PartsBin/Basic","name":"Image.json","rev":"148804","Objects":9,"Size":2438,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":5,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":254,"MetaInfoOverhead":10,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"926":{"name":"Ellipse.json","id":1421595,"row":{"__isSmartRef__":true,"id":927},"index":14},"927":{"id":1421595,"path":"PartsBin/Basic","name":"Ellipse.json","rev":"196938","Objects":10,"Size":2536,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":3,"Revisions":16,"Changes":3,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":75,"PartsBinMetaInfoSum":1250,"MetaInfoOverhead":52,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"928":{"name":"Editor.json","id":1421583,"row":{"__isSmartRef__":true,"id":929},"index":15},"929":{"id":1421583,"path":"PartsBin/Basic","name":"Editor.json","rev":"196330","Objects":10,"Size":2497,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":1,"Revisions":1,"Changes":2,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":36,"PartsBinMetaInfoSum":962,"MetaInfoOverhead":40,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"930":{"name":"Cloud.json","id":1421524,"row":{"__isSmartRef__":true,"id":931},"index":16},"931":{"id":1421524,"path":"PartsBin/Basic","name":"Cloud.json","rev":"195182","Objects":57,"Size":13584,"Submorphs":7,"TextMorphs":0,"TextSize":0,"DerivationIds":2,"Revisions":4,"Changes":3,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":312,"PartsBinMetaInfoSum":3320,"MetaInfoOverhead":27,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"932":{"name":"CompactTestRunner.json","id":11358052,"row":{"__isSmartRef__":true,"id":933},"index":17},"933":{"id":11358052,"path":"PartsBin/Tools","name":"CompactTestRunner.json","rev":"200311","Objects":0,"Size":1,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":2,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":0,"MetaInfoOverhead":0,"ErrorNodes":0,"ScriptAuthors":"","ScriptTimestamps":""},"934":{"name":"FRPInspector.json","id":11357509,"row":{"__isSmartRef__":true,"id":935},"index":18},"935":{"id":11357509,"path":"PartsBin/Tools","name":"FRPInspector.json","rev":"200268","Objects":0,"Size":1,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":8,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":0,"MetaInfoOverhead":0,"ErrorNodes":0,"ScriptAuthors":"","ScriptTimestamps":""},"936":{"name":"WorldCSS.json","id":3001749,"row":{"__isSmartRef__":true,"id":937},"index":19},"937":{"id":3001749,"path":"PartsBin/Tools","name":"WorldCSS.json","rev":"181549","Objects":587,"Size":131053,"Submorphs":17,"TextMorphs":8,"TextSize":35,"DerivationIds":7,"Revisions":5,"Changes":22,"Scripts":11,"ScriptsSize":2240,"DerivationIdSum":5254,"PartsBinMetaInfoSum":17803,"MetaInfoOverhead":18,"ErrorNodes":0,"ScriptAuthors":"[undefined:3, robertkrahn:2, bgnauk:6]","ScriptTimestamps":"[undefined:3, 2012-09:2, 2012-06:4, 2012-08:2]"},"938":{"name":"TestRunner.json","id":3001165,"row":{"__isSmartRef__":true,"id":939},"index":20},"939":{"id":3001165,"path":"PartsBin/Tools","name":"TestRunner.json","rev":"196194","Objects":547,"Size":150675,"Submorphs":28,"TextMorphs":10,"TextSize":69,"DerivationIds":45,"Revisions":15,"Changes":47,"Scripts":39,"ScriptsSize":11461,"DerivationIdSum":38304,"PartsBinMetaInfoSum":18695,"MetaInfoOverhead":38,"ErrorNodes":0,"ScriptAuthors":"[test:32, JDoe:7]","ScriptTimestamps":"[2013-05:14, 2013-04:18, 2013-06:7]"},"940":{"name":"SystemConsole.json","id":3000929,"row":{"__isSmartRef__":true,"id":941},"index":21},"941":{"id":3000929,"path":"PartsBin/Tools","name":"SystemConsole.json","rev":"196935","Objects":213,"Size":49572,"Submorphs":16,"TextMorphs":7,"TextSize":19,"DerivationIds":12,"Revisions":18,"Changes":7,"Scripts":12,"ScriptsSize":1745,"DerivationIdSum":2940,"PartsBinMetaInfoSum":2381,"MetaInfoOverhead":11,"ErrorNodes":0,"ScriptAuthors":"[ohshima:2, cschuster:9, robertkrahn:1]","ScriptTimestamps":"[undefined:12]"},"942":{"name":"ModulePart.json","id":2997607,"row":{"__isSmartRef__":true,"id":943},"index":22},"943":{"id":2997607,"path":"PartsBin/Tools","name":"ModulePart.json","rev":"185810","Objects":283,"Size":57539,"Submorphs":18,"TextMorphs":8,"TextSize":60,"DerivationIds":0,"Revisions":1,"Changes":12,"Scripts":17,"ScriptsSize":4715,"DerivationIdSum":637,"PartsBinMetaInfoSum":8627,"MetaInfoOverhead":16,"ErrorNodes":0,"ScriptAuthors":"[undefined:9, robertkrahn:8]","ScriptTimestamps":"[undefined:9, 2012-12:1, 2012-01:7]"},"944":{"name":"AutoSave.json","id":2996370,"row":{"__isSmartRef__":true,"id":945},"index":23},"945":{"id":2996370,"path":"PartsBin/Tools","name":"AutoSave.json","rev":"198774","Objects":123,"Size":30758,"Submorphs":7,"TextMorphs":5,"TextSize":27,"DerivationIds":5,"Revisions":7,"Changes":12,"Scripts":2,"ScriptsSize":116,"DerivationIdSum":1256,"PartsBinMetaInfoSum":5034,"MetaInfoOverhead":20,"ErrorNodes":0,"ScriptAuthors":"[undefined:2]","ScriptTimestamps":"[undefined:2]"},"946":{"name":"HTMLPrinter.json","id":2318297,"row":{"__isSmartRef__":true,"id":947},"index":24},"947":{"id":2318297,"path":"PartsBin/Tools","name":"HTMLPrinter.json","rev":"156379","Objects":597,"Size":141055,"Submorphs":21,"TextMorphs":8,"TextSize":1768,"DerivationIds":4,"Revisions":7,"Changes":8,"Scripts":10,"ScriptsSize":6283,"DerivationIdSum":3357,"PartsBinMetaInfoSum":13532,"MetaInfoOverhead":12,"ErrorNodes":0,"ScriptAuthors":"[bsiegmund:7, lauritz:1, sstamm:2]","ScriptTimestamps":"[2012-04:9, 2011-11:1]"},"948":{"name":"WorldFreshness.json","id":2317978,"row":{"__isSmartRef__":true,"id":949},"index":25},"949":{"id":2317978,"path":"PartsBin/Tools","name":"WorldFreshness.json","rev":"197386","Objects":136,"Size":34393,"Submorphs":5,"TextMorphs":4,"TextSize":42,"DerivationIds":9,"Revisions":3,"Changes":24,"Scripts":1,"ScriptsSize":81,"DerivationIdSum":1490,"PartsBinMetaInfoSum":11730,"MetaInfoOverhead":38,"ErrorNodes":0,"ScriptAuthors":"[aran:1]","ScriptTimestamps":"[undefined:1]"},"950":{"name":"StyleEditor.json","id":2315896,"row":{"__isSmartRef__":true,"id":951},"index":26},"951":{"id":2315896,"path":"PartsBin/Tools","name":"StyleEditor.json","rev":"185130","Objects":922,"Size":302125,"Submorphs":76,"TextMorphs":34,"TextSize":336,"DerivationIds":13,"Revisions":40,"Changes":16,"Scripts":16,"ScriptsSize":8474,"DerivationIdSum":85646,"PartsBinMetaInfoSum":28605,"MetaInfoOverhead":38,"ErrorNodes":0,"ScriptAuthors":"[undefined:5, bgnauk:7, robertkrahn:2, lauritz:2]","ScriptTimestamps":"[undefined:5, 2012-08:7, 2011-06:1, 2011-12:2, 2012-09:1]"},"952":{"name":"TextColorChooser.json","id":2313669,"row":{"__isSmartRef__":true,"id":953},"index":27},"953":{"id":2313669,"path":"PartsBin/Tools","name":"TextColorChooser.json","rev":"193216","Objects":1077,"Size":281991,"Submorphs":66,"TextMorphs":5,"TextSize":19,"DerivationIds":0,"Revisions":1,"Changes":12,"Scripts":23,"ScriptsSize":5014,"DerivationIdSum":4197,"PartsBinMetaInfoSum":16044,"MetaInfoOverhead":7,"ErrorNodes":0,"ScriptAuthors":"[undefined:9, jenslincke:8, lauritz:6]","ScriptTimestamps":"[undefined:9, 2013-03:4, 2012-08:5, 2012-12:4, 2012-06:1]"},"954":{"name":"ManualLayouter.json","id":2312238,"row":{"__isSmartRef__":true,"id":955},"index":28},"955":{"id":2312238,"path":"PartsBin/Tools","name":"ManualLayouter.json","rev":"199174","Objects":684,"Size":135026,"Submorphs":30,"TextMorphs":13,"TextSize":131,"DerivationIds":1,"Revisions":3,"Changes":19,"Scripts":26,"ScriptsSize":5142,"DerivationIdSum":7146,"PartsBinMetaInfoSum":34204,"MetaInfoOverhead":31,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:13, undefined:7, lauritz:6]","ScriptTimestamps":"[2013-07:9, 2012-12:11, 2012-08:5, 2012-06:1]"},"956":{"name":"ColorReplacer.json","id":2288949,"row":{"__isSmartRef__":true,"id":957},"index":29},"957":{"id":2288949,"path":"PartsBin/Tools","name":"ColorReplacer.json","rev":"148800","Objects":0,"Size":1,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":1,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":0,"MetaInfoOverhead":0,"ErrorNodes":0,"ScriptAuthors":"","ScriptTimestamps":""},"958":{"name":"TextAttributePanel.json","id":2285937,"row":{"__isSmartRef__":true,"id":959},"index":30},"959":{"id":2285937,"path":"PartsBin/Tools","name":"TextAttributePanel.json","rev":"192856","Objects":754,"Size":161675,"Submorphs":47,"TextMorphs":27,"TextSize":354,"DerivationIds":5,"Revisions":5,"Changes":2,"Scripts":55,"ScriptsSize":13301,"DerivationIdSum":7565,"PartsBinMetaInfoSum":10940,"MetaInfoOverhead":11,"ErrorNodes":0,"ScriptAuthors":"[undefined:48, jenslincke:1, lauritz:6]","ScriptTimestamps":"[2011-09:1, 2012-05:14, 2011-12:6, undefined:34]"},"960":{"name":"DropboxBrowser.json","id":2285007,"row":{"__isSmartRef__":true,"id":961},"index":31},"961":{"id":2285007,"path":"PartsBin/Tools","name":"DropboxBrowser.json","rev":"197853","Objects":262,"Size":51239,"Submorphs":16,"TextMorphs":7,"TextSize":32,"DerivationIds":1,"Revisions":2,"Changes":5,"Scripts":13,"ScriptsSize":4122,"DerivationIdSum":67,"PartsBinMetaInfoSum":4850,"MetaInfoOverhead":10,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:8, markoroeder:2, lauritz:3]","ScriptTimestamps":"[2011-11:11, 2013-07:2]"},"962":{"name":"SerializationInspector.json","id":2282115,"row":{"__isSmartRef__":true,"id":963},"index":32},"963":{"id":2282115,"path":"PartsBin/Tools","name":"SerializationInspector.json","rev":"199299","Objects":768,"Size":171771,"Submorphs":29,"TextMorphs":14,"TextSize":3216,"DerivationIds":3,"Revisions":8,"Changes":24,"Scripts":39,"ScriptsSize":11073,"DerivationIdSum":9357,"PartsBinMetaInfoSum":47841,"MetaInfoOverhead":33,"ErrorNodes":691,"ScriptAuthors":"[jenslincke:31, undefined:4, lauritz:4]","ScriptTimestamps":"[2013-08:27, 2012-12:7, 2012-08:3, 2012-06:1, 2013-04:1]"},"964":{"name":"Toolbar.json","id":2281792,"row":{"__isSmartRef__":true,"id":965},"index":33},"965":{"id":2281792,"path":"PartsBin/Tools","name":"Toolbar.json","rev":"182355","Objects":139,"Size":27556,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":14,"Revisions":1,"Changes":12,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":471,"PartsBinMetaInfoSum":4193,"MetaInfoOverhead":17,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"966":{"name":"WorldBrowserPane.json","id":2277859,"row":{"__isSmartRef__":true,"id":967},"index":34},"967":{"id":2277859,"path":"PartsBin/Tools","name":"WorldBrowserPane.json","rev":"194130","Objects":1323,"Size":302497,"Submorphs":50,"TextMorphs":23,"TextSize":49310,"DerivationIds":13,"Revisions":5,"Changes":20,"Scripts":30,"ScriptsSize":9933,"DerivationIdSum":11015,"PartsBinMetaInfoSum":33712,"MetaInfoOverhead":15,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:25, undefined:5]","ScriptTimestamps":"[2013-02:9, 2013-03:16, 2012-12:5]"},"968":{"name":"ScriptOverview.json","id":2276326,"row":{"__isSmartRef__":true,"id":969},"index":35},"969":{"id":2276326,"path":"PartsBin/Tools","name":"ScriptOverview.json","rev":"176541","Objects":415,"Size":107794,"Submorphs":13,"TextMorphs":6,"TextSize":27,"DerivationIds":0,"Revisions":1,"Changes":8,"Scripts":18,"ScriptsSize":8335,"DerivationIdSum":2493,"PartsBinMetaInfoSum":5456,"MetaInfoOverhead":7,"ErrorNodes":0,"ScriptAuthors":"[undefined:3, jenslincke:6, timfelgentreff:8, lauritz:1]","ScriptTimestamps":"[undefined:3, 2012-08:6, 2012-07:3, 2011-12:1, 2012-06:5]"},"970":{"name":"MorphProfiler.json","id":2252848,"row":{"__isSmartRef__":true,"id":971},"index":36},"971":{"id":2252848,"path":"PartsBin/Tools","name":"MorphProfiler.json","rev":"172989","Objects":13875,"Size":1592216,"Submorphs":31,"TextMorphs":17,"TextSize":189,"DerivationIds":9,"Revisions":13,"Changes":6,"Scripts":25,"ScriptsSize":10308,"DerivationIdSum":10553,"PartsBinMetaInfoSum":17970,"MetaInfoOverhead":2,"ErrorNodes":0,"ScriptAuthors":"[bsiegmund:10, undefined:10, lauritz:5]","ScriptTimestamps":"[2012-06:10, 2012-05:10, 2011-11:5]"},"972":{"name":"Benchmarker.json","id":2251392,"row":{"__isSmartRef__":true,"id":973},"index":37},"973":{"id":2251392,"path":"PartsBin/Tools","name":"Benchmarker.json","rev":"149994","Objects":591,"Size":137223,"Submorphs":21,"TextMorphs":10,"TextSize":145,"DerivationIds":5,"Revisions":7,"Changes":4,"Scripts":9,"ScriptsSize":4792,"DerivationIdSum":3574,"PartsBinMetaInfoSum":9295,"MetaInfoOverhead":9,"ErrorNodes":0,"ScriptAuthors":"[cschuster:3, sstamm:3, undefined:3]","ScriptTimestamps":"[2012-04:3, 2012-02:3, undefined:3]"},"974":{"name":"RightSpaceMaker.json","id":2251079,"row":{"__isSmartRef__":true,"id":975},"index":38},"975":{"id":2251079,"path":"PartsBin/Tools","name":"RightSpaceMaker.json","rev":"194038","Objects":121,"Size":24937,"Submorphs":4,"TextMorphs":2,"TextSize":19,"DerivationIds":5,"Revisions":1,"Changes":2,"Scripts":7,"ScriptsSize":3123,"DerivationIdSum":594,"PartsBinMetaInfoSum":2014,"MetaInfoOverhead":10,"ErrorNodes":0,"ScriptAuthors":"[sstamm:3, undefined:4]","ScriptTimestamps":"[2012-02:3, undefined:3, 2012-03:1]"},"976":{"name":"ClassBrowser.json","id":2249588,"row":{"__isSmartRef__":true,"id":977},"index":39},"977":{"id":2249588,"path":"PartsBin/Tools","name":"ClassBrowser.json","rev":"195040","Objects":775,"Size":163649,"Submorphs":24,"TextMorphs":6,"TextSize":233,"DerivationIds":0,"Revisions":6,"Changes":3,"Scripts":46,"ScriptsSize":17494,"DerivationIdSum":3934,"PartsBinMetaInfoSum":30624,"MetaInfoOverhead":21,"ErrorNodes":0,"ScriptAuthors":"[undefined:16, jenslincke:30]","ScriptTimestamps":"[undefined:16, 2013-04:25, 2012-11:5]"},"978":{"name":"MethodFinder.json","id":2248810,"row":{"__isSmartRef__":true,"id":979},"index":40},"979":{"id":2248810,"path":"PartsBin/Tools","name":"MethodFinder.json","rev":"185133","Objects":331,"Size":77057,"Submorphs":20,"TextMorphs":10,"TextSize":72,"DerivationIds":7,"Revisions":39,"Changes":22,"Scripts":17,"ScriptsSize":12218,"DerivationIdSum":2847,"PartsBinMetaInfoSum":8771,"MetaInfoOverhead":15,"ErrorNodes":0,"ScriptAuthors":"[undefined:13, jenslincke:3, robertkrahn:1]","ScriptTimestamps":"[2012-01:5, undefined:7, 2011-11:3, 2012-05:1, 2012-02:1]"},"980":{"name":"StyleCopier.json","id":2246029,"row":{"__isSmartRef__":true,"id":981},"index":41},"981":{"id":2246029,"path":"PartsBin/Tools","name":"StyleCopier.json","rev":"190634","Objects":1442,"Size":325894,"Submorphs":71,"TextMorphs":69,"TextSize":290,"DerivationIds":10,"Revisions":1,"Changes":12,"Scripts":2,"ScriptsSize":337,"DerivationIdSum":2534,"PartsBinMetaInfoSum":6683,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:2]","ScriptTimestamps":"[2013-01:2]"},"982":{"name":"ErrorStackViewer.json","id":2245092,"row":{"__isSmartRef__":true,"id":983},"index":42},"983":{"id":2245092,"path":"PartsBin/Tools","name":"ErrorStackViewer.json","rev":"148668","Objects":433,"Size":96863,"Submorphs":15,"TextMorphs":7,"TextSize":25,"DerivationIds":7,"Revisions":4,"Changes":9,"Scripts":14,"ScriptsSize":2899,"DerivationIdSum":3626,"PartsBinMetaInfoSum":4600,"MetaInfoOverhead":8,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:11, lauritz:3]","ScriptTimestamps":"[2012-02:11, 2011-11:3]"},"984":{"name":"PartTestRunnerWithCodeEditor.json","id":2244326,"row":{"__isSmartRef__":true,"id":985},"index":43},"985":{"id":2244326,"path":"PartsBin/Tools","name":"PartTestRunnerWithCodeEditor.json","rev":"196529","Objects":329,"Size":90454,"Submorphs":28,"TextMorphs":9,"TextSize":26,"DerivationIds":0,"Revisions":1,"Changes":41,"Scripts":15,"ScriptsSize":4117,"DerivationIdSum":7977,"PartsBinMetaInfoSum":16688,"MetaInfoOverhead":27,"ErrorNodes":0,"ScriptAuthors":"[fbo:8, jenslincke:5, robertkrahn:2]","ScriptTimestamps":"[undefined:15]"},"986":{"name":"MorphsAtWorldPosition.json","id":2243913,"row":{"__isSmartRef__":true,"id":987},"index":44},"987":{"id":2243913,"path":"PartsBin/Tools","name":"MorphsAtWorldPosition.json","rev":"199180","Objects":184,"Size":33744,"Submorphs":5,"TextMorphs":2,"TextSize":8,"DerivationIds":12,"Revisions":2,"Changes":18,"Scripts":1,"ScriptsSize":28,"DerivationIdSum":949,"PartsBinMetaInfoSum":13557,"MetaInfoOverhead":43,"ErrorNodes":0,"ScriptAuthors":"[undefined:1]","ScriptTimestamps":"[2012-12:1]"},"988":{"name":"ObjectGroupEditor.json","id":2238781,"row":{"__isSmartRef__":true,"id":989},"index":45},"989":{"id":2238781,"path":"PartsBin/Tools","name":"ObjectGroupEditor.json","rev":"179675","Objects":2318,"Size":593225,"Submorphs":60,"TextMorphs":31,"TextSize":96,"DerivationIds":31,"Revisions":21,"Changes":79,"Scripts":82,"ScriptsSize":36885,"DerivationIdSum":41790,"PartsBinMetaInfoSum":30903,"MetaInfoOverhead":12,"ErrorNodes":0,"ScriptAuthors":"[lauritz:46, jenslincke:1, tessi:7, conradcalmez:3, timfelgentreff:21, undefined:3, cschuster:1]","ScriptTimestamps":"[2011-11:29, 2012-03:1, 2012-06:26, 2011-12:8, 2012-02:3, undefined:3, 2011-09:3, 2012-08:2, 2012-07:5, 2012-05:1, 2011-10:1]"},"990":{"name":"BootstrapParts.json","id":2237661,"row":{"__isSmartRef__":true,"id":991},"index":46},"991":{"id":2237661,"path":"PartsBin/Tools","name":"BootstrapParts.json","rev":"142537","Objects":479,"Size":110096,"Submorphs":17,"TextMorphs":10,"TextSize":111,"DerivationIds":4,"Revisions":5,"Changes":8,"Scripts":14,"ScriptsSize":5282,"DerivationIdSum":2227,"PartsBinMetaInfoSum":5145,"MetaInfoOverhead":7,"ErrorNodes":0,"ScriptAuthors":"[undefined:9, jenslincke:2, sstamm:3]","ScriptTimestamps":"[2012-02:9, 2012-03:2, undefined:3]"},"992":{"name":"SearchSourceCode.json","id":2237044,"row":{"__isSmartRef__":true,"id":993},"index":47},"993":{"id":2237044,"path":"PartsBin/Tools","name":"SearchSourceCode.json","rev":"148728","Objects":267,"Size":54348,"Submorphs":13,"TextMorphs":6,"TextSize":47,"DerivationIds":0,"Revisions":5,"Changes":0,"Scripts":3,"ScriptsSize":742,"DerivationIdSum":0,"PartsBinMetaInfoSum":1117,"MetaInfoOverhead":2,"ErrorNodes":0,"ScriptAuthors":"[undefined:3]","ScriptTimestamps":"[undefined:3]"},"994":{"name":"CodeBrowser.json","id":2235526,"row":{"__isSmartRef__":true,"id":995},"index":48},"995":{"id":2235526,"path":"PartsBin/Tools","name":"CodeBrowser.json","rev":"172502","Objects":463,"Size":119310,"Submorphs":13,"TextMorphs":6,"TextSize":14,"DerivationIds":22,"Revisions":40,"Changes":44,"Scripts":15,"ScriptsSize":5789,"DerivationIdSum":10459,"PartsBinMetaInfoSum":16411,"MetaInfoOverhead":23,"ErrorNodes":0,"ScriptAuthors":"[undefined:3, cschuster:12]","ScriptTimestamps":"[undefined:3, 2012-06:12]"},"996":{"name":"SyncManager.json","id":2211542,"row":{"__isSmartRef__":true,"id":997},"index":49},"997":{"id":2211542,"path":"PartsBin/Tools","name":"SyncManager.json","rev":"181234","Objects":0,"Size":1,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":18,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":0,"MetaInfoOverhead":0,"ErrorNodes":0,"ScriptAuthors":"","ScriptTimestamps":""},"998":{"name":"ObjectInspector.json","id":2210654,"row":{"__isSmartRef__":true,"id":999},"index":50},"999":{"id":2210654,"path":"PartsBin/Tools","name":"ObjectInspector.json","rev":"198852","Objects":381,"Size":83563,"Submorphs":19,"TextMorphs":7,"TextSize":30,"DerivationIds":36,"Revisions":50,"Changes":44,"Scripts":17,"ScriptsSize":7457,"DerivationIdSum":9575,"PartsBinMetaInfoSum":19457,"MetaInfoOverhead":35,"ErrorNodes":0,"ScriptAuthors":"[cschuster:11, JDoe:2, jenslincke:4]","ScriptTimestamps":"[2012-06:9, 2013-05:2, 2012-07:1, 2012-05:1, 2012-11:4]"},"1000":{"name":"ServerSearch.json","id":2209748,"row":{"__isSmartRef__":true,"id":1001},"index":51},"1001":{"id":2209748,"path":"PartsBin/Tools","name":"ServerSearch.json","rev":"197526","Objects":402,"Size":86987,"Submorphs":27,"TextMorphs":16,"TextSize":80,"DerivationIds":4,"Revisions":11,"Changes":5,"Scripts":22,"ScriptsSize":6389,"DerivationIdSum":4672,"PartsBinMetaInfoSum":5681,"MetaInfoOverhead":12,"ErrorNodes":0,"ScriptAuthors":"[undefined:14, jenslincke:8]","ScriptTimestamps":"[undefined:14, 2011-11:5, 2013-04:1, 2013-07:2]"},"1002":{"name":"PrettyPrintJavascript.json","id":2208760,"row":{"__isSmartRef__":true,"id":1003},"index":52},"1003":{"id":2208760,"path":"PartsBin/Tools","name":"PrettyPrintJavascript.json","rev":"159134","Objects":473,"Size":113722,"Submorphs":17,"TextMorphs":8,"TextSize":101,"DerivationIds":1,"Revisions":6,"Changes":11,"Scripts":10,"ScriptsSize":8840,"DerivationIdSum":682,"PartsBinMetaInfoSum":14969,"MetaInfoOverhead":14,"ErrorNodes":0,"ScriptAuthors":"[undefined:10]","ScriptTimestamps":"[undefined:3, 2012-05:7]"},"1004":{"name":"SourceInspector.json","id":2207957,"row":{"__isSmartRef__":true,"id":1005},"index":53},"1005":{"id":2207957,"path":"PartsBin/Tools","name":"SourceInspector.json","rev":"192323","Objects":389,"Size":90118,"Submorphs":17,"TextMorphs":7,"TextSize":7607,"DerivationIds":0,"Revisions":2,"Changes":13,"Scripts":24,"ScriptsSize":7148,"DerivationIdSum":3723,"PartsBinMetaInfoSum":9247,"MetaInfoOverhead":14,"ErrorNodes":0,"ScriptAuthors":"[undefined:9, jenslincke:9, lauritz:6]","ScriptTimestamps":"[undefined:9, 2013-02:5, 2012-08:5, 2012-12:4, 2012-06:1]"},"1006":{"name":"TestRunnerWithDebuggingSupport.json","id":2206401,"row":{"__isSmartRef__":true,"id":1007},"index":54},"1007":{"id":2206401,"path":"PartsBin/Tools","name":"TestRunnerWithDebuggingSupport.json","rev":"197417","Objects":776,"Size":153977,"Submorphs":45,"TextMorphs":21,"TextSize":169,"DerivationIds":5,"Revisions":1,"Changes":23,"Scripts":31,"ScriptsSize":6873,"DerivationIdSum":6834,"PartsBinMetaInfoSum":10660,"MetaInfoOverhead":11,"ErrorNodes":0,"ScriptAuthors":"[lauritz:25, cschuster:3, timfelgentreff:3]","ScriptTimestamps":"[2011-12:25, 2012-02:3, 2013-07:3]"},"1008":{"name":"VerticalSpaceMaker.json","id":2206009,"row":{"__isSmartRef__":true,"id":1009},"index":55},"1009":{"id":2206009,"path":"PartsBin/Tools","name":"VerticalSpaceMaker.json","rev":"149100","Objects":167,"Size":35069,"Submorphs":4,"TextMorphs":2,"TextSize":21,"DerivationIds":2,"Revisions":3,"Changes":3,"Scripts":4,"ScriptsSize":825,"DerivationIdSum":341,"PartsBinMetaInfoSum":2034,"MetaInfoOverhead":7,"ErrorNodes":0,"ScriptAuthors":"[undefined:1, lauritz:3]","ScriptTimestamps":"[2012-03:1, 2011-11:3]"},"1010":{"name":"FileManagerFullScreen.json","id":2204760,"row":{"__isSmartRef__":true,"id":1011},"index":56},"1011":{"id":2204760,"path":"PartsBin/Tools","name":"FileManagerFullScreen.json","rev":"184244","Objects":642,"Size":135777,"Submorphs":14,"TextMorphs":6,"TextSize":77,"DerivationIds":11,"Revisions":3,"Changes":15,"Scripts":7,"ScriptsSize":1914,"DerivationIdSum":4197,"PartsBinMetaInfoSum":11196,"MetaInfoOverhead":11,"ErrorNodes":0,"ScriptAuthors":"[cschuster:4, jenslincke:3]","ScriptTimestamps":"[2012-07:5, 2012-08:2]"},"1012":{"name":"ObjectEditor.json","id":2201354,"row":{"__isSmartRef__":true,"id":1013},"index":57},"1013":{"id":2201354,"path":"PartsBin/Tools","name":"ObjectEditor.json","rev":"199664","Objects":1517,"Size":404295,"Submorphs":59,"TextMorphs":31,"TextSize":71,"DerivationIds":37,"Revisions":135,"Changes":81,"Scripts":75,"ScriptsSize":28487,"DerivationIdSum":41355,"PartsBinMetaInfoSum":34643,"MetaInfoOverhead":19,"ErrorNodes":0,"ScriptAuthors":"[lauritz:53, cschuster:3, jenslincke:12, robertkrahn:1, conradcalmez:2, undefined:4]","ScriptTimestamps":"[1970-01:55, 2013-09:4, undefined:4, 2013-08:5, 2012-12:3, 2012-08:3, 2012-06:1]"},"1014":{"name":"ColorPicker.json","id":2198161,"row":{"__isSmartRef__":true,"id":1015},"index":58},"1015":{"id":2198161,"path":"PartsBin/Tools","name":"ColorPicker.json","rev":"198679","Objects":363,"Size":82766,"Submorphs":8,"TextMorphs":3,"TextSize":32,"DerivationIds":14,"Revisions":21,"Changes":26,"Scripts":10,"ScriptsSize":3966,"DerivationIdSum":2720,"PartsBinMetaInfoSum":16224,"MetaInfoOverhead":23,"ErrorNodes":0,"ScriptAuthors":"[bgnauk:10]","ScriptTimestamps":"[2012-08:10]"},"1016":{"name":"CommanderTrait.json","id":2196757,"row":{"__isSmartRef__":true,"id":1017},"index":59},"1017":{"id":2196757,"path":"PartsBin/Tools","name":"CommanderTrait.json","rev":"195085","Objects":86,"Size":18483,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":4,"Revisions":2,"Changes":3,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":112,"PartsBinMetaInfoSum":1615,"MetaInfoOverhead":9,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1018":{"name":"WorldBrowser.json","id":2195706,"row":{"__isSmartRef__":true,"id":1019},"index":60},"1019":{"id":2195706,"path":"PartsBin/Tools","name":"WorldBrowser.json","rev":"197329","Objects":482,"Size":120971,"Submorphs":30,"TextMorphs":11,"TextSize":100,"DerivationIds":1,"Revisions":4,"Changes":19,"Scripts":24,"ScriptsSize":9270,"DerivationIdSum":5679,"PartsBinMetaInfoSum":24505,"MetaInfoOverhead":25,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:23, undefined:1]","ScriptTimestamps":"[undefined:24]"},"1020":{"name":"Flap.json","id":2195529,"row":{"__isSmartRef__":true,"id":1021},"index":61},"1021":{"id":2195529,"path":"PartsBin/Tools","name":"Flap.json","rev":"182377","Objects":64,"Size":14544,"Submorphs":1,"TextMorphs":1,"TextSize":5,"DerivationIds":1,"Revisions":1,"Changes":1,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":7,"PartsBinMetaInfoSum":836,"MetaInfoOverhead":6,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1022":{"name":"MorphDiffer.json","id":2176533,"row":{"__isSmartRef__":true,"id":1023},"index":62},"1023":{"id":2176533,"path":"PartsBin/Tools","name":"MorphDiffer.json","rev":"150013","Objects":1138,"Size":292262,"Submorphs":33,"TextMorphs":15,"TextSize":96,"DerivationIds":25,"Revisions":4,"Changes":23,"Scripts":29,"ScriptsSize":9055,"DerivationIdSum":38140,"PartsBinMetaInfoSum":18073,"MetaInfoOverhead":19,"ErrorNodes":0,"ScriptAuthors":"[undefined:23, athomschke:6]","ScriptTimestamps":"[2012-03:22, 2012-01:6, 2012-04:1]"},"1024":{"name":"ProtocolBrowser.json","id":2173714,"row":{"__isSmartRef__":true,"id":1025},"index":63},"1025":{"id":2173714,"path":"PartsBin/Tools","name":"ProtocolBrowser.json","rev":"182670","Objects":1061,"Size":271414,"Submorphs":16,"TextMorphs":10,"TextSize":15032,"DerivationIds":2,"Revisions":1,"Changes":12,"Scripts":10,"ScriptsSize":2116,"DerivationIdSum":1845,"PartsBinMetaInfoSum":10768,"MetaInfoOverhead":5,"ErrorNodes":0,"ScriptAuthors":"[undefined:3, jenslincke:7]","ScriptTimestamps":"[undefined:3, 2012-10:7]"},"1026":{"name":"GlobalLogger.json","id":2172944,"row":{"__isSmartRef__":true,"id":1027},"index":64},"1027":{"id":2172944,"path":"PartsBin/Tools","name":"GlobalLogger.json","rev":"182371","Objects":370,"Size":80307,"Submorphs":9,"TextMorphs":4,"TextSize":51,"DerivationIds":9,"Revisions":1,"Changes":8,"Scripts":7,"ScriptsSize":1410,"DerivationIdSum":1657,"PartsBinMetaInfoSum":9893,"MetaInfoOverhead":14,"ErrorNodes":0,"ScriptAuthors":"[athomschke:7]","ScriptTimestamps":"[2012-05:7]"},"1028":{"name":"MorphTable.json","id":2171181,"row":{"__isSmartRef__":true,"id":1029},"index":65},"1029":{"id":2171181,"path":"PartsBin/Tools","name":"MorphTable.json","rev":"198939","Objects":525,"Size":210226,"Submorphs":19,"TextMorphs":7,"TextSize":99378,"DerivationIds":0,"Revisions":2,"Changes":23,"Scripts":23,"ScriptsSize":6321,"DerivationIdSum":5169,"PartsBinMetaInfoSum":27839,"MetaInfoOverhead":16,"ErrorNodes":360,"ScriptAuthors":"[jenslincke:18, lauritz:4, undefined:1]","ScriptTimestamps":"[2013-08:14, 2012-12:4, 2012-08:3, 2012-06:1, 2013-04:1]"},"1030":{"name":"TextEditor.json","id":2170399,"row":{"__isSmartRef__":true,"id":1031},"index":66},"1031":{"id":2170399,"path":"PartsBin/Tools","name":"TextEditor.json","rev":"104143","Objects":315,"Size":73076,"Submorphs":17,"TextMorphs":9,"TextSize":99,"DerivationIds":0,"Revisions":1,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":261,"MetaInfoOverhead":0,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1032":{"name":"IFrameLoader.json","id":2170019,"row":{"__isSmartRef__":true,"id":1033},"index":67},"1033":{"id":2170019,"path":"PartsBin/Tools","name":"IFrameLoader.json","rev":"148692","Objects":172,"Size":32694,"Submorphs":6,"TextMorphs":3,"TextSize":78,"DerivationIds":0,"Revisions":5,"Changes":0,"Scripts":3,"ScriptsSize":541,"DerivationIdSum":0,"PartsBinMetaInfoSum":1090,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[undefined:3]","ScriptTimestamps":"[undefined:3]"},"1034":{"name":"PartsBinBrowser.json","id":2166621,"row":{"__isSmartRef__":true,"id":1035},"index":68},"1035":{"id":2166621,"path":"PartsBin/Tools","name":"PartsBinBrowser.json","rev":"198683","Objects":1546,"Size":286857,"Submorphs":39,"TextMorphs":20,"TextSize":132,"DerivationIds":23,"Revisions":69,"Changes":12,"Scripts":56,"ScriptsSize":20356,"DerivationIdSum":25472,"PartsBinMetaInfoSum":9155,"MetaInfoOverhead":12,"ErrorNodes":0,"ScriptAuthors":"[undefined:33, jenslincke:6, robertkrahn:10, fabian:1, lauritz:3, sstamm:3]","ScriptTimestamps":"[2011-12:26, 2013-05:1, 2012-01:6, 2011-07:5, 2012-02:5, 2012-09:3, 2012-03:2, undefined:8]"},"1036":{"name":"LeftSpaceMaker.json","id":2166286,"row":{"__isSmartRef__":true,"id":1037},"index":69},"1037":{"id":2166286,"path":"PartsBin/Tools","name":"LeftSpaceMaker.json","rev":"194041","Objects":119,"Size":24571,"Submorphs":4,"TextMorphs":2,"TextSize":18,"DerivationIds":4,"Revisions":1,"Changes":2,"Scripts":7,"ScriptsSize":3123,"DerivationIdSum":450,"PartsBinMetaInfoSum":2041,"MetaInfoOverhead":10,"ErrorNodes":0,"ScriptAuthors":"[sstamm:3, undefined:4]","ScriptTimestamps":"[2012-02:3, undefined:3, 2012-03:1]"},"1038":{"name":"SiblingExtractor.json","id":2166135,"row":{"__isSmartRef__":true,"id":1039},"index":70},"1039":{"id":2166135,"path":"PartsBin/Tools","name":"SiblingExtractor.json","rev":"198753","Objects":62,"Size":10347,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":11,"Revisions":1,"Changes":16,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":363,"PartsBinMetaInfoSum":5221,"MetaInfoOverhead":54,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1040":{"name":"VersionDiffer.json","id":2162696,"row":{"__isSmartRef__":true,"id":1041},"index":71},"1041":{"id":2162696,"path":"PartsBin/Tools","name":"VersionDiffer.json","rev":"183901","Objects":837,"Size":193627,"Submorphs":30,"TextMorphs":14,"TextSize":73,"DerivationIds":1,"Revisions":3,"Changes":5,"Scripts":31,"ScriptsSize":15685,"DerivationIdSum":880,"PartsBinMetaInfoSum":4492,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[undefined:18, robertkrahn:13]","ScriptTimestamps":"[undefined:18, 2012-05:13]"},"1042":{"name":"ColumnCollapser.json","id":2162232,"row":{"__isSmartRef__":true,"id":1043},"index":72},"1043":{"id":2162232,"path":"PartsBin/Tools","name":"ColumnCollapser.json","rev":"198758","Objects":218,"Size":39630,"Submorphs":6,"TextMorphs":3,"TextSize":15,"DerivationIds":11,"Revisions":1,"Changes":16,"Scripts":4,"ScriptsSize":900,"DerivationIdSum":1091,"PartsBinMetaInfoSum":11616,"MetaInfoOverhead":32,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:4]","ScriptTimestamps":"[2013-02:2, 2013-08:2]"},"1044":{"name":"PartTestRunner.json","id":2153914,"row":{"__isSmartRef__":true,"id":1045},"index":73},"1045":{"id":2153914,"path":"PartsBin/Tools","name":"PartTestRunner.json","rev":"199473","Objects":1418,"Size":331319,"Submorphs":51,"TextMorphs":24,"TextSize":548,"DerivationIds":0,"Revisions":21,"Changes":9,"Scripts":87,"ScriptsSize":37107,"DerivationIdSum":12855,"PartsBinMetaInfoSum":61555,"MetaInfoOverhead":22,"ErrorNodes":0,"ScriptAuthors":"[fbo:8, jenslincke:73, undefined:3, lauritz:3]","ScriptTimestamps":"[2012-02:8, 2012-03:7, 2013-08:50, 2013-09:8, 2013-07:8, 2012-12:3, 2011-11:3]"},"1046":{"name":"Explorer.json","id":2152862,"row":{"__isSmartRef__":true,"id":1047},"index":74},"1047":{"id":2152862,"path":"PartsBin/Tools","name":"Explorer.json","rev":"148785","Objects":440,"Size":95734,"Submorphs":12,"TextMorphs":5,"TextSize":11,"DerivationIds":6,"Revisions":22,"Changes":22,"Scripts":23,"ScriptsSize":12417,"DerivationIdSum":2379,"PartsBinMetaInfoSum":8114,"MetaInfoOverhead":11,"ErrorNodes":0,"ScriptAuthors":"[lauritz:17, undefined:6]","ScriptTimestamps":"[2011-12:2, 2011-09:8, 2012-01:4, 2011-10:3, undefined:6]"},"1048":{"name":"WorldRecoveryLoader.json","id":2151210,"row":{"__isSmartRef__":true,"id":1049},"index":75},"1049":{"id":2151210,"path":"PartsBin/Tools","name":"WorldRecoveryLoader.json","rev":"194023","Objects":778,"Size":203280,"Submorphs":44,"TextMorphs":20,"TextSize":49280,"DerivationIds":3,"Revisions":9,"Changes":20,"Scripts":38,"ScriptsSize":12310,"DerivationIdSum":5555,"PartsBinMetaInfoSum":30030,"MetaInfoOverhead":18,"ErrorNodes":0,"ScriptAuthors":"[undefined:14, jenslincke:24]","ScriptTimestamps":"[undefined:9, 2013-02:9, 2013-03:15, 2012-12:5]"},"1050":{"name":"SyncWorld.json","id":2127031,"row":{"__isSmartRef__":true,"id":1051},"index":76},"1051":{"id":2127031,"path":"PartsBin/Tools","name":"SyncWorld.json","rev":"179220","Objects":0,"Size":1,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":11,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":0,"MetaInfoOverhead":0,"ErrorNodes":0,"ScriptAuthors":"","ScriptTimestamps":""},"1052":{"name":"ZoomableSunburstExample.json","id":1961896,"row":{"__isSmartRef__":true,"id":1053},"index":77},"1053":{"id":1961896,"path":"PartsBin/Visualization","name":"ZoomableSunburstExample.json","rev":"183043","Objects":461,"Size":107882,"Submorphs":13,"TextMorphs":5,"TextSize":32,"DerivationIds":2,"Revisions":1,"Changes":22,"Scripts":12,"ScriptsSize":6583,"DerivationIdSum":2247,"PartsBinMetaInfoSum":14263,"MetaInfoOverhead":15,"ErrorNodes":0,"ScriptAuthors":"[undefined:3, jenslincke:8, robertkrahn:1]","ScriptTimestamps":"[undefined:3, 2012-08:1, 2012-10:7, 2012-06:1]"},"1054":{"name":"MiniMap.json","id":1961169,"row":{"__isSmartRef__":true,"id":1055},"index":78},"1055":{"id":1961169,"path":"PartsBin/Visualization","name":"MiniMap.json","rev":"167559","Objects":724,"Size":188784,"Submorphs":49,"TextMorphs":0,"TextSize":0,"DerivationIds":13,"Revisions":16,"Changes":9,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":631,"PartsBinMetaInfoSum":2839,"MetaInfoOverhead":2,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1056":{"name":"FileSizeTreeMap.json","id":1960607,"row":{"__isSmartRef__":true,"id":1057},"index":79},"1057":{"id":1960607,"path":"PartsBin/Visualization","name":"FileSizeTreeMap.json","rev":"191924","Objects":519,"Size":100272,"Submorphs":19,"TextMorphs":9,"TextSize":233,"DerivationIds":2,"Revisions":3,"Changes":26,"Scripts":24,"ScriptsSize":7994,"DerivationIdSum":3447,"PartsBinMetaInfoSum":25345,"MetaInfoOverhead":29,"ErrorNodes":0,"ScriptAuthors":"[undefined:11, jenslincke:12, robertkrahn:1]","ScriptTimestamps":"[undefined:11, 2012-08:1, 2013-01:7, 2012-10:4, 2012-06:1]"},"1058":{"name":"BalancedSearchTrees.json","id":1959429,"row":{"__isSmartRef__":true,"id":1059},"index":80},"1059":{"id":1959429,"path":"PartsBin/Visualization","name":"BalancedSearchTrees.json","rev":"188841","Objects":882,"Size":199512,"Submorphs":25,"TextMorphs":8,"TextSize":51,"DerivationIds":23,"Revisions":88,"Changes":94,"Scripts":45,"ScriptsSize":25703,"DerivationIdSum":24313,"PartsBinMetaInfoSum":70180,"MetaInfoOverhead":47,"ErrorNodes":0,"ScriptAuthors":"[undefined:3, sstamm:34, bsiegmund:8]","ScriptTimestamps":"[undefined:3, 2012-12:6, 2012-11:4, 2013-01:32]"},"1060":{"name":"d3ForceLayoutExample.json","id":1959247,"row":{"__isSmartRef__":true,"id":1061},"index":81},"1061":{"id":1959247,"path":"PartsBin/Visualization","name":"d3ForceLayoutExample.json","rev":"187113","Objects":162,"Size":39738,"Submorphs":2,"TextMorphs":1,"TextSize":35,"DerivationIds":15,"Revisions":1,"Changes":16,"Scripts":7,"ScriptsSize":4569,"DerivationIdSum":1162,"PartsBinMetaInfoSum":7138,"MetaInfoOverhead":21,"ErrorNodes":0,"ScriptAuthors":"[markoroeder:5, jenslincke:2]","ScriptTimestamps":"[2012-12:5, 2012-10:2]"},"1062":{"name":"d3BubbleExample.json","id":1959068,"row":{"__isSmartRef__":true,"id":1063},"index":82},"1063":{"id":1959068,"path":"PartsBin/Visualization","name":"d3BubbleExample.json","rev":"182781","Objects":169,"Size":36889,"Submorphs":2,"TextMorphs":1,"TextSize":35,"DerivationIds":14,"Revisions":3,"Changes":15,"Scripts":7,"ScriptsSize":2175,"DerivationIdSum":1054,"PartsBinMetaInfoSum":6713,"MetaInfoOverhead":21,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:7]","ScriptTimestamps":"[2012-10:7]"},"1064":{"name":"ConnectionsInHierarchyVisualization.json","id":1958500,"row":{"__isSmartRef__":true,"id":1065},"index":83},"1065":{"id":1958500,"path":"PartsBin/Visualization","name":"ConnectionsInHierarchyVisualization.json","rev":"190011","Objects":530,"Size":130492,"Submorphs":9,"TextMorphs":3,"TextSize":112,"DerivationIds":9,"Revisions":3,"Changes":11,"Scripts":21,"ScriptsSize":7173,"DerivationIdSum":3951,"PartsBinMetaInfoSum":8744,"MetaInfoOverhead":10,"ErrorNodes":0,"ScriptAuthors":"[undefined:1, lauritz:6, jenslincke:13, markoroeder:1]","ScriptTimestamps":"[2012-12:8, 2012-08:5, 2012-06:1, 2013-01:7]"},"1066":{"name":"BubbleVisExample.json","id":1958017,"row":{"__isSmartRef__":true,"id":1067},"index":84},"1067":{"id":1958017,"path":"PartsBin/Visualization","name":"BubbleVisExample.json","rev":"183027","Objects":454,"Size":100644,"Submorphs":13,"TextMorphs":5,"TextSize":25,"DerivationIds":1,"Revisions":1,"Changes":21,"Scripts":12,"ScriptsSize":4390,"DerivationIdSum":1743,"PartsBinMetaInfoSum":13953,"MetaInfoOverhead":16,"ErrorNodes":0,"ScriptAuthors":"[undefined:3, jenslincke:8, robertkrahn:1]","ScriptTimestamps":"[undefined:3, 2012-08:1, 2012-10:7, 2012-06:1]"},"1068":{"name":"ProtovisStackDrawing.json","id":1957762,"row":{"__isSmartRef__":true,"id":1069},"index":85},"1069":{"id":1957762,"path":"PartsBin/Visualization","name":"ProtovisStackDrawing.json","rev":"107150","Objects":249,"Size":46630,"Submorphs":3,"TextMorphs":1,"TextSize":5,"DerivationIds":0,"Revisions":8,"Changes":0,"Scripts":15,"ScriptsSize":8431,"DerivationIdSum":0,"PartsBinMetaInfoSum":760,"MetaInfoOverhead":2,"ErrorNodes":0,"ScriptAuthors":"[undefined:15]","ScriptTimestamps":"[undefined:15]"},"1070":{"name":"d3Example.json","id":1957530,"row":{"__isSmartRef__":true,"id":1071},"index":86},"1071":{"id":1957530,"path":"PartsBin/Visualization","name":"d3Example.json","rev":"176960","Objects":222,"Size":50748,"Submorphs":2,"TextMorphs":1,"TextSize":274,"DerivationIds":10,"Revisions":3,"Changes":11,"Scripts":1,"ScriptsSize":235,"DerivationIdSum":622,"PartsBinMetaInfoSum":5860,"MetaInfoOverhead":13,"ErrorNodes":0,"ScriptAuthors":"[robertkrahn:1]","ScriptTimestamps":"[2012-07:1]"},"1072":{"name":"URLTree.json","id":1957249,"row":{"__isSmartRef__":true,"id":1073},"index":87},"1073":{"id":1957249,"path":"PartsBin/Visualization","name":"URLTree.json","rev":"83881","Objects":274,"Size":57014,"Submorphs":8,"TextMorphs":5,"TextSize":127,"DerivationIds":0,"Revisions":4,"Changes":0,"Scripts":8,"ScriptsSize":2060,"DerivationIdSum":0,"PartsBinMetaInfoSum":1813,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[undefined:8]","ScriptTimestamps":"[undefined:8]"},"1074":{"name":"URLCirclePacking.json","id":1957000,"row":{"__isSmartRef__":true,"id":1075},"index":88},"1075":{"id":1957000,"path":"PartsBin/Visualization","name":"URLCirclePacking.json","rev":"83888","Objects":242,"Size":50799,"Submorphs":7,"TextMorphs":4,"TextSize":94,"DerivationIds":0,"Revisions":4,"Changes":0,"Scripts":8,"ScriptsSize":2329,"DerivationIdSum":0,"PartsBinMetaInfoSum":1621,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[undefined:8]","ScriptTimestamps":"[undefined:8]"},"1076":{"name":"d3ExampleFull.json","id":1956745,"row":{"__isSmartRef__":true,"id":1077},"index":89},"1077":{"id":1956745,"path":"PartsBin/Visualization","name":"d3ExampleFull.json","rev":"182770","Objects":245,"Size":57781,"Submorphs":2,"TextMorphs":1,"TextSize":274,"DerivationIds":13,"Revisions":1,"Changes":12,"Scripts":5,"ScriptsSize":4630,"DerivationIdSum":946,"PartsBinMetaInfoSum":5874,"MetaInfoOverhead":12,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:4, robertkrahn:1]","ScriptTimestamps":"[2012-10:4, 2012-07:1]"},"1078":{"name":"TreeViewExampleD3.json","id":1956277,"row":{"__isSmartRef__":true,"id":1079},"index":90},"1079":{"id":1956277,"path":"PartsBin/Visualization","name":"TreeViewExampleD3.json","rev":"197280","Objects":432,"Size":80357,"Submorphs":15,"TextMorphs":5,"TextSize":26,"DerivationIds":1,"Revisions":5,"Changes":26,"Scripts":19,"ScriptsSize":5457,"DerivationIdSum":2391,"PartsBinMetaInfoSum":16967,"MetaInfoOverhead":24,"ErrorNodes":0,"ScriptAuthors":"[undefined:9, jenslincke:9, robertkrahn:1]","ScriptTimestamps":"[undefined:9, 2012-08:1, 2012-10:3, 2013-01:3, 2013-07:2, 2012-06:1]"},"1080":{"name":"TreeMap.json","id":1955980,"row":{"__isSmartRef__":true,"id":1081},"index":91},"1081":{"id":1955980,"path":"PartsBin/Visualization","name":"TreeMap.json","rev":"81702","Objects":289,"Size":64320,"Submorphs":8,"TextMorphs":5,"TextSize":84,"DerivationIds":0,"Revisions":3,"Changes":0,"Scripts":8,"ScriptsSize":2325,"DerivationIdSum":0,"PartsBinMetaInfoSum":1813,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[undefined:8]","ScriptTimestamps":"[undefined:8]"},"1082":{"name":"URLTreeMap.json","id":1955731,"row":{"__isSmartRef__":true,"id":1083},"index":92},"1083":{"id":1955731,"path":"PartsBin/Visualization","name":"URLTreeMap.json","rev":"83877","Objects":244,"Size":50171,"Submorphs":7,"TextMorphs":4,"TextSize":92,"DerivationIds":0,"Revisions":3,"Changes":0,"Scripts":8,"ScriptsSize":2143,"DerivationIdSum":0,"PartsBinMetaInfoSum":1615,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[undefined:8]","ScriptTimestamps":"[undefined:8]"},"1084":{"name":"ScatterplotD3Example.json","id":1955067,"row":{"__isSmartRef__":true,"id":1085},"index":93},"1085":{"id":1955067,"path":"PartsBin/Visualization","name":"ScatterplotD3Example.json","rev":"183116","Objects":635,"Size":153386,"Submorphs":14,"TextMorphs":6,"TextSize":3884,"DerivationIds":4,"Revisions":2,"Changes":25,"Scripts":12,"ScriptsSize":3844,"DerivationIdSum":3291,"PartsBinMetaInfoSum":15099,"MetaInfoOverhead":12,"ErrorNodes":0,"ScriptAuthors":"[undefined:3, jenslincke:8, robertkrahn:1]","ScriptTimestamps":"[undefined:3, 2012-08:1, 2012-11:3, 2012-10:4, 2012-06:1]"},"1086":{"name":"MorphHierrachyVisualization.json","id":1953090,"row":{"__isSmartRef__":true,"id":1087},"index":94},"1087":{"id":1953090,"path":"PartsBin/Visualization","name":"MorphHierrachyVisualization.json","rev":"191990","Objects":1897,"Size":1275398,"Submorphs":23,"TextMorphs":9,"TextSize":53,"DerivationIds":3,"Revisions":13,"Changes":19,"Scripts":38,"ScriptsSize":13127,"DerivationIdSum":6696,"PartsBinMetaInfoSum":21083,"MetaInfoOverhead":2,"ErrorNodes":0,"ScriptAuthors":"[undefined:10, jenslincke:21, lauritz:6, markoroeder:1]","ScriptTimestamps":"[undefined:9, 2013-01:6, 2012-12:8, 2012-08:5, 2012-06:1, 2013-02:9]"},"1088":{"name":"MorphBrowserSunburst.json","id":1952561,"row":{"__isSmartRef__":true,"id":1089},"index":95},"1089":{"id":1952561,"path":"PartsBin/Visualization","name":"MorphBrowserSunburst.json","rev":"183112","Objects":500,"Size":120272,"Submorphs":13,"TextMorphs":5,"TextSize":29,"DerivationIds":4,"Revisions":3,"Changes":25,"Scripts":14,"ScriptsSize":7108,"DerivationIdSum":3255,"PartsBinMetaInfoSum":15095,"MetaInfoOverhead":15,"ErrorNodes":0,"ScriptAuthors":"[undefined:3, jenslincke:10, robertkrahn:1]","ScriptTimestamps":"[undefined:3, 2012-08:1, 2012-10:8, 2012-11:1, 2012-06:1]"},"1090":{"name":"URLIndentedTree.json","id":1952283,"row":{"__isSmartRef__":true,"id":1091},"index":96},"1091":{"id":1952283,"path":"PartsBin/Visualization","name":"URLIndentedTree.json","rev":"107155","Objects":271,"Size":62607,"Submorphs":8,"TextMorphs":5,"TextSize":150,"DerivationIds":0,"Revisions":3,"Changes":0,"Scripts":8,"ScriptsSize":3151,"DerivationIdSum":0,"PartsBinMetaInfoSum":1821,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[undefined:8]","ScriptTimestamps":"[undefined:8]"},"1092":{"name":"URLSunbursts.json","id":1952013,"row":{"__isSmartRef__":true,"id":1093},"index":97},"1093":{"id":1952013,"path":"PartsBin/Visualization","name":"URLSunbursts.json","rev":"81710","Objects":263,"Size":53652,"Submorphs":7,"TextMorphs":4,"TextSize":83,"DerivationIds":0,"Revisions":4,"Changes":0,"Scripts":9,"ScriptsSize":2397,"DerivationIdSum":0,"PartsBinMetaInfoSum":1617,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[undefined:9]","ScriptTimestamps":"[undefined:9]"},"1094":{"name":"TreeMapLayouter.json","id":1951642,"row":{"__isSmartRef__":true,"id":1095},"index":98},"1095":{"id":1951642,"path":"PartsBin/Visualization","name":"TreeMapLayouter.json","rev":"183552","Objects":359,"Size":73122,"Submorphs":7,"TextMorphs":3,"TextSize":17,"DerivationIds":16,"Revisions":9,"Changes":16,"Scripts":3,"ScriptsSize":84,"DerivationIdSum":3450,"PartsBinMetaInfoSum":13056,"MetaInfoOverhead":23,"ErrorNodes":0,"ScriptAuthors":"[robertkrahn:3]","ScriptTimestamps":"[2012-06:3]"},"1096":{"name":"ZoomableBubbleView.json","id":1951227,"row":{"__isSmartRef__":true,"id":1097},"index":99},"1097":{"id":1951227,"path":"PartsBin/Visualization","name":"ZoomableBubbleView.json","rev":"191831","Objects":379,"Size":76398,"Submorphs":15,"TextMorphs":5,"TextSize":25,"DerivationIds":0,"Revisions":1,"Changes":21,"Scripts":20,"ScriptsSize":6928,"DerivationIdSum":1527,"PartsBinMetaInfoSum":14198,"MetaInfoOverhead":21,"ErrorNodes":0,"ScriptAuthors":"[undefined:9, jenslincke:10, robertkrahn:1]","ScriptTimestamps":"[undefined:9, 2012-08:1, 2012-10:6, 2013-01:3, 2012-06:1]"},"1098":{"name":"ModuleBrowsD3Vis.json","id":1949768,"row":{"__isSmartRef__":true,"id":1099},"index":100},"1099":{"id":1949768,"path":"PartsBin/Visualization","name":"ModuleBrowsD3Vis.json","rev":"190114","Objects":1421,"Size":368957,"Submorphs":14,"TextMorphs":5,"TextSize":25,"DerivationIds":1,"Revisions":5,"Changes":21,"Scripts":16,"ScriptsSize":6804,"DerivationIdSum":1783,"PartsBinMetaInfoSum":14464,"MetaInfoOverhead":4,"ErrorNodes":0,"ScriptAuthors":"[undefined:3, jenslincke:12, robertkrahn:1]","ScriptTimestamps":"[undefined:3, 2012-08:1, 2012-10:11, 2012-06:1]"},"1100":{"name":"WorldMorphTreeMap.json","id":1949514,"row":{"__isSmartRef__":true,"id":1101},"index":101},"1101":{"id":1949514,"path":"PartsBin/Visualization","name":"WorldMorphTreeMap.json","rev":"83873","Objects":249,"Size":44251,"Submorphs":5,"TextMorphs":2,"TextSize":17,"DerivationIds":0,"Revisions":6,"Changes":0,"Scripts":8,"ScriptsSize":2146,"DerivationIdSum":0,"PartsBinMetaInfoSum":1220,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[undefined:8]","ScriptTimestamps":"[undefined:8]"},"1102":{"name":"d3BubbleExampleWithChildren.json","id":1949317,"row":{"__isSmartRef__":true,"id":1103},"index":102},"1103":{"id":1949317,"path":"PartsBin/Visualization","name":"d3BubbleExampleWithChildren.json","rev":"182819","Objects":187,"Size":41950,"Submorphs":2,"TextMorphs":1,"TextSize":35,"DerivationIds":15,"Revisions":1,"Changes":16,"Scripts":7,"ScriptsSize":2449,"DerivationIdSum":1162,"PartsBinMetaInfoSum":6999,"MetaInfoOverhead":19,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:7]","ScriptTimestamps":"[2012-10:7]"},"1104":{"name":"ProtovisDrawing.json","id":1948869,"row":{"__isSmartRef__":true,"id":1105},"index":103},"1105":{"id":1948869,"path":"PartsBin/Visualization","name":"ProtovisDrawing.json","rev":"164242","Objects":427,"Size":93454,"Submorphs":13,"TextMorphs":5,"TextSize":23,"DerivationIds":1,"Revisions":11,"Changes":2,"Scripts":19,"ScriptsSize":7920,"DerivationIdSum":56,"PartsBinMetaInfoSum":2270,"MetaInfoOverhead":2,"ErrorNodes":0,"ScriptAuthors":"[undefined:12, robertkrahn:7]","ScriptTimestamps":"[undefined:12, 2011-09:6, 2012-05:1]"},"1106":{"name":"WorldGraphD3.json","id":1948353,"row":{"__isSmartRef__":true,"id":1107},"index":104},"1107":{"id":1948353,"path":"PartsBin/Visualization","name":"WorldGraphD3.json","rev":"187147","Objects":481,"Size":115136,"Submorphs":15,"TextMorphs":5,"TextSize":426,"DerivationIds":0,"Revisions":1,"Changes":17,"Scripts":21,"ScriptsSize":8616,"DerivationIdSum":1741,"PartsBinMetaInfoSum":15860,"MetaInfoOverhead":15,"ErrorNodes":0,"ScriptAuthors":"[undefined:10, jenslincke:6, markoroeder:5]","ScriptTimestamps":"[undefined:9, 2012-08:1, 2012-11:4, 2012-12:5, 2012-10:2]"},"1108":{"name":"ScrollBox.json","id":1977825,"row":{"__isSmartRef__":true,"id":1109},"index":105},"1109":{"id":1977825,"path":"PartsBin/Widgets","name":"ScrollBox.json","rev":"169792","Objects":34,"Size":7045,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":7,"Revisions":1,"Changes":7,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":219,"PartsBinMetaInfoSum":2390,"MetaInfoOverhead":37,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1110":{"name":"MinimizedMorphContainer.json","id":1977646,"row":{"__isSmartRef__":true,"id":1111},"index":106},"1111":{"id":1977646,"path":"PartsBin/Widgets","name":"MinimizedMorphContainer.json","rev":"148688","Objects":174,"Size":34551,"Submorphs":4,"TextMorphs":1,"TextSize":8,"DerivationIds":6,"Revisions":1,"Changes":7,"Scripts":3,"ScriptsSize":579,"DerivationIdSum":1061,"PartsBinMetaInfoSum":3229,"MetaInfoOverhead":12,"ErrorNodes":0,"ScriptAuthors":"[lauritz:3]","ScriptTimestamps":"[2011-11:3]"},"1112":{"name":"SimpleColorButton.json","id":1977585,"row":{"__isSmartRef__":true,"id":1113},"index":107},"1113":{"id":1977585,"path":"PartsBin/Widgets","name":"SimpleColorButton.json","rev":"177291","Objects":59,"Size":14071,"Submorphs":1,"TextMorphs":0,"TextSize":0,"DerivationIds":1,"Revisions":1,"Changes":1,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":8,"PartsBinMetaInfoSum":649,"MetaInfoOverhead":5,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1114":{"name":"QuickTable.json","id":1977518,"row":{"__isSmartRef__":true,"id":1115},"index":108},"1115":{"id":1977518,"path":"PartsBin/Widgets","name":"QuickTable.json","rev":"198869","Objects":62,"Size":11817,"Submorphs":0,"TextMorphs":1,"TextSize":41,"DerivationIds":11,"Revisions":2,"Changes":9,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":363,"PartsBinMetaInfoSum":3278,"MetaInfoOverhead":31,"ErrorNodes":3,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1116":{"name":"ExtentAdjustingContainer.json","id":1977392,"row":{"__isSmartRef__":true,"id":1117},"index":109},"1117":{"id":1977392,"path":"PartsBin/Widgets","name":"ExtentAdjustingContainer.json","rev":"195014","Objects":123,"Size":21215,"Submorphs":3,"TextMorphs":1,"TextSize":9,"DerivationIds":11,"Revisions":1,"Changes":12,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":876,"PartsBinMetaInfoSum":10863,"MetaInfoOverhead":55,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1118":{"name":"HyperCard.json","id":1972871,"row":{"__isSmartRef__":true,"id":1119},"index":110},"1119":{"id":1972871,"path":"PartsBin/Widgets","name":"HyperCard.json","rev":"182234","Objects":3467,"Size":910583,"Submorphs":106,"TextMorphs":69,"TextSize":870,"DerivationIds":5,"Revisions":1,"Changes":47,"Scripts":85,"ScriptsSize":24352,"DerivationIdSum":16753,"PartsBinMetaInfoSum":46041,"MetaInfoOverhead":7,"ErrorNodes":0,"ScriptAuthors":"[athomschke:72, conradcalmez:5, sstamm:2, undefined:6]","ScriptTimestamps":"[2011-11:26, 2011-12:46, 2012-05:5, 2012-01:2, undefined:6]"},"1120":{"name":"CodePane.json","id":1972811,"row":{"__isSmartRef__":true,"id":1121},"index":111},"1121":{"id":1972811,"path":"PartsBin/Widgets","name":"CodePane.json","rev":"82282","Objects":56,"Size":10572,"Submorphs":0,"TextMorphs":1,"TextSize":49,"DerivationIds":0,"Revisions":3,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":266,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1122":{"name":"PrintingWorkspace.json","id":1972641,"row":{"__isSmartRef__":true,"id":1123},"index":112},"1123":{"id":1972641,"path":"PartsBin/Widgets","name":"PrintingWorkspace.json","rev":"148791","Objects":163,"Size":32991,"Submorphs":4,"TextMorphs":2,"TextSize":130,"DerivationIds":1,"Revisions":1,"Changes":1,"Scripts":3,"ScriptsSize":579,"DerivationIdSum":414,"PartsBinMetaInfoSum":1103,"MetaInfoOverhead":5,"ErrorNodes":0,"ScriptAuthors":"[lauritz:3]","ScriptTimestamps":"[2011-11:3]"},"1124":{"name":"LabeledBox.json","id":1972611,"row":{"__isSmartRef__":true,"id":1125},"index":113},"1125":{"id":1972611,"path":"PartsBin/Widgets","name":"LabeledBox.json","rev":"148664","Objects":28,"Size":6667,"Submorphs":1,"TextMorphs":1,"TextSize":5,"DerivationIds":0,"Revisions":3,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":425,"MetaInfoOverhead":6,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1126":{"name":"RGBColorChooser.json","id":1971624,"row":{"__isSmartRef__":true,"id":1127},"index":114},"1127":{"id":1971624,"path":"PartsBin/Widgets","name":"RGBColorChooser.json","rev":"93794","Objects":440,"Size":85562,"Submorphs":6,"TextMorphs":1,"TextSize":16,"DerivationIds":0,"Revisions":3,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":1013,"MetaInfoOverhead":1,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1128":{"name":"JournalEntry.json","id":1971566,"row":{"__isSmartRef__":true,"id":1129},"index":115},"1129":{"id":1971566,"path":"PartsBin/Widgets","name":"JournalEntry.json","rev":"148706","Objects":56,"Size":14071,"Submorphs":2,"TextMorphs":2,"TextSize":28,"DerivationIds":0,"Revisions":11,"Changes":1,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":782,"MetaInfoOverhead":6,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1130":{"name":"DrawingCanvas.json","id":1970983,"row":{"__isSmartRef__":true,"id":1131},"index":116},"1131":{"id":1970983,"path":"PartsBin/Widgets","name":"DrawingCanvas.json","rev":"154360","Objects":559,"Size":137143,"Submorphs":21,"TextMorphs":8,"TextSize":66,"DerivationIds":2,"Revisions":4,"Changes":8,"Scripts":4,"ScriptsSize":583,"DerivationIdSum":1920,"PartsBinMetaInfoSum":12630,"MetaInfoOverhead":11,"ErrorNodes":0,"ScriptAuthors":"[robertkrahn:4]","ScriptTimestamps":"[2012-04:4]"},"1132":{"name":"HorizontalSplitterMorph.json","id":1970914,"row":{"__isSmartRef__":true,"id":1133},"index":117},"1133":{"id":1970914,"path":"PartsBin/Widgets","name":"HorizontalSplitterMorph.json","rev":"195020","Objects":67,"Size":12475,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":15,"Revisions":2,"Changes":12,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":507,"PartsBinMetaInfoSum":3825,"MetaInfoOverhead":35,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1134":{"name":"NameLabel.json","id":1970884,"row":{"__isSmartRef__":true,"id":1135},"index":118},"1135":{"id":1970884,"path":"PartsBin/Widgets","name":"NameLabel.json","rev":"81738","Objects":25,"Size":5440,"Submorphs":0,"TextMorphs":1,"TextSize":9,"DerivationIds":0,"Revisions":2,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":299,"MetaInfoOverhead":5,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1136":{"name":"SplitterMorph.json","id":1970817,"row":{"__isSmartRef__":true,"id":1137},"index":119},"1137":{"id":1970817,"path":"PartsBin/Widgets","name":"SplitterMorph.json","rev":"198521","Objects":65,"Size":12107,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":10,"Revisions":3,"Changes":11,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":327,"PartsBinMetaInfoSum":3660,"MetaInfoOverhead":33,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1138":{"name":"ObjectEditorScriptPane.json","id":1963588,"row":{"__isSmartRef__":true,"id":1139},"index":120},"1139":{"id":1963588,"path":"PartsBin/Widgets","name":"ObjectEditorScriptPane.json","rev":"169707","Objects":2143,"Size":509166,"Submorphs":57,"TextMorphs":31,"TextSize":98,"DerivationIds":17,"Revisions":1,"Changes":0,"Scripts":59,"ScriptsSize":21852,"DerivationIdSum":20898,"PartsBinMetaInfoSum":6003,"MetaInfoOverhead":5,"ErrorNodes":0,"ScriptAuthors":"[lauritz:52, jenslincke:1, robertkrahn:1, conradcalmez:3, undefined:1, tessi:1]","ScriptTimestamps":"[2011-11:31, 2012-03:1, 2012-01:1, 2011-12:14, 2012-02:3, undefined:1, 2011-09:2, 2012-05:4, 2012-06:2]"},"1140":{"name":"ProgressIndicator.json","id":1963575,"row":{"__isSmartRef__":true,"id":1141},"index":121},"1141":{"id":1963575,"path":"PartsBin/Widgets","name":"ProgressIndicator.json","rev":"148670","Objects":11,"Size":3647,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":2,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":267,"MetaInfoOverhead":7,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1142":{"name":"CloseButton.json","id":1963536,"row":{"__isSmartRef__":true,"id":1143},"index":122},"1143":{"id":1963536,"path":"PartsBin/Widgets","name":"CloseButton.json","rev":"199005","Objects":35,"Size":6277,"Submorphs":1,"TextMorphs":1,"TextSize":1,"DerivationIds":1,"Revisions":4,"Changes":1,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":8,"PartsBinMetaInfoSum":766,"MetaInfoOverhead":12,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1144":{"name":"ClipMorph.json","id":1963523,"row":{"__isSmartRef__":true,"id":1145},"index":123},"1145":{"id":1963523,"path":"PartsBin/Widgets","name":"ClipMorph.json","rev":"148694","Objects":11,"Size":2645,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":3,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":287,"MetaInfoOverhead":11,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1146":{"name":"HorizontalSpacerMorph.json","id":1963450,"row":{"__isSmartRef__":true,"id":1147},"index":124},"1147":{"id":1963450,"path":"PartsBin/Widgets","name":"HorizontalSpacerMorph.json","rev":"195028","Objects":71,"Size":13155,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":15,"Revisions":2,"Changes":14,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":507,"PartsBinMetaInfoSum":4395,"MetaInfoOverhead":37,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1148":{"name":"AdaptZoomButton.json","id":1963396,"row":{"__isSmartRef__":true,"id":1149},"index":125},"1149":{"id":1963396,"path":"PartsBin/Widgets","name":"AdaptZoomButton.json","rev":"199002","Objects":49,"Size":9090,"Submorphs":1,"TextMorphs":1,"TextSize":1,"DerivationIds":5,"Revisions":5,"Changes":12,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":360,"PartsBinMetaInfoSum":3850,"MetaInfoOverhead":46,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1150":{"name":"ProgressBar.json","id":1963313,"row":{"__isSmartRef__":true,"id":1151},"index":126},"1151":{"id":1963313,"path":"PartsBin/Widgets","name":"ProgressBar.json","rev":"148741","Objects":73,"Size":17620,"Submorphs":3,"TextMorphs":2,"TextSize":16,"DerivationIds":0,"Revisions":8,"Changes":2,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":941,"MetaInfoOverhead":5,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1152":{"name":"MinimizedMorphContainerBottom.json","id":1963174,"row":{"__isSmartRef__":true,"id":1153},"index":127},"1153":{"id":1963174,"path":"PartsBin/Widgets","name":"MinimizedMorphContainerBottom.json","rev":"198639","Objects":132,"Size":27280,"Submorphs":4,"TextMorphs":1,"TextSize":8,"DerivationIds":7,"Revisions":1,"Changes":8,"Scripts":6,"ScriptsSize":2877,"DerivationIdSum":1278,"PartsBinMetaInfoSum":3790,"MetaInfoOverhead":19,"ErrorNodes":0,"ScriptAuthors":"[sstamm:3, undefined:3]","ScriptTimestamps":"[2012-02:3, undefined:3]"},"1154":{"name":"SpacerMorph.json","id":1963095,"row":{"__isSmartRef__":true,"id":1155},"index":128},"1155":{"id":1963095,"path":"PartsBin/Widgets","name":"SpacerMorph.json","rev":"195033","Objects":77,"Size":16066,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":16,"Revisions":1,"Changes":15,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":543,"PartsBinMetaInfoSum":4653,"MetaInfoOverhead":32,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1156":{"name":"GotoMorph.json","id":1962959,"row":{"__isSmartRef__":true,"id":1157},"index":129},"1157":{"id":1962959,"path":"PartsBin/Widgets","name":"GotoMorph.json","rev":"199008","Objects":125,"Size":21367,"Submorphs":3,"TextMorphs":2,"TextSize":13,"DerivationIds":13,"Revisions":4,"Changes":20,"Scripts":1,"ScriptsSize":28,"DerivationIdSum":906,"PartsBinMetaInfoSum":11163,"MetaInfoOverhead":56,"ErrorNodes":0,"ScriptAuthors":"[undefined:1]","ScriptTimestamps":"[2012-12:1]"},"1158":{"name":"FilterableList.json","id":1962908,"row":{"__isSmartRef__":true,"id":1159},"index":130},"1159":{"id":1962908,"path":"PartsBin/Widgets","name":"FilterableList.json","rev":"199249","Objects":46,"Size":8522,"Submorphs":2,"TextMorphs":1,"TextSize":0,"DerivationIds":2,"Revisions":9,"Changes":4,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":119,"PartsBinMetaInfoSum":2132,"MetaInfoOverhead":26,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1160":{"name":"TabFolder.json","id":1962906,"row":{"__isSmartRef__":true,"id":1161},"index":131},"1161":{"id":1962906,"path":"PartsBin/Widgets","name":"TabFolder.json","rev":"148811","Objects":0,"Size":1,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":0,"Revisions":3,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":0,"MetaInfoOverhead":0,"ErrorNodes":0,"ScriptAuthors":"","ScriptTimestamps":""},"1162":{"name":"ScalingCorner.json","id":1962861,"row":{"__isSmartRef__":true,"id":1163},"index":132},"1163":{"id":1962861,"path":"PartsBin/Widgets","name":"ScalingCorner.json","rev":"193148","Objects":41,"Size":7440,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":3,"Revisions":1,"Changes":1,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":76,"PartsBinMetaInfoSum":768,"MetaInfoOverhead":11,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1164":{"name":"VerticalItemScrollBox.json","id":1962821,"row":{"__isSmartRef__":true,"id":1165},"index":133},"1165":{"id":1962821,"path":"PartsBin/Widgets","name":"VerticalItemScrollBox.json","rev":"169959","Objects":38,"Size":7716,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":8,"Revisions":1,"Changes":8,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":255,"PartsBinMetaInfoSum":2693,"MetaInfoOverhead":38,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1166":{"name":"ResizeCorner.json","id":1962759,"row":{"__isSmartRef__":true,"id":1167},"index":134},"1167":{"id":1962759,"path":"PartsBin/Widgets","name":"ResizeCorner.json","rev":"148786","Objects":58,"Size":12465,"Submorphs":0,"TextMorphs":0,"TextSize":0,"DerivationIds":2,"Revisions":9,"Changes":1,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":40,"PartsBinMetaInfoSum":678,"MetaInfoOverhead":6,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1168":{"name":"WikiActivities.json","id":2352449,"row":{"__isSmartRef__":true,"id":1169},"index":135},"1169":{"id":2352449,"path":"PartsBin/Wiki","name":"WikiActivities.json","rev":"193811","Objects":344,"Size":103108,"Submorphs":21,"TextMorphs":12,"TextSize":93,"DerivationIds":0,"Revisions":7,"Changes":1,"Scripts":17,"ScriptsSize":6451,"DerivationIdSum":2154,"PartsBinMetaInfoSum":13605,"MetaInfoOverhead":15,"ErrorNodes":0,"ScriptAuthors":"[undefined:9, jenslincke:8]","ScriptTimestamps":"[undefined:9, 2012-11:7, 2012-10:1]"},"1170":{"name":"WikiLatestChanges.json","id":2350276,"row":{"__isSmartRef__":true,"id":1171},"index":136},"1171":{"id":2350276,"path":"PartsBin/Wiki","name":"WikiLatestChanges.json","rev":"183184","Objects":1067,"Size":513995,"Submorphs":37,"TextMorphs":22,"TextSize":220305,"DerivationIds":6,"Revisions":2,"Changes":16,"Scripts":20,"ScriptsSize":9671,"DerivationIdSum":7452,"PartsBinMetaInfoSum":31599,"MetaInfoOverhead":8,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:14, undefined:6]","ScriptTimestamps":"[2012-11:11, 2012-10:3, undefined:6]"},"1172":{"name":"LinkNavigationReverse.json","id":2349753,"row":{"__isSmartRef__":true,"id":1173},"index":137},"1173":{"id":2349753,"path":"PartsBin/Wiki","name":"LinkNavigationReverse.json","rev":"182411","Objects":182,"Size":42883,"Submorphs":4,"TextMorphs":3,"TextSize":245,"DerivationIds":3,"Revisions":2,"Changes":3,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":342,"PartsBinMetaInfoSum":1575,"MetaInfoOverhead":4,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1174":{"name":"MyWikiActivities.json","id":2348006,"row":{"__isSmartRef__":true,"id":1175},"index":138},"1175":{"id":2348006,"path":"PartsBin/Wiki","name":"MyWikiActivities.json","rev":"183017","Objects":861,"Size":186121,"Submorphs":14,"TextMorphs":7,"TextSize":7555,"DerivationIds":2,"Revisions":4,"Changes":8,"Scripts":6,"ScriptsSize":3898,"DerivationIdSum":654,"PartsBinMetaInfoSum":5340,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:3, undefined:3]","ScriptTimestamps":"[2012-10:3, undefined:3]"},"1176":{"name":"LinkNavigationWithDirs.json","id":2347581,"row":{"__isSmartRef__":true,"id":1177},"index":139},"1177":{"id":2347581,"path":"PartsBin/Wiki","name":"LinkNavigationWithDirs.json","rev":"165020","Objects":147,"Size":32978,"Submorphs":3,"TextMorphs":2,"TextSize":196,"DerivationIds":1,"Revisions":1,"Changes":2,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":16,"PartsBinMetaInfoSum":1325,"MetaInfoOverhead":4,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1178":{"name":"JournalNavigation.json","id":2347160,"row":{"__isSmartRef__":true,"id":1179},"index":140},"1179":{"id":2347160,"path":"PartsBin/Wiki","name":"JournalNavigation.json","rev":"91368","Objects":152,"Size":29553,"Submorphs":3,"TextMorphs":2,"TextSize":205,"DerivationIds":0,"Revisions":2,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":836,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1180":{"name":"WikiChangeLog.json","id":2345976,"row":{"__isSmartRef__":true,"id":1181},"index":141},"1181":{"id":2345976,"path":"PartsBin/Wiki","name":"WikiChangeLog.json","rev":"183177","Objects":572,"Size":169805,"Submorphs":19,"TextMorphs":12,"TextSize":92,"DerivationIds":5,"Revisions":3,"Changes":18,"Scripts":11,"ScriptsSize":4672,"DerivationIdSum":3261,"PartsBinMetaInfoSum":18052,"MetaInfoOverhead":13,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:8, undefined:3]","ScriptTimestamps":"[2012-11:7, 2012-10:1, undefined:3]"},"1182":{"name":"RelativeLinkNavigation.json","id":2345579,"row":{"__isSmartRef__":true,"id":1183},"index":142},"1183":{"id":2345579,"path":"PartsBin/Wiki","name":"RelativeLinkNavigation.json","rev":"185176","Objects":166,"Size":32597,"Submorphs":6,"TextMorphs":3,"TextSize":88,"DerivationIds":4,"Revisions":1,"Changes":4,"Scripts":3,"ScriptsSize":945,"DerivationIdSum":886,"PartsBinMetaInfoSum":6935,"MetaInfoOverhead":24,"ErrorNodes":0,"ScriptAuthors":"[undefined:3]","ScriptTimestamps":"[undefined:3]"},"1184":{"name":"WikiActivitiesWithVisualization.json","id":2343715,"row":{"__isSmartRef__":true,"id":1185},"index":143},"1185":{"id":2343715,"path":"PartsBin/Wiki","name":"WikiActivitiesWithVisualization.json","rev":"191870","Objects":891,"Size":369464,"Submorphs":13,"TextMorphs":9,"TextSize":55717,"DerivationIds":6,"Revisions":1,"Changes":1,"Scripts":18,"ScriptsSize":7732,"DerivationIdSum":3601,"PartsBinMetaInfoSum":20623,"MetaInfoOverhead":7,"ErrorNodes":0,"ScriptAuthors":"[jenslincke:18]","ScriptTimestamps":"[2013-01:15, 2012-10:3]"},"1186":{"name":"PartsBinHistory.json","id":2341913,"row":{"__isSmartRef__":true,"id":1187},"index":144},"1187":{"id":2341913,"path":"PartsBin/Wiki","name":"PartsBinHistory.json","rev":"194621","Objects":899,"Size":170807,"Submorphs":27,"TextMorphs":12,"TextSize":144,"DerivationIds":0,"Revisions":10,"Changes":21,"Scripts":29,"ScriptsSize":9271,"DerivationIdSum":3820,"PartsBinMetaInfoSum":40395,"MetaInfoOverhead":26,"ErrorNodes":0,"ScriptAuthors":"[undefined:11, jenslincke:18]","ScriptTimestamps":"[undefined:9, 2013-03:16, 2012-12:2, 2013-02:1, 1970-01:1]"},"1188":{"name":"CommitCounter.json","id":2330453,"row":{"__isSmartRef__":true,"id":1189},"index":145},"1189":{"id":2330453,"path":"PartsBin/Wiki","name":"CommitCounter.json","rev":"100229","Objects":5680,"Size":900697,"Submorphs":15,"TextMorphs":9,"TextSize":95,"DerivationIds":0,"Revisions":10,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":3170,"MetaInfoOverhead":0,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1190":{"name":"WhatDidIDo.json","id":2329182,"row":{"__isSmartRef__":true,"id":1191},"index":146},"1191":{"id":2329182,"path":"PartsBin/Wiki","name":"WhatDidIDo.json","rev":"98108","Objects":542,"Size":108948,"Submorphs":11,"TextMorphs":9,"TextSize":98,"DerivationIds":0,"Revisions":1,"Changes":0,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":0,"PartsBinMetaInfoSum":2154,"MetaInfoOverhead":2,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1192":{"name":"LinkNavigationBig.json","id":2328778,"row":{"__isSmartRef__":true,"id":1193},"index":147},"1193":{"id":2328778,"path":"PartsBin/Wiki","name":"LinkNavigationBig.json","rev":"150861","Objects":135,"Size":29629,"Submorphs":3,"TextMorphs":2,"TextSize":132,"DerivationIds":1,"Revisions":2,"Changes":2,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":16,"PartsBinMetaInfoSum":1295,"MetaInfoOverhead":4,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1194":{"name":"LinkNavigation.json","id":2328405,"row":{"__isSmartRef__":true,"id":1195},"index":148},"1195":{"id":2328405,"path":"PartsBin/Wiki","name":"LinkNavigation.json","rev":"149884","Objects":121,"Size":26933,"Submorphs":3,"TextMorphs":2,"TextSize":115,"DerivationIds":1,"Revisions":1,"Changes":1,"Scripts":0,"ScriptsSize":0,"DerivationIdSum":16,"PartsBinMetaInfoSum":1042,"MetaInfoOverhead":4,"ErrorNodes":0,"ScriptAuthors":"[:]","ScriptTimestamps":"[:]"},"1196":{"name":"VersionViewer.json","id":2326926,"row":{"__isSmartRef__":true,"id":1197},"index":149},"1197":{"id":2326926,"path":"PartsBin/Wiki","name":"VersionViewer.json","rev":"185157","Objects":799,"Size":111587,"Submorphs":18,"TextMorphs":8,"TextSize":131,"DerivationIds":1,"Revisions":3,"Changes":4,"Scripts":3,"ScriptsSize":945,"DerivationIdSum":66,"PartsBinMetaInfoSum":1584,"MetaInfoOverhead":1,"ErrorNodes":0,"ScriptAuthors":"[undefined:3]","ScriptTimestamps":"[undefined:3]"},"1198":{"name":"LatestChangesViewer.json","id":2325695,"row":{"__isSmartRef__":true,"id":1199},"index":150},"1199":{"id":2325695,"path":"PartsBin/Wiki","name":"LatestChangesViewer.json","rev":"160978","Objects":582,"Size":132617,"Submorphs":21,"TextMorphs":13,"TextSize":139,"DerivationIds":1,"Revisions":9,"Changes":2,"Scripts":23,"ScriptsSize":4772,"DerivationIdSum":66,"PartsBinMetaInfoSum":3548,"MetaInfoOverhead":3,"ErrorNodes":0,"ScriptAuthors":"[undefined:17, markoroeder:5, cschuster:1]","ScriptTimestamps":"[undefined:17, 2011-08:5, 2012-05:1]"},"1200":{"reset":{"__isSmartRef__":true,"id":1201},"update":{"__isSmartRef__":true,"id":1205},"onrestore":{"__isSmartRef__":true,"id":1209},"installLayers":{"__isSmartRef__":true,"id":1217},"getChart":{"__isSmartRef__":true,"id":1221},"draw":{"__isSmartRef__":true,"id":1225},"setTarget":{"__isSmartRef__":true,"id":1229},"initializeData":{"__isSmartRef__":true,"id":1233},"addAttributeConnectionsAsLinks":{"__isSmartRef__":true,"id":1237},"addMorphsAndSubmorphLinks":{"__isSmartRef__":true,"id":1241},"addDerivationHistoryOfMorph":{"__isSmartRef__":true,"id":1245},"addDerivationHistoryOfMorphHierrachy":{"__isSmartRef__":true,"id":1249},"getMorphById":{"__isSmartRef__":true,"id":1253},"highlightMorph":{"__isSmartRef__":true,"id":1257},"updateDerivationDepthVis":{"__isSmartRef__":true,"id":1261},"selectMorph":{"__isSmartRef__":true,"id":1265},"clear":{"__isSmartRef__":true,"id":1269},"foldNonConnectedChilds":{"__isSmartRef__":true,"id":1273},"getConnectedMorphs":{"__isSmartRef__":true,"id":1277},"unfoldNonConnectedChilds":{"__isSmartRef__":true,"id":1281},"zoom":{"__isSmartRef__":true,"id":1285},"getD3Transform":{"__isSmartRef__":true,"id":1289},"setD3Transform":{"__isSmartRef__":true,"id":1293},"bundleConnections":{"__isSmartRef__":true,"id":1297},"redraw":{"__isSmartRef__":true,"id":1301},"makeUniqConnections":{"__isSmartRef__":true,"id":1305},"onD3Zoom":{"__isSmartRef__":true,"id":1309},"onCenter":{"__isSmartRef__":true,"id":1313},"onExport":{"__isSmartRef__":true,"id":1317},"updateNodeStyle":{"__isSmartRef__":true,"id":1321},"drawScratch":{"__isSmartRef__":true,"id":1325},"updateTextLabels":{"__isSmartRef__":true,"id":1329},"d3TransistionNodes":{"__isSmartRef__":true,"id":1333},"catchErrors":{"__isSmartRef__":true,"id":1337},"fillNodeSizeFunctionList":{"__isSmartRef__":true,"id":1341},"addNeo4JNodes":{"__isSmartRef__":true,"id":1345},"createD3TreeFromGraphDB":{"__isSmartRef__":true,"id":1349},"updateNodesForNeoDerivation":{"__isSmartRef__":true,"id":1353},"eachDataNode":{"__isSmartRef__":true,"id":1357},"createD3FullTreeFromGraphDB":{"__isSmartRef__":true,"id":1361},"deleteLastNeoNode":{"__isSmartRef__":true,"id":1365},"drawTreeMap":{"__isSmartRef__":true,"id":1369},"drawBundleView":{"__isSmartRef__":true,"id":1373},"updateTreeSize":{"__isSmartRef__":true,"id":1377},"getColorFuncForNode":{"__isSmartRef__":true,"id":1381},"getVisualization":{"__isSmartRef__":true,"id":1385},"getExportFilename":{"__isSmartRef__":true,"id":1389},"drawForceGraph":{"__isSmartRef__":true,"id":1393},"exampleGraphData":{"__isSmartRef__":true,"id":1397},"getSizeFunc":{"__isSmartRef__":true,"id":1401},"getTextSizeFunc":{"__isSmartRef__":true,"id":1405},"drawForceGraphInteractive":{"__isSmartRef__":true,"id":1409},"drawFlowGraph":{"__isSmartRef__":true,"id":1413}},"1201":{"varMapping":{"__isSmartRef__":true,"id":1202},"source":"function reset() {\n this.doNotSerialize = ['chart', 'svgNode', 'data', 'lastNode'];\n this.data = null;\n //this.startStepping(1000, 'redraw');\n this.stopStepping()\n this.scaleDetail = 1\n this.get(\"VisualizationList\").setList([\n \"BundleView\", \"TreeMap\", \"ForceGraph\", \"ForceGraphInteractive\", \"FlowGraph\"])\n\n}","funcProperties":{"__isSmartRef__":true,"id":1203},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1202":{"this":{"__isSmartRef__":true,"id":804}},"1203":{"timestamp":{"__isSmartRef__":true,"id":1204},"user":"jenslincke","tags":[]},"1204":{"isSerializedDate":true,"string":"Fri Aug 15 2014 00:06:44 GMT+0200 (W. Europe Summer Time)"},"1205":{"varMapping":{"__isSmartRef__":true,"id":1206},"source":"function update() {\n\n this.draw();\n\n this.d3TransistionNodes()\n}","funcProperties":{"__isSmartRef__":true,"id":1207},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1206":{"this":{"__isSmartRef__":true,"id":804}},"1207":{"timestamp":{"__isSmartRef__":true,"id":1208},"user":"jenslincke","tags":[]},"1208":{"isSerializedDate":true,"string":"Wed Oct 02 2013 18:22:41 GMT+0200 (W. Europe Summer Time)"},"1209":{"varMapping":{"__isSmartRef__":true,"id":1210},"source":"function onrestore() {\n \n JSLoader.loadJs('http://marvl.infotech.monash.edu/webcola/cola.v3.js');\n // D3 is not loaded yet\n // d3.transition.prototype.attr\n lively.bindings.callWhenPathNotNull(Global, [\"d3\", \"transition\"], \n function() {\n this.installLayers.bind(this).delay(0)\n }.bind(this), \"call\")\n \n}","funcProperties":{"__isSmartRef__":true,"id":1215},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1210":{"this":{"__isSmartRef__":true,"id":804},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1211}},"1211":{"$super":{"__isSmartRef__":true,"id":1212}},"1212":{"varMapping":{"__isSmartRef__":true,"id":1213},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":1214},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1213":{"obj":{"__isSmartRef__":true,"id":804},"name":"onrestore"},"1214":{},"1215":{"timestamp":{"__isSmartRef__":true,"id":1216},"user":"jenslincke","tags":[]},"1216":{"isSerializedDate":true,"string":"Fri Aug 15 2014 00:11:20 GMT+0200 (W. Europe Summer Time)"},"1217":{"varMapping":{"__isSmartRef__":true,"id":1218},"source":"function installLayers() {\n cop.create(\"NoPrettyArrayPrintingLayer\").refineObject(Global, {\n printOn: function(objOrArray, ws) {\n // work around OMeta and D3 array printing incompatibilities\n if (Object.isArray(objOrArray)) {\n for (var idx = 0; idx < objOrArray.length; idx++) {\n if (idx > 0)\n ws.nextPutAll(\", \")\n printOn(objOrArray[idx], ws);\n }\n } else {\n return cop.proceed(objOrArray, ws)\n }\n }\n })\n \n // d3.transition.prototype.attr\n console.log(\"INSTALL D3 Error handler\")\n var errorHandlerFunc = function(key, value) {\n if (Object.isFunction(value)) {\n return cop.proceed(key, function() {\n try {\n return value.apply(this, arguments)\n } catch(e) {\n $world.logError(e)\n }\n })\n }\n return cop.proceed(key, value)\n }\n // Damn it, it error handling seems to be a homogenous concern\n // and AOP would be more appropriate here\n // but, higher order functions are also viable\n cop.create(\"CaptureD3Errors\").refineClass(d3.transition, {\n attr: errorHandlerFunc,\n style: errorHandlerFunc,\n }).refineClass(d3.selection, {\n attr: errorHandlerFunc,\n style: errorHandlerFunc,\n }).beGlobal()\n \n \n \n \n}","funcProperties":{"__isSmartRef__":true,"id":1219},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1218":{"this":{"__isSmartRef__":true,"id":804}},"1219":{"timestamp":{"__isSmartRef__":true,"id":1220},"user":"jenslincke","tags":[]},"1220":{"isSerializedDate":true,"string":"Thu Jul 18 2013 16:48:40 GMT+0200 (W. Europe Summer Time)"},"1221":{"varMapping":{"__isSmartRef__":true,"id":1222},"source":"function getChart() {\n return d3.select(this.renderContext().shapeNode);\n}","funcProperties":{"__isSmartRef__":true,"id":1223},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1222":{"this":{"__isSmartRef__":true,"id":804}},"1223":{"timestamp":{"__isSmartRef__":true,"id":1224},"user":"markoroeder","tags":[]},"1224":{"isSerializedDate":true,"string":"Mon Dec 17 2012 11:04:18 GMT+0100 (W. Europe Standard Time)"},"1225":{"varMapping":{"__isSmartRef__":true,"id":1226},"source":"function draw() {\n \n // this.drawBundleView()\n var selector = 'draw' +this.getVisualization()\n if (this[selector]) \n this[selector]()\n\n}","funcProperties":{"__isSmartRef__":true,"id":1227},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1226":{"this":{"__isSmartRef__":true,"id":804}},"1227":{"timestamp":{"__isSmartRef__":true,"id":1228},"user":"jenslincke","tags":[]},"1228":{"isSerializedDate":true,"string":"Wed Oct 02 2013 17:36:55 GMT+0200 (W. Europe Summer Time)"},"1229":{"varMapping":{"__isSmartRef__":true,"id":1230},"source":"function setTarget(target) {\n this.target = target\n\n this.update()\n}","funcProperties":{"__isSmartRef__":true,"id":1231},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1230":{"this":{"__isSmartRef__":true,"id":804}},"1231":{"timestamp":{"__isSmartRef__":true,"id":1232},"user":"jenslincke","tags":[]},"1232":{"isSerializedDate":true,"string":"Mon Jul 15 2013 16:04:30 GMT+0200 (W. Europe Summer Time)"},"1233":{"varMapping":{"__isSmartRef__":true,"id":1234},"source":"function initializeData() {\n\n this.addMorphsAndSubmorphLinks()\n // this.addAttributeConnectionsAsLinks()\n // var depth = Number(this.get('depth').textString)\n // var depthToGo = 5\n // this.addDerivationHistoryOfMorphHierrachy(this.target, depthToGo, depthToGo)\n\n}","funcProperties":{"__isSmartRef__":true,"id":1235},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1234":{"this":{"__isSmartRef__":true,"id":804}},"1235":{"timestamp":{"__isSmartRef__":true,"id":1236},"user":"jenslincke","tags":[]},"1236":{"isSerializedDate":true,"string":"Mon Jul 15 2013 16:00:31 GMT+0200 (W. Europe Summer Time)"},"1237":{"varMapping":{"__isSmartRef__":true,"id":1238},"source":"function addAttributeConnectionsAsLinks() {\n this.target.withAllSubmorphsDo(function(ea) { \n if (ea.attributeConnections) {\n ea.attributeConnections.forEach(function(con) {\n if (this.data.morphs[con.targetObj.id])\n this.data.connections.push({\n source: this.data.morphs[ea.id], target: this.data.morphs[con.targetObj.id], weight: 0.5})\n }, this)\n }\n}, this)\n}","funcProperties":{"__isSmartRef__":true,"id":1239},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1238":{"this":{"__isSmartRef__":true,"id":804}},"1239":{"timestamp":{"__isSmartRef__":true,"id":1240},"user":"jenslincke","tags":[]},"1240":{"isSerializedDate":true,"string":"Fri Jan 18 2013 14:57:35 GMT+0100 (W. Europe Standard Time)"},"1241":{"varMapping":{"__isSmartRef__":true,"id":1242},"source":"function addMorphsAndSubmorphLinks() {\n this.data = {morphs: {}, connections: []}\n var self = this;\n var createTree = function(m) {\n var node = {\n name: m.name || m.constructor.name, \n derivationIds: (m.derivationIds || []).concat([m.id]),\n partsBinMetaInfo: m.partsBinMetaInfo,\n type: m.constructor.type,\n id: m.id}\n node.ownProperties = Properties.own(m).length\n node.ownFunctions = Functions.own(m).length\n self.data.morphs[node.id] = node\n if (m.submorphs) {\n node.children = m.submorphs.select(Functions.K).collect(function(ea) { \n var childNode = createTree(ea)\n childNode.parent = node\n return childNode\n })\n }\n return node\n }\n this.data.root = createTree(this.target)\n \n \n}","funcProperties":{"__isSmartRef__":true,"id":1243},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1242":{"this":{"__isSmartRef__":true,"id":804}},"1243":{"timestamp":{"__isSmartRef__":true,"id":1244},"user":"jenslincke","tags":[]},"1244":{"isSerializedDate":true,"string":"Wed Jul 17 2013 18:12:03 GMT+0200 (W. Europe Summer Time)"},"1245":{"varMapping":{"__isSmartRef__":true,"id":1246},"source":"function addDerivationHistoryOfMorph(m, depth) {\n var source = m\n if (!source || !source.derivationIds) return;\n\n\n var morphs = Properties.values(this.data.morphs)\n\n var blueRect = $world.loadPartItem(\"Rectangle\",\"PartsBin/Basic\")\n var button = $world.loadPartItem(\"Button\",\"PartsBin/Inputs\")\n\n if (m.name && m.name.match(/Button/)) return;\n \n\n // this.lastNode.derivationIds\n // m = this.lastNode\n // c = this.data.connections.detect(function(ea) { \n // return ea.source === m || ea.target === m})\n\n\n source.derivationIds.concat([source.id]).each(function(id) {\n var target;\n if (id == null) return;\n if (blueRect.derivationIds.include(id)) return;\n if (button.derivationIds.include(id)) return;\n \n morphs.each(function(ea) {\n if (!ea || !ea.id) return;\n if(ea.id == id || (ea.derivationIds && ea.derivationIds.include(id))) { \n target = ea\n }\n })\n \n if (target.type == 'lively.morphic.Text') return; // ignore text morphs\n \n if (target && (target.id !== source.id)) {\n this.data.connections.push({\n source: this.data.morphs[source.id], \n target: this.data.morphs[target.id], \n derivationLink: id,\n depth: depth,\n weight: 0.5})\n }\n }, this)\n\n}","funcProperties":{"__isSmartRef__":true,"id":1247},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1246":{"this":{"__isSmartRef__":true,"id":804}},"1247":{"timestamp":{"__isSmartRef__":true,"id":1248},"user":"jenslincke","tags":[]},"1248":{"isSerializedDate":true,"string":"Wed Jul 17 2013 19:07:45 GMT+0200 (W. Europe Summer Time)"},"1249":{"varMapping":{"__isSmartRef__":true,"id":1250},"source":"function addDerivationHistoryOfMorphHierrachy(morph, depth, max) {\n this.addDerivationHistoryOfMorph(morph, max - depth);\n if (depth > 0) {\n morph.submorphs.each(function(ea) {\n this.addDerivationHistoryOfMorphHierrachy(ea, depth - 1, max)\n }.bind(this))\n }\n}","funcProperties":{"__isSmartRef__":true,"id":1251},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1250":{"this":{"__isSmartRef__":true,"id":804}},"1251":{"timestamp":{"__isSmartRef__":true,"id":1252},"user":"jenslincke","tags":[]},"1252":{"isSerializedDate":true,"string":"Fri Feb 01 2013 14:49:55 GMT+0100 (W. Europe Standard Time)"},"1253":{"varMapping":{"__isSmartRef__":true,"id":1254},"source":"function getMorphById(id) {\n var result\n $world.withAllSubmorphsDo(function(ea) {\n if (ea.id == id) {result = ea}\n })\n return result\n}","funcProperties":{"__isSmartRef__":true,"id":1255},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1254":{"this":{"__isSmartRef__":true,"id":804}},"1255":{"timestamp":{"__isSmartRef__":true,"id":1256},"user":"jenslincke","tags":[]},"1256":{"isSerializedDate":true,"string":"Fri Feb 01 2013 14:11:58 GMT+0100 (W. Europe Standard Time)"},"1257":{"varMapping":{"__isSmartRef__":true,"id":1258},"source":"function highlightMorph(id) {\n if (!id) return;\n \n var m = this.data.morphs[id]\n \n \n this.get('Status').textString = (m.name || m.type) + \" \" + m.deriviationIds\n \n}","funcProperties":{"__isSmartRef__":true,"id":1259},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1258":{"this":{"__isSmartRef__":true,"id":804}},"1259":{"timestamp":{"__isSmartRef__":true,"id":1260},"user":"jenslincke","tags":[]},"1260":{"isSerializedDate":true,"string":"Mon Jul 15 2013 18:40:43 GMT+0200 (W. Europe Summer Time)"},"1261":{"varMapping":{"__isSmartRef__":true,"id":1262},"source":"function updateDerivationDepthVis() {\n var maxDepth = Number(this.get('depth').textString)\n this.chart.selectAll(\".link2\")\n .attr(\"stroke\", function(d, index) {\n var connection = this.data.connections[index]\n lastC = connection\n if (connection.depth > maxDepth ) {\n return Color.green.withA(0.4)\n } else {\n return Color.blue.withA(0.4)\n }\n }.bind(this))\n .attr(\"stroke-width\", function(d, index) {\n var connection = this.data.connections[index]\n lastConnection = connection\n if (connection.childConnections)\n return 3 * Math.sqrt(connection.childConnections.length)\n else\n return 1}.bind(this))\n .attr(\"opacity\", function(d, index) {\n var connection = this.data.connections[index]\n if (connection.siblingConnections)\n return 0.2 + (0.8 / Math.sqrt(connection.siblingConnections.length))\n else\n return 0.2\n }.bind(this))\n}","funcProperties":{"__isSmartRef__":true,"id":1263},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1262":{"this":{"__isSmartRef__":true,"id":804}},"1263":{"timestamp":{"__isSmartRef__":true,"id":1264},"user":"jenslincke","tags":[]},"1264":{"isSerializedDate":true,"string":"Tue Jul 16 2013 15:52:05 GMT+0200 (W. Europe Summer Time)"},"1265":{"varMapping":{"__isSmartRef__":true,"id":1266},"source":"function selectMorph(m) {\n this.lastNode = m\n if (m.row)\n\n this.get('ObjectDetails').textString = Properties.own(m.row).collect(function(ea) {\n return ea +\": \" + m.row[ea] \n }).join(\"\\n\");\n \n\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":1267},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1266":{"this":{"__isSmartRef__":true,"id":804}},"1267":{"timestamp":{"__isSmartRef__":true,"id":1268},"user":"jenslincke","tags":[]},"1268":{"isSerializedDate":true,"string":"Sun Aug 10 2014 14:00:16 GMT+0200 (W. Europe Summer Time)"},"1269":{"varMapping":{"__isSmartRef__":true,"id":1270},"source":"function clear() {\n if (!this.chart) return;\n this.chart.selectAll('svg').remove();\n this.chart.selectAll('div').remove();\n}","funcProperties":{"__isSmartRef__":true,"id":1271},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1270":{"this":{"__isSmartRef__":true,"id":804}},"1271":{"timestamp":{"__isSmartRef__":true,"id":1272},"user":"jenslincke","tags":[]},"1272":{"isSerializedDate":true,"string":"Wed Oct 02 2013 15:55:11 GMT+0200 (W. Europe Summer Time)"},"1273":{"varMapping":{"__isSmartRef__":true,"id":1274},"source":"function foldNonConnectedChilds() {\n this.data.morphs\n\n var connected = this.getConnectedMorphs()\n\n\n var leaves = Properties.values(this.data.morphs).select(function(ea) { return ea.children.length == 0})\n\n var root = this.data.root\n var nonConnected = leaves.withoutAll(connected)\n nonConnected = nonConnected.reject(function(ea) {\n return ea.parent == root || !ea.parent\n })\n\n nonConnected.each(function(ea) {\n if (!ea.parent.foldedChildren) {\n ea.parent.foldedChildren = []\n }\n ea.parent.foldedChildren.push(ea)\n ea.parent.children = ea.parent.children.without(ea)\n ea.parent = null\n })\n \n this.redraw()\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":1275},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1274":{"this":{"__isSmartRef__":true,"id":804}},"1275":{"timestamp":{"__isSmartRef__":true,"id":1276},"user":"jenslincke","tags":[]},"1276":{"isSerializedDate":true,"string":"Tue Jul 16 2013 14:48:13 GMT+0200 (W. Europe Summer Time)"},"1277":{"varMapping":{"__isSmartRef__":true,"id":1278},"source":"function getConnectedMorphs() {\n return this.data.connections.inject([], function(all, ea) {\n all.push(ea.source)\n all.push(ea.target)\n return all\n }).uniq()\n}","funcProperties":{"__isSmartRef__":true,"id":1279},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1278":{"this":{"__isSmartRef__":true,"id":804}},"1279":{"timestamp":{"__isSmartRef__":true,"id":1280},"user":"jenslincke","tags":[]},"1280":{"isSerializedDate":true,"string":"Tue Jul 16 2013 11:17:37 GMT+0200 (W. Europe Summer Time)"},"1281":{"varMapping":{"__isSmartRef__":true,"id":1282},"source":"function unfoldNonConnectedChilds() {\n var morphsWithFoldedChildren = Properties.values(this.data.morphs).select(function(ea) { return ea.foldedChildren})\n\n morphsWithFoldedChildren.each(function(eaParent) { \n eaParent.foldedChildren.each(function(eaChild) {\n eaParent.children.push(eaChild)\n eaChild.parent = eaParent\n })\n delete eaParent.foldedChildren\n })\n this.redraw()\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":1283},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1282":{"this":{"__isSmartRef__":true,"id":804}},"1283":{"timestamp":{"__isSmartRef__":true,"id":1284},"user":"jenslincke","tags":[]},"1284":{"isSerializedDate":true,"string":"Tue Jul 16 2013 14:48:04 GMT+0200 (W. Europe Summer Time)"},"1285":{"varMapping":{"__isSmartRef__":true,"id":1286},"source":"function zoom(value) {\n\n (function(){\n // D3 is weired... so we do it twice\n if (this.zoomBehavior)\n this.zoomBehavior.scale(value)\n this.lastD3Scale = value;\n this.onD3Zoom()\n }).bind(this).delay(0)\n\n}","funcProperties":{"__isSmartRef__":true,"id":1287},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1286":{"this":{"__isSmartRef__":true,"id":804}},"1287":{"timestamp":{"__isSmartRef__":true,"id":1288},"user":"jenslincke","tags":[]},"1288":{"isSerializedDate":true,"string":"Wed Jul 24 2013 13:29:52 GMT+0200 (W. Europe Summer Time)"},"1289":{"varMapping":{"__isSmartRef__":true,"id":1290},"source":"function getD3Transform() {\n if (!this.svgNode) return;\n return this.svgNode.attr(\"transform\")\n\n}","funcProperties":{"__isSmartRef__":true,"id":1291},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1290":{"this":{"__isSmartRef__":true,"id":804}},"1291":{"timestamp":{"__isSmartRef__":true,"id":1292},"user":"jenslincke","tags":[]},"1292":{"isSerializedDate":true,"string":"Tue Jul 16 2013 16:32:35 GMT+0200 (W. Europe Summer Time)"},"1293":{"varMapping":{"__isSmartRef__":true,"id":1294},"source":"function setD3Transform(value) {\n if (!this.svgNode || !value) return;\n\n return this.svgNode.attr(\"transform\", value)\n\n}","funcProperties":{"__isSmartRef__":true,"id":1295},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1294":{"this":{"__isSmartRef__":true,"id":804}},"1295":{"timestamp":{"__isSmartRef__":true,"id":1296},"user":"jenslincke","tags":[]},"1296":{"isSerializedDate":true,"string":"Tue Jul 16 2013 16:32:45 GMT+0200 (W. Europe Summer Time)"},"1297":{"varMapping":{"__isSmartRef__":true,"id":1298},"source":"function bundleConnections() {\n\n var all = this.data.connections\n var uniqCons = []\n all.each(function(a) {\n if (! uniqCons.detect(function(b) { \n return a.source == b.source && a.target == b.target }))\n uniqCons.push(a)\n })\n\n var childCons = this.data.connections.select(function(c) {\n var parentConnection = all.detect(function(ea) {\n return ea.source == c.source.parent\n && ea.target == c.target.parent;\n })\n if (parentConnection) {\n if (!parentConnection.childConnections)\n parentConnection.childConnections = []\n parentConnection.childConnections.push(c)\n c.parentConnection = parentConnection\n }\n\n return parentConnection\n })\n\n this.data.connections = this.data.connections.withoutAll(childCons)\n\n this.redraw()\n}","funcProperties":{"__isSmartRef__":true,"id":1299},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1298":{"this":{"__isSmartRef__":true,"id":804}},"1299":{"timestamp":{"__isSmartRef__":true,"id":1300},"user":"jenslincke","tags":[]},"1300":{"isSerializedDate":true,"string":"Tue Jul 16 2013 14:54:16 GMT+0200 (W. Europe Summer Time)"},"1301":{"varMapping":{"__isSmartRef__":true,"id":1302},"source":"function redraw() {\n // seems not working under Chrome / Windows 7\n // var oldTransform = this.getD3Transform().clone()\n \n //this.setVisible(false)\n this.draw();\n this.d3TransistionNodes(false)\n\n \n\n // (function() {\n // this.setD3Transform(oldTransform)\n //this.setVisible(true)\n // }).bind(this).delay(0)\n}","funcProperties":{"__isSmartRef__":true,"id":1303},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1302":{"this":{"__isSmartRef__":true,"id":804}},"1303":{"timestamp":{"__isSmartRef__":true,"id":1304},"user":"jenslincke","tags":[]},"1304":{"isSerializedDate":true,"string":"Sat Sep 07 2013 14:35:11 GMT+0200 (W. Europe Summer Time)"},"1305":{"varMapping":{"__isSmartRef__":true,"id":1306},"source":"function makeUniqConnections() {\n var all = this.data.connections\n var uniqCons = []\n all.each(function(a) {\n var sibling = uniqCons.detect(function(b) { \n return a.source == b.source && a.target == b.target })\n if (sibling) {\n if (!sibling.siblingConnections)\n sibling.siblingConnections = [];\n sibling.siblingConnections.push(a)\n } else {\n uniqCons.push(a)\n }\n })\n this.data.connections = uniqCons\n}","funcProperties":{"__isSmartRef__":true,"id":1307},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1306":{"this":{"__isSmartRef__":true,"id":804}},"1307":{"timestamp":{"__isSmartRef__":true,"id":1308},"user":"jenslincke","tags":[]},"1308":{"isSerializedDate":true,"string":"Tue Jul 16 2013 15:13:49 GMT+0200 (W. Europe Summer Time)"},"1309":{"varMapping":{"__isSmartRef__":true,"id":1310},"source":"function onD3Zoom() {\n\n if (d3.event) {\n if (d3.event.translate) this.lastD3Translate = d3.event.translate\n if (d3.event.scale) {\n this.lastD3Scale = d3.event.scale\n // this.get(\"ZoomSlider\").value = d3.event.scale\n }\n }\n\n var tfm = \"\"\n if (this.lastD3Translate)\n tfm += \"translate(\"\n + this.lastD3Translate[0] + \",\"\n + this.lastD3Translate[1] + \")\"\n\n if (this.lastD3Scale)\n tfm += \" scale(\" + this.lastD3Scale + \")\"\n\n\n\n\n this.svgNode.attr(\"transform\", tfm);\n\n}","funcProperties":{"__isSmartRef__":true,"id":1311},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1310":{"this":{"__isSmartRef__":true,"id":804}},"1311":{"timestamp":{"__isSmartRef__":true,"id":1312},"user":"jenslincke","tags":[]},"1312":{"isSerializedDate":true,"string":"Tue Jul 16 2013 16:54:33 GMT+0200 (W. Europe Summer Time)"},"1313":{"varMapping":{"__isSmartRef__":true,"id":1314},"source":"function onCenter() {\n delete this.lastD3Translate\n delete this.lastD3Scale\n this.onD3Zoom()\n}","funcProperties":{"__isSmartRef__":true,"id":1315},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1314":{"this":{"__isSmartRef__":true,"id":804}},"1315":{"timestamp":{"__isSmartRef__":true,"id":1316},"user":"jenslincke","tags":[]},"1316":{"isSerializedDate":true,"string":"Tue Jul 16 2013 16:49:48 GMT+0200 (W. Europe Summer Time)"},"1317":{"varMapping":{"__isSmartRef__":true,"id":1318},"source":"function onExport() {\n var s = \"\" +\n Exporter.stringify(this.chart[0][0]) + \"\"\n\n var fileName = this.getExportFilename()\n var url = URL.source.withFilename(fileName + \".html\");\n var wr = new WebResource(url)\n wr.put(s)\n\n $world.confirm(\"exported \" + url +\". Visit it?\", function(bool) {\n if (bool) {\n window.open(url)\n }\n });\n}","funcProperties":{"__isSmartRef__":true,"id":1319},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1318":{"this":{"__isSmartRef__":true,"id":804}},"1319":{"timestamp":{"__isSmartRef__":true,"id":1320},"user":"jenslincke","tags":[]},"1320":{"isSerializedDate":true,"string":"Sun Aug 10 2014 13:50:28 GMT+0200 (W. Europe Summer Time)"},"1321":{"varMapping":{"__isSmartRef__":true,"id":1322},"source":"function updateNodeStyle() {\n\n // this.startStepping(300, \"updateNodeStyle\")\n\n // Properties.own(this.lastNode).select(function(ea) {\n // return Object.isNumber(this.lastNode[ea])\n // }.bind(this))\n\n var allOwnFunctions = function(d) {\n return d.ownFunctions + (d.foldedChildren || []).inject(0, \n function(sum, ea) { return sum + allOwnFunctions(ea) })\n }\n\n var sizeFunc = function(d) { return Math.sqrt(allOwnFunctions(d)) * 3 + 3}\n\n\n this.svgNode.selectAll(\".node\")\n .selectAll(\"circle\")\n .attr(\"r\", function(d) {\n return sizeFunc(d) } )\n .attr(\"fill\", function(d) {\n var m = this.data.morphs[d.id];\n if (m && m.partsBinMetaInfo) {\n return Color.blue.withA(0.3)\n } else {\n return Color.white\n }\n }.bind(this))\n\n}","funcProperties":{"__isSmartRef__":true,"id":1323},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1322":{"this":{"__isSmartRef__":true,"id":804}},"1323":{"timestamp":{"__isSmartRef__":true,"id":1324},"user":"jenslincke","tags":[]},"1324":{"isSerializedDate":true,"string":"Thu Jul 18 2013 11:02:13 GMT+0200 (W. Europe Summer Time)"},"1325":{"varMapping":{"__isSmartRef__":true,"id":1326},"source":"function drawScratch() {\n // own functions label\n node.append(\"text\")\n .attr(\"class\", \"functionsLabel\")\n .attr(\"dy\", \".41em\")\n .attr(\"font-size\", function(d) {\n return (d.foldedChildren ? Math.sqrt(d.foldedChildren.length) * 3 + 8 : 8) \n })\n .attr(\"text-anchor\", function(d) { return d.x < 180 ? \"start\" : \"end\"; })\n .attr(\"transform\", function(d) {\n return d.x < 180 ? \"rotate(270)translate(8)\" : \"rotate(260)translate(-8)\"; })\n .text(function(d) { return 'F'+ d.ownFunctions })\n\n // Own properties label\n node.append(\"text\")\n .attr(\"class\", \"propertiesLabel\")\n .attr(\"dy\", \".41em\")\n .attr(\"font-size\", function(d) {\n return (d.foldedChildren ? Math.sqrt(d.foldedChildren.length) * 3 + 8 : 8) \n })\n .attr(\"text-anchor\", function(d) { return d.x < 180 ? \"start\" : \"end\"; })\n .attr(\"transform\", function(d) {\n return d.x < 180 ? \"rotate(315)translate(8)\" : \"rotate(215)translate(-8)\"; })\n .text(function(d) { return 'P'+ d.ownProperties })\n\n\n this.svgNode.selectAll(\".nodeShape\").transition()\n .duration(750)\n .attr(\"r\", function(d) {\n return Math.random() * 50 + 5} )\n .style(\"opacity\", 0.5)\n .style(\"fill\", function() { \n return Color.random() })\n\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":1327},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1326":{"this":{"__isSmartRef__":true,"id":804}},"1327":{"timestamp":{"__isSmartRef__":true,"id":1328},"user":"jenslincke","tags":[]},"1328":{"isSerializedDate":true,"string":"Thu Jul 18 2013 16:48:14 GMT+0200 (W. Europe Summer Time)"},"1329":{"varMapping":{"__isSmartRef__":true,"id":1330},"source":"function updateTextLabels() {\n this.svgNode.selectAll(\".nodeLabel\")\n .attr(\"dy\", \".41em\")\n .attr(\"font-size\", function(d) {\n return (d.foldedChildren ? Math.sqrt(d.foldedChildren.length) * 3 + 8 : 8) \n })\n .attr(\"text-anchor\", function(d) { return d.x < 180 ? \"start\" : \"end\"; })\n .attr(\"transform\", function(d) {\n return d.x < 180 ? \"translate(8)\" : \"rotate(180)translate(-8)\"; })\n .text(function(d) { return (d.name || \"\").truncate(20); })\n .on(\"click\", function(d) { this.selectMorph(d) }.bind(this))\n\n}","funcProperties":{"__isSmartRef__":true,"id":1331},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1330":{"this":{"__isSmartRef__":true,"id":804}},"1331":{"timestamp":{"__isSmartRef__":true,"id":1332},"user":"jenslincke","tags":[]},"1332":{"isSerializedDate":true,"string":"Wed Jul 24 2013 18:06:19 GMT+0200 (W. Europe Summer Time)"},"1333":{"varMapping":{"__isSmartRef__":true,"id":1334},"source":"function d3TransistionNodes(transition) {\n\n if (this.getVisualization() == \"TreeMap\") return this.draw()\n if (this.getVisualization() == \"ForceGraph\") {\n return this.draw()\n }\n if (!this.svgNode) return\n\n // get the shape nodes\n var shapeNodes = this.svgNode.selectAll(\".nodeShape\")\n if (transition) shapeNodes = shapeNodes.transition()\n\n shapeNodes.attr(\"r\", this.getSizeFunc().bind(this))\n\n this.svgNode.selectAll(\".nodeLabel\")\n .attr(\"font-size\", this.getTextSizeFunc().bind(this))\n\n var colorFunc = this.getColorFuncForNode()\n shapeNodes.style(\"fill\", colorFunc.bind(this))\n\n return;\n\n}","funcProperties":{"__isSmartRef__":true,"id":1335},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1334":{"this":{"__isSmartRef__":true,"id":804}},"1335":{"timestamp":{"__isSmartRef__":true,"id":1336},"user":"jenslincke","tags":[]},"1336":{"isSerializedDate":true,"string":"Thu Aug 14 2014 22:48:19 GMT+0200 (W. Europe Summer Time)"},"1337":{"varMapping":{"__isSmartRef__":true,"id":1338},"source":"function catchErrors(f) {\n // D3 does not like to handle errors. It just stops working. So we be helpful\n // and handle them for it. \n return function() {\n try {\n return f.apply(this, arguments)\n } catch(e) {\n $world.logError(e)\n }\n }\n}","funcProperties":{"__isSmartRef__":true,"id":1339},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1338":{"this":{"__isSmartRef__":true,"id":804}},"1339":{"timestamp":{"__isSmartRef__":true,"id":1340},"user":"jenslincke","tags":[]},"1340":{"isSerializedDate":true,"string":"Thu Jul 18 2013 13:52:05 GMT+0200 (W. Europe Summer Time)"},"1341":{"varMapping":{"__isSmartRef__":true,"id":1342},"source":"function fillNodeSizeFunctionList() {\n var allSizeFunc = function(d) {\n return d.ownFunctions + (d.foldedChildren || []).inject(0, \n function(sum, ea) { return sum + allSizeFunc(ea) })\n }\n\n this.get(\"NodeSizeFunctionList\").updateList([\n function numberOfScripts(d) {\n return Math.sqrt(allSizeFunc(d)) * 3 + 3},\n function metaInfoChanges(d) {\n if (!d.partsBinMetaInfo || !d.partsBinMetaInfo.changes) return 20\n return d.partsBinMetaInfo.changes.length + 5\n }\n ].collect(function(ea) {\n return {string: ea.name, value: ea, isListItem: true}\n }))\n}","funcProperties":{"__isSmartRef__":true,"id":1343},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1342":{"this":{"__isSmartRef__":true,"id":804}},"1343":{"timestamp":{"__isSmartRef__":true,"id":1344},"user":"jenslincke","tags":[]},"1344":{"isSerializedDate":true,"string":"Fri Jul 19 2013 11:27:23 GMT+0200 (W. Europe Summer Time)"},"1345":{"varMapping":{"__isSmartRef__":true,"id":1346},"source":"function addNeo4JNodes() {\n var neoPane = this.get(\"DerivationNeo4JGraphPane\")\n\n // node = neoPane.getPartsBinRoot()\n this.data = {\n morphs: {},\n connections: []\n }\n this.data.root = this.createD3FullTreeFromGraphDB(neoPane.getPartsBinRoot(), 3)\n\n // this.data.root = this.createD3TreeFromGraphDB(neoPane.getPartsSpaceNode(\"PartsBin/Basic\"), 3)\n this.draw()\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":1347},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1346":{"this":{"__isSmartRef__":true,"id":804}},"1347":{"timestamp":{"__isSmartRef__":true,"id":1348},"user":"jenslincke","tags":[]},"1348":{"isSerializedDate":true,"string":"Fri Jul 26 2013 22:16:50 GMT+0200 (W. Europe Summer Time)"},"1349":{"varMapping":{"__isSmartRef__":true,"id":1350},"source":"function createD3TreeFromGraphDB(neoNode, depth) {\n // this.addNeo4JNodes()\n // neoNode = this.get(\"DerivationNeo4JGraphPane\").getPartsBinRoot()\n // neoNode = neoNode.getRelationships(\"out\")[0].getEndNode()\n // neoNode = this.lastNode.neoNode\n // neoNode.getProperty(\"name\")\n\n if (depth <= 0) return;\n var node = {\n name: neoNode.getProperty(\"name\") || \"root\",\n neoID: neoNode.getId(),\n neoNode: neoNode\n }\n\n\n var type = neoNode.getProperty(\"type\")\n\n var relations;\n if(type ==\"PartsBin\")\n relations = neoNode.getRelationships(\"out\", \"partSpace\");\n else if(type ==\"PartSpace\")\n relations = neoNode.getRelationships(\"out\", \"part\");\n else if(type ==\"Part\") {\n relations = neoNode.getRelationships(\"out\", 'revision')\n \n // if (relations.length > 1)\n // relations = relations.sortBy(function(ea){ return Number(ea.getProperty(\"rev\")) }).first()\n }\n else\n relations = neoNode.getRelationships(\"out\");\n\n\n node.children = relations\n .invoke(\"getEndNode\")\n .collect(function(ea) {\n return this.createD3TreeFromGraphDB(ea, depth - 1)\n }, this).select(Functions.K)\n\n return node\n}","funcProperties":{"__isSmartRef__":true,"id":1351},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1350":{"this":{"__isSmartRef__":true,"id":804}},"1351":{"timestamp":{"__isSmartRef__":true,"id":1352},"user":"jenslincke","tags":[]},"1352":{"isSerializedDate":true,"string":"Fri Jul 26 2013 17:18:14 GMT+0200 (W. Europe Summer Time)"},"1353":{"varMapping":{"__isSmartRef__":true,"id":1354},"source":"function updateNodesForNeoDerivation(c) {\n\n\n var pane = this.get(\"DerivationInspectorPane\");\n if (!pane) return;\n\n var target = this.get(\"DerivationInspectorPane\").target\n if (target && target.derivationIds) {\n var targetIds = target.derivationIds.collect(function(ea) {\n return \"\" +ea ; // force string conversion (for Neo4J)\n })\n }\n var maxNewIdsLength = 0;\n\n this.eachDataNode(function(ea) {\n LastEa = ea; // ea = LastEa\n if (!ea.neoNode) return;\n var ids = ea.neoNode.getProperty(\"derivationIds\")\n if(ids){\n var newIds = ids.withoutAll(targetIds)\n ea.newIdsLength = newIds.length\n ea.sharedIdsLength = ids.length - ea.newIdsLength;\n maxNewIdsLength = Math.max(maxNewIdsLength, ea.newIdsLength)\n } else {\n delete ea.newIdsLength\n delete ea.sharedIdsLength\n }\n })\n\n this.svgNode.selectAll(\".nodeShape\").transition()\n .attr(\"r\", function(d) {\n return d.sharedIdsLength ? d.sharedIdsLength + 3 : 0\n })\n .style(\"fill\", function(d) {\n return Color.hsb(0,0, 1 - ((d.newIdsLength || 0) / maxNewIdsLength ))\n }.bind(this))\n\n this.svgNode.selectAll(\".nodeLabel\").transition()\n .attr(\"font-size\", function(d) {\n return (d.sharedIdsLength ? Math.sqrt(d.sharedIdsLength) * 3 + 8 : 8) \n })\n\n}","funcProperties":{"__isSmartRef__":true,"id":1355},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1354":{"this":{"__isSmartRef__":true,"id":804}},"1355":{"timestamp":{"__isSmartRef__":true,"id":1356},"user":"jenslincke","tags":[]},"1356":{"isSerializedDate":true,"string":"Mon Aug 26 2013 10:24:24 GMT+0200 (W. Europe Summer Time)"},"1357":{"varMapping":{"__isSmartRef__":true,"id":1358},"source":"function eachDataNode(func) {\n var visit = function(n){\n if(!n) return \n func.call(this, n)\n if (n.children) {\n n.children.each(function(ea) { visit(ea)}) }\n }\n visit(this.data.root)\n}","funcProperties":{"__isSmartRef__":true,"id":1359},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1358":{"this":{"__isSmartRef__":true,"id":804}},"1359":{"timestamp":{"__isSmartRef__":true,"id":1360},"user":"jenslincke","tags":[]},"1360":{"isSerializedDate":true,"string":"Thu Jul 25 2013 19:40:34 GMT+0200 (W. Europe Summer Time)"},"1361":{"varMapping":{"__isSmartRef__":true,"id":1362},"source":"function createD3FullTreeFromGraphDB(neoNode, depth) {\n // this.addNeo4JNodes()\n // neoNode = this.get(\"DerivationNeo4JGraphPane\").getPartsBinRoot()\n // neoNode = neoNode.getRelationships(\"out\")[0].getEndNode()\n // neoNode = this.lastNode.neoNode\n // neoNode.getProperty(\"name\")\n\n if (depth <= 0) return;\n var node = {\n name: neoNode.getProperty(\"name\") || \"root\",\n neoID: neoNode.getId(),\n neoNode: neoNode\n }\n\n\n var type = neoNode.getProperty(\"type\")\n\n var relations = neoNode.getRelationships(\"out\")\n\n\n node.children = relations\n .invoke(\"getEndNode\")\n .collect(function(ea) {\n return this.createD3TreeFromGraphDB(ea, depth - 1)\n }, this).select(Functions.K)\n\n return node\n}","funcProperties":{"__isSmartRef__":true,"id":1363},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1362":{"this":{"__isSmartRef__":true,"id":804}},"1363":{"timestamp":{"__isSmartRef__":true,"id":1364},"user":"jenslincke","tags":[]},"1364":{"isSerializedDate":true,"string":"Fri Jul 26 2013 22:16:32 GMT+0200 (W. Europe Summer Time)"},"1365":{"varMapping":{"__isSmartRef__":true,"id":1366},"source":"function deleteLastNeoNode() {\n \n var node = this.lastNode\n this.world().confirm(\"do you want to delete \" + node.name+\"?\", function(bool) {\n if(!bool) return;\n if (node.neoNode)\n node.neoNode.remove()\n })\n \n}","funcProperties":{"__isSmartRef__":true,"id":1367},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1366":{"this":{"__isSmartRef__":true,"id":804}},"1367":{"timestamp":{"__isSmartRef__":true,"id":1368},"user":"jenslincke","tags":[]},"1368":{"isSerializedDate":true,"string":"Mon Jul 29 2013 13:23:28 GMT+0200 (W. Europe Summer Time)"},"1369":{"varMapping":{"__isSmartRef__":true,"id":1370},"source":"function drawTreeMap() {\n var node = this.data.root;\n var root = node;\n\n this.clear()\n if (!this.data.root || this.data.root.children.length == 0 ) return \n\n this.updateTreeSize(root)\n\n if (!this.chart) this.chart = this.getChart();\n\nvar margin = {top: 0, right: 0, bottom: 0, left: 0},\n width = this.getExtent().x,\n height = this.getExtent().y;\n\nvar color = d3.scale.category20c();\n\n\n\nvar treemap = d3.layout.treemap()\n .size([width, height])\n .padding([20, 4, 4, 4])\n .sticky(true)\n .value(function(d) { return d.size; });\n\n var vis = this.chart.append(\"div\")\n .style(\"position\", \"relative\")\n .style(\"width\", (width + margin.left + margin.right) + \"px\")\n .style(\"height\", (height + margin.top + margin.bottom) + \"px\")\n .style(\"left\", margin.left + \"px\")\n .style(\"top\", margin.top + \"px\")\n .style(\"border\", \"5px\");\n\n\n var colorFunc = this.getColorFuncForNode()\n var node = vis.datum(root).selectAll(\".node\")\n .data(treemap.nodes)\n .enter().append(\"div\")\n .attr(\"class\", \"treeMapNode\")\n .call(position)\n .style(\"background\", function(d) {\n return colorFunc(d) })\n //.style(\"background\", function(d) { return d.children ? color(d.name) : null; })\n\n var paddingAllowance = 2;\n node.append(\"foreignObject\")\n .attr(\"class\", \"foreignObject\")\n .attr(\"width\", function(d) {\n return d.dx - paddingAllowance;\n })\n .attr(\"height\", function(d) {\n return d.dy - paddingAllowance;\n })\n .append(\"xhtml:body\")\n .attr(\"class\", \"labelbody\")\n .append(\"div\")\n .attr(\"class\", \"label\")\n .text(function(d) { \n return \"\" + (d.name || \"\").truncate(20); \n })\n .attr(\"text-anchor\", \"middle\")\n\n d3.selectAll(\"input\").on(\"change\", function change() {\n var value = this.value === \"count\"\n ? function() { return 1; }\n : function(d) { return d.size; };\n\n node\n .data(treemap.value(value).nodes)\n .transition()\n .duration(1500)\n .call(position);\n });\n\n\nfunction position() {\n this.style(\"left\", function(d) { return d.x + \"px\"; })\n .style(\"top\", function(d) { return d.y + \"px\"; })\n .style(\"width\", function(d) { return Math.max(0, d.dx - 1) + \"px\"; })\n .style(\"height\", function(d) { return Math.max(0, d.dy - 1) + \"px\"; });\n}\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":1371},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1370":{"this":{"__isSmartRef__":true,"id":804}},"1371":{"timestamp":{"__isSmartRef__":true,"id":1372},"user":"jenslincke","tags":[]},"1372":{"isSerializedDate":true,"string":"Mon Aug 18 2014 22:54:00 GMT+0200 (W. Europe Summer Time)"},"1373":{"varMapping":{"__isSmartRef__":true,"id":1374},"source":"function drawBundleView() {\n\n\n if (!this.chart) this.chart = this.getChart();\n this.clear()\n\n var width = this.getExtent().x,\n height = this.getExtent().y;\n\n var diameter = height,\n radius = diameter / 2,\n innerRadius = radius - 120;\n\n var cluster = d3.layout.cluster()\n .size([360, innerRadius])\n .sort(null)\n .value(function(d) { return d.size; });\n\n\n var tree = d3.layout.tree()\n .size([360, diameter / 2 * Math.log(this.scaleDetail) - 120])\n .separation(function(a, b) { return (a.parent == b.parent ? 1 : 2) / a.depth; });\n\n var diagonal = d3.svg.diagonal.radial()\n .projection(function(d) { return [d.y, d.x / 180 * Math.PI]; });\n\n this.zoomBehavior = d3.behavior.zoom().on(\"zoom\", \n function() {this.onD3Zoom(this)}.bind(this))\n\n var svgOuter = this.chart.append('svg')\n .attr('width', width)\n .attr('height', height)\n .call(this.zoomBehavior)\n .append(\"g\")\n .attr(\"transform\", \"translate(\" + radius + \",\" + radius + \")\")\n\n\n var svg = svgOuter.append (\"g\");\n this.svgNode = svg\n\n\n var bundle = d3.layout.bundle();\n\n var nodes =tree.nodes(this.data.root),\n links = tree.links(nodes);\n\n var self = this;\n cop.withLayers([NoPrettyArrayPrintingLayer], function() {\n var link = svg.selectAll(\".link\")\n .data(links)\n .enter()\n .append(\"path\")\n .attr(\"class\", \"link\")\n .attr(\"d\", diagonal);\n\n var line = d3.svg.line.radial()\n .interpolate(\"bundle\")\n .tension(.85)\n .radius(function(d) { return d.y; })\n .angle(function(d) { return d.x / 180 * Math.PI; });\n\n\n svg.selectAll(\".link2\")\n .data(bundle(this.data.connections))\n .enter().append(\"path\")\n .attr(\"class\", \"link2\")\n .attr(\"d\", line)\n\n }.bind(this))\n\n var node = svg.selectAll(\".node\").data(nodes)\n .enter().append(\"g\")\n .attr(\"class\", \"node\")\n .attr(\"transform\", function(d) { \n return \"rotate(\" + (d.x - 90) + \")translate(\" + d.y + \")\"; })\n\n node.append(\"circle\")\n .attr(\"class\", \"nodeShape\")\n .on(\"mouseover\", function(d) { this.highlightMorph(d.id)}.bind(this));\n\n node.append(\"text\")\n .attr(\"class\", \"nodeLabel\")\n\n this.updateTextLabels()\n this.updateNodeStyle()\n \n this.updateDerivationDepthVis()\n this.updateNodesForNeoDerivation()\n\n }","funcProperties":{"__isSmartRef__":true,"id":1375},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1374":{"this":{"__isSmartRef__":true,"id":804}},"1375":{"timestamp":{"__isSmartRef__":true,"id":1376},"user":"jenslincke","tags":[]},"1376":{"isSerializedDate":true,"string":"Wed Oct 02 2013 15:56:03 GMT+0200 (W. Europe Summer Time)"},"1377":{"varMapping":{"__isSmartRef__":true,"id":1378},"source":"function updateTreeSize(root) {\n var func = this.get('NodeSizeFunctionList').selection || function() { return 1}\n var calcSize = function(tree) {\n if (!tree || !tree.children) return 0\n tree.size = tree.children.inject(0, function(sum, ea) {\n return sum + calcSize(ea)\n })\n if (tree.row) tree.size += func(tree)\n return tree.size\n }\n calcSize(root)\n\n}","funcProperties":{"__isSmartRef__":true,"id":1379},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1378":{"this":{"__isSmartRef__":true,"id":804}},"1379":{"timestamp":{"__isSmartRef__":true,"id":1380},"user":"jenslincke","tags":[]},"1380":{"isSerializedDate":true,"string":"Wed Oct 02 2013 18:26:19 GMT+0200 (W. Europe Summer Time)"},"1381":{"varMapping":{"__isSmartRef__":true,"id":1382},"source":"function getColorFuncForNode() {\n // this.getColorFuncForNode()(root)\n var colorList = this.get(\"NodeColorFunctionList\")\n var colorFunc = colorList.selection || colorList.getValues().first() \n if (!colorFunc || ! (colorFunc instanceof Function)) {\n colorFunc = function() { return Color.blue}\n }\n return colorFunc.bind(this);\n \n}","funcProperties":{"__isSmartRef__":true,"id":1383},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1382":{"this":{"__isSmartRef__":true,"id":804}},"1383":{"timestamp":{"__isSmartRef__":true,"id":1384},"user":"jenslincke","tags":[]},"1384":{"isSerializedDate":true,"string":"Sun Aug 10 2014 14:35:15 GMT+0200 (W. Europe Summer Time)"},"1385":{"varMapping":{"__isSmartRef__":true,"id":1386},"source":"function getVisualization() {\n return this.get(\"VisualizationList\").selection || \"TreeMap\"\n}","funcProperties":{"__isSmartRef__":true,"id":1387},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1386":{"this":{"__isSmartRef__":true,"id":804}},"1387":{"timestamp":{"__isSmartRef__":true,"id":1388},"user":"jenslincke","tags":[]},"1388":{"isSerializedDate":true,"string":"Wed Oct 02 2013 16:55:16 GMT+0200 (W. Europe Summer Time)"},"1389":{"varMapping":{"__isSmartRef__":true,"id":1390},"source":"function getExportFilename() {\n return this.get(\"TableName\").textString;\n}","funcProperties":{"__isSmartRef__":true,"id":1391},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1390":{"this":{"__isSmartRef__":true,"id":804}},"1391":{"timestamp":{"__isSmartRef__":true,"id":1392},"user":"jenslincke","tags":[]},"1392":{"isSerializedDate":true,"string":"Sun Aug 10 2014 13:49:59 GMT+0200 (W. Europe Summer Time)"},"1393":{"varMapping":{"__isSmartRef__":true,"id":1394},"source":"function drawForceGraph(interactive, flow) {\n\n if (!this.chart) this.chart = this.getChart();\n this.clear()\n\n var width = this.getExtent().x,\n height = this.getExtent().y;\n\n var diameter = height,\n radius = diameter / 2,\n innerRadius = radius - 120;\n \n this.zoomBehavior = d3.behavior.zoom().on(\"zoom\", \n function() {this.onD3Zoom(this)}.bind(this))\n\n var labelAnchors = this.graphData.nodes.reduce(function(lst, node) {\n lst.push({ node: node });\n lst.push({ node: node });\n return lst;\n }, []);\n var labelAnchorLinks = this.graphData.nodes.collect(function(node, idx) {\n return { source: idx * 2, target: idx * 2 + 1, weight: 1 };\n });\n\n var forceLabel = d3.layout.force()\n .gravity(0)\n .linkDistance(0)\n .linkStrength(8)\n .charge(-100)\n .size([width, height])\n .nodes(labelAnchors)\n .links(labelAnchorLinks)\n\t.start();\n\n var color = this.getColorFuncForNode();\n var sizeFunc = this.getSizeFunc();\n\n var force = cola.d3adaptor()\n .size([width, height])\n // .gravity(1)\n //.linkDistance(30 + 200 * this.get(\"ScaleSlider\").value\n // .linkDistance(50)\n // .linkStrength(function(x) {return x.weight * 10;})\n // .charge(-3000)\n .size([width, height])\n .nodes(this.graphData.nodes)\n .links(this.graphData.links)\n .linkDistance(100)\n if (flow) {\n force\n .linkDistance(80)\n .flowLayout(\"x\", 100)\n }\n force.avoidOverlaps(true);\n //.constraints(graph.constraints)\n // .symmetricDiffLinkLengths(5)\n force.start(1,1,1);\n //.start();\n\n var svgOuter = this.chart.append('svg')\n .attr('width', width)\n .attr('height', height)\n .call(this.zoomBehavior)\n .append(\"g\")\n //.attr(\"transform\", \"translate(\" + radius + \",\" + radius + \")\")\n\n var svg = svgOuter.append (\"g\");\n this.svgNode = svg\n\n var link = svg.selectAll('line.link')\n .data(this.graphData.links)\n .enter().append('line')\n .style('stroke', '#999999')\n .style('stroke-opacity', 0.6)\n .style('stroke-width', function(d) { return d.weight * 2; });\n\n var node = svg.selectAll('circle.linke')\n .data(this.graphData.nodes)\n .enter().append('circle')\n .attr('r', sizeFunc)\n .style('stroke', '#FFFFFF')\n .style('stroke-width', '1.5px')\n .style('fill', function(d) { return color(d); })\n .call(force.drag);\n\n var anchorLink = svg.selectAll('line.anchorLink')\n .data(labelAnchorLinks);\n\n\n var textSizeFunc = this.getTextSizeFunc()\n var anchorNode = svg.selectAll('g.anchorNode')\n .data(forceLabel.nodes())\n .enter().append('g');\n anchorNode.append('circle')\n .attr('r', 0)\n .style('fill', '#FFFFFF');\n anchorNode.append('text')\n .text(function(d, i) { return i % 2 == 0 ? '' : d.node.name; })\n .style('fill', '#555555')\n .style('font-family', 'Arial')\n .style('font-size', function(d) {\n return (textSizeFunc(d.node) * 0.5) +3\n });\n\n\n function updateLink() {\n this.attr('x1', function(d) { return d.source.x; })\n .attr('y1', function(d) { return d.source.y; })\n .attr('x2', function(d) { return d.target.x; })\n .attr('y2', function(d) { return d.target.y; });\n }\n function updateNode() {\n this.attr('transform', function(d) {\n return 'translate(' + d.x + ',' + d.y + ')';\n });\n }\n \n function updateNodes() {\n node.call(updateNode);\n anchorNode.each(function(d, i) {\n if (i % 2 == 0) {\n d.x = d.node.x;\n d.y = d.node.y;\n } else {\n d.x = d.node.x;\n d.y = d.node.y;\n }\n });\n anchorNode.call(updateNode);\n link.call(updateLink);\n anchorLink.call(updateLink);\n }\n \n if (!interactive) {\n setTimeout(function() {\n var n = 400\n force.start();\n forceLabel.start();\n for (var i = n * n; i > 0; --i) force.tick();\n force.stop();\n forceLabel.stop();\n updateNodes()\n }, 10);\n } else {\n force.on('tick', function() {\n try {\n forceLabel.start();\n updateNodes()\n } catch(e) {\n $world.logError(e) }\n });\n }\n force.tick()\n\n}","funcProperties":{"__isSmartRef__":true,"id":1395},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1394":{"this":{"__isSmartRef__":true,"id":804}},"1395":{"timestamp":{"__isSmartRef__":true,"id":1396},"user":"jenslincke","tags":[]},"1396":{"isSerializedDate":true,"string":"Fri Aug 15 2014 00:15:12 GMT+0200 (W. Europe Summer Time)"},"1397":{"varMapping":{"__isSmartRef__":true,"id":1398},"source":"function exampleGraphData() {\n this.graphData = { nodes: [], links: [] };\n var nodes = ['A', 'B', 'C', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N'];\n\n for (var i = 0; i < 15; i++) {\n var rnd1 = Math.floor(Math.random() * nodes.length);\n var rnd2 = Math.floor(Math.random() * (nodes.length - 1));\n if (rnd2 >= rnd1)\n rnd2++;\n this.graphData.links.push({ source: rnd1, target: rnd2, weight: 1 });\n }\n this.graphData.nodes = nodes.collect(function(node) {\n return { name: node };\n });\n}","funcProperties":{"__isSmartRef__":true,"id":1399},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1398":{"this":{"__isSmartRef__":true,"id":804}},"1399":{"timestamp":{"__isSmartRef__":true,"id":1400},"user":"jenslincke","tags":[]},"1400":{"isSerializedDate":true,"string":"Wed Aug 13 2014 18:47:14 GMT+0200 (W. Europe Summer Time)"},"1401":{"varMapping":{"__isSmartRef__":true,"id":1402},"source":"function getSizeFunc() {\n var list = this.get(\"NodeSizeFunctionList\")\n var sizeFunc = list.selection || list.getValues().first() \n if (!sizeFunc || ! (sizeFunc instanceof Function)) {\n sizeFunc = function() { return 5}\n }\n return sizeFunc\n}","funcProperties":{"__isSmartRef__":true,"id":1403},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1402":{"this":{"__isSmartRef__":true,"id":804}},"1403":{"timestamp":{"__isSmartRef__":true,"id":1404},"user":"jenslincke","tags":[]},"1404":{"isSerializedDate":true,"string":"Wed Aug 13 2014 20:18:57 GMT+0200 (W. Europe Summer Time)"},"1405":{"varMapping":{"__isSmartRef__":true,"id":1406},"source":"function getTextSizeFunc() {\n var textList = this.get(\"TextSizeFunctionList\")\n var textFunc = textList.selection || textList.getValues().first() \n if (!textFunc || ! (textFunc instanceof Function)) {\n textFunc = function() { return 12}\n }\n return textFunc\n}","funcProperties":{"__isSmartRef__":true,"id":1407},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1406":{"this":{"__isSmartRef__":true,"id":804}},"1407":{"timestamp":{"__isSmartRef__":true,"id":1408},"user":"jenslincke","tags":[]},"1408":{"isSerializedDate":true,"string":"Wed Aug 13 2014 20:36:57 GMT+0200 (W. Europe Summer Time)"},"1409":{"varMapping":{"__isSmartRef__":true,"id":1410},"source":"function drawForceGraphInteractive() {\n\n this.drawForceGraph(true, false)\n\n}","funcProperties":{"__isSmartRef__":true,"id":1411},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1410":{"this":{"__isSmartRef__":true,"id":804}},"1411":{"timestamp":{"__isSmartRef__":true,"id":1412},"user":"jenslincke","tags":[]},"1412":{"isSerializedDate":true,"string":"Fri Aug 15 2014 09:32:11 GMT+0200 (W. Europe Summer Time)"},"1413":{"varMapping":{"__isSmartRef__":true,"id":1414},"source":"function drawFlowGraph() {\n\n this.drawForceGraph(false, true)\n\n}","funcProperties":{"__isSmartRef__":true,"id":1415},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1414":{"this":{"__isSmartRef__":true,"id":804}},"1415":{"timestamp":{"__isSmartRef__":true,"id":1416},"user":"jenslincke","tags":[]},"1416":{"isSerializedDate":true,"string":"Fri Aug 15 2014 00:05:38 GMT+0200 (W. Europe Summer Time)"},"1417":{"submorphs":[{"__isSmartRef__":true,"id":1418},{"__isSmartRef__":true,"id":1439}],"scripts":[],"id":"2A1F1D47-980B-42B7-8985-A291CEB31360","shape":{"__isSmartRef__":true,"id":1469},"__layered_droppingEnabled__":true,"halosEnabled":true,"attributeConnections":[{"__isSmartRef__":true,"id":1474},{"__isSmartRef__":true,"id":1475},{"__isSmartRef__":true,"id":1532},{"__isSmartRef__":true,"id":1534},{"__isSmartRef__":true,"id":1536}],"doNotSerialize":["$$value"],"doNotCopyProperties":["$$value"],"sliderExtent":0.1,"valueScale":1,"sliderKnob":{"__isSmartRef__":true,"id":1439},"styleClass":["slider_background_horizontal"],"showsHalos":false,"name":"ScaleSlider","partsBinMetaInfo":{"__isSmartRef__":true,"id":1538},"eventHandler":{"__isSmartRef__":true,"id":1539},"layout":{"__isSmartRef__":true,"id":1540},"derivationIds":[2631,"699D4A41-3719-436F-8E0E-3A14E054A51F","5F2FD5AF-CFE7-4D79-9C4D-863A1B4BA831"],"_ClipMode":"visible","isBeingDragged":false,"grabbingEnabled":false,"prevScroll":[0,0],"_StyleClassNames":["vertical"],"owner":{"__isSmartRef__":true,"id":803},"_Rotation":0,"_Scale":1,"value":0.1143,"isCopyMorphRef":true,"morphRefId":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Slider","__SourceModuleName__":"Global.lively.morphic.Widgets","withLayers":["Global.PreventDroppingLayer"],"_Position":"lively.pt(54.8,74.5)","distanceToDragEvent":"lively.pt(34.9,-16.7)"},"1418":{"submorphs":[],"scripts":[],"id":"C922BEF1-A36A-4208-B7FA-5B70C769F1FB","shape":{"__isSmartRef__":true,"id":1419},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":7,"name":"Text1","partsBinMetaInfo":{"__isSmartRef__":true,"id":1420},"textChunks":[{"__isSmartRef__":true,"id":1436}],"charsReplaced":"Some Text","lastFindLoc":9,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":1438},"_ClipMode":"hidden","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","D8CF09D8-1192-43EC-8F87-5F655A94F6C6"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":1417},"previousSelection":[2,2],"isLabel":true,"_WordBreak":"break-all","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"eventsAreIgnored":true,"texstString":"zoom","_Rotation":-1.5707963267948966,"_Scale":1.5,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(3.5,183.2)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(31.4,-74.9)"},"1419":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","_Fill":null,"__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(39.0,14.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"1420":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":1421},{"__isSmartRef__":true,"id":1423},{"__isSmartRef__":true,"id":1425},{"__isSmartRef__":true,"id":1427},{"__isSmartRef__":true,"id":1429},{"__isSmartRef__":true,"id":1431},{"__isSmartRef__":true,"id":1433}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":1435},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1421":{"date":{"__isSmartRef__":true,"id":1422},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"1422":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"1423":{"date":{"__isSmartRef__":true,"id":1424},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"1424":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"1425":{"date":{"__isSmartRef__":true,"id":1426},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"1426":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"1427":{"date":{"__isSmartRef__":true,"id":1428},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"1428":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"1429":{"date":{"__isSmartRef__":true,"id":1430},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"1430":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"1431":{"date":{"__isSmartRef__":true,"id":1432},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"1432":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"1433":{"date":{"__isSmartRef__":true,"id":1434},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"1434":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"1435":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"1436":{"style":{"__isSmartRef__":true,"id":1437},"chunkOwner":{"__isSmartRef__":true,"id":1418},"_id":"_18365","storedString":"scale","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1437":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1438":{"morph":{"__isSmartRef__":true,"id":1418},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1439":{"submorphs":[{"__isSmartRef__":true,"id":1440}],"scripts":[],"id":"92EFFDE5-678E-4A94-89C3-05F293A3B5A8","shape":{"__isSmartRef__":true,"id":1463},"__layered_droppingEnabled__":true,"halosEnabled":true,"draggingEnabled":true,"slider":{"__isSmartRef__":true,"id":1417},"owner":{"__isSmartRef__":true,"id":1417},"styleClass":["slider_horizontal"],"eventHandler":{"__isSmartRef__":true,"id":1468},"derivationIds":[2632,"6570742C-E60F-4F84-B211-21C9EFEAD7FA","9C197E4D-F64F-4487-B34E-11B6BBEA504F"],"_ClipMode":"visible","isBeingDragged":false,"showsHalos":false,"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","hitPoint","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.SliderKnob","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(0.0,20.1)","hitPoint":"lively.pt(96.9,1803.1)","distanceToDragEvent":"lively.pt(37.7,-17.7)"},"1440":{"submorphs":[],"scripts":[],"id":"70CD6919-5149-4BC0-AA73-27890B1ED3B3","shape":{"__isSmartRef__":true,"id":1441},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":8,"name":"InputField","partsBinMetaInfo":{"__isSmartRef__":true,"id":1442},"textChunks":[{"__isSmartRef__":true,"id":1458}],"charsReplaced":"","lastFindLoc":5,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":1460},"_ClipMode":"hidden","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":1439},"attributeConnections":[{"__isSmartRef__":true,"id":1461}],"doNotSerialize":["$$savedTextString"],"doNotCopyProperties":["$$savedTextString"],"savedTextString":"2","#startLetters":"beInput","isInputLine":true,"_WordBreak":"break-all","_InputAllowed":true,"_HandStyle":null,"allowInput":true,"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(2.4,18.9)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(29.6,-10.5)"},"1441":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(60.0,16.5)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"1442":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":1443},{"__isSmartRef__":true,"id":1445},{"__isSmartRef__":true,"id":1447},{"__isSmartRef__":true,"id":1449},{"__isSmartRef__":true,"id":1451},{"__isSmartRef__":true,"id":1453},{"__isSmartRef__":true,"id":1455}],"lastModifiedDate":{"__isSmartRef__":true,"id":1457},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1443":{"date":{"__isSmartRef__":true,"id":1444},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"1444":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"1445":{"date":{"__isSmartRef__":true,"id":1446},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"1446":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"1447":{"date":{"__isSmartRef__":true,"id":1448},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"1448":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"1449":{"date":{"__isSmartRef__":true,"id":1450},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"1450":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"1451":{"date":{"__isSmartRef__":true,"id":1452},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"1452":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"1453":{"date":{"__isSmartRef__":true,"id":1454},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"1454":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"1455":{"date":{"__isSmartRef__":true,"id":1456},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"1456":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"1457":{"isSerializedDate":true,"string":"Wed Jun 25 2014 00:29:46 GMT+0200 (W. Europe Summer Time)"},"1458":{"style":{"__isSmartRef__":true,"id":1459},"chunkOwner":{"__isSmartRef__":true,"id":1440},"_id":"_547","storedString":"0.1143","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1459":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1460":{"morph":{"__isSmartRef__":true,"id":1440},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1461":{"sourceObj":{"__isSmartRef__":true,"id":1440},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":1417},"targetMethodName":"value","varMapping":{"__isSmartRef__":true,"id":1462},"converterString":"function converter(value) {\n return Number(value)\n}","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1462":{"source":{"__isSmartRef__":true,"id":1440},"target":{"__isSmartRef__":true,"id":1417}},"1463":{"_BorderWidth":1,"_Fill":{"__isSmartRef__":true,"id":1464},"_BorderRadius":6,"__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(40.3,19.6)","_BorderColor":"Color.rgb(102,102,102)","_Padding":"lively.rect(0,0,0,0)"},"1464":{"stops":[{"__isSmartRef__":true,"id":1465},{"__isSmartRef__":true,"id":1466},{"__isSmartRef__":true,"id":1467}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"1465":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(196,211,221)"},"1466":{"offset":0.5,"__serializedExpressions__":["color"],"color":"Color.rgb(137,167,187)"},"1467":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(96,130,153)"},"1468":{"morph":{"__isSmartRef__":true,"id":1439},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1469":{"_BorderWidth":1,"_Fill":{"__isSmartRef__":true,"id":1470},"_BorderRadius":6,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(40.3,195.6)","_BorderColor":"Color.rgb(192,192,192)","_Padding":"lively.rect(0,0,0,0)"},"1470":{"stops":[{"__isSmartRef__":true,"id":1471},{"__isSmartRef__":true,"id":1472},{"__isSmartRef__":true,"id":1473}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"1471":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(204,204,204)"},"1472":{"offset":0.4,"__serializedExpressions__":["color"],"color":"Color.rgb(240,240,240)"},"1473":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(245,245,245)"},"1474":{"sourceObj":{"__isSmartRef__":true,"id":1417},"sourceAttrName":"value","targetObj":{"__isSmartRef__":true,"id":1417},"targetMethodName":"adjustSliderParts","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1475":{"sourceObj":{"__isSmartRef__":true,"id":1417},"sourceAttrName":"value","targetObj":{"__isSmartRef__":true,"id":1476},"targetMethodName":"value","converterString":"function (v) { return Math.round(v * 100) }","updaterString":null,"varMapping":{"__isSmartRef__":true,"id":1531},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1476":{"submorphs":[{"__isSmartRef__":true,"id":1477}],"scripts":[],"id":"7AC905D2-F7C2-49BE-A4CF-FE84AED6ADBB","shape":{"__isSmartRef__":true,"id":1493},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"PercentSlider","partsBinMetaInfo":{"__isSmartRef__":true,"id":1494},"eventHandler":{"__isSmartRef__":true,"id":1516},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","FFBE88C5-3FE1-4187-954E-692B6B3758AA"],"partTests":{"__isSmartRef__":true,"id":1517},"_ClipMode":"visible","moved":true,"layout":{"__isSmartRef__":true,"id":1522},"isInLayoutCycle":false,"attributeConnections":[{"__isSmartRef__":true,"id":1524}],"doNotSerialize":["$$value"],"doNotCopyProperties":["$$value"],"prevScroll":[0,0],"owner":null,"_Rotation":0,"_Scale":1,"value":11,"__serializedExpressions__":["_Position"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1526},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(914.5,165.6)"},"1477":{"submorphs":[],"scripts":[],"id":"A809FFA2-1A45-4C80-BD69-BEC7D3BBD878","shape":{"__isSmartRef__":true,"id":1478},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":false,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":null,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":11,"name":"Text","partsBinMetaInfo":{"__isSmartRef__":true,"id":1479},"textChunks":[{"__isSmartRef__":true,"id":1490}],"charsReplaced":"Some Text","lastFindLoc":9,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":1492},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","0B016F8C-3C9E-4FFC-8F7E-165EDD021A68"],"_WhiteSpaceHandling":"pre","_MinTextWidth":null,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":1476},"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(10.0,10.0)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)"},"1478":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","_Fill":null,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(29.0,22.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"1479":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":1480},{"__isSmartRef__":true,"id":1482},{"__isSmartRef__":true,"id":1484},{"__isSmartRef__":true,"id":1486},{"__isSmartRef__":true,"id":1488}],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1480":{"date":{"__isSmartRef__":true,"id":1481},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"1481":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"1482":{"date":{"__isSmartRef__":true,"id":1483},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"1483":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"1484":{"date":{"__isSmartRef__":true,"id":1485},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"1485":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"1486":{"date":{"__isSmartRef__":true,"id":1487},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"1487":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"1488":{"date":{"__isSmartRef__":true,"id":1489},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"1489":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"1490":{"style":{"__isSmartRef__":true,"id":1491},"chunkOwner":{"__isSmartRef__":true,"id":1477},"_id":"_546","storedString":"11%","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1491":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1492":{"morph":{"__isSmartRef__":true,"id":1477},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1493":{"_BorderWidth":1.6280000000000001,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(246.0,42.0)","_BorderColor":"Color.rgb(216,212,212)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"1494":{"partsSpaceName":"PartsBin/Inputs/","comment":"A slider and a text that let's the user set a value between 0-100% and outputs this value as \"this.value\".","migrationLevel":4,"partName":"PercentSlider","changes":[{"__isSmartRef__":true,"id":1495},{"__isSmartRef__":true,"id":1497},{"__isSmartRef__":true,"id":1499},{"__isSmartRef__":true,"id":1501},{"__isSmartRef__":true,"id":1503},{"__isSmartRef__":true,"id":1505},{"__isSmartRef__":true,"id":1507},{"__isSmartRef__":true,"id":1509},{"__isSmartRef__":true,"id":1511},{"__isSmartRef__":true,"id":1513}],"lastModifiedDate":{"__isSmartRef__":true,"id":1515},"revisionOnLoad":181552,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1495":{"date":{"__isSmartRef__":true,"id":1496},"author":"robertkrahn","message":"no comment","id":"2C50521E-61EA-4880-839A-24B438BE4C5D"},"1496":{"isSerializedDate":true,"string":"Fri Sep 14 2012 09:33:07 GMT+0200 (W. Europe Summer Time)"},"1497":{"date":{"__isSmartRef__":true,"id":1498},"author":"robertkrahn","message":"no comment","id":"A0FA84CE-D0E9-4D2B-A552-E6E41374A4F6"},"1498":{"isSerializedDate":true,"string":"Fri Sep 14 2012 09:32:28 GMT+0200 (W. Europe Summer Time)"},"1499":{"date":{"__isSmartRef__":true,"id":1500},"author":"robertkrahn","message":"no comment","id":"C918A1D9-42A0-4834-9723-7B2035BDD053"},"1500":{"isSerializedDate":true,"string":"Fri Sep 14 2012 09:31:57 GMT+0200 (W. Europe Summer Time)"},"1501":{"date":{"__isSmartRef__":true,"id":1502},"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8"},"1502":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"1503":{"date":{"__isSmartRef__":true,"id":1504},"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350"},"1504":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"1505":{"date":{"__isSmartRef__":true,"id":1506},"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7"},"1506":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"1507":{"date":{"__isSmartRef__":true,"id":1508},"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B"},"1508":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"1509":{"date":{"__isSmartRef__":true,"id":1510},"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2"},"1510":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"1511":{"date":{"__isSmartRef__":true,"id":1512},"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC"},"1512":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"1513":{"date":{"__isSmartRef__":true,"id":1514},"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23"},"1514":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"1515":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"1516":{"morph":{"__isSmartRef__":true,"id":1476},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1517":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1518}},"1518":{"test01IsMorph":{"__isSmartRef__":true,"id":1519}},"1519":{"varMapping":{"__isSmartRef__":true,"id":1520},"source":"function test01IsMorph(aPart) {\n this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":1521},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1520":{"this":{"__isSmartRef__":true,"id":1517}},"1521":{},"1522":{"layouter":{"__isSmartRef__":true,"id":1523}},"1523":{"defaultBorderSize":10,"defaultSpacing":15,"borderSize":10,"spacing":15,"container":{"__isSmartRef__":true,"id":1476},"__LivelyClassName__":"lively.morphic.Layout.HorizontalLayout","__SourceModuleName__":"Global.lively.morphic.Layout"},"1524":{"sourceObj":{"__isSmartRef__":true,"id":1476},"sourceAttrName":"value","targetObj":{"__isSmartRef__":true,"id":1477},"targetMethodName":"textString","converterString":"function (v) { return v + '%' }","updaterString":null,"varMapping":{"__isSmartRef__":true,"id":1525},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1525":{"source":{"__isSmartRef__":true,"id":1476},"target":{"__isSmartRef__":true,"id":1477}},"1526":{"reset":{"__isSmartRef__":true,"id":1527}},"1527":{"varMapping":{"__isSmartRef__":true,"id":1528},"source":"function reset() {\n this.get('Slider').setValue(0);\n connect(this.get('Slider'), 'value', this, 'value', {converter:\n function(v) { return Math.round(v * 100) }});\n connect(this, 'value', this.get('Text'), 'textString', {converter:\n function(v) { return v + '%' }});\n\n}","funcProperties":{"__isSmartRef__":true,"id":1529},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1528":{"this":{"__isSmartRef__":true,"id":1476}},"1529":{"timestamp":{"__isSmartRef__":true,"id":1530},"user":"robertkrahn","tags":[]},"1530":{"isSerializedDate":true,"string":"Fri Sep 14 2012 09:30:57 GMT+0200 (W. Europe Summer Time)"},"1531":{"source":{"__isSmartRef__":true,"id":1417},"target":{"__isSmartRef__":true,"id":1476}},"1532":{"sourceObj":{"__isSmartRef__":true,"id":1417},"sourceAttrName":"value","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"scaleDetail","varMapping":{"__isSmartRef__":true,"id":1533},"converterString":"function converter(value) {\n // return Math.log(value) \n \n return Math.exp(value * 10)\n}","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1533":{"source":{"__isSmartRef__":true,"id":1417},"target":{"__isSmartRef__":true,"id":804}},"1534":{"sourceObj":{"__isSmartRef__":true,"id":1417},"sourceAttrName":"value","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"redraw","varMapping":{"__isSmartRef__":true,"id":1535},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1535":{"source":{"__isSmartRef__":true,"id":1417},"target":{"__isSmartRef__":true,"id":804}},"1536":{"sourceObj":{"__isSmartRef__":true,"id":1417},"sourceAttrName":"value","targetObj":{"__isSmartRef__":true,"id":1440},"targetMethodName":"textString","varMapping":{"__isSmartRef__":true,"id":1537},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1537":{"source":{"__isSmartRef__":true,"id":1417},"target":{"__isSmartRef__":true,"id":1440}},"1538":{"requiredModules":[],"partsSpaceName":"PartsBin/Inputs/","migrationLevel":2,"partName":"Slider","comment":"The connection point \"value\" can be used to read/write the slider knob position.","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1539":{"morph":{"__isSmartRef__":true,"id":1417},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1540":{"resizeWidth":false,"resizeHeight":false},"1541":{"submorphs":[{"__isSmartRef__":true,"id":1542},{"__isSmartRef__":true,"id":1563}],"scripts":[],"id":"5F2FD5AF-CFE7-4D79-9C4D-863A1B4BA831","shape":{"__isSmartRef__":true,"id":1593},"__layered_droppingEnabled__":true,"halosEnabled":true,"attributeConnections":[{"__isSmartRef__":true,"id":1598},{"__isSmartRef__":true,"id":1599},{"__isSmartRef__":true,"id":1601}],"doNotSerialize":["$$value"],"doNotCopyProperties":["$$value"],"sliderExtent":0.1,"valueScale":2,"sliderKnob":{"__isSmartRef__":true,"id":1563},"styleClass":["slider_background_horizontal"],"showsHalos":false,"name":"ZoomSlider","partsBinMetaInfo":{"__isSmartRef__":true,"id":1603},"eventHandler":{"__isSmartRef__":true,"id":1604},"layout":{"__isSmartRef__":true,"id":1605},"derivationIds":[2631,"699D4A41-3719-436F-8E0E-3A14E054A51F"],"_ClipMode":"visible","owner":{"__isSmartRef__":true,"id":803},"isBeingDragged":false,"grabbingEnabled":false,"prevScroll":[0,0],"_StyleClassNames":["vertical"],"_Rotation":0,"_Scale":1,"value":1.0634,"isCopyMorphRef":true,"morphRefId":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Slider","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(5.3,74.8)","distanceToDragEvent":"lively.pt(31.1,-18.9)"},"1542":{"submorphs":[],"scripts":[],"id":"D8CF09D8-1192-43EC-8F87-5F655A94F6C6","shape":{"__isSmartRef__":true,"id":1543},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":7,"name":"Text1","partsBinMetaInfo":{"__isSmartRef__":true,"id":1544},"textChunks":[{"__isSmartRef__":true,"id":1560}],"charsReplaced":"Some Text","lastFindLoc":9,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":1562},"_ClipMode":"hidden","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":1541},"previousSelection":[2,2],"priorSelectionRange":[0,4],"isLabel":true,"_WordBreak":"break-all","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"eventsAreIgnored":true,"_Rotation":-1.5707963267948966,"_Scale":1.5,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(3.5,187.9)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(28.2,-82.1)"},"1543":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","_Fill":null,"__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(39.0,14.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"1544":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":1545},{"__isSmartRef__":true,"id":1547},{"__isSmartRef__":true,"id":1549},{"__isSmartRef__":true,"id":1551},{"__isSmartRef__":true,"id":1553},{"__isSmartRef__":true,"id":1555},{"__isSmartRef__":true,"id":1557}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":1559},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1545":{"date":{"__isSmartRef__":true,"id":1546},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"1546":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"1547":{"date":{"__isSmartRef__":true,"id":1548},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"1548":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"1549":{"date":{"__isSmartRef__":true,"id":1550},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"1550":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"1551":{"date":{"__isSmartRef__":true,"id":1552},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"1552":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"1553":{"date":{"__isSmartRef__":true,"id":1554},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"1554":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"1555":{"date":{"__isSmartRef__":true,"id":1556},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"1556":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"1557":{"date":{"__isSmartRef__":true,"id":1558},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"1558":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"1559":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"1560":{"style":{"__isSmartRef__":true,"id":1561},"morph":{"__isSmartRef__":true,"id":1542},"chunkOwner":{"__isSmartRef__":true,"id":1542},"storedString":"zoom","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1561":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1562":{"morph":{"__isSmartRef__":true,"id":1542},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1563":{"submorphs":[{"__isSmartRef__":true,"id":1564}],"scripts":[],"id":"9C197E4D-F64F-4487-B34E-11B6BBEA504F","shape":{"__isSmartRef__":true,"id":1587},"__layered_droppingEnabled__":true,"halosEnabled":true,"draggingEnabled":true,"slider":{"__isSmartRef__":true,"id":1541},"owner":{"__isSmartRef__":true,"id":1541},"styleClass":["slider_horizontal"],"eventHandler":{"__isSmartRef__":true,"id":1592},"derivationIds":[2632,"6570742C-E60F-4F84-B211-21C9EFEAD7FA"],"_ClipMode":"visible","isBeingDragged":false,"showsHalos":false,"prevScroll":[0,0],"__serializedExpressions__":["_Position","hitPoint","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.SliderKnob","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(0.0,95.5)","hitPoint":"lively.pt(65.8,1880.2)","distanceToDragEvent":"lively.pt(34.5,-20.5)"},"1564":{"submorphs":[],"scripts":[],"id":"60C93824-DAB6-43C5-9FAC-46ECC56BEF02","shape":{"__isSmartRef__":true,"id":1565},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":8,"name":"Text8","partsBinMetaInfo":{"__isSmartRef__":true,"id":1566},"textChunks":[{"__isSmartRef__":true,"id":1582}],"charsReplaced":"","lastFindLoc":5,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":1584},"_ClipMode":"hidden","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","70CD6919-5149-4BC0-AA73-27890B1ED3B3"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"attributeConnections":[{"__isSmartRef__":true,"id":1585}],"doNotSerialize":["$$savedTextString"],"doNotCopyProperties":["$$savedTextString"],"#startLetters":"beInput","isInputLine":true,"_WordBreak":"break-all","_InputAllowed":true,"_HandStyle":null,"allowInput":true,"savedTextString":"0.9668","owner":{"__isSmartRef__":true,"id":1563},"draggingEnabled":false,"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(0.1,22.9)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(28.6,-16.2)"},"1565":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(46.0,16.5)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"1566":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":1567},{"__isSmartRef__":true,"id":1569},{"__isSmartRef__":true,"id":1571},{"__isSmartRef__":true,"id":1573},{"__isSmartRef__":true,"id":1575},{"__isSmartRef__":true,"id":1577},{"__isSmartRef__":true,"id":1579}],"revisionOnLoad":207709,"lastModifiedDate":{"__isSmartRef__":true,"id":1581},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1567":{"date":{"__isSmartRef__":true,"id":1568},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"1568":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"1569":{"date":{"__isSmartRef__":true,"id":1570},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"1570":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"1571":{"date":{"__isSmartRef__":true,"id":1572},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"1572":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"1573":{"date":{"__isSmartRef__":true,"id":1574},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"1574":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"1575":{"date":{"__isSmartRef__":true,"id":1576},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"1576":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"1577":{"date":{"__isSmartRef__":true,"id":1578},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"1578":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"1579":{"date":{"__isSmartRef__":true,"id":1580},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"1580":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"1581":{"isSerializedDate":true,"string":"Wed Jun 25 2014 00:29:46 GMT+0200 (W. Europe Summer Time)"},"1582":{"style":{"__isSmartRef__":true,"id":1583},"chunkOwner":{"__isSmartRef__":true,"id":1564},"_id":"_11801","storedString":"1.0634","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1583":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1584":{"morph":{"__isSmartRef__":true,"id":1564},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1585":{"sourceObj":{"__isSmartRef__":true,"id":1564},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":1541},"targetMethodName":"value","varMapping":{"__isSmartRef__":true,"id":1586},"converterString":"function converter(value) {\n return Number(value);\n}","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1586":{"source":{"__isSmartRef__":true,"id":1564},"target":{"__isSmartRef__":true,"id":1541}},"1587":{"_BorderWidth":1,"_Fill":{"__isSmartRef__":true,"id":1588},"_BorderRadius":6,"__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(44.8,20.0)","_BorderColor":"Color.rgb(102,102,102)","_Padding":"lively.rect(0,0,0,0)"},"1588":{"stops":[{"__isSmartRef__":true,"id":1589},{"__isSmartRef__":true,"id":1590},{"__isSmartRef__":true,"id":1591}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"1589":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(196,211,221)"},"1590":{"offset":0.5,"__serializedExpressions__":["color"],"color":"Color.rgb(137,167,187)"},"1591":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(96,130,153)"},"1592":{"morph":{"__isSmartRef__":true,"id":1563},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1593":{"_BorderWidth":1,"_Fill":{"__isSmartRef__":true,"id":1594},"_BorderRadius":6,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(44.8,199.6)","_BorderColor":"Color.rgb(192,192,192)","_Padding":"lively.rect(0,0,0,0)"},"1594":{"stops":[{"__isSmartRef__":true,"id":1595},{"__isSmartRef__":true,"id":1596},{"__isSmartRef__":true,"id":1597}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"1595":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(204,204,204)"},"1596":{"offset":0.4,"__serializedExpressions__":["color"],"color":"Color.rgb(240,240,240)"},"1597":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(245,245,245)"},"1598":{"sourceObj":{"__isSmartRef__":true,"id":1541},"sourceAttrName":"value","targetObj":{"__isSmartRef__":true,"id":1541},"targetMethodName":"adjustSliderParts","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1599":{"sourceObj":{"__isSmartRef__":true,"id":1541},"sourceAttrName":"value","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"zoom","varMapping":{"__isSmartRef__":true,"id":1600},"converterString":"function converter(value) {\n return value * 0.5\n}","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1600":{"source":{"__isSmartRef__":true,"id":1541},"target":{"__isSmartRef__":true,"id":804}},"1601":{"sourceObj":{"__isSmartRef__":true,"id":1541},"sourceAttrName":"value","targetObj":{"__isSmartRef__":true,"id":1564},"targetMethodName":"textString","varMapping":{"__isSmartRef__":true,"id":1602},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1602":{"source":{"__isSmartRef__":true,"id":1541},"target":{"__isSmartRef__":true,"id":1564}},"1603":{"requiredModules":[],"partsSpaceName":"PartsBin/Inputs/","migrationLevel":2,"partName":"Slider","comment":"The connection point \"value\" can be used to read/write the slider knob position.","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1604":{"morph":{"__isSmartRef__":true,"id":1541},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1605":{"resizeWidth":false,"resizeHeight":false},"1606":{"submorphs":[{"__isSmartRef__":true,"id":1607}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1612},"eventHandler":{"__isSmartRef__":true,"id":1613},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"B70F98F4-4C70-4918-8A76-5691A976696E","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":1607},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":1614},{"__isSmartRef__":true,"id":1616}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button6","partsBinMetaInfo":{"__isSmartRef__":true,"id":1618},"pinSpecs":[{"__isSmartRef__":true,"id":1634}],"owner":{"__isSmartRef__":true,"id":803},"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1635},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(280.0,0.0)","distanceToDragEvent":"lively.pt(69.4,-19.0)"},"1607":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1608},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1609}],"eventHandler":{"__isSmartRef__":true,"id":1611},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"F24F68CF-D986-41B6-82B7-AC89692B6170","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1606},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"1608":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"1609":{"style":{"__isSmartRef__":true,"id":1610},"chunkOwner":{"__isSmartRef__":true,"id":1607},"_id":"_10233","storedString":"fold","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1610":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1611":{"morph":{"__isSmartRef__":true,"id":1607},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1612":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"1613":{"morph":{"__isSmartRef__":true,"id":1606},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1614":{"sourceObj":{"__isSmartRef__":true,"id":1606},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1606},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":1615},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1615":{"source":{"__isSmartRef__":true,"id":1606},"target":{"__isSmartRef__":true,"id":1606}},"1616":{"sourceObj":{"__isSmartRef__":true,"id":1606},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"foldNonConnectedChilds","varMapping":{"__isSmartRef__":true,"id":1617},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1617":{"source":{"__isSmartRef__":true,"id":1606},"target":{"__isSmartRef__":true,"id":804}},"1618":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":1619},{"__isSmartRef__":true,"id":1621},{"__isSmartRef__":true,"id":1623},{"__isSmartRef__":true,"id":1625},{"__isSmartRef__":true,"id":1627},{"__isSmartRef__":true,"id":1629},{"__isSmartRef__":true,"id":1631}],"migrationLevel":7,"lastModifiedDate":{"__isSmartRef__":true,"id":1633},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1619":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","date":{"__isSmartRef__":true,"id":1620}},"1620":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:15:42 GMT+0100 (W. Europe Standard Time)"},"1621":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","date":{"__isSmartRef__":true,"id":1622}},"1622":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:53:16 GMT+0100 (W. Europe Standard Time)"},"1623":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","date":{"__isSmartRef__":true,"id":1624}},"1624":{"isSerializedDate":true,"string":"Wed May 01 2013 05:34:25 GMT+0200 (W. Europe Summer Time)"},"1625":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","date":{"__isSmartRef__":true,"id":1626}},"1626":{"isSerializedDate":true,"string":"Wed May 01 2013 05:35:59 GMT+0200 (W. Europe Summer Time)"},"1627":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","date":{"__isSmartRef__":true,"id":1628}},"1628":{"isSerializedDate":true,"string":"Wed May 01 2013 05:36:30 GMT+0200 (W. Europe Summer Time)"},"1629":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","date":{"__isSmartRef__":true,"id":1630}},"1630":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:22:38 GMT+0200 (W. Europe Summer Time)"},"1631":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","date":{"__isSmartRef__":true,"id":1632}},"1632":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:50 GMT+0200 (W. Europe Summer Time)"},"1633":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:29 GMT+0200 (W. Europe Summer Time)"},"1634":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"1635":{"doAction":{"__isSmartRef__":true,"id":1636}},"1636":{"varMapping":{"__isSmartRef__":true,"id":1637},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":1638},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1637":{"this":{"__isSmartRef__":true,"id":1606}},"1638":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":1639}},"1639":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"1640":{"submorphs":[],"scripts":[],"id":"1275534F-FEB7-4FB6-A9D3-BCECAB517938","shape":{"__isSmartRef__":true,"id":1641},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":14,"name":"depth","partsBinMetaInfo":{"__isSmartRef__":true,"id":1642},"textChunks":[{"__isSmartRef__":true,"id":1658}],"charsReplaced":"10","lastFindLoc":2,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":1660},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":803},"_Rotation":0,"_Scale":1,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"previousSelection":[0,1],"priorSelectionRange":[0,1],"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(953.0,-1.4)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(37.3,-16.9)"},"1641":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(60.0,26.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"1642":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":1643},{"__isSmartRef__":true,"id":1645},{"__isSmartRef__":true,"id":1647},{"__isSmartRef__":true,"id":1649},{"__isSmartRef__":true,"id":1651},{"__isSmartRef__":true,"id":1653},{"__isSmartRef__":true,"id":1655}],"lastModifiedDate":{"__isSmartRef__":true,"id":1657},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1643":{"date":{"__isSmartRef__":true,"id":1644},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"1644":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"1645":{"date":{"__isSmartRef__":true,"id":1646},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"1646":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"1647":{"date":{"__isSmartRef__":true,"id":1648},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"1648":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"1649":{"date":{"__isSmartRef__":true,"id":1650},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"1650":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"1651":{"date":{"__isSmartRef__":true,"id":1652},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"1652":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"1653":{"date":{"__isSmartRef__":true,"id":1654},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"1654":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"1655":{"date":{"__isSmartRef__":true,"id":1656},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"1656":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"1657":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"1658":{"style":{"__isSmartRef__":true,"id":1659},"morph":{"__isSmartRef__":true,"id":1640},"chunkOwner":{"__isSmartRef__":true,"id":1640},"storedString":"4","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1659":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1660":{"morph":{"__isSmartRef__":true,"id":1640},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1661":{"submorphs":[],"scripts":[],"id":"5DD1219F-B952-420D-BD54-47887C72B18F","shape":{"__isSmartRef__":true,"id":1662},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":14,"name":"Text","partsBinMetaInfo":{"__isSmartRef__":true,"id":1642},"textChunks":[{"__isSmartRef__":true,"id":1663}],"charsReplaced":"foo!?","lastFindLoc":5,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":1665},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":803},"_Rotation":0,"_Scale":1,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"priorSelectionRange":[3,3],"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(881.6,-1.4)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(37.1,-21.0)"},"1662":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(60.0,26.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"1663":{"style":{"__isSmartRef__":true,"id":1664},"morph":{"__isSmartRef__":true,"id":1661},"chunkOwner":{"__isSmartRef__":true,"id":1661},"storedString":"depth","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1664":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1665":{"morph":{"__isSmartRef__":true,"id":1661},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1666":{"submorphs":[{"__isSmartRef__":true,"id":1667}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1672},"eventHandler":{"__isSmartRef__":true,"id":1673},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D","BE1AAEE0-3BBA-49D6-B5A5-6CD2A5A39848","5ED38F0B-62EC-420D-91F9-0FD1917A1F6E","ED68962D-FD58-44B1-AA15-23BAA947D9FE"],"id":"BB40CD64-BD27-4C6E-A3EC-F58E74A91F9D","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":1667},"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":1674}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"AdaptZoomButton","partsBinMetaInfo":{"__isSmartRef__":true,"id":1676},"pinSpecs":[{"__isSmartRef__":true,"id":1702}],"prevScroll":[0,0],"lastScale":2.923430321592649,"moved":true,"owner":{"__isSmartRef__":true,"id":803},"_Rotation":0,"_Scale":1,"_PreviousBorderWidth":1,"__serializedExpressions__":["_Position","distanceToDragEvent","lastScroll"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1703},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(140.0,0.0)","distanceToDragEvent":"lively.pt(26.2,-15.3)","lastScroll":"lively.pt(10.0,6.0)"},"1667":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1668},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1669}],"eventHandler":{"__isSmartRef__":true,"id":1671},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4","1239933F-F0F3-4DE9-8A44-F9F42352B176","19ACEA27-F114-4684-ABD5-20E7AF38AF8D","6102425D-F9BD-42C1-9355-A4F21EA654A0"],"id":"71682B08-1D2F-4045-B416-03D78F43692C","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1666},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)","_Position":"lively.pt(0.0,-1.0)"},"1668":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(20.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"1669":{"style":{"__isSmartRef__":true,"id":1670},"chunkOwner":{"__isSmartRef__":true,"id":1667},"_id":"_10243","storedString":"Z","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1670":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1671":{"morph":{"__isSmartRef__":true,"id":1667},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1672":{"_BorderWidth":1,"_BorderRadius":5.225,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"_Opacity":1,"_BorderStyle":"solid","__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(20.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(213,216,24)","_Fill":"Color.rgb(221,239,102)"},"1673":{"morph":{"__isSmartRef__":true,"id":1666},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1674":{"sourceObj":{"__isSmartRef__":true,"id":1666},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1666},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":1675},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1675":{"source":{"__isSmartRef__":true,"id":1666},"target":{"__isSmartRef__":true,"id":1666}},"1676":{"partName":"AdaptZoomButton","requiredModules":[],"partsSpaceName":"PartsBin/Widgets/","comment":"A button that adapts the scale of the world to scroll and zoom to its owner.","changes":[{"__isSmartRef__":true,"id":1677},{"__isSmartRef__":true,"id":1679},{"__isSmartRef__":true,"id":1681},{"__isSmartRef__":true,"id":1683},{"__isSmartRef__":true,"id":1685},{"__isSmartRef__":true,"id":1687},{"__isSmartRef__":true,"id":1689},{"__isSmartRef__":true,"id":1691},{"__isSmartRef__":true,"id":1693},{"__isSmartRef__":true,"id":1695},{"__isSmartRef__":true,"id":1697},{"__isSmartRef__":true,"id":1699}],"migrationLevel":4,"lastModifiedDate":{"__isSmartRef__":true,"id":1701},"revisionOnLoad":199002,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1677":{"date":{"__isSmartRef__":true,"id":1678},"author":"jenslincke","message":"label","id":"D522A11D-0946-401D-9283-5357D1398444"},"1678":{"isSerializedDate":true,"string":"Tue Aug 20 2013 15:14:05 GMT+0200 (W. Europe Summer Time)"},"1679":{"date":{"__isSmartRef__":true,"id":1680},"author":"jenslincke","message":"yelllow Z","id":"EC7F6775-BCDB-4A35-B0DA-E43D2778C27E"},"1680":{"isSerializedDate":true,"string":"Tue Aug 20 2013 15:04:20 GMT+0200 (W. Europe Summer Time)"},"1681":{"date":{"__isSmartRef__":true,"id":1682},"author":"jenslincke","message":"toggle zoom","id":"06E57329-0579-4667-BECE-63A730FEF5FC"},"1682":{"isSerializedDate":true,"string":"Tue Aug 20 2013 15:02:45 GMT+0200 (W. Europe Summer Time)"},"1683":{"date":{"__isSmartRef__":true,"id":1684},"author":"jenslincke","message":"no comment","id":"EFEEB4EA-92E0-4A48-90DF-20B7E45CD4F6"},"1684":{"isSerializedDate":true,"string":"Tue Aug 20 2013 14:36:35 GMT+0200 (W. Europe Summer Time)"},"1685":{"date":{"__isSmartRef__":true,"id":1686},"author":"jenslincke","message":"no comment","id":"C19B3CA2-BCA5-4022-903F-1EBD00890EAD"},"1686":{"isSerializedDate":true,"string":"Tue Aug 20 2013 11:45:25 GMT+0200 (W. Europe Summer Time)"},"1687":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","date":{"__isSmartRef__":true,"id":1688}},"1688":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:50 GMT+0200 (W. Europe Summer Time)"},"1689":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","date":{"__isSmartRef__":true,"id":1690}},"1690":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:22:38 GMT+0200 (W. Europe Summer Time)"},"1691":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","date":{"__isSmartRef__":true,"id":1692}},"1692":{"isSerializedDate":true,"string":"Wed May 01 2013 05:36:30 GMT+0200 (W. Europe Summer Time)"},"1693":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","date":{"__isSmartRef__":true,"id":1694}},"1694":{"isSerializedDate":true,"string":"Wed May 01 2013 05:35:59 GMT+0200 (W. Europe Summer Time)"},"1695":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","date":{"__isSmartRef__":true,"id":1696}},"1696":{"isSerializedDate":true,"string":"Wed May 01 2013 05:34:25 GMT+0200 (W. Europe Summer Time)"},"1697":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","date":{"__isSmartRef__":true,"id":1698}},"1698":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:53:16 GMT+0100 (W. Europe Standard Time)"},"1699":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","date":{"__isSmartRef__":true,"id":1700}},"1700":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:15:42 GMT+0100 (W. Europe Standard Time)"},"1701":{"isSerializedDate":true,"string":"Tue Aug 20 2013 15:09:04 GMT+0200 (W. Europe Summer Time)"},"1702":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"1703":{"doAction":{"__isSmartRef__":true,"id":1704}},"1704":{"varMapping":{"__isSmartRef__":true,"id":1705},"source":"function doAction() {\n\n if (this.world().getScale() != 1) {\n this.world().setScale(1)\n this.world().setScroll(this.lastScroll.x, this.lastScroll.y)\n // this.world().setScroll(0,0)\n } else {\n this.lastScroll = this.world().getScrollOffset()\n var extent = this.owner.getExtent()\n var windowExtent = \n pt(document.documentElement.clientWidth, document.documentElement.clientHeight)\n var scale = Math.min(windowExtent.x / extent.x, windowExtent.y / extent.y)\n this.world().setScale(scale)\n var p = this.owner.worldPoint(pt(0,0))\n var scroll = pt(p.x * scale, p.y * scale)\n this.world().setScroll(scroll.x, scroll.y)\n }\n \n}","funcProperties":{"__isSmartRef__":true,"id":1706},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1705":{"this":{"__isSmartRef__":true,"id":1666}},"1706":{"timestamp":{"__isSmartRef__":true,"id":1707},"user":"jenslincke","tags":[]},"1707":{"isSerializedDate":true,"string":"Tue Aug 20 2013 15:02:29 GMT+0200 (W. Europe Summer Time)"},"1708":{"submorphs":[{"__isSmartRef__":true,"id":1709}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1714},"eventHandler":{"__isSmartRef__":true,"id":1715},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"A0B9FF2C-8648-4B14-88C9-AFCD78165539","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":1709},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":1716},{"__isSmartRef__":true,"id":1718}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button8","partsBinMetaInfo":{"__isSmartRef__":true,"id":1618},"pinSpecs":[{"__isSmartRef__":true,"id":1720}],"owner":{"__isSmartRef__":true,"id":803},"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1721},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(470.0,0.0)","distanceToDragEvent":"lively.pt(91.2,-13.0)"},"1709":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1710},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1711}],"eventHandler":{"__isSmartRef__":true,"id":1713},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"7FD33442-7B12-4BF9-A6D9-A8BE97047136","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1708},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"1710":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(130.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"1711":{"style":{"__isSmartRef__":true,"id":1712},"chunkOwner":{"__isSmartRef__":true,"id":1709},"_id":"_10237","storedString":"bundle connections","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1712":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1713":{"morph":{"__isSmartRef__":true,"id":1709},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1714":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(130.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"1715":{"morph":{"__isSmartRef__":true,"id":1708},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1716":{"sourceObj":{"__isSmartRef__":true,"id":1708},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1708},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":1717},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1717":{"source":{"__isSmartRef__":true,"id":1708},"target":{"__isSmartRef__":true,"id":1708}},"1718":{"sourceObj":{"__isSmartRef__":true,"id":1708},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"bundleConnections","varMapping":{"__isSmartRef__":true,"id":1719},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1719":{"source":{"__isSmartRef__":true,"id":1708},"target":{"__isSmartRef__":true,"id":804}},"1720":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"1721":{"doAction":{"__isSmartRef__":true,"id":1722}},"1722":{"varMapping":{"__isSmartRef__":true,"id":1723},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":1724},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1723":{"this":{"__isSmartRef__":true,"id":1708}},"1724":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":1725}},"1725":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"1726":{"submorphs":[{"__isSmartRef__":true,"id":1727}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1732},"eventHandler":{"__isSmartRef__":true,"id":1733},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"89327ED4-B69D-4AFD-AA79-12A402F13BF5","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":1727},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":1734},{"__isSmartRef__":true,"id":1736}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Export","partsBinMetaInfo":{"__isSmartRef__":true,"id":1738},"pinSpecs":[{"__isSmartRef__":true,"id":1754}],"owner":{"__isSmartRef__":true,"id":803},"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1755},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(170.0,0.0)","distanceToDragEvent":"lively.pt(62.4,-12.7)"},"1727":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1728},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1729}],"eventHandler":{"__isSmartRef__":true,"id":1731},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"A31F5BE8-8B96-4C2D-963D-75B2FAF1F78B","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1726},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"1728":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"1729":{"style":{"__isSmartRef__":true,"id":1730},"chunkOwner":{"__isSmartRef__":true,"id":1727},"_id":"_10229","storedString":"Export","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1730":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1731":{"morph":{"__isSmartRef__":true,"id":1727},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1732":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"1733":{"morph":{"__isSmartRef__":true,"id":1726},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1734":{"sourceObj":{"__isSmartRef__":true,"id":1726},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1726},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":1735},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1735":{"source":{"__isSmartRef__":true,"id":1726},"target":{"__isSmartRef__":true,"id":1726}},"1736":{"sourceObj":{"__isSmartRef__":true,"id":1726},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"onExport","varMapping":{"__isSmartRef__":true,"id":1737},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1737":{"source":{"__isSmartRef__":true,"id":1726},"target":{"__isSmartRef__":true,"id":804}},"1738":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":1739},{"__isSmartRef__":true,"id":1741},{"__isSmartRef__":true,"id":1743},{"__isSmartRef__":true,"id":1745},{"__isSmartRef__":true,"id":1747},{"__isSmartRef__":true,"id":1749},{"__isSmartRef__":true,"id":1751}],"migrationLevel":7,"lastModifiedDate":{"__isSmartRef__":true,"id":1753},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1739":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","date":{"__isSmartRef__":true,"id":1740}},"1740":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:15:42 GMT+0100 (W. Europe Standard Time)"},"1741":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","date":{"__isSmartRef__":true,"id":1742}},"1742":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:53:16 GMT+0100 (W. Europe Standard Time)"},"1743":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","date":{"__isSmartRef__":true,"id":1744}},"1744":{"isSerializedDate":true,"string":"Wed May 01 2013 05:34:25 GMT+0200 (W. Europe Summer Time)"},"1745":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","date":{"__isSmartRef__":true,"id":1746}},"1746":{"isSerializedDate":true,"string":"Wed May 01 2013 05:35:59 GMT+0200 (W. Europe Summer Time)"},"1747":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","date":{"__isSmartRef__":true,"id":1748}},"1748":{"isSerializedDate":true,"string":"Wed May 01 2013 05:36:30 GMT+0200 (W. Europe Summer Time)"},"1749":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","date":{"__isSmartRef__":true,"id":1750}},"1750":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:22:38 GMT+0200 (W. Europe Summer Time)"},"1751":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","date":{"__isSmartRef__":true,"id":1752}},"1752":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:50 GMT+0200 (W. Europe Summer Time)"},"1753":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:29 GMT+0200 (W. Europe Summer Time)"},"1754":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"1755":{"doAction":{"__isSmartRef__":true,"id":1756}},"1756":{"varMapping":{"__isSmartRef__":true,"id":1757},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":1758},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1757":{"this":{"__isSmartRef__":true,"id":1726}},"1758":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":1759}},"1759":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"1760":{"submorphs":[{"__isSmartRef__":true,"id":1761}],"scripts":[],"id":"075F9733-3E40-4984-B69E-E683FA65F9D8","shape":{"__isSmartRef__":true,"id":1766},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"registeredForMouseEvents":true,"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":1767},"lighterFill":{"__isSmartRef__":true,"id":1772},"label":{"__isSmartRef__":true,"id":1761},"name":"ToggleButton2","showsHalos":false,"partsBinMetaInfo":{"__isSmartRef__":true,"id":1777},"attributeConnections":[{"__isSmartRef__":true,"id":1783}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"eventHandler":{"__isSmartRef__":true,"id":1784},"derivationIds":[2588,"C96F474C-1F3A-4E42-844C-DD2EB76BDD7E","E36FA68D-6317-416A-99FA-0ED81E4193DA","06258075-AC5A-4CAB-A248-A66D3213816C","5FA02F91-193F-4335-BC16-2E30F2613431","E2FA9323-BBD4-4513-8CA9-7150B87E1FE2"],"_ClipMode":"visible","isPressed":false,"isToggled":true,"connections":{"__isSmartRef__":true,"id":1785},"moved":true,"prevScroll":[0,0],"owner":{"__isSmartRef__":true,"id":803},"_Rotation":0,"_Scale":1,"_PreviousBorderWidth":1,"__serializedExpressions__":["_Position","distanceToDragEvent","oldExtent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1789},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(390.0,0.0)","distanceToDragEvent":"lively.pt(47.2,-19.0)","oldExtent":"lively.pt(1029.0,855.0)"},"1761":{"submorphs":[],"scripts":[],"id":"5C7044DA-0BD6-4D11-A7F0-B50DA740874B","shape":{"__isSmartRef__":true,"id":1762},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","registeredForMouseEvents":true,"_MaxTextWidth":105,"_MaxTextHeight":null,"textStyle":null,"owner":{"__isSmartRef__":true,"id":1760},"isLabel":true,"eventsAreIgnored":true,"_ClipMode":"hidden","textChunks":[{"__isSmartRef__":true,"id":1763}],"_Align":"center","eventHandler":{"__isSmartRef__":true,"id":1765},"_HandStyle":"default","_PointerEvents":"none","derivationIds":[2589,"44787449-DE07-40ED-B4D3-89A4A185AE29","F4BC3D0F-FF03-4EFC-B727-951442606730","277CDAEF-77E0-49F1-BD6F-1630D7ECC2E1","8EA54908-EC3A-4F93-9F46-C3377134AEFB","E8507FB4-7470-41CD-9BCB-B8ED51C592C4"],"_MinTextWidth":105,"_MinTextHeight":null,"_WordBreak":"break-all","_FontSize":10,"showsHalos":false,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"_TextStylingMode":true,"__serializedExpressions__":["_Position","padding","_Padding","_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(0.0,0.0)","padding":"lively.rect(5,5,0,0)","_Padding":"lively.rect(0,0,0,0)","_TextColor":"Color.rgb(0,0,0)"},"1762":{"_BorderWidth":0,"_Fill":null,"_ClipMode":"hidden","__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(70.0,22.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(0,3,0,0)"},"1763":{"style":{"__isSmartRef__":true,"id":1764},"chunkOwner":{"__isSmartRef__":true,"id":1761},"_id":"_17382","storedString":"maximize","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1764":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1765":{"morph":{"__isSmartRef__":true,"id":1761},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1766":{"_BorderWidth":1,"_Fill":null,"_BorderRadius":5,"_ClipMode":"visible","_BorderStylingMode":true,"_AppearanceStylingMode":true,"__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(70.0,22.0)","_BorderColor":"Color.rgb(189,190,192)","_Padding":"lively.rect(0,0,0,0)"},"1767":{"stops":[{"__isSmartRef__":true,"id":1768},{"__isSmartRef__":true,"id":1769},{"__isSmartRef__":true,"id":1770},{"__isSmartRef__":true,"id":1771}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"1768":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(245,245,245)"},"1769":{"offset":0.4,"__serializedExpressions__":["color"],"color":"Color.rgb(209,209,209)"},"1770":{"offset":0.6,"__serializedExpressions__":["color"],"color":"Color.rgb(209,209,209)"},"1771":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(240,240,240)"},"1772":{"stops":[{"__isSmartRef__":true,"id":1773},{"__isSmartRef__":true,"id":1774},{"__isSmartRef__":true,"id":1775},{"__isSmartRef__":true,"id":1776}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"1773":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(250,250,250)"},"1774":{"offset":0.4,"__serializedExpressions__":["color"],"color":"Color.rgb(232,232,232)"},"1775":{"offset":0.6,"__serializedExpressions__":["color"],"color":"Color.rgb(232,232,232)"},"1776":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(248,248,248)"},"1777":{"partsSpaceName":"PartsBin/Inputs/","migrationLevel":4,"partName":"ToggleButton","comment":"A toggle button:\n- emits, toggle, enable, disable on pressed.\n- changes label","changes":[{"__isSmartRef__":true,"id":1778},{"__isSmartRef__":true,"id":1780}],"lastModifiedDate":{"__isSmartRef__":true,"id":1782},"revisionOnLoad":192292,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1778":{"date":{"__isSmartRef__":true,"id":1779},"author":"jenslincke","message":"no comment","id":"7471CE07-F2C0-4149-9684-90E843DB8DCE"},"1779":{"isSerializedDate":true,"string":"Fri Feb 08 2013 10:43:34 GMT+0100 (W. Europe Standard Time)"},"1780":{"date":{"__isSmartRef__":true,"id":1781},"author":"jenslincke","message":"no comment","id":"02AB5A6F-7748-4A48-8C36-D334F97FC321"},"1781":{"isSerializedDate":true,"string":"Thu Feb 07 2013 17:57:46 GMT+0100 (W. Europe Standard Time)"},"1782":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"1783":{"sourceObj":{"__isSmartRef__":true,"id":1760},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1760},"targetMethodName":"onFire","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1784":{"morph":{"__isSmartRef__":true,"id":1760},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1785":{"enable":{"__isSmartRef__":true,"id":1786},"disable":{"__isSmartRef__":true,"id":1787},"toggle":{"__isSmartRef__":true,"id":1788}},"1786":{},"1787":{},"1788":{},"1789":{"onFire":{"__isSmartRef__":true,"id":1790},"reset":{"__isSmartRef__":true,"id":1794}},"1790":{"varMapping":{"__isSmartRef__":true,"id":1791},"source":"function onFire() {\n\t\n if (this.isToggled) {\n this.setLabel(\"normal\")\n this.oldExtent = this.get(\"D3Panel\").getExtent()\n this.get(\"D3Panel\").setExtent(this.oldExtent.scaleBy(2)) \n this.get(\"D3Panel\").draw()\n } else {\n this.setLabel(\"maximize\")\n this.get(\"D3Panel\").setExtent(this.oldExtent)\n this.get(\"D3Panel\").draw()\n }\n this.isToggled = !this.isToggled;\n}","funcProperties":{"__isSmartRef__":true,"id":1792},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1791":{"this":{"__isSmartRef__":true,"id":1760}},"1792":{"timestamp":{"__isSmartRef__":true,"id":1793},"user":"jenslincke","tags":[]},"1793":{"isSerializedDate":true,"string":"Mon Jul 15 2013 13:15:03 GMT+0200 (W. Europe Summer Time)"},"1794":{"varMapping":{"__isSmartRef__":true,"id":1795},"source":"function reset() {\n this.connections = {\"enable\": { }, \"disable\": { }, \"toggle\": { }}\n}","funcProperties":{"__isSmartRef__":true,"id":1796},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1795":{"this":{"__isSmartRef__":true,"id":1760}},"1796":{"timestamp":{"__isSmartRef__":true,"id":1797},"user":"jenslincke","tags":[]},"1797":{"isSerializedDate":true,"string":"Fri Feb 08 2013 10:42:06 GMT+0100 (W. Europe Standard Time)"},"1798":{"submorphs":[{"__isSmartRef__":true,"id":1799}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1804},"eventHandler":{"__isSmartRef__":true,"id":1805},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"48355B04-6722-4AF1-8FC2-773D12EC1148","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":1799},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":1806},{"__isSmartRef__":true,"id":1808}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button1","partsBinMetaInfo":{"__isSmartRef__":true,"id":1810},"pinSpecs":[{"__isSmartRef__":true,"id":1826}],"owner":{"__isSmartRef__":true,"id":803},"_Rotation":0,"_Scale":1,"prevScroll":[0,0],"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1827},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(610.0,0.0)","distanceToDragEvent":"lively.pt(71.5,-14.1)"},"1799":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1800},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1801}],"eventHandler":{"__isSmartRef__":true,"id":1803},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"03EBC0A5-193B-4781-8AA1-7C636E45A24B","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1798},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"1800":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"1801":{"style":{"__isSmartRef__":true,"id":1802},"chunkOwner":{"__isSmartRef__":true,"id":1799},"_id":"_9926","storedString":"center","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1802":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1803":{"morph":{"__isSmartRef__":true,"id":1799},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1804":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"1805":{"morph":{"__isSmartRef__":true,"id":1798},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1806":{"sourceObj":{"__isSmartRef__":true,"id":1798},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1798},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":1807},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1807":{"source":{"__isSmartRef__":true,"id":1798},"target":{"__isSmartRef__":true,"id":1798}},"1808":{"sourceObj":{"__isSmartRef__":true,"id":1798},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"onCenter","varMapping":{"__isSmartRef__":true,"id":1809},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1809":{"source":{"__isSmartRef__":true,"id":1798},"target":{"__isSmartRef__":true,"id":804}},"1810":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":1811},{"__isSmartRef__":true,"id":1813},{"__isSmartRef__":true,"id":1815},{"__isSmartRef__":true,"id":1817},{"__isSmartRef__":true,"id":1819},{"__isSmartRef__":true,"id":1821},{"__isSmartRef__":true,"id":1823}],"migrationLevel":7,"lastModifiedDate":{"__isSmartRef__":true,"id":1825},"revisionOnLoad":196350,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1811":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","date":{"__isSmartRef__":true,"id":1812}},"1812":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:15:42 GMT+0100 (W. Europe Standard Time)"},"1813":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","date":{"__isSmartRef__":true,"id":1814}},"1814":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:53:16 GMT+0100 (W. Europe Standard Time)"},"1815":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","date":{"__isSmartRef__":true,"id":1816}},"1816":{"isSerializedDate":true,"string":"Wed May 01 2013 05:34:25 GMT+0200 (W. Europe Summer Time)"},"1817":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","date":{"__isSmartRef__":true,"id":1818}},"1818":{"isSerializedDate":true,"string":"Wed May 01 2013 05:35:59 GMT+0200 (W. Europe Summer Time)"},"1819":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","date":{"__isSmartRef__":true,"id":1820}},"1820":{"isSerializedDate":true,"string":"Wed May 01 2013 05:36:30 GMT+0200 (W. Europe Summer Time)"},"1821":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","date":{"__isSmartRef__":true,"id":1822}},"1822":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:22:38 GMT+0200 (W. Europe Summer Time)"},"1823":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","date":{"__isSmartRef__":true,"id":1824}},"1824":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:50 GMT+0200 (W. Europe Summer Time)"},"1825":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:29 GMT+0200 (W. Europe Summer Time)"},"1826":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"1827":{"doAction":{"__isSmartRef__":true,"id":1828}},"1828":{"varMapping":{"__isSmartRef__":true,"id":1829},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":1830},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1829":{"this":{"__isSmartRef__":true,"id":1798}},"1830":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":1831}},"1831":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"1832":{"submorphs":[{"__isSmartRef__":true,"id":1833}],"scripts":[],"shape":{"__isSmartRef__":true,"id":1838},"eventHandler":{"__isSmartRef__":true,"id":1839},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D","F80F0E41-45D1-4B1C-A200-8A33CC97C4EB"],"id":"1DA7176E-C7BF-4F84-BF93-E6B4F25D317B","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":1833},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":1840},{"__isSmartRef__":true,"id":1842}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button","partsBinMetaInfo":{"__isSmartRef__":true,"id":1844},"pinSpecs":[{"__isSmartRef__":true,"id":1862}],"owner":{"__isSmartRef__":true,"id":803},"_Rotation":0,"_Scale":1,"isCopyMorphRef":true,"morphRefId":1,"prevScroll":[0,0],"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":1863},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(720.0,0.0)","distanceToDragEvent":"lively.pt(67.1,-18.2)"},"1833":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":1834},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":1835}],"eventHandler":{"__isSmartRef__":true,"id":1837},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4","F1B1A09A-2B02-49EB-842A-065212EEC878"],"id":"E54AE1DD-CD97-4071-8A38-6AC37A30B589","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":1832},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"1834":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"1835":{"style":{"__isSmartRef__":true,"id":1836},"chunkOwner":{"__isSmartRef__":true,"id":1833},"_id":"_15326","storedString":"clear","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1836":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1837":{"morph":{"__isSmartRef__":true,"id":1833},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1838":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"1839":{"morph":{"__isSmartRef__":true,"id":1832},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1840":{"sourceObj":{"__isSmartRef__":true,"id":1832},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":1832},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":1841},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1841":{"source":{"__isSmartRef__":true,"id":1832},"target":{"__isSmartRef__":true,"id":1832}},"1842":{"sourceObj":{"__isSmartRef__":true,"id":1832},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"clear","varMapping":{"__isSmartRef__":true,"id":1843},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1843":{"source":{"__isSmartRef__":true,"id":1832},"target":{"__isSmartRef__":true,"id":804}},"1844":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":1845},{"__isSmartRef__":true,"id":1847},{"__isSmartRef__":true,"id":1849},{"__isSmartRef__":true,"id":1851},{"__isSmartRef__":true,"id":1853},{"__isSmartRef__":true,"id":1855},{"__isSmartRef__":true,"id":1857},{"__isSmartRef__":true,"id":1859}],"migrationLevel":4,"lastModifiedDate":{"__isSmartRef__":true,"id":1861},"revisionOnLoad":200639,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1845":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","date":{"__isSmartRef__":true,"id":1846}},"1846":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:15:42 GMT+0100 (W. Europe Standard Time)"},"1847":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","date":{"__isSmartRef__":true,"id":1848}},"1848":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:53:16 GMT+0100 (W. Europe Standard Time)"},"1849":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","date":{"__isSmartRef__":true,"id":1850}},"1850":{"isSerializedDate":true,"string":"Wed May 01 2013 05:34:25 GMT+0200 (W. Europe Summer Time)"},"1851":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","date":{"__isSmartRef__":true,"id":1852}},"1852":{"isSerializedDate":true,"string":"Wed May 01 2013 05:35:59 GMT+0200 (W. Europe Summer Time)"},"1853":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","date":{"__isSmartRef__":true,"id":1854}},"1854":{"isSerializedDate":true,"string":"Wed May 01 2013 05:36:30 GMT+0200 (W. Europe Summer Time)"},"1855":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","date":{"__isSmartRef__":true,"id":1856}},"1856":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:22:38 GMT+0200 (W. Europe Summer Time)"},"1857":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","date":{"__isSmartRef__":true,"id":1858}},"1858":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:50 GMT+0200 (W. Europe Summer Time)"},"1859":{"date":{"__isSmartRef__":true,"id":1860},"author":"jenslincke","message":"no comment","id":"622B0D22-F688-41EC-825F-6B1B6C6B3D41"},"1860":{"isSerializedDate":true,"string":"Fri Sep 20 2013 16:45:39 GMT+0200 (W. Europe Summer Time)"},"1861":{"isSerializedDate":true,"string":"Fri Sep 20 2013 16:43:39 GMT+0200 (W. Europe Summer Time)"},"1862":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"1863":{"doAction":{"__isSmartRef__":true,"id":1864}},"1864":{"varMapping":{"__isSmartRef__":true,"id":1865},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":1866},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"1865":{"this":{"__isSmartRef__":true,"id":1832}},"1866":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":1867}},"1867":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"1868":{"submorphs":[{"__isSmartRef__":true,"id":1869},{"__isSmartRef__":true,"id":1893},{"__isSmartRef__":true,"id":1914},{"__isSmartRef__":true,"id":1935},{"__isSmartRef__":true,"id":1964},{"__isSmartRef__":true,"id":1985},{"__isSmartRef__":true,"id":2009},{"__isSmartRef__":true,"id":2030}],"scripts":[],"id":"67CE498F-26A2-4C57-95A2-B1DFBB3CFA40","shape":{"__isSmartRef__":true,"id":2039},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"Rectangle","partsBinMetaInfo":{"__isSmartRef__":true,"id":2040},"eventHandler":{"__isSmartRef__":true,"id":2074},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","F2677A9D-5855-4DF2-B248-94545B34B762","D52188B3-7DC0-410E-96B1-50892AC00A37"],"partTests":{"__isSmartRef__":true,"id":2075},"_ClipMode":"visible","moved":true,"owner":{"__isSmartRef__":true,"id":803},"layout":{"__isSmartRef__":true,"id":2080},"isInLayoutCycle":false,"isBeingDragged":false,"_Rotation":0,"_Scale":1,"grabbingEnabled":false,"draggingEnabled":false,"prevScroll":[0,0],"isCopyMorphRef":true,"morphRefId":3,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(3.3,282.6)","distanceToDragEvent":"lively.pt(97.6,-15.9)"},"1869":{"submorphs":[],"scripts":[],"id":"2A3648E1-051F-41B7-A648-DC6FB10BA6A4","shape":{"__isSmartRef__":true,"id":1870},"__layered_droppingEnabled__":true,"halosEnabled":true,"itemList":[{"__isSmartRef__":true,"id":1871},{"__isSmartRef__":true,"id":1872},{"__isSmartRef__":true,"id":1873},{"__isSmartRef__":true,"id":1874},{"__isSmartRef__":true,"id":1875},{"__isSmartRef__":true,"id":1876},{"__isSmartRef__":true,"id":1877},{"__isSmartRef__":true,"id":1878},{"__isSmartRef__":true,"id":1879},{"__isSmartRef__":true,"id":1880},{"__isSmartRef__":true,"id":1881},{"__isSmartRef__":true,"id":1882},{"__isSmartRef__":true,"id":1883},{"__isSmartRef__":true,"id":1884},{"__isSmartRef__":true,"id":1885}],"showsHalos":false,"name":"NodeSizeFunctionList","partsBinMetaInfo":{"__isSmartRef__":true,"id":1886},"_ClipMode":"auto","eventHandler":{"__isSmartRef__":true,"id":1890},"derivationIds":[2860,"30186701-49A1-49AD-A42F-27F425D92029","ADD09343-51ED-44F6-85F3-257C9A52C897"],"isBeingDragged":false,"changeTriggered":true,"grabbingEnabled":false,"_FontSize":10,"moved":true,"owner":{"__isSmartRef__":true,"id":1868},"attributeConnections":[{"__isSmartRef__":true,"id":1891}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"#startLetters":"get","draggingEnabled":false,"__serializedExpressions__":["_Position","distanceToDragEvent"],"selectedLineNo":5,"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(10.0,151.8)","distanceToDragEvent":"lively.pt(162.9,-20.5)"},"1870":{"_BorderWidth":0,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(131.9,58.2)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(243,243,243)","_Padding":"lively.rect(0,0,0,0)"},"1871":{"string":"id 11358052"},"1872":{"string":"Objects 13875"},"1873":{"string":"Size 1592216"},"1874":{"string":"Submorphs 106"},"1875":{"string":"TextMorphs 69"},"1876":{"string":"TextSize 220305"},"1877":{"string":"DerivationIds 45"},"1878":{"string":"Revisions 135"},"1879":{"string":"Changes 94"},"1880":{"string":"Scripts 87"},"1881":{"string":"ScriptsSize 37107"},"1882":{"string":"DerivationIdSum 85646"},"1883":{"string":"PartsBinMetaInfoSum 70180"},"1884":{"string":"MetaInfoOverhead 73"},"1885":{"string":"ErrorNodes 691"},"1886":{"partsSpaceName":"PartsBin/Inputs/","migrationLevel":4,"partName":"List","comment":"a list morph","changes":[{"__isSmartRef__":true,"id":1887}],"lastModifiedDate":{"__isSmartRef__":true,"id":1889},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1887":{"date":{"__isSmartRef__":true,"id":1888},"author":"undefined","message":"Click on scrollbar does not grab list","id":"16AABF98-2E7D-4875-9E66-CF86EB74AF93"},"1888":{"isSerializedDate":true,"string":"Thu Mar 29 2012 14:39:24 GMT+0200 (W. Europe Summer Time)"},"1889":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"1890":{"morph":{"__isSmartRef__":true,"id":1869},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1891":{"sourceObj":{"__isSmartRef__":true,"id":1869},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"d3TransistionNodes","varMapping":{"__isSmartRef__":true,"id":1892},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1892":{"source":{"__isSmartRef__":true,"id":1869},"target":{"__isSmartRef__":true,"id":804}},"1893":{"submorphs":[],"scripts":[],"id":"6263E82B-18BA-476D-91D5-76158DB137F0","shape":{"__isSmartRef__":true,"id":1894},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":10,"name":"Text5","partsBinMetaInfo":{"__isSmartRef__":true,"id":1895},"textChunks":[{"__isSmartRef__":true,"id":1911}],"charsReplaced":"Some Text","lastFindLoc":9,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":1913},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":1868},"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"_Rotation":0,"_Scale":1,"draggingEnabled":false,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(10.0,120.8)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(52.5,-18.2)"},"1894":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(30.0,16.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"1895":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":1896},{"__isSmartRef__":true,"id":1898},{"__isSmartRef__":true,"id":1900},{"__isSmartRef__":true,"id":1902},{"__isSmartRef__":true,"id":1904},{"__isSmartRef__":true,"id":1906},{"__isSmartRef__":true,"id":1908}],"lastModifiedDate":{"__isSmartRef__":true,"id":1910},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1896":{"date":{"__isSmartRef__":true,"id":1897},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"1897":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"1898":{"date":{"__isSmartRef__":true,"id":1899},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"1899":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"1900":{"date":{"__isSmartRef__":true,"id":1901},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"1901":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"1902":{"date":{"__isSmartRef__":true,"id":1903},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"1903":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"1904":{"date":{"__isSmartRef__":true,"id":1905},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"1905":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"1906":{"date":{"__isSmartRef__":true,"id":1907},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"1907":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"1908":{"date":{"__isSmartRef__":true,"id":1909},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"1909":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"1910":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"1911":{"style":{"__isSmartRef__":true,"id":1912},"morph":{"__isSmartRef__":true,"id":1893},"chunkOwner":{"__isSmartRef__":true,"id":1893},"storedString":"Size:","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1912":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1913":{"morph":{"__isSmartRef__":true,"id":1893},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1914":{"submorphs":[],"scripts":[],"id":"3D48913C-9956-4BA9-8BEC-86F5ED86AF64","shape":{"__isSmartRef__":true,"id":1915},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":10,"name":"Text11","partsBinMetaInfo":{"__isSmartRef__":true,"id":1916},"textChunks":[{"__isSmartRef__":true,"id":1932}],"charsReplaced":"Size","lastFindLoc":4,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":1934},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","6263E82B-18BA-476D-91D5-76158DB137F0"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"previousSelection":[3,3],"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":1868},"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(10.0,225.0)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(89.8,-15.5)"},"1915":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(35.0,16.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"1916":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":1917},{"__isSmartRef__":true,"id":1919},{"__isSmartRef__":true,"id":1921},{"__isSmartRef__":true,"id":1923},{"__isSmartRef__":true,"id":1925},{"__isSmartRef__":true,"id":1927},{"__isSmartRef__":true,"id":1929}],"lastModifiedDate":{"__isSmartRef__":true,"id":1931},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1917":{"date":{"__isSmartRef__":true,"id":1918},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"1918":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"1919":{"date":{"__isSmartRef__":true,"id":1920},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"1920":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"1921":{"date":{"__isSmartRef__":true,"id":1922},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"1922":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"1923":{"date":{"__isSmartRef__":true,"id":1924},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"1924":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"1925":{"date":{"__isSmartRef__":true,"id":1926},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"1926":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"1927":{"date":{"__isSmartRef__":true,"id":1928},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"1928":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"1929":{"date":{"__isSmartRef__":true,"id":1930},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"1930":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"1931":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"1932":{"style":{"__isSmartRef__":true,"id":1933},"morph":{"__isSmartRef__":true,"id":1914},"chunkOwner":{"__isSmartRef__":true,"id":1914},"storedString":"Color:","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1933":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1934":{"morph":{"__isSmartRef__":true,"id":1914},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1935":{"submorphs":[],"scripts":[],"id":"D968A4C5-C276-4C69-B741-2482DB83F386","shape":{"__isSmartRef__":true,"id":1936},"__layered_droppingEnabled__":true,"halosEnabled":true,"itemList":[{"__isSmartRef__":true,"id":1937},{"__isSmartRef__":true,"id":1938},{"__isSmartRef__":true,"id":1939},{"__isSmartRef__":true,"id":1940},{"__isSmartRef__":true,"id":1941},{"__isSmartRef__":true,"id":1942},{"__isSmartRef__":true,"id":1943},{"__isSmartRef__":true,"id":1944},{"__isSmartRef__":true,"id":1945},{"__isSmartRef__":true,"id":1946},{"__isSmartRef__":true,"id":1947},{"__isSmartRef__":true,"id":1948},{"__isSmartRef__":true,"id":1949},{"__isSmartRef__":true,"id":1950},{"__isSmartRef__":true,"id":1951},{"__isSmartRef__":true,"id":1952},{"__isSmartRef__":true,"id":1953},{"__isSmartRef__":true,"id":1954},{"__isSmartRef__":true,"id":1955},{"__isSmartRef__":true,"id":1956}],"showsHalos":false,"name":"NodeColorFunctionList","partsBinMetaInfo":{"__isSmartRef__":true,"id":1957},"_ClipMode":"auto","eventHandler":{"__isSmartRef__":true,"id":1961},"derivationIds":[2860,"30186701-49A1-49AD-A42F-27F425D92029","ADD09343-51ED-44F6-85F3-257C9A52C897","2A3648E1-051F-41B7-A648-DC6FB10BA6A4"],"isBeingDragged":false,"changeTriggered":true,"grabbingEnabled":false,"_FontSize":10,"moved":true,"attributeConnections":[{"__isSmartRef__":true,"id":1962}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"prevScroll":[0,0],"owner":{"__isSmartRef__":true,"id":1868},"_Rotation":0,"_Scale":1,"draggingEnabled":false,"__serializedExpressions__":["_Position","distanceToDragEvent"],"selectedLineNo":8,"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(10.0,256.0)","distanceToDragEvent":"lively.pt(168.4,-12.7)"},"1936":{"_BorderWidth":0,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(130.7,112.1)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(243,243,243)","_Padding":"lively.rect(0,0,0,0)"},"1937":{"string":"id undefined - 11358052"},"1938":{"string":"Objects 0 - 13875"},"1939":{"string":"Size 1 - 1592216"},"1940":{"string":"Submorphs 0 - 106"},"1941":{"string":"TextMorphs 0 - 69"},"1942":{"string":"TextSize 0 - 220305"},"1943":{"string":"DerivationIds 0 - 45"},"1944":{"string":"Revisions 1 - 135"},"1945":{"string":"Changes 0 - 94"},"1946":{"string":"Scripts 0 - 87"},"1947":{"string":"ScriptsSize 0 - 37107"},"1948":{"string":"DerivationIdSum 0 - 85646"},"1949":{"string":"PartsBinMetaInfoSum 0 - 70180"},"1950":{"string":"MetaInfoOverhead 0 - 73"},"1951":{"string":"ErrorNodes 0 - 691"},"1952":{"string":"path"},"1953":{"string":"name"},"1954":{"string":"rev"},"1955":{"string":"ScriptAuthors"},"1956":{"string":"ScriptTimestamps"},"1957":{"partsSpaceName":"PartsBin/Inputs/","migrationLevel":4,"partName":"List","comment":"a list morph","changes":[{"__isSmartRef__":true,"id":1958}],"lastModifiedDate":{"__isSmartRef__":true,"id":1960},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1958":{"date":{"__isSmartRef__":true,"id":1959},"author":"undefined","message":"Click on scrollbar does not grab list","id":"16AABF98-2E7D-4875-9E66-CF86EB74AF93"},"1959":{"isSerializedDate":true,"string":"Thu Mar 29 2012 14:39:24 GMT+0200 (W. Europe Summer Time)"},"1960":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"1961":{"morph":{"__isSmartRef__":true,"id":1935},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1962":{"sourceObj":{"__isSmartRef__":true,"id":1935},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"d3TransistionNodes","varMapping":{"__isSmartRef__":true,"id":1963},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"1963":{"source":{"__isSmartRef__":true,"id":1935},"target":{"__isSmartRef__":true,"id":804}},"1964":{"submorphs":[],"scripts":[],"id":"26AF98D2-B7A5-404B-A6BC-5F2BBCDFBDA8","shape":{"__isSmartRef__":true,"id":1965},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":10,"name":"Text14","partsBinMetaInfo":{"__isSmartRef__":true,"id":1966},"textChunks":[{"__isSmartRef__":true,"id":1982}],"charsReplaced":"Color","lastFindLoc":5,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":1984},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","6263E82B-18BA-476D-91D5-76158DB137F0","3D48913C-9956-4BA9-8BEC-86F5ED86AF64"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":1868},"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(10.0,383.1)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(83.7,-13.4)"},"1965":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(28.0,16.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"1966":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":1967},{"__isSmartRef__":true,"id":1969},{"__isSmartRef__":true,"id":1971},{"__isSmartRef__":true,"id":1973},{"__isSmartRef__":true,"id":1975},{"__isSmartRef__":true,"id":1977},{"__isSmartRef__":true,"id":1979}],"lastModifiedDate":{"__isSmartRef__":true,"id":1981},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"1967":{"date":{"__isSmartRef__":true,"id":1968},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"1968":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"1969":{"date":{"__isSmartRef__":true,"id":1970},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"1970":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"1971":{"date":{"__isSmartRef__":true,"id":1972},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"1972":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"1973":{"date":{"__isSmartRef__":true,"id":1974},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"1974":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"1975":{"date":{"__isSmartRef__":true,"id":1976},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"1976":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"1977":{"date":{"__isSmartRef__":true,"id":1978},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"1978":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"1979":{"date":{"__isSmartRef__":true,"id":1980},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"1980":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"1981":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"1982":{"style":{"__isSmartRef__":true,"id":1983},"morph":{"__isSmartRef__":true,"id":1964},"chunkOwner":{"__isSmartRef__":true,"id":1964},"storedString":"Text:","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1983":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"1984":{"morph":{"__isSmartRef__":true,"id":1964},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"1985":{"submorphs":[],"scripts":[],"id":"2C33E486-4F45-44CB-A0C0-2A5C9EE7D5D3","shape":{"__isSmartRef__":true,"id":1986},"__layered_droppingEnabled__":true,"halosEnabled":true,"itemList":[{"__isSmartRef__":true,"id":1987},{"__isSmartRef__":true,"id":1988},{"__isSmartRef__":true,"id":1989},{"__isSmartRef__":true,"id":1990},{"__isSmartRef__":true,"id":1991},{"__isSmartRef__":true,"id":1992},{"__isSmartRef__":true,"id":1993},{"__isSmartRef__":true,"id":1994},{"__isSmartRef__":true,"id":1995},{"__isSmartRef__":true,"id":1996},{"__isSmartRef__":true,"id":1997},{"__isSmartRef__":true,"id":1998},{"__isSmartRef__":true,"id":1999},{"__isSmartRef__":true,"id":2000},{"__isSmartRef__":true,"id":2001}],"showsHalos":false,"name":"TextSizeFunctionList","partsBinMetaInfo":{"__isSmartRef__":true,"id":2002},"_ClipMode":"auto","eventHandler":{"__isSmartRef__":true,"id":2006},"derivationIds":[2860,"30186701-49A1-49AD-A42F-27F425D92029","ADD09343-51ED-44F6-85F3-257C9A52C897","2A3648E1-051F-41B7-A648-DC6FB10BA6A4","D968A4C5-C276-4C69-B741-2482DB83F386"],"isBeingDragged":false,"changeTriggered":true,"grabbingEnabled":false,"_FontSize":10,"moved":true,"attributeConnections":[{"__isSmartRef__":true,"id":2007}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"prevScroll":[0,16],"owner":{"__isSmartRef__":true,"id":1868},"_Rotation":0,"_Scale":1,"draggingEnabled":false,"__serializedExpressions__":["_Position","distanceToDragEvent"],"selectedLineNo":0,"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(10.0,414.1)","distanceToDragEvent":"lively.pt(164.3,-19.7)"},"1986":{"_BorderWidth":0,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(128.4,52.3)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(243,243,243)","_Padding":"lively.rect(0,0,0,0)"},"1987":{"string":"id 11358052"},"1988":{"string":"Objects 13875"},"1989":{"string":"Size 1592216"},"1990":{"string":"Submorphs 106"},"1991":{"string":"TextMorphs 69"},"1992":{"string":"TextSize 220305"},"1993":{"string":"DerivationIds 45"},"1994":{"string":"Revisions 135"},"1995":{"string":"Changes 94"},"1996":{"string":"Scripts 87"},"1997":{"string":"ScriptsSize 37107"},"1998":{"string":"DerivationIdSum 85646"},"1999":{"string":"PartsBinMetaInfoSum 70180"},"2000":{"string":"MetaInfoOverhead 73"},"2001":{"string":"ErrorNodes 691"},"2002":{"partsSpaceName":"PartsBin/Inputs/","migrationLevel":4,"partName":"List","comment":"a list morph","changes":[{"__isSmartRef__":true,"id":2003}],"lastModifiedDate":{"__isSmartRef__":true,"id":2005},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2003":{"date":{"__isSmartRef__":true,"id":2004},"author":"undefined","message":"Click on scrollbar does not grab list","id":"16AABF98-2E7D-4875-9E66-CF86EB74AF93"},"2004":{"isSerializedDate":true,"string":"Thu Mar 29 2012 14:39:24 GMT+0200 (W. Europe Summer Time)"},"2005":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"2006":{"morph":{"__isSmartRef__":true,"id":1985},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2007":{"sourceObj":{"__isSmartRef__":true,"id":1985},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"d3TransistionNodes","varMapping":{"__isSmartRef__":true,"id":2008},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2008":{"source":{"__isSmartRef__":true,"id":1985},"target":{"__isSmartRef__":true,"id":804}},"2009":{"submorphs":[],"scripts":[],"id":"192D31D0-E1A6-4DBC-B962-8B6835B613E5","shape":{"__isSmartRef__":true,"id":2010},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":10,"name":"Text6","partsBinMetaInfo":{"__isSmartRef__":true,"id":2011},"textChunks":[{"__isSmartRef__":true,"id":2027}],"charsReplaced":"Size:","lastFindLoc":5,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2029},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","6263E82B-18BA-476D-91D5-76158DB137F0"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"owner":{"__isSmartRef__":true,"id":1868},"_Rotation":0,"_Scale":1,"draggingEnabled":false,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(10.0,10.0)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(54.0,-17.6)"},"2010":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(78.0,16.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"2011":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":2012},{"__isSmartRef__":true,"id":2014},{"__isSmartRef__":true,"id":2016},{"__isSmartRef__":true,"id":2018},{"__isSmartRef__":true,"id":2020},{"__isSmartRef__":true,"id":2022},{"__isSmartRef__":true,"id":2024}],"lastModifiedDate":{"__isSmartRef__":true,"id":2026},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2012":{"date":{"__isSmartRef__":true,"id":2013},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"2013":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"2014":{"date":{"__isSmartRef__":true,"id":2015},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"2015":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"2016":{"date":{"__isSmartRef__":true,"id":2017},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"2017":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"2018":{"date":{"__isSmartRef__":true,"id":2019},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"2019":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"2020":{"date":{"__isSmartRef__":true,"id":2021},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"2021":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"2022":{"date":{"__isSmartRef__":true,"id":2023},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"2023":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"2024":{"date":{"__isSmartRef__":true,"id":2025},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"2025":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"2026":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"2027":{"style":{"__isSmartRef__":true,"id":2028},"morph":{"__isSmartRef__":true,"id":2009},"chunkOwner":{"__isSmartRef__":true,"id":2009},"storedString":"Visualization:","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2028":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2029":{"morph":{"__isSmartRef__":true,"id":2009},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2030":{"submorphs":[],"scripts":[],"id":"DEE0DA31-0937-4342-ADC7-C7B76208A6DA","shape":{"__isSmartRef__":true,"id":2031},"__layered_droppingEnabled__":true,"halosEnabled":true,"itemList":["BundleView","TreeMap","ForceGraph","ForceGraphInteractive","FlowGraph"],"selectedLineNo":0,"showsHalos":false,"name":"VisualizationList","partsBinMetaInfo":{"__isSmartRef__":true,"id":2032},"_ClipMode":"auto","eventHandler":{"__isSmartRef__":true,"id":2036},"derivationIds":[2860,"30186701-49A1-49AD-A42F-27F425D92029","ADD09343-51ED-44F6-85F3-257C9A52C897"],"isBeingDragged":false,"changeTriggered":true,"grabbingEnabled":false,"_FontSize":10,"moved":true,"owner":{"__isSmartRef__":true,"id":1868},"prevScroll":[0,0],"isCopyMorphRef":true,"morphRefId":1,"attributeConnections":[{"__isSmartRef__":true,"id":2037}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"_Rotation":0,"_Scale":1,"draggingEnabled":false,"selection":"BundleView","__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(10.0,41.0)","distanceToDragEvent":"lively.pt(83.0,-22.4)"},"2031":{"_BorderWidth":0,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(130.4,64.8)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(243,243,243)","_Padding":"lively.rect(0,0,0,0)"},"2032":{"partsSpaceName":"PartsBin/Inputs","migrationLevel":4,"partName":"List","comment":"a list morph","changes":[{"__isSmartRef__":true,"id":2033}],"lastModifiedDate":{"__isSmartRef__":true,"id":2035},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2033":{"date":{"__isSmartRef__":true,"id":2034},"author":"undefined","message":"Click on scrollbar does not grab list","id":"16AABF98-2E7D-4875-9E66-CF86EB74AF93"},"2034":{"isSerializedDate":true,"string":"Thu Mar 29 2012 14:39:24 GMT+0200 (W. Europe Summer Time)"},"2035":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"2036":{"morph":{"__isSmartRef__":true,"id":2030},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2037":{"sourceObj":{"__isSmartRef__":true,"id":2030},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":804},"targetMethodName":"update","varMapping":{"__isSmartRef__":true,"id":2038},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2038":{"source":{"__isSmartRef__":true,"id":2030},"target":{"__isSmartRef__":true,"id":804}},"2039":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":15.920000000000002,"_Opacity":0.9,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(151.9,476.4)","_BorderColor":"Color.rgb(218,218,218)","_Fill":"Color.rgb(241,241,241)","_Padding":"lively.rect(0,0,0,0)"},"2040":{"partsSpaceName":"PartsBin/Basic","comment":"A plain simple rectangle","migrationLevel":8,"partName":"Rectangle","changes":[{"__isSmartRef__":true,"id":2041},{"__isSmartRef__":true,"id":2043},{"__isSmartRef__":true,"id":2045},{"__isSmartRef__":true,"id":2047},{"__isSmartRef__":true,"id":2049},{"__isSmartRef__":true,"id":2051},{"__isSmartRef__":true,"id":2053},{"__isSmartRef__":true,"id":2055},{"__isSmartRef__":true,"id":2057},{"__isSmartRef__":true,"id":2059},{"__isSmartRef__":true,"id":2061},{"__isSmartRef__":true,"id":2063},{"__isSmartRef__":true,"id":2065},{"__isSmartRef__":true,"id":2067},{"__isSmartRef__":true,"id":2069},{"__isSmartRef__":true,"id":2071}],"lastModifiedDate":{"__isSmartRef__":true,"id":2073},"revisionOnLoad":198774,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2041":{"author":"robertkrahn","message":"no comment","id":"FBBB9C99-B61C-4D5F-8750-6E2987DF0C9C","date":{"__isSmartRef__":true,"id":2042}},"2042":{"isSerializedDate":true,"string":"Fri Jun 21 2013 00:16:24 GMT+0200 (W. Europe Summer Time)"},"2043":{"author":"robertkrahn","message":"no comment","id":"67FD74CD-7AE4-4050-ADC7-4DF73804258D","date":{"__isSmartRef__":true,"id":2044}},"2044":{"isSerializedDate":true,"string":"Thu May 30 2013 09:18:06 GMT+0200 (W. Europe Summer Time)"},"2045":{"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8","date":{"__isSmartRef__":true,"id":2046}},"2046":{"isSerializedDate":true,"string":"Wed Jan 23 2013 12:57:18 GMT+0100 (W. Europe Standard Time)"},"2047":{"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23","date":{"__isSmartRef__":true,"id":2048}},"2048":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"2049":{"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC","date":{"__isSmartRef__":true,"id":2050}},"2050":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"2051":{"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2","date":{"__isSmartRef__":true,"id":2052}},"2052":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"2053":{"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B","date":{"__isSmartRef__":true,"id":2054}},"2054":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"2055":{"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7","date":{"__isSmartRef__":true,"id":2056}},"2056":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"2057":{"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350","date":{"__isSmartRef__":true,"id":2058}},"2058":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"2059":{"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8","date":{"__isSmartRef__":true,"id":2060}},"2060":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"2061":{"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205","date":{"__isSmartRef__":true,"id":2062}},"2062":{"isSerializedDate":true,"string":"Thu Nov 22 2012 10:35:51 GMT+0100 (W. Europe Standard Time)"},"2063":{"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2","date":{"__isSmartRef__":true,"id":2064}},"2064":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:42:31 GMT+0100 (W. Europe Standard Time)"},"2065":{"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20","date":{"__isSmartRef__":true,"id":2066}},"2066":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:47:05 GMT+0100 (W. Europe Standard Time)"},"2067":{"author":"SAPLivelyScreen","message":"no comment","id":"EF145198-0649-41BD-A92E-521D98FEC49D","date":{"__isSmartRef__":true,"id":2068}},"2068":{"isSerializedDate":true,"string":"Thu May 30 2013 00:36:50 GMT+0200 (W. Europe Summer Time)"},"2069":{"author":"SAPLivelyScreen","message":"no comment","id":"7A44D8CA-6D5F-42A3-A4B4-4D7F51EECA52","date":{"__isSmartRef__":true,"id":2070}},"2070":{"isSerializedDate":true,"string":"Tue Jun 18 2013 20:49:27 GMT+0200 (W. Europe Summer Time)"},"2071":{"author":"robertkrahn","message":"no comment","id":"A452871F-4EB9-45D1-94B8-6065CBA7B8FD","date":{"__isSmartRef__":true,"id":2072}},"2072":{"isSerializedDate":true,"string":"Tue Jul 30 2013 08:20:51 GMT+0200 (W. Europe Summer Time)"},"2073":{"isSerializedDate":true,"string":"Thu Aug 15 2013 21:21:30 GMT+0200 (W. Europe Summer Time)"},"2074":{"morph":{"__isSmartRef__":true,"id":1868},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2075":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2076}},"2076":{"test01IsMorph":{"__isSmartRef__":true,"id":2077}},"2077":{"varMapping":{"__isSmartRef__":true,"id":2078},"source":"function test01IsMorph(aPart) {\n this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":2079},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2078":{"this":{"__isSmartRef__":true,"id":2075}},"2079":{},"2080":{"layouter":{"__isSmartRef__":true,"id":2081},"__serializedExpressions__":["extentWithoutPlaceholder"],"extentWithoutPlaceholder":"lively.pt(151.9,425.6)"},"2081":{"defaultBorderSize":10,"defaultSpacing":15,"borderSize":10,"spacing":15,"container":{"__isSmartRef__":true,"id":1868},"__LivelyClassName__":"lively.morphic.Layout.JournalLayout","__SourceModuleName__":"Global.lively.morphic.Layout"},"2082":{"submorphs":[],"scripts":[],"id":"37E98EDD-1DDA-4A93-88F8-958D4DE9D71C","shape":{"__isSmartRef__":true,"id":2083},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":12,"name":"Text16","partsBinMetaInfo":{"__isSmartRef__":true,"id":2084},"textChunks":[{"__isSmartRef__":true,"id":2100}],"charsReplaced":"Analysis","lastFindLoc":8,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2102},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","AF3DDCDC-849D-4EF9-B0E0-A465A3D25EBB","88307755-2182-4CAB-8C1F-661123CCC159"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"owner":{"__isSmartRef__":true,"id":803},"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(2.3,2.4)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(86.0,-15.1)"},"2083":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(135.0,23.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"2084":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":2085},{"__isSmartRef__":true,"id":2087},{"__isSmartRef__":true,"id":2089},{"__isSmartRef__":true,"id":2091},{"__isSmartRef__":true,"id":2093},{"__isSmartRef__":true,"id":2095},{"__isSmartRef__":true,"id":2097}],"lastModifiedDate":{"__isSmartRef__":true,"id":2099},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2085":{"date":{"__isSmartRef__":true,"id":2086},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"2086":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"2087":{"date":{"__isSmartRef__":true,"id":2088},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"2088":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"2089":{"date":{"__isSmartRef__":true,"id":2090},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"2090":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"2091":{"date":{"__isSmartRef__":true,"id":2092},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"2092":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"2093":{"date":{"__isSmartRef__":true,"id":2094},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"2094":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"2095":{"date":{"__isSmartRef__":true,"id":2096},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"2096":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"2097":{"date":{"__isSmartRef__":true,"id":2098},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"2098":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"2099":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"2100":{"style":{"__isSmartRef__":true,"id":2101},"morph":{"__isSmartRef__":true,"id":2082},"chunkOwner":{"__isSmartRef__":true,"id":2082},"storedString":"Visualization","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2101":{"fontWeight":"bold","__serializedExpressions__":["color"],"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore","color":"Color.rgb(0,79,152)"},"2102":{"morph":{"__isSmartRef__":true,"id":2082},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2103":{"submorphs":[],"scripts":[],"id":"07A2DFB4-D257-454A-A3F9-9D68DF944062","shape":{"__isSmartRef__":true,"id":2104},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":7,"name":"ObjectDetails","partsBinMetaInfo":{"__isSmartRef__":true,"id":1442},"textChunks":[{"__isSmartRef__":true,"id":2105}],"charsReplaced":"foo!?","lastFindLoc":5,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2107},"_ClipMode":"scroll","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":803},"_WordBreak":"break-all","_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(2.6,23.7)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(202.5,-11.9)"},"2104":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":0.571,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(150.0,39.1)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)","_Fill":"Color.rgb(225,225,225)"},"2105":{"style":{"__isSmartRef__":true,"id":2106},"chunkOwner":{"__isSmartRef__":true,"id":2103},"_id":"_123780","storedString":"id: 1019724\nname: lively.morphic.World\nclassName: lively.morphic.World\npath: issues/120229_TextWithInsetGrowsAfterEveryPageLoad.xhtml\nrev: 142255\nowner: null\nparentId: 1019958\ntreeItem: <-submorphs","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2106":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2107":{"morph":{"__isSmartRef__":true,"id":2103},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2108":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":6.675000000000001,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1358.2,1023.7)","_BorderColor":"Color.rgb(95,94,95)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"2109":{"partsSpaceName":"PartsBin/Jens","comment":"A morph hierarchy visualization with bundle view simulation of attribute connections.","migrationLevel":4,"partName":"NeoVisualization","changes":[{"__isSmartRef__":true,"id":2110},{"__isSmartRef__":true,"id":2112},{"__isSmartRef__":true,"id":2114},{"__isSmartRef__":true,"id":2116},{"__isSmartRef__":true,"id":2118},{"__isSmartRef__":true,"id":2120},{"__isSmartRef__":true,"id":2122},{"__isSmartRef__":true,"id":2124},{"__isSmartRef__":true,"id":2126},{"__isSmartRef__":true,"id":2128},{"__isSmartRef__":true,"id":2130},{"__isSmartRef__":true,"id":2132}],"lastModifiedDate":{"__isSmartRef__":true,"id":2134},"revisionOnLoad":199213,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2110":{"date":{"__isSmartRef__":true,"id":2111},"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23"},"2111":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"2112":{"date":{"__isSmartRef__":true,"id":2113},"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC"},"2113":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"2114":{"date":{"__isSmartRef__":true,"id":2115},"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2"},"2115":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"2116":{"date":{"__isSmartRef__":true,"id":2117},"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B"},"2117":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"2118":{"date":{"__isSmartRef__":true,"id":2119},"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7"},"2119":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"2120":{"date":{"__isSmartRef__":true,"id":2121},"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350"},"2121":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"2122":{"date":{"__isSmartRef__":true,"id":2123},"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8"},"2123":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"2124":{"date":{"__isSmartRef__":true,"id":2125},"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205"},"2125":{"isSerializedDate":true,"string":"Thu Nov 22 2012 10:35:51 GMT+0100 (W. Europe Standard Time)"},"2126":{"date":{"__isSmartRef__":true,"id":2127},"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2"},"2127":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:42:31 GMT+0100 (W. Europe Standard Time)"},"2128":{"date":{"__isSmartRef__":true,"id":2129},"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20"},"2129":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:47:05 GMT+0100 (W. Europe Standard Time)"},"2130":{"date":{"__isSmartRef__":true,"id":2131},"author":"jenslincke","message":"no comment","id":"6D17A33D-F4B0-4EB3-B81C-A4AE3C2CE3B4"},"2131":{"isSerializedDate":true,"string":"Fri Feb 01 2013 10:23:46 GMT+0100 (W. Europe Standard Time)"},"2132":{"date":{"__isSmartRef__":true,"id":2133},"author":"jenslincke","message":"no comment","id":"0A0914B2-37F3-41E6-9573-7C813017D212"},"2133":{"isSerializedDate":true,"string":"Fri Aug 23 2013 17:02:42 GMT+0200 (W. Europe Summer Time)"},"2134":{"isSerializedDate":true,"string":"Fri Aug 23 2013 17:02:36 GMT+0200 (W. Europe Summer Time)"},"2135":{"morph":{"__isSmartRef__":true,"id":803},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2136":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2137}},"2137":{"test01IsMorph":{"__isSmartRef__":true,"id":2138}},"2138":{"varMapping":{"__isSmartRef__":true,"id":2139},"source":"function test01IsMorph(aPart) {\n this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":2140},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2139":{"this":{"__isSmartRef__":true,"id":2136}},"2140":{},"2141":{"adjustForNewBounds":true,"resizeWidth":true,"resizeHeight":true},"2142":{"setTarget":{"__isSmartRef__":true,"id":2143},"update":{"__isSmartRef__":true,"id":2147},"fetchTarget":{"__isSmartRef__":true,"id":2151}},"2143":{"varMapping":{"__isSmartRef__":true,"id":2144},"source":"function setTarget(target) {\n\n\n \n this.get('D3Panel').setTarget(target)\n}","funcProperties":{"__isSmartRef__":true,"id":2145},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2144":{"this":{"__isSmartRef__":true,"id":803}},"2145":{"timestamp":{"__isSmartRef__":true,"id":2146},"user":"jenslincke","tags":[]},"2146":{"isSerializedDate":true,"string":"Mon Jul 15 2013 15:39:20 GMT+0200 (W. Europe Summer Time)"},"2147":{"varMapping":{"__isSmartRef__":true,"id":2148},"source":"function update() {\n\n this.fetchTarget()\n this.get('D3Panel').draw()\n}","funcProperties":{"__isSmartRef__":true,"id":2149},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2148":{"this":{"__isSmartRef__":true,"id":803}},"2149":{"timestamp":{"__isSmartRef__":true,"id":2150},"user":"jenslincke","tags":[]},"2150":{"isSerializedDate":true,"string":"Mon Jul 15 2013 15:40:20 GMT+0200 (W. Europe Summer Time)"},"2151":{"varMapping":{"__isSmartRef__":true,"id":2152},"source":"function fetchTarget() {\n\n\n var root = {name: 'root', submorphs: Properties.values(this.get(\"WorldStatsPane\").parts).pluck('object') }\n\n this.get('D3Panel').setTarget(root)\n}","funcProperties":{"__isSmartRef__":true,"id":2153},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2152":{"this":{"__isSmartRef__":true,"id":803}},"2153":{"timestamp":{"__isSmartRef__":true,"id":2154},"user":"jenslincke","tags":[]},"2154":{"isSerializedDate":true,"string":"Mon Jul 15 2013 15:49:10 GMT+0200 (W. Europe Summer Time)"},"2155":{"submorphs":[{"__isSmartRef__":true,"id":2156},{"__isSmartRef__":true,"id":2191}],"scripts":[],"id":"E6A2DD9E-5CF7-4E70-920E-217A037A75C7","shape":{"__isSmartRef__":true,"id":2235},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"TableVisualizer","partsBinMetaInfo":{"__isSmartRef__":true,"id":2236},"eventHandler":{"__isSmartRef__":true,"id":2270},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","F2677A9D-5855-4DF2-B248-94545B34B762","D52188B3-7DC0-410E-96B1-50892AC00A37"],"partTests":{"__isSmartRef__":true,"id":2271},"_ClipMode":"visible","moved":true,"owner":{"__isSmartRef__":true,"id":1},"prevScroll":[0,0],"isBeingDragged":false,"_Rotation":0,"_Scale":1,"draggingEnabled":false,"grabbingEnabled":false,"visualizationEnabled":true,"layout":{"__isSmartRef__":true,"id":2285},"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2286},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(10.0,1590.0)","distanceToDragEvent":"lively.pt(684.3,-12.6)"},"2156":{"submorphs":[{"__isSmartRef__":true,"id":2157}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2162},"eventHandler":{"__isSmartRef__":true,"id":2163},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"B311E9F7-1F2C-49DA-B44D-B47098E29C60","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":2157},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":2164},{"__isSmartRef__":true,"id":2166}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button20","partsBinMetaInfo":{"__isSmartRef__":true,"id":2168},"pinSpecs":[{"__isSmartRef__":true,"id":2184}],"owner":{"__isSmartRef__":true,"id":2155},"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"layout":{"__isSmartRef__":true,"id":2185},"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2186},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(1249.2,4.0)","distanceToDragEvent":"lively.pt(68.1,-16.4)"},"2157":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2158},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2159}],"eventHandler":{"__isSmartRef__":true,"id":2161},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"222F509F-2C4E-4AF5-99AA-C4D22ADCB5C0","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2156},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"2158":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"2159":{"style":{"__isSmartRef__":true,"id":2160},"chunkOwner":{"__isSmartRef__":true,"id":2157},"_id":"_8570","storedString":"Visualize","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2160":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2161":{"morph":{"__isSmartRef__":true,"id":2157},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2162":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"_Fill":null,"_Opacity":1,"_BorderStyle":"solid","__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"2163":{"morph":{"__isSmartRef__":true,"id":2156},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2164":{"sourceObj":{"__isSmartRef__":true,"id":2156},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2156},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":2165},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2165":{"source":{"__isSmartRef__":true,"id":2156},"target":{"__isSmartRef__":true,"id":2156}},"2166":{"sourceObj":{"__isSmartRef__":true,"id":2156},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2155},"targetMethodName":"visualizeTable","varMapping":{"__isSmartRef__":true,"id":2167},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2167":{"source":{"__isSmartRef__":true,"id":2156},"target":{"__isSmartRef__":true,"id":2155}},"2168":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":2169},{"__isSmartRef__":true,"id":2171},{"__isSmartRef__":true,"id":2173},{"__isSmartRef__":true,"id":2175},{"__isSmartRef__":true,"id":2177},{"__isSmartRef__":true,"id":2179},{"__isSmartRef__":true,"id":2181}],"migrationLevel":7,"lastModifiedDate":{"__isSmartRef__":true,"id":2183},"revisionOnLoad":196350,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2169":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","date":{"__isSmartRef__":true,"id":2170}},"2170":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:15:42 GMT+0100 (W. Europe Standard Time)"},"2171":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","date":{"__isSmartRef__":true,"id":2172}},"2172":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:53:16 GMT+0100 (W. Europe Standard Time)"},"2173":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","date":{"__isSmartRef__":true,"id":2174}},"2174":{"isSerializedDate":true,"string":"Wed May 01 2013 05:34:25 GMT+0200 (W. Europe Summer Time)"},"2175":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","date":{"__isSmartRef__":true,"id":2176}},"2176":{"isSerializedDate":true,"string":"Wed May 01 2013 05:35:59 GMT+0200 (W. Europe Summer Time)"},"2177":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","date":{"__isSmartRef__":true,"id":2178}},"2178":{"isSerializedDate":true,"string":"Wed May 01 2013 05:36:30 GMT+0200 (W. Europe Summer Time)"},"2179":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","date":{"__isSmartRef__":true,"id":2180}},"2180":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:22:38 GMT+0200 (W. Europe Summer Time)"},"2181":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","date":{"__isSmartRef__":true,"id":2182}},"2182":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:50 GMT+0200 (W. Europe Summer Time)"},"2183":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:29 GMT+0200 (W. Europe Summer Time)"},"2184":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"2185":{"moveHorizontal":true},"2186":{"doAction":{"__isSmartRef__":true,"id":2187}},"2187":{"varMapping":{"__isSmartRef__":true,"id":2188},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":2189},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2188":{"this":{"__isSmartRef__":true,"id":2156}},"2189":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":2190}},"2190":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"2191":{"submorphs":[{"__isSmartRef__":true,"id":2192}],"scripts":[],"id":"B18E59BF-23D2-41EC-AE2A-79480D790D5F","shape":{"__isSmartRef__":true,"id":2197},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"registeredForMouseEvents":true,"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":2198},"lighterFill":{"__isSmartRef__":true,"id":2203},"label":{"__isSmartRef__":true,"id":2192},"name":"visualizationEnabled","showsHalos":false,"partsBinMetaInfo":{"__isSmartRef__":true,"id":2208},"attributeConnections":[{"__isSmartRef__":true,"id":2222}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"eventHandler":{"__isSmartRef__":true,"id":2223},"derivationIds":[2588,"C96F474C-1F3A-4E42-844C-DD2EB76BDD7E","E36FA68D-6317-416A-99FA-0ED81E4193DA","06258075-AC5A-4CAB-A248-A66D3213816C","3CCA0FB5-A8C8-4724-923D-89ABF4815193","295B15FC-1061-4D26-B542-E945890E996C"],"_ClipMode":"visible","isPressed":false,"isToggled":true,"connections":{"__isSmartRef__":true,"id":2224},"moved":true,"prevScroll":[0,0],"layout":{"__isSmartRef__":true,"id":2225},"_PreviousBorderWidth":1,"owner":{"__isSmartRef__":true,"id":2155},"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2226},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(1092.8,5.3)","distanceToDragEvent":"lively.pt(95.6,-13.5)"},"2192":{"submorphs":[],"scripts":[],"id":"19300832-18D7-47F1-903C-AEF4F2A2F27F","shape":{"__isSmartRef__":true,"id":2193},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","registeredForMouseEvents":true,"_MaxTextWidth":105,"_MaxTextHeight":null,"textStyle":null,"owner":{"__isSmartRef__":true,"id":2191},"isLabel":true,"eventsAreIgnored":true,"_ClipMode":"hidden","textChunks":[{"__isSmartRef__":true,"id":2194}],"_Align":"center","eventHandler":{"__isSmartRef__":true,"id":2196},"_HandStyle":"default","_PointerEvents":"none","derivationIds":[2589,"44787449-DE07-40ED-B4D3-89A4A185AE29","F4BC3D0F-FF03-4EFC-B727-951442606730","277CDAEF-77E0-49F1-BD6F-1630D7ECC2E1","61FF9D44-9401-46B6-B219-6BAB20F35641","B576EEA1-2C6B-4EB4-ACE5-44331D3ADA88"],"_MinTextWidth":105,"_MinTextHeight":null,"_WordBreak":"break-all","_FontSize":10,"#startLetters":"get","showsHalos":false,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"_TextStylingMode":true,"__serializedExpressions__":["_Position","padding","_Padding","_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(0.0,0.0)","padding":"lively.rect(5,5,0,0)","_Padding":"lively.rect(0,0,0,0)","_TextColor":"Color.rgb(0,0,0)"},"2193":{"_BorderWidth":0,"_Fill":null,"_ClipMode":"hidden","__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(143.7,20.9)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(0,3,0,0)"},"2194":{"style":{"__isSmartRef__":true,"id":2195},"chunkOwner":{"__isSmartRef__":true,"id":2192},"_id":"_510","storedString":"[X] visualizationEnabled","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2195":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2196":{"morph":{"__isSmartRef__":true,"id":2192},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2197":{"_BorderWidth":1,"_BorderRadius":5,"_ClipMode":"visible","_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Fill","position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Fill":"Color.rgb(243,243,243)","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(143.7,20.9)","_BorderColor":"Color.rgb(189,190,192)","_Padding":"lively.rect(0,0,0,0)"},"2198":{"stops":[{"__isSmartRef__":true,"id":2199},{"__isSmartRef__":true,"id":2200},{"__isSmartRef__":true,"id":2201},{"__isSmartRef__":true,"id":2202}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"2199":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(245,245,245)"},"2200":{"offset":0.4,"__serializedExpressions__":["color"],"color":"Color.rgb(209,209,209)"},"2201":{"offset":0.6,"__serializedExpressions__":["color"],"color":"Color.rgb(209,209,209)"},"2202":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(240,240,240)"},"2203":{"stops":[{"__isSmartRef__":true,"id":2204},{"__isSmartRef__":true,"id":2205},{"__isSmartRef__":true,"id":2206},{"__isSmartRef__":true,"id":2207}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"2204":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(250,250,250)"},"2205":{"offset":0.4,"__serializedExpressions__":["color"],"color":"Color.rgb(232,232,232)"},"2206":{"offset":0.6,"__serializedExpressions__":["color"],"color":"Color.rgb(232,232,232)"},"2207":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(248,248,248)"},"2208":{"partsSpaceName":"PartsBin/Inputs/","migrationLevel":4,"partName":"LazyToggleButton","comment":"A lazy toggle button, that uses its name as label and selector to toggle a state bool in its owner.","changes":[{"__isSmartRef__":true,"id":2209},{"__isSmartRef__":true,"id":2211},{"__isSmartRef__":true,"id":2213},{"__isSmartRef__":true,"id":2215},{"__isSmartRef__":true,"id":2217},{"__isSmartRef__":true,"id":2219}],"lastModifiedDate":{"__isSmartRef__":true,"id":2221},"revisionOnLoad":198261,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2209":{"date":{"__isSmartRef__":true,"id":2210},"author":"jenslincke","message":"no comment","id":"7471CE07-F2C0-4149-9684-90E843DB8DCE"},"2210":{"isSerializedDate":true,"string":"Fri Feb 08 2013 10:43:34 GMT+0100 (W. Europe Standard Time)"},"2211":{"date":{"__isSmartRef__":true,"id":2212},"author":"jenslincke","message":"no comment","id":"02AB5A6F-7748-4A48-8C36-D334F97FC321"},"2212":{"isSerializedDate":true,"string":"Thu Feb 07 2013 17:57:46 GMT+0100 (W. Europe Standard Time)"},"2213":{"date":{"__isSmartRef__":true,"id":2214},"author":"jenslincke","message":"no comment","id":"85D3331C-DD7E-496D-BA01-197B77A81F86"},"2214":{"isSerializedDate":true,"string":"Tue Jul 30 2013 14:06:18 GMT+0200 (W. Europe Summer Time)"},"2215":{"date":{"__isSmartRef__":true,"id":2216},"author":"jenslincke","message":"fixed label","id":"119A9CEA-E987-4BC7-A49A-45E31AA4F369"},"2216":{"isSerializedDate":true,"string":"Tue Jul 30 2013 14:07:51 GMT+0200 (W. Europe Summer Time)"},"2217":{"date":{"__isSmartRef__":true,"id":2218},"author":"jenslincke","message":"no comment","id":"FDB8D029-EB75-4836-B6D7-AD42BB9325C9"},"2218":{"isSerializedDate":true,"string":"Tue Jul 30 2013 14:14:33 GMT+0200 (W. Europe Summer Time)"},"2219":{"date":{"__isSmartRef__":true,"id":2220},"author":"jenslincke","message":"no comment","id":"9E183461-9BDB-4C62-94DC-B79BB3817B92"},"2220":{"isSerializedDate":true,"string":"Tue Jul 30 2013 14:26:23 GMT+0200 (W. Europe Summer Time)"},"2221":{"isSerializedDate":true,"string":"Tue Jul 30 2013 14:22:46 GMT+0200 (W. Europe Summer Time)"},"2222":{"sourceObj":{"__isSmartRef__":true,"id":2191},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2191},"targetMethodName":"onFire","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2223":{"morph":{"__isSmartRef__":true,"id":2191},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2224":{},"2225":{"moveHorizontal":true},"2226":{"onFire":{"__isSmartRef__":true,"id":2227},"reset":{"__isSmartRef__":true,"id":2231}},"2227":{"varMapping":{"__isSmartRef__":true,"id":2228},"source":"function onFire() {\n // super lazy toggle button\n var target = this.owner\n var selector = this.name;\n\n // this.label.textString.replace(/\\[.\\] /,\"\")\n\n target[selector] = !target[selector];\n\n if (target[selector]) {\n this.setLabel(\"[X] \" + selector)\n\n } else {\n this.setLabel(\"[ ] \" + selector)\n }\n}","funcProperties":{"__isSmartRef__":true,"id":2229},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2228":{"this":{"__isSmartRef__":true,"id":2191}},"2229":{"timestamp":{"__isSmartRef__":true,"id":2230},"user":"jenslincke","tags":[]},"2230":{"isSerializedDate":true,"string":"Tue Jul 30 2013 14:26:07 GMT+0200 (W. Europe Summer Time)"},"2231":{"varMapping":{"__isSmartRef__":true,"id":2232},"source":"function reset() {\n this.connections = {}\n}","funcProperties":{"__isSmartRef__":true,"id":2233},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2232":{"this":{"__isSmartRef__":true,"id":2191}},"2233":{"timestamp":{"__isSmartRef__":true,"id":2234},"user":"jenslincke","tags":[]},"2234":{"isSerializedDate":true,"string":"Tue Jul 30 2013 14:04:49 GMT+0200 (W. Europe Summer Time)"},"2235":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1359.2,32.0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"2236":{"partsSpaceName":"PartsBin/Basic","comment":"A plain simple rectangle","migrationLevel":8,"partName":"Rectangle","changes":[{"__isSmartRef__":true,"id":2237},{"__isSmartRef__":true,"id":2239},{"__isSmartRef__":true,"id":2241},{"__isSmartRef__":true,"id":2243},{"__isSmartRef__":true,"id":2245},{"__isSmartRef__":true,"id":2247},{"__isSmartRef__":true,"id":2249},{"__isSmartRef__":true,"id":2251},{"__isSmartRef__":true,"id":2253},{"__isSmartRef__":true,"id":2255},{"__isSmartRef__":true,"id":2257},{"__isSmartRef__":true,"id":2259},{"__isSmartRef__":true,"id":2261},{"__isSmartRef__":true,"id":2263},{"__isSmartRef__":true,"id":2265},{"__isSmartRef__":true,"id":2267}],"lastModifiedDate":{"__isSmartRef__":true,"id":2269},"revisionOnLoad":198774,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2237":{"author":"robertkrahn","message":"no comment","id":"FBBB9C99-B61C-4D5F-8750-6E2987DF0C9C","date":{"__isSmartRef__":true,"id":2238}},"2238":{"isSerializedDate":true,"string":"Fri Jun 21 2013 00:16:24 GMT+0200 (W. Europe Summer Time)"},"2239":{"author":"robertkrahn","message":"no comment","id":"67FD74CD-7AE4-4050-ADC7-4DF73804258D","date":{"__isSmartRef__":true,"id":2240}},"2240":{"isSerializedDate":true,"string":"Thu May 30 2013 09:18:06 GMT+0200 (W. Europe Summer Time)"},"2241":{"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8","date":{"__isSmartRef__":true,"id":2242}},"2242":{"isSerializedDate":true,"string":"Wed Jan 23 2013 12:57:18 GMT+0100 (W. Europe Standard Time)"},"2243":{"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23","date":{"__isSmartRef__":true,"id":2244}},"2244":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"2245":{"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC","date":{"__isSmartRef__":true,"id":2246}},"2246":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"2247":{"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2","date":{"__isSmartRef__":true,"id":2248}},"2248":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"2249":{"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B","date":{"__isSmartRef__":true,"id":2250}},"2250":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"2251":{"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7","date":{"__isSmartRef__":true,"id":2252}},"2252":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"2253":{"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350","date":{"__isSmartRef__":true,"id":2254}},"2254":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"2255":{"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8","date":{"__isSmartRef__":true,"id":2256}},"2256":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"2257":{"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205","date":{"__isSmartRef__":true,"id":2258}},"2258":{"isSerializedDate":true,"string":"Thu Nov 22 2012 10:35:51 GMT+0100 (W. Europe Standard Time)"},"2259":{"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2","date":{"__isSmartRef__":true,"id":2260}},"2260":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:42:31 GMT+0100 (W. Europe Standard Time)"},"2261":{"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20","date":{"__isSmartRef__":true,"id":2262}},"2262":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:47:05 GMT+0100 (W. Europe Standard Time)"},"2263":{"author":"SAPLivelyScreen","message":"no comment","id":"EF145198-0649-41BD-A92E-521D98FEC49D","date":{"__isSmartRef__":true,"id":2264}},"2264":{"isSerializedDate":true,"string":"Thu May 30 2013 00:36:50 GMT+0200 (W. Europe Summer Time)"},"2265":{"author":"SAPLivelyScreen","message":"no comment","id":"7A44D8CA-6D5F-42A3-A4B4-4D7F51EECA52","date":{"__isSmartRef__":true,"id":2266}},"2266":{"isSerializedDate":true,"string":"Tue Jun 18 2013 20:49:27 GMT+0200 (W. Europe Summer Time)"},"2267":{"author":"robertkrahn","message":"no comment","id":"A452871F-4EB9-45D1-94B8-6065CBA7B8FD","date":{"__isSmartRef__":true,"id":2268}},"2268":{"isSerializedDate":true,"string":"Tue Jul 30 2013 08:20:51 GMT+0200 (W. Europe Summer Time)"},"2269":{"isSerializedDate":true,"string":"Thu Aug 15 2013 21:21:30 GMT+0200 (W. Europe Summer Time)"},"2270":{"morph":{"__isSmartRef__":true,"id":2155},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2271":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2272}},"2272":{"test01findElementInTree":{"__isSmartRef__":true,"id":2273},"test02sortObjectsIntoTrees":{"__isSmartRef__":true,"id":2276},"test03tableToObjects":{"__isSmartRef__":true,"id":2279},"testTreeEnsurePath":{"__isSmartRef__":true,"id":2282}},"2273":{"varMapping":{"__isSmartRef__":true,"id":2274},"source":"function test01findElementInTree(aPart) {\n var tree = {\n id: 1, name: 'root', children: [ {id: 2, name: 'foo'}, {id: 3}]\n }\n this.assert(aPart.findElementInTree(1, tree), \"root not found\");\n \n\n this.assertEquals(aPart.findElementInTree(2, tree).name, 'foo', \"child not found\");\n}","funcProperties":{"__isSmartRef__":true,"id":2275},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2274":{"this":{"__isSmartRef__":true,"id":2271}},"2275":{},"2276":{"varMapping":{"__isSmartRef__":true,"id":2277},"source":"function test02sortObjectsIntoTrees(aPart) {\n var objects = [\n {id: 4, parentId: 3},\n {id: 2, parentId: 1},\n {id: 3, parentId: 1},\n {id: 5, parentId: 3},\n {id: 6, parentId: 7},\n {id: 7, parentId: null},\n ]\n var roots = aPart.sortObjectsIntoTrees(objects )\n\n this.assertEquals(roots.size(), 2, \"wrong roots: \" + roots.pluck('id'));\n}","funcProperties":{"__isSmartRef__":true,"id":2278},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2277":{"this":{"__isSmartRef__":true,"id":2271}},"2278":{},"2279":{"varMapping":{"__isSmartRef__":true,"id":2280},"source":"function test03tableToObjects(aPart) {\n var table = {columns: [\"a\", \"b\"], data: [[1,2],[3,4]]}\n \n var objs = aPart.tableToObjects(table)\n this.assertEquals(objs[0].a, 1, 'first wrong');\n this.assertEquals(objs[1].b, 4, 'first wrong');\n}","funcProperties":{"__isSmartRef__":true,"id":2281},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2280":{"this":{"__isSmartRef__":true,"id":2271}},"2281":{},"2282":{"varMapping":{"__isSmartRef__":true,"id":2283},"source":"function testTreeEnsurePath(aPart) {\r\n\r\n\r\n var obj= {name: 'root', children: []}\r\n\r\n aPart.treeEnsurePath(obj, [\"hello\", \"world\"])\r\n aPart.treeEnsurePath(obj, [\"hello\", \"world2\"])\r\n aPart.treeEnsurePath(obj, [\"hello2\", \"world\"])\r\n\r\n this.assertEquals(obj.children.length, 2, 'root children wrong');\r\n}","funcProperties":{"__isSmartRef__":true,"id":2284},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2283":{"this":{"__isSmartRef__":true,"id":2271}},"2284":{},"2285":{"resizeWidth":true,"adjustForNewBounds":true},"2286":{"visualizeTable":{"__isSmartRef__":true,"id":2287},"visualizeNodes":{"__isSmartRef__":true,"id":2291},"findElementInTree":{"__isSmartRef__":true,"id":2295},"sortObjectsIntoTrees":{"__isSmartRef__":true,"id":2299},"tableToObjects":{"__isSmartRef__":true,"id":2303},"getTable":{"__isSmartRef__":true,"id":2307},"getD3Panel":{"__isSmartRef__":true,"id":2311},"createColorVisualizationList":{"__isSmartRef__":true,"id":2315},"createSizeVisualizationList":{"__isSmartRef__":true,"id":2319},"createTextSizeVisualizationList":{"__isSmartRef__":true,"id":2323},"findIdIndexAndUpdatePabel":{"__isSmartRef__":true,"id":2327},"getMinMaxNumbers":{"__isSmartRef__":true,"id":2331},"printTree":{"__isSmartRef__":true,"id":2335},"log":{"__isSmartRef__":true,"id":2339},"treeEnsurePath":{"__isSmartRef__":true,"id":2343},"treeDetectRealRoot":{"__isSmartRef__":true,"id":2347},"updateTreeSize":{"__isSmartRef__":true,"id":2351},"sortObjectsIntoGraph":{"__isSmartRef__":true,"id":2355}},"2287":{"varMapping":{"__isSmartRef__":true,"id":2288},"source":"function visualizeTable() {\n\n if (!this.visualizationEnabled) return\n\n var table = this.getTable()\n if (!table) return alert(\"no table to visualize\");\n var objects = this.tableToObjects(table)\n\n var d3Panel = this.getD3Panel();\n d3Panel.clear()\n d3Panel.data = this.sortObjectsIntoTrees(objects)\n\n // redundant, different data format\n var graphObjects = this.tableToObjects(table)\n d3Panel.graphData = this.sortObjectsIntoGraph(graphObjects) \n\n this.createSizeVisualizationList()\r\n this.createColorVisualizationList()\r\n this.createTextSizeVisualizationList()\r\n\n d3Panel.draw()\r\n d3Panel.d3TransistionNodes()\r\n\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":2289},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2288":{"this":{"__isSmartRef__":true,"id":2155}},"2289":{"timestamp":{"__isSmartRef__":true,"id":2290},"user":"jenslincke","tags":[]},"2290":{"isSerializedDate":true,"string":"Thu Aug 14 2014 12:45:08 GMT+0200 (W. Europe Summer Time)"},"2291":{"varMapping":{"__isSmartRef__":true,"id":2292},"source":"function visualizeNodes(nodes, result) {\r\n // this.neoNodes\r\n // nodes = this.neoNodes\r\n \r\n if (!nodes) nodes = this.lastNodes\r\n if (!result ) result = this.lastResult\r\n \r\n \r\n var d3Panel = this.getD3Panel()\r\n d3Panel.data = {morphs:{}, connections: []}\r\n \r\n\r\n if(!nodes || nodes.length == 0) return\r\n if (!nodes[0].getProperty(\"type\")) return\r\n\r\n // var tree = this.leavesToTree(nodes, this.rootNode);\r\n var tree = this.timeCall(this, 'leavesToTree', [nodes, this.rootNode])\r\n\r\n\r\n var filterTree = function(tree){\r\n // remove redandancy created by node4j structure \r\n if (tree.children[0] && tree.children[0].name == tree.name){\r\n tree.neoId = tree.children[0].neoId // take the other...\r\n tree.neoNode = tree.children[0].neoNode // take the other...\r\n tree.children = tree.children[0].children\r\n }\r\n tree.children.each(function(ea) {\r\n filterTree(ea)\r\n })\r\n }\r\n // filterTree(tree)\r\n \r\n var filterPartsSpaceName = function(tree){\r\n // some name cleaning \r\n if (tree.name){\r\n tree.name = tree.name.replace(/^PartsBin\\//,\"\")\r\n }\r\n tree.children.each(function(ea) {\r\n filterPartsSpaceName (ea)\r\n })\r\n }\r\n // filterPartsSpaceName(tree)\r\n\r\n this.log(this.printTree(tree))\r\n\r\n // detect real root\r\n var root = this.treeDetectRealRoot(tree);\r\n\r\n // include path information into tree if available\r\n if (result.columns.include(\"path\")) {\r\n var oldChildren = root.children;\r\n root.children = []\r\n oldChildren.each(function(ea) {\r\n var row = this.tableGetRowAsObject(result.data, result.columns, ea.neoNode.getId())\r\n if (!row) return\r\n var path = row.path.split(\"/\")\r\n if (!ea.name) ea.name = path.last();\r\n var p = path.slice(1,-1).reverse();\r\n var dir = this.treeEnsurePath(root, p)\r\n dir.children.push(ea)\r\n }, this)\r\n }\r\n root = this.treeDetectRealRoot(tree);\r\n\r\n this.createSizeVisualizationList()\r\n this.createColorVisualizationList()\r\n this.createTextSizeVisualizationList()\r\n d3Panel.data.root = root\r\n d3Panel.draw()\r\n d3Panel.d3TransistionNodes()\r\n \r\n \r\n}","funcProperties":{"__isSmartRef__":true,"id":2293},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2292":{"this":{"__isSmartRef__":true,"id":2155}},"2293":{"timestamp":{"__isSmartRef__":true,"id":2294},"user":"jenslincke","tags":["visualize"]},"2294":{"isSerializedDate":true,"string":"Tue Sep 17 2013 21:02:59 GMT+0200 (W. Europe Summer Time)"},"2295":{"varMapping":{"__isSmartRef__":true,"id":2296},"source":"function findElementInTree(id, tree) {\r\n // don't need it any more\n if (tree.id == id) return tree\n if (!tree.children) return;\n return tree.children.detect(function(ea) { return this.findElementInTree(id, ea) }, this)\n}","funcProperties":{"__isSmartRef__":true,"id":2297},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2296":{"this":{"__isSmartRef__":true,"id":2155}},"2297":{"timestamp":{"__isSmartRef__":true,"id":2298},"user":"jenslincke","tags":["private"]},"2298":{"isSerializedDate":true,"string":"Tue Sep 17 2013 21:33:23 GMT+0200 (W. Europe Summer Time)"},"2299":{"varMapping":{"__isSmartRef__":true,"id":2300},"source":"function sortObjectsIntoTrees(objects) {\r\n var nodes = objects.collect(function(ea) { return { name: ea.name, parentId: ea.parentId, id: ea.id, row: ea, children: []}})\n var all = nodes.clone()\n var roots = []\n var added = {}\n // ea = nodes[0]\n var extraRefs = []\n nodes.each(function(ea) {\r\n if (added[ea.id]) {\n extraRefs.push(ea)\n return\n }\n if (ea.parentId == null) return roots.push(ea)\n var parent = all.detect( function(eaNode) { return eaNode.id == ea.parentId })\n if (!parent) {\n parent = {id: ea.parentId, children: []} // add a representative\n roots.push(parent)\n all.push(parent)\n added[parent.id] = parent\n }\n if (parent)\r {\n parent.children.push(ea)\r\n added[ea.id] = ea\n }\n }, this)\r\n\n if (roots.length == 1)\n var root = roots[0]\n else\n var root = {name: \"root\", children: roots || []}\n\n // include path information into tree if available\r\n if (objects[0] && objects[0].path) {\r\n var oldChildren = root.children;\r\n root.children = []\r\n oldChildren.each(function(ea) {\r\n if (!ea.row || !ea.row.path) return\r\n var path = ea.row.path.split(\"/\")\r\n var p = path.reverse();\r\n var dir = this.treeEnsurePath(root, p)\r\n dir.children.push(ea)\r\n }, this)\r\n }\r\n root = this.treeDetectRealRoot(root);\r\n var connections = []\n extraRefs.each(function(ea) {\n connections.push({\n source: added[ea.id], target: added[ea.parentId], weight: 2})\n })\n return {root: root, morphs: added, connections: connections}\r\n}","funcProperties":{"__isSmartRef__":true,"id":2301},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2300":{"this":{"__isSmartRef__":true,"id":2155}},"2301":{"timestamp":{"__isSmartRef__":true,"id":2302},"user":"jenslincke","tags":["private"]},"2302":{"isSerializedDate":true,"string":"Thu Aug 14 2014 12:56:17 GMT+0200 (W. Europe Summer Time)"},"2303":{"varMapping":{"__isSmartRef__":true,"id":2304},"source":"function tableToObjects(table) {\n return table.data\n .reject(function(ea) { return ea[0] == \"TOTAL\"})\n .collect(function(ea) {\n var obj = {}\n table.columns.each(function(column) { obj[column] = ea[table.columns.indexOf(column)]})\n return obj})\n}","funcProperties":{"__isSmartRef__":true,"id":2305},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2304":{"this":{"__isSmartRef__":true,"id":2155}},"2305":{"timestamp":{"__isSmartRef__":true,"id":2306},"user":"jenslincke","tags":[]},"2306":{"isSerializedDate":true,"string":"Tue Sep 24 2013 19:49:00 GMT+0200 (W. Europe Summer Time)"},"2307":{"varMapping":{"__isSmartRef__":true,"id":2308},"source":"function getTable() {\n return this.get(\"AnalysisPane\").getFilteredTable()\n}","funcProperties":{"__isSmartRef__":true,"id":2309},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2308":{"this":{"__isSmartRef__":true,"id":2155}},"2309":{"timestamp":{"__isSmartRef__":true,"id":2310},"user":"jenslincke","tags":[]},"2310":{"isSerializedDate":true,"string":"Tue Sep 24 2013 16:15:55 GMT+0200 (W. Europe Summer Time)"},"2311":{"varMapping":{"__isSmartRef__":true,"id":2312},"source":"function getD3Panel() {\n return this.get(\"D3Panel\")\n}","funcProperties":{"__isSmartRef__":true,"id":2313},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2312":{"this":{"__isSmartRef__":true,"id":2155}},"2313":{"timestamp":{"__isSmartRef__":true,"id":2314},"user":"jenslincke","tags":[]},"2314":{"isSerializedDate":true,"string":"Tue Sep 17 2013 21:41:38 GMT+0200 (W. Europe Summer Time)"},"2315":{"varMapping":{"__isSmartRef__":true,"id":2316},"source":"function createColorVisualizationList() {\r\n\n var table = this.getTable()\n var minMaxNumbers = this.getMinMaxNumbers(table)\n var listMorph = this.getD3Panel().get('NodeColorFunctionList')\n var oldSelection = listMorph.getSelectedIndexes()[0]\n listMorph.setList(\r\n table.columns.select(function(ea, idx) {\r\n return minMaxNumbers.max[ea]\r\n }).collect(function(eaName) {\r\n return {\r\n string: eaName + \" \"+ minMaxNumbers.min[eaName] +\" - \" + minMaxNumbers.max[eaName],\r\n value: function(d) {\n if (!d || !d.row) \n return Color.white\n var n = new Number(d.row[eaName])\r\n // span across value space\r\n return Color.hsb(0,0, 0.2 + ((n - minMaxNumbers.min[eaName]) / (minMaxNumbers.max[eaName] - minMaxNumbers.min[eaName]))*0.8)\r\n }\r\n }\r\n }).concat(\n table.columns.select(function(ea, idx) {\n return !minMaxNumbers.max[ea]\n }).collect(function(eaName) {\n var colorf = d3.scale.category20c();\n return {\n string: eaName ,\n value: function(d) {\n if (!d || !d.row || !d.row[eaName]) \n return Color.white\n return colorf(d.row[eaName])\n }\n }\n })\n ))\r\n listMorph.selectAt(oldSelection);\n}","funcProperties":{"__isSmartRef__":true,"id":2317},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2316":{"this":{"__isSmartRef__":true,"id":2155}},"2317":{"timestamp":{"__isSmartRef__":true,"id":2318},"user":"jenslincke","tags":[]},"2318":{"isSerializedDate":true,"string":"Sun Aug 10 2014 14:48:29 GMT+0200 (W. Europe Summer Time)"},"2319":{"varMapping":{"__isSmartRef__":true,"id":2320},"source":"function createSizeVisualizationList() {\r\n var table = this.getTable()\r\n var minMaxNumbers = this.getMinMaxNumbers(table)\n var maxNodeSize = 50\n var listMorph = this.getD3Panel().get('NodeSizeFunctionList')\n var oldSelection = listMorph.getSelectedIndexes()[0]\n var panel = this.getD3Panel()\n listMorph.setList(\r\n table.columns.select(function(ea, idx) {\r\n return minMaxNumbers.max[ea]\r\n }).collect(function(eaName) {\r\n return {\r\n string: eaName +\" \" + minMaxNumbers.max[eaName],\r\n value: function(d) {\r\n if (!d || !d.row) return 0\n var n = new Number(d.row[eaName])\n // in a treemap the size is already mapped to the area\n if (panel.getVisualization() == \"TreeMap\") \r\n return n\n // return n * 0.01\n return Math.sqrt(n) / Math.sqrt(minMaxNumbers.max[eaName]) * maxNodeSize \n }\r\n }\r\n }))\r\n listMorph.selectAt(oldSelection)\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":2321},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2320":{"this":{"__isSmartRef__":true,"id":2155}},"2321":{"timestamp":{"__isSmartRef__":true,"id":2322},"user":"jenslincke","tags":[]},"2322":{"isSerializedDate":true,"string":"Wed Oct 02 2013 17:41:45 GMT+0200 (W. Europe Summer Time)"},"2323":{"varMapping":{"__isSmartRef__":true,"id":2324},"source":"function createTextSizeVisualizationList() {\r\n var table = this.getTable()\r\n var minMaxNumbers = this.getMinMaxNumbers(table)\n var maxTextSize = 40\n var listMorph = this.getD3Panel().get('TextSizeFunctionList')\n var oldSelection = listMorph.getSelectedIndexes()[0]\n listMorph.setList(\r\n table.columns.select(function(ea, idx) {\r\n return minMaxNumbers.max[ea]\r\n }).collect(function(eaName) {\r\n return {\r\n string: eaName +\" \" + minMaxNumbers.max[eaName],\r\n value: function(d) {\r\n if (!d || !d.row) return 10\n var n = new Number(d.row[eaName])\r\n return 4 + (Math.sqrt(n) / Math.sqrt(minMaxNumbers.max[eaName]) * maxTextSize)\r\n }\r\n }\r\n }))\r\n listMorph.selectAt(oldSelection)\n\n}","funcProperties":{"__isSmartRef__":true,"id":2325},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2324":{"this":{"__isSmartRef__":true,"id":2155}},"2325":{"timestamp":{"__isSmartRef__":true,"id":2326},"user":"jenslincke","tags":[]},"2326":{"isSerializedDate":true,"string":"Wed Oct 02 2013 16:28:43 GMT+0200 (W. Europe Summer Time)"},"2327":{"varMapping":{"__isSmartRef__":true,"id":2328},"source":"function findIdIndexAndUpdatePabel() {\r\n var d3Panel = this.getD3Panel()\r\n var columnNames = this.lastResult.columns\r\n var idIdx = columnNames.indexOf('id')\r\n if (idIdx == -1) {\r\n d3Panel.get('NodeColorFunctionList').setList([\r\n {string: \"Can not find nodes in table without id\",\r\n value: function() { return 0}}])\r\n return idIdx \r\n }\r\n return idIdx\r\n}","funcProperties":{"__isSmartRef__":true,"id":2329},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2328":{"this":{"__isSmartRef__":true,"id":2155}},"2329":{"timestamp":{"__isSmartRef__":true,"id":2330},"user":"jenslincke","tags":[]},"2330":{"isSerializedDate":true,"string":"Tue Sep 17 2013 21:50:32 GMT+0200 (W. Europe Summer Time)"},"2331":{"varMapping":{"__isSmartRef__":true,"id":2332},"source":"function getMinMaxNumbers(tableObj ) {\n var analysisPane = this.get(\"AnalysisPane\");\r\n var maxNumbers = analysisPane.maxNumbersInTable(tableObj.columns\r, tableObj.data\r)\r\n var minNumbers = analysisPane.minNumbersInTable(tableObj.columns\r, tableObj.data\r)\r\n return {min: minNumbers, max: maxNumbers}\n}","funcProperties":{"__isSmartRef__":true,"id":2333},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2332":{"this":{"__isSmartRef__":true,"id":2155}},"2333":{"timestamp":{"__isSmartRef__":true,"id":2334},"user":"jenslincke","tags":[]},"2334":{"isSerializedDate":true,"string":"Tue Sep 17 2013 22:00:53 GMT+0200 (W. Europe Summer Time)"},"2335":{"varMapping":{"__isSmartRef__":true,"id":2336},"source":"function printTree(tree, depth) {\r\n if(!tree) return \"undefined\"\n var s = Strings.indent((tree.name || \"x\") + \" \"+ tree.id, \" \", depth )+ \"\\n\"\n if (!tree.children) return s\n if (!depth) depth = 0;\r\n return s + tree.children.collect(function(ea) {return this.printTree(ea, depth + 1) }, this).join(\"\")\r\n \r\n}","funcProperties":{"__isSmartRef__":true,"id":2337},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2336":{"this":{"__isSmartRef__":true,"id":2155}},"2337":{"timestamp":{"__isSmartRef__":true,"id":2338},"user":"jenslincke","tags":["private"]},"2338":{"isSerializedDate":true,"string":"Tue Sep 17 2013 22:21:24 GMT+0200 (W. Europe Summer Time)"},"2339":{"varMapping":{"__isSmartRef__":true,"id":2340},"source":"function log(s) {\n this.get(\"AnalysisPane\").log(s)\n}","funcProperties":{"__isSmartRef__":true,"id":2341},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2340":{"this":{"__isSmartRef__":true,"id":2155}},"2341":{"timestamp":{"__isSmartRef__":true,"id":2342},"user":"jenslincke","tags":[]},"2342":{"isSerializedDate":true,"string":"Tue Sep 17 2013 22:24:33 GMT+0200 (W. Europe Summer Time)"},"2343":{"varMapping":{"__isSmartRef__":true,"id":2344},"source":"function treeEnsurePath(obj, path) {\r\n \r\n if (path.length == 0) \r\n return obj\r\n var name = path.pop()\r\n // alertOK(\"obj \" + JSON.serialize(obj))\r\n var next = obj.children.detect(function(ea) {\r\n return ea.name == name})\r\n if (!next) {\r\n next = { name: name, children: []}\r\n obj.children.push(next)\r\n }\r\n return this.treeEnsurePath(next, path)\r\n}","funcProperties":{"__isSmartRef__":true,"id":2345},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2344":{"this":{"__isSmartRef__":true,"id":2155}},"2345":{"timestamp":{"__isSmartRef__":true,"id":2346},"user":"jenslincke","tags":["visualize"]},"2346":{"isSerializedDate":true,"string":"Tue Sep 24 2013 19:10:49 GMT+0200 (W. Europe Summer Time)"},"2347":{"varMapping":{"__isSmartRef__":true,"id":2348},"source":"function treeDetectRealRoot(root) {\r\n while(root.children && root.children.length == 1){\r\n root = root.children[0]\r\n }\r\n return root\r\n}","funcProperties":{"__isSmartRef__":true,"id":2349},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2348":{"this":{"__isSmartRef__":true,"id":2155}},"2349":{"timestamp":{"__isSmartRef__":true,"id":2350},"user":"jenslincke","tags":["visualize"]},"2350":{"isSerializedDate":true,"string":"Tue Sep 24 2013 19:49:46 GMT+0200 (W. Europe Summer Time)"},"2351":{"varMapping":{"__isSmartRef__":true,"id":2352},"source":"function updateTreeSize(root) {\n var func = this.getD3Panel().get('NodeSizeFunctionList').selection\n var calcSize = function(tree) {\n tree.size = tree.children.inject(0, function(sum, ea) {\n return sum + calcSize(ea)\n })\n if (tree.row) tree.size += func(tree)\n return tree.size\n }\n calcSize(root)\n\n}","funcProperties":{"__isSmartRef__":true,"id":2353},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2352":{"this":{"__isSmartRef__":true,"id":2155}},"2353":{"timestamp":{"__isSmartRef__":true,"id":2354},"user":"jenslincke","tags":[]},"2354":{"isSerializedDate":true,"string":"Wed Oct 02 2013 15:39:36 GMT+0200 (W. Europe Summer Time)"},"2355":{"varMapping":{"__isSmartRef__":true,"id":2356},"source":"function sortObjectsIntoGraph(objects) {\r\n var data = {nodes: [], links: [], objects: objects}\n var objectsById = {}\n var index = 0;\n\n // nodes first, and generate indices...\n var ensureNode = function(ea) {\n if (objectsById[ea.id]) return objectsById[ea.id]\n var node= {name: ea.name, id: ea.id, parentId: ea.parentId, row: ea, index: index++} // DEBUG: + \"_\" + ea.id\n objectsById[ea.id] = node;\n data.nodes[node.index] = node\n return node\n }\n objects.each(function(ea) {ensureNode(ea)})\n // links\n objects.each(function(ea) {\n var source = objectsById[ea.parentId]\n // if (!source) source = ensureNode({name: \"TMP\", id: ea.parentId})\n // alert(\"link \" + ea.id + \" <-> \" + ea.parentId + \"( \" +source + \")\")\n\n var target = objectsById[ea.id]\n if (source && target) {\n var link = {source: source.index, target: target.index, \n weight: ea.invDistance * 0.1}\n data.links.push(link)\n // alert(\"link \" + JSON.serialize(link))\n }\n })\n return data\n}","funcProperties":{"__isSmartRef__":true,"id":2357},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2356":{"this":{"__isSmartRef__":true,"id":2155}},"2357":{"timestamp":{"__isSmartRef__":true,"id":2358},"user":"jenslincke","tags":["private"]},"2358":{"isSerializedDate":true,"string":"Wed Aug 13 2014 20:57:35 GMT+0200 (W. Europe Summer Time)"},"2359":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2360},"eventHandler":{"__isSmartRef__":true,"id":2364},"_ClipMode":"visible","derivationIds":["8100ADCF-FE1A-49F0-B1B4-A17CDDC48D3E","B1D7AD26-09B6-4325-A053-3E10AB7018AE","A4B82AB2-EC55-492C-A3DD-9E2C5E0A0A56","556C3E86-9C5A-4E67-B2E9-C17BA3318D05","62EF868D-D8A2-46DF-B229-5130A4F18F54","4FF9C1EF-28CD-4073-87CD-0D6C8F2160B8","34EEFE99-8F89-4D3F-8DCA-24F7E068934F","3D0D1ED7-BE4D-4311-B27D-005399ED4CA5","26F71F39-E320-420C-969E-93F9F3A8F209","DDE7ED53-8F82-4551-B699-8ABB3E43126C","D3B5DDA2-D010-45EC-AE3B-99ADFB6D5E7F","55F3571A-8B86-4725-8C83-6AC553DA050E","1A7717FF-16F8-474A-B196-AE0E18639BB7","01F690E3-2593-402A-BE44-B2B965144543","D200DDA0-60B7-4BEC-B2B3-F34B5459C884"],"id":"E433F1CC-65E1-4ED0-88F9-B8C1F1F8C6E6","__layered_droppingEnabled__":true,"halosEnabled":true,"dragStartPoint":null,"originalTargetExtent":null,"showsHalos":false,"controlPoints":[{"__isSmartRef__":true,"id":2365},{"__isSmartRef__":true,"id":2366},{"__isSmartRef__":true,"id":2367}],"name":"Path","owner":{"__isSmartRef__":true,"id":1},"_Rotation":0,"_Scale":1,"prevScroll":[0,0],"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2368},"__LivelyClassName__":"lively.morphic.Path","__SourceModuleName__":"Global.lively.morphic.AdditionalMorphs","_Position":"lively.pt(1387.1,2663.7)","distanceToDragEvent":"lively.pt(41.9,-15.6)"},"2360":{"dontChangeShape":false,"cachedVertices":null,"_PathElements":[{"__isSmartRef__":true,"id":2361},{"__isSmartRef__":true,"id":2362},{"__isSmartRef__":true,"id":2363}],"_BorderWidth":0,"_BorderColor":null,"_NodeClass":["Morph","Path"],"__serializedExpressions__":["_Position","_Extent","_Padding","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Path","__SourceModuleName__":"Global.lively.morphic.PathShapes","_Position":"lively.pt(-1.0,-1.0)","_Extent":"lively.pt(15.0,15.0)","_Padding":"lively.rect(0,0,0,0)","_Fill":"Color.rgb(204,204,204)"},"2361":{"isAbsolute":true,"x":14,"y":0,"__LivelyClassName__":"lively.morphic.Shapes.MoveTo","__SourceModuleName__":"Global.lively.morphic.PathShapes"},"2362":{"isAbsolute":true,"x":14,"y":14,"__LivelyClassName__":"lively.morphic.Shapes.LineTo","__SourceModuleName__":"Global.lively.morphic.PathShapes"},"2363":{"isAbsolute":true,"x":0,"y":14,"__LivelyClassName__":"lively.morphic.Shapes.LineTo","__SourceModuleName__":"Global.lively.morphic.PathShapes"},"2364":{"morph":{"__isSmartRef__":true,"id":2359},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2365":{"morph":{"__isSmartRef__":true,"id":2359},"index":0,"__LivelyClassName__":"lively.morphic.ControlPoint","__SourceModuleName__":"Global.lively.morphic.AdditionalMorphs"},"2366":{"morph":{"__isSmartRef__":true,"id":2359},"index":1,"__LivelyClassName__":"lively.morphic.ControlPoint","__SourceModuleName__":"Global.lively.morphic.AdditionalMorphs"},"2367":{"morph":{"__isSmartRef__":true,"id":2359},"index":2,"__LivelyClassName__":"lively.morphic.ControlPoint","__SourceModuleName__":"Global.lively.morphic.AdditionalMorphs"},"2368":{"onDragStart":{"__isSmartRef__":true,"id":2369},"onDrag":{"__isSmartRef__":true,"id":2376},"onDragEnd":{"__isSmartRef__":true,"id":2383}},"2369":{"varMapping":{"__isSmartRef__":true,"id":2370},"source":"function onDragStart(evt) {\n this.dragStartPoint = evt.mousePoint;\n this.originalTargetExtent = this.owner.getExtent();\n }","funcProperties":{"__isSmartRef__":true,"id":2375},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2370":{"this":{"__isSmartRef__":true,"id":2359},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2371}},"2371":{"$super":{"__isSmartRef__":true,"id":2372}},"2372":{"varMapping":{"__isSmartRef__":true,"id":2373},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2374},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2373":{"obj":{"__isSmartRef__":true,"id":2359},"name":"onDragStart"},"2374":{},"2375":{},"2376":{"varMapping":{"__isSmartRef__":true,"id":2377},"source":"function onDrag(evt) {\n var moveDelta = evt.mousePoint.subPt(this.dragStartPoint)\n if (evt.isShiftDown()) {\n var maxDelta = Math.max(moveDelta.x, moveDelta.y);\n\t moveDelta = pt(maxDelta, maxDelta);\n };\n this.owner.setExtent(this.originalTargetExtent.addPt(moveDelta));\n this.align(this.bounds().bottomRight(), this.owner.getExtent());\n }","funcProperties":{"__isSmartRef__":true,"id":2382},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2377":{"this":{"__isSmartRef__":true,"id":2359},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2378}},"2378":{"$super":{"__isSmartRef__":true,"id":2379}},"2379":{"varMapping":{"__isSmartRef__":true,"id":2380},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2381},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2380":{"obj":{"__isSmartRef__":true,"id":2359},"name":"onDrag"},"2381":{},"2382":{},"2383":{"varMapping":{"__isSmartRef__":true,"id":2384},"source":"function onDragEnd(evt) {\n this.dragStartPoint = null;\n this.originalTargetExtent = null;\n }","funcProperties":{"__isSmartRef__":true,"id":2389},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2384":{"this":{"__isSmartRef__":true,"id":2359},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2385}},"2385":{"$super":{"__isSmartRef__":true,"id":2386}},"2386":{"varMapping":{"__isSmartRef__":true,"id":2387},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2388},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2387":{"obj":{"__isSmartRef__":true,"id":2359},"name":"onDragEnd"},"2388":{},"2389":{},"2390":{"submorphs":[{"__isSmartRef__":true,"id":2391},{"__isSmartRef__":true,"id":2400},{"__isSmartRef__":true,"id":2434},{"__isSmartRef__":true,"id":2452},{"__isSmartRef__":true,"id":2538},{"__isSmartRef__":true,"id":2560},{"__isSmartRef__":true,"id":2569},{"__isSmartRef__":true,"id":2590},{"__isSmartRef__":true,"id":2611},{"__isSmartRef__":true,"id":2632},{"__isSmartRef__":true,"id":2653},{"__isSmartRef__":true,"id":2672},{"__isSmartRef__":true,"id":2695},{"__isSmartRef__":true,"id":2742},{"__isSmartRef__":true,"id":2763},{"__isSmartRef__":true,"id":2784},{"__isSmartRef__":true,"id":2869},{"__isSmartRef__":true,"id":2795},{"__isSmartRef__":true,"id":2928},{"__isSmartRef__":true,"id":2463},{"__isSmartRef__":true,"id":2951}],"scripts":[],"id":"8442179E-21F7-4766-AD2E-0F0F3F81462E","shape":{"__isSmartRef__":true,"id":3190},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"DerivationNeo4JGraphPane","partsBinMetaInfo":{"__isSmartRef__":true,"id":3191},"eventHandler":{"__isSmartRef__":true,"id":3233},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","F2677A9D-5855-4DF2-B248-94545B34B762","EF0FC095-2872-4F62-8EE6-B9D6004E156A"],"partTests":{"__isSmartRef__":true,"id":3234},"_ClipMode":"visible","moved":true,"owner":{"__isSmartRef__":true,"id":1},"isBeingDragged":false,"doNotSerialize":["db","rootNode","neoNodes","worldsRootNode","lastNodes","neoLogNode","testObjectRootNode","objectRootNode","lastResult"],"layout":{"__isSmartRef__":true,"id":3257},"prevScroll":[0,0],"partsBinRootNode":{"__isSmartRef__":true,"id":3258},"#startLetters":"getCu","data":{"__isSmartRef__":true,"id":3269},"isCopyMorphRef":true,"queries":[{"__isSmartRef__":true,"id":3270},{"__isSmartRef__":true,"id":3271},{"__isSmartRef__":true,"id":3272},{"__isSmartRef__":true,"id":3273},{"__isSmartRef__":true,"id":3274},{"__isSmartRef__":true,"id":3275},{"__isSmartRef__":true,"id":3276},{"__isSmartRef__":true,"id":3277},{"__isSmartRef__":true,"id":3278},{"__isSmartRef__":true,"id":3279},{"__isSmartRef__":true,"id":3280},{"__isSmartRef__":true,"id":3281},{"__isSmartRef__":true,"id":3282},{"__isSmartRef__":true,"id":3283},{"__isSmartRef__":true,"id":3284},{"__isSmartRef__":true,"id":3285},{"__isSmartRef__":true,"id":3286},{"__isSmartRef__":true,"id":3287},{"__isSmartRef__":true,"id":3288},{"__isSmartRef__":true,"id":3289},{"__isSmartRef__":true,"id":3290},{"__isSmartRef__":true,"id":3291},{"__isSmartRef__":true,"id":3292},{"__isSmartRef__":true,"id":3293},{"__isSmartRef__":true,"id":3294},{"__isSmartRef__":true,"id":3295},{"__isSmartRef__":true,"id":3296},{"__isSmartRef__":true,"id":3297},{"__isSmartRef__":true,"id":3298},{"__isSmartRef__":true,"id":3299},{"__isSmartRef__":true,"id":3300},{"__isSmartRef__":true,"id":3301},{"__isSmartRef__":true,"id":3302},{"__isSmartRef__":true,"id":3303},{"__isSmartRef__":true,"id":3304},{"__isSmartRef__":true,"id":3305},{"__isSmartRef__":true,"id":3306},{"__isSmartRef__":true,"id":3307},{"__isSmartRef__":true,"id":3308},{"__isSmartRef__":true,"id":3309},{"__isSmartRef__":true,"id":3310},{"__isSmartRef__":true,"id":3311},{"__isSmartRef__":true,"id":3312},{"__isSmartRef__":true,"id":3313},{"__isSmartRef__":true,"id":3314},{"__isSmartRef__":true,"id":3315},{"__isSmartRef__":true,"id":3316},{"__isSmartRef__":true,"id":3317},{"__isSmartRef__":true,"id":3318},{"__isSmartRef__":true,"id":3319},{"__isSmartRef__":true,"id":3320},{"__isSmartRef__":true,"id":3321},{"__isSmartRef__":true,"id":3322},{"__isSmartRef__":true,"id":3323},{"__isSmartRef__":true,"id":3324},{"__isSmartRef__":true,"id":3325},{"__isSmartRef__":true,"id":3326},{"__isSmartRef__":true,"id":3327},{"__isSmartRef__":true,"id":3328},{"__isSmartRef__":true,"id":3329},{"__isSmartRef__":true,"id":3330},{"__isSmartRef__":true,"id":3331},{"__isSmartRef__":true,"id":3332},{"__isSmartRef__":true,"id":3333},{"__isSmartRef__":true,"id":3334},{"__isSmartRef__":true,"id":3335},{"__isSmartRef__":true,"id":3336},{"__isSmartRef__":true,"id":3337},{"__isSmartRef__":true,"id":3338},{"__isSmartRef__":true,"id":3339},{"__isSmartRef__":true,"id":3340},{"__isSmartRef__":true,"id":3341},{"__isSmartRef__":true,"id":3342},{"__isSmartRef__":true,"id":3343},{"__isSmartRef__":true,"id":3344},{"__isSmartRef__":true,"id":3345},{"__isSmartRef__":true,"id":3346},{"__isSmartRef__":true,"id":3347},{"__isSmartRef__":true,"id":3348},{"__isSmartRef__":true,"id":3349},{"__isSmartRef__":true,"id":3350},{"__isSmartRef__":true,"id":3351},{"__isSmartRef__":true,"id":3352},{"__isSmartRef__":true,"id":3353},{"__isSmartRef__":true,"id":3354},{"__isSmartRef__":true,"id":3355},{"__isSmartRef__":true,"id":3356},{"__isSmartRef__":true,"id":3357},{"__isSmartRef__":true,"id":3358},{"__isSmartRef__":true,"id":3359},{"__isSmartRef__":true,"id":3360},{"__isSmartRef__":true,"id":3361},{"__isSmartRef__":true,"id":3362},{"__isSmartRef__":true,"id":3363},{"__isSmartRef__":true,"id":3364},{"__isSmartRef__":true,"id":3365},{"__isSmartRef__":true,"id":3366},{"__isSmartRef__":true,"id":3367},{"__isSmartRef__":true,"id":3368},{"__isSmartRef__":true,"id":3369},{"__isSmartRef__":true,"id":3370},{"__isSmartRef__":true,"id":3371},{"__isSmartRef__":true,"id":3372},{"__isSmartRef__":true,"id":3373},{"__isSmartRef__":true,"id":3374},{"__isSmartRef__":true,"id":3375},{"__isSmartRef__":true,"id":3376},{"__isSmartRef__":true,"id":3377},{"__isSmartRef__":true,"id":3378},{"__isSmartRef__":true,"id":3379},{"__isSmartRef__":true,"id":3380},{"__isSmartRef__":true,"id":3381},{"__isSmartRef__":true,"id":3382},{"__isSmartRef__":true,"id":3383},{"__isSmartRef__":true,"id":3384},{"__isSmartRef__":true,"id":3385},{"__isSmartRef__":true,"id":3386},{"__isSmartRef__":true,"id":3387},{"__isSmartRef__":true,"id":3388},{"__isSmartRef__":true,"id":3389},{"__isSmartRef__":true,"id":3390},{"__isSmartRef__":true,"id":3391},{"__isSmartRef__":true,"id":3392},{"__isSmartRef__":true,"id":3393},{"__isSmartRef__":true,"id":3394},{"__isSmartRef__":true,"id":3395},{"__isSmartRef__":true,"id":3396},{"__isSmartRef__":true,"id":3397},{"__isSmartRef__":true,"id":3398},{"__isSmartRef__":true,"id":3399},{"__isSmartRef__":true,"id":3400},{"__isSmartRef__":true,"id":3401},{"__isSmartRef__":true,"id":3402},{"__isSmartRef__":true,"id":3403},{"__isSmartRef__":true,"id":3404},{"__isSmartRef__":true,"id":3405},{"__isSmartRef__":true,"id":3406},{"__isSmartRef__":true,"id":3407},{"__isSmartRef__":true,"id":3408},{"__isSmartRef__":true,"id":3409},{"__isSmartRef__":true,"id":3410},{"__isSmartRef__":true,"id":3411},{"__isSmartRef__":true,"id":3412},{"__isSmartRef__":true,"id":3413},{"__isSmartRef__":true,"id":3414},{"__isSmartRef__":true,"id":3415}],"queryStartTime":1502803956446,"grabbingEnabled":false,"queryChanged":false,"knownObjects":{"__isSmartRef__":true,"id":3416},"knownNodeIds":{"__isSmartRef__":true,"id":3417},"visualizationEnabled":false,"_layer_object_id":19,"loggingEnabled":true,"rootId":"1","objectRootNodeID":"2","testObjectRootNodeID":"3","neoLogNodeID":"4","morphRefId":1,"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3422},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(5.9,10.7)","distanceToDragEvent":"lively.pt(949.0,-17.8)"},"2391":{"submorphs":[],"scripts":[],"id":"0426814C-526C-4B05-8328-6EB0F97058FF","shape":{"__isSmartRef__":true,"id":2392},"__layered_droppingEnabled__":true,"halosEnabled":true,"itemList":["AllScriptsThatCreateLayers","AllScriptsThatGlobalLayers","AllScriptsThatGlobalScopeLayers","AllScriptsThatStructuralLayers","AllScriptsThatWithLayers","AnalyseScripts","CountClasses","CountParts","CountScripts","CountScriptsByName","CountScriptsBySource","CountWorlds","CountWorldsErrors","CountWorldsSize","ExploreReferences","FindObjects","FindObjectsTextMorphs","FindParts","FindPartsInParts","FindTextMorphs","ListClasses","ListParts","ListPath","LivelyGraphWalking","PrintObjectsDetailsWithScripts","ShowDerivationHistory","ShowMorphs","ShowObject","ShowObjectWithGarbage","ShowWorld"],"selectedLineNo":10,"showsHalos":false,"name":"QueryList","partsBinMetaInfo":{"__isSmartRef__":true,"id":2393},"_ClipMode":"auto","eventHandler":{"__isSmartRef__":true,"id":2397},"derivationIds":[2860,"30186701-49A1-49AD-A42F-27F425D92029","ADD09343-51ED-44F6-85F3-257C9A52C897"],"isBeingDragged":false,"changeTriggered":true,"grabbingEnabled":false,"_FontSize":10,"moved":true,"owner":{"__isSmartRef__":true,"id":2390},"attributeConnections":[{"__isSmartRef__":true,"id":2398}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"prevScroll":[0,0],"#startLetters":"sel","_Rotation":0,"_Scale":1,"selection":"CountScriptsBySource","__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(207.5,28.0)","distanceToDragEvent":"lively.pt(142.4,-21.0)"},"2392":{"_BorderWidth":0,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(227.7,229.0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(243,243,243)","_Padding":"lively.rect(0,0,0,0)"},"2393":{"partsSpaceName":"PartsBin/Inputs","migrationLevel":4,"partName":"List","comment":"a list morph","changes":[{"__isSmartRef__":true,"id":2394}],"lastModifiedDate":{"__isSmartRef__":true,"id":2396},"revisionOnLoad":149013,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2394":{"date":{"__isSmartRef__":true,"id":2395},"author":"undefined","message":"Click on scrollbar does not grab list","id":"16AABF98-2E7D-4875-9E66-CF86EB74AF93"},"2395":{"isSerializedDate":true,"string":"Thu Mar 29 2012 14:39:24 GMT+0200 (W. Europe Summer Time)"},"2396":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"2397":{"morph":{"__isSmartRef__":true,"id":2391},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2398":{"sourceObj":{"__isSmartRef__":true,"id":2391},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":2390},"targetMethodName":"selectQuery","varMapping":{"__isSmartRef__":true,"id":2399},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2399":{"source":{"__isSmartRef__":true,"id":2391},"target":{"__isSmartRef__":true,"id":2390}},"2400":{"submorphs":[{"__isSmartRef__":true,"id":2401}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2406},"eventHandler":{"__isSmartRef__":true,"id":2407},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"09E56931-72DB-4955-968B-69A2B02122AA","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":2401},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":2408},{"__isSmartRef__":true,"id":2410}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button10","partsBinMetaInfo":{"__isSmartRef__":true,"id":2412},"pinSpecs":[{"__isSmartRef__":true,"id":2428}],"owner":{"__isSmartRef__":true,"id":2390},"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2429},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(556.0,271.0)","distanceToDragEvent":"lively.pt(43.4,-17.2)"},"2401":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2402},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2403}],"eventHandler":{"__isSmartRef__":true,"id":2405},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"30316192-32F8-490E-8985-1D3F6CA31A0C","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2400},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"2402":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(70.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"2403":{"style":{"__isSmartRef__":true,"id":2404},"chunkOwner":{"__isSmartRef__":true,"id":2401},"_id":"_10249","storedString":"save","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2404":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2405":{"morph":{"__isSmartRef__":true,"id":2401},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2406":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(70.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"2407":{"morph":{"__isSmartRef__":true,"id":2400},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2408":{"sourceObj":{"__isSmartRef__":true,"id":2400},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2400},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":2409},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2409":{"source":{"__isSmartRef__":true,"id":2400},"target":{"__isSmartRef__":true,"id":2400}},"2410":{"sourceObj":{"__isSmartRef__":true,"id":2400},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2390},"targetMethodName":"saveCurrentQuery","varMapping":{"__isSmartRef__":true,"id":2411},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2411":{"source":{"__isSmartRef__":true,"id":2400},"target":{"__isSmartRef__":true,"id":2390}},"2412":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":2413},{"__isSmartRef__":true,"id":2415},{"__isSmartRef__":true,"id":2417},{"__isSmartRef__":true,"id":2419},{"__isSmartRef__":true,"id":2421},{"__isSmartRef__":true,"id":2423},{"__isSmartRef__":true,"id":2425}],"migrationLevel":7,"lastModifiedDate":{"__isSmartRef__":true,"id":2427},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2413":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","date":{"__isSmartRef__":true,"id":2414}},"2414":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:15:42 GMT+0100 (W. Europe Standard Time)"},"2415":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","date":{"__isSmartRef__":true,"id":2416}},"2416":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:53:16 GMT+0100 (W. Europe Standard Time)"},"2417":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","date":{"__isSmartRef__":true,"id":2418}},"2418":{"isSerializedDate":true,"string":"Wed May 01 2013 05:34:25 GMT+0200 (W. Europe Summer Time)"},"2419":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","date":{"__isSmartRef__":true,"id":2420}},"2420":{"isSerializedDate":true,"string":"Wed May 01 2013 05:35:59 GMT+0200 (W. Europe Summer Time)"},"2421":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","date":{"__isSmartRef__":true,"id":2422}},"2422":{"isSerializedDate":true,"string":"Wed May 01 2013 05:36:30 GMT+0200 (W. Europe Summer Time)"},"2423":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","date":{"__isSmartRef__":true,"id":2424}},"2424":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:22:38 GMT+0200 (W. Europe Summer Time)"},"2425":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","date":{"__isSmartRef__":true,"id":2426}},"2426":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:50 GMT+0200 (W. Europe Summer Time)"},"2427":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:29 GMT+0200 (W. Europe Summer Time)"},"2428":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"2429":{"doAction":{"__isSmartRef__":true,"id":2430}},"2430":{"varMapping":{"__isSmartRef__":true,"id":2431},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":2432},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2431":{"this":{"__isSmartRef__":true,"id":2400}},"2432":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":2433}},"2433":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"2434":{"submorphs":[{"__isSmartRef__":true,"id":2435}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2440},"eventHandler":{"__isSmartRef__":true,"id":2441},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"5ECE974A-9E1E-4168-B9E0-506FC9C54C54","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":2435},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":2442},{"__isSmartRef__":true,"id":2444}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button13","partsBinMetaInfo":{"__isSmartRef__":true,"id":2412},"pinSpecs":[{"__isSmartRef__":true,"id":2446}],"owner":{"__isSmartRef__":true,"id":2390},"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2447},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(632.0,272.0)","distanceToDragEvent":"lively.pt(35.4,-18.2)"},"2435":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2436},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2437}],"eventHandler":{"__isSmartRef__":true,"id":2439},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"B34B466E-B381-4E5F-959F-C02CC61DBF46","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2434},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"2436":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(60.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"2437":{"style":{"__isSmartRef__":true,"id":2438},"chunkOwner":{"__isSmartRef__":true,"id":2435},"_id":"_10251","storedString":"delete","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2438":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2439":{"morph":{"__isSmartRef__":true,"id":2435},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2440":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(60.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"2441":{"morph":{"__isSmartRef__":true,"id":2434},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2442":{"sourceObj":{"__isSmartRef__":true,"id":2434},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2434},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":2443},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2443":{"source":{"__isSmartRef__":true,"id":2434},"target":{"__isSmartRef__":true,"id":2434}},"2444":{"sourceObj":{"__isSmartRef__":true,"id":2434},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2390},"targetMethodName":"deleteQuery","varMapping":{"__isSmartRef__":true,"id":2445},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2445":{"source":{"__isSmartRef__":true,"id":2434},"target":{"__isSmartRef__":true,"id":2390}},"2446":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"2447":{"doAction":{"__isSmartRef__":true,"id":2448}},"2448":{"varMapping":{"__isSmartRef__":true,"id":2449},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":2450},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2449":{"this":{"__isSmartRef__":true,"id":2434}},"2450":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":2451}},"2451":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"2452":{"submorphs":[{"__isSmartRef__":true,"id":2453}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2458},"eventHandler":{"__isSmartRef__":true,"id":2459},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"737211FB-62D6-4557-87E3-3C96634E3D4F","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":2453},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":2460},{"__isSmartRef__":true,"id":2462}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button14","partsBinMetaInfo":{"__isSmartRef__":true,"id":2515},"pinSpecs":[{"__isSmartRef__":true,"id":2531}],"owner":{"__isSmartRef__":true,"id":2390},"prevScroll":[0,0],"layout":{"__isSmartRef__":true,"id":2532},"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2533},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(330.0,261.9)","distanceToDragEvent":"lively.pt(69.6,-19.7)"},"2453":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2454},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2455}],"eventHandler":{"__isSmartRef__":true,"id":2457},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"35706B66-43C4-4DB1-BDDA-0A4B322177BF","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2452},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"2454":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(106.2,31.1)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"2455":{"style":{"__isSmartRef__":true,"id":2456},"chunkOwner":{"__isSmartRef__":true,"id":2453},"_id":"_10253","storedString":"query!","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2456":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2457":{"morph":{"__isSmartRef__":true,"id":2453},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2458":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"_Opacity":1,"_BorderStyle":"solid","__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(106.2,31.1)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)","_Fill":"Color.rgb(16,191,49)"},"2459":{"morph":{"__isSmartRef__":true,"id":2452},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2460":{"sourceObj":{"__isSmartRef__":true,"id":2452},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2452},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":2461},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2461":{"source":{"__isSmartRef__":true,"id":2452},"target":{"__isSmartRef__":true,"id":2452}},"2462":{"sourceObj":{"__isSmartRef__":true,"id":2452},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2463},"targetMethodName":"doSave","varMapping":{"__isSmartRef__":true,"id":2514},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2463":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2464},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2465}],"eventHandler":{"__isSmartRef__":true,"id":2467},"_ClipMode":"auto","derivationIds":["723C17F0-4683-49B0-A6CD-B3C238725677"],"id":"65D2B11D-F4B8-4F5A-A06A-B054322DF6AF","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":true,"_HandStyle":null,"allowInput":true,"_FontFamily":"Monaco,monospace","_FontSize":11,"evalEnabled":false,"layout":{"__isSmartRef__":true,"id":2468},"syntaxHighlightingWhileTyping":false,"attributeConnections":[{"__isSmartRef__":true,"id":2469},{"__isSmartRef__":true,"id":2471},{"__isSmartRef__":true,"id":2473},{"__isSmartRef__":true,"id":2475}],"doNotSerialize":["$$savedTextString","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","$$textString","parseErrors"],"doNotCopyProperties":["$$savedTextString","$$textString"],"accessibleInInactiveWindow":true,"_lastSyntaxHighlightTime":100,"showsHalos":false,"charsReplaced":"/cop.create.*/","lastFindLoc":280,"isBeingDragged":false,"name":"CypherQuery","owner":{"__isSmartRef__":true,"id":2390},"prevScroll":[0,0],"doitContext":{"__isSmartRef__":true,"id":2390},"draggingEnabled":false,"#startLetters":"","lastSearchString":"filter","lastSearchIndex":0,"searchHighlights":[],"_Align":"left","undoSelectionRange":[202,202],"savedTextString":"rows = []\n\n\n// nosource nodes are error nodes... that were added because of \"depth\" limit reached \n// g.idx(\"LivelyScripts\")[[script: 'all']].collect{it}.groupBy{it.source ?: \"nosource\"}[\"nosource\"][10]\n\ng.idx(\"LivelyScripts\")[[script: 'all']].collect{it}.groupBy{it.source ?: \"nosource\"}.each{ k, group ->\n script = group[0]\n rows.push([ name: script.name, func: truncate(k.replaceAll(/\\n.*/,\"\"), 100), count: group.size()]) \n}\n\nrowsToData(rows,null)\n\n","_Rotation":0,"_Scale":1,"__serializedExpressions__":["_TextColor","_Position","distanceToDragEvent"],"textString":"rows = []\n\n\n// nosource nodes are error nodes... that were added because of \"depth\" limit reached \n// g.idx(\"LivelyScripts\")[[script: 'all']].collect{it}.groupBy{it.source ?: \"nosource\"}[\"nosource\"][10]\n\ng.idx(\"LivelyScripts\")[[script: 'all']].collect{it}.groupBy{it.source ?: \"nosource\"}.each{ k, group ->\n script = group[0]\n rows.push([ name: script.name, func: truncate(k.replaceAll(/\\n.*/,\"\"), 100), count: group.size()]) \n}\n\nrowsToData(rows,null)\n\n","previousSelection":[35,35],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2477},"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(12.6,324.7)","distanceToDragEvent":"lively.pt(938.8,-12.9)"},"2464":{"_BorderWidth":1,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1353.2,447.6)","_Padding":"lively.rect(40,0,0,0)","_BorderColor":"Color.rgb(95,94,95)","_Fill":"Color.rgb(243,243,243)"},"2465":{"style":{"__isSmartRef__":true,"id":2466},"chunkOwner":{"__isSmartRef__":true,"id":2463},"_id":"_1153","storedString":"rows = []\n\n\n// nosource nodes are error nodes... that were added because of \"depth\" limit reached \n// g.idx(\"LivelyScripts\")[[script: 'all']].collect{it}.groupBy{it.source ?: \"nosource\"}[\"nosource\"][10]\n\ng.idx(\"LivelyScripts\")[[script: 'all']].collect{it}.groupBy{it.source ?: \"nosource\"}.each{ k, group ->\n script = group[0]\n rows.push([ name: script.name, func: truncate(k.replaceAll(/\\n.*/,\"\"), 100), count: group.size()]) \n}\n\nrowsToData(rows,null)\n\n","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2466":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2467":{"morph":{"__isSmartRef__":true,"id":2463},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2468":{"resizeWidth":true,"resizeHeight":true},"2469":{"sourceObj":{"__isSmartRef__":true,"id":2463},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":2390},"targetMethodName":"queryNeoCypher","varMapping":{"__isSmartRef__":true,"id":2470},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2470":{"source":{"__isSmartRef__":true,"id":2463},"target":{"__isSmartRef__":true,"id":2390}},"2471":{"sourceObj":{"__isSmartRef__":true,"id":2463},"sourceAttrName":"textString","targetObj":{"__isSmartRef__":true,"id":2390},"targetMethodName":"onQueryChanged","varMapping":{"__isSmartRef__":true,"id":2472},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2472":{"source":{"__isSmartRef__":true,"id":2463},"target":{"__isSmartRef__":true,"id":2390}},"2473":{"sourceObj":{"__isSmartRef__":true,"id":2463},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":2463},"targetMethodName":"showLines","varMapping":{"__isSmartRef__":true,"id":2474},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2474":{"source":{"__isSmartRef__":true,"id":2463},"target":{"__isSmartRef__":true,"id":2463}},"2475":{"sourceObj":{"__isSmartRef__":true,"id":2463},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":2390},"targetMethodName":"saveCurrentQuery","varMapping":{"__isSmartRef__":true,"id":2476},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2476":{"source":{"__isSmartRef__":true,"id":2463},"target":{"__isSmartRef__":true,"id":2390}},"2477":{"doSave":{"__isSmartRef__":true,"id":2478},"tryBoundEval":{"__isSmartRef__":true,"id":2486},"doListProtocol":{"__isSmartRef__":true,"id":2494},"showLines":{"__isSmartRef__":true,"id":2502},"reset":{"__isSmartRef__":true,"id":2506},"setSource":{"__isSmartRef__":true,"id":2510}},"2478":{"varMapping":{"__isSmartRef__":true,"id":2479},"source":"function doSave(str) {\n $super(str)\n}","funcProperties":{"__isSmartRef__":true,"id":2484},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2479":{"this":{"__isSmartRef__":true,"id":2463},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2480}},"2480":{"$super":{"__isSmartRef__":true,"id":2481}},"2481":{"varMapping":{"__isSmartRef__":true,"id":2482},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2483},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2482":{"obj":{"__isSmartRef__":true,"id":2463},"name":"doSave"},"2483":{},"2484":{"timestamp":{"__isSmartRef__":true,"id":2485},"user":"jenslincke","tags":[]},"2485":{"isSerializedDate":true,"string":"Tue Aug 20 2013 19:00:22 GMT+0200 (W. Europe Summer Time)"},"2486":{"varMapping":{"__isSmartRef__":true,"id":2487},"source":"function tryBoundEval(str) {\n if (this.get(\"QueryLanguage\").textString == \"Gremlin\") {\n var range = this.getSelectionRange()\n var self = this;\n var pane = this.get(\"DerivationNeo4JGraphPane\");\n pane.clearLog()\n pane.queryStartTime = Date.now()\n var params = pane.evalQueryParams(pane.currentQuery())\n params._tryBoundEval = str\n var source = 'new GroovyShell(new Binding(getBinding().getVariables())).evaluate(_tryBoundEval)'\n pane.queryNeoGremlin(source, params, function(result, err) {\n if (err) return pane.log(\"Gremlin Error: \" + err)\n pane.log(\"executed query in \" + (Date.now() - pane.queryStartTime) +\"ms\")\n self.insertAtCursor(\"\" + result, true, false)\n })\n return \"\"\n } else {\n return $super(str)\n }\n}","funcProperties":{"__isSmartRef__":true,"id":2492},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2487":{"this":{"__isSmartRef__":true,"id":2463},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2488}},"2488":{"$super":{"__isSmartRef__":true,"id":2489}},"2489":{"varMapping":{"__isSmartRef__":true,"id":2490},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2491},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2490":{"obj":{"__isSmartRef__":true,"id":2463},"name":"tryBoundEval"},"2491":{},"2492":{"timestamp":{"__isSmartRef__":true,"id":2493},"user":"jenslincke","tags":[]},"2493":{"isSerializedDate":true,"string":"Fri Aug 15 2014 00:54:09 GMT+0200 (W. Europe Summer Time)"},"2494":{"varMapping":{"__isSmartRef__":true,"id":2495},"source":"function doListProtocol() {\n if (this.get(\"QueryLanguage\").textString == \"Gremlin\") {\n var pane = this.get(\"DerivationNeo4JGraphPane\");\n pane.clearLog()\n pane.queryStartTime = Date.now()\n var params = pane.evalQueryParams(pane.currentQuery())\n var self = this;\n\n\n var selection = Strings.removeSurroundingWhitespaces(this.getSelectionOrLineString());\n var idx = selection.lastIndexOf(\".\");\n var startLetters = '';\n if (idx >= 0) {\n startLetters = selection.substring(idx+1);\n selection = selection.slice(0,idx);\n } else {\n startLetters = selection;\n selection = \"this\"\n }\n var globalDefintions = pane.getGlobalGroovyDefinitions()\n \n var str = \"if ('\" + selection +\"' == 'this') this.getBinding().getVariables().collect{k,v -> def _a; try{_a = v.parameterTypes.name.collect{it.replace('java.lang.','')}} catch(e){}; ['Global',k, _a]}; else {def tempFunc = { \"+selection+\"\\n}; def _o=tempFunc(); def _l=tempFunc().getMetaClass().methods.collect({[it.getDeclaringClass().name, it.name, it.getParameterTypes().name.collect{it.replace('java.lang.','')}]});_l.addAll(_o.getMetaClass().getProperties().name.collect{k -> ['Properties',k, null]});_l}\"\n // \n // str = \"def tempFunc = { \"+ selection +\"\\n}; tempFunc().getMetaClass().methods.collect({[it.getDeclaringClass().name, it.name, it.getParameterTypes().name]})\"\n pane.log(str)\n params._tryBoundEval = str\n var source = 'new GroovyShell(new Binding(getBinding().getVariables())).evaluate(_tryBoundEval)'\n pane.queryNeoGremlin(source, params, function(result) {\n pane.log(\"executed query in \" + (Date.now() - pane.queryStartTime) +\"ms\")\n try {\n var methods = JSON.parse(result)\n } catch(e) {\n pane.log(\"Could not parse: \" + result)\n return \n }\n pane.log(methods)\n var p = new lively.morphic.Text.ProtocolLister(self)\n p.getPrototypeChainOf = function() {\n return methods.pluck(0).uniq().collect(function(ea) { \n var c = function() {}\n c.type = ea\n var obj = new c()\n obj.name = ea\n return obj})\n }\n p.funcSignaturesOf = function(proto) {\n return methods.select(function(ea){\n return ea[0] == proto.name\n }).collect(function(ea) {\n if (ea[2] != \"null\") {\n try{var args = ea[2].join(\", \")} catch(e){\"\"}\n return ea[1] + \"(\" + args+ \")\"\n }\n return ea[1]\n // + (ea && ea[2] ? (\"(\" + ea[2].join(\", \")+\")\") : \"\")\n })\n }\n var obj = {}\n obj[\"#startLetters\"] = startLetters\n var items = p.getListForProtocolOf(obj)\n lively.morphic.Menu.openAtHand(\"Groovy\", items);\n })\n } else {\n return $super()\n }\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":2500},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2495":{"this":{"__isSmartRef__":true,"id":2463},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2496}},"2496":{"$super":{"__isSmartRef__":true,"id":2497}},"2497":{"varMapping":{"__isSmartRef__":true,"id":2498},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2499},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2498":{"obj":{"__isSmartRef__":true,"id":2463},"name":"doListProtocol"},"2499":{},"2500":{"timestamp":{"__isSmartRef__":true,"id":2501},"user":"jenslincke","tags":[]},"2501":{"isSerializedDate":true,"string":"Fri Aug 15 2014 09:29:13 GMT+0200 (W. Europe Summer Time)"},"2502":{"varMapping":{"__isSmartRef__":true,"id":2503},"source":"function showLines() {\n\n if (this.lineNumbers) {\n this.lineNumbers.remove()\n delete this.lineNumbers\n }\n var lineNumbers = this.copy()\n lineNumbers.setExtent(pt(10,10))\n lineNumbers.beClip(false)\n lineNumbers.name = \"LineNumbers\"\n lineNumbers.setTextColor(Color.gray)\n lineNumbers.textString = Strings.lines(this.textString).collect(function(ea,i) { return \"\"+ i}).join(\"\\n\")\n lineNumbers.isEpiMorph = true\n lineNumbers.setFill(null)\n lineNumbers.setBorderWidth(0)\n lineNumbers.ignoreEvents()\n\n this.lineNumbers = lineNumbers\n this.addMorph(lineNumbers)\n this.lineNumbers.setPosition(pt(-30,1))\n this.setPadding(new Rectangle(40,0,0,0))\n \n \n \n}","funcProperties":{"__isSmartRef__":true,"id":2504},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2503":{"this":{"__isSmartRef__":true,"id":2463}},"2504":{"timestamp":{"__isSmartRef__":true,"id":2505},"user":"jenslincke","tags":[]},"2505":{"isSerializedDate":true,"string":"Wed Sep 04 2013 15:47:00 GMT+0200 (W. Europe Summer Time)"},"2506":{"varMapping":{"__isSmartRef__":true,"id":2507},"source":"function reset() {\n connect(this, 'savedTextString', this, 'showLines')\n}","funcProperties":{"__isSmartRef__":true,"id":2508},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2507":{"this":{"__isSmartRef__":true,"id":2463}},"2508":{"timestamp":{"__isSmartRef__":true,"id":2509},"user":"jenslincke","tags":[]},"2509":{"isSerializedDate":true,"string":"Tue Sep 03 2013 14:23:59 GMT+0200 (W. Europe Summer Time)"},"2510":{"varMapping":{"__isSmartRef__":true,"id":2511},"source":"function setSource(s) {\n this.textString = s\n this.showLines()\n}","funcProperties":{"__isSmartRef__":true,"id":2512},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2511":{"this":{"__isSmartRef__":true,"id":2463}},"2512":{"timestamp":{"__isSmartRef__":true,"id":2513},"user":"jenslincke","tags":[]},"2513":{"isSerializedDate":true,"string":"Mon Sep 16 2013 13:21:12 GMT+0200 (W. Europe Summer Time)"},"2514":{"source":{"__isSmartRef__":true,"id":2452},"target":{"__isSmartRef__":true,"id":2463}},"2515":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":2516},{"__isSmartRef__":true,"id":2518},{"__isSmartRef__":true,"id":2520},{"__isSmartRef__":true,"id":2522},{"__isSmartRef__":true,"id":2524},{"__isSmartRef__":true,"id":2526},{"__isSmartRef__":true,"id":2528}],"migrationLevel":7,"lastModifiedDate":{"__isSmartRef__":true,"id":2530},"revisionOnLoad":196350,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2516":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","date":{"__isSmartRef__":true,"id":2517}},"2517":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:15:42 GMT+0100 (W. Europe Standard Time)"},"2518":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","date":{"__isSmartRef__":true,"id":2519}},"2519":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:53:16 GMT+0100 (W. Europe Standard Time)"},"2520":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","date":{"__isSmartRef__":true,"id":2521}},"2521":{"isSerializedDate":true,"string":"Wed May 01 2013 05:34:25 GMT+0200 (W. Europe Summer Time)"},"2522":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","date":{"__isSmartRef__":true,"id":2523}},"2523":{"isSerializedDate":true,"string":"Wed May 01 2013 05:35:59 GMT+0200 (W. Europe Summer Time)"},"2524":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","date":{"__isSmartRef__":true,"id":2525}},"2525":{"isSerializedDate":true,"string":"Wed May 01 2013 05:36:30 GMT+0200 (W. Europe Summer Time)"},"2526":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","date":{"__isSmartRef__":true,"id":2527}},"2527":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:22:38 GMT+0200 (W. Europe Summer Time)"},"2528":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","date":{"__isSmartRef__":true,"id":2529}},"2529":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:50 GMT+0200 (W. Europe Summer Time)"},"2530":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:29 GMT+0200 (W. Europe Summer Time)"},"2531":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"2532":{"moveHorizontal":false},"2533":{"doAction":{"__isSmartRef__":true,"id":2534}},"2534":{"varMapping":{"__isSmartRef__":true,"id":2535},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":2536},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2535":{"this":{"__isSmartRef__":true,"id":2452}},"2536":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":2537}},"2537":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"2538":{"submorphs":[],"scripts":[],"id":"60ED82D9-36CD-481B-92DA-5ED04CC9BDC9","shape":{"__isSmartRef__":true,"id":2539},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":14,"name":"LoadingLabel","partsBinMetaInfo":{"__isSmartRef__":true,"id":2540},"textChunks":[{"__isSmartRef__":true,"id":2556}],"charsReplaced":"Process","lastFindLoc":7,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2558},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"previousSelection":[0,7],"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2390},"_Visible":false,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"layout":{"__isSmartRef__":true,"id":2559},"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(1255.6,2.1)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(58.0,-19.3)"},"2539":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(80.7,26.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)","_Fill":"Color.rgb(225,145,136)"},"2540":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":2541},{"__isSmartRef__":true,"id":2543},{"__isSmartRef__":true,"id":2545},{"__isSmartRef__":true,"id":2547},{"__isSmartRef__":true,"id":2549},{"__isSmartRef__":true,"id":2551},{"__isSmartRef__":true,"id":2553}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":2555},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2541":{"date":{"__isSmartRef__":true,"id":2542},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"2542":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"2543":{"date":{"__isSmartRef__":true,"id":2544},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"2544":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"2545":{"date":{"__isSmartRef__":true,"id":2546},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"2546":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"2547":{"date":{"__isSmartRef__":true,"id":2548},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"2548":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"2549":{"date":{"__isSmartRef__":true,"id":2550},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"2550":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"2551":{"date":{"__isSmartRef__":true,"id":2552},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"2552":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"2553":{"date":{"__isSmartRef__":true,"id":2554},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"2554":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"2555":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"2556":{"style":{"__isSmartRef__":true,"id":2557},"morph":{"__isSmartRef__":true,"id":2538},"chunkOwner":{"__isSmartRef__":true,"id":2538},"storedString":"QUERY","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2557":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2558":{"morph":{"__isSmartRef__":true,"id":2538},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2559":{"moveHorizontal":true},"2560":{"submorphs":[],"scripts":[],"id":"54EC56D2-03A5-4D2C-89DE-78E3BFEA1B72","shape":{"__isSmartRef__":true,"id":2561},"__layered_droppingEnabled__":true,"halosEnabled":true,"itemList":["--ALL--","Analysis","ContextJS","DELETE","General","Gremlin","Groovy","Index","Library","Log","Objects","Search","Test"],"selectedLineNo":1,"showsHalos":false,"name":"QueryCategoriesList","partsBinMetaInfo":{"__isSmartRef__":true,"id":2562},"_ClipMode":"auto","eventHandler":{"__isSmartRef__":true,"id":2566},"derivationIds":[2860,"30186701-49A1-49AD-A42F-27F425D92029","ADD09343-51ED-44F6-85F3-257C9A52C897","0426814C-526C-4B05-8328-6EB0F97058FF"],"isBeingDragged":false,"changeTriggered":true,"grabbingEnabled":false,"_FontSize":10,"moved":true,"prevScroll":[0,0],"#startLetters":"sel","owner":{"__isSmartRef__":true,"id":2390},"attributeConnections":[{"__isSmartRef__":true,"id":2567}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"textString":"","_Rotation":0,"_Scale":1,"selection":"Analysis","__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(9.5,25.7)","distanceToDragEvent":"lively.pt(120.6,-23.3)"},"2561":{"_BorderWidth":0,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(192.2,235.8)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(243,243,243)","_Padding":"lively.rect(0,0,0,0)"},"2562":{"partsSpaceName":"PartsBin/Inputs","migrationLevel":4,"partName":"List","comment":"a list morph","changes":[{"__isSmartRef__":true,"id":2563}],"lastModifiedDate":{"__isSmartRef__":true,"id":2565},"revisionOnLoad":149013,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2563":{"date":{"__isSmartRef__":true,"id":2564},"author":"undefined","message":"Click on scrollbar does not grab list","id":"16AABF98-2E7D-4875-9E66-CF86EB74AF93"},"2564":{"isSerializedDate":true,"string":"Thu Mar 29 2012 14:39:24 GMT+0200 (W. Europe Summer Time)"},"2565":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"2566":{"morph":{"__isSmartRef__":true,"id":2560},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2567":{"sourceObj":{"__isSmartRef__":true,"id":2560},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":2390},"targetMethodName":"updateQueryList","varMapping":{"__isSmartRef__":true,"id":2568},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2568":{"source":{"__isSmartRef__":true,"id":2560},"target":{"__isSmartRef__":true,"id":2390}},"2569":{"submorphs":[],"scripts":[],"id":"37E8F0D0-F9FF-4339-BA2C-DE8B1445002A","shape":{"__isSmartRef__":true,"id":2570},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":10,"name":"Text7","partsBinMetaInfo":{"__isSmartRef__":true,"id":2571},"textChunks":[{"__isSmartRef__":true,"id":2587}],"charsReplaced":"scripts","lastFindLoc":7,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2589},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","AF0D8E7C-4D21-49EC-89D3-EB2B1B90CA5C"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2390},"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(446.0,3.6)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(32.0,-18.3)"},"2570":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(46.3,20.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"2571":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":2572},{"__isSmartRef__":true,"id":2574},{"__isSmartRef__":true,"id":2576},{"__isSmartRef__":true,"id":2578},{"__isSmartRef__":true,"id":2580},{"__isSmartRef__":true,"id":2582},{"__isSmartRef__":true,"id":2584}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":2586},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2572":{"date":{"__isSmartRef__":true,"id":2573},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"2573":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"2574":{"date":{"__isSmartRef__":true,"id":2575},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"2575":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"2576":{"date":{"__isSmartRef__":true,"id":2577},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"2577":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"2578":{"date":{"__isSmartRef__":true,"id":2579},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"2579":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"2580":{"date":{"__isSmartRef__":true,"id":2581},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"2581":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"2582":{"date":{"__isSmartRef__":true,"id":2583},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"2583":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"2584":{"date":{"__isSmartRef__":true,"id":2585},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"2585":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"2586":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"2587":{"style":{"__isSmartRef__":true,"id":2588},"morph":{"__isSmartRef__":true,"id":2569},"chunkOwner":{"__isSmartRef__":true,"id":2569},"storedString":"Name","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2588":{"italics":"italic","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2589":{"morph":{"__isSmartRef__":true,"id":2569},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2590":{"submorphs":[],"scripts":[],"id":"7B23DFC5-EBE7-44EB-BB56-1A975887A43A","shape":{"__isSmartRef__":true,"id":2591},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":10,"name":"Text9","partsBinMetaInfo":{"__isSmartRef__":true,"id":2592},"textChunks":[{"__isSmartRef__":true,"id":2608}],"charsReplaced":"Name","lastFindLoc":4,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2610},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","AF0D8E7C-4D21-49EC-89D3-EB2B1B90CA5C","37E8F0D0-F9FF-4339-BA2C-DE8B1445002A"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"previousSelection":[2,2],"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2390},"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(441.5,36.7)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(28.6,-19.5)"},"2591":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(46.3,20.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"2592":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":2593},{"__isSmartRef__":true,"id":2595},{"__isSmartRef__":true,"id":2597},{"__isSmartRef__":true,"id":2599},{"__isSmartRef__":true,"id":2601},{"__isSmartRef__":true,"id":2603},{"__isSmartRef__":true,"id":2605}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":2607},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2593":{"date":{"__isSmartRef__":true,"id":2594},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"2594":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"2595":{"date":{"__isSmartRef__":true,"id":2596},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"2596":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"2597":{"date":{"__isSmartRef__":true,"id":2598},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"2598":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"2599":{"date":{"__isSmartRef__":true,"id":2600},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"2600":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"2601":{"date":{"__isSmartRef__":true,"id":2602},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"2602":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"2603":{"date":{"__isSmartRef__":true,"id":2604},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"2604":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"2605":{"date":{"__isSmartRef__":true,"id":2606},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"2606":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"2607":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"2608":{"style":{"__isSmartRef__":true,"id":2609},"morph":{"__isSmartRef__":true,"id":2590},"chunkOwner":{"__isSmartRef__":true,"id":2590},"storedString":"Categories","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2609":{"italics":"italic","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2610":{"morph":{"__isSmartRef__":true,"id":2590},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2611":{"submorphs":[],"scripts":[],"id":"7F592798-5CA1-4B38-A74C-499AD2380A23","shape":{"__isSmartRef__":true,"id":2612},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":10,"name":"Text10","partsBinMetaInfo":{"__isSmartRef__":true,"id":2613},"textChunks":[{"__isSmartRef__":true,"id":2629}],"charsReplaced":"Categories","lastFindLoc":10,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2631},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","AF0D8E7C-4D21-49EC-89D3-EB2B1B90CA5C","37E8F0D0-F9FF-4339-BA2C-DE8B1445002A","7B23DFC5-EBE7-44EB-BB56-1A975887A43A"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"previousSelection":[0,8],"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2390},"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(442.6,59.6)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(36.6,-19.5)"},"2612":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(82.9,20.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"2613":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":2614},{"__isSmartRef__":true,"id":2616},{"__isSmartRef__":true,"id":2618},{"__isSmartRef__":true,"id":2620},{"__isSmartRef__":true,"id":2622},{"__isSmartRef__":true,"id":2624},{"__isSmartRef__":true,"id":2626}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":2628},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2614":{"date":{"__isSmartRef__":true,"id":2615},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"2615":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"2616":{"date":{"__isSmartRef__":true,"id":2617},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"2617":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"2618":{"date":{"__isSmartRef__":true,"id":2619},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"2619":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"2620":{"date":{"__isSmartRef__":true,"id":2621},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"2621":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"2622":{"date":{"__isSmartRef__":true,"id":2623},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"2623":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"2624":{"date":{"__isSmartRef__":true,"id":2625},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"2625":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"2626":{"date":{"__isSmartRef__":true,"id":2627},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"2627":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"2628":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"2629":{"style":{"__isSmartRef__":true,"id":2630},"morph":{"__isSmartRef__":true,"id":2611},"chunkOwner":{"__isSmartRef__":true,"id":2611},"storedString":"Parameters","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2630":{"italics":"italic","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2631":{"morph":{"__isSmartRef__":true,"id":2611},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2632":{"submorphs":[],"scripts":[],"id":"AF3DDCDC-849D-4EF9-B0E0-A465A3D25EBB","shape":{"__isSmartRef__":true,"id":2633},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":12,"name":"Text12","partsBinMetaInfo":{"__isSmartRef__":true,"id":2634},"textChunks":[{"__isSmartRef__":true,"id":2650}],"charsReplaced":"Some Text","lastFindLoc":9,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2652},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"previousSelection":[6,11],"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2390},"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"priorSelectionRange":[0,11],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(8.8,0.1)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(95.0,-18.3)"},"2633":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(148.2,23.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"2634":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":2635},{"__isSmartRef__":true,"id":2637},{"__isSmartRef__":true,"id":2639},{"__isSmartRef__":true,"id":2641},{"__isSmartRef__":true,"id":2643},{"__isSmartRef__":true,"id":2645},{"__isSmartRef__":true,"id":2647}],"lastModifiedDate":{"__isSmartRef__":true,"id":2649},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2635":{"date":{"__isSmartRef__":true,"id":2636},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"2636":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"2637":{"date":{"__isSmartRef__":true,"id":2638},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"2638":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"2639":{"date":{"__isSmartRef__":true,"id":2640},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"2640":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"2641":{"date":{"__isSmartRef__":true,"id":2642},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"2642":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"2643":{"date":{"__isSmartRef__":true,"id":2644},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"2644":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"2645":{"date":{"__isSmartRef__":true,"id":2646},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"2646":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"2647":{"date":{"__isSmartRef__":true,"id":2648},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"2648":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"2649":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"2650":{"style":{"__isSmartRef__":true,"id":2651},"morph":{"__isSmartRef__":true,"id":2632},"chunkOwner":{"__isSmartRef__":true,"id":2632},"storedString":"Query Neo4J","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2651":{"fontWeight":"bold","__serializedExpressions__":["color"],"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore","color":"Color.rgb(0,79,152)"},"2652":{"morph":{"__isSmartRef__":true,"id":2632},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2653":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2654},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2655}],"eventHandler":{"__isSmartRef__":true,"id":2657},"_ClipMode":"auto","derivationIds":["723C17F0-4683-49B0-A6CD-B3C238725677","65D2B11D-F4B8-4F5A-A06A-B054322DF6AF"],"id":"0614C442-9E5F-4B9D-8FB3-9D70FC36CD7C","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":true,"_HandStyle":null,"allowInput":true,"_FontFamily":"Monaco,monospace","_FontSize":8,"evalEnabled":false,"layout":{"__isSmartRef__":true,"id":2658},"syntaxHighlightingWhileTyping":false,"doNotSerialize":["parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","parseErrors","$$textString","$$savedTextString"],"accessibleInInactiveWindow":true,"_lastSyntaxHighlightTime":27,"showsHalos":false,"charsReplaced":"cop.create(?:Layer)?","lastFindLoc":188,"isBeingDragged":false,"name":"CypherParameters","prevScroll":[0,0],"doitContext":{"__isSmartRef__":true,"id":2390},"owner":{"__isSmartRef__":true,"id":2390},"draggingEnabled":false,"attributeConnections":[{"__isSmartRef__":true,"id":2659},{"__isSmartRef__":true,"id":2661}],"doNotCopyProperties":["$$textString","$$savedTextString"],"lastSearchString":"Splitter","lastSearchIndex":0,"searchHighlights":[],"isCopyMorphRef":true,"morphRefId":1,"_Rotation":0,"_Scale":1,"savedTextString":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n pattern: \"*setWithLayers*\",\n match: '(setWithLayers\\\\(.*?\\\\))',\n limit: 1000\n}","previousSelection":[127,139],"__serializedExpressions__":["_TextColor","_Position","distanceToDragEvent"],"textString":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n}","__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2663},"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(446.5,84.4)","distanceToDragEvent":"lively.pt(253.7,-17.9)"},"2654":{"_BorderWidth":1,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(892.9,180.5)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(95,94,95)","_Fill":"Color.rgb(243,243,243)"},"2655":{"style":{"__isSmartRef__":true,"id":2656},"chunkOwner":{"__isSmartRef__":true,"id":2653},"_id":"_1157","storedString":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n}","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2656":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2657":{"morph":{"__isSmartRef__":true,"id":2653},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2658":{"resizeWidth":true,"resizeHeight":false},"2659":{"sourceObj":{"__isSmartRef__":true,"id":2653},"sourceAttrName":"textString","targetObj":{"__isSmartRef__":true,"id":2390},"targetMethodName":"onQueryChanged","varMapping":{"__isSmartRef__":true,"id":2660},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2660":{"source":{"__isSmartRef__":true,"id":2653},"target":{"__isSmartRef__":true,"id":2390}},"2661":{"sourceObj":{"__isSmartRef__":true,"id":2653},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":2390},"targetMethodName":"queryNeoCypher","varMapping":{"__isSmartRef__":true,"id":2662},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2662":{"source":{"__isSmartRef__":true,"id":2653},"target":{"__isSmartRef__":true,"id":2390}},"2663":{"doSave":{"__isSmartRef__":true,"id":2664}},"2664":{"varMapping":{"__isSmartRef__":true,"id":2665},"source":"function doSave(str) {\n $super(str)\n}","funcProperties":{"__isSmartRef__":true,"id":2670},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2665":{"this":{"__isSmartRef__":true,"id":2653},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2666}},"2666":{"$super":{"__isSmartRef__":true,"id":2667}},"2667":{"varMapping":{"__isSmartRef__":true,"id":2668},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2669},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2668":{"obj":{"__isSmartRef__":true,"id":2653},"name":"doSave"},"2669":{},"2670":{"timestamp":{"__isSmartRef__":true,"id":2671},"user":"jenslincke","tags":[]},"2671":{"isSerializedDate":true,"string":"Tue Aug 20 2013 19:00:22 GMT+0200 (W. Europe Summer Time)"},"2672":{"submorphs":[],"scripts":[],"id":"BE91CAB8-7004-41EB-9A18-B3330122B29B","shape":{"__isSmartRef__":true,"id":2673},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":11,"name":"QueryCategories","partsBinMetaInfo":{"__isSmartRef__":true,"id":2674},"textChunks":[{"__isSmartRef__":true,"id":2690}],"charsReplaced":"","lastFindLoc":26,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2692},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","E6CB4FD4-78EC-4EC9-8D57-6837AE39CB05"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2390},"attributeConnections":[{"__isSmartRef__":true,"id":2693}],"doNotSerialize":["$$textString"],"doNotCopyProperties":["$$textString"],"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"savedTextString":"Gremlin Groovy Index","draggingEnabled":false,"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"textString":"Analysis Gremlin","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(516.9,33.2)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(200.4,-20.5)"},"2673":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(301.0,21.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"2674":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":2675},{"__isSmartRef__":true,"id":2677},{"__isSmartRef__":true,"id":2679},{"__isSmartRef__":true,"id":2681},{"__isSmartRef__":true,"id":2683},{"__isSmartRef__":true,"id":2685},{"__isSmartRef__":true,"id":2687}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":2689},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2675":{"date":{"__isSmartRef__":true,"id":2676},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"2676":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"2677":{"date":{"__isSmartRef__":true,"id":2678},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"2678":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"2679":{"date":{"__isSmartRef__":true,"id":2680},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"2680":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"2681":{"date":{"__isSmartRef__":true,"id":2682},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"2682":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"2683":{"date":{"__isSmartRef__":true,"id":2684},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"2684":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"2685":{"date":{"__isSmartRef__":true,"id":2686},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"2686":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"2687":{"date":{"__isSmartRef__":true,"id":2688},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"2688":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"2689":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"2690":{"style":{"__isSmartRef__":true,"id":2691},"chunkOwner":{"__isSmartRef__":true,"id":2672},"_id":"_1158","storedString":"Analysis Gremlin","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2691":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2692":{"morph":{"__isSmartRef__":true,"id":2672},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2693":{"sourceObj":{"__isSmartRef__":true,"id":2672},"sourceAttrName":"textString","targetObj":{"__isSmartRef__":true,"id":2390},"targetMethodName":"onQueryChanged","varMapping":{"__isSmartRef__":true,"id":2694},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2694":{"source":{"__isSmartRef__":true,"id":2672},"target":{"__isSmartRef__":true,"id":2390}},"2695":{"submorphs":[],"scripts":[],"id":"36CB03B4-2AA6-420B-851E-1599EBC232A1","shape":{"__isSmartRef__":true,"id":2696},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"ChangeIndicator","partsBinMetaInfo":{"__isSmartRef__":true,"id":2697},"eventHandler":{"__isSmartRef__":true,"id":2735},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","F2677A9D-5855-4DF2-B248-94545B34B762","D52188B3-7DC0-410E-96B1-50892AC00A37"],"partTests":{"__isSmartRef__":true,"id":2736},"_ClipMode":"visible","moved":true,"owner":{"__isSmartRef__":true,"id":2390},"isBeingDragged":false,"layout":{"__isSmartRef__":true,"id":2741},"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(1343.2,1.0)","distanceToDragEvent":"lively.pt(29.6,-17.9)"},"2696":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(14.2,14.2)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"2697":{"partsSpaceName":"PartsBin/Tools","comment":"A inspector for all morphs at a position","migrationLevel":4,"partName":"MorphsAtWorldPosition","changes":[{"__isSmartRef__":true,"id":2698},{"__isSmartRef__":true,"id":2700},{"__isSmartRef__":true,"id":2702},{"__isSmartRef__":true,"id":2704},{"__isSmartRef__":true,"id":2706},{"__isSmartRef__":true,"id":2708},{"__isSmartRef__":true,"id":2710},{"__isSmartRef__":true,"id":2712},{"__isSmartRef__":true,"id":2714},{"__isSmartRef__":true,"id":2716},{"__isSmartRef__":true,"id":2718},{"__isSmartRef__":true,"id":2720},{"__isSmartRef__":true,"id":2722},{"__isSmartRef__":true,"id":2724},{"__isSmartRef__":true,"id":2726},{"__isSmartRef__":true,"id":2728},{"__isSmartRef__":true,"id":2730},{"__isSmartRef__":true,"id":2732}],"lastModifiedDate":{"__isSmartRef__":true,"id":2734},"revisionOnLoad":199180,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2698":{"author":"robertkrahn","message":"no comment","id":"FBBB9C99-B61C-4D5F-8750-6E2987DF0C9C","date":{"__isSmartRef__":true,"id":2699}},"2699":{"isSerializedDate":true,"string":"Fri Jun 21 2013 00:16:24 GMT+0200 (W. Europe Summer Time)"},"2700":{"author":"robertkrahn","message":"no comment","id":"67FD74CD-7AE4-4050-ADC7-4DF73804258D","date":{"__isSmartRef__":true,"id":2701}},"2701":{"isSerializedDate":true,"string":"Thu May 30 2013 09:18:06 GMT+0200 (W. Europe Summer Time)"},"2702":{"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8","date":{"__isSmartRef__":true,"id":2703}},"2703":{"isSerializedDate":true,"string":"Wed Jan 23 2013 12:57:18 GMT+0100 (W. Europe Standard Time)"},"2704":{"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23","date":{"__isSmartRef__":true,"id":2705}},"2705":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"2706":{"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC","date":{"__isSmartRef__":true,"id":2707}},"2707":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"2708":{"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2","date":{"__isSmartRef__":true,"id":2709}},"2709":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"2710":{"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B","date":{"__isSmartRef__":true,"id":2711}},"2711":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"2712":{"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7","date":{"__isSmartRef__":true,"id":2713}},"2713":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"2714":{"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350","date":{"__isSmartRef__":true,"id":2715}},"2715":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"2716":{"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8","date":{"__isSmartRef__":true,"id":2717}},"2717":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"2718":{"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205","date":{"__isSmartRef__":true,"id":2719}},"2719":{"isSerializedDate":true,"string":"Thu Nov 22 2012 10:35:51 GMT+0100 (W. Europe Standard Time)"},"2720":{"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2","date":{"__isSmartRef__":true,"id":2721}},"2721":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:42:31 GMT+0100 (W. Europe Standard Time)"},"2722":{"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20","date":{"__isSmartRef__":true,"id":2723}},"2723":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:47:05 GMT+0100 (W. Europe Standard Time)"},"2724":{"author":"SAPLivelyScreen","message":"no comment","id":"EF145198-0649-41BD-A92E-521D98FEC49D","date":{"__isSmartRef__":true,"id":2725}},"2725":{"isSerializedDate":true,"string":"Thu May 30 2013 00:36:50 GMT+0200 (W. Europe Summer Time)"},"2726":{"author":"SAPLivelyScreen","message":"no comment","id":"7A44D8CA-6D5F-42A3-A4B4-4D7F51EECA52","date":{"__isSmartRef__":true,"id":2727}},"2727":{"isSerializedDate":true,"string":"Tue Jun 18 2013 20:49:27 GMT+0200 (W. Europe Summer Time)"},"2728":{"author":"robertkrahn","message":"no comment","id":"A452871F-4EB9-45D1-94B8-6065CBA7B8FD","date":{"__isSmartRef__":true,"id":2729}},"2729":{"isSerializedDate":true,"string":"Tue Jul 30 2013 08:20:51 GMT+0200 (W. Europe Summer Time)"},"2730":{"date":{"__isSmartRef__":true,"id":2731},"author":"jenslincke","message":"no comment","id":"8A675ABF-1C30-4699-934A-5EB102C405AB"},"2731":{"isSerializedDate":true,"string":"Fri Aug 23 2013 14:28:26 GMT+0200 (W. Europe Summer Time)"},"2732":{"date":{"__isSmartRef__":true,"id":2733},"author":"jenslincke","message":"isMetaTool","id":"1AD54DA7-E3CA-4DFE-93CA-A898B7EF4638"},"2733":{"isSerializedDate":true,"string":"Fri Aug 23 2013 14:35:11 GMT+0200 (W. Europe Summer Time)"},"2734":{"isSerializedDate":true,"string":"Fri Aug 23 2013 14:35:05 GMT+0200 (W. Europe Summer Time)"},"2735":{"morph":{"__isSmartRef__":true,"id":2695},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2736":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2737}},"2737":{"test01IsMorph":{"__isSmartRef__":true,"id":2738}},"2738":{"varMapping":{"__isSmartRef__":true,"id":2739},"source":"function test01IsMorph(aPart) {\n this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":2740},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2739":{"this":{"__isSmartRef__":true,"id":2736}},"2740":{},"2741":{"moveHorizontal":true},"2742":{"submorphs":[],"scripts":[],"id":"6F84F19C-27A8-459E-A2EE-5031838BAD66","shape":{"__isSmartRef__":true,"id":2743},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":11,"name":"QueryLanguage","partsBinMetaInfo":{"__isSmartRef__":true,"id":2744},"textChunks":[{"__isSmartRef__":true,"id":2760}],"charsReplaced":"undefined","lastFindLoc":7,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2762},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2390},"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"_Rotation":0,"_Scale":1,"previousSelection":[3,3],"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(707.8,54.8)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(84.8,-13.3)"},"2743":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(128.7,21.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"2744":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":2745},{"__isSmartRef__":true,"id":2747},{"__isSmartRef__":true,"id":2749},{"__isSmartRef__":true,"id":2751},{"__isSmartRef__":true,"id":2753},{"__isSmartRef__":true,"id":2755},{"__isSmartRef__":true,"id":2757}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":2759},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2745":{"date":{"__isSmartRef__":true,"id":2746},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"2746":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"2747":{"date":{"__isSmartRef__":true,"id":2748},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"2748":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"2749":{"date":{"__isSmartRef__":true,"id":2750},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"2750":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"2751":{"date":{"__isSmartRef__":true,"id":2752},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"2752":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"2753":{"date":{"__isSmartRef__":true,"id":2754},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"2754":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"2755":{"date":{"__isSmartRef__":true,"id":2756},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"2756":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"2757":{"date":{"__isSmartRef__":true,"id":2758},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"2758":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"2759":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"2760":{"style":{"__isSmartRef__":true,"id":2761},"chunkOwner":{"__isSmartRef__":true,"id":2742},"_id":"_1159","storedString":"Gremlin","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2761":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2762":{"morph":{"__isSmartRef__":true,"id":2742},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2763":{"submorphs":[],"scripts":[],"id":"28917B22-79E7-4F2B-8AB4-8FEAF43308B5","shape":{"__isSmartRef__":true,"id":2764},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":10,"name":"Text13","partsBinMetaInfo":{"__isSmartRef__":true,"id":2765},"textChunks":[{"__isSmartRef__":true,"id":2781}],"charsReplaced":"Parameters","lastFindLoc":10,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2783},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","AF0D8E7C-4D21-49EC-89D3-EB2B1B90CA5C","37E8F0D0-F9FF-4339-BA2C-DE8B1445002A","7B23DFC5-EBE7-44EB-BB56-1A975887A43A","7F592798-5CA1-4B38-A74C-499AD2380A23"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"previousSelection":[0,10],"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2390},"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(633.6,59.6)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(60.0,-9.9)"},"2764":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(82.9,20.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"2765":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":2766},{"__isSmartRef__":true,"id":2768},{"__isSmartRef__":true,"id":2770},{"__isSmartRef__":true,"id":2772},{"__isSmartRef__":true,"id":2774},{"__isSmartRef__":true,"id":2776},{"__isSmartRef__":true,"id":2778}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":2780},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2766":{"date":{"__isSmartRef__":true,"id":2767},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"2767":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"2768":{"date":{"__isSmartRef__":true,"id":2769},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"2769":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"2770":{"date":{"__isSmartRef__":true,"id":2771},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"2771":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"2772":{"date":{"__isSmartRef__":true,"id":2773},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"2773":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"2774":{"date":{"__isSmartRef__":true,"id":2775},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"2775":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"2776":{"date":{"__isSmartRef__":true,"id":2777},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"2777":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"2778":{"date":{"__isSmartRef__":true,"id":2779},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"2779":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"2780":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"2781":{"style":{"__isSmartRef__":true,"id":2782},"morph":{"__isSmartRef__":true,"id":2763},"chunkOwner":{"__isSmartRef__":true,"id":2763},"storedString":"Language","_id":"_100","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2782":{"italics":"italic","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2783":{"morph":{"__isSmartRef__":true,"id":2763},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2784":{"submorphs":[{"__isSmartRef__":true,"id":2785}],"scripts":[],"shape":{"__isSmartRef__":true,"id":2790},"eventHandler":{"__isSmartRef__":true,"id":2791},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"324EAB2A-3AB3-4EA8-B847-3389381E590F","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":2785},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":2792},{"__isSmartRef__":true,"id":2794}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button9","partsBinMetaInfo":{"__isSmartRef__":true,"id":2847},"pinSpecs":[{"__isSmartRef__":true,"id":2863}],"owner":{"__isSmartRef__":true,"id":2390},"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2864},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(450.0,271.0)","distanceToDragEvent":"lively.pt(69.4,-19.2)"},"2785":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2786},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2787}],"eventHandler":{"__isSmartRef__":true,"id":2789},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"59460748-0F1D-4637-8B10-86F68BE24F9B","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2784},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor","_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)","_Position":"lively.pt(2.2,-1.1)","distanceToDragEvent":"lively.pt(58.5,-18.9)"},"2786":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"2787":{"style":{"__isSmartRef__":true,"id":2788},"chunkOwner":{"__isSmartRef__":true,"id":2785},"_id":"_5662","storedString":"clear log","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2788":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2789":{"morph":{"__isSmartRef__":true,"id":2785},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2790":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"2791":{"morph":{"__isSmartRef__":true,"id":2784},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2792":{"sourceObj":{"__isSmartRef__":true,"id":2784},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2784},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":2793},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2793":{"source":{"__isSmartRef__":true,"id":2784},"target":{"__isSmartRef__":true,"id":2784}},"2794":{"sourceObj":{"__isSmartRef__":true,"id":2784},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2795},"targetMethodName":"clear","varMapping":{"__isSmartRef__":true,"id":2846},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2795":{"submorphs":[],"scripts":[],"id":"DCA2E1C3-490D-4B59-A60E-4BF9C8B78FDD","shape":{"__isSmartRef__":true,"id":2796},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":9,"name":"Status","partsBinMetaInfo":{"__isSmartRef__":true,"id":2797},"textChunks":[{"__isSmartRef__":true,"id":2813}],"charsReplaced":"","lastFindLoc":245,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2815},"_ClipMode":"scroll","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","CBC58BCB-4A5E-4485-A717-35E9CD5EC6A7"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2390},"layout":{"__isSmartRef__":true,"id":2816},"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"_WordBreak":"break-all","partTests":{"__isSmartRef__":true,"id":2817},"logEntries":["start query","executed query in 4180ms","total time: 26691ms"],"maxEntries":500,"isCopyMorphRef":true,"morphRefId":1,"snapshot":["start query","executed query in 4180ms","total time: 26691ms"],"snaphot":[],"draggingEnabled":false,"_Rotation":0,"_Scale":1,"savedTextString":"if ('[]' == 'this') this.getBinding().getVariables().collect{k,v -> def _a; try{_a = v.parameterTypes.name.collect{it.replace('java.lang.','')}} catch(e){}; ['Global',k, _a]}; else {def tempFunc = { '+selection+'}; def _o=tempFunc(); tempFunc();.getMetaClass().methods.collect({[it.getDeclaringClass().name, it.name, it.getParameterTypes().name.collect{it.replace('java.lang.','')}]}); _l.addAll(_o.getMetaClass().getProperties().name.collect{k -> ['Properties',k, null]});_l}\nstart query\nexecuted query in 283ms\n[[java.lang.Object, equals, [Object]], [java.lang.Object, getClass, []], [java.lang.Object, hashCode, []], [java.lang.Object, notify, []], [java.lang.Object, notifyAll, []], [java.lang.Object, toString, []], [java.lang.Object, wait, []], [java.lang.Object, wait, [long]], [java.lang.Object, wait, [long, int]], [java.lang.String, charAt, [int]], [java.lang.String, codePointAt, [int]], [java.lang.String, codePointBefore, [int]], [java.lang.String, codePointCount, [int, int]], [java.lang.String, compareTo, [String]], [java.lang.String, compareToIgnoreCase, [String]], [java.lang.String, concat, [String]], [java.lang.String, contains, [CharSequence]], [java.lang.String, contentEquals, [CharSequence]], [java.lang.String, contentEquals, [StringBuffer]], [java.lang.String, copyValueOf, [[C]], [java.lang.String, copyValueOf, [[C, int, int]], [java.lang.String, endsWith, [String]], [java.lang.String, equals, [Object]], [java.lang.String, equalsIgnoreCase, [String]], [java.lang.String, format, [String, [LObject;]], [java.lang.String, format, [java.util.Locale, String, [LObject;]], [java.lang.String, getBytes, []], [java.lang.String, getBytes, [String]], [java.lang.String, getBytes, [java.nio.charset.Charset]], [java.lang.String, getBytes, [int, int, [B, int]], [java.lang.String, getChars, [int, int, [C, int]], [java.lang.String, hashCode, []], [java.lang.String, indexOf, [int]], [java.lang.String, indexOf, [String]], [java.lang.String, indexOf, [int, int]], [java.lang.String, indexOf, [String, int]], [java.lang.String, intern, []], [java.lang.String, isEmpty, []], [java.lang.String, lastIndexOf, [int]], [java.lang.String, lastIndexOf, [String]], [java.lang.String, lastIndexOf, [int, int]], [java.lang.String, lastIndexOf, [String, int]], [java.lang.String, length, []], [java.lang.String, matches, [String]], [java.lang.String, offsetByCodePoints, [int, int]], [java.lang.String, regionMatches, [int, String, int, int]], [java.lang.String, regionMatches, [boolean, int, String, int, int]], [java.lang.String, replace, [char, char]], [java.lang.String, replace, [CharSequence, CharSequence]], [java.lang.String, replaceAll, [String, String]], [java.lang.String, replaceFirst, [String, String]], [java.lang.String, split, [String]], [java.lang.String, split, [String, int]], [java.lang.String, startsWith, [String]], [java.lang.String, startsWith, [String, int]], [java.lang.String, subSequence, [int, int]], [java.lang.String, substring, [int]], [java.lang.String, substring, [int, int]], [java.lang.String, toCharArray, []], [java.lang.String, toLowerCase, []], [java.lang.String, toLowerCase, [java.util.Locale]], [java.lang.String, toString, []], [java.lang.String, toUpperCase, []], [java.lang.String, toUpperCase, [java.util.Locale]], [java.lang.String, trim, []], [java.lang.String, valueOf, [[C]], [java.lang.String, valueOf, [boolean]], [java.lang.String, valueOf, [char]], [java.lang.String, valueOf, [double]], [java.lang.String, valueOf, [float]], [java.lang.String, valueOf, [int]], [java.lang.String, valueOf, [Object]], [java.lang.String, valueOf, [long]], [java.lang.String, valueOf, [[C, int, int]], [Properties, class, null], [Properties, bytes, null], [Properties, empty, null]]","__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"previousSelection":[180,180],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2825},"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(12.0,789.9)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(570.3,-14.5)"},"2796":{"fill":null,"_BorderWidth":2.15,"_ClipMode":"visible","_Fill":null,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1338.3,137.6)","_BorderColor":"Color.rgb(139,139,139)","_Padding":"lively.rect(4,2,0,0)"},"2797":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":2798},{"__isSmartRef__":true,"id":2800},{"__isSmartRef__":true,"id":2802},{"__isSmartRef__":true,"id":2804},{"__isSmartRef__":true,"id":2806},{"__isSmartRef__":true,"id":2808},{"__isSmartRef__":true,"id":2810}],"lastModifiedDate":{"__isSmartRef__":true,"id":2812},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2798":{"date":{"__isSmartRef__":true,"id":2799},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"2799":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"2800":{"date":{"__isSmartRef__":true,"id":2801},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"2801":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"2802":{"date":{"__isSmartRef__":true,"id":2803},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"2803":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"2804":{"date":{"__isSmartRef__":true,"id":2805},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"2805":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"2806":{"date":{"__isSmartRef__":true,"id":2807},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"2807":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"2808":{"date":{"__isSmartRef__":true,"id":2809},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"2809":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"2810":{"date":{"__isSmartRef__":true,"id":2811},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"2811":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"2812":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"2813":{"style":{"__isSmartRef__":true,"id":2814},"chunkOwner":{"__isSmartRef__":true,"id":2795},"_id":"_1187","storedString":"start query\nexecuted query in 4180ms\ntotal time: 26691ms","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2814":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2815":{"morph":{"__isSmartRef__":true,"id":2795},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2816":{"resizeWidth":true,"resizeHeight":false,"moveVertical":true},"2817":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2818}},"2818":{"testLog":{"__isSmartRef__":true,"id":2819},"testOmmitEntries":{"__isSmartRef__":true,"id":2822}},"2819":{"varMapping":{"__isSmartRef__":true,"id":2820},"source":"function testLog(aPart) {\n aPart.clear()\n aPart.log(\"hello\")\n aPart.log(\"world\")\n this.assert(aPart.logEntries.length == 2, 'entries wrong');\n this.assert(aPart.textString == \"hello\\nworld\", 'wrong text')\n}","funcProperties":{"__isSmartRef__":true,"id":2821},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2820":{"this":{"__isSmartRef__":true,"id":2817}},"2821":{},"2822":{"varMapping":{"__isSmartRef__":true,"id":2823},"source":"function testOmmitEntries(aPart) {\n aPart.clear()\n aPart.maxEntries = 2\n aPart.log(\"hello\")\n aPart.log(\"world\")\n aPart.log(\"foo\")\n this.assert(aPart.logEntries.length == 3, 'entries wrong');\n this.assert(!aPart.textString.match(\"hello\"), 'hello not ommited')\n}","funcProperties":{"__isSmartRef__":true,"id":2824},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2823":{"this":{"__isSmartRef__":true,"id":2817}},"2824":{},"2825":{"clear":{"__isSmartRef__":true,"id":2826},"log":{"__isSmartRef__":true,"id":2830},"display":{"__isSmartRef__":true,"id":2834},"reset":{"__isSmartRef__":true,"id":2838},"logSnappshot":{"__isSmartRef__":true,"id":2842}},"2826":{"varMapping":{"__isSmartRef__":true,"id":2827},"source":"function clear() {\n this.textString = \"\"\n this.logEntries = []\n this.snapshot = []\n}","funcProperties":{"__isSmartRef__":true,"id":2828},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2827":{"this":{"__isSmartRef__":true,"id":2795}},"2828":{"timestamp":{"__isSmartRef__":true,"id":2829},"user":"jenslincke","tags":[]},"2829":{"isSerializedDate":true,"string":"Fri Sep 06 2013 11:45:26 GMT+0200 (W. Europe Summer Time)"},"2830":{"varMapping":{"__isSmartRef__":true,"id":2831},"source":"function log(entry) {\n if (!this.logEntries) this.logEntries = []\n if (this.snapshot) this.snapshot.push(entry)\n this.logEntries.push(entry)\n this.display()\n}","funcProperties":{"__isSmartRef__":true,"id":2832},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2831":{"this":{"__isSmartRef__":true,"id":2795}},"2832":{"timestamp":{"__isSmartRef__":true,"id":2833},"user":"jenslincke","tags":[]},"2833":{"isSerializedDate":true,"string":"Fri Sep 06 2013 11:45:36 GMT+0200 (W. Europe Summer Time)"},"2834":{"varMapping":{"__isSmartRef__":true,"id":2835},"source":"function display() {\n var max = this.maxEntries || 300;\n var entries = this.logEntries\n if (this.logEntries.length > max) {\n entries = [\" ... left out \" + (this.logEntries.length - max) \n + \" log entries\"].concat(entries.slice(entries.length - max))\n }\n this.textString = entries.join(\"\\n\")\n this.scrollToBottom()\n}","funcProperties":{"__isSmartRef__":true,"id":2836},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2835":{"this":{"__isSmartRef__":true,"id":2795}},"2836":{"timestamp":{"__isSmartRef__":true,"id":2837},"user":"jenslincke","tags":[]},"2837":{"isSerializedDate":true,"string":"Fri Aug 16 2013 18:53:08 GMT+0200 (W. Europe Summer Time)"},"2838":{"varMapping":{"__isSmartRef__":true,"id":2839},"source":"function reset() {\n this.maxEntries = 500\n}","funcProperties":{"__isSmartRef__":true,"id":2840},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2839":{"this":{"__isSmartRef__":true,"id":2795}},"2840":{"timestamp":{"__isSmartRef__":true,"id":2841},"user":"jenslincke","tags":[]},"2841":{"isSerializedDate":true,"string":"Thu Aug 15 2013 15:00:03 GMT+0200 (W. Europe Summer Time)"},"2842":{"varMapping":{"__isSmartRef__":true,"id":2843},"source":"function logSnappshot() {\n // this.logSnappshot()\n var result = this.snapshot\n this.snapshot= []\n return result\n}","funcProperties":{"__isSmartRef__":true,"id":2844},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2843":{"this":{"__isSmartRef__":true,"id":2795}},"2844":{"timestamp":{"__isSmartRef__":true,"id":2845},"user":"jenslincke","tags":[]},"2845":{"isSerializedDate":true,"string":"Fri Sep 06 2013 13:27:34 GMT+0200 (W. Europe Summer Time)"},"2846":{"source":{"__isSmartRef__":true,"id":2784},"target":{"__isSmartRef__":true,"id":2795}},"2847":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":2848},{"__isSmartRef__":true,"id":2850},{"__isSmartRef__":true,"id":2852},{"__isSmartRef__":true,"id":2854},{"__isSmartRef__":true,"id":2856},{"__isSmartRef__":true,"id":2858},{"__isSmartRef__":true,"id":2860}],"migrationLevel":7,"lastModifiedDate":{"__isSmartRef__":true,"id":2862},"revisionOnLoad":196350,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2848":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","date":{"__isSmartRef__":true,"id":2849}},"2849":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:15:42 GMT+0100 (W. Europe Standard Time)"},"2850":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","date":{"__isSmartRef__":true,"id":2851}},"2851":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:53:16 GMT+0100 (W. Europe Standard Time)"},"2852":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","date":{"__isSmartRef__":true,"id":2853}},"2853":{"isSerializedDate":true,"string":"Wed May 01 2013 05:34:25 GMT+0200 (W. Europe Summer Time)"},"2854":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","date":{"__isSmartRef__":true,"id":2855}},"2855":{"isSerializedDate":true,"string":"Wed May 01 2013 05:35:59 GMT+0200 (W. Europe Summer Time)"},"2856":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","date":{"__isSmartRef__":true,"id":2857}},"2857":{"isSerializedDate":true,"string":"Wed May 01 2013 05:36:30 GMT+0200 (W. Europe Summer Time)"},"2858":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","date":{"__isSmartRef__":true,"id":2859}},"2859":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:22:38 GMT+0200 (W. Europe Summer Time)"},"2860":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","date":{"__isSmartRef__":true,"id":2861}},"2861":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:50 GMT+0200 (W. Europe Summer Time)"},"2862":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:29 GMT+0200 (W. Europe Summer Time)"},"2863":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"2864":{"doAction":{"__isSmartRef__":true,"id":2865}},"2865":{"varMapping":{"__isSmartRef__":true,"id":2866},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":2867},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2866":{"this":{"__isSmartRef__":true,"id":2784}},"2867":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":2868}},"2868":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"2869":{"submorphs":[],"scripts":[],"id":"27FE873A-73C9-4766-9F34-563A4F711F1E","shape":{"__isSmartRef__":true,"id":2870},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"SplitterMorph3","partsBinMetaInfo":{"__isSmartRef__":true,"id":2871},"eventHandler":{"__isSmartRef__":true,"id":2892},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","ED38E7CF-DBF8-44F7-8FCD-44556A95F525","2837627B-B301-45E3-BE2F-AE809626DE89","43E4DB05-C44F-44CB-A54B-72C9636B3396","D4A35074-DDE1-4EB5-AA93-C43A119497EB","3554E5D2-3507-46E8-8FC7-402B000900C1","FF4CA471-F3FC-4C3E-94C2-92DC536364F4","BD2AB819-C508-48C8-BE31-6BB56B760BEC","CB04A2D9-EF71-406F-B2DB-D7509C402289"],"partTests":{"__isSmartRef__":true,"id":2893},"_ClipMode":"visible","moved":true,"layout":{"__isSmartRef__":true,"id":2898},"isBeingDragged":false,"originalTargetExtent":null,"morphA":null,"morphB":null,"originalMorphAExtent":null,"originalMorphBExtent":null,"prevScroll":[0,0],"owner":{"__isSmartRef__":true,"id":2390},"grabbingEnabled":false,"draggingEnabled":true,"_Rotation":0,"_Scale":0.9803921568627452,"__serializedExpressions__":["_Position","distanceToDragEvent","dragStartPoint","originalMorphBPosition"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2899},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(1333.8,752.3)","distanceToDragEvent":"lively.pt(28.7,-11.8)","dragStartPoint":"lively.pt(997.0,599.0)","originalMorphBPosition":"lively.pt(12.0,759.9)"},"2870":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":0.5557,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(16.5,57.6)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(167,167,173)","_Padding":"lively.rect(0,0,0,0)"},"2871":{"partsSpaceName":"PartsBin/Widgets/","comment":"A splitter, that exchanges the extent from two morphs.... ok, hard to describe. It's just a splitter.\n\nInspired by the resize corner, it latebinds into the ui, by placing it ontop two adjacent morphs.","migrationLevel":4,"partName":"SplitterMorph","changes":[{"__isSmartRef__":true,"id":2872},{"__isSmartRef__":true,"id":2874},{"__isSmartRef__":true,"id":2876},{"__isSmartRef__":true,"id":2878},{"__isSmartRef__":true,"id":2880},{"__isSmartRef__":true,"id":2882},{"__isSmartRef__":true,"id":2884},{"__isSmartRef__":true,"id":2886},{"__isSmartRef__":true,"id":2888},{"__isSmartRef__":true,"id":2890}],"revisionOnLoad":184652,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2872":{"date":{"__isSmartRef__":true,"id":2873},"author":"jenslincke","message":"no comment","id":"3FF2C8E3-9B5C-4846-B328-5B9DE699E342"},"2873":{"isSerializedDate":true,"string":"Thu Nov 22 2012 14:01:17 GMT+0100 (W. Europe Standard Time)"},"2874":{"date":{"__isSmartRef__":true,"id":2875},"author":"jenslincke","message":"no comment","id":"4D8DFE4C-2980-4B5F-A1E9-E4C650CBA0C6"},"2875":{"isSerializedDate":true,"string":"Thu Nov 22 2012 14:01:14 GMT+0100 (W. Europe Standard Time)"},"2876":{"date":{"__isSmartRef__":true,"id":2877},"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205"},"2877":{"isSerializedDate":true,"string":"Thu Nov 22 2012 10:35:51 GMT+0100 (W. Europe Standard Time)"},"2878":{"date":{"__isSmartRef__":true,"id":2879},"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8"},"2879":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"2880":{"date":{"__isSmartRef__":true,"id":2881},"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350"},"2881":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"2882":{"date":{"__isSmartRef__":true,"id":2883},"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7"},"2883":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"2884":{"date":{"__isSmartRef__":true,"id":2885},"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B"},"2885":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"2886":{"date":{"__isSmartRef__":true,"id":2887},"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2"},"2887":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"2888":{"date":{"__isSmartRef__":true,"id":2889},"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC"},"2889":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"2890":{"date":{"__isSmartRef__":true,"id":2891},"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23"},"2891":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"2892":{"morph":{"__isSmartRef__":true,"id":2869},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2893":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2894}},"2894":{"test01IsMorph":{"__isSmartRef__":true,"id":2895}},"2895":{"varMapping":{"__isSmartRef__":true,"id":2896},"source":"function test01IsMorph(aPart) {\n this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":2897},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2896":{"this":{"__isSmartRef__":true,"id":2893}},"2897":{},"2898":{"moveVertical":true,"moveHorizontal":true},"2899":{"onDrag":{"__isSmartRef__":true,"id":2900},"onDragEnd":{"__isSmartRef__":true,"id":2908},"onDragStart":{"__isSmartRef__":true,"id":2916},"getSiblingsAtCorner":{"__isSmartRef__":true,"id":2924}},"2900":{"varMapping":{"__isSmartRef__":true,"id":2901},"source":"function onDrag(evt) {\n var moveDelta = evt.mousePoint.subPt(this.dragStartPoint)\n\n moveDelta.x = 0;\n if (!this.morphA || !this.morphB) return;\n \n var newExtent = this.originalMorphAExtent.addPt(moveDelta);\n this.morphA.setExtent(newExtent);\n\n this.morphB.setPosition(this.originalMorphBPosition.addPt(moveDelta));\n moveDelta.y = - moveDelta.y;\n this.morphB.setExtent(this.originalMorphBExtent.addPt(moveDelta));\n\n this.setBounds(\n rect(this.morphA.bounds().bottomRight().subPt(pt(20,20)),\n this.morphB.bounds().topRight().addPt(pt(0,20))));\n\n this.setExtent(pt(this.getExtent().x, Math.max(this.getExtent().y, 20)))\n\n}","funcProperties":{"__isSmartRef__":true,"id":2906},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2901":{"this":{"__isSmartRef__":true,"id":2869},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2902}},"2902":{"$super":{"__isSmartRef__":true,"id":2903}},"2903":{"varMapping":{"__isSmartRef__":true,"id":2904},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2905},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2904":{"obj":{"__isSmartRef__":true,"id":2869},"name":"onDrag"},"2905":{},"2906":{"timestamp":{"__isSmartRef__":true,"id":2907},"user":"jenslincke","tags":[]},"2907":{"isSerializedDate":true,"string":"Thu Nov 22 2012 13:58:16 GMT+0100 (W. Europe Standard Time)"},"2908":{"varMapping":{"__isSmartRef__":true,"id":2909},"source":"function onDragEnd(evt) {\n this.morphA = null;\n this.morphB = null;\n this.originalMorphAExtent = null;\n this.originalMorphBExtent = null;\n}","funcProperties":{"__isSmartRef__":true,"id":2914},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2909":{"this":{"__isSmartRef__":true,"id":2869},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2910}},"2910":{"$super":{"__isSmartRef__":true,"id":2911}},"2911":{"varMapping":{"__isSmartRef__":true,"id":2912},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2913},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2912":{"obj":{"__isSmartRef__":true,"id":2869},"name":"onDragEnd"},"2913":{},"2914":{"timestamp":{"__isSmartRef__":true,"id":2915},"user":"jenslincke","tags":[]},"2915":{"isSerializedDate":true,"string":"Thu Nov 22 2012 12:32:59 GMT+0100 (W. Europe Standard Time)"},"2916":{"varMapping":{"__isSmartRef__":true,"id":2917},"source":"function onDragStart(evt) {\n this.dragStartPoint = evt.mousePoint;\n this.morphA = this.getSiblingsAtCorner(\"topLeft\")[0]\n this.morphB = this.getSiblingsAtCorner(\"bottomLeft\")[0]\n\n if (!this.morphA || !this.morphB) return;\n\n this.originalMorphAExtent = this.morphA.getExtent();\n this.originalMorphBExtent = this.morphB.getExtent();\n this.originalMorphBPosition = this.morphB.getPosition();\n\n}","funcProperties":{"__isSmartRef__":true,"id":2922},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2917":{"this":{"__isSmartRef__":true,"id":2869},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2918}},"2918":{"$super":{"__isSmartRef__":true,"id":2919}},"2919":{"varMapping":{"__isSmartRef__":true,"id":2920},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":2921},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2920":{"obj":{"__isSmartRef__":true,"id":2869},"name":"onDragStart"},"2921":{},"2922":{"timestamp":{"__isSmartRef__":true,"id":2923},"user":"jenslincke","tags":[]},"2923":{"isSerializedDate":true,"string":"Thu Nov 22 2012 13:44:37 GMT+0100 (W. Europe Standard Time)"},"2924":{"varMapping":{"__isSmartRef__":true,"id":2925},"source":"function getSiblingsAtCorner(corner) {\n // this.getSiblingsAtCorner(\"topLeft\")\n var p = this.bounds()[corner]()\n var self= this;\n return this.owner.submorphs.select(function(ea) {\n return (ea !== self) && ea.bounds().containsPoint(p)\n })\n}","funcProperties":{"__isSmartRef__":true,"id":2926},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2925":{"this":{"__isSmartRef__":true,"id":2869}},"2926":{"timestamp":{"__isSmartRef__":true,"id":2927},"user":"jenslincke","tags":[]},"2927":{"isSerializedDate":true,"string":"Thu Nov 22 2012 12:28:43 GMT+0100 (W. Europe Standard Time)"},"2928":{"submorphs":[],"scripts":[],"id":"E6CB4FD4-78EC-4EC9-8D57-6837AE39CB05","shape":{"__isSmartRef__":true,"id":2929},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":11,"name":"QueryName","partsBinMetaInfo":{"__isSmartRef__":true,"id":2930},"textChunks":[{"__isSmartRef__":true,"id":2946}],"charsReplaced":"CountScriptsByName","lastFindLoc":18,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":2948},"_ClipMode":"visible","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":2390},"attributeConnections":[{"__isSmartRef__":true,"id":2949}],"doNotSerialize":["$$textString"],"doNotCopyProperties":["$$textString"],"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"draggingEnabled":false,"savedTextString":"AllScriptsThatUseLayers","_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"textString":"CountScriptsBySource","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(515.8,1.4)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(201.3,-13.5)"},"2929":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(301.0,21.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"2930":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":2931},{"__isSmartRef__":true,"id":2933},{"__isSmartRef__":true,"id":2935},{"__isSmartRef__":true,"id":2937},{"__isSmartRef__":true,"id":2939},{"__isSmartRef__":true,"id":2941},{"__isSmartRef__":true,"id":2943}],"revisionOnLoad":193597,"lastModifiedDate":{"__isSmartRef__":true,"id":2945},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2931":{"date":{"__isSmartRef__":true,"id":2932},"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62"},"2932":{"isSerializedDate":true,"string":"Tue Mar 12 2013 17:31:56 GMT+0100 (W. Europe Standard Time)"},"2933":{"date":{"__isSmartRef__":true,"id":2934},"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194"},"2934":{"isSerializedDate":true,"string":"Tue May 08 2012 14:18:18 GMT+0200 (W. Europe Summer Time)"},"2935":{"date":{"__isSmartRef__":true,"id":2936},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9"},"2936":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:32:09 GMT+0200 (W. Europe Summer Time)"},"2937":{"date":{"__isSmartRef__":true,"id":2938},"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF"},"2938":{"isSerializedDate":true,"string":"Sat Apr 21 2012 07:31:43 GMT+0200 (W. Europe Summer Time)"},"2939":{"date":{"__isSmartRef__":true,"id":2940},"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)). This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F"},"2940":{"isSerializedDate":true,"string":"Mon Feb 27 2012 06:20:38 GMT+0100 (W. Europe Standard Time)"},"2941":{"date":{"__isSmartRef__":true,"id":2942},"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0"},"2942":{"isSerializedDate":true,"string":"Sat Apr 21 2012 16:30:30 GMT+0200 (W. Europe Summer Time)"},"2943":{"date":{"__isSmartRef__":true,"id":2944},"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598"},"2944":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:36:22 GMT+0100 (W. Europe Standard Time)"},"2945":{"isSerializedDate":true,"string":"Tue Mar 12 2013 18:35:33 GMT+0100 (W. Europe Standard Time)"},"2946":{"style":{"__isSmartRef__":true,"id":2947},"chunkOwner":{"__isSmartRef__":true,"id":2928},"_id":"_1152","storedString":"CountScriptsBySource","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2947":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2948":{"morph":{"__isSmartRef__":true,"id":2928},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2949":{"sourceObj":{"__isSmartRef__":true,"id":2928},"sourceAttrName":"textString","targetObj":{"__isSmartRef__":true,"id":2390},"targetMethodName":"onQueryChanged","varMapping":{"__isSmartRef__":true,"id":2950},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2950":{"source":{"__isSmartRef__":true,"id":2928},"target":{"__isSmartRef__":true,"id":2390}},"2951":{"submorphs":[{"__isSmartRef__":true,"id":2952},{"__isSmartRef__":true,"id":2994},{"__isSmartRef__":true,"id":3028}],"scripts":[{"__isSmartRef__":true,"id":3126}],"id":"FEA14503-0E2E-4735-8385-A80F98F6CB12","shape":{"__isSmartRef__":true,"id":3127},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"Rectangle2","partsBinMetaInfo":{"__isSmartRef__":true,"id":3128},"eventHandler":{"__isSmartRef__":true,"id":3162},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","F2677A9D-5855-4DF2-B248-94545B34B762","D52188B3-7DC0-410E-96B1-50892AC00A37","A9DD4821-1811-4D42-8F97-EC4BB972C922"],"partTests":{"__isSmartRef__":true,"id":3163},"_ClipMode":"visible","moved":true,"prevScroll":[0,0],"isBeingDragged":false,"_PreviousBorderWidth":1,"layout":{"__isSmartRef__":true,"id":3168},"owner":{"__isSmartRef__":true,"id":2390},"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3169},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(12.6,274.9)","distanceToDragEvent":"lively.pt(580.2,-12.7)"},"2952":{"submorphs":[{"__isSmartRef__":true,"id":2953}],"scripts":[],"id":"35C32C58-4867-4EB0-9A80-39D7B4DFDD7E","shape":{"__isSmartRef__":true,"id":2958},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"registeredForMouseEvents":true,"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":2959},"lighterFill":{"__isSmartRef__":true,"id":2964},"label":{"__isSmartRef__":true,"id":2953},"name":"ToggleButton","showsHalos":false,"partsBinMetaInfo":{"__isSmartRef__":true,"id":2969},"attributeConnections":[{"__isSmartRef__":true,"id":2975},{"__isSmartRef__":true,"id":2976},{"__isSmartRef__":true,"id":2978}],"doNotSerialize":["$$fire","$$enable","$$disable"],"doNotCopyProperties":["$$fire","$$enable","$$disable"],"eventHandler":{"__isSmartRef__":true,"id":2980},"derivationIds":[2588,"C96F474C-1F3A-4E42-844C-DD2EB76BDD7E","E36FA68D-6317-416A-99FA-0ED81E4193DA","06258075-AC5A-4CAB-A248-A66D3213816C","CDA09F34-CAD5-4676-B1DB-DC916140F8A4"],"_ClipMode":"visible","isPressed":false,"isToggled":false,"connections":{"__isSmartRef__":true,"id":2981},"moved":true,"owner":{"__isSmartRef__":true,"id":2951},"prevScroll":[0,0],"_PreviousBorderWidth":1,"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":2985},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(0.0,0.0)","distanceToDragEvent":"lively.pt(50.0,-16.0)"},"2953":{"submorphs":[],"scripts":[],"id":"5397AEA1-15AE-4410-B586-3302AA580037","shape":{"__isSmartRef__":true,"id":2954},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","registeredForMouseEvents":true,"_MaxTextWidth":105,"_MaxTextHeight":null,"textStyle":null,"owner":{"__isSmartRef__":true,"id":2952},"isLabel":true,"eventsAreIgnored":true,"_ClipMode":"hidden","textChunks":[{"__isSmartRef__":true,"id":2955}],"_Align":"center","eventHandler":{"__isSmartRef__":true,"id":2957},"_HandStyle":"default","_PointerEvents":"none","derivationIds":[2589,"44787449-DE07-40ED-B4D3-89A4A185AE29","F4BC3D0F-FF03-4EFC-B727-951442606730","277CDAEF-77E0-49F1-BD6F-1630D7ECC2E1","AFB69E81-8BC4-4AF9-916E-18E37732D7C5"],"_MinTextWidth":105,"_MinTextHeight":null,"_WordBreak":"break-all","_FontSize":10,"_TextStylingMode":true,"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_Position","padding","_Padding","_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(0.0,0.0)","padding":"lively.rect(5,5,0,0)","_Padding":"lively.rect(0,0,0,0)","_TextColor":"Color.rgb(0,0,0)"},"2954":{"_BorderWidth":0,"_Fill":null,"_ClipMode":"hidden","__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(70.0,22.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(0,3,0,0)"},"2955":{"style":{"__isSmartRef__":true,"id":2956},"chunkOwner":{"__isSmartRef__":true,"id":2953},"_id":"_30181","storedString":"[X] progress","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2956":{"textShadow":"0px 1px 0 rgba(255,255,255,0.1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2957":{"morph":{"__isSmartRef__":true,"id":2953},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2958":{"_BorderWidth":1,"_Fill":{"__isSmartRef__":true,"id":2959},"_BorderRadius":5.2,"_ClipMode":"visible","_BorderStylingMode":true,"_AppearanceStylingMode":true,"__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(70.0,22.0)","_BorderColor":"Color.rgb(214,214,214)","_Padding":"lively.rect(0,0,0,0)"},"2959":{"stops":[{"__isSmartRef__":true,"id":2960},{"__isSmartRef__":true,"id":2961},{"__isSmartRef__":true,"id":2962},{"__isSmartRef__":true,"id":2963}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"2960":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(245,245,245)"},"2961":{"offset":0.4,"__serializedExpressions__":["color"],"color":"Color.rgb(209,209,209)"},"2962":{"offset":0.6,"__serializedExpressions__":["color"],"color":"Color.rgb(209,209,209)"},"2963":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(240,240,240)"},"2964":{"stops":[{"__isSmartRef__":true,"id":2965},{"__isSmartRef__":true,"id":2966},{"__isSmartRef__":true,"id":2967},{"__isSmartRef__":true,"id":2968}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"2965":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(250,250,250)"},"2966":{"offset":0.4,"__serializedExpressions__":["color"],"color":"Color.rgb(232,232,232)"},"2967":{"offset":0.6,"__serializedExpressions__":["color"],"color":"Color.rgb(232,232,232)"},"2968":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(248,248,248)"},"2969":{"partsSpaceName":"PartsBin/Inputs/","migrationLevel":4,"partName":"ToggleButton","comment":"A toggle button:\n- emits, toggle, enable, disable on pressed.\n- changes label","changes":[{"__isSmartRef__":true,"id":2970},{"__isSmartRef__":true,"id":2972}],"lastModifiedDate":{"__isSmartRef__":true,"id":2974},"revisionOnLoad":192292,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"2970":{"date":{"__isSmartRef__":true,"id":2971},"author":"jenslincke","message":"no comment","id":"7471CE07-F2C0-4149-9684-90E843DB8DCE"},"2971":{"isSerializedDate":true,"string":"Fri Feb 08 2013 10:43:34 GMT+0100 (W. Europe Standard Time)"},"2972":{"date":{"__isSmartRef__":true,"id":2973},"author":"jenslincke","message":"no comment","id":"02AB5A6F-7748-4A48-8C36-D334F97FC321"},"2973":{"isSerializedDate":true,"string":"Thu Feb 07 2013 17:57:46 GMT+0100 (W. Europe Standard Time)"},"2974":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"2975":{"sourceObj":{"__isSmartRef__":true,"id":2952},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2952},"targetMethodName":"onFire","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2976":{"sourceObj":{"__isSmartRef__":true,"id":2952},"sourceAttrName":"enable","targetObj":{"__isSmartRef__":true,"id":2951},"targetMethodName":"start","varMapping":{"__isSmartRef__":true,"id":2977},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2977":{"source":{"__isSmartRef__":true,"id":2952},"target":{"__isSmartRef__":true,"id":2951}},"2978":{"sourceObj":{"__isSmartRef__":true,"id":2952},"sourceAttrName":"disable","targetObj":{"__isSmartRef__":true,"id":2951},"targetMethodName":"stop","varMapping":{"__isSmartRef__":true,"id":2979},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"2979":{"source":{"__isSmartRef__":true,"id":2952},"target":{"__isSmartRef__":true,"id":2951}},"2980":{"morph":{"__isSmartRef__":true,"id":2952},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"2981":{"enable":{"__isSmartRef__":true,"id":2982},"disable":{"__isSmartRef__":true,"id":2983},"toggle":{"__isSmartRef__":true,"id":2984}},"2982":{},"2983":{},"2984":{},"2985":{"onFire":{"__isSmartRef__":true,"id":2986},"reset":{"__isSmartRef__":true,"id":2990}},"2986":{"varMapping":{"__isSmartRef__":true,"id":2987},"source":"function onFire() {\n\t\n if (this.isToggled) {\n this.setLabel(\"[X] progress\")\n lively.bindings.signal(this, 'enable', true)\n lively.bindings.signal(this, 'toggle', true)\n } else {\n this.setLabel(\"[ ] progress\")\n lively.bindings.signal(this, 'disable', true)\n lively.bindings.signal(this, 'toggle', false)\n }\n this.isToggled = !this.isToggled;\n}","funcProperties":{"__isSmartRef__":true,"id":2988},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2987":{"this":{"__isSmartRef__":true,"id":2952}},"2988":{"timestamp":{"__isSmartRef__":true,"id":2989},"user":"jenslincke","tags":[]},"2989":{"isSerializedDate":true,"string":"Wed Sep 11 2013 11:45:20 GMT+0200 (W. Europe Summer Time)"},"2990":{"varMapping":{"__isSmartRef__":true,"id":2991},"source":"function reset() {\n this.connections = {\"enable\": { }, \"disable\": { }, \"toggle\": { }}\n}","funcProperties":{"__isSmartRef__":true,"id":2992},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"2991":{"this":{"__isSmartRef__":true,"id":2952}},"2992":{"timestamp":{"__isSmartRef__":true,"id":2993},"user":"jenslincke","tags":[]},"2993":{"isSerializedDate":true,"string":"Fri Feb 08 2013 10:42:06 GMT+0100 (W. Europe Standard Time)"},"2994":{"submorphs":[{"__isSmartRef__":true,"id":2995}],"scripts":[],"shape":{"__isSmartRef__":true,"id":3000},"eventHandler":{"__isSmartRef__":true,"id":3001},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D","87CD591C-7F46-49E8-9964-D416081BF2BC"],"id":"290B757C-DC2B-40F0-8EB0-FB1F7C75D6CB","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":2995},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":3002},{"__isSmartRef__":true,"id":3004}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button17","partsBinMetaInfo":{"__isSmartRef__":true,"id":3006},"pinSpecs":[{"__isSmartRef__":true,"id":3022}],"owner":{"__isSmartRef__":true,"id":2951},"prevScroll":[0,0],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3023},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(80.0,0.0)","distanceToDragEvent":"lively.pt(69.0,-11.0)"},"2995":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":2996},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":2997}],"eventHandler":{"__isSmartRef__":true,"id":2999},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4","93BA17F4-A2DA-47A1-BD97-2FBD0CA68D41"],"id":"652ED1D6-A977-4F17-83BC-A4594CA9E11F","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":3,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":2994},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"2996":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"2997":{"style":{"__isSmartRef__":true,"id":2998},"chunkOwner":{"__isSmartRef__":true,"id":2995},"_id":"_32255","storedString":"Force Stop","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2998":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"2999":{"morph":{"__isSmartRef__":true,"id":2995},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3000":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"3001":{"morph":{"__isSmartRef__":true,"id":2994},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3002":{"sourceObj":{"__isSmartRef__":true,"id":2994},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2994},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":3003},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3003":{"source":{"__isSmartRef__":true,"id":2994},"target":{"__isSmartRef__":true,"id":2994}},"3004":{"sourceObj":{"__isSmartRef__":true,"id":2994},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":2951},"targetMethodName":"forceStopAllQueries","varMapping":{"__isSmartRef__":true,"id":3005},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3005":{"source":{"__isSmartRef__":true,"id":2994},"target":{"__isSmartRef__":true,"id":2951}},"3006":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":3007},{"__isSmartRef__":true,"id":3009},{"__isSmartRef__":true,"id":3011},{"__isSmartRef__":true,"id":3013},{"__isSmartRef__":true,"id":3015},{"__isSmartRef__":true,"id":3017},{"__isSmartRef__":true,"id":3019}],"migrationLevel":7,"lastModifiedDate":{"__isSmartRef__":true,"id":3021},"revisionOnLoad":196350,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"3007":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","date":{"__isSmartRef__":true,"id":3008}},"3008":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:15:42 GMT+0100 (W. Europe Standard Time)"},"3009":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","date":{"__isSmartRef__":true,"id":3010}},"3010":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:53:16 GMT+0100 (W. Europe Standard Time)"},"3011":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","date":{"__isSmartRef__":true,"id":3012}},"3012":{"isSerializedDate":true,"string":"Wed May 01 2013 05:34:25 GMT+0200 (W. Europe Summer Time)"},"3013":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","date":{"__isSmartRef__":true,"id":3014}},"3014":{"isSerializedDate":true,"string":"Wed May 01 2013 05:35:59 GMT+0200 (W. Europe Summer Time)"},"3015":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","date":{"__isSmartRef__":true,"id":3016}},"3016":{"isSerializedDate":true,"string":"Wed May 01 2013 05:36:30 GMT+0200 (W. Europe Summer Time)"},"3017":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","date":{"__isSmartRef__":true,"id":3018}},"3018":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:22:38 GMT+0200 (W. Europe Summer Time)"},"3019":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","date":{"__isSmartRef__":true,"id":3020}},"3020":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:50 GMT+0200 (W. Europe Summer Time)"},"3021":{"isSerializedDate":true,"string":"Mon Jun 17 2013 19:24:29 GMT+0200 (W. Europe Summer Time)"},"3022":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"3023":{"doAction":{"__isSmartRef__":true,"id":3024}},"3024":{"varMapping":{"__isSmartRef__":true,"id":3025},"source":"function doAction() {\n \n}","funcProperties":{"__isSmartRef__":true,"id":3026},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3025":{"this":{"__isSmartRef__":true,"id":2994}},"3026":{"user":"undefined","tags":[],"timestamp":{"__isSmartRef__":true,"id":3027}},"3027":{"isSerializedDate":true,"string":"Tue Dec 11 2012 22:14:29 GMT+0100 (W. Europe Standard Time)"},"3028":{"submorphs":[{"__isSmartRef__":true,"id":3029}],"scripts":[],"id":"786FE8FB-8B33-4859-A9B5-9DCA7E2F8E1F","shape":{"__isSmartRef__":true,"id":3083},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"ProgressContainer","partsBinMetaInfo":{"__isSmartRef__":true,"id":3084},"eventHandler":{"__isSmartRef__":true,"id":3118},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","F2677A9D-5855-4DF2-B248-94545B34B762","D52188B3-7DC0-410E-96B1-50892AC00A37","B8321045-5F1C-4C59-85FB-8BF8F3C42C65"],"partTests":{"__isSmartRef__":true,"id":3119},"_ClipMode":"visible","moved":true,"owner":{"__isSmartRef__":true,"id":2951},"layout":{"__isSmartRef__":true,"id":3124},"isInLayoutCycle":false,"#startLetters":"adj","prevScroll":[0,0],"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(-2.3,22.7)","distanceToDragEvent":"lively.pt(581.1,-14.9)"},"3029":{"submorphs":[{"__isSmartRef__":true,"id":3030},{"__isSmartRef__":true,"id":3038}],"scripts":[],"shape":{"__isSmartRef__":true,"id":3074},"id":"621C9377-8555-4E55-AE88-1924749B53F5","eventHandler":{"__isSmartRef__":true,"id":3075},"__layered_droppingEnabled__":true,"halosEnabled":true,"_ClipMode":"hidden","layout":{"__isSmartRef__":true,"id":3076},"progressMorph":{"__isSmartRef__":true,"id":3038},"labelBlack":{"__isSmartRef__":true,"id":3030},"labelWhite":{"__isSmartRef__":true,"id":3033},"value":0,"showsHalos":false,"partsBinMetaInfo":{"__isSmartRef__":true,"id":3077},"name":"QueryProgress","isCopyMorphRef":true,"morphRefId":1,"isBeingDragged":false,"derivationIds":[706,"F94F9840-ABD8-45AD-960F-CE4C1180A420","5BD7DE93-63B6-4842-A583-A18404692695","D2A9BBDF-D2AD-44FE-9034-CEA5DADEFB36","2E32D575-0313-4CEE-8357-7D23ECCA936A","DF586DBD-BF99-43A9-B307-F8370CD73690"],"moved":true,"prevScroll":[0,0],"grabbingEnabled":false,"owner":{"__isSmartRef__":true,"id":3028},"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.ProgressBar","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(2.0,2.0)","distanceToDragEvent":"lively.pt(578.5,-19.1)"},"3030":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":3031},"id":"CBFBE840-EE74-493B-94D3-712E14F039CE","textChunks":[{"__isSmartRef__":true,"id":3057}],"eventHandler":{"__isSmartRef__":true,"id":3059},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"evalEnabled":false,"isLabel":true,"_HandStyle":"default","layout":{"__isSmartRef__":true,"id":3060},"_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","owner":{"__isSmartRef__":true,"id":3029},"_MaxTextWidth":200,"_MaxTextHeight":null,"attributeConnections":[{"__isSmartRef__":true,"id":3045},{"__isSmartRef__":true,"id":3061},{"__isSmartRef__":true,"id":3062},{"__isSmartRef__":true,"id":3064}],"doNotSerialize":["$$_Position"],"doNotCopyProperties":["$$_Position"],"_MinTextWidth":200,"_MinTextHeight":null,"isCopyMorphRef":true,"morphRefId":2,"derivationIds":[707,"F24F9AD0-E9D1-43F5-A740-13CC2067F2A6","F1F456E1-40DE-40AE-9738-3C3E83B78350","C3E55575-BBB5-43FF-8EBC-C7560B01166A","333FB53F-D8C1-4D6C-B637-F43EADD505C9","33B5F476-5B7F-42FA-865D-A81D2B957E51"],"_WordBreak":"break-all","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"showsHalos":false,"__serializedExpressions__":["_Padding","_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Padding":"lively.rect(2,1,0,0)","_TextColor":"Color.rgb(0,0,0)","_Position":"lively.pt(0.0,-3.0)"},"3031":{"_BorderWidth":0,"_Fill":null,"attributeConnections":[{"__isSmartRef__":true,"id":3032},{"__isSmartRef__":true,"id":3046}],"doNotSerialize":["$$_Extent"],"doNotCopyProperties":["$$_Extent"],"_ClipMode":"hidden","__serializedExpressions__":["_Position","_BorderColor","_Padding","_Extent"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(0,3,0,0)","_Extent":"lively.pt(857.5,22.0)"},"3032":{"sourceObj":{"__isSmartRef__":true,"id":3031},"sourceAttrName":"_Extent","targetObj":{"__isSmartRef__":true,"id":3033},"targetMethodName":"setExtent","dependedBy":{"__isSmartRef__":true,"id":3045},"varMapping":{"__isSmartRef__":true,"id":3056},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3033":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":3034},"id":"7FDFE5BF-693A-4149-B90D-26A62002C95F","textChunks":[{"__isSmartRef__":true,"id":3035}],"eventHandler":{"__isSmartRef__":true,"id":3037},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"_ClipMode":"hidden","fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","_FontSize":11,"evalEnabled":false,"isLabel":true,"_HandStyle":"default","_Align":"center","eventsAreIgnored":true,"_PointerEvents":"none","owner":{"__isSmartRef__":true,"id":3038},"_MaxTextWidth":200,"_MaxTextHeight":null,"_MinTextWidth":200,"_MinTextHeight":null,"isCopyMorphRef":true,"morphRefId":3,"derivationIds":[709,"2A5B7D1F-6005-4BB2-8500-34389B780094","912145B1-D877-4FA4-85A4-0ED0F512C5D0","9BF7D558-70BF-4A74-9EC6-83C66DB313CE","7BA7D178-AF2F-4B48-A573-0D52E5F6E8C5","C450FFC2-3663-4919-B9FF-72550D42F225"],"_WordBreak":"break-all","lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"showsHalos":false,"__serializedExpressions__":["_Padding","_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Padding":"lively.rect(2,1,0,0)","_TextColor":"Color.rgb(255,255,255)","_Position":"lively.pt(0.0,-3.0)"},"3034":{"_BorderWidth":0,"_Fill":null,"_ClipMode":"hidden","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(857.5,22.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(0,0,0,0)"},"3035":{"style":{"__isSmartRef__":true,"id":3036},"chunkOwner":{"__isSmartRef__":true,"id":3033},"_id":"_1713","storedString":"no progress","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"3036":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"3037":{"morph":{"__isSmartRef__":true,"id":3033},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3038":{"submorphs":[{"__isSmartRef__":true,"id":3033}],"scripts":[],"shape":{"__isSmartRef__":true,"id":3039},"id":"AAF9F483-17B3-474F-8C5F-835FCC26BE52","eventHandler":{"__isSmartRef__":true,"id":3043},"__layered_droppingEnabled__":true,"halosEnabled":true,"owner":{"__isSmartRef__":true,"id":3029},"_ClipMode":"hidden","layout":{"__isSmartRef__":true,"id":3044},"eventsAreIgnored":true,"_HandStyle":"default","_PointerEvents":"none","isCopyMorphRef":true,"morphRefId":1,"derivationIds":[708,"5F3C6202-324D-40FF-9F1D-840F47170D78","B17E7D2B-EAAC-423F-8643-B7093A1EC474","8008F2DA-2813-4138-AD6C-2634571B35E4","56884B25-71BB-43D2-8519-E097CE6ECFB4","E8054854-4342-4E26-AD61-75B31AC1BD31"],"showsHalos":false,"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,0.0)"},"3039":{"_BorderWidth":1,"_Fill":{"__isSmartRef__":true,"id":3040},"_BorderRadius":"5px 0px 0px 5px","_ClipMode":"hidden","_Opacity":1,"__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(0.0,16.0)","_BorderColor":"Color.rgb(170,170,170)","_Padding":"lively.rect(0,0,0,0)"},"3040":{"stops":[{"__isSmartRef__":true,"id":3041},{"__isSmartRef__":true,"id":3042}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"3041":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(223,223,223)"},"3042":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(204,204,204)"},"3043":{"morph":{"__isSmartRef__":true,"id":3038},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3044":{"scaleHorizontal":true,"scaleVertical":true},"3045":{"sourceObj":{"__isSmartRef__":true,"id":3030},"sourceAttrName":"extent","targetObj":{"__isSmartRef__":true,"id":3033},"targetMethodName":"setExtent","dependendConnections":[{"__isSmartRef__":true,"id":3032},{"__isSmartRef__":true,"id":3032},{"__isSmartRef__":true,"id":3032},{"__isSmartRef__":true,"id":3046}],"attributeConnections":[{"__isSmartRef__":true,"id":3048},{"__isSmartRef__":true,"id":3050},{"__isSmartRef__":true,"id":3052},{"__isSmartRef__":true,"id":3054}],"doNotSerialize":["$$converterString","$$updaterString","$$varMapping"],"doNotCopyProperties":["$$converterString","$$updaterString","$$varMapping"],"__LivelyClassName__":"lively.morphic.GeometryConnection","__SourceModuleName__":"Global.lively.bindings.GeometryBindings"},"3046":{"sourceObj":{"__isSmartRef__":true,"id":3031},"sourceAttrName":"_Extent","targetObj":{"__isSmartRef__":true,"id":3045},"targetMethodName":"update","varMapping":{"__isSmartRef__":true,"id":3047},"dependedBy":{"__isSmartRef__":true,"id":3045},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3047":{"source":{"__isSmartRef__":true,"id":3031},"target":{"__isSmartRef__":true,"id":3045}},"3048":{"sourceObj":{"__isSmartRef__":true,"id":3045},"sourceAttrName":"converterString","targetObj":{"__isSmartRef__":true,"id":3032},"targetMethodName":"setConverter","varMapping":{"__isSmartRef__":true,"id":3049},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3049":{"source":{"__isSmartRef__":true,"id":3045},"target":{"__isSmartRef__":true,"id":3032}},"3050":{"sourceObj":{"__isSmartRef__":true,"id":3045},"sourceAttrName":"updaterString","targetObj":{"__isSmartRef__":true,"id":3032},"targetMethodName":"setUpdater","varMapping":{"__isSmartRef__":true,"id":3051},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3051":{"source":{"__isSmartRef__":true,"id":3045},"target":{"__isSmartRef__":true,"id":3032}},"3052":{"sourceObj":{"__isSmartRef__":true,"id":3045},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":3032},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":3053},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3053":{"source":{"__isSmartRef__":true,"id":3045},"target":{"__isSmartRef__":true,"id":3032}},"3054":{"sourceObj":{"__isSmartRef__":true,"id":3045},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":3046},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":3055},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3055":{"source":{"__isSmartRef__":true,"id":3045},"target":{"__isSmartRef__":true,"id":3046}},"3056":{"source":{"__isSmartRef__":true,"id":3031},"target":{"__isSmartRef__":true,"id":3033}},"3057":{"style":{"__isSmartRef__":true,"id":3058},"chunkOwner":{"__isSmartRef__":true,"id":3030},"_id":"_1712","storedString":"no progress","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"3058":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"3059":{"morph":{"__isSmartRef__":true,"id":3030},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3060":{"scaleHorizontal":true,"centeredVertical":true},"3061":{"sourceObj":{"__isSmartRef__":true,"id":3030},"sourceAttrName":"position","targetObj":{"__isSmartRef__":true,"id":3033},"targetMethodName":"setPosition","dependendConnections":[{"__isSmartRef__":true,"id":3062},{"__isSmartRef__":true,"id":3062},{"__isSmartRef__":true,"id":3062},{"__isSmartRef__":true,"id":3064}],"attributeConnections":[{"__isSmartRef__":true,"id":3066},{"__isSmartRef__":true,"id":3068},{"__isSmartRef__":true,"id":3070},{"__isSmartRef__":true,"id":3072}],"doNotSerialize":["$$converterString","$$updaterString","$$varMapping"],"doNotCopyProperties":["$$converterString","$$updaterString","$$varMapping"],"__LivelyClassName__":"lively.morphic.GeometryConnection","__SourceModuleName__":"Global.lively.bindings.GeometryBindings"},"3062":{"sourceObj":{"__isSmartRef__":true,"id":3030},"sourceAttrName":"_Position","targetObj":{"__isSmartRef__":true,"id":3033},"targetMethodName":"setPosition","dependedBy":{"__isSmartRef__":true,"id":3061},"varMapping":{"__isSmartRef__":true,"id":3063},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3063":{"source":{"__isSmartRef__":true,"id":3030},"target":{"__isSmartRef__":true,"id":3033}},"3064":{"sourceObj":{"__isSmartRef__":true,"id":3030},"sourceAttrName":"_Position","targetObj":{"__isSmartRef__":true,"id":3061},"targetMethodName":"update","varMapping":{"__isSmartRef__":true,"id":3065},"dependedBy":{"__isSmartRef__":true,"id":3061},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3065":{"source":{"__isSmartRef__":true,"id":3030},"target":{"__isSmartRef__":true,"id":3061}},"3066":{"sourceObj":{"__isSmartRef__":true,"id":3061},"sourceAttrName":"converterString","targetObj":{"__isSmartRef__":true,"id":3062},"targetMethodName":"setConverter","varMapping":{"__isSmartRef__":true,"id":3067},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3067":{"source":{"__isSmartRef__":true,"id":3061},"target":{"__isSmartRef__":true,"id":3062}},"3068":{"sourceObj":{"__isSmartRef__":true,"id":3061},"sourceAttrName":"updaterString","targetObj":{"__isSmartRef__":true,"id":3062},"targetMethodName":"setUpdater","varMapping":{"__isSmartRef__":true,"id":3069},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3069":{"source":{"__isSmartRef__":true,"id":3061},"target":{"__isSmartRef__":true,"id":3062}},"3070":{"sourceObj":{"__isSmartRef__":true,"id":3061},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":3062},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":3071},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3071":{"source":{"__isSmartRef__":true,"id":3061},"target":{"__isSmartRef__":true,"id":3062}},"3072":{"sourceObj":{"__isSmartRef__":true,"id":3061},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":3064},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":3073},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3073":{"source":{"__isSmartRef__":true,"id":3061},"target":{"__isSmartRef__":true,"id":3064}},"3074":{"_BorderWidth":1,"_BorderRadius":5,"_ClipMode":"hidden","_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["_Position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(857.5,16.0)","_BorderColor":"Color.rgb(170,170,170)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"3075":{"morph":{"__isSmartRef__":true,"id":3029},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3076":{"adjustForNewBounds":true,"moveHorizontal":false,"moveVertical":false,"resizeWidth":true},"3077":{"partsSpaceName":"PartsBin/Widgets/","comment":"A simple progress bar that can have a label and a value (between 0 and 1).","migrationLevel":4,"partName":"ProgressBar","changes":[{"__isSmartRef__":true,"id":3078},{"__isSmartRef__":true,"id":3080}],"lastModifiedDate":{"__isSmartRef__":true,"id":3082},"revisionOnLoad":148741,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"3078":{"date":{"__isSmartRef__":true,"id":3079},"author":"hubert.hesse","message":"Previous commit vanished automagically (It is now possible to set the value to 0)"},"3079":{"isSerializedDate":true,"string":"Wed Oct 26 2011 13:22:19 GMT+0200 (W. Europe Summer Time)"},"3080":{"date":{"__isSmartRef__":true,"id":3081},"author":"hubert.hesse","message":"Value can be 0 now"},"3081":{"isSerializedDate":true,"string":"Fri Oct 21 2011 11:11:34 GMT+0200 (W. Europe Summer Time)"},"3082":{"isSerializedDate":true,"string":"Thu Mar 07 2013 01:25:14 GMT+0100 (W. Europe Standard Time)"},"3083":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(861.5,20.0)","_BorderColor":"Color.rgb(197,197,197)","_Fill":"Color.rgb(244,244,244)","_Padding":"lively.rect(0,0,0,0)"},"3084":{"partsSpaceName":"PartsBin/Basic","comment":"A plain simple rectangle","migrationLevel":8,"partName":"Rectangle","changes":[{"__isSmartRef__":true,"id":3085},{"__isSmartRef__":true,"id":3087},{"__isSmartRef__":true,"id":3089},{"__isSmartRef__":true,"id":3091},{"__isSmartRef__":true,"id":3093},{"__isSmartRef__":true,"id":3095},{"__isSmartRef__":true,"id":3097},{"__isSmartRef__":true,"id":3099},{"__isSmartRef__":true,"id":3101},{"__isSmartRef__":true,"id":3103},{"__isSmartRef__":true,"id":3105},{"__isSmartRef__":true,"id":3107},{"__isSmartRef__":true,"id":3109},{"__isSmartRef__":true,"id":3111},{"__isSmartRef__":true,"id":3113},{"__isSmartRef__":true,"id":3115}],"lastModifiedDate":{"__isSmartRef__":true,"id":3117},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"3085":{"author":"robertkrahn","message":"no comment","id":"FBBB9C99-B61C-4D5F-8750-6E2987DF0C9C","date":{"__isSmartRef__":true,"id":3086}},"3086":{"isSerializedDate":true,"string":"Fri Jun 21 2013 00:16:24 GMT+0200 (W. Europe Summer Time)"},"3087":{"author":"robertkrahn","message":"no comment","id":"67FD74CD-7AE4-4050-ADC7-4DF73804258D","date":{"__isSmartRef__":true,"id":3088}},"3088":{"isSerializedDate":true,"string":"Thu May 30 2013 09:18:06 GMT+0200 (W. Europe Summer Time)"},"3089":{"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8","date":{"__isSmartRef__":true,"id":3090}},"3090":{"isSerializedDate":true,"string":"Wed Jan 23 2013 12:57:18 GMT+0100 (W. Europe Standard Time)"},"3091":{"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23","date":{"__isSmartRef__":true,"id":3092}},"3092":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"3093":{"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC","date":{"__isSmartRef__":true,"id":3094}},"3094":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"3095":{"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2","date":{"__isSmartRef__":true,"id":3096}},"3096":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"3097":{"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B","date":{"__isSmartRef__":true,"id":3098}},"3098":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"3099":{"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7","date":{"__isSmartRef__":true,"id":3100}},"3100":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"3101":{"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350","date":{"__isSmartRef__":true,"id":3102}},"3102":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"3103":{"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8","date":{"__isSmartRef__":true,"id":3104}},"3104":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"3105":{"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205","date":{"__isSmartRef__":true,"id":3106}},"3106":{"isSerializedDate":true,"string":"Thu Nov 22 2012 10:35:51 GMT+0100 (W. Europe Standard Time)"},"3107":{"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2","date":{"__isSmartRef__":true,"id":3108}},"3108":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:42:31 GMT+0100 (W. Europe Standard Time)"},"3109":{"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20","date":{"__isSmartRef__":true,"id":3110}},"3110":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:47:05 GMT+0100 (W. Europe Standard Time)"},"3111":{"author":"SAPLivelyScreen","message":"no comment","id":"EF145198-0649-41BD-A92E-521D98FEC49D","date":{"__isSmartRef__":true,"id":3112}},"3112":{"isSerializedDate":true,"string":"Thu May 30 2013 00:36:50 GMT+0200 (W. Europe Summer Time)"},"3113":{"author":"SAPLivelyScreen","message":"no comment","id":"7A44D8CA-6D5F-42A3-A4B4-4D7F51EECA52","date":{"__isSmartRef__":true,"id":3114}},"3114":{"isSerializedDate":true,"string":"Tue Jun 18 2013 20:49:27 GMT+0200 (W. Europe Summer Time)"},"3115":{"author":"robertkrahn","message":"no comment","id":"A452871F-4EB9-45D1-94B8-6065CBA7B8FD","date":{"__isSmartRef__":true,"id":3116}},"3116":{"isSerializedDate":true,"string":"Tue Jul 30 2013 08:20:51 GMT+0200 (W. Europe Summer Time)"},"3117":{"isSerializedDate":true,"string":"Thu Aug 15 2013 21:21:30 GMT+0200 (W. Europe Summer Time)"},"3118":{"morph":{"__isSmartRef__":true,"id":3028},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3119":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3120}},"3120":{"test01IsMorph":{"__isSmartRef__":true,"id":3121}},"3121":{"varMapping":{"__isSmartRef__":true,"id":3122},"source":"function test01IsMorph(aPart) {\n this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":3123},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3122":{"this":{"__isSmartRef__":true,"id":3119}},"3123":{},"3124":{"layouter":{"__isSmartRef__":true,"id":3125},"resizeWidth":true,"adjustForNewBounds":true,"__serializedExpressions__":["extentWithoutPlaceholder"],"extentWithoutPlaceholder":"lively.pt(861.5,20.0)"},"3125":{"defaultBorderSize":10,"defaultSpacing":15,"borderSize":2,"spacing":2,"container":{"__isSmartRef__":true,"id":3028},"__LivelyClassName__":"lively.morphic.Layout.JournalLayout","__SourceModuleName__":"Global.lively.morphic.Layout"},"3126":{"target":{"__isSmartRef__":true,"id":2951},"selector":"showProgress","args":[],"stopped":false,"tickTime":2000,"suspended":false,"__LivelyClassName__":"lively.morphic.TargetScript","__SourceModuleName__":"Global.lively.morphic.Core"},"3127":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":true,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(184.5,40.5)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"3128":{"partsSpaceName":"PartsBin/Basic","comment":"A plain simple rectangle","migrationLevel":8,"partName":"Rectangle","changes":[{"__isSmartRef__":true,"id":3129},{"__isSmartRef__":true,"id":3131},{"__isSmartRef__":true,"id":3133},{"__isSmartRef__":true,"id":3135},{"__isSmartRef__":true,"id":3137},{"__isSmartRef__":true,"id":3139},{"__isSmartRef__":true,"id":3141},{"__isSmartRef__":true,"id":3143},{"__isSmartRef__":true,"id":3145},{"__isSmartRef__":true,"id":3147},{"__isSmartRef__":true,"id":3149},{"__isSmartRef__":true,"id":3151},{"__isSmartRef__":true,"id":3153},{"__isSmartRef__":true,"id":3155},{"__isSmartRef__":true,"id":3157},{"__isSmartRef__":true,"id":3159}],"lastModifiedDate":{"__isSmartRef__":true,"id":3161},"revisionOnLoad":198774,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"3129":{"author":"robertkrahn","message":"no comment","id":"FBBB9C99-B61C-4D5F-8750-6E2987DF0C9C","date":{"__isSmartRef__":true,"id":3130}},"3130":{"isSerializedDate":true,"string":"Fri Jun 21 2013 00:16:24 GMT+0200 (W. Europe Summer Time)"},"3131":{"author":"robertkrahn","message":"no comment","id":"67FD74CD-7AE4-4050-ADC7-4DF73804258D","date":{"__isSmartRef__":true,"id":3132}},"3132":{"isSerializedDate":true,"string":"Thu May 30 2013 09:18:06 GMT+0200 (W. Europe Summer Time)"},"3133":{"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8","date":{"__isSmartRef__":true,"id":3134}},"3134":{"isSerializedDate":true,"string":"Wed Jan 23 2013 12:57:18 GMT+0100 (W. Europe Standard Time)"},"3135":{"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23","date":{"__isSmartRef__":true,"id":3136}},"3136":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"3137":{"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC","date":{"__isSmartRef__":true,"id":3138}},"3138":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"3139":{"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2","date":{"__isSmartRef__":true,"id":3140}},"3140":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"3141":{"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B","date":{"__isSmartRef__":true,"id":3142}},"3142":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"3143":{"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7","date":{"__isSmartRef__":true,"id":3144}},"3144":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"3145":{"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350","date":{"__isSmartRef__":true,"id":3146}},"3146":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"3147":{"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8","date":{"__isSmartRef__":true,"id":3148}},"3148":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"3149":{"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205","date":{"__isSmartRef__":true,"id":3150}},"3150":{"isSerializedDate":true,"string":"Thu Nov 22 2012 10:35:51 GMT+0100 (W. Europe Standard Time)"},"3151":{"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2","date":{"__isSmartRef__":true,"id":3152}},"3152":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:42:31 GMT+0100 (W. Europe Standard Time)"},"3153":{"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20","date":{"__isSmartRef__":true,"id":3154}},"3154":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:47:05 GMT+0100 (W. Europe Standard Time)"},"3155":{"author":"SAPLivelyScreen","message":"no comment","id":"EF145198-0649-41BD-A92E-521D98FEC49D","date":{"__isSmartRef__":true,"id":3156}},"3156":{"isSerializedDate":true,"string":"Thu May 30 2013 00:36:50 GMT+0200 (W. Europe Summer Time)"},"3157":{"author":"SAPLivelyScreen","message":"no comment","id":"7A44D8CA-6D5F-42A3-A4B4-4D7F51EECA52","date":{"__isSmartRef__":true,"id":3158}},"3158":{"isSerializedDate":true,"string":"Tue Jun 18 2013 20:49:27 GMT+0200 (W. Europe Summer Time)"},"3159":{"author":"robertkrahn","message":"no comment","id":"A452871F-4EB9-45D1-94B8-6065CBA7B8FD","date":{"__isSmartRef__":true,"id":3160}},"3160":{"isSerializedDate":true,"string":"Tue Jul 30 2013 08:20:51 GMT+0200 (W. Europe Summer Time)"},"3161":{"isSerializedDate":true,"string":"Thu Aug 15 2013 21:21:30 GMT+0200 (W. Europe Summer Time)"},"3162":{"morph":{"__isSmartRef__":true,"id":2951},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3163":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3164}},"3164":{"test01IsMorph":{"__isSmartRef__":true,"id":3165}},"3165":{"varMapping":{"__isSmartRef__":true,"id":3166},"source":"function test01IsMorph(aPart) {\n this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":3167},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3166":{"this":{"__isSmartRef__":true,"id":3163}},"3167":{},"3168":{"resizeWidth":false,"adjustForNewBounds":false},"3169":{"showProgress":{"__isSmartRef__":true,"id":3170},"start":{"__isSmartRef__":true,"id":3174},"stop":{"__isSmartRef__":true,"id":3178},"forceStopAllQueries":{"__isSmartRef__":true,"id":3182},"ensureProgressBars":{"__isSmartRef__":true,"id":3186}},"3170":{"varMapping":{"__isSmartRef__":true,"id":3171},"source":"function showProgress() {\n var pane = this.get(\"DerivationNeo4JGraphPane\")\n var query = pane.getQuery(\"ShowProgress\").query\n pane.disableLogging()\n pane.queryNeoGremlin(query,{}, function(result) {\n var table = JSON.parse(result)\n\n\n this.ensureProgressBars(table.data.length) \n\n if (table.data.length == 0) {\n var progress = this.get(\"ProgressContainer\").submorphs[0]\n progress.setLabel(\"no progress\")\n progress.setValue(0)\n return\n }\n table.data.each(function(row, index) {\n var progress = this.get(\"ProgressContainer\").submorphs[index]\n // alert(\"row: \" + row + \" \" + index)\n var total = Number(row[1])\n var current = Number(row[2])\n var time = Math.round((Number(row[4]) - Number(row[3])) / 1000)\n var value = current / total \n var remaining = Math.round(time / (current / total))\n var msg = row[6]\n progress.setLabel(\"\" + row[0] + \" \" + msg+\" \" + current + \" / \" + total + \" \" + time + \"s finished in aprox. \" + remaining + \"s\")\n progress.setValue(value)\n }.bind(this))\n\n }.bind(this))\n pane.enableLogging()\n}","funcProperties":{"__isSmartRef__":true,"id":3172},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3171":{"this":{"__isSmartRef__":true,"id":2951}},"3172":{"timestamp":{"__isSmartRef__":true,"id":3173},"user":"jenslincke","tags":[]},"3173":{"isSerializedDate":true,"string":"Fri Sep 20 2013 12:18:40 GMT+0200 (W. Europe Summer Time)"},"3174":{"varMapping":{"__isSmartRef__":true,"id":3175},"source":"function start() {\n this.startStepping(2000, \"showProgress\")\n}","funcProperties":{"__isSmartRef__":true,"id":3176},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3175":{"this":{"__isSmartRef__":true,"id":2951}},"3176":{"timestamp":{"__isSmartRef__":true,"id":3177},"user":"jenslincke","tags":[]},"3177":{"isSerializedDate":true,"string":"Wed Sep 11 2013 11:30:52 GMT+0200 (W. Europe Summer Time)"},"3178":{"varMapping":{"__isSmartRef__":true,"id":3179},"source":"function stop() {\n this.stopStepping()\n this.ensureProgressBars(1) \n}","funcProperties":{"__isSmartRef__":true,"id":3180},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3179":{"this":{"__isSmartRef__":true,"id":2951}},"3180":{"timestamp":{"__isSmartRef__":true,"id":3181},"user":"jenslincke","tags":[]},"3181":{"isSerializedDate":true,"string":"Thu Sep 19 2013 15:48:36 GMT+0200 (W. Europe Summer Time)"},"3182":{"varMapping":{"__isSmartRef__":true,"id":3183},"source":"function forceStopAllQueries() {\n var pane = this.get(\"DerivationNeo4JGraphPane\")\n var query = pane.getQuery('ForceStopQueries')\n var params = pane.evalQueryParams(query)\n pane.queryNeoGremlin(query.query, params)\n}","funcProperties":{"__isSmartRef__":true,"id":3184},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3183":{"this":{"__isSmartRef__":true,"id":2951}},"3184":{"timestamp":{"__isSmartRef__":true,"id":3185},"user":"jenslincke","tags":[]},"3185":{"isSerializedDate":true,"string":"Fri Sep 13 2013 10:08:20 GMT+0200 (W. Europe Summer Time)"},"3186":{"varMapping":{"__isSmartRef__":true,"id":3187},"source":"function ensureProgressBars(n) {\n // this.ensureProgressBars(4) \n // n = 2\n var bars = this.get(\"ProgressContainer\");\n bars.layout.layouter.spacing = 2\n bars.layout.layouter.borderSize = 2\n\n while(bars.submorphs.length > 1 && bars.submorphs.length > n) {\n bars.submorphs.last().remove()\n }\n while(bars.submorphs.length < n) {\n bars.addMorph(bars.submorphs[0].copy())\n }\n\n // bars.adjustForNewBounds()\n}","funcProperties":{"__isSmartRef__":true,"id":3188},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3187":{"this":{"__isSmartRef__":true,"id":2951}},"3188":{"timestamp":{"__isSmartRef__":true,"id":3189},"user":"jenslincke","tags":[]},"3189":{"isSerializedDate":true,"string":"Wed Sep 18 2013 14:12:38 GMT+0200 (W. Europe Summer Time)"},"3190":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1359.2,937.0)","_BorderColor":"Color.rgb(95,94,95)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"3191":{"partsSpaceName":"PartsBin/Jens","comment":"DerivationNeo4JGraph panel.. works together with WorldStats","migrationLevel":4,"partName":"DerivationNeo4JGraph","changes":[{"__isSmartRef__":true,"id":3192},{"__isSmartRef__":true,"id":3194},{"__isSmartRef__":true,"id":3196},{"__isSmartRef__":true,"id":3198},{"__isSmartRef__":true,"id":3200},{"__isSmartRef__":true,"id":3202},{"__isSmartRef__":true,"id":3204},{"__isSmartRef__":true,"id":3206},{"__isSmartRef__":true,"id":3208},{"__isSmartRef__":true,"id":3210},{"__isSmartRef__":true,"id":3212},{"__isSmartRef__":true,"id":3214},{"__isSmartRef__":true,"id":3216},{"__isSmartRef__":true,"id":3218},{"__isSmartRef__":true,"id":3220},{"__isSmartRef__":true,"id":3222},{"__isSmartRef__":true,"id":3224},{"__isSmartRef__":true,"id":3226},{"__isSmartRef__":true,"id":3228},{"__isSmartRef__":true,"id":3230}],"lastModifiedDate":{"__isSmartRef__":true,"id":3232},"revisionOnLoad":199210,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"3192":{"date":{"__isSmartRef__":true,"id":3193},"author":"SAPLivelyScreen","message":"no comment","id":"7A44D8CA-6D5F-42A3-A4B4-4D7F51EECA52"},"3193":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3194":{"date":{"__isSmartRef__":true,"id":3195},"author":"SAPLivelyScreen","message":"no comment","id":"EF145198-0649-41BD-A92E-521D98FEC49D"},"3195":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3196":{"date":{"__isSmartRef__":true,"id":3197},"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20"},"3197":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3198":{"date":{"__isSmartRef__":true,"id":3199},"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2"},"3199":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3200":{"date":{"__isSmartRef__":true,"id":3201},"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205"},"3201":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3202":{"date":{"__isSmartRef__":true,"id":3203},"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8"},"3203":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3204":{"date":{"__isSmartRef__":true,"id":3205},"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350"},"3205":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3206":{"date":{"__isSmartRef__":true,"id":3207},"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7"},"3207":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3208":{"date":{"__isSmartRef__":true,"id":3209},"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B"},"3209":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3210":{"date":{"__isSmartRef__":true,"id":3211},"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2"},"3211":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3212":{"date":{"__isSmartRef__":true,"id":3213},"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC"},"3213":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3214":{"date":{"__isSmartRef__":true,"id":3215},"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23"},"3215":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3216":{"date":{"__isSmartRef__":true,"id":3217},"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8"},"3217":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3218":{"date":{"__isSmartRef__":true,"id":3219},"author":"robertkrahn","message":"no comment","id":"67FD74CD-7AE4-4050-ADC7-4DF73804258D"},"3219":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3220":{"date":{"__isSmartRef__":true,"id":3221},"author":"robertkrahn","message":"no comment","id":"FBBB9C99-B61C-4D5F-8750-6E2987DF0C9C"},"3221":{"isSerializedDate":true,"string":"Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)"},"3222":{"date":{"__isSmartRef__":true,"id":3223},"author":"jenslincke","message":"no comment","id":"FD044EB5-8A49-44E3-90D3-E9A3B66E4639"},"3223":{"isSerializedDate":true,"string":"Wed Jul 24 2013 18:30:33 GMT+0200 (W. Europe Summer Time)"},"3224":{"date":{"__isSmartRef__":true,"id":3225},"author":"jenslincke","message":"no comment","id":"9BCAFA56-0C6B-4D56-A7C3-D6231F3B3D59"},"3225":{"isSerializedDate":true,"string":"Thu Jul 25 2013 16:26:28 GMT+0200 (W. Europe Summer Time)"},"3226":{"date":{"__isSmartRef__":true,"id":3227},"author":"jenslincke","message":"no comment","id":"106D89C0-4FFD-4586-8EFE-6A8EC1811F14"},"3227":{"isSerializedDate":true,"string":"Tue Jul 30 2013 19:47:15 GMT+0200 (W. Europe Summer Time)"},"3228":{"date":{"__isSmartRef__":true,"id":3229},"author":"jenslincke","message":"no comment","id":"3F51AEDA-99AD-49B5-B146-0D7D50179374"},"3229":{"isSerializedDate":true,"string":"Wed Aug 14 2013 22:43:54 GMT+0200 (W. Europe Summer Time)"},"3230":{"date":{"__isSmartRef__":true,"id":3231},"author":"jenslincke","message":"no comment","id":"CCE5BB71-D003-4568-9A75-14D74BF29DFC"},"3231":{"isSerializedDate":true,"string":"Fri Aug 23 2013 17:01:32 GMT+0200 (W. Europe Summer Time)"},"3232":{"isSerializedDate":true,"string":"Fri Aug 23 2013 17:01:26 GMT+0200 (W. Europe Summer Time)"},"3233":{"morph":{"__isSmartRef__":true,"id":2390},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3234":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3235}},"3235":{"testMaxNumbersInTable":{"__isSmartRef__":true,"id":3236},"testMaxNumbersInTableWithNull":{"__isSmartRef__":true,"id":3239},"testMinNumbersInTable":{"__isSmartRef__":true,"id":3242},"testEnsureObjectNode":{"__isSmartRef__":true,"id":3245},"exampleJSOWorld":{"__isSmartRef__":true,"id":3248},"testTableGetRowAsObject":{"__isSmartRef__":true,"id":3251},"testTreeEnsurePath":{"__isSmartRef__":true,"id":3254}},"3236":{"varMapping":{"__isSmartRef__":true,"id":3237},"source":"function testMaxNumbersInTable(aPart) {\n\n var r = aPart.maxNumbersInTable([\"a\", \"b\"], \n [[1,2],\n [3, \"bar\"],\n [null, \"bar\"],\n [\"null\", \"bar\"],\n [2,\"foo\"]])\n this.assertEquals(r.a, 3, 'wrong max');\n this.assertEquals(r.b, undefined, 'not undefined in b');\n}","funcProperties":{"__isSmartRef__":true,"id":3238},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3237":{"this":{"__isSmartRef__":true,"id":3234}},"3238":{},"3239":{"varMapping":{"__isSmartRef__":true,"id":3240},"source":"function testMaxNumbersInTableWithNull(aPart) {\n\n var r = aPart.maxNumbersInTable([\"a\", \"b\"], \n [[1,2],\n [3, \"bar\"],\n [null,\"foo\"],\n [2,\"foo2\"]])\n this.assertEquals(r.a, 3, 'wrong max');\n this.assertEquals(r.b, undefined, 'not undefined in b');\n}","funcProperties":{"__isSmartRef__":true,"id":3241},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3240":{"this":{"__isSmartRef__":true,"id":3234}},"3241":{},"3242":{"varMapping":{"__isSmartRef__":true,"id":3243},"source":"function testMinNumbersInTable(aPart) {\n\n var r = aPart.minNumbersInTable([\"a\", \"b\"], \n [[1,2],\n [3, \"bar\"],\n [2,\"foo\"]])\n this.assertEquals(r.a, 1, 'wrong max');\n this.assertEquals(r.b, undefined, 'not undefined in b');\n}","funcProperties":{"__isSmartRef__":true,"id":3244},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3243":{"this":{"__isSmartRef__":true,"id":3234}},"3244":{},"3245":{"varMapping":{"__isSmartRef__":true,"id":3246},"source":"function testEnsureObjectNode(aPart) {\n aPart.deleteAllTestObjects()\n\n var jso = this.exampleJSOWorld(aPart)\n var url = \"http://test.com/foo/bar/world.xhtml\";\n var rev = \"123\";\n var rootId = aPart.testObjectRootNodeID\n\n var jso = this.exampleJSOWorld(aPart)\n var json = JSON.serialize(jso)\n var start = Date.now()\n try {\n var node = aPart.ensureObjectNode(json, url, rev, rootId, undefined, true)\n } catch(e) {\n this.assert(false, \"ensureObjectNode broken: \" + e)\n }\n\n alertOK(\"time to upload world \" + (Date.now() - start) +\"ms\")\n this.assert(node, 'not result')\n\n\n var node2 = aPart.getObjectFromURLAndRev(url, rev, rootId);\n this.assert(node2, 'could not find node')\n\n\n var rootObject = node2.getRelationships(\"out\", \"rootObject\")[0].getEndNode();\n this.assert(rootObject, \"no rootObject\")\n\n var followRef = function(node, name) {\n var rels = node.getRelationships(\"out\")\n var ref = rels.detect(function(ea) {\n return ea.getProperty('name') == name})\n if (ref) return ref.getEndNode()\n }\n var assertRef = function(node, name) {\n this.assert(followRef(node, name), \"no \" + name + \" in \" + node)\n }.bind(this)\n\n assertRef(rootObject, \"shape\")\n assertRef(rootObject, \"eventHandler\")\n\n var eventHandlerNode = followRef(rootObject, \"eventHandler\")\n var morph2 = followRef(eventHandlerNode, \"morph\")\n this.assert(morph2, \"no back reference\")\n\n this.assertEquals(morph2.getId(), rootObject.getId(), \"cycle reference error\" )\n\n var submorphsNode = followRef(rootObject, \"submorphs\")\n\n var allSubmorphs = submorphsNode.getRelationships(\"out\", \"reference\")\n .invoke('getEndNode')\n this.assert(allSubmorphs.length > 0, \"no submorph in array\")\n this.assert(allSubmorphs[0].getProperty('name'), \"a submorph has no name\")\n\n\n // rootObject.getRelationships()\n var submorphs = rootObject.getRelationships(\"out\", \"submorph\")\n .invoke('getEndNode')\n\n this.assert(submorphs, \"no submorphs\")\n this.assertEquals(submorphs.length, 3, \"wrong number of submorphs\")\n\n var textMorphNode = submorphs.detect(function(ea) {\n return ea.getProperty(\"name\") == \"FirstText\"\n })\n this.assert(textMorphNode, \"no text found in: \" + \n submorphs.collect(function(ea) {return ea.getProperty(\"__LivelyClassName__\")}))\n\n\n var joeRect = submorphs.detect(function(ea) {\n return ea.getProperty(\"name\") == \"joe\"\n })\n this.assert(joeRect , \"no joe rectangle found\")\n this.assert(joeRect.getProperty(\"_id\"), \"joe has no id\")\r\n\n var scriptsNode = followRef(joeRect, \"__serializedLivelyClosures__\")\n this.assert(scriptsNode, \"no scripts in joe\")\n var firstScript = followRef(scriptsNode , \"foo\")\n this.assert(firstScript, \"no foo script in joe\")\n\n\n\n var shapeNodeRef = textMorphNode.getRelationships(\"out\", \"reference\")\n .detect(function(ea) {\n return ea.getProperty('name') == \"shape\"\n })\n this.assert(shapeNodeRef, \"no shape node found\")\n\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":3247},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3246":{"this":{"__isSmartRef__":true,"id":3234}},"3247":{},"3248":{"varMapping":{"__isSmartRef__":true,"id":3249},"source":"function exampleJSOWorld(aPart) {\n // this.exampleJSOWorld(aPart)\n var world = new lively.morphic.World()\n world.addHandMorph()\n world.name = \"TestWorld\"\n var t = new lively.morphic.Text(new Rectangle(0,0,100,20), \"Hello\");\n t.name = \"FirstText\";\n world.addMorph(t);\n var r = lively.PartsBin.getPart(\"Rectangle\", \"PartsBin/Basic\")\n r.name = 'joe'\n r.addScript(function foo() { return 3+4})\n world.addMorph(r);\n var jso = aPart.serializeObject(world);\n return jso\n}","funcProperties":{"__isSmartRef__":true,"id":3250},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3249":{"this":{"__isSmartRef__":true,"id":3234}},"3250":{},"3251":{"varMapping":{"__isSmartRef__":true,"id":3252},"source":"function testTableGetRowAsObject(aPart) {\n var table = [\n [1, \"foo/bar\"],\n [5, \"bla/here\"]]\n var columns = [\"id\", \"path\"]\n\n var id = 5\n var row = aPart.tableGetRowAsObject(table, columns, id)\n this.assert(row, \"no row found\")\n this.assert(row.path == \"bla/here\", 'wrong path');\n}","funcProperties":{"__isSmartRef__":true,"id":3253},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3252":{"this":{"__isSmartRef__":true,"id":3234}},"3253":{},"3254":{"varMapping":{"__isSmartRef__":true,"id":3255},"source":"function testTreeEnsurePath(aPart) {\n\n\n var obj= {name: 'root', children: []}\n\n aPart.treeEnsurePath(obj, [\"hello\", \"world\"])\n aPart.treeEnsurePath(obj, [\"hello\", \"world2\"])\n aPart.treeEnsurePath(obj, [\"hello2\", \"world\"])\n\n this.assertEquals(obj.children.length, 2, 'root children wrong');\n}","funcProperties":{"__isSmartRef__":true,"id":3256},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3255":{"this":{"__isSmartRef__":true,"id":3234}},"3256":{},"3257":{"resizeWidth":true,"resizeHeight":false,"adjustForNewBounds":true},"3258":{"db":{"__isSmartRef__":true,"id":3259},"spec":{"__isSmartRef__":true,"id":3266},"__LivelyClassName__":"neo4j.Node","__SourceModuleName__":"Global.apps.Neo4j"},"3259":{"url":{"__isSmartRef__":true,"id":3260},"transWeb":null,"useCache":false,"_discoveryDocument":{"__isSmartRef__":true,"id":3261},"_serviceDefinition":{"__isSmartRef__":true,"id":3262},"#startLetters":"","__LivelyClassName__":"neo4j.GraphDatabase","__SourceModuleName__":"Global.apps.Neo4j"},"3260":{"protocol":"http:","hostname":"localhost","port":7474,"pathname":"/","search":"","hash":"","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3261":{"management":"http://localhost:7474/db/manage/","data":"http://localhost:7474/db/data/"},"3262":{"extensions":{"__isSmartRef__":true,"id":3263},"node":"http://localhost:7474/db/data/node","reference_node":"http://localhost:7474/db/data/node/0","node_index":"http://localhost:7474/db/data/index/node","relationship_index":"http://localhost:7474/db/data/index/relationship","extensions_info":"http://localhost:7474/db/data/ext","relationship_types":"http://localhost:7474/db/data/relationship/types","batch":"http://localhost:7474/db/data/batch","cypher":"http://localhost:7474/db/data/cypher","neo4j_version":"1.8.1","relationship":"http://localhost:7474/db/data/relationship"},"3263":{"CypherPlugin":{"__isSmartRef__":true,"id":3264},"GremlinPlugin":{"__isSmartRef__":true,"id":3265}},"3264":{"execute_query":"http://localhost:7474/db/data/ext/CypherPlugin/graphdb/execute_query"},"3265":{"execute_script":"http://localhost:7474/db/data/ext/GremlinPlugin/graphdb/execute_script"},"3266":{"extensions":{"__isSmartRef__":true,"id":3267},"paged_traverse":"http://localhost:7474/db/data/node/675308/paged/traverse/{returnType}{?pageSize,leaseTime}","outgoing_relationships":"http://localhost:7474/db/data/node/675308/relationships/out","traverse":"http://localhost:7474/db/data/node/675308/traverse/{returnType}","all_typed_relationships":"http://localhost:7474/db/data/node/675308/relationships/all/{-list|&|types}","property":"http://localhost:7474/db/data/node/675308/properties/{key}","all_relationships":"http://localhost:7474/db/data/node/675308/relationships/all","self":"http://localhost:7474/db/data/node/675308","properties":"http://localhost:7474/db/data/node/675308/properties","outgoing_typed_relationships":"http://localhost:7474/db/data/node/675308/relationships/out/{-list|&|types}","incoming_relationships":"http://localhost:7474/db/data/node/675308/relationships/in","incoming_typed_relationships":"http://localhost:7474/db/data/node/675308/relationships/in/{-list|&|types}","create_relationship":"http://localhost:7474/db/data/node/675308/relationships","data":{"__isSmartRef__":true,"id":3268}},"3267":{},"3268":{"name":"PartsBin","type":"PartsBin"},"3269":{"morphs":[],"connections":[]},"3270":{"name":"Log Analysis","categories":[],"query":"// \nSTART n=node(#{this.neoLogNodeID})\nMATCH n --> l\nRETURN\n MAX(id(l)) as id, replace(l.url, \"http://lively-kernel.org/repository/webwerkstatt/\",\"\") as path, MAX(l.date) as lastDate, count(l) as versions, AVG(l.loadTime?) / 1000 as loadTime \nORDER BY lastDate DESC\nLIMIT 100","parameters":"","isQuery":true},"3271":{"name":"Find World By URL and REV","categories":[],"query":"START n=node(706624)\nMATCH n --> rooDir -[:rootDirectory*..7]-> d\nWITH d\nMATCH d --> w\nWHERE w.type = \"World\" \nWITH w MATCH w -[r]-> m \nWHERE has(r.url) AND has(r.rev) AND r.url=\"http://lively-kernel.org/repository/webwerkstatt/users/jenslincke/draft/DerivationGraph.xhtml\" AND r.rev=185948\nRETURN m.id ","parameters":"","isQuery":true},"3272":{"name":"World Directories","categories":[],"query":"START n=node(706624)\nMATCH n --> rootDir \nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..7]-> d \nRETURN \n extract(e in Nodes(p) : e.name?) as PATH, \n extract(r in Relationships(p) : type(r)) \nLIMIT 100","parameters":"","isQuery":true},"3273":{"name":"World Stats","categories":[],"query":"START n=node(#{this.worldsRootNodeID})\nMATCH n --> rootDir \nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..20]-> d --> w\nWHERE w.type = 'World' \nWITH w\nMATCH w -[r]-> m\nWITH w, m, r \nMATCH m -[:submorph*0..30]-> sm\nRETURN w.name, r.rev?, count(sm) as submorphs\nORDER BY submorphs DESC LIMIT 100\n\n","parameters":"","isQuery":true},"3274":{"name":"Directory Stats","categories":[],"query":"START n=node(706624)\nMATCH n --> rootDir \nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..20]-> d \nWITH p,d\nMATCH d --> w -[r] -> m\nWHERE w.type = 'World' AND has(r.url) AND has(r.rev)\nRETURN \n count(DISTINCT r.url) as World, count(r.rev) as Revions, extract(e in Nodes(p): e.name?) as PATH\nLIMIT 100","parameters":"","isQuery":true},"3275":{"name":"Log Analys Aggregate","categories":[],"query":"// \nSTART n=node(#{this.neoLogNodeID})\nMATCH n --> l\nRETURN\n MAX(id(l)) as id, replace(l.url, \"http://lively-kernel.org/repository/webwerkstatt/\",\"\") as path, MAX(l.date) as lastDate, count(l) as versions, AVG(l.loadTime?) / 1000 as loadTime \nORDER BY lastDate DESC\nLIMIT 100","parameters":"","isQuery":true},"3276":{"name":"World Details","categories":[],"query":"START n=node(#{this.worldsRootNodeID})\nMATCH n --> rootDir \nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..20]-> d --> w\nWHERE w.type = 'World' \nWITH p,w\nMATCH w -[r]-> m\nWHERE has(r.rev) and str(r.rev!) > '1'\nWITH p, w, MAX(r.rev) as MaxRev\nMATCH w -[r]-> m\nWHERE r.rev! = MaxRev\nWITH p, w, m, r\nMATCH m -[:submorph*0..30]-> sm\nWITH p, w, m, r, collect(sm) as allSubmorphs\nWITH p, w, m, r, allSubmorphs, \n filter(ea in allSubmorphs: has(ea.textString)) as allTextmorphs\nWITH p, w, m, r, allSubmorphs, allTextmorphs,\n reduce(s = 0, ea in allTextmorphs: s + length(ea.textString)) as textSize\nRETURN id(m) as id, w.name,\n length(allSubmorphs) as submorphs, \n length(allTextmorphs) as textmorphs,\n textSize,\n extract(e in Nodes(p): e.name?) as PATH\nORDER BY textmorphs DESC LIMIT 100 ","parameters":"","isQuery":true},"3277":{"name":"Shortest Path","categories":[],"query":"START root=node(#{this.rootId}), l=node(923043)\nMATCH p = shortestPath(root -[*]-> l)\nreturn id(l) as id, extract(e in nodes(p) : id(e))","parameters":"","isQuery":true},"3278":{"name":"Derivations in Worlds","categories":[],"query":"// Worlds with derivations of a Morph\nSTART root=node(#{this.worldsRootNodeID}) \nMATCH root --> rootDir \nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..20]-> d --> w\nWHERE w.type = 'World'\nWITH p,w\nMATCH (w)-[r]->(m)\nWHERE has(r.rev) and str(r.rev!) > '1'\nWITH p,w, w.name? as WorldName, MAX(r.rev?) as MaxRev, m.name? as MorphName, count(r) as Revisions\nMATCH (w)-[r2]->(m2)\nWHERE r2.rev? = MaxRev\nWITH p,m2, WorldName, MaxRev, Revisions, MorphName\nMATCH m2-[*..30]->sm\nWHERE has(sm.derivationIds) AND any(x in sm.derivationIds WHERE x = \"#{this.get(\"DerivationInspectorPane\").selection()}\")\nRETURN id(sm) as id, sm.name? as MorphName, \n sm.id? as DerivationID, \n length(sm.derivationIds) as nOfDerivationIDs, \n WorldName, MaxRev\nORDER BY MaxRev LIMIT 200\n","parameters":"","isQuery":true},"3279":{"name":"Parts","categories":[],"query":"// Parts\nSTART pb=node(#{this.partsBinRootNodeID}) \nMATCH (pb)-->(s)-->(p)\nWITH s, p \nMATCH (p)-[r]->(m)\nWHERE has(r.rev) and str(r.rev!) > '1'\nWITH p, s.name? as SpaceName, p.name? as PartName, MAX(r.rev) as MaxRev, m.name as MorphName, count(r) as Revisions\nMATCH p-[r2]->m2\nWHERE r2.rev = MaxRev\nWITH m2, SpaceName, PartName, MaxRev, Revisions, MorphName\nMATCH m2-[*..30]->sm\nRETURN id(m2) as id, \n SpaceName, \n PartName, \n MaxRev, \n Revisions, \n MorphName,\n count(sm) as Submorphs\nORDER BY PartName LIMIT 300 \n\n","parameters":"","isQuery":true},"3280":{"name":"PartsBin / Tools","categories":[],"query":"START pb=node(#{this.partsBinRootNodeID}) \nMATCH (pb)-->(s)-->(p)\nWHERE s.name =~ \"PartsBin/Tools\"\nWITH s, p \nMATCH (p)-[r]->(m)\nWHERE has(r.rev) and str(r.rev!) > '1'\nWITH p, s.name? as SpaceName, p.name? as PartName, MAX(r.rev) as MaxRev, m.name as MorphName, count(r) as Revisions\nMATCH p-[r2]->m2\nWHERE r2.rev = MaxRev\nWITH m2, SpaceName, PartName, MaxRev, Revisions, MorphName\nMATCH m2-[*..30]->sm\nRETURN id(m2) as id, \n SpaceName, \n PartName, \n MaxRev, \n Revisions, \n MorphName,\n count(sm) as Submorphs\nORDER BY PartName LIMIT 300 \n\n","parameters":"","isQuery":true},"3281":{"name":"Count Classes","categories":[],"query":"START n=node(#{this.worldsRootNodeID})\nMATCH n --> rootDir \nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..20]-> d --> w\nWHERE w.type = 'World' \nWITH p,w\nMATCH w -[r]-> m\nWHERE has(r.rev) and str(r.rev!) > '1'\nWITH p, w, MAX(r.rev) as MaxRev\nMATCH w -[r]-> m\nWHERE r.rev! = MaxRev\nWITH p, w, m, r\nMATCH m -[:submorph*0..30]-> sm\nWITH p, w, m, r, sm\nRETURN distinct sm.klass? as Class, count(sm) as Instances\nORDER BY Instances DESC LIMIT 100","parameters":"","isQuery":true},"3282":{"name":"Count Null TextMorphs","categories":[],"query":"START n=node(#{this.worldsRootNodeID})\nMATCH n --> rootDir \nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..20]-> d --> w\nWHERE w.type = 'World' \nWITH p,w\nMATCH w -[r]-> m\nWHERE has(r.rev) and str(r.rev!) > '1'\nWITH p, w, MAX(r.rev) as MaxRev\nMATCH w -[r]-> m\nWHERE r.rev! = MaxRev\nWITH p, w, m, r\nMATCH m -[:submorph*0..30]-> sm\nWHERE sm.klass! = 'lively.morphic.Text'\nWITH p, w, m, r, sm, sm.textString? = \"null\" as HasTextString\nRETURN distinct sm.klass? as Class, count(sm) as Instances, HasTextString\nORDER BY Instances DESC LIMIT 100","parameters":"","isQuery":true},"3283":{"name":"Find Worlds By URL","categories":[],"query":"START n=node(#{this.worldsRootNodeID})\nMATCH n --> rootDir \nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..20]-> d --> w\nWHERE w.type = 'World' \nWITH p,w\nMATCH w -[r]-> m\nWHERE r.url! =~ '.*/webwerkstatt/users/jenslincke/thesis/examples.*'\nRETURN w.name, r.rev?, r.url?\nLIMIT 100\n","parameters":"","isQuery":true},"3284":{"name":"Find Worlds And all Nodes By URL","categories":[],"query":"START n=node(#{this.worldsRootNodeID})\nMATCH n --> rootDir \nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..20]-> d --> w\nWHERE w.type = 'World' \nWITH p,w\nMATCH w -[r]-> m\nWHERE r.url! =~ '.*/webwerkstatt/users/jenslincke/thesis/examples.*'\nWITH w, r, m\nMATCH m -[*0..30]-> sm\nRETURN w.name, r.rev?, count(sm)\nLIMIT 100\n","parameters":"","isQuery":true},"3285":{"name":"All Loaded URLs and Revisions","categories":[],"query":"START n=node(#{this.neoLogNodeID})\nMATCH n --> l \nRETURN l.url! as url, collect(l.rev) as revs \nORDER BY url DESC LIMIT 100","parameters":"","isQuery":true},"3286":{"name":"All Loaded URLs and Revisions (COUNT)","categories":[],"query":"START n=node(#{this.worldsRootNodeID}) \nMATCH n--> rootDir\nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..20]-> d --> w\nWHERE w.type = \"World\" \nWITH w MATCH w -[r]-> m \nWHERE has(r.url) and has(r.rev) AND str(r.rev) > \"0\"\nWITH r.url as URL, count(r.rev) as Revisions\nRETURN count(URL), SUM(Revisions) \nLIMIT 100","parameters":"","isQuery":true},"3287":{"name":"Logged World Loadings","categories":[],"query":"START n=node(#{this.neoLogNodeID})\nMATCH n --> l\nWITH l\nWHERE l.url? =~ '.*xhtml' \nRETURN count (distinct l.url) as Worlds\nORDER BY Worlds DESC\nLIMIT 100","parameters":"","isQuery":true},"3288":{"name":"Logged Part Loadings","categories":[],"query":"START n=node(#{this.neoLogNodeID})\nMATCH n --> l\nWITH l\nWHERE l.url? =~ '.*json' \nRETURN count (distinct l.url) as Worlds\nORDER BY Worlds DESC\nLIMIT 100","parameters":"","isQuery":true},"3289":{"name":"Logged World Loadings By Name","categories":[],"query":"START n=node(#{this.neoLogNodeID})\nMATCH n --> l\nWITH l\nWHERE l.url! =~ '.*xhtml' AND l.url =~ '.*thesis.*'\nWITH distinct l.url as URL, collect(l.rev) as Revisions\nRETURN URL, Revisions\nORDER BY URL DESC\n","parameters":"","isQuery":true},"3290":{"name":"All Loaded World URLs and Revisions","categories":[],"query":"START n=node(#{this.worldsRootNodeID}) \nMATCH n--> rootDir\nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..20]-> d --> w\nWHERE w.type = \"World\" \nWITH w MATCH w -[r]-> m \nRETURN r.url! as URL, collect(r.rev?) as Revisions\nORDER BY URL LIMIT 100","parameters":"","isQuery":true},"3291":{"name":"All Loaded Part URLs and Revisions","categories":[],"query":"START pb=node(#{this.partsBinRootNodeID}) \nMATCH (pb)-->(s)-->(p)\nWITH s, p \nMATCH (p)-[r]->(m)\nWHERE has(r.url) AND has(r.rev) and str(r.rev!) > '1'\nRETURN r.url, collect(r.rev) LIMIT 100","parameters":"","isQuery":true},"3292":{"name":"World Details For Directory","categories":[],"query":"START n=node(#{this.worldsRootNodeID})\nMATCH n --> rootDir \nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..20]-> d --> w\nWHERE w.type = 'World' \nWITH p,w\nMATCH w -[r]-> m\nWHERE has(r.rev) and str(r.rev!) > '1'\n AND r.url =~ '.*repository/webwerkstatt/users/jenslincke/thesis/examples.*'\nWITH p, w, MAX(r.rev) as MaxRev\nMATCH w -[r]-> m\nWHERE r.rev! = MaxRev\nWITH p, w, m, r\nMATCH m -[:submorph*0..30]-> sm\nWITH p, w, m, r, collect(sm) as allSubmorphs\nWITH p, w, m, r, allSubmorphs, \n filter(ea in allSubmorphs: ea.klass! = 'lively.morphic.Text') as allTextmorphs,\n filter(ea in allSubmorphs: has(ea.textString)) as allTextStrings\nWITH p, w, m, r, allSubmorphs, allTextmorphs, allTextStrings,\n reduce(s = 0, ea in allTextStrings: s + length(ea.textString)) as textSize\nRETURN id(m) as id, w.name,\n length(allSubmorphs) as submorphs, \n length(allTextmorphs) as textmorphs,\n length(allTextStrings) as textstrings,\n textSize\nORDER BY textmorphs DESC LIMIT 100 ","parameters":"","isQuery":true},"3293":{"name":"Test Objects - Worlds","categories":[],"query":"START n=node(#{this.testObjectRootNodeID})\nMATCH n -[r]-> o\nRETURN id(o) as id, r.url, r.rev, o.name LIMIT 100","parameters":"","isQuery":true},"3294":{"name":"allLoadedObjectURLsAndRevisions","categories":[],"query":"START n=node(#{this.objectRootNodeID})\nMATCH (n)-[r]->(o) WHERE has(r.url) AND has(r.rev) and str(r.rev!) > '1' RETURN r.url, collect(r.rev)","parameters":"","isQuery":true},"3295":{"name":"Objects Count","categories":[],"query":"START n=node(#{this.objectRootNodeID})\nMATCH n -[r]-> w\nWITH w LIMIT 1\nMATCH w -[*1..8]-> o\nRETURN distinct id(w) as id, count(distinct o)\nORDER BY id LIMIT 200","parameters":"","isQuery":true},"3296":{"name":"Objects Count Complicated","categories":[],"query":"START n=node(#{this.objectRootNodeID})\nMATCH n -[r]-> w\nWITH w LIMIT 1\nMATCH w --> o1\n\nWITH distinct w, o1\nMATCH o1 --> o2\nWHERE o1 <> o2\n\nWITH distinct w, o1, o2\nMATCH o2 --> o3\nWHERE o1 <> o3 \nAND o2 <> o3\n\nWITH distinct w, o1, o2, o3\nMATCH o3 --> o4\nWHERE o1 <> o4 \nAND o2 <> o4\nAND o3 <> o4\n\nWITH distinct w, o1, o2, o3, o4\nMATCH o4 --> o5\nWHERE o1 <> o5\nAND o2 <> o5\nAND o3 <> o5\nAND o4 <> o5\n\nWITH distinct w, o1, o2, o3, o4, o5\nMATCH o5 --> o6\nWHERE o1 <> o6\nAND o2 <> o6\nAND o3 <> o6\nAND o4 <> o6\nAND o5 <> o6\n\n\nWITH distinct w, o1, o2, o3, o4, o5, o6\nMATCH o6 --> o7\nWHERE o1 <> o7\nAND o2 <> o7\nAND o3 <> o7\nAND o4 <> o7\nAND o5 <> o7\nAND o6 <> o7\n\nRETURN id(w), \n count(distinct o1) as o1, \n count(distinct o2) as o2, \n count(distinct o3) as o3, \n count(distinct o4) as o4, \n count(distinct o5) as o5,\n count(distinct o6) as o6,\n count(distinct o7) as o7 \n ","parameters":"","isQuery":true},"3297":{"name":"Objects Count 4 and 4","categories":[],"query":"START n=node(#{this.objectRootNodeID})\nMATCH n -[r]-> w\nWITH w LIMIT 1\nMATCH w -[*1..4]-> o\nWITH DISTINCT w, o\nMATCH o -[*1..4]-> o2\nRETURN distinct id(w) as id, count(distinct o), count(o2), count(distinct o2)\nORDER BY id LIMIT 200","parameters":"","isQuery":true},"3298":{"name":"Objects Count with Uniq Paths","categories":[],"query":"START n=node(#{this.objectRootNodeID})\nMATCH n -[r]-> w\nWITH w LIMIT 1\nMATCH path = w -[*1..8]-> o\nWHERE ALL(n in nodes(path) where \n 1=length(filter(m in nodes(path) : m=n))) \nRETURN distinct id(w) as id, count(o), count(distinct o)\nORDER BY id LIMIT 200","parameters":"","isQuery":true},"3299":{"name":"Objects uniq References and Objects","categories":[],"query":"START n=node(#{this.objectRootNodeID})\nMATCH n -[r]-> w\nWITH w LIMIT 1\nMATCH path = w -[*1..8]-> o\nWITH distinct w, o\nMATCH po -[r] -> o\nWITH distinct w, r, o\nRETURN id(w), count(distinct r) as References, count(distinct o) as Objects\nLIMIT 200","parameters":"","isQuery":true},"3300":{"name":"ListsObjectsByURL","categories":[],"query":"START n=node({root})\nMATCH n -[r]-> w\nWHERE r.url = {url}\nWITH w, r.url as url, r.rev as rev\nMATCH path = w -[*1..5]-> o\nWITH distinct w, url, rev, o\nMATCH po -[r] -> o\nWITH distinct r, o\nRETURN r.name?,id(o), o.name?\nLIMIT 200\n","parameters":"","isQuery":true},"3301":{"name":"ListEmptyWorldsURLs","categories":[],"query":"START n=node({root})\nMATCH n -[r]-> w\nWITH w,r\nMATCH w -[*0..1] -> o\nWITH distinct r.url! as url, count(o) - 1 as rootObjects\nWHERE rootObjects = 0\nRETURN url\nORDER BY url\n","parameters":"","isQuery":true},"3302":{"name":"Test Objects","query":"START n=node(#{this.testObjectRootNodeID})\nMATCH n -[*2..20]-> o\nWITH o\nMATCH p -[r]-> o\nRETURN distinct id(o) as id, id(p) as From, id(r), type(r), r.name?, r.index?, o.name?,\n o.__LivelyClassName__?,\n o.storedString? ,\n o.derivationIds?,\n o.__allValues__?,\n o.__ignoredValues__?\nORDER BY From LIMIT 100","parameters":"undefined","categories":[""]},"3303":{"name":"Count Worlds","query":"START n=node({root})\nMATCH n --> rootDir \nWITH rootDir\nMATCH p=rootDir -[:rootDirectory*0..20]-> d --> w\nWHERE w.type = 'World' \nWITH p,w\nMATCH w -[r]-> m\nWHERE has(r.rev) and str(r.rev!) > '1'\nWITH p, w, MAX(r.rev) as MaxRev\nMATCH w -[r]-> m\nWHERE r.rev! = MaxRev\nWITH p, w, m, r\nMATCH m -[:submorph*0..30]-> sm\nWITH p, w, m, r, collect(sm) as allSubmorphs\nWITH p, w, m, r, allSubmorphs, \n filter(ea in allSubmorphs: has(ea.textString)) as allTextmorphs\nWITH p, w, m, r, allSubmorphs, allTextmorphs,\n reduce(s = 0, ea in allTextmorphs: s + length(ea.textString)) as textSize\nwith m,\n length(allSubmorphs) as submorphs, \n length(allTextmorphs) as textmorphs,\n textSize \nWITH count(m) as Worlds, sum(submorphs) as AllMorphs, \n sum(textmorphs) as AllTextmorphs,\n sum(textSize) as TextSize\nRETURN Worlds, \n AllMorphs as Morphs, AllMorphs * 1.0 / Worlds as MorphsPerWorld, \n AllTextmorphs as Textmorphs, AllTextmorphs * 1.0 / Worlds as TextsPerWorld, \n TextSize, TextSize / Worlds as TextSizePerWorld\nLIMIT 100","parameters":"{\nroot: this.worldsRootNodeID,\n}","categories":[""]},"3304":{"name":"ListsObjectsURLs","query":"START n=node({root})\nMATCH n -[r]-> w\nRETURN distinct r.url? as url\nORDER BY url\n","parameters":"{\n root: Number(this.objectRootNodeID),\n}","categories":["Objects"]},"3305":{"name":"ListsObjectsStats","query":"START n=node({root})\nMATCH n -[r]-> w\nWITH w,r\nMATCH w -[*0..1] -> o\nRETURN distinct replace(r.url?, \"http://lively-kernel.org/repository/webwerkstatt\",\"\") as url, count(o)\nORDER BY url\n","parameters":"{\n root: Number(this.objectRootNodeID),\n}","categories":["Objects"]},"3306":{"name":"Leave to tree","query":"START root=node({root}), l=node({node})\nMATCH p = shortestPath(root -[*]-> l)\nreturn p","parameters":"{\n root: Number(this.rootId),\n node: Number(1191714)\n}","categories":[""]},"3307":{"name":"Parent List","query":"START root=node({root}), l=node({node})\nMATCH p = shortestPath(root -[*]-> l)\nreturn extract(ea in Nodes(p): id(ea))","parameters":"{\n root: Number(this.rootId),\n node: Number(1191714)\n}","categories":["General"]},"3308":{"name":"Objects Details By URL","query":"START n=node({root})\nMATCH n -[r]-> w\nWHERE r.url! =~ \".*jenslincke.*\"\nWITH w, replace(r.url?, \"http://lively-kernel.org/repository/webwerkstatt\",\"\") as path\n// ORDER BY path LIMIT 50 // for testing\nMATCH w --> root\nWITH w, root, path\nMATCH root -[r:submorph*0..10]-> submorph\nWITH distinct path, w, root, count(submorph) - 1 as morphs\nORDER BY morphs DESC LIMIT 20\nMATCH root -[r:reference*0..12] -> o\nRETURN distinct id(w) as id, path, root, morphs, count(o) as objects\nORDER BY objects DESC","parameters":"{\n root: Number(this.objectRootNodeID),\n}","categories":["Objects"]},"3309":{"name":"Test Traversal","query":"{\n \"order\" : \"breadth_first\",\n \"uniqueness\" : \"node_global\",\n \"return_filter\" : {\n \"language\" : \"builtin\",\n \"name\" : \"all\"\n },\n \"prune_evaluator\" : {\n \"name\" : \"none\",\n \"language\" : \"builtin\"\n },\n \"relationships\" : [\n {\"direction\" : \"out\", \"type\": \"rootObject\"}],\n \"max_depth\" : 1\n}\n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Traversal"},"3310":{"name":"Test Gremlin","query":"g.v(root).out\n","parameters":"{\n root: this.testObjectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3311":{"name":"Test Gremlin Tree","query":"g.v(root).out\n","parameters":"{\n root: this.testObjectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3312":{"name":"Test Gremlin Group Count","query":"m = [:]\ng.v(root).out().count(m).iterate()\nm\n\n\n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3313":{"name":"Test Gremlin Side Effect","query":"n = 1\ng.v(root).outE().sideEffect{ n = 3}\nn\n\n\n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3314":{"name":"Test Gremlin Range Filter","query":"g.v(root).out()[0..10]\n\n\n\n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3315":{"name":"Test Gremlin Table","query":"t= new Table()\ng.v(root).outE()[0..10].as('x')\n .id.as(\"id\").back('x')\n .url.as(\"url\").back('x')\n .rev.as('rev').back('x')\n .keys().as('keys')\n.table(t,['rev', 'url', 'id']).iterate()\nt\n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3316":{"name":"Test Gremlin Properties","query":"t = new Table()\ng.v(root).outE[0..10].as('r')\n .id.as('id')\n .back('r').map.as('map')\n .table(t,['map', 'id'])\nt\n\n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3317":{"name":"Test Gremlin Keys","query":"g.v(root).outE[0..10].map.as('map')\n \n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3318":{"name":"Test Gremlin Count","query":"n = 0\ng.v(root).out.sideEffect{ n = n + 1}.iterate()\nn\n\n\n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3319":{"name":"Test Gremlin Submorphs","query":"all = []\ng.v(root).out()[0..10].fill(all)\n\nall.size()\n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3320":{"name":"Test Gremlin Loop","query":"all = []\ng.v(root).as('x')\n .out.aggregate(all).out.except(all).out\n .loop('x'){it.loops < 4}.iterate()\nall.size()\n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3321":{"name":"Test Gremlin For Loop","query":"data = []\nfor (w in g.v(root).out[0..10]) {\n all = [].asType(Set)\n next = [w]\n for(i in 1..10) {\n next = next._().out.collect{it}\n next.removeAll(all)\n all.addAll(next)\n }\n data.push([w.id, all.size()])\n}§\ndata.sort(true){it[1]}\ndata.reverse(true)\ndata = data[0..5]\n[columns:[\"id\", \"size\"], data: data]","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3322":{"name":"Test Gremlin Groovy Hello","query":"\nreturn [columns: [\"Hello\"], data: [[\"World\"]]]","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3323":{"name":"Test Gremlin Groovy","query":"data = []\nfor (w in g.v(root).out[0..20]) {\n all = [].asType(Set)\n next = [w]\n for(i in 1..10) {\n next = next._().out.collect{it}\n next.removeAll(all)\n all.addAll(next)\n }\n data.push([w.id, \n w.inE.url.collect{it}[0].replace(\"http://lively-kernel.org/repository/webwerkstatt\",\"\"),\n all.size()])\n}\ndata.sort(true){it[2]}\ndata.reverse(true)\ndata = data[0..10]\n[columns:[\"id\", \"path\", \"size\"], data: data]","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3324":{"name":"Test Gremlin Log Table","query":"\nitems = g.v(root).out.grep{it.url}.sort{ it.getProperty(\"id\") }.reverse()_()[0..500]\n\ndata = []\nitems.each {\n data.push([it.id, \n it.date, \n it.loaded,\n it.url.replace(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\"), \n it.rev,\n it.neo4JTime,\n it.loadTime,\n it.map])\n}\n\n[columns: [\"id\", \"date\", \"loaded\", \"path\", \"rev\", \"neo4JTime\", \"loadTime\"], data: data]\n","parameters":"{\n root: this.neoLogNodeID,\n date: new Date()\n}","categories":["Log","Gremlin"],"language":"Gremlin"},"3325":{"name":"Duplicated Objects","query":"START objectRoot = node(#{this.objectRootNodeID})\nMATCH objectRoot -[r]-> o\nWITH distinct objectRoot, max(id(o)) as LastID, r.url as url, r.rev as rev\nMATCH objectRoot -[r]-> o\nWHERE r.url! = url and r.rev! = rev AND id(o) <> LastID\n// RETURN count(id(o)), r.rev as rev, r.url as url ORDER BY url\nRETURN count(o) as DuplicatedObjects\n\n","parameters":"","categories":["Objects"],"language":"undefined"},"3326":{"name":"Objects Classes Histogram","query":"START n=node({root})\nMATCH n -[r]-> w\nWITH w, replace(r.url?, \"http://lively-kernel.org/repository/webwerkstatt\",\"\") as path\n// ORDER BY path LIMIT 50 // for testing\nMATCH w --> root\nWITH w, root, path\nMATCH root -[r:submorph*0..10]-> submorph\nWITH distinct path, w, root, count(submorph) - 1 as morphs\nORDER BY morphs DESC LIMIT 50\nMATCH root -[r:reference*0..12] -> o\nWITH id(w) as id, root, path, root, morphs, count(o) as objects\nMATCH root -[r:reference*0..12] -> o\nRETURN o.__LivelyClassName__?, count(o) as objects\nORDER BY objects DESC\nLIMIT 100","parameters":"{\n root: Number(this.objectRootNodeID),\n}","categories":["Objects"],"language":"undefined"},"3327":{"name":"Loading Time","query":"START n=node(#{this.neoLogNodeID})\r\nMATCH n --> l\r\nWHERE has(l.neo4JTime)\r\nRETURN count(l) as Objects, sum(l.neo4JTime) / 1000 / 60 as LoadingTimeInMin","parameters":"","categories":["Log"],"language":"undefined"},"3328":{"name":"Objects Details (Test)","query":"START n=node({root})\nMATCH n -[r]-> w\nWITH w, replace(r.url?, \"http://lively-kernel.org/repository/webwerkstatt\",\"\") as path, r.rev as rev\n// ORDER BY path LIMIT 50 // for testing\nMATCH w --> root\nWITH w, root, path, rev\nMATCH root -[r:submorph*0..10]-> submorph\nWITH distinct path, w, root, count(submorph) - 1 as morphs, rev\nORDER BY morphs DESC LIMIT 50\nMATCH root -[r:reference*0..12] -> o\nWITH id(w) as id, root, path, root, morphs, count(o) as objects, rev\nMATCH root -[r:reference*0..12] -> o\nRETURN distinct id, path, rev, root, morphs, objects, count(distinct o.__LivelyClass__?)\nORDER BY objects DESC","parameters":"{\n root: Number(this.testObjectRootNodeID),\n}","categories":["Objects"],"language":"undefined"},"3329":{"name":"Worlds Without LivelyObject","query":"START objectRoot = node(#{this.objectRootNodeID})\nMATCH objectRoot -[r]-> o\nWITH objectRoot, r, o\nMATCH o -[*0..1]-> w\nWITH id(o) as id, replace(r.url, \"http://lively-kernel.org/repository/webwerkstatt/\",\"\") as path, r.rev as rev, count(w) - 1 as World, r, o\nWHERE World = 0\nRETURN id, path, rev, World, r, o ORDER BY path\n","parameters":"","categories":[""],"language":"undefined"},"3330":{"name":"DeleteObjects","query":"\ndef allNodes = []\ndef currentNodes = [g.v(root)]\n\nwhile(currentNodes.size() > 0) {\n def node = currentNodes.pop()\n node.out.each { n ->\n if (!allNodes.contains(n)) {\n allNodes.push(n)\n currentNodes.push(n)\n }\n }\n} \n\ndef allReferences = []\n\nallNodes.each { n -> \n n.inE.each { r ->\n if (!allReferences.contains(r)) { allReferences.push(r)}\n }\n}\n\n\nallReferences.each { r ->\n g.removeEdge(r) \n}\n\nallNodes.each { n ->\n g.removeVertex(n) \n}\n\n\n\n\"allNodes:\" + allNodes.size() + \" allRefs: \" + allReferences.size()\n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Gremlin","Groovy","DELETE"],"language":"Gremlin"},"3331":{"name":"HistogramOutEdges","query":"\nmap= g.getVertices().collect{it}[0..1000].countBy{\r\n it.getOutEdges().size()\n}\nlist = map.keySet().collect { [it, map[it]]}\nlist.sort{it[0]}\n\n[columns: [\"Out\", \"Count\"], data: list]","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3332":{"name":"HistogramInEdges","query":"\nmap= g.getVertices().countBy{\r\n it.getInEdges().size()\n}\n\n// [3:5]\n\ntotal = map.values().inject(0){s,a -> s + a}\n\nlist = map.keySet().collect { [it, map[it], map[it] * 100.0 / total]}\nlist.sort{it[0]}\n\n[columns: [\"In\", \"Count\", \"Percentage\"], data: list]","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3333":{"name":"ForceStopQueries","query":"def edges = g.v(4).getOutEdges(\"queryProgress\").collect{it}\nedges.each{ \n def v = it.getInVertex()\n v.forceStopQuery = true\n}\n\n","parameters":"{\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3334":{"name":"HistogramEdges","query":"\nmap= g.getVertices().collect{it}[0..1000].countBy{\r\n it.getInEdges().size()\n}\nlist = map.keySet().collect { [it, map[it]]}\nlist.sort{it[0]}\n\n[columns: [\"EdgesPerNode\", \"Count\"], data: list]","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3335":{"name":"Objects Details","query":"START n=node({root})\nMATCH n -[r]-> w\nWITH w, replace(r.url?, \"http://lively-kernel.org/repository/webwerkstatt\",\"\") as path, r.rev as rev\nMATCH w --> root\nWITH w, root, path, rev\nMATCH root -[r:submorph*0..10]-> submorph\nWITH distinct path, w, root, count(submorph) - 1 as morphs, rev\n// ORDER BY morphs DESC LIMIT 50\nMATCH root -[r:reference*0..20] -> o\nWITH id(w) as id, root, path, root, morphs, count(o) as objects, rev\nRETURN distinct id, path, rev, morphs, objects\nORDER BY id DESC","parameters":"{\n root: Number(this.objectRootNodeID),\n}","categories":["Objects"],"language":"undefined"},"3336":{"name":"Distinct Objects","query":"START objectRoot = node(#{this.objectRootNodeID})\nMATCH objectRoot -[r]-> o\nWITH id(o) as id, replace(r.url, \"http://lively-kernel.org/repository/webwerkstatt/\",\"\") as path, r.rev as rev\nWITH distinct max(id) as LastID, path, rev\nORDER BY path\nRETURN count(LastID) as DistinctObjects\n// LIMIT 10\n","parameters":"","categories":["Objects"],"language":"undefined"},"3337":{"name":"Objects Details Morphs","query":"START n=node({root})\nMATCH n -[r]-> w\nWITH w, replace(r.url?, \"http://lively-kernel.org/repository/webwerkstatt\",\"\") as path\n// ORDER BY path LIMIT 50 // for testing\nMATCH w --> root\nWITH w, root, path\nMATCH root -[r:submorph*0..10]-> submorph\nWITH distinct path, w, root, count(submorph) - 1 as morphs\nRETURN distinct id(w) as id, path, morphs\nORDER BY morphs DESC\nLIMIT 100","parameters":"{\n root: Number(this.objectRootNodeID),\n}","categories":["Objects"],"language":"undefined"},"3338":{"name":"Objects URLs","query":"START n=node(#{this.objectRootNodeID})\nMATCH n -[r]-> o\nRETURN distinct id(o) as id, r.url? as url, r.rev?\nORDER BY url LIMIT 200","parameters":"{\n root: Number(this.objectRootNodeID),\n}","categories":["Objects"],"language":"undefined"},"3339":{"name":"Objects by ID List References and Objects","query":"START n=node(#{this.objectRootNodeID})\nMATCH n -[r]-> w\nWHERE r.url = {url}\nWITH w, r.url as url, r.rev as rev LIMIT 1\nMATCH path = w -[*1..10]-> o\nWITH distinct w, url, rev, o\nMATCH po -[r] -> o\nWITH distinct w, url, rev, r, o\nRETURN id(w), replace(url, \"http://lively-kernel.org/repository/webwerkstatt\", \"\") as Path, rev, count(distinct r) as References, count(distinct o) as Objects\nLIMIT 200","parameters":"{\n root: Number(this.objectRootNodeID),\n url: 'enter url here'\n}","categories":["Objects"],"language":"undefined"},"3340":{"name":"Objects All Submorphs","query":"START n=node({root})\nMATCH n -[r]-> w\nWITH w, replace(r.url?, \"http://lively-kernel.org/repository/webwerkstatt\",\"\") as path \nORDER BY path DESC LIMIT 10\nMATCH w --> root\nWITH w, root, path \nMATCH root -[r:submorph*0..10]-> submorph\nRETURN distinct path, id(submorph) as id, extract(ea in r: ea.index?)\nLIMIT 100\n\n","parameters":"{\n root: Number(this.objectRootNodeID),\n}","categories":["Objects"],"language":"undefined"},"3341":{"name":"Classes Histogram","query":"START n=node({root})\nMATCH n -[r]-> w\nWITH w\nMATCH w --> root\nWITH w, root\nWITH id(w) as id, root\nMATCH root -[r:reference*0..12] -> o\nRETURN o.__LivelyClassName__? as Class, count(o) as objects\nORDER BY objects DESC\n","parameters":"{\n root: Number(this.objectRootNodeID),\n}","categories":["Objects"],"language":"undefined"},"3342":{"name":"Last Log With Objects","query":"START n=node(#{this.neoLogNodeID}), objectRoot = node(#{this.objectRootNodeID})\nMATCH n --> l\nWHERE has(l.neo4JTime)\nWITH objectRoot, id(l) as id, l, l.date as date, l.url as url, l.rev as rev\nORDER BY date DESC LIMIT 100\nMATCH objectRoot -[r]-> o\nWHERE r.url! = url AND r.rev = rev\nWITH objectRoot, id, l, url, rev, o\nMATCH o --> w\nWITH objectRoot, id, l, url, rev, o, w\nMATCH w -[:submorph*0..10]-> s\nWITH objectRoot, id, l, url, rev, o, w\r, count(s) as Morphs\nMATCH w -[:reference*0..20]-> ro\nWITH objectRoot, id, l, url, rev, o, w\r, Morphs, count(ro) as Objects\nRETURN id(o) as id, replace(url, \"http://lively-kernel.org/repository/webwerkstatt/\",\"\") as path, rev, l.date as date, l.neo4JTime / 1000 as Time, Morphs, Objects, ROUND(Objects * 1000.0 / l.neo4JTime) as ObjectsPerSecond\nORDER BY date DESC","parameters":"","categories":["Log"],"language":"undefined"},"3343":{"name":"ListLargestObjects","query":" \ndef inRef = {it.getInEdges()[0]}\n\ndef getAllSubnodes = { root ->\n def allNodes = [].asType(Set); \r\n def currentNodes = [root]\r\n\r\n while(currentNodes.size() > 0) {\r\n def node = currentNodes.pop()\r\n node.out.each { n ->\r\n if (!allNodes.contains(n)) {\r\n allNodes.add(n)\r\n currentNodes.push(n)\r\n }\r\n }\r\n } \r\n return allNodes\n}\n\nworlds =[]; \ng.v(root).out.fill(worlds)\nworlds[0]\n\n// worlds = worlds[0..20]\n\ndata = worlds.collect{ \n def r = inRef(it)\n def subnodes = getAllSubnodes(it)\n [it.id, \n r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\"),\n r.rev,\n subnodes.size()]}\n \ndata.sort{ea -> ea[3]}\ndata.reverse(true)\n\ndata = data[0..20]\n\n// a = [2,1,4,5,3].sort{ea -> ea}; a.reverse(true); a\n\n\ndata.add([root, \"TOTAL\", null, data.inject(0){s,e -> s + e[3]} ])\n\n\n[columns: [\"id\", \"path\", \"rev\", \"Objects\"], data: data]","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3344":{"name":"Objects","query":"START objectsRoot = node({objectsRoot})\nMATCH objectsRoot-[r]-> o\nWITH r, o\nMATCH o -[*0..1] -> w\nWITH id(o) as id, replace(r.url, \"http://lively-kernel.org/repository/webwerkstatt/\",\"\") as path, r.rev as rev, w\nRETURN id, path, rev, count(w) - 1 as RootObject\nORDER BY id LIMIT 5000","parameters":"{\n objectsRoot: Number(this.objectRootNodeID)\n}","categories":["Objects"],"language":"undefined"},"3345":{"name":"Count Objects","query":"START objectRoot = node(#{this.objectRootNodeID})\nMATCH objectRoot -[r]-> o\nWITH id(o) as id, replace(r.url, \"http://lively-kernel.org/repository/webwerkstatt/\",\"\") as path, r.rev as rev\nRETURN count(id) as AllObjects","parameters":"","categories":["Objects"],"language":"undefined"},"3346":{"name":"Loading Problems","query":"t = new Table()\nm = [:]; \ng.v(logRoot).out.groupCount(m){it.neo4JTime > 0}.iterate(); \nm\nt.add([result: m])\nt\n\n\n\n\n","parameters":"{\n logRoot: Number(this.neoLogNodeID)\n}","categories":["Log"],"language":"Gremlin"},"3347":{"name":"Last Log Without World","query":"START n=node(#{this.neoLogNodeID}), objectRoot = node(#{this.objectRootNodeID})\nMATCH n --> l\nWHERE has(l.neo4JTime)\nWITH objectRoot, id(l) as id, l, l.url as url, l.rev as rev\n// ORDER BY id DESC LIMIT 100\nMATCH objectRoot -[r]-> o\nWHERE r.url! = url AND r.rev = rev\nWITH objectRoot, id, l, url, rev, r, o\nMATCH o -[*0..1]-> w\nWITH id(o) as id, replace(url, \"http://lively-kernel.org/repository/webwerkstatt/\",\"\") as path, rev, count(w) - 1 as World, r, o\n// WHERE World = 0\nRETURN id, path, rev, World, r, o\nORDER BY path","parameters":"","categories":["Log"],"language":"undefined"},"3348":{"name":"CountAllRoots","query":"def isRoot = { n ->\n n.getInEdges().size() == 0\n}\ndef data = []\ndef all = 0\ndef nodes = 0\ndef roots = 0\niter = g.getVertices().iterator()\n\nwhile(iter.hasNext()) {\n // n = g.v(i)\n n = iter.next()\n all ++\n if (all % 1000 == 0) showProgress(all, 10000000)\n if (n) nodes++;\n if (n && isRoot(n)) {\n roots ++ \n }\n}\n\n[columns: [\"All\", \"Nodes\", \"Roots\"], data: [[all, nodes, roots]]]","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Groovy"],"language":"Gremlin"},"3349":{"name":"CountObjetsAndReferences","query":"def allNodes = [].asType(Set); \ndef currentNodes = [g.v(root)]\n\nwhile(currentNodes.size() > 0) {\n def node = currentNodes.pop()\n node.out.each { n ->\n if (!allNodes.contains(n)) {\n allNodes.add(n)\n currentNodes.push(n)\n }\n }\n} \n\ndef allReferences = [].asType(Set);\nallNodes.each { n -> \n n.inE.each { r ->\n if (!allReferences.contains(r)) { allReferences.add(r)}\n }\n}\n\ndef d = new Date().format(\"yyyy-MM-dd HH:mm:ss\")\ndata = [\r[\"objects\", allNodes.size(), allReferences.size(), d],\r\n [\"g\", \rg.getVertices().size()\r, g.getEdges().size(), d]\r]\ndata.push([\"diff\", data[1][1] - data[0][1], data[1][2] - data[0][2], d])\n\n[columns: [\"scope\", \"nodes\", \"refs\", \"date\"], data: data]","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Groovy"],"language":"Gremlin"},"3350":{"name":"DELTE Worlds Without LivelyObject","query":"START objectRoot = node(#{this.objectRootNodeID})\nMATCH objectRoot -[r]-> o\nWITH objectRoot, r, o\nMATCH o -[*0..1]-> w\nWITH id(o) as id, replace(r.url, \"http://lively-kernel.org/repository/webwerkstatt/\",\"\") as path, r.rev as rev, count(w) - 1 as World, r, o\nWHERE World = 0\n// RETURN id, path, rev, World, r, o ORDER BY path\nDELETE r, o","parameters":"","categories":["DELETE"],"language":"undefined"},"3351":{"name":"DeleteAllNonRooted","query":"if (g.v(2).IsDeleting) {\n return \"Deletion in process since \" + (g.v(2).IsDeleting)\n} \ntry {\n g.v(2).IsDeleting = \"\" +new Date()\n\ndef isRoot = { n ->\n n.getInEdges().size() == 0\n}\ndef findAllRoots = {\n roots =[]\n iter = g.getVertices().iterator()\n while(iter.hasNext()) {\n n = iter.next()\n if (n && isRoot(n)) {\n roots.push(n)\n }\n }\n roots: roots\n}\n\ndef progressCount = 0\ndef progressOffset = 0\ndef allVerticesSize = g.getVertices().size()\n\nvisited = [:]\ndef getAllSubnodes = { root ->\n def allNodes = [:]\r\n def allNodesCount = 0\n def currentNodes = [root]\r\r\n while(currentNodes.size() > 0) {\n if (++progressCount % 10000 == 0) {\n showProgress(progressOffset + allNodesCount, allVerticesSize)\n }\r\n def node = currentNodes.pop()\r\n node.out.each { n ->\n\r if (!allNodes[n.id]) {\n visited[n.id] = true\r\n allNodes[n.id] = true\r\n allNodesCount++\n currentNodes.push(n)\r\n }\r\n }\r\n } \n progressOffset += allNodesCount\r\n return [nodeCount: allNodesCount, relCount: 0 ]\n}\n\nroots = findAllRoots()\ndata = roots.collect { ea -> \n // allSubnodes = getAllSubnodes(ea)\n allSubnodes = [nodeCount: 0, relCount: 0]\n [ea.id, \n ea.type, \n ea.__LivelyClassName__,\n allSubnodes.nodeCount,\n allSubnodes.relCount\n ]\n} \n\n// find nodes that do not end in a real root\nprogressCount = 0\ndef deleteNotRootedNodes = {\n nodeCount = 0\n relCount = 0\n iter = g.getVertices().iterator()\n while(iter.hasNext()) {\n n = iter.next()\n if (++progressCount % 1000 == 0) {\n showProgress(nodeCount, allVerticesSize)\n }\r\n if (n && !visited[n.id] && n.id > 10 && n.type != 'Root') {\n nodeCount ++\n relCount += n.getInEdges().size()\n n.getInEdges().each{ ea ->\n if (!dry) g.removeEdge(ea) \n }\n if (!dry) g.removeVertex(n) \n }\n }\n [nodeCount: nodeCount, relCount: relCount]\n}\n\nnotRootedNodesAndRels = deleteNotRootedNodes()\ndata.push([null, \"NonRoot\", null, notRootedNodesAndRels.nodeCount, notRootedNodesAndRels.relCount])\n\ndef sumColumn = { table, column -> table.inject(0){s,ea -> s + ea[column]} }\n\ndata.push([null, \"TOTAL\", null, sumColumn(data, 3), sumColumn(data, 4)])\n\nresult = [columns: [\"id\", \"type\", \"class\", \"Vertices\", \"Edges\"], data: data]\nb = new groovy.json.JsonBuilder(); b(result);\n\ng.v(2).lastResult = b.toString()\n\nreturn result\n\n} finally {\n g.v(2).IsDeleting = false\n}\n","parameters":"{\n queryDate: \"\" + new Date() + \" \" + Date.now(),\n stamp: new UUID().id,\n dry: true\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3352":{"name":"ShowResult","query":"(new groovy.json.JsonSlurper()).parseText(g.v(2).lastResult)\n","parameters":"{\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3353":{"name":"FindAllRootsTest","query":"g.getRawGraph().getMessageLog().logMessage(\"Start \" + queryId)};\r\n\ndef isRoot = { n -> n.getInEdges().size() == 0 }\n\ndef findAllRoots = {\n roots =[]\n iter = g.getVertices().iterator()\n while(iter.hasNext()) {\n n = iter.next()\n if (n && isRoot(n)) {\n roots.push(n)\n }\n }\n roots: roots\n}\n\ndef countAllSubnodes = { root ->\n def allNodes = [:]\r\n def currentNodes = [root]\r\r\n while(currentNodes.size() > 0) {\n def node = currentNodes.pop()\r\n node.out.each { n ->\n\r if (!allNodes[n.id]) {\n visited[n.id] = true\r\n allNodes[n.id] = true\r\n currentNodes.push(n)\r\n }\r\n }\r\n } \n return allNodesCount.size()\n}\n \ndata = findAllRoots().collect { ea -> \n [ea.id, countAllSubnodes(ea)]\n} \n\ng.getRawGraph().getMessageLog().logMessage(\"Finish \" + queryId)};\r\n\nreturn [columns: [\"id\", \"Vertices\"], data: data]","parameters":"{\n stamp: new UUID().id,\n}\n","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3354":{"name":"DeleteAllRoots","query":"// g.v(2).IsDeleting = false\n\nif (g.v(2).IsDeleting) {\n return \"Deletion in process since \" + (g.v(2).IsDeleting)\n} \ntry {\n g.v(2).IsDeleting = \"\" +new Date()\n // g.startTransaction()\n // g.setMaxBufferSize(1000) \n\ndef isRoot = { n ->\n n.getInEdges().size() == 0\n}\n\ndef getAllSubnodes = { root ->\n def allNodes = [].asType(Set); \r\n def currentNodes = [root]\r\n\r\n while(currentNodes.size() > 0) {\r\n def node = currentNodes.pop()\r\n node.out.each { n ->\r\n if (!allNodes.contains(n)) {\r\n allNodes.add(n)\r\n currentNodes.push(n)\r\n }\r\n }\r\n } \r\n return allNodes\n}\n\ni = 0\ndef findAllRoots = {\n roots =[]\n iter = g.getVertices().iterator()\n while(iter.hasNext()) {\n n = iter.next()\n if(i++ % 1000 == 0) showProgress(i, 10000000)\n if (n && isRoot(n)) {\n roots.push(n)\n }\n }\n roots\n}\n\nroots = findAllRoots()\nroots = roots.findAll { ea -> ea.id > 10 && !(ea.type == 'Root')}\n\n// roots = roots[0 .. 1]\ndata = []\ni= 1\nprogressMax = roots.size()\nroots.each { ea -> \n rels = []\n objs = getAllSubnodes(ea)\n objs._().inE.fill(rels)\n \n data.push([ea.id, \n ea.type, \n ea.__LivelyClassName__,\n objs.size(),\n rels.size()])\n if (!dry) rels.each { e -> g.removeEdge(e)}\n if (!dry) objs.each { v -> g.removeVertex(v)}\n showProgress(i, progressMax)\n if (!dry) g.removeVertex(ea)\n} \n\ndef sumColumn = { table, column -> table.inject(0){s,ea -> s + ea[column]} }\ndata.push([null, \"TOTAL\", null, sumColumn(data, 3), sumColumn(data, 4)])\n\n// g.stopTransaction(TransactionalGraph.Conclusion.SUCCESS)\ng.v(2).IsDeleting = false\nreturn [columns: [\"id\", \"type\", \"class\", \"Vertices\", \"Edges\"], data: data]\n} catch(e) {\n // g.stopTransaction(TransactionalGraph.Conclusion.FAILURE)\n throw e\n} finally {\n g.v(2).IsDeleting = false\n}","parameters":"{\n dry: false\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3355":{"name":"DeleteProgressLogs","query":"def count = 0\ndef edges = g.v(4).getOutEdges(\"queryProgress\").collect{it}\nedges.each{ \n count++\n def v = it.getInVertex()\n g.removeEdge(it)\n g.removeVertex(v);\n}\nreturn count\n","parameters":"{\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3356":{"name":"MessageLogLoadURL","query":"fr= new FileInputStream('/var/lib/neo4j/data/graph.db/messages.log')\nmessages = fr.getText().split(\"\\n\")\n\nmessages = messages.findAll { it.matches(\".*Finished.*url.*rev.*\")}\n\n\nn = messages.size()\nlastN = 1000\nif (lastN < n)\n messages = messages[(n-lastN)..n-1] \n\n\n \ndata = []\ndef lastDate \nmessages.each{ line -> \n raw = line.split(\" \")\n if (raw.size() < 6) return \n date = Date.parse(\"yyyy-MM-dd H:m:s.S\", raw[0] + \" \" + raw[1])\n time = date.getTime() - (lastDate ?: date).getTime()\n row = [raw[0] +\" \" + raw[1], time, raw[10], raw[8].replace(\"http://lively-kernel.org/repository/webwerkstatt\",\"\")]\n lastDate = date\n data.push(row)\n }\n\n\n[columns: ['Date', 'Delta', 'Rev', 'path'], data: data]\n","parameters":"{\n}","categories":["Groovy","Log"],"language":"Gremlin"},"3357":{"name":"Last Objects Details","query":"START n=node({root})\nMATCH n -[r]-> w\nWITH w, replace(r.url?, \"http://lively-kernel.org/repository/webwerkstatt\",\"\") as path, r.rev as rev, id(w) as id\n// ORDER BY path LIMIT 50 // for testing\nORDER BY id LIMIT 1000\nMATCH w --> root\nWITH w, root, path, rev\nMATCH root -[r:submorph*0..10]-> submorph\nWITH distinct path, w, root, count(submorph) - 1 as morphs, rev\n// ORDER BY morphs DESC LIMIT 50\nMATCH root -[r:reference*0..10] -> o\nWITH id(w) as id, root, path, root, morphs, count(o) as objects, rev\nRETURN distinct id, path, rev, morphs, objects\nORDER BY id DESC","parameters":"{\n root: Number(this.objectRootNodeID),\n}","categories":["Objects"],"language":"undefined"},"3358":{"name":"LoadLivelyObject","query":"if (g.v(2).IsLoading) {\r\n \n if ((new Date().time - g.v(2).IsLoading) < (10 * 60 * 1000)) {\n // TODO: replace this cheap log with the real log\n return \"Loading in process since \" + (g.v(2).IsLoading)\r\n } else {\n log(\"waiting longer that 10min continue anyway\")\n } \r\n \n}\ntry {\r\n g.v(2).IsLoading = new Date().time\nlog(\"Start LoadLivelyObject url: \" + url + \" rev: \" + rev)\n// _loggingEnabled=false\nroot\ndef isSmartRef = { o -> \n try {\n return o.getClass().name == \"java.util.HashMap\" && o.__isSmartRef__\n } catch(e) {\n return false\n }\n}\ndef isPrimitiveValue = { java.lang.String.isInstance(it) || java.lang.Number.isInstance(it) || java.lang.Boolean.isInstance(it)}\n\ndef mapLivelyToGraphSelector = { p ->\n if (p == \"id\") { return \"_id\" }\n return p\n}\n\n\r\nstats = [createdObjects: []]\n\ndef objKey = { index, path -> index+\"_\"+path.toString()}\ndef maxProgress;\ndef currentProgress = 0\ndef objectNodeFromJSORegistryAt\na =0 \nobjectNodeFromJSORegistryAt = { registry, index, nodesBySerializationId, path, depth ->\n\n if (!path) path = []\n def oldLogPrefix = _logPrefix\n _logPrefix += \" \"\n // if (index == 23) _loggingEnabled=true\n showProgress(currentProgress++, maxProgress)\n _currentProgress.msg = \"objectNodeFromJSORegistryAt \" + index + \" path: \" + path + \" depth: \" + depth\n\n def id = index.toString()\n def node = nodesBySerializationId[objKey(index, path)]\n // log(\"node \" + node)\n\n if (node) return node; // break cycles here\n def obj = registry[index.toString()]\n\n for (prop in path) { \n try {\n obj = obj[prop]\n } catch(e) {\n obj =[type: 'ErrorNode', errorType: 'AccessPropertyFailed', msg: \"Error could not access prop: \" + prop + \" in: \" + obj ] \n }\n };\n\n if (depth > 20) {\n obj =[type: 'ErrorNode', errorType: 'DepthDeep', msg: \"Error: Depth limit exceeded (depth:\" + depth +\")\"] \n }\n\n if (java.util.ArrayList.isInstance(obj)) {\n def newObj = [:] \n // s=\"\"; for(i in 0..3) { s += \" \" +i}; s\n\n try { \n for( i in 0..(obj.size() - 1)) {\n newObj[i.toString()] = obj[i]\n }\n } catch(e) {\n throw new Error(\"Could not convert Array to Hash: \" + e)\n }\n obj = newObj\n }\n if (!java.util.HashMap.isInstance(obj)) \n throw new Error(\"obj is no HashMap: obj:\" + obj + \" class: \" + obj.getClass() + \n \" index \" + index + \" path: \" + path) \n log(\"map\")\n // make them homogene for Neo4J, since the first derivationIds were numbers and not strings\n if (obj.derivationIds) obj.derivationIds = obj.derivationIds.collect{ \"\" + it}\n def refProps = obj.keySet().toArray().findAll { ea -> isSmartRef(obj[ea]) }\n def arrayProps = obj.keySet().toArray().findAll { ea -> \n obj[ea].getClass().name == \"java.util.ArrayList\" && obj[ea].size() > 0 } \n\n arrayProps.removeAll([\"__serializedExpressions__\"]) // meta data\n\n\n log(\"valueProps\")\n def valueProps = obj.keySet().toArray().findAll { isPrimitiveValue(obj[it]) }\n\n def ignoredValues = new ArrayList(obj.keySet())\n ignoredValues.removeAll(refProps)\n ignoredValues.removeAll(arrayProps)\n ignoredValues.removeAll(valueProps)\n\n // if (path[0] == \"submorphs\") { halt(\"valueProps: \" + valueProps + \"\")}\n \n def nodeObj = [__serializationId__: index]\n\n if (ignoredValues.size() > 0) \n nodeObj.__ignoredValues__ = (new groovy.json.JsonBuilder())(ignoredValues).toString()\n\n valueProps.each { ea -> \n if (obj[ea]) {nodeObj[mapLivelyToGraphSelector(ea)] = obj[ea].toString()}\n }\n log(\"before addVertex\")\n\n try {\n node = g.addVertex(nodeObj)\n } catch(e) {\n throw new Error(\"Error in addVertex: \" + e + \" obj: \" + nodeObj)\n }\n \n stats.createdObjects.push(node)\n if (!node) throw new Exception(\"Could not create node \" + node)\n \n nodesBySerializationId[objKey(index, path)] = node\n\n\n referenceTo = { from, objId, propName ->\n log(\"referenceTo \" + objId)\n def referenceType \n def childNode\n\n if (nodesBySerializationId[objKey(objId, path)]) {\n childNode = nodesBySerializationId[objKey(objId, path)]\n referenceType = 'backReference'\n } else {\n try {\n childNode = objectNodeFromJSORegistryAt(registry, objId, nodesBySerializationId, [], depth + 1)\n } catch(e) {\n throw new Error(\"objectNoeFromJSORegistryAt \" + objId + \" \" + registry[objId.toString()] + \"\\n\" + \n \"Error: \" + e)\n }\n \n if (!childNode) throw new Exception(\"Could not create childNode \" + objId + \" \" + nodesBySerializationId)\n referenceType= 'reference'\n }\n\n def ref = g.addEdge(from, childNode, referenceType)\n if (!ref) throw new Error(\"could not create ref for \" + index + \" \" + nextPath) \n ref.name = propName\n \n _logPrefix = oldLogPrefix\n }\n\n log(\"refProps\")\n refProps.each { propName -> \n referenceTo(node, obj[propName].id, propName) }\n log(\"arrayProps\")\n maxProgress += arrayProps.size()\n arrayProps.each { propName -> \n if (!obj || !obj[propName]) return; // ignore empty props\n def nextPath = path.clone()\n nextPath.push(propName)\n def childNode = objectNodeFromJSORegistryAt(registry, index, nodesBySerializationId, nextPath, depth + 1)\n if (!childNode) throw new Error(\"could not create node for \" + index + \" \" + nextPath) \n def ref = g.addEdge(node, childNode, 'reference')\n if (!ref) throw new Error(\"could not create ref for \" + index + \" \" + nextPath) \n ref.name = propName\n }\n if(obj.submorphs){\n // node = g.v(root).out[0].out[0]\n\n node.outE(\"reference\").\n filter{ it.name == \"submorphs\"}.inV.out.each{ childNode ->\n def r = g.addEdge(node, childNode, 'submorph')\n assert r\n }\n } \n return node\n}\n\n\ndef findObject= { url, rev ->\n g.v(root).outE.find{it.url == url && it.rev == rev}}\n\nr = findObject(url, rev)\n\nif (r) {\n object = r.getInVertex()\n g.getRawGraph().getMessageLog().logMessage(\"Found LoadLivelyObject url: \" + url + \" rev: \" + rev)\n return [columns: [\"id\", \"url\", \"rev\", \"loaded\"], data: [[object.id, r.url, r.rev, true]]]\n}\ntry {\n \nobjectName = url.replaceFirst(/.*\\//,\"\").replaceFirst(/\\..*/,\"\")\nobject = g.addVertex([name: objectName, type: 'LivelyObject'])\nobject.isLoading = \"\" + new Date()\n\n// check for CONFLICTING inserts\n// if (findObject(url, rev)) {\n// g.stopTransaction(false)\n// return 'Conflicting Insert of ' + url + ' ' + rev\n// }\n\n\nr = g.addEdge( g.v(root), object, 'LivelyObject')\nr.url = url\nr.rev = \"\" + rev\n\nif (source.size() == 0) {\n svnRoot = \"http://lively-kernel.org/repository/webwerkstatt/\"\n svnURL = url.replaceFirst(svnRoot, svnRoot + \"/!svn/bc/\" + rev +\"/\")\n source = new URL(svnURL).getText()\n}\n\nlog(\"parse JSON\")\nslurper = new groovy.json.JsonSlurper()\n\ntry {\n jso = slurper.parseText(source)\n} catch(StackOverflowError e) {\n throw new Error(\"Error: could not parse JSON! Error: \" + e)\n}\n\n// jso.registry[\"0\"]['partTests']\n\nif (!jso) return \"Error: No source for \" + url\n\nmaxProgress = jso.registry.size()\nensureProgressNode()\n_currentProgress.queryDetails = \"url: \" + url + \" rev: \" + rev\n\n// g.startTransaction()\n// g.getRawGraph().getTxManager().begin()\n\nlog(\"get Object\")\nif (!jso) throw new Error(\"JSON could not be parsed\")\nif (!jso.registry) throw new Error(\"No registry found in jso\")\nif (jso.registry[\"isSimplifiedRegistry\"]) {\n object.error = \"registry format not supported: isSimplifiedRegistry\"\n return [columns: [\"id\", \"error\"], data: [[object.id, object.error]]]\n} \nif (!jso.registry[\"0\"]) throw new Error(\"No root object found in registry: \" + jso.registry)\nrootObject = objectNodeFromJSORegistryAt(jso.registry, \"0\", [:], [], 0)\n\n// g.stopTransaction(TransactionalGraph.Conclusion.SUCCESS)\n// g.getRawGraph().getTxManager().rollback()\n// return\n// g.getRawGraph().getTxManager().commit()\n// g.stopTransaction(TransactionalGraph.Conclusion.FAILURE)\n\n\nif (!rootObject) return \"ERROR: No object root\"\n\ng.addEdge(object, rootObject, 'rootObject');\n\nif (!r) return \"ERROR: could not register new object\" \n\ndata = [[object.id, object.name, \"LivelyObject\"]]\n\nstats.createdObjects.each { ea -> \n data.push([ea.id, ea.name, ea.__LivelyClassName__, ea._id, \n ea.getOutEdges().collect{ it.name}, \n ea.getInEdges().collect{ it.name},\n ea.getPropertyKeys(),\n ea.__ignoredValues__\n ])}\n\nobject.stats_createdObjects = stats.createdObjects.size()\n\n\n[columns: [\"id\", \"name\", \"class\", \"_id\", \"Out\", \"In\", \"Properties\", \"IgnoredValues\"], data: data ]\n\n} catch(e) {\n object.loadingError = \"\" + e \n throw e\n} finally {\n g.getRawGraph().getMessageLog().logMessage(\"Finished LoadLivelyObject url: \" + url + \" rev: \" + rev)\n object.isLoading = false \n}\n\n} finally {\n g.v(2).IsLoading= false\n}\n","parameters":"{\n root: this.testObjectRootNodeID,\n // url: 'http://lively-kernel.org/repository/webwerkstatt/PartsBin/Basic/Rectangle.json',\n // rev: \"198774\",\n // url: 'http://lively-kernel.org/repository/webwerkstatt/PartsBin/Basic/LineWithArrow.json',\n // rev: \"148733\",\n // url: \"http://lively-kernel.org/repository/webwerkstatt/PartsBin/Fabian/ObjectEditor.json\",\n // rev: \"156567\",\n\n // url: \"http://lively-kernel.org/repository/webwerkstatt/PartsBin/Foo.json\",\n // rev: \"199553\",\n // Error world\n // url: \"http://lively-kernel.org/repository/webwerkstatt/PartsBin/Tools/SerializationInspector.json\",\n // rev: \"199299\",\n // url: \"http://lively-kernel.org/repository/webwerkstatt/PartsBin/Jens/PartsBinVisualization.json\",\r\n // rev: \"190401\",\n url: \"http://lively-kernel.org/repository/webwerkstatt/PartsBin/Tools/SyncWorld.json\",\r\n rev: \"176733\", \n source: \"\" \n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3359":{"name":"FindAllRoots","query":"def isRoot = { n ->\n n.getInEdges().size() == 0\n}\ndef findAllRoots = {\n roots =[]\n iter = g.getVertices().iterator()\n while(iter.hasNext()) {\n n = iter.next()\n if (n && isRoot(n)) {\n roots.push(n)\n }\n }\n roots: roots\n}\n\ndef progressCount = 0\ndef progressOffset = 0\ndef allVerticesSize = g.getVertices().size()\n\nvisited = [:]\ndef getAllSubnodes = { root ->\n def allNodes = [:]\r\n def allNodesCount = 0\n def relCount = 0\n def currentNodes = [root]\r\r\n while(currentNodes.size() > 0) {\n if (++progressCount % 10000 == 0) {\n showProgress(progressOffset + allNodesCount, allVerticesSize)\n }\r\n def node = currentNodes.pop()\r\n relCount += node.getInEdges().size() \n node.out.each { n ->\n\r if (!allNodes[n.id]) {\n visited[n.id] = true\r\n allNodes[n.id] = true\r\n allNodesCount++\n currentNodes.push(n)\r\n }\r\n }\r\n } \n progressOffset += allNodesCount\r\n return [nodeCount: allNodesCount, relCount: relCount ]\n}\n\nroots = findAllRoots()\ndata = roots.collect { ea -> \n allSubnodes = getAllSubnodes(ea)\n [ea.id, \n ea.type, \n ea.__LivelyClassName__,\n allSubnodes.nodeCount,\n allSubnodes.relCount\n ]\n} \n\n// find nodes that do not end in a real root\nprogressCount = 0\ndef walkNotRootedNodes = {\n nodeCount = 0\n relCount = 0\n iter = g.getVertices().iterator()\n while(iter.hasNext()) {\n n = iter.next()\n if (++progressCount % 1000 == 0) {\n showProgress(nodeCount, allVerticesSize)\n }\r\n if (n && !visited[n.id] && n.id > 10 && n.type != 'Root') {\n nodeCount ++\n relCount += n.getInEdges().size()\n }\n }\n [nodeCount: nodeCount, relCount: relCount]\n}\n\nnotRootedNodesAndRels = walkNotRootedNodes()\ndata.push([null, \"NonRoot\", null, notRootedNodesAndRels.nodeCount, notRootedNodesAndRels.relCount])\n\ndef sumColumn = { table, column -> table.inject(0){s,ea -> s + ea[column]} }\ndata.push([null, \"TOTAL\", null, sumColumn(data, 3), sumColumn(data, 4)])\n\n[columns: [\"id\", \"type\", \"class\", \"Vertices\", \"Edges\"], data: data]\n\n","parameters":"{\n queryDate: \"\" + new Date() + \" \" + Date.now(),\n stamp: new UUID().id,\n dry: true\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3360":{"name":"DeleteGarbage","query":"if (g.v(2).IsDeleting) {\n return \"Deletion in process since \" + (g.v(2).IsDeleting)\n} \ntry {\n g.v(2).IsDeleting = \"\" +new Date()\n\ndef isRoot = { n ->\n n.getInEdges().size() == 0\n}\ndef findAllRoots = {\n roots =[]\n iter = g.getVertices().iterator()\n while(iter.hasNext()) {\n n = iter.next()\n if (n && isRoot(n)) {\n roots.push(n)\n }\n }\n roots: roots\n}\n\ndef progressCount = 0\ndef progressOffset = 0\ndef allVerticesSize = g.getVertices().size()\n\nvisited = [:]\n\ndef getAllSubnodes = { root ->\n visited[root.id] = true\n def allNodes = [:]\r\n def allNodesCount = 0\n def relCount = 0\n def currentNodes = [root]\r\r\n while(currentNodes.size() > 0) {\n if (++progressCount % 10000 == 0) {\n showProgress(progressOffset + allNodesCount, allVerticesSize)\n _currentProgress.msg = \"getAllSubnodes\"\n }\r\n def node = currentNodes.pop()\r\n relCount += node.getInEdges().size()\n node.out.each { n ->\n\r if (!allNodes[n.id]) {\n visited[n.id] = true\r\n allNodes[n.id] = true\r\n allNodesCount++\n currentNodes.push(n)\r\n }\r\n }\r\n } \n progressOffset += allNodesCount\r\n return [nodeCount: allNodesCount, relCount: relCount ]\n}\n\nensureProgressNode()\n\n\n\n// Walk all known roots and mark the visited nodes\nroots = findAllRoots()\nroots = roots.findAll { ea -> ea.id < 10 || ea.type == \"Root\"}\ndata = roots.collect { ea -> \n allSubnodes = getAllSubnodes(ea)\n [ea.id, \n ea.type, \n ea.__LivelyClassName__,\n allSubnodes.nodeCount,\n allSubnodes.relCount]\n} \n\n// walk all nodes again and delete those, that where not visited before\nprogressCount = 0\ndef deleteNotRootedNodes = {\n nodeCount = 0\n relCount = 0\n iter = g.getVertices().iterator()\n while(iter.hasNext()) {\n n = iter.next()\n if (++progressCount % 1000 == 0) {\n showProgress(nodeCount, allVerticesSize)\n _currentProgress.msg = \"deleteNotRootedNodes\" \n }\r\n if (n && !visited[n.id] && n.id > 10 && n.type != 'Root') {\n nodeCount ++\n relCount += n.getInEdges().size()\n n.getInEdges().each{ ea ->\n if (!dry) g.removeEdge(ea) \n }\n if (!dry) g.removeVertex(n) \n }\n }\n [nodeCount: nodeCount, relCount: relCount]\n}\n\ndeletedNodesAndRels = deleteNotRootedNodes()\n\ndata.push([null, \"Deleted\", null, deletedNodesAndRels .nodeCount, deletedNodesAndRels .relCount])\n\ndef sumColumn = { table, column -> table.inject(0){s,ea -> s + ea[column]} }\n\ndata.push([null, \"TOTAL\", null, sumColumn(data, 3), sumColumn(data, 4)])\n\nresult = [columns: [\"id\", \"type\", \"class\", \"Vertices\", \"Edges\"], data: data]\nb = new groovy.json.JsonBuilder(); b(result);\ng.v(2).lastResult = b.toString()\nreturn result\n\n} finally {\n g.v(2).IsDeleting = false\n}","parameters":"{\n queryDate: \"\" + new Date() + \" \" + Date.now(),\n stamp: new UUID().id,\n dry: true\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3361":{"name":"ListRootObjects","query":" \ndef inRef = {it.getInEdges()[0]}\n\ndef getAllSubnodes = { root ->\n def allNodes = [].asType(Set); \r\n def currentNodes = [root]\r\n\r\n while(currentNodes.size() > 0) {\r\n def node = currentNodes.pop()\r\n node.out.each { n ->\r\n if (!allNodes.contains(n)) {\r\n allNodes.add(n)\r\n currentNodes.push(n)\r\n }\r\n }\r\n } \r\n return allNodes\n}\n\nworlds =[]; \ng.v(root).outE(\"LivelyObject\").inV.fill(worlds)\n\n// worlds = worlds.findAll { \n// def r = inRef(it)\n// return r.url.matches(\".*PartsBin.*\")\n// }\n\n// max = 500; if (worlds.size() > max) worlds = worlds[0..max]\n\nmaxRev = [:]\n\nworlds.each { \n def r = inRef(it)\n maxRev[r.url] = Math.max(maxRev[r.url] ?: 0, r.rev.toInteger() )\n}\n\n// show only the last revivsion\nworlds = worlds.findAll {\n def r = inRef(it)\n return maxRev[r.url] == r.rev.toInteger()\n}\n\n\ndata = worlds.collect{ \n def r = inRef(it)\n if(!it.cachedNumberOfSubobjects) {\n def subnodes = getAllSubnodes(it)\n it.cachedNumberOfSubobjects = subnodes.size()\n }\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\n def name = path.replaceFirst(\".*/\",\"\")\n path = path.replaceFirst(\"/[^/]*\\$\",\"\")\n [it.id, \n path,\n name,\n r.rev,\n it.cachedNumberOfSubobjects ]}\n \n \ndata.sort{ea -> ea[1]}\n// data.reverse(true)\n\n\n// data = data[0..20]\n\nmax = 5000; if (data.size() > max) data = data[0..max]\n// a = [2,1,4,5,3].sort{ea -> ea}; a.reverse(true); a\n\ndata.add([\"TOTAL\", null, null, null, data.inject(0){s,e -> s + e[4]} ])\n\n\n[columns: [\"id\", \"path\", \"name\", \"rev\", \"Objects\"], data: data]","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3362":{"name":"Empty","query":"[columns: [\"id\", \"name\"], data: [[2, \"foo\"]]]","parameters":"{\n queryDate: \"\" + new Date() + \" \" + Date.now(),\n stamp: new UUID().id,\n dry: true\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3363":{"name":"ListRootObjectsDetails","query":"\r\n def inRef = {it.getInEdges()[0]}\r\n\r\ndef gatherRefs = { root, type ->\r\n def all = [].asType(Set); \r\n def current = [root]\r\n while(current.size() > 0) {\r\n def node = current.pop()\r\n node.outE(type).inV.each { n ->\r\n if (!all.contains(n)) {\r\n all.add(n)\r\n current.push(n)\r\n }\r\n }\r\n } \r\n return all\r\n}\r\n\r\nworlds =[]; \r\n// [0..10]\r\ng.v(root).outE(\"LivelyObject\").inV.fill(worlds)\r\n\nmaxRev = [:]\nworlds.each { \n def r = inRef(it)\n maxRev[r.url] = Math.max(maxRev[r.url] ?: 0, r.rev.toInteger() )\n}\n\n// show only the last revivsion\nworlds = worlds.findAll {def r = inRef(it) ; maxRev[r.url] == r.rev.toInteger() }\n\n// my worlds\nworlds = worlds.findAll {inRef(it).url.matches(\".*users.*\")}\r\n\r\ndef getTextStrings = { v ->\r\n v.outE(\"reference\").filter {\r\n it.name == 'textChunks'\r\n }.inV.out.collect { it.storedString}\r\n}\r\n\r\n // Debug\r\n // g.v(root).out.out.findAll{ it.__LivelyClassName__ == 'lively.morphic.Text'}[0]\r\n\r\n\r\ndata = worlds.collect{ \r\n def r = inRef(it)\r\n def submorphs = []\n def textmorphs = []\n textSize = 0\n it.outE(\"rootObject\").inV.each { rootObj ->\r\n if(!it.cachedNumberOfSubobjects) {\r\n def subnodes = gatherRefs(rootObj , \"reference\")\r\n it.cachedNumberOfSubobjects = subnodes.size()\r\n }\r\n submorphs = gatherRefs(rootObj , \"submorph\")\r\n textmorphs = submorphs.findAll {\r\n it.__LivelyClassName__ == 'lively.morphic.Text'\r\n }\r\n textStrings = textmorphs.inject([]){ s, ea -> s + getTextStrings(ea)}\r\n textSize = textStrings.inject(0){s, ea -> s + (ea ?: \"\").size()}\r\n }\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def name = path.replaceFirst(\".*/\",\"\")\r\n path = path.replaceFirst(\"/[^/]*\\$\",\"\")\r\n [it.id, \r\n path,\r\n name,\n r.rev,\r\n it.cachedNumberOfSubobjects,\r\n submorphs.size(),\r\n textmorphs.size(),\r\n textSize\r\n ]\r\n}\r\n \r\ndata.sort{ea -> ea[1]}\r\n// data.reverse(true)\r\n\r\r\n// data = data[0..20]\r\n\r\n// a = [2,1,4,5,3].sort{ea -> ea}; a.reverse(true); a\r\n\r\ndef tableSum = { data, column -> data.inject(0){s,e -> s + e[column]} }\r\n\r\ndata.add([ \"TOTAL\", null, null, null, tableSum(data, 4), tableSum(data, 5), tableSum(data, 6), tableSum(data, 7)])\r\n\r\n\r\n[columns: [\"id\", \"path\", \"name\", \"rev\", \"Objects\", \"Submorphs\", \"TextMorphs\", \"TextSize\"], data: data]\r\n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3364":{"name":"ListsPartsHistory","query":"\rdef inRef = {it.getInEdges()[0]}\r\n\rdef gatherRefs = { root, type ->\r\n def all = [].asType(Set); \r\n def current = [root]\r\n while(current.size() > 0) {\r\n def node = current.pop()\r\n node.outE(type).inV.each { n ->\r\n if (!all.contains(n)) {\r\n all.add(n)\r\n current.push(n)\r\n }\r\n }\r\n } \r\n return all\r\n}\r; \n\nget = { obj, ref -> obj.outE.filter{it.name == ref}.inV.collect{it}[0]\r }\n\nworlds =[]; \r\ng.v(root).outE(\"LivelyObject\").inV.fill(worlds)\r\n\nmaxRev = [:]\nworlds.each { \n def r = inRef(it)\n maxRev[r.url] = Math.max(maxRev[r.url] ?: 0, r.rev.toInteger() )\n}\n\n// show only the last revivsion\n// worlds = worlds.findAll {def r = inRef(it) ; maxRev[r.url] == r.rev.toInteger() }\n\n// Parts\nworlds = worlds.findAll { inRef(it).url =~ url}\n\r\ndef getTextStrings = { v ->\r\n v.outE(\"reference\").filter {\r\n it.name == 'textChunks'\r\n }.inV.out.collect { it.storedString}\r\n}\r\n\ndef getDerivationIds = { v ->\r\n def dobj = get(v,\"derivationIds\")\n if (!dobj) return []\n def keys = []\n dobj.getPropertyKeys().each({ try {keys.push(new Integer(it)) } catch(e) {} })\n return keys.sort().collect({ dobj[it.toString()]})\n}\r\n\n // Debug\r\n // g.v(root).out.out.findAll{ it.__LivelyClassName__ == 'lively.morphic.Text'}[0]\r\n // g.v(1424414).outE(\"rootObject\").inV.outE()[0].inV.size()\n\ndata = worlds.collect{ \r\n def r = inRef(it)\r\n def submorphs = []\n def textmorphs = []\n def derivationIds = []\n textSize = 0\n\n it.outE(\"rootObject\").inV.each { rootObj ->\r\n if(!it.cachedNumberOfSubobjects) {\r\n def subnodes = gatherRefs(rootObj , \"reference\")\r\n it.cachedNumberOfSubobjects = subnodes.size()\r\n }\r\n derivationIds = getDerivationIds(rootObj)\n submorphs = gatherRefs(rootObj , \"submorph\")\r\n textmorphs = submorphs.findAll {\r\n it.__LivelyClassName__ == 'lively.morphic.Text'\r\n }\r\n if (rootObj.__LivelyClassName__ == 'lively.morphic.Text'\r) {\n textmorphs.add(rootObj)\n }\n textStrings = textmorphs.inject([]){ s, ea -> s + getTextStrings(ea)}\r\n textSize = textStrings.inject(0){s, ea -> s + (ea ?: \"\").size()}\r\n }\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def name = path.replaceFirst(\".*/\",\"\")\r\n path = path.replaceFirst(\"/[^/]*\\$\",\"\")\r\n [it.id, \r\n path,\r\n name,\n r.rev,\r\n it.cachedNumberOfSubobjects,\r\n submorphs.size(),\r\n textmorphs.size(),\r\n textSize\r,\n derivationIds.size()\n ]\r\n}\r\n \r\ndata.sort{ea -> ea[1]}\r\n// data.reverse(true)\r\n\r\r\n// data = data[0..20]\r\n\r\n// a = [2,1,4,5,3].sort{ea -> ea}; a.reverse(true); a\r\n\r\ndef tableSum = { data, column -> data.inject(0){s,e -> s + e[column]} }\r\n\r\ndata.add([ \"TOTAL\", null, null, null, tableSum(data, 4), tableSum(data, 5), tableSum(data, 6), tableSum(data, 7)])\r\n\r\n\r\n[columns: [\"id\", \"path\", \"name\", \"rev\", \"Objects\", \"Submorphs\", \"TextMorphs\", \"TextSize\", \"DerivationIds\"], data: data]\r\n","parameters":"{\n root: this.objectRootNodeID,\n url: \"webwerkstatt/PartsBin/Basic\"\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3365":{"name":"ShowProgress","query":"def data = []\ng.v(4).getOutEdges(\"queryProgress\").collect{ it.getInVertex()}.each{ ea ->\n \n ea.queryProgressStart\n data.push([\n ea.query,\n ea.queryProgressMax, ea.queryProgress,\n ea.queryProgressStart, (ea.queryProgressEnd ?: new Date().getTime()),\n new Date(ea.queryProgressStart).format(\"yyyy-MM-dd HH:mm:ss\"),\n ea.msg,\n ea.queryDetails\n ])\n}\n\n\n\n[columns: [\"Query\", \"Max\", \"Progress\", \"Start\", \"Time\", \"Date\", \"Msg\", \"Details\"], data: data ]\n","parameters":"{\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3366":{"name":"MessageLogLoadURLFromTo","query":"fr= new FileInputStream('/var/lib/neo4j/data/graph.db/messages.log')\nmessages = fr.getText().split(\"\\n\")\n\nmessages = messages.findAll { it.matches(\".*Finished.*url.*rev.*\")}\n\nfromDate = Date.parse(\"yyyy-MM-dd H:m:s\", from)\ntoDate = Date.parse(\"yyyy-MM-dd H:m:s\", to)\n\nn = messages.size()\nlastN = 1000\nif (lastN < n)\n messages = messages[(n-lastN)..n-1] \n \ndata = []\ndef lastDate \nmessages.each{ line -> \n raw = line.split(\" \")\n if (raw.size() < 6) return \n date = Date.parse(\"yyyy-MM-dd H:m:s.S\", raw[0] + \" \" + raw[1])\n if (date < fromDate || date > toDate) return\n time = date.getTime() - (lastDate ?: date).getTime()\n row = [raw[0] +\" \" + raw[1], time, raw[10], raw[8].replace(\"http://lively-kernel.org/repository/webwerkstatt\",\"\")]\n lastDate = date\n data.push(row)\n }\n\n\n[columns: ['Date', 'Delta', 'Rev', 'path'], data: data]\n","parameters":"{\n from: \"2013-09-19 09:40:00\",\n to: \"2013-09-19 09:43:00\"\n}","categories":["Groovy","Log"],"language":"Gremlin"},"3367":{"name":"Test Gremlin Macro Require","query":"\nget\n\n\n","parameters":"{\n root: this.testObjectRootNodeID,\n require: ['LivelyGraphWalking']\n}","categories":["Test"],"language":"Gremlin"},"3368":{"name":"Last Log","query":"// \nSTART n=node(#{this.neoLogNodeID})\nMATCH n --> l\nRETURN\n MAX(id(l)) as id, replace(l.url, \"http://lively-kernel.org/repository/webwerkstatt/\",\"\") as path, \nl.date as Date, l.rev?, l.loadTime?, l.neo4JTime?, l.neoError?, l.warnings?\nORDER BY Date DESC\nLIMIT 100","parameters":"","categories":["Log"],"language":"undefined"},"3369":{"name":"Last Log Logs","query":"// \nSTART n=node(#{this.neoLogNodeID})\nMATCH n --> l\nRETURN\n MAX(id(l)) as id, replace(l.url, \"http://lively-kernel.org/repository/webwerkstatt/\",\"\") as path, \nl.date as Date, l.log?\nORDER BY Date DESC\nLIMIT 10","parameters":"","categories":["Log"],"language":"undefined"},"3370":{"name":"Log of today","query":"// \nSTART n=node(#{this.neoLogNodeID})\nMATCH n --> l\nWHERE l.date! =~ {date}\nRETURN\n MAX(id(l)) as id, replace(l.url, \"http://lively-kernel.org/repository/webwerkstatt/\",\"\") as path, l.date as Date, l.rev?, l.neo4JTime!\nORDER BY Date DESC\n","parameters":"{\n date: new Date().format(\"yyyy-mm-dd\")+\".*\"\n}","categories":["Log"],"language":"undefined"},"3371":{"name":"GroovyGlobalInclude","query":"\r\ndef _loggingEnabled = true\n\ndef _lineOffset = 0\r\ndef _logPrefix = \"\"\ndef _log = []\ndef _lineEvalString = 'try {throw new Exception()} catch(e) {e.stackTrace.findAll{it.getClassName().matches(\".*Script.*\")}.lineNumber}'\r\r\ndef _line = {Eval.x(this, _lineEvalString)}\r\n\ndef log = {s ->\n if (!_loggingEnabled) return;\n def msg = _logPrefix + \"Line \" + (_line()[4] + _lineOffset) + \": \" + s;\n _log.push(msg)\n g.getRawGraph().getMessageLog().logMessage(msg)};\r\n\n// _loggingEnabled=false; _logPrefix=\"xx_xx \"; log(\"Hello\")\n\n// the next line has to be the last\n_lineOffset = (-1 *_line()\r[3]) - 1","parameters":"{\n}","categories":["Gremlin","Groovy","Library"],"language":"Gremlin"},"3372":{"name":"MessageLog","query":"fr= new FileInputStream('/var/lib/neo4j/data/graph.db/messages.log')\nmessages = fr.getText().split(\"\\n\")\n\nmessages = messages.findAll { it.matches(\".*Finished.*url.*rev.*\")}\n\n\nn = messages.size()\nlastN = 200\nif (lastN < n)\n messages = messages[(n-lastN)..n-1] \n\n\n\ndata = []\nmessages.each{ line -> \n raw = line.split(\" \")\n if (raw.size() < 6) return \n row = [raw[0], raw[1], raw[2], raw[4], raw[5 .. raw.size()-1].join(\" \")]\n data.push(row)\n }\n\n\n[columns: ['Day', 'Time', 'Type', 'Source', 'Message'], data: data]\n","parameters":"{\n}","categories":["Groovy","Log"],"language":"Gremlin"},"3373":{"name":"MessageLogAll","query":"fr= new FileInputStream('/var/lib/neo4j/data/graph.db/messages.log')\nmessages = fr.getText().split(\"\\n\")\n\nmessages = messages.findAll({ !(it =~ \"GC Monitor: Application threads blocked for an additional\")}) \n\nn = messages.size()\nlastN = 200\nif (lastN < n)\n messages = messages[(n-lastN)..n-1] \n\nmessages = messages.reverse()\n\ndata = []\nmessages.each{ line -> \n raw = line.split(\" \")\n if (raw.size() < 6) return \n row = [raw[0], raw[1], raw[2], raw[4], raw[5 .. raw.size()-1].join(\" \")]\n data.push(row)\n }\n\n\n[columns: ['Day', 'Time', 'Type', 'Source', 'Message'], data: data]\n","parameters":"{\n}","categories":["Groovy","Log"],"language":"Gremlin"},"3374":{"name":"ShowDerivationHistory","query":"showProgress(0,1)\r\ndef w = findWorldsWithURL(root, urls)\n\n// getDerivationIds(g.v(2204573))\n\nderivationHistory = [:]\ndef i=0\nsortIntoDerivationHistory = {id, rest -> \n def node = derivationHistory[id];\n if (!node){\n node = [ i: i++, name: id, children: [], parent: null, coercedParents: [], objects: []]\n derivationHistory[id] = node\n }\n if (rest.size() > 0) {\n def parentId = rest.pop()\n if (node.parent) return node\n def parentNode = sortIntoDerivationHistory(parentId, rest)\n parentNode.children.push(node)\n node.parent = parentNode\n }\n 3\n return node\n}\n\nfindDerivationRoots = {\n derivationHistory.values().findAll { !it.parent && !it.coercedToChild }\n}\ncoerceDerivationHistory = { node ->\n if (node.parent && node.parent.children.size() == 1) {\n def nextParent = node.parent.parent\n node.coercedParents.push(node.parent)\n node.parent.coercedToChild = node\n def oldParent = node.parent\n node.parent = nextParent\n if (nextParent) {\n nextParent.children.remove(oldParent)\n nextParent.children.add(node)\n }\n }\n if (node.parent) {\n if(node.parent.children.size() == 1)\n coerceDerivationHistory(node)\n else\n coerceDerivationHistory(node.parent)\n }\n}\ncoerceDerivationHistoryLeaves = {\n derivationHistory.values().findAll { it.children.size() == 0}.each { node ->\n coerceDerivationHistory(node)\n }\n}\n\nvisitObj = {m, parent, refName, depth, all, rootId, path, rev ->\n if (depth > maxDepth ) return 0\n if (all[m.id]) return 0\n if (m.type == \"ErrorNode\") return 0\n def owner = get(m, \"owner\")\n if (parent && !((m.__LivelyClassName__ && owner) || refName == \"submorphs\")) return 0\n \n def node = sortIntoDerivationHistory(m._id, getDerivationIds(m))\n node.objects.add(m)\n node.path = path\n node.rev = rev\n node.rootId = rootId\n \n def nextParent = m;\n if (refName == \"submorphs\")\n nextParent = parent;\n all[m.id] = true\n m.outE(\"reference\").collect{it}.sort({it.id}).each{ ea -> \n def nextRefName = ea.name\n def nextDepth = depth + 1\n if (refName == \"submorphs\") {\n nextRefName = \"submorph \" + nextRefName;\n nextDepth = depth \n } \n visitObj(ea.inV.collect({it})[0], nextParent, nextRefName , nextDepth, all, rootId, path, rev)}\n}\n\n \nw.worlds.each{ \r\n def r = inRef(it)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def rev = r.rev\r\n def rootId = it.id\n it.outE(\"rootObject\").inV.each { rootObj ->\r\n visitObj(rootObj, null, null, 0, [:], path, rev, rootId)\n }\n}\r\r\n\nrows = []\n\ndef truncateString = { s,max -> \n if (!s) return \"\"; \n if(s.size() > max) \n s.substring(0,max) \n else \n s\n}\nwalkDerivationHistory = { item, parent, depth ->\n\n def name = truncateString(item.name, 5) + \"_\"+ item.objects.collect{ m -> \n m.name ?: (m.__LivelyClassName__ ?: \"\").replace(\"lively.\",\"\").replace(\"morphic.\",\"\")}.join(\"\")\n def category = (item.path ?: \"\").replaceAll(/\\/[A-Za-z]+\\.json/,\"\")\n rows.push([\n i: item.i,\r\n treeItem: (\" \" * depth) + name,\n coerceParents: item.coercedParents.size(),\n distance: item.markedDistance,\n distanceSize: item.markedDistance ? 5 - item.markedDistance : 1,\n size: item.coercedParents.size() + 1,\n children: item.children.size(),\n category: category,\n path: item.path,\n rev: item.rev,\n // coerceParents: item.coercedParents.collect{ (it.name + \" \").substring(0,5)},\n // children: item.children.collect{ (it.name + \" \").substring(0,5)},\n objects: item.objects.collect{ (it.name ?: \"\") + \":\" + it.__LivelyClassName__ },\n id: item.name\r,\n parentId: parent ? parent.name : \"\",\n name: name\n ]) \n item.children.each{ ea ->\n walkDerivationHistory(ea, item, depth + 1)\n }\n}\ncoerceDerivationHistoryLeaves()\n\ncalcInheritanceDistance = { node, distance ->\n if(node.markedDistance) return;\n node.markedDistance = distance\n if (node.parent)\n calcInheritanceDistance(node.parent, distance +1)\n node.children.each { child ->\n calcInheritanceDistance(child, distance +1) \n }\n}\n\nif (target) {\n def targetNode = derivationHistory[target]\n if (targetNode) calcInheritanceDistance(targetNode, 0)\n}\n\nfindDerivationRoots().each { root ->\n walkDerivationHistory(root, null, 0)\n}\n\ndef maxRows = 1000\nif (rows.size() > maxRows) rows = rows[0..maxRows]\n\nrows = rows.findAll({it.distance && it.distance < 5})\n\n// rows = rows.sort{ it.i }\n// rows = rows.reverse();\nreturn rowsToData(rows, null) // .data.collect({it[3]}).toString()","parameters":"{\n root: this.objectRootNodeID,\n target: 'F790A133-8F15-4EB2-8304-85F640BE8FB1',\n require: ['LivelyGraphWalking'],\n // urls: ['webwerkstatt/PartsBin/Basic', 'webwerkstatt/PartsBin/Widgets', 'webwerkstatt/PartsBin/Tools'],\n // urls: ['webwerkstatt/PartsBin/Tools/'],\n // urls: ['webwerkstatt/PartsBin/'],\n // urls: ['webwerkstatt/PartsBin/Tools', 'webwerkstatt/PartsBin/Widgets', 'webwerkstatt/PartsBin/Basic'],\n urls: ['webwerkstatt/PartsBin/'],\n maxDepth: 2\n}","categories":["Gremlin","Groovy","Analysis"],"language":"Gremlin"},"3375":{"name":"FindPartsInParts","query":"showProgress(0,1)\r\ndef w = findWorldsWithURL(root, urls)\n\nrows = []\r\nw.worlds.each{ \r\n def r = inRef(it)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def rev = r.rev\r\n def rootId = it.id\n def found = [:]\n addObjWithOwner = { o -> \n if (found[o.id]) return\n found[o.id] = o\n def owner = get(o, \"owner\")\n if (owner) addObjWithOwner(owner) \n }\n it.outE(\"rootObject\").inV.each { rootObj ->\r\n def objs = gatherRefs(rootObj , \"reference\")\n objs.add(rootObj)\n objs.each { o -> \n def info = get(o, \"partsBinMetaInfo\")\n if (info) {\n targets.each { target -> \n if (info.partName =~ target) addObjWithOwner(o)\n }\n }\n }\n }\n \n found.values().each{ m ->\r\n def parent = get(m, \"owner\")\n if (!parent) return; \n def derivationIds = getDerivationIds(m)\n def name = m.name ?: m.__LivelyClassName__.replace(\"lively.\",\"\").replace(\"morphic.\",\"\")\n rows.push([\r\n root: rootId,\r\n Path: path, \r\n id: m.id,\r\n parentId: parent ? parent.id : \"null\",\n name: name,\r\r\n Class: m.__LivelyClassName__,\r\n Subobjects: countSubobjects(m),\n Size: calcObjectSize(m),\n DerivationId: m._id,\n DerivationIds: derivationIds.size(),\n ]\r)\n }\r\n}\r\n\nrowsToData(rows, null)\n","parameters":"{\n root: this.objectRootNodeID,\n targets: ['SplitterMorph'],\n require: ['LivelyGraphWalking'],\n urls: ['webwerkstatt/PartsBin/Tools/']\n}","categories":["Gremlin","Groovy","Analysis"],"language":"Gremlin"},"3376":{"name":"Test Gremlin Index","query":"// g.createManualIndex('test1', Vertex.class)\n\n\nnameIdx =g.idx('test1')\n\ng.idx('test1').put(\"test\", \"a\", g.v(2))\ng.idx('test1').put(\"test\", \"a\", g.v(3))\ng.idx('test1').get(\"test\", \"a\")\n\ng.idx('test1').getIndexType()\n\n\n\n\n","parameters":"{\n root: this.testObjectRootNodeID\n}","categories":["Test","Index"],"language":"Gremlin"},"3377":{"name":"ListPath","query":"showProgress(0,1)\r\r\ndef w = findWorldsWithURL(root, urls)\n\ndef currentQueries = g.v(4).outE('queryProgress').inV.collect{it}\nif (currentQueries.size() > 0) return \"Queries in Progress: \" + currentQueries.collect{ it.query }.join(\", \")\n\r\ndef progressCount = 0\ndef progressMax = w.worlds.size() \nrows = []\npathRows = [:]\n\n\nw.worlds.collect { \rworld ->\n showProgress(progressCount++,progressMax)\r \n def r = inRef(world)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n path = path.replaceFirst(\"/[^/]*\\$\",\"\")\n if (!pathRows[path]) {\n pathRows[path] = [\n path: path.replaceFirst(\"/[^/]*\\$\",\"\"),\n name: path.replaceAll(/.*\\//,\"\"),\n Worlds: 0,\n Objects: 0,\n Size: 0\n ]\n }\n def pathRow = pathRows[path] \n pathRow.Worlds += 1\n world.outE(\"rootObject\").inV.each { rootObj ->\r\n if (!world.cachedNumberOfObject && !quick) world.cachedNumberOfObject = countSubobjects(rootObj)\n pathRow.Objects += world.cachedNumberOfObject ?: 0\n if (!world.cachedSizeOfObject && !quick) world.cachedSizeOfObject = calcObjectSize(rootObj) \n pathRow.Size += world.cachedSizeOfObject ?: 0\n }\n}\r\n\nrows = pathRows.collect{k,v -> v}\nrowsToData(rows,[])\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/\"],\n quick: false\n}","categories":["Gremlin","Groovy","Analysis"],"language":"Gremlin"},"3378":{"name":"ListClasses","query":"// g.createManualIndex('LivelyObjects', Vertex.class)\n// g.createManualIndex('Meta', Vertex.class)\n\ng.create\n\n\ng.idx(\"Meta\").get(\"name\", \"bla\")\n\ng.idx(\"LivelyObjects\").get(\"name\", \"bla\")\n\n\n\n\n\n\n\n\n\n\nshowProgress(0,1)\r\r\ndef w = findWorldsWithURL(root, urls)\n\ndef currentQueries = g.v(4).outE('queryProgress').inV.collect{it}\nif (currentQueries.size() > 0) return \"Queries in Progress: \" + currentQueries.collect{ it.query }.join(\", \")\n\r\ndef progressCount = 0\ndef progressMax = w.worlds.size() \nrows = []\npathRows = [:]\n\n\nw.worlds.collect { \rworld ->\n showProgress(progressCount++,progressMax)\r \n def r = inRef(world)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n path = path.replaceFirst(\"/[^/]*\\$\",\"\")\n if (!pathRows[path]) {\n pathRows[path] = [\n path: path.replaceFirst(\"/[^/]*\\$\",\"\"),\n name: path.replaceAll(/.*\\//,\"\"),\n Worlds: 0,\n Objects: 0,\n Size: 0\n ]\n }\n def pathRow = pathRows[path] \n pathRow.Worlds += 1\n world.outE(\"rootObject\").inV.each { rootObj ->\r\n if (!world.cachedNumberOfObject && !quick) world.cachedNumberOfObject = countSubobjects(rootObj)\n pathRow.Objects += world.cachedNumberOfObject ?: 0\n if (!world.cachedSizeOfObject && !quick) world.cachedSizeOfObject = calcObjectSize(rootObj) \n pathRow.Size += world.cachedSizeOfObject ?: 0\n }\n}\r\n\nrows = pathRows.collect{k,v -> v}\nrowsToData(rows,[])\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/\"],\n quick: false\n}","categories":["Gremlin","Groovy","Analysis"],"language":"Gremlin"},"3379":{"name":"ShowObjectWithGarbage","query":"\rrows = []\ncolumns = parseColumns(properties) \n\nvisitObj = {m, parent, refName, depth, all ->\n if (depth == 0 ) return 0\n if (all[m.id]) return 0\n if (m.type == \"ErrorNode\") return 0\n all[m.id] = true\n def row = partToRow(m, columns)\n row.parentId = parent ? parent.id : null\n row.treeItem = (\" \" * depth) + \"->\" +refName \n rows.add(row) \n m.outE(\"reference\").each{ ea -> \n visitObj(ea.inV.collect({it})[0], m, ea.name, depth - 1, all)}\n return \n}\n\nvisitObj(g.v(root), null, null, depth, [:])\nrowsToData(rows,[])\n\r\r\n\r\r\n","parameters":"{\n // root: 2201359,\n root: 1022129,\n depth: 3,\n require: ['LivelyGraphWalking'],\n properties: \"id, name, owner, className, sourceModule\"\n}","categories":["Gremlin","Groovy","Analysis"],"language":"Gremlin"},"3380":{"name":"Test Groovy Eval","query":"g.v(root).out\n\n\n\nabc=3;\nfoo = { x -> '3'}\ngetBinding().getVariables()\n\n\n(new Binding(b:b)).evaluate \"b\"\n\nb = 4\nnew GroovyShell(new Binding(getBinding().getVariables())).evaluate \"b\" \n\n\n.evaluate \"{ -> println b }\" ","parameters":"{\n root: this.testObjectRootNodeID\n}","categories":["Test"],"language":"Gremlin"},"3381":{"name":"IndexLivelyParts","query":"// g.createManualIndex('LivelyParts', Vertex.class)\n\nensureOnlyOneQuery()\n\ndef livelyParts = g.idx('LivelyParts')\n\nshowProgress(0,1)\r\r\ndef w = findWorldsWithURL(root, urls)\n\r\ndef progressCount = 0\ndef progressMax = w.worlds.size() \nrows = []\n\nvisitObj = {m, parent, refName, all, stats, rootObj, url ->\n if (all[m.id]) return false\n if (m.type == \"ErrorNode\") return false\n if (livelyParts.get(\"visited\", m.id)) return false\n\n def owner = get(m, \"owner\")\n if (parent && !((m.__LivelyClassName__ && owner) || refName == \"submorphs\")) return false\n\n def name = m.name ?: (m.__LivelyClassName__ ?: \"\").replace(\"lively.\",\"\").replace(\"morphic.\",\"\") ?: \"->\" + refName;\n \n if (m.__LivelyClassName__ && (owner || !parent)) {\n livelyParts.put(\"id\", m._id, m)\n livelyParts.put(\"name\", m.name ?: \"\", m)\n livelyParts.put(\"rootToPart\", rootObj.id, m)\n livelyParts.put(\"partToRoot\", m._id, rootObj)\n livelyParts.put(\"urlToPart\", url, m)\n\n stats[\"_NumberOfMorphs\"] = (stats[\"_NumberOfMorphs\"] ?: 0) + 1\n\n def partsBinMetaInfo = get(m, \"partsBinMetaInfo\")\n if (partsBinMetaInfo) {\n if (partsBinMetaInfo.partName) livelyParts.put(\"partName\", partsBinMetaInfo.partName, m) \n if (partsBinMetaInfo.partsSpaceName) livelyParts.put(\"partsSpaceName\", partsBinMetaInfo.partsSpaceName, m) \n\n def part = \"\" + partsBinMetaInfo.partsSpaceName + \"/\" + partsBinMetaInfo.partName\n if (part) {\n livelyParts.put(\"part\", part, m)\n stats[part] = (stats[part] ?: 0) + 1\n }\n (getDerivationIds(m) ?: []).each { derivationId -> \n if (derivationId)\n livelyParts.put(\"descendant\", derivationId, m) \n }\n }\n \n } \n \n def nextParent = m;\n if (refName == \"submorphs\")\n nextParent = parent;\n all[m.id] = true\n m.outE(\"reference\").collect{it}.sort({it.id}).each{ ea -> \n def nextRefName = ea.name\n if (refName == \"submorphs\") {\n nextRefName = \"submorph \" + nextRefName;\n } \n visitObj(ea.inV.collect({it})[0], nextParent, nextRefName , all, stats, rootObj, url)\n livelyParts.put(\"visited\", m.id, m)\n }\n return true\n}\n\nw.worlds.collect{ \rworld ->\n showProgress(progressCount++,progressMax)\r \n def r = inRef(world)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def name = path.replaceFirst(\".*/\",\"\")\r\n ensureProgressNode().msg = \"world: \" + name\n // log(\"name: \" + name)\n path = path.replaceFirst(\"/[^/]*\\$\",\"\")\r \n def row = [\n id: world.id, \n name: name, \n stats: \"\"\n ]\n rows.push(row)\n world.outE(\"rootObject\").inV.each { rootObj ->\n def stats = [:]\r\n if(!quick && workload > 0 && visitObj(rootObj, null, null, [:], stats, rootObj, r.url)) {\n rootObj.cachedPartsStats = stats.toString()\n workload--\n }\n row.stats = rootObj.cachedPartsStats // ?: stats // show what you got so far if not sucessfull\n }\r\n}\r\n\nrowsToData(rows,null)\n\n\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/\"],\n quick: false,\n workload: 10000,\n}","categories":["Test","Index"],"language":"Gremlin"},"3382":{"name":"IndexLivelyScripts","query":"// g.createManualIndex('LivelyScripts', g.v(1).class)\n// g.dropIndex('LivelyScripts')\n\n// g.idx(\"LivelyScripts\").get(\"script\",\"all\").collect{it.inE.name.collect{it}[0]}.countBy{it}\n\n// g.idx(\"LivelyScripts\").get(\"script\",\"all\").groupBy{it.source}.values()\n\n// g.idx(\"LivelyScripts\")[[script: 'all']].countBy{it.source}.collect{ k, v -> [g.idx(\"LivelyScripts\").get(\"source\", k)[0].name, v] }\n\nensureOnlyOneQuery()\n\nshowProgress(0,1)\r\ndef w = findWorldsWithURL(root, urls)\ndef livelyScripts = g.idx(\"LivelyScripts\")\n\nrows = []\r\nprogressCount = 0\n\ndef progressCount = 0\ntry {limit = Math.min(limit, w.worlds.size()) } catch(e) { limit = 0}\nif (!limit) limit = w.worlds.size()\n\nw.worlds.each{ \r\n\n def rootId = it.id\n if (progressCount > limit) return \n \n\n if (livelyScripts.get(\"visited\", rootId).size() > 0) return //\n showProgress(progressCount++,limit)\r \n\n def r = inRef(it)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def rev = r.rev\r\n\n\n def name = path.replaceFirst(\".*/\",\"\")\r\n ensureProgressNode().msg = \"world: \" + name\n \n it.outE(\"rootObject\").inV.each { rootObj ->\r\n def objs = getAllSubmorphs(rootObj)\n def totalScripts = 0\n def totalScriptsSize = 0\n objs.each{ m ->\r\n def parent = get(m, \"owner\")\n if (!parent) return; \n def part = get(m, \"partsBinMetaInfo\")\n \n\n // g.v(2201364)\n def scripts = getScripts(m)\n if (scripts) {\n scripts.each({ script -> \n \n script.node.name = script.name\n script.node.user = script.user ?: \"unknown\"\n script.node.timestamp = script.timestamp ?: \"\" \n row = [\r\n root: rootId,\r\n Path: path, \r\n id: script.id,\r\n parentId: m.id,\n name: script.name,\r \n objectClass: m.__LivelyClassName__,\n objectClassModule: m.__SourceModuleName__,\n derivationId: m._id,\n partName: part ? part.partName : \"\",\n partsSpaceName: (part && part.partsSpaceName) ? part.partsSpaceName.replaceAll(/\\/$/,\"\") : \"\",\n user: script.user ?: \"\",\n timestamp: script.timestamp,\n rev: rev,\n sourceSize: script.source ? script.source.size() : 0\n\n ] \n livelyScripts.put(\"script\", \"all\", script.node) \n \n if(row.path) livelyScripts.put(\"path\", row.Path, script.node) \n if(row.id) livelyScripts.put(\"id\", row.id, script.node) \n if(row.parentId) livelyScripts.put(\"parentId\", row.parentId, script.node) \n if(row.name) livelyScripts.put(\"name\", row.name, script.node) \n if(row.objectClass) livelyScripts.put(\"objectClass\", row.objectClass, script.node) \n if(row.objectClassModule) livelyScripts.put(\"objectClassModule\", row.objectClassModule, script.node) \n if(row.derivationId) livelyScripts.put(\"derivationId\", row.derivationId, script.node) \n if(row.partName) livelyScripts.put(\"partName\", row.partName, script.node) \n if(row.partsSpaceName) livelyScripts.put(\"partsSpaceName\", row.partsSpaceName, script.node) \n livelyScripts.put(\"part\", \"\"+row.partsSpaceName +\"/\" + row.partName, script.node) \n if(row.rev) livelyScripts.put(\"rev\", row.rev, script.node) \n if(row.user) livelyScripts.put(\"user\", row.user, script.node)\n if(script.source) livelyScripts.put(\"source\", script.source, script.node)\n \n totalScriptsSize += row.sourceSize \n totalScripts += 1\n if(verbose) rows.push(row) \n \n })\n }\n }\r\n rows.push([\rroot: rootId,\r Path: path, \rScrips: totalScripts, ScriptsSize: totalScriptsSize])\n }\r\n \n livelyScripts.put(\"visited\", it.id,it)\n}\r\n\nrowsToData(rows, null)\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: ['webwerkstatt'],\n verbose: false,\n limit: 10000\n}","categories":["Gremlin","Groovy","Index"],"language":"Gremlin"},"3383":{"name":"FindParts","query":"queryFindObjects() // yeah, everything is refactored to one magic function :-)\n","parameters":"{\n index: 'LivelyParts',\n // part, partName, partSpace:\n search: [\n {partsSpaceName: 'PartsBin/Visualization'},\n {partsSpaceName: 'PartsBin/Visualization/'},\n {partsSpaceName: 'PartsBin/Wiki'},\n {partsSpaceName: 'PartsBin/Wiki/'},\n {partsSpaceName: 'PartsBin/Tools'},\n {partsSpaceName: 'PartsBin/Tools/'}],\n filter: \"!(it.path =~ /PartsBin/)\",\n limit: 100,\n properties: \"rev, id, path, name, partName, partsSpaceName, derivationId\",\n require: ['LivelyGraphWalking'],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3384":{"name":"IndexLivelyObjects","query":"// g.createManualIndex('LivelyObjects', Vertex.class)\n\ndef currentQueries = g.v(4).outE('queryProgress').inV.collect{it}\nif (currentQueries.size() > 0) throw new Exception(\"Queries in Progress: \" + currentQueries.collect{ it.query }.join(\", \"))\n\ndef livelyObjects = g.idx('LivelyObjects')\n\nshowProgress(0,1)\r\r\ndef w = findWorldsWithURL(root, urls)\n\r\ndef progressCount = 0\ndef progressMax = w.worlds.size() \nrows = []\n\nvisitObj = {m, all, classStats ->\n if (!m) return false;\n if (all[m.id]) return false;\n all[m.id] = true;\n if (livelyObjects.get(\"visited\", m.id).size() > 0) return 0 \n if (m.type == \"ErrorNode\") return 0\n if (m.__LivelyClassName__) {\n classStats[m.__LivelyClassName__] = (classStats[m.__LivelyClassName__] ?: 0) + 1\n livelyObjects.put(\"name\", m.name ?: \"\", m)\n livelyObjects.put(\"className\", m.__LivelyClassName__, m)\n if (m._id) livelyObjects.put(\"id\", m._id, m)\n getDerivationIds(m).each { derivationId ->\n if (derivationId) livelyObjects.put(\"descendant\", derivationId, m)\n }\n }\n m.outE(\"reference\").collect{it}.sort({it.id}).each{ ea ->\n def nextObj = ea.inV.collect({it})[0]\n visitObj(nextObj, all, classStats)\n }\n livelyObjects.put(\"visited\", m.id, m)\n return true // updated index\n}\n\nw.worlds.collect{ \rworld ->\n showProgress(progressCount++,progressMax)\r \n def r = inRef(world)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def name = path.replaceFirst(\".*/\",\"\")\r\n ensureProgressNode().query = \"world: \" + name\n // log(\"name: \" + name)\n path = path.replaceFirst(\"/[^/]*\\$\",\"\")\r \n def row = [\n id: world.id, \n name: name, \n classes: \"\"\n ]\n rows.push(row)\n world.outE(\"rootObject\").inV.each { rootObj ->\n def classStats = [:]\r\n if(!quick && workload > 0 && visitObj(rootObj, [:], classStats)) {\n rootObj.cachedClassStats = classStats.toString() \n workload--\n }\n row.classes = rootObj.cachedClassStats ?: \"\"\n }\r\n}\r\n\nrowsToData(rows,null)\n\n\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n quick: false,\n workload: 50,\n}","categories":["Test","Index"],"language":"Gremlin"},"3385":{"name":"IndexLivelyWorlds","query":"// g.createManualIndex('LivelyWorlds', g.v(1).class)\n// g.dropIndex('LivelyWorlds')\n\n\n\nensureOnlyOneQuery()\n\nshowProgress(0,1)\r\ndef livelyWorlds = g.idx('LivelyWorlds')\n\nw = findWorldsWithURLWithMaxRev(root, urls, true, maxRev)\n\nrows = []\r\nprogressCount = 0\n\ntry {force = force } catch(e) { force = false}\ntry {limit = Math.min(limit, w.worlds.size()) } catch(e) { limit = 0}\nif (!limit) limit = w.worlds.size()\n\n\nupdateIndex = { row, idx, obj, prop, func ->\n if (obj[prop] == null || force) {\n def newValue = func()\n if (newValue) obj[prop] = newValue\n }\n def value = obj[prop] \n if (row) row[prop] = value\n if (idx && value) idx.put(prop, value, obj)\n}\n\nw.worlds.each{ \rworld ->\n def rootId = world.id\n if (progressCount > limit) return \n \n if (livelyWorlds.get(\"visited\", rootId).size() > 0) return //\n showProgress(progressCount++,limit)\r \n\n def r = inRef(world)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def row = [id: world.id, Path:\"\", name:\"\", rootId: null, DerivationId: \"\", Size: 0, SubObjects: 0, FullSize: 0, TextSize: 0, Errors: 0 ]\n \n // g.v(11375093).Pa\n\n livelyWorlds.put(\"world\", \"all\", world)\n updateIndex(row, livelyWorlds, world, \"name\", {path.replaceFirst(\".*/\",\"\")})\n updateIndex(row, livelyWorlds, world, \"Path\", {path.replaceAll(/\\/[^\\/]*$/,\"\")})\n updateIndex(row, livelyWorlds, world, \"rev\", {r.rev})\n updateIndex(null, livelyWorlds, world, \"url\", {r.url})\n \n livelyWorlds.put(\"urlAndPath\", r.url+\"&\"+r.rev, world)\n\n if (world.error) {\n livelyWorlds.put(\"error\", world.error, world)\n livelyWorlds.put(\"error\", \"all\", world)\n } \n row.error = world.error\n \n ensureProgressNode().msg = \"world: \" + world.name\n def loaded = false\n def rootObjId \n world.outE(\"rootObject\").inV.each { rootObj ->\r\n livelyWorlds.put(\"worlds\", \"loaded\", world) \n row.loaded = true \n rootObjId = rootObj.id\n row[\"rootId\"] = rootObj.id\n \n updateIndex(row, null, world, \"SubObjects\", {countSubobjects(rootObj)})\n updateIndex(row, null, world, \"Size\", {calcPropertiesAndReferencesSize(rootObj)})\n updateIndex(row, null, world, \"FullSize\", {calcObjectSize(rootObj)})\n \n updateIndex(row, livelyWorlds, world, \"DerivationId\", {rootObj._id}) \n updateIndex(row, livelyWorlds, world, \"Errors\", {countErrorNodes(rootObj)}) \n updateIndex(row, livelyWorlds, world, \"TextSize\", {calcTextSizeFull(rootObj)}) \n }\r\n rows.push(row)\n livelyWorlds.put(\"visited\", world.id, world)\n}\r\n\nrowsToData(rows, null)","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/\"],\n quick: false,\n maxRev: 200000,\n force: true,\n limit: 10,\n}","categories":["Test","Index"],"language":"Gremlin"},"3386":{"name":"ExploreReferences","query":"\rrows = []\ncolumns = parseColumns(properties) \ndef stop=false\ndef i=0\nvisitObj = {m, parent, refName, d, all, e ->\n if (stop) return false\n if (d > depth ) return false \n if (all[e.id]) return false // mark edges, and not vertices...\n if (m.type == \"ErrorNode\") return false\n if (i++ > limit) return\n all[e.id] = true\n def row = partToRow(m, columns)\n row.name = (row.name ?: row.className) ?: \"->\" + m.inE.name.collect{it}[0] \n rows.add(row)\n row.treeItem = (\" \" * d) + \"<-\" + refName + \"\"\n row.parentId = parent ? parent.id : null\n row.distance = d\n if (stopAtWorld && (row.className == \"lively.morphic.World\")) {\n stop = true\n return true// we have found the world\n }\n row.references = m.inE(\"reference\").outV.collect({it.id}).toString()\n m.inE(\"reference\").each{ ea ->\n def next = ea.outV.collect({it})[0]\n visitObj(next, m, ea.name, d + 1, all, ea)\n }\n return true \n}\nvisitObj(g.v(root), null, null, 0, [:], [id:null])\n\ndef maxDistance = 0\nrows.each{ maxDistance = Math.max(it.distance, maxDistance) }\n\nrows.each { ea -> ea['invDistance'] = maxDistance - ea['distance']}\n\nexcluded = [:]\nrows.each { ea -> excluded[ea.id] = true}\nvisitedSubobjectsSize = [].asType(Set)\nvisitedSubobjectsCount = [].asType(Set)\nrows.each { ea -> \n def v = g.v(ea.id)\n excluded[ea.id] = false // avoid immediate return..\n if (v) {\n ea.Objects = countSubobjectsExcluded(v,visitedSubobjectsCount, excluded)\n ea.Size = calcObjectSizeExcluded(v, visitedSubobjectsSize, excluded) \n }\n excluded[ea.id] = true\n}\n\n// rows = rows.reverse()\nrowsToData(rows, null)\n\r\r\n\r\r\n","parameters":"{\n root: 1020114,\n // root: 1022681,\n depth: 1000,\n limit: 1000,\n require: ['LivelyGraphWalking'],\n stopAtWorld: false,\n properties: \"id, parentId, rev, name, treeItem, owner, className, references, path\"\n}","categories":["Gremlin","Groovy","Analysis"],"language":"Gremlin"},"3387":{"name":"CountWorlds","query":"rows = []\n\n// unfinshed\n\nworlds = g.idx(\"LivelyWorlds\")[[world: 'all']]\n\nall = [:]\nleaves = []\nworlds.each { world -> \n row = [ id: \"/\"+world.Path + world.name, Size: 1, parentId: \"/\"+world.Path, name: world.name ]\n all[row.id] = row\n leaves.add(row)\n}\n\n\ndef addNewParents = {\n def newRows = []\n newRows = all.collect{k,v -> v}.clone().each { row -> \n if (!all[row.parentId]) {\n def newId = row.parentId\n newRow =[\n id: newId != \"\" ? newId : \"/\", \n parentId: \"\"+row.parentId.replaceAll(/\\/[^\\/]+$/,\"\"),\n Size: leaves.findAll{ it.id.startsWith(newId)}.sum { it.Size}, \n name: newId.replaceAll(/.*\\//,\"\")]\n if (newRow.parentId == \"\") newRow.parentId = \"/\" \n all[newRow.id] = newRow\n }\n }\n newRows.each { row -> all[row.id] = row}\n return newRows\n}\n\naddNewParents()\naddNewParents()\naddNewParents()\naddNewParents()\n\nall[\"/\"].parentId = null\n\nrows = all.collect {k,v -> v}.findAll { it.Size > 2}.sort { it.Size}.reverse()\n\n// rows = rows.findAll { it.Size > 10}.sort { it.Size}.reverse()\n\nrowsToData(rows,null)","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3388":{"name":"LivelyGraphWalking","query":"// BEGIN DEFS\n// STRING\ntruncate = {s, length ->\n s = \"\" + s\n truncation = '...';\n return s.size() > length ? s.substring(0, length - truncation.size()) + truncation : s;\n}\nmonth2num = [Jan:\"01\", Feb:\"02\", Mar:\"03\", Apr:\"04\", May: \"05\", Jun:\"06\", Jul:\"07\", Aug: \"08\", Sep: \"09\", Oct: \"10\", Nov: \"11\", Dec: \"12\"]\ninRef = {it.getInEdges()[0]}\r\nedgeFilter = { it.name != \"owner\" && it.name != \"windowMorph\" && \n it.name != \"attributeConnections\" // Hack, to \"garbage Collect\" dangling attribute connections in analysis \n}\n\nensureOnlyOneQuery = {\n def currentQueries = g.v(4).outE('queryProgress').inV.filter{ it.query == _queryName}.collect{it}\n if (currentQueries.size() > 0) throw new Exception(\"Queries in Progress: \" + currentQueries.collect{ it.query }.join(\", \"))\n}\n\ngatherRefs = { root, type ->\r\n def all = [].asType(Set); \r\n def current = [root]\r\n while(current.size() > 0) {\r\n def node = current.pop()\r\n node.outE(type).filter(edgeFilter).inV.each { n ->\r\n if (!all.contains(n)) {\r\n all.add(n)\r\n current.push(n)\r\n }\r\n }\r\n } \r\n return all\r\n}\r; \nget = { obj, ref -> obj.outE.filter{it.name == ref}.inV.collect{it}[0]\r }\n\ngetScripts = { obj ->\n scriptsObj = get(obj,\"__serializedLivelyClosures__\")\n def scripts = []\n if (scriptsObj) {\n scriptsObj.outE().each({ scriptE ->\n def scriptV = scriptE.inV.collect{it}[0]\n if (!scriptV) return\n funcProp = get(scriptV, \"funcProperties\")\n scripts.push([ \n node: scriptV,\n id: scriptV.id,\n name:scriptE.name, \n source: scriptV.source ?: \"\",\n user: funcProp ? funcProp.user : null,\n timestamp: funcProp ? (get(funcProp, \"timestamp\") ?: [:]).string : null\n ])\n }\r)\n }\n return scripts\n};\nwalkObjectGraph = {obj, all, visit -> \n if (all.contains(obj)) return 0 // only count them once in a traversal \n if (!obj || obj.type == \"ErrorNode\") return 0 ;\n def sum = visit(obj)\n all.add(obj)\r\n obj.outE(\"reference\").filter(edgeFilter).inV.each { n ->\r\n if (!all.contains(n)) {\r\n sum += walkObjectGraph(n, all, visit)\n }\r\n }\r\n return sum\n}\ncalcPropertiesSize = { o ->\n o.getPropertyKeys().sum( { ea -> try{ ea.size() + o[ea].toString().size() + 8} catch(e) { 8 } }) // 8 approx. overhead of JSON encoding\n}\ncalcReferencesSize = { o -> o.outE(\"reference\").sum( { ea -> (ea.name ?: \"\").size() + 16}) ?: 0}\ncalcPropertiesAndReferencesSize = {o -> calcPropertiesSize(o) + calcReferencesSize(o)}\n\ncalcObjectSize = { node -> walkObjectGraph(node, [].asType(Set), calcPropertiesAndReferencesSize)}\ncountSubobjects = { node -> walkObjectGraph(node, [].asType(Set), {o -> 1})}\n\ncountErrorNodes = { node -> walkObjectGraph(node, [].asType(Set), {o -> o.type == \"ErrorNode\" ? 1 : 0})}\n\n\n\nwalkObjectGraphExcluded = {obj, all, excluded, visit -> \n if (excluded[obj.id]) return 0\n if (all.contains(obj)) return 0 // only count them once in a traversal \n if (!obj || obj.type == \"ErrorNode\") return 0 ;\n def sum = visit(obj)\n all.add(obj)\r\n obj.outE(\"reference\").filter(edgeFilter).inV.each { n ->\r\n if (!all.contains(n)) {\r\n sum += walkObjectGraphExcluded(n, all, excluded, visit)\n }\r\n }\r\n return sum\n}\ncalcObjectSizeExcluded = { node, set, excluded -> walkObjectGraphExcluded(node, set, excluded, calcPropertiesAndReferencesSize)}\ncountSubobjectsExcluded = { node, set, excluded -> walkObjectGraphExcluded(node, set, excluded, {o -> 1})}\n\n\ngetTextStrings = { v ->\r\n v.outE(\"reference\").filter {\r\n it.name == 'textChunks'\r\n }.inV.out.collect { it.storedString}\r.findAll{it}\n}\r\ngetAllTextStrings= { node -> \n def strings = []\n walkObjectGraph(node, [].asType(Set), { ea -> \n def l = getTextStrings(ea)\n if (l) strings.addAll(l)\n return 0})\n strings\n}\n\ncalcTextSizeFull = { node -> getAllTextStrings(node).sum({ it.size()})}\n\ngetDerivationIds = { v ->\r\n def dobj = get(v,\"derivationIds\")\n if (!dobj) return []\n def keys = []\n dobj.getPropertyKeys().each({ try {keys.push(new Integer(it)) } catch(e) {} })\n return keys.sort().collect({ dobj[it.toString()]})\n}\r\ntableSum = { d, column -> d.inject(0){s,e -> s + e[column]} }\r\n\nfindWorldsWithURLWithMaxRev = { root, urls, onlyLatest, maxRev ->\n def w = [:]\n w.maxRev = [:]\n w.countRev = [:]\n w.worlds = []; \r\n g.v(root).outE(\"LivelyObject\").inV.fill(w.worlds)\r\n w.worlds.each { \n def r = inRef(it)\n if (r.rev.toInteger() > maxRev) return; // ignore \n w.maxRev[r.url] = Math.max(w.maxRev[r.url] ?: 0, r.rev.toInteger() )\n w.countRev[r.url] = (w.countRev[r.url] ?: 0) + 1\n }\n // show only the last revivsion\n if (onlyLatest)\n w.worlds = w.worlds.findAll {def r = inRef(it) ;w.maxRev[r.url] == r.rev.toInteger() }\n // Filter more\n w.worlds = w.worlds.findAll { world -> urls.any { url -> inRef(world).url =~ url}} \n return w\n}\n\n\nfindWorldsWithURL = { root, urls ->\n return findWorldsWithURLAll(root, urls, true)\n}\n\nfindRootObject = { o ->\n def rootObj = o.inE(\"rootObject\").outV.collect{it}[0]\n if (rootObj) return rootObj\n def back = o.inE(\"reference\").outV.collect{it}[0]\n if (!back) return null\n return findRootObject(back)\n}\n\nfindUrlAndRev = { o ->\n def rootObj = findRootObject(o)\n def r = rootObj.inE.collect{it}[0]\n if (r) return r\n}\n\nparseColumns = {s ->\n def tableColumns = [:] \n s.split(\", \").each { tableColumns[it] = true}\n return tableColumns\n}\n\ngetAllSubmorphs = { rootObj ->\n // \n def subnodes = gatherRefs(m , \"reference\")\r\n subnodes\r.each{ ea ->\r\n def parent = get(ea, \"owner\")\n if (parent) submorphs.add(ea)\n }; \n return submorphs + [rootObj]\n}\n\npartToRow = { m, columns ->\n def row = [:]\n if (columns.id) row.id = m.id\n if (columns.name) row.name = m.name\n if (columns.className) row.className = m.__LivelyClassName__\n if (columns.sourceModule) row.sourceModule = m.__SourceModuleName__\n\n if (columns.path || columns.rev) {\n def rootObj = findRootObject(m)\n def urlAndRev = findUrlAndRev(m) ?: \"\" \n def path = urlAndRev.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n if (columns.path) row.path = path\n if (columns.rev) row.rev = urlAndRev.rev ? urlAndRev.rev.toInteger() : 0 \n }\n if (columns.owner) row.owner = m.outE.filter{it.name == \"owner\"}.inV.id.collect{it}[0]\n \n if (columns.Size) row.Size = calcObjectSize(m)\n if (columns.Objects) row.Objects = countSubobjects(m) \n\n\n if (columns.rootId) row.rootId = findRootObject(m).id\n\n if (columns.partName || columns.partsSpaceName) {\n def partsBinMetaInfo = get(m, \"partsBinMetaInfo\")\n if (columns.partName) row.partName= partsBinMetaInfo.partName\n if (columns.partsSpaceName) row.partsSpaceName= partsBinMetaInfo.partsSpaceName\n changesObj = get(partsBinMetaInfo, \"changes\")\n if (columns.Changes) {\n row.Changes = changesObj ? changesObj.outE.inV.collect({it}).size() : 0\n }\n\n }\n if (columns.derivationId) row.derivationId= m._id\n if (columns.DerivationIds) row.DerivationIds = getDerivationIds(m).size()\n\n if (columns.Submorphs ) {\n def subnodes = gatherRefs(m , \"reference\")\r\n def submorphs = []\n def errorNodesCount = 0\n subnodes\r.each{ ea ->\r\n def parent = get(ea, \"owner\")\n if (ea.type == \"ErrorNode\") {\n errorNodesCount++\n }\n if (parent) submorphs.add(ea)\n }; \n def morphs = submorphs + [rootObj]\n \n if (columns.ErrorNodes) row.ErrorNodes = errorNodesCount\n if (columns.Submorphs) row.Submorphs = submorphs.size()\n\n def scripts = (submorphs.sum({getScripts(it)}) ?: [])\n if (columns.Scripts) row.Scripts = scripts.size()\n if (columns.ScriptsSize) row.ScriptsSize = scripts.sum({(it.source ?: \"\").size()}) ?: 0\n\n def textmorphs = morphs.findAll {\r it.__LivelyClassName__ == 'lively.morphic.Text'\r }\r\n def textStrings = textmorphs.inject([]){ s, ea -> s + getTextStrings(ea)}\r\n if (columns.TextMorphs) row.TextMorphs = textmorphs.size()\n if (columns.TextSize) row.TextSize = textStrings.inject(0){s, ea -> s + (ea ?: \"\").size()}\r\n }\n // row.DerivationIdSum = morphs.sum({getDerivationIds(it).sum({it.size()}) ?: 0}) ?: 0\n // row.PartsBinMetaInfoSum = morphs.sum({calcObjectSize(get(it, \"partsBinMetaInfo\")) }) ?: 0\n // row.MetaInfoOverhead = Math.round((row.DerivationIdSum + row.PartsBinMetaInfoSum) / row.Size * 100)\n // row.DerivationIdSumRelative = Math.round((row.DerivationIdSum) / row.Size * 100)\n // row.PartsBinMetaInfoSumRelative = Math.round((row.PartsBinMetaInfoSum) / row.Size * 100)\n // \n // def authors = scripts.countBy{it.user ?: \"undefined\"}\n // row.ScriptAuthorsCount = authors.size()\n // row.ScriptAuthors = authors.toString()\n // \n // def timestamps = scripts.countBy{(it.timestamp ?: \"undefined\").replaceAll(/.*(\\w\\w\\w) (\\d\\d) (\\d\\d\\d\\d).*/, \n // { m -> m[3]+'-'+month2num[m[1]]})}\n // row.ScriptTimestampsCount = timestamps.size()\n // row.ScriptTimestamps = timestamps.toString() \n\n if (columns.WindowTitle) {\n def titleBar = get(m, \"titleBar\")\n def label = titleBar ? get(titleBar, \"label\") : null;\n row.WindowTitle = label ? getTextStrings(label).join(\"\") : \"\"\n }\n\n return row\n}\n\n\n\nsearchInIndex = {idx, search ->\n def result = [].asType(Set)\n search.each{ orEa ->\n def andSet\n orEa.each{ k,v ->\n def next = idx.get(k, v).collect{it}\n if (!andSet) andSet = next\n andSet.retainAll(next)\n }\n result.addAll(andSet)\n }\n result.collect{it}\n}\n\nfilterRows = {rows, filter ->\n def filterFunc = Eval.me(\"{ it ->\"+filter +\"}\")\n if (filter) {\n try {\n rows = rows.findAll(filterFunc)\n } catch(e) {\n throw new Exception(\"Could not Filter with \" + filter + \":\" + e) \n }\n }\n rows\n}\n\n\ndef rowsToData = { rows, totals -> \n if (rows.size() == 0) return [colums: [\"Result\"], data: [[\"nothing\"]]]\n try { columns = columns } catch(e) {columns = [:]}\n rows[0].each{k,v -> columns[k] = true } \n def tableColumns = columns.collect{k,v->k}\n def data = rows.collect({row -> tableColumns.collect({k -> row[k]}) })\n if (totals)\n \r\r data.add([ \"TOTAL\", null, null, null] + (totals.collect({tableSum(data, it)})))\r\n return [columns: tableColumns, data: data]\r\n}\n\n\n// g.createManualIndex('LivelyCache', Vertex.class)\ngetAllSubmorphs = { rootObj ->\n def cache = g.idx('LivelyCache').get(\"AllSubmorphs\", rootObj.id).collect{it}\n if (cache.size() > 0) return cache\n def subnodes = gatherRefs(rootObj , \"reference\")\r\n def submorphs = []\n def errorNodesCount = 0;\n subnodes\r.each{ ea ->\r\n def parent = get(ea, \"owner\")\n if (ea.type == \"ErrorNode\") {\n errorNodesCount++\n }\n if (parent) submorphs.add(ea)\n }; \n def result = submorphs + [rootObj]\n result.each {g.idx('LivelyCache').put(\"AllSubmorphs\", rootObj.id, it)}\n return result \n}\n\ndef queryFindObjects = {\n try { limit = limit } catch(e) {limit = null}\n try { filter = filter } catch(e) {filter = null}\n\n columns = parseColumns(properties) \n parts = searchInIndex(g.idx(index), search)\n\n rows = []\n parts.each { part ->\n if (!limit || limit > rows.size()) {\n rows.addAll(filterRows([partToRow(part, columns)], filter))\n }\n }\n rowsToData(rows, null)\n}\n// END DEFS","parameters":"{\n \n} ","categories":["Library","Analysis","Index"],"language":"Gremlin"},"3389":{"name":"CountWorldsErrors","query":"rows = []\n\nworlds = g.idx(\"LivelyWorlds\")[[world: 'all']]\n\n\n// g.idx(\"LivelyWorlds\")[[world: 'all']].findAll{(it.FullSize != null) && (it.FullSize < 0)}\n\n// worlds.findAll({it.Path =~ \"users\"}).sum{Math.max((it.FullSize ?: 0),0)}\n\ntry { filter = filter } catch(e) {filter = null}\ntry { meanProperties = meanProperties } catch(e) {meanProperties = []}\ntry { maxProperties = maxProperties } catch(e) {maxProperties = []}\n\n\nworlds = filterRows(worlds, filter)\n\n\nall = [:]\nleaves = []\nworlds.each { world -> \n row = [ id: \"/\"+world.Path + world.name, parentId: \"/\"+world.Path, name: world.name, children: 0 ]\n countProperties.each{ k -> row[k] = world[k] ?: 0} // only non negative supported... TODO find the source of the negative values\n meanProperties.each{ k -> row[\"Mean\"+k] = row[k]}\n maxProperties.each{ k -> row[\"Max\"+k] = row[k]}\n all[row.id] = row\n leaves.add(row)\n}\n\ndef addNewParents = {\n def newRows = []\n newRows = all.collect{k,v -> v}.clone().each { row -> \n if (!all[row.parentId]) {\n def newId = row.parentId\n newRow =[\n id: newId != \"\" ? newId : \"/\", \n parentId: \"\"+row.parentId.replaceAll(/\\/[^\\/]+$/,\"\"), \n name: newId.replaceAll(/.*\\//,\"\")]\n def children = leaves.findAll{ it.id.startsWith(newId)}\n newRow.children = children.size()\n countProperties.each{ k -> newRow[k] = children.sum { it[k]}}\n meanProperties.each{ k -> newRow[\"Mean\"+k] = Math.round(newRow[k] / children.size())}\n maxProperties.each{ k -> newRow[\"Max\"+k] = children.collect{ it[k]}.max() }\n if (newRow.parentId == \"\") newRow.parentId = \"/\" \n all[newRow.id] = newRow\n }\n }\n \n newRows.each { row -> all[row.id] = row}\n return newRows\n}\n\naddNewParents()\naddNewParents()\naddNewParents()\naddNewParents()\n\nall[\"/\"].parentId = null\n\nrows = all.collect {k,v -> v}.findAll { row ->\n def r = true \n min.each{ k,v -> r = r && row[k] > v }\n r\n}\n\nrowsToData(rows,null)","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n min: {},\n filter: \"(it.FullSize != null) && (it.FullSize < 0)\",\n countProperties: [\"FullSize\", \"SubObjects\", \"TextSize\"],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3390":{"name":"CountWorldsSize","query":"rows = []\n\nworlds = g.idx(\"LivelyWorlds\")[[world: 'all']]\n\n// worlds.findAll({it.Path =~ \"users\"}).sum{Math.max((it.FullSize ?: 0),0)}\n\ntry { filter = filter } catch(e) {filter = null}\nworlds = filterRows(worlds, filter)\n\nall = [:]\nleaves = []\nworlds.each { world -> \n row = [ id: \"/\"+world.Path + world.name, parentId: \"/\"+world.Path, name: world.name, children: 0 ]\n countProperties.each{ k -> row[k] = world[k] ?: 0}\n meanProperties.each{ k -> row[\"Mean\"+k] = row[k]}\n maxProperties.each{ k -> row[\"Max\"+k] = row[k]}\n all[row.id] = row\n leaves.add(row)\n}\n\n\ndef addNewParents = {\n def newRows = []\n newRows = all.collect{k,v -> v}.clone().each { row -> \n if (!all[row.parentId]) {\n def newId = row.parentId\n newRow =[\n id: newId != \"\" ? newId : \"/\", \n parentId: \"\"+row.parentId.replaceAll(/\\/[^\\/]+$/,\"\"), \n name: newId.replaceAll(/.*\\//,\"\")]\n def children = leaves.findAll{ it.id.startsWith(newId)}\n newRow.children = children.size()\n countProperties.each{ k -> newRow[k] = children.sum { it[k]}}\n meanProperties.each{ k -> newRow[\"Mean\"+k] = Math.round(newRow[k] / children.size())}\n maxProperties.each{ k -> newRow[\"Max\"+k] = children.collect{ it[k]}.max() }\n if (newRow.parentId == \"\") newRow.parentId = \"/\" \n all[newRow.id] = newRow\n }\n }\n \n newRows.each { row -> all[row.id] = row}\n return newRows\n}\n\naddNewParents()\naddNewParents()\naddNewParents()\naddNewParents()\n\nall[\"/\"].parentId = null\n\nrows = all.collect {k,v -> v}.findAll { row ->\n def r = true \n min.each{ k,v -> r = r && row[k] > v }\n r\n}\n\nrowsToData(rows,null)","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n min: {FullSize: 100000},\n filter: \"!(it.Path.startsWith('users/erp')) && it.FullSize > 0\",\n countProperties: [\"FullSize\", \"SubObjects\", \"TextSize\"],\n meanProperties: [\"FullSize\", \"SubObjects\", \"TextSize\"],\n maxProperties: [\"FullSize\", \"SubObjects\", \"TextSize\"],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3391":{"name":"ShowWorld","query":"\n\ng.idx('LivelyWorlds').get('name', 'blank.xhtml')[0]","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n min: {FullSize: 100000},\n filter: \"!(it.Path.startsWith('users/erp')) && it.FullSize > 0\",\n countProperties: [\"FullSize\", \"SubObjects\", \"TextSize\"],\n meanProperties: [\"FullSize\", \"SubObjects\", \"TextSize\"],\n maxProperties: [\"FullSize\", \"SubObjects\", \"TextSize\"],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3392":{"name":"CountScripts","query":"rows = []\n\ng.idx(\"LivelyScripts\")[[script: 'all']].countBy{it.source}.each{ k, v -> \n rows.push([ name: g.idx(\"LivelyScripts\").get(\"source\", k)[0].name, count: v]) \n}\n\nrowsToData(rows,null)\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3393":{"name":"PrintObjectsDetails2","query":"\r\ndef inRef = {it.getInEdges()[0]}\r\n\r\nshowProgress(0,1)\r\n\n// follow named references\nget = { obj, ref -> obj.outE.filter{it.name == ref}.inV.collect{it}[0]\r }\ndef getScripts = { v ->\r\n def obj = get(v,\"__serializedLivelyClosures__\")\n if (!obj) return []\n return obj.outE().collect({it.name})\n}\r\n\ndef gatherRefs = { root, type ->\r\n def all = [].asType(Set); \r\n def current = [root]\r\n while(current.size() > 0) {\r\n def node = current.pop()\r\n node.outE(type).inV.each { n ->\r\n if (!all.contains(n)) {\r\n all.add(n)\r\n current.push(n)\r\n }\r\n }\r\n } \r\n return all\r\n}\r\nwalkObjectGraph = {obj, all, visit, cache -> \n if (cache[obj.id]) return cache[obj.id]\n def sum = visit(obj)\n all.add(obj)\r\n obj.outE(\"reference\").filter({ it.name != \"owner\" && it.name != \"windowMorph\"}).inV.each { n ->\r\n if (!all.contains(n)) {\r\n sum += walkObjectGraph(n, all, visit, cache)\n }\r\n }\r\n cache[obj.id] = sum\n return sum\n}\nobjectSizeCache = [:]\ncountObjectSize = { node -> \n walkObjectGraph(node, [].asType(Set), \n {o -> o.getPropertyKeys().collect( { ea -> ea + \": \" + o[ea]}).toString().size()}, \n objectSizeCache)\n}\nsubobjectNumberCache = [:]\ncountSubobjects = { node -> \n walkObjectGraph(node, [].asType(Set), {o -> 1}, subobjectNumberCache)\n}\n\n\r\ndef tableSum = { data, column -> data.inject(0){s,e -> s + e[column]} }\r\n\r\ndef getTextStrings = { v ->\r\n v.outE(\"reference\").filter {\r\n it.name == 'textChunks'\r\n }.inV.out.collect { it.storedString}\r\n}\r\ndef getDerivationIds = { v ->\r\n def dobj = get(v,\"derivationIds\")\n if (!dobj) return []\n def keys = []\n dobj.getPropertyKeys().each({ try {keys.push(new Integer(it)) } catch(e) {} })\n return keys.sort().collect({ dobj[it.toString()]})\n}\r\n\n\nworlds =[]; \r\ng.v(root).outE(\"LivelyObject\").inV.fill(worlds)\r\n\nmaxRev = [:]\nworlds.each { \n def r = inRef(it)\n maxRev[r.url] = Math.max(maxRev[r.url] ?: 0, r.rev.toInteger() )\n}\n// show only the last revivsion\nworlds = worlds.findAll {def r = inRef(it) ; maxRev[r.url] == r.rev.toInteger() }\nworlds = worlds.findAll { inRef(it).url =~ url}\n\n\ndata = []\r\nworlds.each{ \r\n def r = inRef(it)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def rev = r.rev\r\n def rootId = it.id\n it.outE(\"rootObject\").inV.each { rootObj ->\r\n def objs = gatherRefs(rootObj , \"reference\")\n // objs.add(rootObj)\n objs.each{ m ->\r\n def parent = get(m, \"owner\")\n if (!parent) return; \n data.push([\r\n rootId,\r\n path, \r\n m.id,\r\n parent ? parent.id : \"null\",\n m.name ?: m.__LivelyClassName__.replace(\"lively.\",\"\").replace(\"morphic.\",\"\"),\r\n m._id,\r\n m.__LivelyClassName__,\r\n countSubobjects(m),\n countObjectSize(m),\n getScripts(m).size(),\n getScripts(m),\n m.outE('reference').collect{ it.name},\r\n m.getPropertyKeys(),\r\n m.__ignoredValues__\r\n ]\r)\n \n def scriptsObj = get(m,\"__serializedLivelyClosures__\")\n if (scriptsObj) {\n scriptsObj.outE().each({ scriptE ->\n data.push([\r\n rootId,\r\n path, \r\n scriptE.inV.id,\r\n m.id,\n scriptE.name,\r\n \"Script\",\n 0,\n 123\n ])\n })\n }\n }\r\n\r\n }\r\n}\r\n \r\ndata.sort{ea -> ea[1]}\r\n\r\n// data.reverse(true)\r\r\r\n// data = data[0..20]\r\n\r// a = [2,1,4,5,3].sort{ea -> ea}; a.reverse(true); a\r\n\r\n// data.add([root, \"TOTAL\", null, tableSum(data, 3), tableSum(data, 4), tableSum(data, 5), tableSum(data, 6)])\r\n\r\n[columns: [\"root\", \"Path\", \"id\", \"parentId\", \"name\", \"DerivationId\",\"Class\", \"Subobjects\", \"Size\", \"Scripts\", \"ScriptNames\", \"References\", \"Properties\", \"IgnoredValues\"], data: data]\r\n\r\n","parameters":"{\n root: this.objectRootNodeID,\n url: 'webwerkstatt/PartsBin/Tools/ObjectEditor'\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3394":{"name":"PrintObjectsDetails","query":"\r\ndef inRef = {it.getInEdges()[0]}\r\n\r\nshowProgress(0,1)\r\n\n// follow named references\nget = { obj, ref -> obj.outE.filter{it.name == ref}.inV.collect{it}[0]\r }\n\r\ndef gatherRefs = { root, type ->\r\n def all = [].asType(Set); \r\n def current = [root]\r\n while(current.size() > 0) {\r\n def node = current.pop()\r\n node.outE(type).inV.each { n ->\r\n if (!all.contains(n)) {\r\n all.add(n)\r\n current.push(n)\r\n }\r\n }\r\n } \r\n return all\r\n}\r\n\n\n\r\ndef tableSum = { data, column -> data.inject(0){s,e -> s + e[column]} }\r\n\r\ndef getTextStrings = { v ->\r\n v.outE(\"reference\").filter {\r\n it.name == 'textChunks'\r\n }.inV.out.collect { it.storedString}\r\n}\r\n\r\n\nworlds =[]; \r\ng.v(root).outE(\"LivelyObject\").inV.fill(worlds)\r\n\nmaxRev = [:]\nworlds.each { \n def r = inRef(it)\n maxRev[r.url] = Math.max(maxRev[r.url] ?: 0, r.rev.toInteger() )\n}\n// show only the last revivsion\nworlds = worlds.findAll {def r = inRef(it) ; maxRev[r.url] == r.rev.toInteger() }\nworlds = worlds.findAll { inRef(it).url =~ \"webwerkstatt/PartsBin/Basic/\"}\n\n\ndata = []\r\nworlds.each{ \r\n def r = inRef(it)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def rev = r.rev\r\n def rootId = it.id\r\n it.outE(\"rootObject\").inV.each { rootObj ->\r\n gatherRefs(rootObj , \"submorph\")\r.each{ m ->\r\n def parent = get(m, \"owner\")\n data.push([\r\n rootId,\r\n path, \r\n m.id,\r\n parent ? parent.id : \"null\",\n m.name,\r\n m._id,\r\n m.__LivelyClassName__,\n m[\"__serializedLivelyClosures__\"]\r,\n m.outE('reference').collect{ it.name},\r\n m.getPropertyKeys(),\r\n m.__ignoredValues__\r\n ]\r) \r\n }\r\n\r\n }\r\n}\r\n \r\ndata.sort{ea -> ea[1]}\r\n\r\n// data.reverse(true)\r\r\r\n// data = data[0..20]\r\n\r// a = [2,1,4,5,3].sort{ea -> ea}; a.reverse(true); a\r\n\r\n// data.add([root, \"TOTAL\", null, tableSum(data, 3), tableSum(data, 4), tableSum(data, 5), tableSum(data, 6)])\r\n\r\n[columns: [\"root\", \"Path\", \"id\", \"parentId\", \"name\", \"DerivationId\",\"Class\", \"Scripts\", \"References\", \"Properties\", \"IgnoredValues\"], data: data]\r\n\r\n","parameters":"{\n root: this.objectRootNodeID\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3395":{"name":"FindObjects","query":"queryFindObjects()\n\n// g.createManualIndex('LivelyCache', Vertex.class)\n// g.idx('LivelyCache').get(\"AllSubmorphs\", \"1020114\")\n\n// getAllSubmorphs(g.v(1020114)).size()\n// gatherRefs(g.v(1020114), \"reference\").size()\n\n\n// get(g.v(1020114), \"owner\")","parameters":"{\n index: 'LivelyObjects',\n // part, partName, partSpace:\n search: [{className: 'lively.morphic.Window'}],\n // filter: \"!(it.path =~ /PartsBin/)\",\n // filter: \"it.WindowTitle == 'ObjectEditor'\",\n limit: 10,\n // limit: 1000,\n properties: \"id, path, name, WindowTitle\",\n require: ['LivelyGraphWalking'],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3396":{"name":"PrintObjectsDetailsWithScripts","query":"showProgress(0,1)\r\ndef w = findWorldsWithURL(root, urls)\n\nrows = []\r\nw.worlds.each{ \r\n def r = inRef(it)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def rev = r.rev\r\n def rootId = it.id\n it.outE(\"rootObject\").inV.each { rootObj ->\r\n def objs = gatherRefs(rootObj , \"reference\")\n // objs.add(rootObj)\n objs.each{ m ->\r\n def parent = get(m, \"owner\")\n if (!parent) return; \n def scriptsObj = get(m,\"__serializedLivelyClosures__\")\n def scriptSizeSum = 0\n if (scriptsObj) {\n scriptsObj.outE().each({ scriptE ->\n def scriptV = scriptE.inV.collect{it}[0]\n def sourceSize = scriptV.source.size()\n scriptSizeSum += sourceSize\n rows.push([\r\n root: rootId,\r\n Path: path, \r\n //printName: scriptE.name,\r\n id: scriptV.id,\r\n parentId: m.id,\n name: scriptE.name,\r\n Class: \"Script\",\n Subobjects: 1,\n Size: sourceSize,\n ScriptSize: sourceSize\n ])\n })\n }\n def derivationIds = getDerivationIds(m)\n def name = m.name ?: m.__LivelyClassName__.replace(\"lively.\",\"\").replace(\"morphic.\",\"\")\n rows.push([\r\n root: rootId,\r\n Path: path, \r\n // printName: (\" \" * depth) + name\n id: m.id,\r\n parentId: parent ? parent.id : \"null\",\n name: name,\r\r\n Class: m.__LivelyClassName__,\r\n Subobjects: countSubobjects(m),\n Size: calcObjectSize(m),\n ScriptSize: scriptSizeSum,\n Scripts: getScripts(m).size(),\n ClouseSize: calcObjectSize(get(m,\"__serializedLivelyClosures__\")),\n DerivationIds: derivationIds.size(),\n DerivationIdsSize: derivationIds.sum({ it.size()}),\n PartsBinMetaInfo: calcObjectSize(get(m, \"partsBinMetaInfo\")),\n DerivationId: m._id,\n ScriptNames: getScripts(m).collect({it.name}),\n References: m.outE('reference').collect{ it.name},\r\n Properties: m.getPropertyKeys(),\r\n IgnoredValues: m.__ignoredValues__\r\n ]\r)\n }\r\n\r\n }\r\n}\r\n\nrowsToData(rows, null)\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: ['webwerkstatt/PartsBin/Tools/Object']\n}","categories":["Gremlin","Groovy","Analysis"],"language":"Gremlin"},"3397":{"name":"ListParts","query":"showProgress(0,1)\r\r\ndef w = findWorldsWithURLWithMaxRev(root, urls, true, maxRev)\n\r\ndef progressCount = 0\ndef progressMax = w.worlds.size() \nrows = w.worlds.collect{ \r\n showProgress(progressCount++,progressMax)\r \n def r = inRef(it)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def name = path.replaceFirst(\".*/\",\"\")\r\n ensureProgressNode().query = \"world: \" + name\n log(\"name: \" + name)\n path = path.replaceFirst(\"/[^/]*\\$\",\"\")\r \n def row = [\n id: it.id, \n path: path, \n name: name, \n rev: r.rev, \n Objects: 0, \n Size: 1, \n Submorphs: 0, \n TextMorphs: 0, \n TextSize: 0, \n DerivationIds: 0, \n Revisions: w.countRev[r.url].toInteger(), \n Changes: 0, \n Scripts: 0, \n ScriptsSize: 0,\n DerivationIdSum: 0,\n DerivationIdSumRelative: 0,\n PartsBinMetaInfoSum: 0,\n PartsBinMetaInfoSumRelative: 0, \n MetaInfoOverhead: 0, \n ErrorNodes: 0,\n ScriptAuthorsCount: 0,\n ScriptTimestampsCount: 0, \n ScriptAuthors: \"\",\n ScriptTimestamps: \"\", \n ]\n it.outE(\"rootObject\").inV.each { rootObj ->\r\n def subnodes = gatherRefs(rootObj , \"reference\")\r\n def submorphs = []\n def errorNodesCount = 0\n subnodes\r.each{ m ->\r\n def parent = get(m, \"owner\")\n if (m.type == \"ErrorNode\") {\n errorNodesCount++\n }\n if (parent) submorphs.add(m)\n }; \n def morphs = submorphs + [rootObj]\n row.Objects = countSubobjects(rootObj)\n row.Size = calcObjectSize(rootObj)\n row.DerivationIds = getDerivationIds(rootObj).size()\n def partsBinMetaInfo = get(rootObj, \"partsBinMetaInfo\")\n if (partsBinMetaInfo) {\n changesObj = get(partsBinMetaInfo, \"changes\")\n if (changesObj) {\n changes = changesObj.outE.inV.collect({it})\n row.Changes = changes.size()\n }\n }\n row.ErrorNodes = errorNodesCount\n row.Submorphs = submorphs.size()\n \n def scripts = (submorphs.sum({getScripts(it)}) ?: [])\n row.Scripts = scripts.size()\n row.ScriptsSize = scripts.sum({(it.source ?: \"\").size()}) ?: 0\n \n def textmorphs = morphs.findAll {\r it.__LivelyClassName__ == 'lively.morphic.Text'\r }\r\n def textStrings = textmorphs.inject([]){ s, ea -> s + getTextStrings(ea)}\r\n row.TextMorphs = textmorphs.size()\n row.TextSize = textStrings.inject(0){s, ea -> s + (ea ?: \"\").size()}\r\n row.DerivationIdSum = morphs.sum({getDerivationIds(it).sum({it.size()}) ?: 0}) ?: 0\n row.PartsBinMetaInfoSum = morphs.sum({calcObjectSize(get(it, \"partsBinMetaInfo\")) }) ?: 0\n row.MetaInfoOverhead = Math.round((row.DerivationIdSum + row.PartsBinMetaInfoSum) / row.Size * 100)\n row.DerivationIdSumRelative = Math.round((row.DerivationIdSum) / row.Size * 100)\n row.PartsBinMetaInfoSumRelative = Math.round((row.PartsBinMetaInfoSum) / row.Size * 100)\n \n def authors = scripts.countBy{it.user ?: \"undefined\"}\n row.ScriptAuthorsCount = authors.size()\n row.ScriptAuthors = authors.toString()\n \n def timestamps = scripts.countBy{(it.timestamp ?: \"undefined\").replaceAll(/.*(\\w\\w\\w) (\\d\\d) (\\d\\d\\d\\d).*/, \n { m -> m[3]+'-'+month2num[m[1]]})}\n row.ScriptTimestampsCount = timestamps.size()\n row.ScriptTimestamps = timestamps.toString() \n }\r\n return row\n}\r\n\nrowsToData(rows,(4..14))\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n maxRev: 200500, // then format changed...\n urls: [\n \"webwerkstatt/PartsBin/Basic/\", \n // \"webwerkstatt/PartsBin/Widgets/\", \n // \"webwerkstatt/PartsBin/Tools/\", \n // \"webwerkstatt/PartsBin/Wiki/\",\n // \"webwerkstatt/PartsBin/Visualization/\"\n ] \n}","categories":["Gremlin","Groovy","Analysis"],"language":"Gremlin"},"3398":{"name":"ShowObject","query":"\r\ndef inRef = {it.getInEdges()[0]}\r\nshowProgress(0,1)\r\n\n// follow named references\nget = { obj, ref -> obj.outE.filter{it.name == ref}.inV.collect{it}[0]\r }\ndef gatherRefs = { root, type ->\r\n def all = [].asType(Set); \r\n def current = [root]\r\n while(current.size() > 0) {\r\n def node = current.pop()\r\n node.outE(type).inV.each { n ->\r\n if (!all.contains(n)) {\r\n all.add(n)\r\n current.push(n)\r\n }\r\n }\r\n } \r\n return all\r\n}\r\nwalkObjectGraph = {obj, all, visit, cache -> \n if (all.contains(obj)) return 0 // only count them once in a traversal \n if (cache[obj.id]) return cache[obj.id]\n if (obj.type == \"ErrorNode\") return 0\n def sum = visit(obj)\n all.add(obj)\r\n obj.outE(\"reference\").filter({ it.name != \"owner\" && it.name != \"windowMorph\"}).inV.each { n ->\r\n if (!all.contains(n)) {\r\n sum += walkObjectGraph(n, all, visit, cache)\n }\r\n }\r\n cache[obj.id] = sum\n return sum\n}\ncalcSize = {o -> o.getPropertyKeys().collect( { ea -> ea + \": \" + o[ea]}).toString().size()}\n\ng.v(2282589)\n\nobjectSizeCache = [:]\ncountObjectSize = { node -> walkObjectGraph(node, [].asType(Set), calcSize, objectSizeCache)}\nsubobjectNumberCache = [:]\ncountSubobjects = { node -> walkObjectGraph(node, [].asType(Set), {o -> 1}, subobjectNumberCache)}\n\ndata = []\r\nvisitObj = {m, parent, refName, depth, all ->\n if (depth == 0 ) return 0\n if (all[m.id]) return 0\n if (m.type == \"ErrorNode\") return 0\n all[m.id] = true\n def sum = calcSize(m)\n m.outE.filter({ it.name != \"owner\" && it.name != \"attributeConnections\" }).each{ ea -> \n sum += visitObj(ea.inV.collect({it})[0], m, ea.name, depth - 1, all)}\n data.push([\r\n m.id,\r\n parent ? parent.id : \"null\",\n m.name ?: (m.__LivelyClassName__ ?: \"\").replace(\"lively.\",\"\").replace(\"morphic.\",\"\") ?: \"->\" + refName,\n refName,\n sum,\n countObjectSize(m),\n m.getPropertyKeys()\n ]\r)\n return sum\n}\n\nvisitObj(g.v(root), null, null, depth, [:])\n\r\r\n\r\r\n[columns: [ \"id\", \"parentId\", \"name\", \"RefName\", \"Size\", \"AltSize\", \"Properties\"], data: data]\r\n\r\n","parameters":"{\n root: 2201359,\n depth: 3\n}","categories":["Gremlin","Groovy","Analysis"],"language":"Gremlin"},"3399":{"name":"AllScriptsThatWithLayers","query":"rows = []\n\ng.idx(\"LivelyScripts\")[[script: 'all']].findAll({ it.source =~ /cop.with(out)?Layers?/ }).countBy{it.source}.each{ k, v -> \n def script = g.idx(\"LivelyScripts\").get(\"source\", k)[0]\n def m = script.source =~ /(?:cop\\.with(?:out)?Layers\\(((?:\\[.*?\\])|(?:.*?\\))))/\n def objectName = script.inE.outV.inE.outV.name\n rows.push([id: script.id, objectName: objectName, \n name: script.name, count: v, layers: (m ? m[0][1] : \"\"), source: script.source.replace(\"\\n\",'\\\\n') ]) \n}\nrows = rows.sort{ - it.count}\n// rows.reverseO\nrowsToData(rows,null)\n\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n}","categories":["Analysis","Gremlin","ContextJS"],"language":"Gremlin"},"3400":{"name":"AllScriptsThatStructuralLayers","query":"rows = []\n\ng.idx(\"LivelyScripts\")[[script: 'all']].findAll({ it.source =~ /(setWithLayers)/ }).countBy{it.source}.each{ k, v -> \n def script = g.idx(\"LivelyScripts\").get(\"source\", k)[0]\n def m = script.source =~ /(?:setWithLayers\\((.*?)\\))|(?:withLayers *= *\\[(.*?)\\])/\n def isGlobal = script.source =~ /(beGlobal)|(enableLayer)/\n def objectName = script.inE.outV.inE.outV.name\n rows.push([id: script.id, objectName: objectName, \n name: script.name, count: v, layers: (m ? m[0][1] : \"\"), isGlobal: isGlobal ? \"true\" : \"false\", source: script.source.replace(\"\\n\",'\\\\n') ]) \n}\nrows = rows.sort{ - it.count}\n// rows.reverseO\nrowsToData(rows,null)\n\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n}","categories":["Analysis","Gremlin","ContextJS"],"language":"Gremlin"},"3401":{"name":"FindObjectsTextMorphs","query":" try { limit = limit } catch(e) {limit = null}\ntry { filter = filter } catch(e) {filter = null}\n\n columns = parseColumns(properties) \n parts = searchInIndex(g.idx('LivelyObjects'), search)\n\n rows = []\n parts.each { part ->\n if (!limit || limit > rows.size()) {\n def row = partToRow(part, columns)\n row.textStrings = getTextStrings(part)\n if (row.textStrings.join(\"\") =~ /createLayer/) {\n rows.addAll(filterRows([row], filter))\n }\n }\n }\n rowsToData(rows, null)\n\n\n// g.createManualIndex('LivelyCache', Vertex.class)\n// g.idx('LivelyCache').get(\"AllSubmorphs\", \"1020114\")\n\n// getAllSubmorphs(g.v(1020114)).size()\n// gatherRefs(g.v(1020114), \"reference\").size()\n\n\n// get(g.v(1020114), \"owner\")\n\n\n","parameters":"{\n index: 'LivelyObjects',\n // part, partName, partSpace:\n search: [{className: 'lively.morphic.Text'}],\n // filter: \"!(it.path =~ /PartsBin/)\",\n // filter: \"it.WindowTitle == 'ObjectEditor'\",\n limit: 100,\n // limit: 1000,\n properties: \"id, path, name\",\n require: ['LivelyGraphWalking'],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3402":{"name":"IndexLivelyTextMorphs\n","query":"// g.createManualIndex('LivelyTexts', g.v(0).class);\n\ndef currentQueries = g.v(4).outE('queryProgress').inV.collect{it}\nif (currentQueries.size() > 0) throw new Exception(\"Queries in Progress: \" + currentQueries.collect{ it.query }.join(\", \"))\n\ndef livelyObjects = g.idx('LivelyObjects')\ndef livelyTexts = g.idx('LivelyTexts')\n\nshowProgress(0,1)\r\r\n\ntextMorphs = livelyObjects.get(\"className\", \"lively.morphic.Text\").collect{it}\n\r\ndef progressCount = 0\ndef progressMax = textMorphs.size()\n\ntextMorphs.each {text ->\n showProgress(progressCount++,progressMax)\r \n // getTextStrings(text.id)\n text.textString = getTextStrings(text).join(\"\")\n}\r\n\n\"finishd \" + progressCount + \" max \"+ progressMax\n\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n quick: false,\n workload: 50,\n}","categories":["Test","Index"],"language":"Gremlin"},"3403":{"name":"FullTextIndex","query":"\n\n\n// index = g.getRawGraph().index().forNodes( \"exact-case-insensitive\", StringMap([\"type\", \"exact\", \"to_lower_case\", \"true\"]) );\n \n //\n g.getRawGraph().index().forNodes( \"node_auto_index\" ).query(\"__LivelyClassName__:*\").size()\n g.getRawGraph().index().forNodes( \"node_auto_index\" ).query(\"textString:*\")[0]\n \n // g.idx('LivelyObjects').get(\"className\", \"lively.morphic.Text\")[0].textString\n\n // g.getRawGraph().index().forNodes( \"node_auto_index\" ).query(\"textString:*cop.create*\").collect{it}[0..10].collect{ it.getProperty(\"textString\")}\n \n \n g.v(3164).textString = getTextStrings(g.v(3164)).join(\"\")\n \n \nget(g.v(3164), \"textChunks\").outE.inV\n\n\n[ {\n \"outgoing_relationships\" : \"http://lively-kernel.org:7474/db/data/node/3184/relationships/out\",\n \"data\" : {\n \"__SourceModuleName__\" : \"Global.lively.morphic.TextCore\",\n \"__LivelyClassName__\" : \"lively.morphic.TextChunk\",\n \"__serializationId__\" : 3592,\n \"storedString\" : \"How to bootstrap the parts in a local Lively Installation\"\n },\n \"traverse\" : \"http://lively-kernel.org:7474/db/data/node/3184/traverse/{returnType}\",\n \"all_typed_relationships\" : \"http://lively-kernel.org:7474/db/data/node/3184/relationships/all/{-list|&|types}\",\n \"self\" : \"http://lively-kernel.org:7474/db/data/node/3184\",\n \"property\" : \"http://lively-kernel.org:7474/db/data/node/3184/properties/{key}\",\n \"properties\" : \"http://lively-kernel.org:7474/db/data/node/3184/properties\",\n \"outgoing_typed_relationships\" : \"http://lively-kernel.org:7474/db/data/node/3184/relationships/out/{-list|&|types}\",\n \"incoming_relationships\" : \"http://lively-kernel.org:7474/db/data/node/3184/relationships/in\",\n \"extensions\" : {\n },\n \"create_relationship\" : \"http://lively-kernel.org:7474/db/data/node/3184/relationships\",\n \"paged_traverse\" : \"http://lively-kernel.org:7474/db/data/node/3184/paged/traverse/{returnType}{?pageSize,leaseTime}\",\n \"all_relationships\" : \"http://lively-kernel.org:7474/db/data/node/3184/relationships/all\",\n \"incoming_typed_relationships\" : \"http://lively-kernel.org:7474/db/data/node/3184/relationships/in/{-list|&|types}\"\n} ]","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n quick: false,\n workload: 10000,\n}","categories":["Test","Index"],"language":"Gremlin"},"3404":{"name":"AnalyseScripts","query":"\ndef textMorphs = g.getRawGraph().index().forNodes( \"node_auto_index\" ).query(\"textString:\" + pattern).collect{it}\n\n\n","parameters":"{\n root: this.objectRootNodeID,\n pattern: \"*cop.create\"\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3405":{"name":"FindTextMorphs","query":"rows = []\n\ntextMorph = g.getRawGraph().index().forNodes( \"node_auto_index\" ).query(\"textString:\" + pattern).collect{g.v(it.id)}\n\nrows = []\n\ntextMorph.each{ ea -> \n if (rows.size() < limit) {\n def root = findRootObject(ea)\n def m = ea.textString =~ match\n rows.push([ id: ea.id, world: root.name, name: ea.name, match: (m ? m[0][0] : \"\"), textString: ea.textString.replace(\"\\n\",\"\\\\n\") ])\n }\n}\n \nrowsToData(rows,null)\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n pattern: \"*cop.create*\",\n match: '(cop.create(?:Layer)?\\\\(.*?\\\\))',\n limit: 1000\n}","categories":["Analysis","Gremlin","Search"],"language":"Gremlin"},"3406":{"name":"FindTextMorphs_ContextJS_WithLayers","query":"rows = []\n\ntextMorph = g.getRawGraph().index().forNodes( \"node_auto_index\" ).query(\"textString:\" + pattern).collect{g.v(it.id)}\n\nrows = []\n\ntextMorph.each{ ea -> \n if (rows.size() < limit) {\n def root = findRootObject(ea)\n def m = ea.textString =~ match\n rows.push([ id: ea.id, world: root.name, name: ea.name, match: (m ? m[0][0] : \"\"), textString: ea.textString.replace(\"\\n\",\"\\\\n\") ])\n }\n}\n \nrowsToData(rows,null)\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n pattern: \"*setWithLayers*\",\n match: '(setWithLayers\\\\(.*?\\\\))',\n limit: 1000\n}","categories":["ContextJS"],"language":"Gremlin"},"3407":{"name":"AllScriptsThatCreateLayers","query":"rows = []\n\ng.idx(\"LivelyScripts\")[[script: 'all']].findAll({ it.source =~ /(cop.create)|(createLayer)/ }).countBy{it.source}.each{ k, v -> \n def script = g.idx(\"LivelyScripts\").get(\"source\", k)[0]\n def m = script.source =~ /(?:(?:cop)?\\.create(?:Layer)?\\((.*?)\\))/\n def isGlobal = script.source =~ /(beGlobal)|(enableLayer)/\n def objectName = script.inE.outV.inE.outV.name\n rows.push([id: script.id, objectName: objectName, \n name: script.name, count: v, layers: (m ? m[0][1] : \"\"), isGlobal: isGlobal ? \"true\" : \"false\", source: script.source.replace(\"\\n\",'\\\\n') ]) \n}\nrows = rows.sort{ - it.count}\n// rows.reverseO\nrowsToData(rows,null)\n\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n}","categories":["Analysis","Gremlin","ContextJS"],"language":"Gremlin"},"3408":{"name":"AllScriptsThatGlobalLayers","query":"rows = []\n\ng.idx(\"LivelyScripts\")[[script: 'all']].findAll({ it.source =~ /cop.with(out)?Layers?/ }).countBy{it.source}.each{ k, v -> \n def script = g.idx(\"LivelyScripts\").get(\"source\", k)[0]\n def m = script.source =~ /(?:cop\\.with(?:out)?Layers\\(((?:\\[.*?\\])|(?:.*?\\))))/\n def objectName = script.inE.outV.inE.outV.name\n rows.push([id: script.id, objectName: objectName, \n name: script.name, count: v, layers: (m ? m[0][1] : \"\"), source: script.source.replace(\"\\n\",'\\\\n') ]) \n}\nrows = rows.sort{ - it.count}\n// rows.reverseO\nrowsToData(rows,null)\n\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n}","categories":["Analysis","Gremlin","ContextJS"],"language":"Gremlin"},"3409":{"name":"AllScriptsThatGlobalScopeLayers","query":"rows = []\n\ng.idx(\"LivelyScripts\")[[script: 'all']].findAll({ it.source =~ /(be(Not)?Global)|(enableLayer)|(disableLayer)/ }).countBy{it.source}.each{ k, v -> \n def script = g.idx(\"LivelyScripts\").get(\"source\", k)[0]\n def m = script.source =~/(.*\\.(be(Not)?Global)|((enable)|(disable))Layer\\(.*)/\n def isGlobal = script.source =~ /(beGlobal)|(enableLayer)/\n def objectName = script.inE.outV.inE.outV.name\n rows.push([id: script.id, objectName: objectName, \n name: script.name, count: v, layers: (m ? m[0][1] : \"\"), isGlobal: isGlobal ? \"true\" : \"false\", source: script.source.replace(\"\\n\",'\\\\n') ]) \n}\nrows = rows.sort{ - it.count}\n// rows.reverseO\nrowsToData(rows,null)\n\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n}","categories":["Analysis","Gremlin","ContextJS"],"language":"Gremlin"},"3410":{"name":"CountParts","query":"def livelyObjects = g.idx('LivelyParts')\n\nshowProgress(0,1)\r\r\ndef w = findWorldsWithURL(root, urls)\n\r\ndef progressCount = 0\ndef progressMax = w.worlds.size() \nrows = []\n\n\ndef parseClassStats = {s ->\n o = [:]\n s.replaceAll(/\\[|\\]/,'').split(/, /).each{a=it.split(\":\"); o[a[0]]=a[1].toInteger()}\n o\n}\n// parseClassStats([a:2,b:3].toString())\n\ndef objectsInWorldOfClass = [:]\ndef worldsUsingClass = [:]\n\nw.worlds.collect{ \rworld ->\n showProgress(progressCount++,progressMax)\r \n def r = inRef(world)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def name = path.replaceFirst(\".*/\",\"\")\r\n ensureProgressNode().msg = \"world: \" + name\n // log(\"name: \" + name)\n path = path.replaceFirst(\"/[^/]*\\$\",\"\")\r \n world.outE(\"rootObject\").inV.each { rootObj ->\n def classStats = [:]\r\n if(rootObj.cachedPartsStats) {\n parseClassStats(rootObj.cachedPartsStats).each { className, n ->\n objectsInWorldOfClass[className] = (objectsInWorldOfClass[className] ?: 0) + n\n worldsUsingClass[className] = (worldsUsingClass[className] ?: 0)+ 1\n }\n }\n }\r\n}\r\n\nobjectsInWorldOfClass.each { name, n ->\n rows.push([name: name, Objects: n, Worlds: worldsUsingClass[name]])\n}\n\nrowsToData(rows,null)\n\n\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3411":{"name":"CountClasses","query":"// g.createManualIndex('LivelyObjects', Vertex.class)\n\ndef livelyObjects = g.idx('LivelyObjects')\n\n// findRootObject(g.idx('LivelyObjects').get(\"className\",\"TMAddCommand\")[0]).inE.collect{it}[0].url\n\n// .inE(\"reference\").outV.inE(\"reference\").outV.inE(\"reference\").outV.\ng.idx('LivelyObjects').get(\"className\",\"TMAddCommand\")[0].in(\"reference\").out.in\n\nshowProgress(0,1)\r\r\ndef w = findWorldsWithURL(root, urls)\n\r\ndef progressCount = 0\ndef progressMax = w.worlds.size() \nrows = []\n\n\ndef parseClassStats = {s ->\n o = [:]\n s.replaceAll(/\\[|\\]/,'').split(/, /).each{a=it.split(\":\"); o[a[0]]=a[1].toInteger()}\n o\n}\n// parseClassStats([a:2,b:3].toString())\n\ndef objectsInWorldOfClass = [:]\ndef worldsUsingClass = [:]\n\nw.worlds.collect{ \rworld ->\n showProgress(progressCount++,progressMax)\r \n def r = inRef(world)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def name = path.replaceFirst(\".*/\",\"\")\r\n ensureProgressNode().msg = \"world: \" + name\n // log(\"name: \" + name)\n path = path.replaceFirst(\"/[^/]*\\$\",\"\")\r \n world.outE(\"rootObject\").inV.each { rootObj ->\n def classStats = [:]\r\n if(rootObj.cachedClassStats) {\n parseClassStats(rootObj.cachedClassStats).each { className, n ->\n objectsInWorldOfClass[className] = (objectsInWorldOfClass[className] ?: 0) + n\n worldsUsingClass[className] = (worldsUsingClass[className] ?: 0)+ 1\n }\n }\n }\r\n}\r\n\nobjectsInWorldOfClass.each { name, n ->\n rows.push([name: name, Objects: n, Worlds: worldsUsingClass[name]])\n}\n\nrowsToData(rows,null)\n\n\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3412":{"name":"ListsPartsBasic","query":"\rdef inRef = {it.getInEdges()[0]}\r\n\rdef gatherRefs = { root, type ->\r\n def all = [].asType(Set); \r\n def current = [root]\r\n while(current.size() > 0) {\r\n def node = current.pop()\r\n node.outE(type).inV.each { n ->\r\n if (!all.contains(n)) {\r\n all.add(n)\r\n current.push(n)\r\n }\r\n }\r\n } \r\n return all\r\n}\r; \n\nget = { obj, ref -> obj.outE.filter{it.name == ref}.inV.collect{it}[0]\r }\n\nworlds =[]; \r\ng.v(root).outE(\"LivelyObject\").inV.fill(worlds)\r\n\nmaxRev = [:]\nworlds.each { \n def r = inRef(it)\n maxRev[r.url] = Math.max(maxRev[r.url] ?: 0, r.rev.toInteger() )\n}\n\n// show only the last revivsion\nworlds = worlds.findAll {def r = inRef(it) ; maxRev[r.url] == r.rev.toInteger() }\n\n// my worlds\n// worlds = worlds.findAll {inRef(it).url.matches(\".*users.*\")}\r\n\n// Parts\nworlds = worlds.findAll { inRef(it).url =~ url}\n\r\ndef getTextStrings = { v ->\r\n v.outE(\"reference\").filter {\r\n it.name == 'textChunks'\r\n }.inV.out.collect { it.storedString}\r\n}\r\n\ndef getDerivationIds = { v ->\r\n def dobj = get(v,\"derivationIds\")\n if (!dobj) return []\n def keys = []\n dobj.getPropertyKeys().each({ try {keys.push(new Integer(it)) } catch(e) {} })\n return keys.sort().collect({ dobj[it.toString()]})\n}\r\n\n // Debug\r\n // g.v(root).out.out.findAll{ it.__LivelyClassName__ == 'lively.morphic.Text'}[0]\r\n // g.v(1424414).outE(\"rootObject\").inV.outE()[0].inV.size()\n\ndata = worlds.collect{ \r\n def r = inRef(it)\r\n def submorphs = []\n def textmorphs = []\n def derivationIds = []\n textSize = 0\n\n it.outE(\"rootObject\").inV.each { rootObj ->\r\n if(!it.cachedNumberOfSubobjects) {\r\n def subnodes = gatherRefs(rootObj , \"reference\")\r\n it.cachedNumberOfSubobjects = subnodes.size()\r\n }\r\n derivationIds = getDerivationIds(rootObj)\n submorphs = gatherRefs(rootObj , \"submorph\")\r\n textmorphs = submorphs.findAll {\r\n it.__LivelyClassName__ == 'lively.morphic.Text'\r\n }\r\n if (rootObj.__LivelyClassName__ == 'lively.morphic.Text'\r) {\n textmorphs.add(rootObj)\n }\n textStrings = textmorphs.inject([]){ s, ea -> s + getTextStrings(ea)}\r\n textSize = textStrings.inject(0){s, ea -> s + (ea ?: \"\").size()}\r\n }\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def name = path.replaceFirst(\".*/\",\"\")\r\n path = path.replaceFirst(\"/[^/]*\\$\",\"\")\r\n [it.id, \r\n path,\r\n name,\n r.rev,\r\n it.cachedNumberOfSubobjects,\r\n submorphs.size(),\r\n textmorphs.size(),\r\n textSize\r,\n derivationIds.size()\n ]\r\n}\r\n \r\ndata.sort{ea -> ea[1]}\r\n// data.reverse(true)\r\n\r\r\n// data = data[0..20]\r\n\r\n// a = [2,1,4,5,3].sort{ea -> ea}; a.reverse(true); a\r\n\r\ndef tableSum = { data, column -> data.inject(0){s,e -> s + e[column]} }\r\n\r\ndata.add([ \"TOTAL\", null, null, null, tableSum(data, 4), tableSum(data, 5), tableSum(data, 6), tableSum(data, 7)])\r\n\r\n\r\n[columns: [\"id\", \"path\", \"name\", \"rev\", \"Objects\", \"Submorphs\", \"TextMorphs\", \"TextSize\", \"DerivationIds\"], data: data]\r\n","parameters":"{\n root: this.objectRootNodeID,\n url: \"webwerkstatt/PartsBin/Tools/\"\n}","categories":["Gremlin","Groovy"],"language":"Gremlin"},"3413":{"name":"ShowMorphs","query":"showProgress(0,1)\r\ndef w = findWorldsWithURL(root, urls)\n\n// getDerivationIds(g.v(2204573))\n// findRootObject(g.v(2204573)).outE.inV.id[ 2201359 ]\n\nrows = []\nvisitObj = {m, parent, refName, depth, all ->\n if (depth > maxDepth ) return 0\n if (all[m.id]) return 0\n if (m.type == \"ErrorNode\") return 0\n def owner = get(m, \"owner\")\n if (parent && !((m.__LivelyClassName__ && owner) || refName == \"submorphs\")) return 0\n\n def name = m.name ?: (m.__LivelyClassName__ ?: \"\").replace(\"lively.\",\"\").replace(\"morphic.\",\"\") ?: \"->\" + refName;\n \n if (m.__LivelyClassName__ && (owner || !parent)) {\n \n def textStrings = getTextStrings(m)\n if (textStrings.size > 0 && name == \"Text\") {\n name += \": \" + textStrings.join(\"\")\n if (name.size() > 100) name = name.substring(0,100)\n }\n rows.push([\r\n id: m.id,\r\n parentId: parent ? parent.id : \"null\",\n treeItem: (\" \" * depth) + refName,\n name: name,\n Class: m.__LivelyClassName__,\r\n Size: calcObjectSize(m),\n Objects: countSubobjects(m),\n Properties: m.getPropertyKeys().size(),\n LivelyId: m._id,\n DerivationIds: getDerivationIds(m),\n ]\r)\n }\n \n def nextParent = m;\n if (refName == \"submorphs\")\n nextParent = parent;\n all[m.id] = true\n m.outE(\"reference\").collect{it}.sort({it.id}).each{ ea -> \n def nextRefName = ea.name\n def nextDepth = depth + 1\n if (refName == \"submorphs\") {\n nextRefName = \"submorph \" + nextRefName;\n nextDepth = depth \n } \n visitObj(ea.inV.collect({it})[0], nextParent, nextRefName , nextDepth, all)}\n}\n\ntry {target = target} catch(e) { target = null}\nif (target) {\n def rootObj = g.v(target) \n visitObj(rootObj, null, null, 0, [:]) \n} else {\n w.worlds.each{ \r\n def r = inRef(it)\r\n def path = r.url.replaceFirst(\"http://lively-kernel.org/repository/webwerkstatt/\",\"\")\r\n def rev = r.rev\r\n def rootId = it.id\n it.outE(\"rootObject\").inV.each { rootObj ->\r\n visitObj(rootObj, null, null, 0, [:])\n }\n }\r\r\n}\n\nexcluded = [:]\nrows.each { ea -> excluded[ea.id] = true}\nvisitedSubobjectsSize = [].asType(Set)\nvisitedSubobjectsCount = [].asType(Set)\nrows.each { ea -> \n def v = g.v(ea.id)\n excluded[ea.id] = false // avoid immediate return..\n if (v) {\n ea.SubObjects = countSubobjectsExcluded(v,visitedSubobjectsCount, excluded)\n ea.SubSize = calcObjectSizeExcluded(v, visitedSubobjectsSize, excluded) \n }\n excluded[ea.id] = true\n}\n\n// rows = rows.sort{ it.i }\n// rows = rows.reverse();\nreturn rowsToData(rows, null) // .data.collect({it[3]}).toString()","parameters":"{\n target: 2201359,\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: ['webwerkstatt/PartsBin/Tools/ObjectInspector'],\n maxDepth: 2\n}","categories":["Gremlin","Groovy","Analysis"],"language":"Gremlin"},"3414":{"name":"CountScriptsByName","query":"rows = []\n\ng.idx(\"LivelyScripts\")[[script: 'all']].countBy{it.name}.each{ k, v -> \n rows.push([ name: k, count: v]) \n}\n\nrowsToData(rows,null)\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n urls: [ \"webwerkstatt/PartsBin/\"],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3415":{"name":"CountScriptsBySource","query":"rows = []\n\n\n// nosource nodes are error nodes... that were added because of \"depth\" limit reached \n// g.idx(\"LivelyScripts\")[[script: 'all']].collect{it}.groupBy{it.source ?: \"nosource\"}[\"nosource\"][10]\n\ng.idx(\"LivelyScripts\")[[script: 'all']].collect{it}.groupBy{it.source ?: \"nosource\"}.each{ k, group ->\n script = group[0]\n rows.push([ name: script.name, func: truncate(k.replaceAll(/\\n.*/,\"\"), 100), count: group.size()]) \n}\n\nrowsToData(rows,null)\n\n","parameters":"{\n root: this.objectRootNodeID,\n require: ['LivelyGraphWalking'],\n}","categories":["Analysis","Gremlin"],"language":"Gremlin"},"3416":{},"3417":{"LivelyKernelNeoDB01":{"__isSmartRef__":true,"id":3418},"LastIds":{"__isSmartRef__":true,"id":3419},"data_2013-09-04":{"__isSmartRef__":true,"id":3420},"data_2013-09-06":{"__isSmartRef__":true,"id":3421}},"3418":{"rootId":"628805","partsBinRootNodeID":"675308","morphRefId":1,"worldsRootNodeID":706624,"neoLogNodeID":"774476","objectRootNodeID":"1184870","testObjectRootNodeID":"1184871"},"3419":{"rootId":"628805","partsBinRootNodeID":"675308","morphRefId":1,"worldsRootNodeID":706624,"neoLogNodeID":"774476","objectRootNodeID":"1184870","testObjectRootNodeID":"1184871"},"3420":{"rootId":"1","objectRootNodeID":"2977806","neoLogNodeID":"6","morphRefId":1,"testObjectRootNodeID":"1184871"},"3421":{"rootId":"1","objectRootNodeID":"2","testObjectRootNodeID":"3","neoLogNodeID":"4","morphRefId":1},"3422":{"onrestore":{"__isSmartRef__":true,"id":3423},"reset":{"__isSmartRef__":true,"id":3431},"clearLog":{"__isSmartRef__":true,"id":3435},"printNeo":{"__isSmartRef__":true,"id":3439},"visualizeNodes":{"__isSmartRef__":true,"id":3443},"insertListIntoTree":{"__isSmartRef__":true,"id":3447},"leavesToTree":{"__isSmartRef__":true,"id":3451},"printTree":{"__isSmartRef__":true,"id":3455},"queryNeoCypher":{"__isSmartRef__":true,"id":3459},"printNeoObject":{"__isSmartRef__":true,"id":3463},"update":{"__isSmartRef__":true,"id":3467},"findChildNamed":{"__isSmartRef__":true,"id":3471},"timeCall":{"__isSmartRef__":true,"id":3475},"getNeoLog":{"__isSmartRef__":true,"id":3479},"addLog":{"__isSmartRef__":true,"id":3483},"getD3Panel":{"__isSmartRef__":true,"id":3487},"maxNumbersInTable":{"__isSmartRef__":true,"id":3491},"createColorVisualizationList":{"__isSmartRef__":true,"id":3495},"findIdIndexAndUpdatePabel":{"__isSmartRef__":true,"id":3499},"allLoadedURLsAndRevisions":{"__isSmartRef__":true,"id":3503},"saveCurrentQuery":{"__isSmartRef__":true,"id":3507},"updateQueryList":{"__isSmartRef__":true,"id":3511},"selectQuery":{"__isSmartRef__":true,"id":3515},"deleteQuery":{"__isSmartRef__":true,"id":3519},"onCypherQueryResult":{"__isSmartRef__":true,"id":3523},"fastParentList":{"__isSmartRef__":true,"id":3527},"showStoredQueries":{"__isSmartRef__":true,"id":3531},"getObjectRoot":{"__isSmartRef__":true,"id":3535},"ensureObjectNode":{"__isSmartRef__":true,"id":3539},"getTestObjectRoot":{"__isSmartRef__":true,"id":3543},"addObjectAndReferences":{"__isSmartRef__":true,"id":3547},"getObjectFromURLAndRev":{"__isSmartRef__":true,"id":3551},"deleteAllTestObjects":{"__isSmartRef__":true,"id":3555},"objectNodeFromJSORegistryAt":{"__isSmartRef__":true,"id":3559},"minNumbersInTable":{"__isSmartRef__":true,"id":3563},"allLoadedObjectURLsAndRevisions":{"__isSmartRef__":true,"id":3567},"doNamedCypherQuery":{"__isSmartRef__":true,"id":3571},"getQuery":{"__isSmartRef__":true,"id":3575},"setQuery":{"__isSmartRef__":true,"id":3579},"currentQuery":{"__isSmartRef__":true,"id":3583},"onQueryChanged":{"__isSmartRef__":true,"id":3587},"resetQueryChanged":{"__isSmartRef__":true,"id":3591},"createSizeVisualizationList":{"__isSmartRef__":true,"id":3595},"tableGetRowAsObject":{"__isSmartRef__":true,"id":3599},"treeEnsurePath":{"__isSmartRef__":true,"id":3603},"treeDetectRealRoot":{"__isSmartRef__":true,"id":3607},"queryNeoTraversal":{"__isSmartRef__":true,"id":3611},"queryNeoGremlin":{"__isSmartRef__":true,"id":3615},"evalQueryParams":{"__isSmartRef__":true,"id":3619},"createTextSizeVisualizationList":{"__isSmartRef__":true,"id":3623},"gatherKnownNodeIds":{"__isSmartRef__":true,"id":3627},"saveKnownNodeIdsAs":{"__isSmartRef__":true,"id":3631},"loadKnownNodeIds":{"__isSmartRef__":true,"id":3635},"resetKnownNodeIds":{"__isSmartRef__":true,"id":3639},"getRootNode":{"__isSmartRef__":true,"id":3643},"getGlobalGroovyDefinitions":{"__isSmartRef__":true,"id":3647},"ensureObjectNodeOld":{"__isSmartRef__":true,"id":3651},"serializeObject":{"__isSmartRef__":true,"id":3655},"getAllIds":{"__isSmartRef__":true,"id":3659},"extractNodes":{"__isSmartRef__":true,"id":3663},"log":{"__isSmartRef__":true,"id":3667},"enableLogging":{"__isSmartRef__":true,"id":3671},"disableLogging":{"__isSmartRef__":true,"id":3675}},"3423":{"varMapping":{"__isSmartRef__":true,"id":3424},"source":"function onrestore() {\n module('apps.Neo4j').load(true)\n try {\n this.db = new neo4j.GraphDatabase('http://localhost:7474');\n this.db.useCaching(true)\n\n if (this.rootId)\n this.rootNode = this.db.node(this.rootId)\n\n } catch(e) {\n alertOK(\"error connecting to Neo4J\")\n }\n\n}","funcProperties":{"__isSmartRef__":true,"id":3429},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3424":{"this":{"__isSmartRef__":true,"id":2390},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3425}},"3425":{"$super":{"__isSmartRef__":true,"id":3426}},"3426":{"varMapping":{"__isSmartRef__":true,"id":3427},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":3428},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3427":{"obj":{"__isSmartRef__":true,"id":2390},"name":"onrestore"},"3428":{},"3429":{"timestamp":{"__isSmartRef__":true,"id":3430},"user":"jenslincke","tags":["default"]},"3430":{"isSerializedDate":true,"string":"Wed Sep 11 2013 19:12:28 GMT+0200 (W. Europe Summer Time)"},"3431":{"varMapping":{"__isSmartRef__":true,"id":3432},"source":"function reset() {\n this.doNotSerialize = ['db', 'rootNode', 'neoNodes', 'worldsRootNode', 'lastNodes', 'neoLogNode', 'testObjectRootNode', 'objectRootNode', 'lastResult']\n this.db.useCaching(true)\n this.installLayers()\n\n this.lastResult = []\n this.lastNodes = []\n}","funcProperties":{"__isSmartRef__":true,"id":3433},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3432":{"this":{"__isSmartRef__":true,"id":2390}},"3433":{"timestamp":{"__isSmartRef__":true,"id":3434},"user":"jenslincke","tags":["reset"]},"3434":{"isSerializedDate":true,"string":"Wed Sep 11 2013 11:38:47 GMT+0200 (W. Europe Summer Time)"},"3435":{"varMapping":{"__isSmartRef__":true,"id":3436},"source":"function clearLog() {\n this.get(\"Status\").clear()\n}","funcProperties":{"__isSmartRef__":true,"id":3437},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3436":{"this":{"__isSmartRef__":true,"id":2390}},"3437":{"timestamp":{"__isSmartRef__":true,"id":3438},"user":"jenslincke","tags":[]},"3438":{"isSerializedDate":true,"string":"Thu Aug 15 2013 15:14:32 GMT+0200 (W. Europe Summer Time)"},"3439":{"varMapping":{"__isSmartRef__":true,"id":3440},"source":"function printNeo(list) {\n // this.printNeo(neoNode.getRelationships())\n return list.collect(function(ea) {\n return this.printNeoObject(ea)}, \n this).join(\"\\n\")\n}","funcProperties":{"__isSmartRef__":true,"id":3441},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3440":{"this":{"__isSmartRef__":true,"id":2390}},"3441":{"timestamp":{"__isSmartRef__":true,"id":3442},"user":"jenslincke","tags":["private"]},"3442":{"isSerializedDate":true,"string":"Fri Jul 26 2013 17:09:56 GMT+0200 (W. Europe Summer Time)"},"3443":{"varMapping":{"__isSmartRef__":true,"id":3444},"source":"function visualizeNodes(nodes, result) {\n // this.neoNodes\n // nodes = this.neoNodes\n \n if (!nodes) nodes = this.lastNodes\n if (!result ) result = this.lastResult\n \n \n var d3Panel = this.getD3Panel()\n d3Panel.data = {morphs:{}, connections: []}\n \n\n if(!nodes || nodes.length == 0) return\n if (!nodes[0].getProperty(\"type\")) return\n\n // var tree = this.leavesToTree(nodes, this.rootNode);\n var tree = this.timeCall(this, 'leavesToTree', [nodes, this.rootNode])\n\n\n var filterTree = function(tree){\n // remove redandancy created by node4j structure \n if (tree.children[0] && tree.children[0].name == tree.name){\n tree.neoId = tree.children[0].neoId // take the other...\n tree.neoNode = tree.children[0].neoNode // take the other...\n tree.children = tree.children[0].children\n }\n tree.children.each(function(ea) {\n filterTree(ea)\n })\n }\n // filterTree(tree)\n \n var filterPartsSpaceName = function(tree){\n // some name cleaning \n if (tree.name){\n tree.name = tree.name.replace(/^PartsBin\\//,\"\")\n }\n tree.children.each(function(ea) {\n filterPartsSpaceName (ea)\n })\n }\n // filterPartsSpaceName(tree)\n\n this.log(this.printTree(tree))\n\n // detect real root\n var root = this.treeDetectRealRoot(tree);\n\n // include path information into tree if available\n if (result.columns.include(\"path\")) {\n var oldChildren = root.children;\n root.children = []\n oldChildren.each(function(ea) {\n var row = this.tableGetRowAsObject(result.data, result.columns, ea.neoNode.getId())\n if (!row) return\n var path = row.path.split(\"/\")\n if (!ea.name) ea.name = path.last();\n var p = path.slice(1,-1).reverse();\n var dir = this.treeEnsurePath(root, p)\n dir.children.push(ea)\n }, this)\n }\n root = this.treeDetectRealRoot(tree);\n\n this.createSizeVisualizationList()\n this.createColorVisualizationList()\n this.createTextSizeVisualizationList()\n d3Panel.data.root = root\n d3Panel.draw()\n d3Panel.d3TransistionNodes()\n \n \n}","funcProperties":{"__isSmartRef__":true,"id":3445},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3444":{"this":{"__isSmartRef__":true,"id":2390}},"3445":{"timestamp":{"__isSmartRef__":true,"id":3446},"user":"jenslincke","tags":["visualize"]},"3446":{"isSerializedDate":true,"string":"Tue Aug 27 2013 14:32:12 GMT+0200 (W. Europe Summer Time)"},"3447":{"varMapping":{"__isSmartRef__":true,"id":3448},"source":"function insertListIntoTree(list, parent) {\n // r ={children:[]};this.insertListIntoTree(this.parentList(nodes[0]),r); r\n if (list.length == 0) return;\n var neoNode = list.shift()\n var node = parent.children.detect(function(ea) {\n return ea.neoId == neoNode.getId()\n })\n if (!node){\n node = {\n name: neoNode.getProperty(\"name\"),\n neoId: neoNode.getId(),\n neoNode: neoNode,\n children: []\n }\n parent.children.push(node)\n }\n this.insertListIntoTree(list, node)\n}","funcProperties":{"__isSmartRef__":true,"id":3449},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3448":{"this":{"__isSmartRef__":true,"id":2390}},"3449":{"timestamp":{"__isSmartRef__":true,"id":3450},"user":"jenslincke","tags":["private"]},"3450":{"isSerializedDate":true,"string":"Thu Jul 25 2013 20:06:32 GMT+0200 (W. Europe Summer Time)"},"3451":{"varMapping":{"__isSmartRef__":true,"id":3452},"source":"function leavesToTree(nodes, rootNode) {\n // this.leavesToTree(this.neoNodes, this.getPartsBinRoot())\n var root = {name: 'root', children: []}\n nodes.each(function(ea) {\n var parents = this.fastParentList(ea, rootNode)\n // this.parentList(ea, rootNode)\n this.insertListIntoTree(parents, root)\n }, this)\n return root\n}","funcProperties":{"__isSmartRef__":true,"id":3453},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3452":{"this":{"__isSmartRef__":true,"id":2390}},"3453":{"timestamp":{"__isSmartRef__":true,"id":3454},"user":"jenslincke","tags":["private"]},"3454":{"isSerializedDate":true,"string":"Sun Aug 18 2013 01:14:54 GMT+0200 (W. Europe Summer Time)"},"3455":{"varMapping":{"__isSmartRef__":true,"id":3456},"source":"function printTree(tree, depth) {\n if(!tree) return \"undefined\"\n // this.printTree(this.leavesToTree(this.neoNodes).children[0], this.getPartsBinRoot())\n if (!depth) depth = 0;\n return Strings.indent(tree.name + ' ' + (tree.neoNode ? tree.neoNode.getProperty('__LivelyClassName__') + ' ' : \"\")+ tree.neoId, \" \", depth )+ \"\\n\" +\n tree.children.collect(function(ea) {return this.printTree(ea, depth + 1) }, this).join(\"\")\n \n}","funcProperties":{"__isSmartRef__":true,"id":3457},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3456":{"this":{"__isSmartRef__":true,"id":2390}},"3457":{"timestamp":{"__isSmartRef__":true,"id":3458},"user":"jenslincke","tags":["private"]},"3458":{"isSerializedDate":true,"string":"Thu Sep 05 2013 15:55:58 GMT+0200 (W. Europe Summer Time)"},"3459":{"varMapping":{"__isSmartRef__":true,"id":3460},"source":"function queryNeoCypher() {\n this.clearLog()\n this.get(\"Table\").textString = \"Loading...\"\n this.get(\"D3Panel\").clear();\n this.queryStartTime = Date.now()\n\n var queryObj = this.currentQuery()\n\n var params = this.evalQueryParams(queryObj)\n\n var failed=false\n var str= queryObj.query.replace(/\\#\\{(.*?)\\}/g, function(m, $1) {\n try {\n return function(text) { return eval(text) }.call(this, $1)\n } catch(e) {\n failed =true\n this.log(\"Error evaluating : \" + $1 + \" \" +e)\n }\n }.bind(this))\n\n if (queryObj.language == \"Traversal\") {\n return this.queryNeoTraversal(str, params)\n }\n if (queryObj.language == \"Gremlin\") {\n return this.queryNeoGremlin(str, params)\n }\n \n var query = str;\n\n if(failed) return;\n try {\n // var result = this.db.doCypherQuery(str)\n var webR = new WebResource(this.db.getCypherUrl())\n webR.beAsync()\n lively.bindings.connect(webR, 'content', function(status){\n if (!webR.status || !webR.status.isDone()) return;\n if(webR.status.isSuccess()) {\n this.onCypherQueryResult(webR.content)\n } else {\n this.log(\"query failed: \" + webR.content)\n }\n }.bind(this), 'call')\n this.get(\"LoadingLabel\").setVisible(true)\n this.log(\"start query\")\n webR.post(JSON.serialize({ query: query, params: params }), 'application/json')\n } catch(e) {\n this.log(e)\n return\n }\n\n}","funcProperties":{"__isSmartRef__":true,"id":3461},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3460":{"this":{"__isSmartRef__":true,"id":2390}},"3461":{"timestamp":{"__isSmartRef__":true,"id":3462},"user":"jenslincke","tags":["neo"]},"3462":{"isSerializedDate":true,"string":"Thu Sep 12 2013 17:07:05 GMT+0200 (W. Europe Summer Time)"},"3463":{"varMapping":{"__isSmartRef__":true,"id":3464},"source":"function printNeoObject(ea) {\n if (ea instanceof neo4j.Node) {\n return \"node(\" + ea.getId()+\",\" +ea.getProperty(\"name\")+\")\"\n }\n if (ea instanceof neo4j.Relationship) {\n var s = ea.getStartNode().getProperty(\"name\")+ \" [\"+ea.getType() +\"]-> \"+ ea.getEndNode().getProperty(\"name\")\n if(ea.getProperty(\"rev\")) s += \" \" + rev\n return s\n }\n return ea\n}","funcProperties":{"__isSmartRef__":true,"id":3465},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3464":{"this":{"__isSmartRef__":true,"id":2390}},"3465":{"timestamp":{"__isSmartRef__":true,"id":3466},"user":"jenslincke","tags":["private"]},"3466":{"isSerializedDate":true,"string":"Fri Jul 26 2013 17:10:55 GMT+0200 (W. Europe Summer Time)"},"3467":{"varMapping":{"__isSmartRef__":true,"id":3468},"source":"function update() {\n this.queryNeoCypher(this.get(\"CypherQuery\").textString)\n}","funcProperties":{"__isSmartRef__":true,"id":3469},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3468":{"this":{"__isSmartRef__":true,"id":2390}},"3469":{"timestamp":{"__isSmartRef__":true,"id":3470},"user":"jenslincke","tags":["update"]},"3470":{"isSerializedDate":true,"string":"Thu Jul 25 2013 16:50:27 GMT+0200 (W. Europe Summer Time)"},"3471":{"varMapping":{"__isSmartRef__":true,"id":3472},"source":"function findChildNamed(node, name) {\n return node.getRelationships().invoke('getEndNode').detect(function(ea) {\n return ea.getProperty('name') == name \n })\n}","funcProperties":{"__isSmartRef__":true,"id":3473},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3472":{"this":{"__isSmartRef__":true,"id":2390}},"3473":{"timestamp":{"__isSmartRef__":true,"id":3474},"user":"jenslincke","tags":[]},"3474":{"isSerializedDate":true,"string":"Sat Jul 27 2013 17:49:54 GMT+0200 (W. Europe Summer Time)"},"3475":{"varMapping":{"__isSmartRef__":true,"id":3476},"source":"function timeCall(obj, methodName, args) {\n var result;\n this.log(\"call \" + obj +\".\"+ methodName +\" in \" +\n Functions.timeToRun(\n function() {result = obj[methodName].apply(obj, args)})+ \"ms\")\n return result\n}","funcProperties":{"__isSmartRef__":true,"id":3477},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3476":{"this":{"__isSmartRef__":true,"id":2390}},"3477":{"timestamp":{"__isSmartRef__":true,"id":3478},"user":"jenslincke","tags":["private"]},"3478":{"isSerializedDate":true,"string":"Sun Jul 28 2013 16:18:49 GMT+0200 (W. Europe Summer Time)"},"3479":{"varMapping":{"__isSmartRef__":true,"id":3480},"source":"function getNeoLog() {\n // this.printNeoObject(this.getNeoLog())\n if (!this.neoLogNode) {\n if (!this.neoLogNodeID) {\n this.neoLogNode = this.db.node({ name: 'NeoLog', type: \"NeoLog\"});\n this.db.relationship(this.rootNode, 'ROOT', this.neoLogNode );\n this.neoLogNodeID= this.neoLogNode.getId()\n } else {\n this.neoLogNode = this.db.node(this.neoLogNodeID);\n }\n }\n return this.neoLogNode \n \n}","funcProperties":{"__isSmartRef__":true,"id":3481},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3480":{"this":{"__isSmartRef__":true,"id":2390}},"3481":{"timestamp":{"__isSmartRef__":true,"id":3482},"user":"jenslincke","tags":[]},"3482":{"isSerializedDate":true,"string":"Mon Jul 29 2013 17:16:15 GMT+0200 (W. Europe Summer Time)"},"3483":{"varMapping":{"__isSmartRef__":true,"id":3484},"source":"function addLog(obj) {\n Properties.own(obj).each(function(ea) {\n if (Object.isArray(obj[ea]) && obj[ea].length == 0) {\n delete obj[ea] \n // Neo4J can not handle [], because the little \n // cry baby can not guess a type here\n }\n })\n obj.type = 'LogEntry'\n obj.date = new Date()\n var node = this.db.node(obj)\n this.db.relationship(this.getNeoLog(), 'log', node)\n return node\n}","funcProperties":{"__isSmartRef__":true,"id":3485},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3484":{"this":{"__isSmartRef__":true,"id":2390}},"3485":{"timestamp":{"__isSmartRef__":true,"id":3486},"user":"jenslincke","tags":["add"]},"3486":{"isSerializedDate":true,"string":"Fri Aug 16 2013 20:02:52 GMT+0200 (W. Europe Summer Time)"},"3487":{"varMapping":{"__isSmartRef__":true,"id":3488},"source":"function getD3Panel() {\n return this.get(\"NeoVisualization\").get(\"D3Panel\")\n}","funcProperties":{"__isSmartRef__":true,"id":3489},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3488":{"this":{"__isSmartRef__":true,"id":2390}},"3489":{"timestamp":{"__isSmartRef__":true,"id":3490},"user":"jenslincke","tags":[]},"3490":{"isSerializedDate":true,"string":"Mon Aug 26 2013 10:22:45 GMT+0200 (W. Europe Summer Time)"},"3491":{"varMapping":{"__isSmartRef__":true,"id":3492},"source":"function maxNumbersInTable(columns, table) {\n // see tests... YES, I wrote a test, can you believe it!\n var maxNumbers = {}\n columns.each(function(ea, idx) {\n table.detect(function(row) {\n if (row.include(\"TOTAL\")) return false\n var n = row[idx]\n if (n == null || n == \"null\") n = 0\n if (Object.isNumber(n)) {\n maxNumbers[ea] = Math.max(maxNumbers[ea] || 0, n)\n return false // continue for next falue\n } else {\n maxNumbers[ea] = undefined\n return true // stop, no number\n }\n })\n })\n return maxNumbers\n}","funcProperties":{"__isSmartRef__":true,"id":3493},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3492":{"this":{"__isSmartRef__":true,"id":2390}},"3493":{"timestamp":{"__isSmartRef__":true,"id":3494},"user":"jenslincke","tags":["table"]},"3494":{"isSerializedDate":true,"string":"Sat Sep 07 2013 14:25:01 GMT+0200 (W. Europe Summer Time)"},"3495":{"varMapping":{"__isSmartRef__":true,"id":3496},"source":"function createColorVisualizationList() {\n var d3Panel = this.getD3Panel()\n var table = this.lastResult.data\n var columnNames = this.lastResult.columns\n var idIdx = this.findIdIndexAndUpdatePabel();\n if (idIdx == -1) return;\n\n var maxNumbers = this.maxNumbersInTable(columnNames, table)\n var minNumbers = this.minNumbersInTable(columnNames, table)\n d3Panel.get('NodeColorFunctionList').setList(\n columnNames.select(function(ea, idx) {\n return maxNumbers[ea]\n }).collect(function(eaName) {\n return {\n string: eaName + \" \"+ minNumbers[eaName] +\" - \" + maxNumbers[eaName],\n value: function(d) {\n var row = table.detect(function(ea) {\n return ea[idIdx] == d.neoId })\n if (!row) return 0\n if (row.include(\"TOTAL\")) return 0\n var column = columnNames.indexOf(eaName)\n var n = new Number(row[column])\n // span across value space\n return Color.hsb(0,0, 0.2 + ((n - minNumbers[eaName]) / (maxNumbers[eaName] - minNumbers[eaName]))*0.8)\n }\n }\n }))\n\n}","funcProperties":{"__isSmartRef__":true,"id":3497},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3496":{"this":{"__isSmartRef__":true,"id":2390}},"3497":{"timestamp":{"__isSmartRef__":true,"id":3498},"user":"jenslincke","tags":[]},"3498":{"isSerializedDate":true,"string":"Sat Sep 07 2013 14:27:45 GMT+0200 (W. Europe Summer Time)"},"3499":{"varMapping":{"__isSmartRef__":true,"id":3500},"source":"function findIdIndexAndUpdatePabel() {\n var d3Panel = this.getD3Panel()\n var columnNames = this.lastResult.columns\n var idIdx = columnNames.indexOf('id')\n if (idIdx == -1) {\n d3Panel.get('NodeColorFunctionList').setList([\n {string: \"Can not find nodes in table without id\",\n value: function() { return 0}}])\n return idIdx \n }\n return idIdx\n}","funcProperties":{"__isSmartRef__":true,"id":3501},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3500":{"this":{"__isSmartRef__":true,"id":2390}},"3501":{"timestamp":{"__isSmartRef__":true,"id":3502},"user":"jenslincke","tags":[]},"3502":{"isSerializedDate":true,"string":"Wed Aug 14 2013 22:25:45 GMT+0200 (W. Europe Summer Time)"},"3503":{"varMapping":{"__isSmartRef__":true,"id":3504},"source":"function allLoadedURLsAndRevisions(loadedObjects) {\n // this.allLoadedURLsAndRevisions().length\n \n return this.allLoadedObjectURLsAndRevisions()\n \n}","funcProperties":{"__isSmartRef__":true,"id":3505},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3504":{"this":{"__isSmartRef__":true,"id":2390}},"3505":{"timestamp":{"__isSmartRef__":true,"id":3506},"user":"jenslincke","tags":[]},"3506":{"isSerializedDate":true,"string":"Wed Aug 28 2013 19:16:23 GMT+0200 (W. Europe Summer Time)"},"3507":{"varMapping":{"__isSmartRef__":true,"id":3508},"source":"function saveCurrentQuery() {\n\n if (!this.queries) this.queries =[];\n\n this.resetQueryChanged()\n var query = this.currentQuery()\n this.setQuery(query.name, query)\n\n this.updateQueryList(this.get(\"QueryCategoriesList\").selection)\n\n this.get(\"QueryList\").setSelection(query.name)\n // URL.source.fullPath() + '$' +\n var key = \"NeoQuery$\" +(this.get(\"QueryCategoriesList\").selection + \"$\" + query.name).replace(/[^[A-Za-z0-9$]/g,\"\")\n localStorage[key] = JSON.serialize(query)\n\n}","funcProperties":{"__isSmartRef__":true,"id":3509},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3508":{"this":{"__isSmartRef__":true,"id":2390}},"3509":{"timestamp":{"__isSmartRef__":true,"id":3510},"user":"jenslincke","tags":["store"]},"3510":{"isSerializedDate":true,"string":"Tue Sep 10 2013 17:56:42 GMT+0200 (W. Europe Summer Time)"},"3511":{"varMapping":{"__isSmartRef__":true,"id":3512},"source":"function updateQueryList(categoryName) {\n \n // this.queries = Properties.own(oldQueries).collect(function(ea) {\n // return {name: ea, categories: [], query: oldQueries[ea], parameters: \"\", isQuery: true}\n // })\n\n this.get(\"QueryList\").setList(this.queries.select(function(ea) {\n if (!categoryName || categoryName == \"--ALL--\") return true;\n return ea.categories.include(categoryName)\n }).pluck('name').sort())\n var categories = this.queries.pluck('categories').flatten().uniq().select(Functions.K).concat([\"--ALL--\"]).sort()\n this.get(\"QueryCategoriesList\").setList(categories)\n}","funcProperties":{"__isSmartRef__":true,"id":3513},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3512":{"this":{"__isSmartRef__":true,"id":2390}},"3513":{"timestamp":{"__isSmartRef__":true,"id":3514},"user":"jenslincke","tags":[]},"3514":{"isSerializedDate":true,"string":"Fri Aug 23 2013 14:53:57 GMT+0200 (W. Europe Summer Time)"},"3515":{"varMapping":{"__isSmartRef__":true,"id":3516},"source":"function selectQuery(name) {\n // name = this.get(\"QueryList\").selection\n\n if (!this.queries) return;\n var cont = function() {\n var query = this.getQuery(name)\n if (query) {\n this.get('QueryName').textString = query.name\n this.get('CypherQuery').setSource(query.query)\n this.get('CypherParameters').textString = query.parameters\n this.get('QueryCategories').textString = query.categories.join(' ')\n this.get('QueryLanguage').textString = query.language\n }\n this.resetQueryChanged()\n }.bind(this)\n\n if (this.queryChanged) {\n this.world().confirm(\"Discard unsaved changes?\", function(bool) {\n if(bool)cont()\n })\n } else {\n cont()\n }\n}","funcProperties":{"__isSmartRef__":true,"id":3517},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3516":{"this":{"__isSmartRef__":true,"id":2390}},"3517":{"timestamp":{"__isSmartRef__":true,"id":3518},"user":"jenslincke","tags":["store"]},"3518":{"isSerializedDate":true,"string":"Mon Sep 16 2013 13:21:56 GMT+0200 (W. Europe Summer Time)"},"3519":{"varMapping":{"__isSmartRef__":true,"id":3520},"source":"function deleteQuery(name) {\n\n name = name || this.get(\"QueryList\").selection\n\n if (!this.queries || !name) return;\n\n var idx = this.get(\"QueryList\").getList().indexOf(name)\n\n var query = this.getQuery(name)\n this.queries = this.queries.without(query)\n\n this.updateQueryList(this.get(\"QueryCategoriesList\").selection)\n this.get(\"QueryList\").selectAt(idx % this.get(\"QueryList\").getList().length)\n}","funcProperties":{"__isSmartRef__":true,"id":3521},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3520":{"this":{"__isSmartRef__":true,"id":2390}},"3521":{"timestamp":{"__isSmartRef__":true,"id":3522},"user":"jenslincke","tags":["Queries"]},"3522":{"isSerializedDate":true,"string":"Mon Aug 26 2013 12:55:33 GMT+0200 (W. Europe Summer Time)"},"3523":{"varMapping":{"__isSmartRef__":true,"id":3524},"source":"function onCypherQueryResult(resultString) {\n this.get(\"LoadingLabel\").setVisible(false)\n this.log(\"executed query in \" + (Date.now() - this.queryStartTime) +\"ms\")\n\n try {\n var result = JSON.parse(resultString)\n } catch(e) {\n // parse error\n }\n if (!result || !Object.isArray(result.data) || !Object.isArray(result.columns)){\n this.log(resultString)\n return\n }\n // this.log(resultString)\n var nodes = []\n //nodes = this.db.cypherResultToNodes(result)\n this.lastResult = result\n // d = this.lastResult.data[0][0]\n // this.printNeoObject(new neo4j.Relationship(d, this.db))\n\n \n\n if (this.lastResult.data) {\n var table = {\n name: this.get(\"QueryName\").textString,\n date: Date.now(),\n columns: this.lastResult.columns,\n data: this.lastResult.data.collect(function(eaLine) {\n return eaLine.collect(function(ea) {\n return ea\n }, this)\n }, this)}\n\n this.get(\"AnalysisPane\").updateTable(table)\n // this.log(Strings.printTable(table.data))\n } else {\n this.log(JSON.serialize( this.lastResult ))\n }\n\n if (this.visualizationEnabled) {\n if (!nodes || nodes.length == 0) {\n nodes = this.timeCall(this, 'extractNodes', [])\n }\n this.timeCall(this, 'visualizeNodes', [nodes, this.lastResult])\n }\n this.get(\"Status\").setScroll(0,0)\n this.log(\"total time: \" + (Date.now() - this.queryStartTime) +\"ms\")\n\n}","funcProperties":{"__isSmartRef__":true,"id":3525},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3524":{"this":{"__isSmartRef__":true,"id":2390}},"3525":{"timestamp":{"__isSmartRef__":true,"id":3526},"user":"jenslincke","tags":["neo"]},"3526":{"isSerializedDate":true,"string":"Sun Sep 15 2013 23:41:04 GMT+0200 (W. Europe Summer Time)"},"3527":{"varMapping":{"__isSmartRef__":true,"id":3528},"source":"function fastParentList(node, rootNode) {\n // this.fastParentList(this.db.node(923043), this.rootNode)\n // node = this.db.node(923043), rootNode = this.rootNode\n\n var params = {root: Number(rootNode.getId()), node: Number(node.getId())}\n lastParams = params;\n var query = \"START root=node({root}), l=node({node}) \\n\" +\n \"MATCH p = shortestPath(root -[*]-> l) \\n\" +\n \"return nodes(p) \"\n return this.db.cypherResultToNodes(this.db.doCypherQuery(query, params))\n}","funcProperties":{"__isSmartRef__":true,"id":3529},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3528":{"this":{"__isSmartRef__":true,"id":2390}},"3529":{"timestamp":{"__isSmartRef__":true,"id":3530},"user":"jenslincke","tags":[]},"3530":{"isSerializedDate":true,"string":"Sun Aug 18 2013 01:21:45 GMT+0200 (W. Europe Summer Time)"},"3531":{"varMapping":{"__isSmartRef__":true,"id":3532},"source":"function showStoredQueries() {\n\n var props = Properties.own(localStorage).select(function(ea) { return ea.match(/^NeoQuery/)})\n\n var s = props.collect(function(ea) {\n var query = JSON.parse( localStorage[ea])\n\n return \"QUERY: \"+ ea + \"\\nname:\"+query.name + \"\\n \" + query.query\n }).join(\"\\n\\n\")\n var w = $world.openWorkspace();\n w.textString = s\n\n}","funcProperties":{"__isSmartRef__":true,"id":3533},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3532":{"this":{"__isSmartRef__":true,"id":2390}},"3533":{"timestamp":{"__isSmartRef__":true,"id":3534},"user":"jenslincke","tags":["store"]},"3534":{"isSerializedDate":true,"string":"Tue Sep 03 2013 13:56:00 GMT+0200 (W. Europe Summer Time)"},"3535":{"varMapping":{"__isSmartRef__":true,"id":3536},"source":"function getObjectRoot() {\n // old: 2\n // this.objectRootNode = null, this.objectRootNodeID = null\n // this.getObjectRoot().getId()\n // this.getObjectRoot().getProperty('name')\n if (!this.objectRootNode) {\n if (!this.objectRootNodeID) {\n this.objectRootNode= this.db.node({ name: 'ObjectRoot', type: \"ObjectRoot\"});\n this.db.relationship(this.rootNode, 'ROOT', this.objectRootNode);\n this.objectRootNodeID = this.objectRootNode.getId()\n } else {\n this.objectRootNode= this.db.node(this.objectRootNodeID );\n }\n }\n return this.objectRootNode\n\n}","funcProperties":{"__isSmartRef__":true,"id":3537},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3536":{"this":{"__isSmartRef__":true,"id":2390}},"3537":{"timestamp":{"__isSmartRef__":true,"id":3538},"user":"jenslincke","tags":[]},"3538":{"isSerializedDate":true,"string":"Tue Sep 03 2013 18:37:39 GMT+0200 (W. Europe Summer Time)"},"3539":{"varMapping":{"__isSmartRef__":true,"id":3540},"source":"function ensureObjectNode(objectSource, url, rev, rootID, callback, sync) {\n // this.ensureObjectNode(\"\", \"http://lively-kernel.org/repository/webwerkstatt/PartsBin/Basic/Rectangle.json\", \"198774\", undefined, function(node) { alertOK(\"got \" + node)})\n if (!url) throw \"parameter missing, url is needed\";\n if (!rev) throw \"parameter missing, rev is needed\";\n\n var query = this.getQuery(\"LoadLivelyObject\")\n\n var nodeFromResult = function(result) {\n try {\n var resultObj = JSON.parse(result)\n } catch(e) { };\n if (resultObj && resultObj.data ) {\n var id = resultObj.data[0][0]\n if (id) {\n // alert(\"ID:\" + id + \" \" + this.db.node(id))\n return this.db.node(id) \n }\n }\n var msg = \"QueryError: \" + result\n this.log(msg)\n throw msg\n }.bind(this);\n\n if (!sync) {\n var cb = function(result, error) {\n if (!result) return callback(undefined, error)\n try {\n var node = nodeFromResult(result)\n } catch(e) {\n return callback(undefined, e)\n }\n callback(node)\n }.bind(this)\n }\n\n var result = this.queryNeoGremlin(query.query,\n {root: Number(rootID || this.objectRootNodeID), \n url: ''+url,\n rev: '' + rev,\n source: objectSource,\n _queryName: query.name,\n _stamp: new UUID().id}, cb, sync)\n\n if (sync) {\n // alertOK(\"sync \" + result + \" \" + nodeFromResult(result))\n return nodeFromResult(result)\n }\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":3541},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3540":{"this":{"__isSmartRef__":true,"id":2390}},"3541":{"timestamp":{"__isSmartRef__":true,"id":3542},"user":"jenslincke","tags":[]},"3542":{"isSerializedDate":true,"string":"Wed Sep 18 2013 19:23:41 GMT+0200 (W. Europe Summer Time)"},"3543":{"varMapping":{"__isSmartRef__":true,"id":3544},"source":"function getTestObjectRoot() {\n // this.getTestObjectRoot().getId()\n if (!this.testObjectRootNode) {\n if (!this.testObjectRootNodeID) {\n this.testObjectRootNode= this.db.node({ name: 'TestObjectRoot', type: \"ObjectRoot\"});\n this.db.relationship(this.rootNode, 'ROOT', this.testObjectRootNode);\n this.testObjectRootNodeID = this.testObjectRootNode.getId()\n } else {\n this.testObjectRootNode= this.db.node(this.testObjectRootNodeID );\n }\n }\n return this.testObjectRootNode\n}","funcProperties":{"__isSmartRef__":true,"id":3545},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3544":{"this":{"__isSmartRef__":true,"id":2390}},"3545":{"timestamp":{"__isSmartRef__":true,"id":3546},"user":"jenslincke","tags":[]},"3546":{"isSerializedDate":true,"string":"Wed Sep 04 2013 11:22:07 GMT+0200 (W. Europe Summer Time)"},"3547":{"varMapping":{"__isSmartRef__":true,"id":3548},"source":"function addObjectAndReferences(jso, parentNode) {\n\n var registry = jso.registry\n if (!registry) throw \"Error: jso has not registry!\";\n\n try {\n // this.db.startTransaction()\n var node = this.objectNodeFromJSORegistryAt(registry, 0, {})\n // this.db.finishTransaction()\n } finally {\n // this.db.transWeb = null;\n }\n var r = this.db.relationship(parentNode, 'rootObject', node, {});\n return node\n}","funcProperties":{"__isSmartRef__":true,"id":3549},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3548":{"this":{"__isSmartRef__":true,"id":2390}},"3549":{"timestamp":{"__isSmartRef__":true,"id":3550},"user":"jenslincke","tags":["add"]},"3550":{"isSerializedDate":true,"string":"Wed Aug 28 2013 21:13:10 GMT+0200 (W. Europe Summer Time)"},"3551":{"varMapping":{"__isSmartRef__":true,"id":3552},"source":"function getObjectFromURLAndRev(url, rev, rootId) {\n rootId = rootId || this.objectRootNodeID\n if (!url || !rev) return;\n return this.db.cypherResultToNodes(\n this.db.doCypherQuery(\"START root=node(\" +rootId+\") \"+ \"\\n\" +\n'MATCH root-[r]->o ' +\n'WHERE r.url! = \"' + url + '\" AND r.rev! = \"' + rev +'\" \\n' +\n'RETURN o LIMIT 1 '))[0]\n}","funcProperties":{"__isSmartRef__":true,"id":3553},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3552":{"this":{"__isSmartRef__":true,"id":2390}},"3553":{"timestamp":{"__isSmartRef__":true,"id":3554},"user":"jenslincke","tags":[]},"3554":{"isSerializedDate":true,"string":"Wed Sep 04 2013 13:05:38 GMT+0200 (W. Europe Summer Time)"},"3555":{"varMapping":{"__isSmartRef__":true,"id":3556},"source":"function deleteAllTestObjects() {\n // this.deleteAllTestObjects()\n var query = this.getQuery(\"DeleteObjects\")\n this.queryNeoGremlin(query.query, {root: Number(this.testObjectRootNodeID)}, undefined, true)\n // this.db.doCypherQuery(query, {root: Number(this.testObjectRootNodeID)})\n}","funcProperties":{"__isSmartRef__":true,"id":3557},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3556":{"this":{"__isSmartRef__":true,"id":2390}},"3557":{"timestamp":{"__isSmartRef__":true,"id":3558},"user":"jenslincke","tags":[]},"3558":{"isSerializedDate":true,"string":"Thu Sep 05 2013 10:45:04 GMT+0200 (W. Europe Summer Time)"},"3559":{"varMapping":{"__isSmartRef__":true,"id":3560},"source":"function objectNodeFromJSORegistryAt(registry, index, nodesBySerializationId) {\n // fills neo4J database with serialized lively world\n // var registry = this.partTests.exampleJSOWorld(this).registry; index = 0\n\n if (nodesBySerializationId[index]) return nodesBySerializationId[index]; // break cycles here\n\n var obj = registry[index]\n\n // make them homogene for Neo4J, since the first derivationIds were numbers and not strings\n if (obj.derivationIds)\n obj.derivationIds = obj.derivationIds.collect(function(ea) { return \"\" + ea})\n\n var isPrimitiveValue = function(value) {\n return Object.isString(value) || Object.isNumber(value) || Object.isBoolean(value) \n }\n\n var refProps = Properties.own(obj).select(function(ea) {\n return obj[ea] && obj[ea].__isSmartRef__\n })\n var arrayProps = Properties.own(obj).select(function(ea) {\n return Object.isArray(obj[ea]) && obj[ea].length > 0\n })\n var primitiveArraysProps = arrayProps.select(function(ea) {\n return isPrimitiveValue(obj[ea][0])\n && obj[ea].all(function(eaElement) { return (typeof (obj[ea][0])) == (typeof eaElement)}) \n // only arrays with same content are stored\n })\n var referenceArraryProps = arrayProps.select(function(ea) {\n return obj[ea].all(function(eaElement) {\n return eaElement && eaElement.__isSmartRef__})\n })\n var valueProps = Properties.own(obj).withoutAll(refProps)\n .select(function(ea) {\n return isPrimitiveValue(obj[ea])\n })\n\n\n // WARNING Leaky abstraction... can we handle arrays of arrays... etc? not yet!\n // Luckily they are all ignored and we can continue\n // For really persisting all lively worlds, we have to deal with such arrays... etc.\n var ignoredValues = Properties.own(obj).withoutAll(refProps)\n .withoutAll(primitiveArraysProps)\n .withoutAll(referenceArraryProps)\n .withoutAll(valueProps)\n\n var nodeObj = {__serializationId__: index}\n if (valueProps.length > 0) nodeObj.__allValues__ = valueProps\n if (ignoredValues.length > 0) nodeObj.__ignoredValues__ = ignoredValues\n\n valueProps.each(function(ea) {\n nodeObj[ea] = obj[ea]\n })\n\n primitiveArraysProps.each(function(propName) {\n nodeObj[propName] = obj[propName]\n })\n\n var node = this.db.node(nodeObj)\n nodesBySerializationId[index] = node\n\n var referenceTo = function(objId, propName, arrayIndex) {\n if (nodesBySerializationId[objId]) {\n var childNode = nodesBySerializationId[objId]\n // we have to use special reference types, because Cypher can not user state to guide traversals\n var referenceType = 'backReference'\n } else {\n childNode = this.objectNodeFromJSORegistryAt(registry, objId, nodesBySerializationId)\n referenceType= 'reference'\n }\n var spec = {name: propName}\n if (arrayIndex) spec.index = arrayIndex;\n var r = this.db.relationship(node,referenceType, childNode, spec);\n\n if (propName == \"submorphs\") {\n this.db.relationship(node, \"submorph\", childNode, {isSpecialReference: true, index: arrayIndex});\n }\n }.bind(this)\n\n refProps.each(function(propName) {\n referenceTo(obj[propName].id, propName)\n }, this)\n\n referenceArraryProps.each(function(arrayName) {\n obj[arrayName].each(function(ref, index) {\n referenceTo(ref.id, arrayName, index)\n }, this)\n }, this)\n\n return node\n}","funcProperties":{"__isSmartRef__":true,"id":3561},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3560":{"this":{"__isSmartRef__":true,"id":2390}},"3561":{"timestamp":{"__isSmartRef__":true,"id":3562},"user":"jenslincke","tags":["add"]},"3562":{"isSerializedDate":true,"string":"Thu Aug 22 2013 13:19:30 GMT+0200 (W. Europe Summer Time)"},"3563":{"varMapping":{"__isSmartRef__":true,"id":3564},"source":"function minNumbersInTable(columns, table) {\n var minNumbers = {}\n columns.each(function(ea, idx) {\n table.detect(function(row) {\n var n = row[idx]\n if (n == null || n == \"null\") return false // null is allowed here\n if (Object.isNumber(n)) {\n if (minNumbers[ea] == undefined) \n minNumbers[ea] = n\n else\n minNumbers [ea] = Math.min(minNumbers[ea], n)\n return false // continue for next falue\n } else {\n minNumbers [ea] = undefined\n return true // stop, no number\n }\n })\n })\n return minNumbers \n}","funcProperties":{"__isSmartRef__":true,"id":3565},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3564":{"this":{"__isSmartRef__":true,"id":2390}},"3565":{"timestamp":{"__isSmartRef__":true,"id":3566},"user":"jenslincke","tags":["table"]},"3566":{"isSerializedDate":true,"string":"Tue Aug 27 2013 13:58:39 GMT+0200 (W. Europe Summer Time)"},"3567":{"varMapping":{"__isSmartRef__":true,"id":3568},"source":"function allLoadedObjectURLsAndRevisions() {\n // this.allLoadedObjectURLsAndRevisions().length\n var s = \"START n=node(\"+this.objectRootNodeID+\") \" +\n\"MATCH (n)-[r]->(o) \"+\n\"RETURN r.url!, collect(r.rev!)\"\n return this.db.doCypherQuery(s).data\n}","funcProperties":{"__isSmartRef__":true,"id":3569},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3568":{"this":{"__isSmartRef__":true,"id":2390}},"3569":{"timestamp":{"__isSmartRef__":true,"id":3570},"user":"jenslincke","tags":["query"]},"3570":{"isSerializedDate":true,"string":"Fri Sep 06 2013 13:48:22 GMT+0200 (W. Europe Summer Time)"},"3571":{"varMapping":{"__isSmartRef__":true,"id":3572},"source":"function doNamedCypherQuery(name, params) {\n\n var query = this.getQuery(name)\n if (!query) throw \"Error: No query named \" + name;\n return this.db.doCypherQuery(query, params)\n\n}","funcProperties":{"__isSmartRef__":true,"id":3573},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3572":{"this":{"__isSmartRef__":true,"id":2390}},"3573":{"timestamp":{"__isSmartRef__":true,"id":3574},"user":"jenslincke","tags":[]},"3574":{"isSerializedDate":true,"string":"Tue Sep 03 2013 18:58:07 GMT+0200 (W. Europe Summer Time)"},"3575":{"varMapping":{"__isSmartRef__":true,"id":3576},"source":"function getQuery(name) {\n\n return this.queries.detect(function(ea) {\n return ea.name == name\n })\n\n}","funcProperties":{"__isSmartRef__":true,"id":3577},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3576":{"this":{"__isSmartRef__":true,"id":2390}},"3577":{"timestamp":{"__isSmartRef__":true,"id":3578},"user":"jenslincke","tags":["store"]},"3578":{"isSerializedDate":true,"string":"Fri Aug 23 2013 12:55:53 GMT+0200 (W. Europe Summer Time)"},"3579":{"varMapping":{"__isSmartRef__":true,"id":3580},"source":"function setQuery(name, query) {\n\n this.queries = this.queries.without(this.getQuery(name))\n this.queries.push(query)\n \n}","funcProperties":{"__isSmartRef__":true,"id":3581},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3580":{"this":{"__isSmartRef__":true,"id":2390}},"3581":{"timestamp":{"__isSmartRef__":true,"id":3582},"user":"jenslincke","tags":["store"]},"3582":{"isSerializedDate":true,"string":"Fri Aug 23 2013 13:23:30 GMT+0200 (W. Europe Summer Time)"},"3583":{"varMapping":{"__isSmartRef__":true,"id":3584},"source":"function currentQuery() {\n return { \n name: this.get(\"QueryName\").textString,\n query: this.get('CypherQuery').textString,\n parameters: this.get('CypherParameters').textString,\n categories: this.get(\"QueryCategories\").textString.split(\" \"),\n language: this.get('QueryLanguage').textString\n }\n}","funcProperties":{"__isSmartRef__":true,"id":3585},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3584":{"this":{"__isSmartRef__":true,"id":2390}},"3585":{"timestamp":{"__isSmartRef__":true,"id":3586},"user":"jenslincke","tags":[]},"3586":{"isSerializedDate":true,"string":"Mon Aug 26 2013 13:29:24 GMT+0200 (W. Europe Summer Time)"},"3587":{"varMapping":{"__isSmartRef__":true,"id":3588},"source":"function onQueryChanged() {\n this.queryChanged = true\n this.get(\"ChangeIndicator\").setFill(Color.red)\n}","funcProperties":{"__isSmartRef__":true,"id":3589},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3588":{"this":{"__isSmartRef__":true,"id":2390}},"3589":{"timestamp":{"__isSmartRef__":true,"id":3590},"user":"jenslincke","tags":["events"]},"3590":{"isSerializedDate":true,"string":"Fri Aug 23 2013 13:22:37 GMT+0200 (W. Europe Summer Time)"},"3591":{"varMapping":{"__isSmartRef__":true,"id":3592},"source":"function resetQueryChanged() {\n this.queryChanged = false\n this.get(\"ChangeIndicator\").setFill(Color.white)\n}","funcProperties":{"__isSmartRef__":true,"id":3593},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3592":{"this":{"__isSmartRef__":true,"id":2390}},"3593":{"timestamp":{"__isSmartRef__":true,"id":3594},"user":"jenslincke","tags":["store"]},"3594":{"isSerializedDate":true,"string":"Fri Aug 23 2013 13:22:58 GMT+0200 (W. Europe Summer Time)"},"3595":{"varMapping":{"__isSmartRef__":true,"id":3596},"source":"function createSizeVisualizationList() {\n var d3Panel = this.getD3Panel()\n var table = this.lastResult.data\n var columnNames = this.lastResult.columns\n var idIdx = this.findIdIndexAndUpdatePabel();\n if (idIdx == -1) return;\n\n var maxNodeSize = 40;\n var minNumbers = this.minNumbersInTable(columnNames, table)\n var maxNumbers = this.maxNumbersInTable(columnNames, table)\n d3Panel.get('NodeSizeFunctionList').setList(\n columnNames.select(function(ea, idx) {\n return maxNumbers[ea]\n }).collect(function(eaName) {\n return {\n string: eaName +\" \" + maxNumbers[eaName],\n value: function(d) {\n var row = table.detect(function(ea) {\n return ea[idIdx] == d.neoId })\n if (!row) return 0\n if (row.include(\"TOTAL\")) return 0\n var column = columnNames.indexOf(eaName)\n var n = new Number(row[column])\n return Math.sqrt(n) / Math.sqrt(maxNumbers[eaName]) * maxNodeSize\n }\n }\n }))\n}","funcProperties":{"__isSmartRef__":true,"id":3597},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3596":{"this":{"__isSmartRef__":true,"id":2390}},"3597":{"timestamp":{"__isSmartRef__":true,"id":3598},"user":"jenslincke","tags":[]},"3598":{"isSerializedDate":true,"string":"Sat Sep 07 2013 14:27:34 GMT+0200 (W. Europe Summer Time)"},"3599":{"varMapping":{"__isSmartRef__":true,"id":3600},"source":"function tableGetRowAsObject(table, columns, id) {\n // extracts row from separated column and table as object\n var idPos = columns.indexOf(\"id\")\n if (idPos == -1) return;\n var row = table.detect(function(ea) {\n return ea[idPos] == id\n })\n if (!row) return\n var result = {}\n row.each(function(ea, index) {\n result[columns[index]] = ea\n })\n return result\n}","funcProperties":{"__isSmartRef__":true,"id":3601},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3600":{"this":{"__isSmartRef__":true,"id":2390}},"3601":{"timestamp":{"__isSmartRef__":true,"id":3602},"user":"jenslincke","tags":["table"]},"3602":{"isSerializedDate":true,"string":"Fri Aug 23 2013 15:53:33 GMT+0200 (W. Europe Summer Time)"},"3603":{"varMapping":{"__isSmartRef__":true,"id":3604},"source":"function treeEnsurePath(obj, path) {\n \n if (path.length == 0) \n return obj\n var name = path.pop()\n // alertOK(\"obj \" + JSON.serialize(obj))\n var next = obj.children.detect(function(ea) {\n return ea.name == name})\n if (!next) {\n next = { name: name, children: []}\n obj.children.push(next)\n }\n return this.treeEnsurePath(next, path)\n}","funcProperties":{"__isSmartRef__":true,"id":3605},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3604":{"this":{"__isSmartRef__":true,"id":2390}},"3605":{"timestamp":{"__isSmartRef__":true,"id":3606},"user":"jenslincke","tags":["visualize"]},"3606":{"isSerializedDate":true,"string":"Fri Aug 23 2013 16:16:04 GMT+0200 (W. Europe Summer Time)"},"3607":{"varMapping":{"__isSmartRef__":true,"id":3608},"source":"function treeDetectRealRoot(root) {\n while(root.children && root.children.length == 1){\n root = root.children[0]\n }\n return root\n}","funcProperties":{"__isSmartRef__":true,"id":3609},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3608":{"this":{"__isSmartRef__":true,"id":2390}},"3609":{"timestamp":{"__isSmartRef__":true,"id":3610},"user":"jenslincke","tags":["visualize"]},"3610":{"isSerializedDate":true,"string":"Fri Aug 23 2013 16:19:33 GMT+0200 (W. Europe Summer Time)"},"3611":{"varMapping":{"__isSmartRef__":true,"id":3612},"source":"function queryNeoTraversal(str, params) {\n\n\n if (params && params.root) {\n var neoNode = this.db.node(params.root)\n } else {\n throw \"No root, please provide root\"\n }\n try{\n var p = eval(\"(\"+str+\")\")\n var nodes = neoNode.traverse(p);\n } catch(e){\n this.log(e)\n return\n }\n // this.neoNodes = nodes;\n this.log(\"\" + nodes)\n}","funcProperties":{"__isSmartRef__":true,"id":3613},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3612":{"this":{"__isSmartRef__":true,"id":2390}},"3613":{"timestamp":{"__isSmartRef__":true,"id":3614},"user":"jenslincke","tags":["neo"]},"3614":{"isSerializedDate":true,"string":"Mon Aug 26 2013 13:56:08 GMT+0200 (W. Europe Summer Time)"},"3615":{"varMapping":{"__isSmartRef__":true,"id":3616},"source":"function queryNeoGremlin(str, params, callback, sync) {\n // alertOK(\"queryNeoGremlin\")\n var url = new URL('http://localhost:7474/db/data/ext/GremlinPlugin/graphdb/execute_script')\n\n var prefix = 'try { _queryName } catch(e){ _queryName = \"anonymous\"};'+\n 'try { _stamp } catch(e){ _stamp = \"nostamp\"};' +\n 'g.getRawGraph().getMessageLog().logMessage(\"Start \" + _stamp+ \" \" + _queryName); '+\n 'def _currentProgress = false; def _currentProgressEdge=false; ' +\n 'def _queryStart = System.currentTimeMillis();' +\n 'def _queryProgressTime = _queryStart;'+\n 'def ensureProgressNode = {if (!_currentProgress) {_currentProgress = g.addVertex([type: \"ProgressLog\", query: _queryName]); ' +\n '_currentProgressEdge = g.addEdge(g.v(4), _currentProgress, \"queryProgress\"); '+\n '_currentProgress.queryProgressStart = _queryStart }; _currentProgress};' +\n 'def showProgress = { p, max -> '+\n 'def currentTime = System.currentTimeMillis();' +\n 'if (_queryProgressTime && (currentTime - _queryProgressTime) < 1000) return;' +\n 'ensureProgressNode();' +\n 'if (_currentProgress.forceStopQuery) { throw new Error(\"Force Stop!\")};' +\n '_currentProgress.queryProgressMax = max; '+\n '_currentProgress.queryProgress = p; '+\n '_queryProgressTime = currentTime' +\n '};' +\n 'try { '\n var postfix = '\\n} catch(e) { g.getRawGraph().getMessageLog().logMessage(\"Error: \" + e); throw e } '+\n ' finally { '+\n 'if (_currentProgressEdge) { g.removeEdge(_currentProgressEdge) };' +\n 'if (_currentProgress) { g.removeVertex(_currentProgress) };' +\n 'g.getRawGraph().getMessageLog().logMessage(\"Finished \"+ _stamp+ \" \" + _queryName + \" in \" + (new Date().getTime() - _queryStart) + \"ms\") }'\n //\n\n str = this.getGlobalGroovyDefinitions() + str\n if (params && params.require) {\n params.require.each(function(ea) {\n var query = this.getQuery(ea);\n if (query) {\n str = \"\\n// REQUIRED \" + ea +\"\\n\"\n + query.query + \"\\n\" + str\n }\n }, this)\n }\n if (this.loggingEnabled)\n str = prefix + str + postfix\n var data = JSON.serialize({script: str, params: params})\n var webR = new WebResource(url)\n\n if (!sync) {\n webR.beAsync()\n lively.bindings.connect(webR, 'content', function(status){\n if (!webR.status || !webR.status.isDone()) return;\n if(webR.status.isSuccess()) {\n if (callback) {\n //alertOK(\"call callback\")\n callback(webR.content)\n } else\n this.onCypherQueryResult(webR.content)\n } else {\n if (callback) return callback(undefined, webR.content)\n try {\n var errorMsg = JSON.parse(webR.content)\n } catch(e) {\n // parse error\n }\n if (!errorMsg)\n this.log(\"query failed: \" + webR.content)\n else {\n // _lineOffset can be computed\n var offset = 109 // magic number, manually optained\n var lines = Strings.lines(str)\n Properties.own(errorMsg).each(function(ea) {\n if (ea == \"stacktrace\") {\n this.log(ea +\":\\n\"+ errorMsg[ea]\n .select(function(ea) { return ea.match(/_run_closure/) })\n .collect(function(ea) {\n var m = ea.match(/\\((.*)\\:(.*)\\)/)\n var line = Number(m[2]) - offset\n return \"Line \" + line + \"\\t\" + lines[Number(m[2]) -89]\n })\n .join(\"\\n \"))\n } else {\n this.log(ea +\":\\n\"+ errorMsg[ea])\n }\n }, this)\n }\n }\n }.bind(this), 'call')\n }\n\n if (!callback) {\n this.get(\"LoadingLabel\").setVisible(true)\n }\n this.log(\"start query\")\n webR.post(data, 'application/json')\n\n if (sync) {\n return webR.content\n }\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":3617},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3616":{"this":{"__isSmartRef__":true,"id":2390}},"3617":{"timestamp":{"__isSmartRef__":true,"id":3618},"user":"jenslincke","tags":["neo"]},"3618":{"isSerializedDate":true,"string":"Tue Aug 05 2014 18:47:46 GMT+0200 (W. Europe Summer Time)"},"3619":{"varMapping":{"__isSmartRef__":true,"id":3620},"source":"function evalQueryParams(queryObj) {\n try {\n var params = (queryObj.parameters && queryObj.parameters.length > 0 ) ? eval(\"(\" +queryObj.parameters +\")\") : {};\n params[\"_queryName\"] = queryObj.name\n params[\"_stamp\"] = new UUID().id + \" \" + new Date().format(\"yyyy-mm-dd HH:MM:ss\")\n return params\n } catch(e) {\n this.log(\"can not parse parameteers: \" + e)\n return\n }\n}","funcProperties":{"__isSmartRef__":true,"id":3621},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3620":{"this":{"__isSmartRef__":true,"id":2390}},"3621":{"timestamp":{"__isSmartRef__":true,"id":3622},"user":"jenslincke","tags":[]},"3622":{"isSerializedDate":true,"string":"Mon Sep 16 2013 18:07:21 GMT+0200 (W. Europe Summer Time)"},"3623":{"varMapping":{"__isSmartRef__":true,"id":3624},"source":"function createTextSizeVisualizationList() {\n var d3Panel = this.getD3Panel()\n var table = this.lastResult.data\n var columnNames = this.lastResult.columns\n var idIdx = this.findIdIndexAndUpdatePabel();\n if (idIdx == -1) return;\n\n var maxTextSize = 30;\n var minNumbers = this.minNumbersInTable(columnNames, table)\n var maxNumbers = this.maxNumbersInTable(columnNames, table)\n d3Panel.get('TextSizeFunctionList').setList(\n columnNames.select(function(ea, idx) {\n return maxNumbers[ea]\n }).collect(function(eaName) {\n return {\n string: eaName +\" \" + maxNumbers[eaName],\n value: function(d) {\n var row = table.detect(function(ea) {\n return ea[idIdx] == d.neoId })\n if (!row) return 12\n if (row.include(\"TOTAL\")) return 12\n var column = columnNames.indexOf(eaName)\n var n = new Number(row[column])\n return 4 + (Math.sqrt(n) / Math.sqrt(maxNumbers[eaName]) * maxTextSize)\n }\n }\n }))\n}","funcProperties":{"__isSmartRef__":true,"id":3625},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3624":{"this":{"__isSmartRef__":true,"id":2390}},"3625":{"timestamp":{"__isSmartRef__":true,"id":3626},"user":"jenslincke","tags":[]},"3626":{"isSerializedDate":true,"string":"Sat Sep 07 2013 14:27:58 GMT+0200 (W. Europe Summer Time)"},"3627":{"varMapping":{"__isSmartRef__":true,"id":3628},"source":"function gatherKnownNodeIds() {\n var obj = {}\n Properties.own(this)\n .select(function(ea) { return ea.match(/I[dD]/)})\n .select(function(ea) {\n return Object.isNumber(this[ea]) || Object.isString(this[ea])\n }, this)\n .each(function(ea) { obj[ea] = this[ea]}, this)\n return obj\n}","funcProperties":{"__isSmartRef__":true,"id":3629},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3628":{"this":{"__isSmartRef__":true,"id":2390}},"3629":{"timestamp":{"__isSmartRef__":true,"id":3630},"user":"jenslincke","tags":[]},"3630":{"isSerializedDate":true,"string":"Wed Aug 28 2013 18:29:02 GMT+0200 (W. Europe Summer Time)"},"3631":{"varMapping":{"__isSmartRef__":true,"id":3632},"source":"function saveKnownNodeIdsAs(name) {\n // this.saveKnownNodeIdsAs(\"LivelyKernelNeoDB01\")\n // this.saveKnownNodeIdsAs(\"data_2013-09-04\")\n // this.saveKnownNodeIdsAs(\"data_2013-09-06\")\n if (!this.knownNodeIds) this.knownNodeIds = {}\n this.knownNodeIds[name] = this.gatherKnownNodeIds()\n\n}","funcProperties":{"__isSmartRef__":true,"id":3633},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3632":{"this":{"__isSmartRef__":true,"id":2390}},"3633":{"timestamp":{"__isSmartRef__":true,"id":3634},"user":"jenslincke","tags":["store"]},"3634":{"isSerializedDate":true,"string":"Fri Sep 06 2013 22:34:21 GMT+0200 (W. Europe Summer Time)"},"3635":{"varMapping":{"__isSmartRef__":true,"id":3636},"source":"function loadKnownNodeIds(name) {\n // this.loadKnownNodeIds(\"LastIds\")\n if (!this.knownNodeIds || !this.knownNodeIds[name]) throw \"nothing to load known ids from\"\n\n var ids = this.knownNodeIds[name]\n Object.extend(this, ids)\n\n}","funcProperties":{"__isSmartRef__":true,"id":3637},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3636":{"this":{"__isSmartRef__":true,"id":2390}},"3637":{"timestamp":{"__isSmartRef__":true,"id":3638},"user":"jenslincke","tags":["reset"]},"3638":{"isSerializedDate":true,"string":"Wed Aug 28 2013 18:37:01 GMT+0200 (W. Europe Summer Time)"},"3639":{"varMapping":{"__isSmartRef__":true,"id":3640},"source":"function resetKnownNodeIds() {\n\n var ids = this.gatherKnownNodeIds()\n\n Properties.own(ids).each(function(ea) {\n alert(\"deleted id: \" + ea + \" \" + this[ea])\n delete this[ea]\n }, this)\n \n delete this.objectRootNode\n delete this.testObjectRootNode\n delete this.neoLogNode\n delete this.rootNode\n this.getAllIds()\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":3641},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3640":{"this":{"__isSmartRef__":true,"id":2390}},"3641":{"timestamp":{"__isSmartRef__":true,"id":3642},"user":"jenslincke","tags":["reset"]},"3642":{"isSerializedDate":true,"string":"Fri Sep 06 2013 22:42:44 GMT+0200 (W. Europe Summer Time)"},"3643":{"varMapping":{"__isSmartRef__":true,"id":3644},"source":"function getRootNode() {\n // this.getRootNode()\n if (this.rootNode) {\n return this.rootNode\n } if (!this.rootId) {\n this.rootNode = this.db.node({ name: 'LivelyRoot', type: \"Root\"});\n this.rootId = this.rootNode.getId()\n } else {\n this.rootNode = this.db.node(this.rootId)\n }\n return this.rootNode\n}","funcProperties":{"__isSmartRef__":true,"id":3645},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3644":{"this":{"__isSmartRef__":true,"id":2390}},"3645":{"timestamp":{"__isSmartRef__":true,"id":3646},"user":"jenslincke","tags":[]},"3646":{"isSerializedDate":true,"string":"Wed Aug 28 2013 18:51:37 GMT+0200 (W. Europe Summer Time)"},"3647":{"varMapping":{"__isSmartRef__":true,"id":3648},"source":"function getGlobalGroovyDefinitions() {\n // Just a hack!!! Lets get going!\n var globalDefintions = \"\"\n var globalIncludeQuery = this.getQuery(\"GroovyGlobalInclude\")\n if (globalIncludeQuery) globalDefintions = globalIncludeQuery.query + \"\\n\"\n return globalDefintions\n}","funcProperties":{"__isSmartRef__":true,"id":3649},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3648":{"this":{"__isSmartRef__":true,"id":2390}},"3649":{"timestamp":{"__isSmartRef__":true,"id":3650},"user":"jenslincke","tags":[]},"3650":{"isSerializedDate":true,"string":"Thu Aug 29 2013 11:54:43 GMT+0200 (W. Europe Summer Time)"},"3651":{"varMapping":{"__isSmartRef__":true,"id":3652},"source":"function ensureObjectNodeOld(object, url, rev, rootID) {\n\n // url = \"http://lively-kernel.org/repository/webwerkstatt/users/jenslincke/draft/empty.xhtml\"\n // this.ensureWorldNode(null, url, 123)\n if (!url) throw \"parameter missing, url is needed\";\n if (!rev) throw \"parameter missing, rev is needed\";\n \n url = new URL(url)\n\n var objectName = url.filename().replace(/\\.(x?html)|(json)$/,\"\")\n\n rootID = rootID || this.objectRootNodeID; \n var objectNode = this.getObjectFromURLAndRev(url, rev, rootID);\n if (!objectNode ) {\n objectNode = this.db.node({name: objectName, type: 'LivelyObject'})\n var r = this.db.relationship(rootID, 'LivelyObject', objectNode, \n {url: ''+ url, rev: rev});\n this.addObjectAndReferences(object, objectNode)\n }\n return objectNode \n}","funcProperties":{"__isSmartRef__":true,"id":3653},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3652":{"this":{"__isSmartRef__":true,"id":2390}},"3653":{"timestamp":{"__isSmartRef__":true,"id":3654},"user":"jenslincke","tags":[]},"3654":{"isSerializedDate":true,"string":"Tue Sep 03 2013 17:00:27 GMT+0200 (W. Europe Summer Time)"},"3655":{"varMapping":{"__isSmartRef__":true,"id":3656},"source":"function serializeObject(obj) {\n // obj = this.target\n var serializer = lively.persistence.Serializer.createObjectGraphLinearizerForCopy();\n serializer.showLog = true;\n var copyPlugin = new CopyOnlySubmorphsPlugin();\n copyPlugin.root = obj;\n serializer.addPlugin(copyPlugin);\n return serializer.serializeToJso(obj)\n \n}","funcProperties":{"__isSmartRef__":true,"id":3657},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3656":{"this":{"__isSmartRef__":true,"id":2390}},"3657":{"timestamp":{"__isSmartRef__":true,"id":3658},"user":"jenslincke","tags":[]},"3658":{"isSerializedDate":true,"string":"Wed Sep 04 2013 11:24:26 GMT+0200 (W. Europe Summer Time)"},"3659":{"varMapping":{"__isSmartRef__":true,"id":3660},"source":"function getAllIds() {\n this.getRootNode().getId()\n this.getObjectRoot().getId()\n this.getTestObjectRoot().getId()\n this.getNeoLog().getId()\n}","funcProperties":{"__isSmartRef__":true,"id":3661},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3660":{"this":{"__isSmartRef__":true,"id":2390}},"3661":{"timestamp":{"__isSmartRef__":true,"id":3662},"user":"jenslincke","tags":[]},"3662":{"isSerializedDate":true,"string":"Fri Sep 06 2013 22:40:54 GMT+0200 (W. Europe Summer Time)"},"3663":{"varMapping":{"__isSmartRef__":true,"id":3664},"source":"function extractNodes() {\n if((this.lastResult.columns[0] == \"id\")) {\n var nodes = this.lastResult.data.collect(function(ea){\n return this.db.node(ea[0])\n }, this)\n }\n this.lastNodes = nodes;\n return nodes\n}","funcProperties":{"__isSmartRef__":true,"id":3665},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3664":{"this":{"__isSmartRef__":true,"id":2390}},"3665":{"timestamp":{"__isSmartRef__":true,"id":3666},"user":"jenslincke","tags":[]},"3666":{"isSerializedDate":true,"string":"Sun Sep 08 2013 13:41:08 GMT+0200 (W. Europe Summer Time)"},"3667":{"varMapping":{"__isSmartRef__":true,"id":3668},"source":"function log(s) {\n if (this.loggingEnabled) {\n var log = this.get(\"Status\");\n if (log) log.log(s)\n else alertOK(s)\n }\n}","funcProperties":{"__isSmartRef__":true,"id":3669},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3668":{"this":{"__isSmartRef__":true,"id":2390}},"3669":{"timestamp":{"__isSmartRef__":true,"id":3670},"user":"jenslincke","tags":["log"]},"3670":{"isSerializedDate":true,"string":"Wed Sep 11 2013 19:13:02 GMT+0200 (W. Europe Summer Time)"},"3671":{"varMapping":{"__isSmartRef__":true,"id":3672},"source":"function enableLogging() {\n this.loggingEnabled = true\n}","funcProperties":{"__isSmartRef__":true,"id":3673},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3672":{"this":{"__isSmartRef__":true,"id":2390}},"3673":{"timestamp":{"__isSmartRef__":true,"id":3674},"user":"jenslincke","tags":[]},"3674":{"isSerializedDate":true,"string":"Wed Sep 11 2013 19:13:15 GMT+0200 (W. Europe Summer Time)"},"3675":{"varMapping":{"__isSmartRef__":true,"id":3676},"source":"function disableLogging() {\n this.loggingEnabled = false\n}","funcProperties":{"__isSmartRef__":true,"id":3677},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3676":{"this":{"__isSmartRef__":true,"id":2390}},"3677":{"timestamp":{"__isSmartRef__":true,"id":3678},"user":"jenslincke","tags":[]},"3678":{"isSerializedDate":true,"string":"Wed Sep 11 2013 19:13:26 GMT+0200 (W. Europe Summer Time)"},"3679":{"submorphs":[],"scripts":[],"id":"C42BE29F-75B5-4B6D-99C4-9AF060B472A0","shape":{"__isSmartRef__":true,"id":3680},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"SplitterMorph4","partsBinMetaInfo":{"__isSmartRef__":true,"id":3681},"eventHandler":{"__isSmartRef__":true,"id":3702},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","ED38E7CF-DBF8-44F7-8FCD-44556A95F525","2837627B-B301-45E3-BE2F-AE809626DE89","43E4DB05-C44F-44CB-A54B-72C9636B3396","D4A35074-DDE1-4EB5-AA93-C43A119497EB","3554E5D2-3507-46E8-8FC7-402B000900C1","FF4CA471-F3FC-4C3E-94C2-92DC536364F4","BD2AB819-C508-48C8-BE31-6BB56B760BEC","CB04A2D9-EF71-406F-B2DB-D7509C402289","27FE873A-73C9-4766-9F34-563A4F711F1E"],"partTests":{"__isSmartRef__":true,"id":3703},"_ClipMode":"visible","moved":true,"layout":{"__isSmartRef__":true,"id":3708},"isBeingDragged":false,"originalTargetExtent":null,"morphA":null,"morphB":null,"originalMorphAExtent":null,"originalMorphBExtent":null,"prevScroll":[0,0],"grabbingEnabled":false,"draggingEnabled":true,"owner":{"__isSmartRef__":true,"id":1},"_Rotation":0,"_Scale":0.9803921568627452,"__serializedExpressions__":["_Position","distanceToDragEvent","dragStartPoint","originalMorphBPosition"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3709},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(1345.1,927.7)","distanceToDragEvent":"lively.pt(36.3,-14.5)","dragStartPoint":"lively.pt(1005.0,682.0)","originalMorphBPosition":"lively.pt(10.0,895.0)"},"3680":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":0.5557,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(24.1,54.3)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(167,167,173)","_Padding":"lively.rect(0,0,0,0)"},"3681":{"partsSpaceName":"PartsBin/Widgets/","comment":"A splitter, that exchanges the extent from two morphs.... ok, hard to describe. It's just a splitter.\n\nInspired by the resize corner, it latebinds into the ui, by placing it ontop two adjacent morphs.","migrationLevel":4,"partName":"SplitterMorph","changes":[{"__isSmartRef__":true,"id":3682},{"__isSmartRef__":true,"id":3684},{"__isSmartRef__":true,"id":3686},{"__isSmartRef__":true,"id":3688},{"__isSmartRef__":true,"id":3690},{"__isSmartRef__":true,"id":3692},{"__isSmartRef__":true,"id":3694},{"__isSmartRef__":true,"id":3696},{"__isSmartRef__":true,"id":3698},{"__isSmartRef__":true,"id":3700}],"revisionOnLoad":184652,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"3682":{"date":{"__isSmartRef__":true,"id":3683},"author":"jenslincke","message":"no comment","id":"3FF2C8E3-9B5C-4846-B328-5B9DE699E342"},"3683":{"isSerializedDate":true,"string":"Thu Nov 22 2012 14:01:17 GMT+0100 (W. Europe Standard Time)"},"3684":{"date":{"__isSmartRef__":true,"id":3685},"author":"jenslincke","message":"no comment","id":"4D8DFE4C-2980-4B5F-A1E9-E4C650CBA0C6"},"3685":{"isSerializedDate":true,"string":"Thu Nov 22 2012 14:01:14 GMT+0100 (W. Europe Standard Time)"},"3686":{"date":{"__isSmartRef__":true,"id":3687},"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205"},"3687":{"isSerializedDate":true,"string":"Thu Nov 22 2012 10:35:51 GMT+0100 (W. Europe Standard Time)"},"3688":{"date":{"__isSmartRef__":true,"id":3689},"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8"},"3689":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"3690":{"date":{"__isSmartRef__":true,"id":3691},"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350"},"3691":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"3692":{"date":{"__isSmartRef__":true,"id":3693},"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7"},"3693":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"3694":{"date":{"__isSmartRef__":true,"id":3695},"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B"},"3695":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"3696":{"date":{"__isSmartRef__":true,"id":3697},"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2"},"3697":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"3698":{"date":{"__isSmartRef__":true,"id":3699},"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC"},"3699":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"3700":{"date":{"__isSmartRef__":true,"id":3701},"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23"},"3701":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"3702":{"morph":{"__isSmartRef__":true,"id":3679},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3703":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3704}},"3704":{"test01IsMorph":{"__isSmartRef__":true,"id":3705}},"3705":{"varMapping":{"__isSmartRef__":true,"id":3706},"source":"function test01IsMorph(aPart) {\n this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":3707},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3706":{"this":{"__isSmartRef__":true,"id":3703}},"3707":{},"3708":{"moveVertical":false,"moveHorizontal":true},"3709":{"onDrag":{"__isSmartRef__":true,"id":3710},"onDragEnd":{"__isSmartRef__":true,"id":3718},"onDragStart":{"__isSmartRef__":true,"id":3726},"getSiblingsAtCorner":{"__isSmartRef__":true,"id":3734}},"3710":{"varMapping":{"__isSmartRef__":true,"id":3711},"source":"function onDrag(evt) {\n var moveDelta = evt.mousePoint.subPt(this.dragStartPoint)\n\n moveDelta.x = 0;\n if (!this.morphA || !this.morphB) return;\n \n var newExtent = this.originalMorphAExtent.addPt(moveDelta);\n this.morphA.setExtent(newExtent);\n\n this.morphB.setPosition(this.originalMorphBPosition.addPt(moveDelta));\n moveDelta.y = - moveDelta.y;\n this.morphB.setExtent(this.originalMorphBExtent.addPt(moveDelta));\n\n this.setBounds(\n rect(this.morphA.bounds().bottomRight().subPt(pt(20,20)),\n this.morphB.bounds().topRight().addPt(pt(0,20))));\n\n this.setExtent(pt(this.getExtent().x, Math.max(this.getExtent().y, 20)))\n\n}","funcProperties":{"__isSmartRef__":true,"id":3716},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3711":{"this":{"__isSmartRef__":true,"id":3679},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3712}},"3712":{"$super":{"__isSmartRef__":true,"id":3713}},"3713":{"varMapping":{"__isSmartRef__":true,"id":3714},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":3715},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3714":{"obj":{"__isSmartRef__":true,"id":3679},"name":"onDrag"},"3715":{},"3716":{"timestamp":{"__isSmartRef__":true,"id":3717},"user":"jenslincke","tags":[]},"3717":{"isSerializedDate":true,"string":"Thu Nov 22 2012 13:58:16 GMT+0100 (W. Europe Standard Time)"},"3718":{"varMapping":{"__isSmartRef__":true,"id":3719},"source":"function onDragEnd(evt) {\n this.morphA = null;\n this.morphB = null;\n this.originalMorphAExtent = null;\n this.originalMorphBExtent = null;\n}","funcProperties":{"__isSmartRef__":true,"id":3724},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3719":{"this":{"__isSmartRef__":true,"id":3679},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3720}},"3720":{"$super":{"__isSmartRef__":true,"id":3721}},"3721":{"varMapping":{"__isSmartRef__":true,"id":3722},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":3723},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3722":{"obj":{"__isSmartRef__":true,"id":3679},"name":"onDragEnd"},"3723":{},"3724":{"timestamp":{"__isSmartRef__":true,"id":3725},"user":"jenslincke","tags":[]},"3725":{"isSerializedDate":true,"string":"Thu Nov 22 2012 12:32:59 GMT+0100 (W. Europe Standard Time)"},"3726":{"varMapping":{"__isSmartRef__":true,"id":3727},"source":"function onDragStart(evt) {\n this.dragStartPoint = evt.mousePoint;\n this.morphA = this.getSiblingsAtCorner(\"topLeft\")[0]\n this.morphB = this.getSiblingsAtCorner(\"bottomLeft\")[0]\n\n if (!this.morphA || !this.morphB) return;\n\n this.originalMorphAExtent = this.morphA.getExtent();\n this.originalMorphBExtent = this.morphB.getExtent();\n this.originalMorphBPosition = this.morphB.getPosition();\n\n}","funcProperties":{"__isSmartRef__":true,"id":3732},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3727":{"this":{"__isSmartRef__":true,"id":3679},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3728}},"3728":{"$super":{"__isSmartRef__":true,"id":3729}},"3729":{"varMapping":{"__isSmartRef__":true,"id":3730},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":3731},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3730":{"obj":{"__isSmartRef__":true,"id":3679},"name":"onDragStart"},"3731":{},"3732":{"timestamp":{"__isSmartRef__":true,"id":3733},"user":"jenslincke","tags":[]},"3733":{"isSerializedDate":true,"string":"Thu Nov 22 2012 13:44:37 GMT+0100 (W. Europe Standard Time)"},"3734":{"varMapping":{"__isSmartRef__":true,"id":3735},"source":"function getSiblingsAtCorner(corner) {\n // this.getSiblingsAtCorner(\"topLeft\")\n var p = this.bounds()[corner]()\n var self= this;\n return this.owner.submorphs.select(function(ea) {\n return (ea !== self) && ea.bounds().containsPoint(p)\n })\n}","funcProperties":{"__isSmartRef__":true,"id":3736},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3735":{"this":{"__isSmartRef__":true,"id":3679}},"3736":{"timestamp":{"__isSmartRef__":true,"id":3737},"user":"jenslincke","tags":[]},"3737":{"isSerializedDate":true,"string":"Thu Nov 22 2012 12:28:43 GMT+0100 (W. Europe Standard Time)"},"3738":{"_BorderWidth":1.332,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"_StrokeOpacity":1,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1379.2,2677.7)","_BorderColor":"Color.rgb(166,166,166)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"3739":{"partsSpaceName":"PartsBin/Jens","comment":"Analyse World's contents. ","migrationLevel":4,"partName":"WorldAnalysis","changes":[{"__isSmartRef__":true,"id":3740},{"__isSmartRef__":true,"id":3742},{"__isSmartRef__":true,"id":3744},{"__isSmartRef__":true,"id":3746},{"__isSmartRef__":true,"id":3748},{"__isSmartRef__":true,"id":3750},{"__isSmartRef__":true,"id":3752},{"__isSmartRef__":true,"id":3754},{"__isSmartRef__":true,"id":3756},{"__isSmartRef__":true,"id":3758},{"__isSmartRef__":true,"id":3760},{"__isSmartRef__":true,"id":3762},{"__isSmartRef__":true,"id":3764},{"__isSmartRef__":true,"id":3766},{"__isSmartRef__":true,"id":3768},{"__isSmartRef__":true,"id":3770},{"__isSmartRef__":true,"id":3772},{"__isSmartRef__":true,"id":3774},{"__isSmartRef__":true,"id":3776},{"__isSmartRef__":true,"id":3778},{"__isSmartRef__":true,"id":3780},{"__isSmartRef__":true,"id":3782},{"__isSmartRef__":true,"id":3784},{"__isSmartRef__":true,"id":3786}],"lastModifiedDate":{"__isSmartRef__":true,"id":3788},"revisionOnLoad":207946,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"3740":{"date":{"__isSmartRef__":true,"id":3741},"author":"SAPLivelyScreen","message":"no comment","id":"7A44D8CA-6D5F-42A3-A4B4-4D7F51EECA52"},"3741":{"isSerializedDate":true,"string":"Tue Jun 18 2013 20:49:27 GMT+0200 (W. Europe Summer Time)"},"3742":{"date":{"__isSmartRef__":true,"id":3743},"author":"SAPLivelyScreen","message":"no comment","id":"EF145198-0649-41BD-A92E-521D98FEC49D"},"3743":{"isSerializedDate":true,"string":"Thu May 30 2013 00:36:50 GMT+0200 (W. Europe Summer Time)"},"3744":{"date":{"__isSmartRef__":true,"id":3745},"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20"},"3745":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:47:05 GMT+0100 (W. Europe Standard Time)"},"3746":{"date":{"__isSmartRef__":true,"id":3747},"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2"},"3747":{"isSerializedDate":true,"string":"Fri Jan 18 2013 16:42:31 GMT+0100 (W. Europe Standard Time)"},"3748":{"date":{"__isSmartRef__":true,"id":3749},"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205"},"3749":{"isSerializedDate":true,"string":"Thu Nov 22 2012 10:35:51 GMT+0100 (W. Europe Standard Time)"},"3750":{"date":{"__isSmartRef__":true,"id":3751},"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8"},"3751":{"isSerializedDate":true,"string":"Mon Jun 18 2012 19:35:08 GMT+0200 (W. Europe Summer Time)"},"3752":{"date":{"__isSmartRef__":true,"id":3753},"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350"},"3753":{"isSerializedDate":true,"string":"Mon Apr 09 2012 13:42:07 GMT+0200 (W. Europe Summer Time)"},"3754":{"date":{"__isSmartRef__":true,"id":3755},"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7"},"3755":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:42:26 GMT+0100 (W. Europe Standard Time)"},"3756":{"date":{"__isSmartRef__":true,"id":3757},"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B"},"3757":{"isSerializedDate":true,"string":"Sat Feb 25 2012 02:59:09 GMT+0100 (W. Europe Standard Time)"},"3758":{"date":{"__isSmartRef__":true,"id":3759},"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2"},"3759":{"isSerializedDate":true,"string":"Wed Mar 14 2012 10:53:45 GMT+0100 (W. Europe Standard Time)"},"3760":{"date":{"__isSmartRef__":true,"id":3761},"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC"},"3761":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:30 GMT+0200 (W. Europe Summer Time)"},"3762":{"date":{"__isSmartRef__":true,"id":3763},"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23"},"3763":{"isSerializedDate":true,"string":"Thu May 03 2012 15:51:36 GMT+0200 (W. Europe Summer Time)"},"3764":{"date":{"__isSmartRef__":true,"id":3765},"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8"},"3765":{"isSerializedDate":true,"string":"Wed Jan 23 2013 12:57:18 GMT+0100 (W. Europe Standard Time)"},"3766":{"date":{"__isSmartRef__":true,"id":3767},"author":"robertkrahn","message":"no comment","id":"67FD74CD-7AE4-4050-ADC7-4DF73804258D"},"3767":{"isSerializedDate":true,"string":"Thu May 30 2013 09:18:06 GMT+0200 (W. Europe Summer Time)"},"3768":{"date":{"__isSmartRef__":true,"id":3769},"author":"robertkrahn","message":"no comment","id":"FBBB9C99-B61C-4D5F-8750-6E2987DF0C9C"},"3769":{"isSerializedDate":true,"string":"Fri Jun 21 2013 00:16:24 GMT+0200 (W. Europe Summer Time)"},"3770":{"date":{"__isSmartRef__":true,"id":3771},"author":"jenslincke","message":"no comment","id":"CF5C4E9D-3F9B-4BE8-8A06-427A1C9DF610"},"3771":{"isSerializedDate":true,"string":"Mon Jul 08 2013 10:24:19 GMT+0200 (W. Europe Summer Time)"},"3772":{"date":{"__isSmartRef__":true,"id":3773},"author":"jenslincke","message":"some cleanups and faster neo graph parents finding","id":"13A72355-BEBB-4EF1-83FA-9ED10FEC8BC3"},"3773":{"isSerializedDate":true,"string":"Sun Aug 18 2013 01:27:33 GMT+0200 (W. Europe Summer Time)"},"3774":{"date":{"__isSmartRef__":true,"id":3775},"author":"jenslincke","message":"no comment","id":"BBB8AB9A-9298-469C-BB74-C168AF4CA257"},"3775":{"isSerializedDate":true,"string":"Sun Aug 18 2013 01:31:25 GMT+0200 (W. Europe Summer Time)"},"3776":{"date":{"__isSmartRef__":true,"id":3777},"author":"jenslincke","message":"no comment","id":"51B68DC3-3D26-4F9E-9F4F-2CC01147F9B1"},"3777":{"isSerializedDate":true,"string":"Tue Aug 20 2013 21:39:16 GMT+0200 (W. Europe Summer Time)"},"3778":{"date":{"__isSmartRef__":true,"id":3779},"author":"jenslincke","message":"no comment","id":"8D8B4B7B-E61D-487F-869F-3D0AE7026024"},"3779":{"isSerializedDate":true,"string":"Thu Aug 22 2013 16:08:49 GMT+0200 (W. Europe Summer Time)"},"3780":{"date":{"__isSmartRef__":true,"id":3781},"author":"jenslincke","message":"no comment","id":"3272384C-7AF6-45A0-8E46-4284ED56F234"},"3781":{"isSerializedDate":true,"string":"Fri Aug 23 2013 16:56:53 GMT+0200 (W. Europe Summer Time)"},"3782":{"date":{"__isSmartRef__":true,"id":3783},"author":"jenslincke","message":"Loading into Neo4J works again. Huge refactoring uses now a Gremlin / Groovy Query to upload worlds.","id":"2DB9C742-DAB2-45FC-9159-3AD6F0AD3870"},"3783":{"isSerializedDate":true,"string":"Thu Sep 05 2013 17:37:15 GMT+0200 (W. Europe Summer Time)"},"3784":{"date":{"__isSmartRef__":true,"id":3785},"author":"jenslincke","message":"no comment","id":"7F3A765C-8B90-47BE-91D9-1DBBCE1E0DFA"},"3785":{"isSerializedDate":true,"string":"Wed Oct 23 2013 15:45:53 GMT+0200 (W. Europe Summer Time)"},"3786":{"date":{"__isSmartRef__":true,"id":3787},"author":"jenslincke","message":"A working version... just to not only work on a page.","id":"6E543B56-39F3-4F8F-927F-D3A1F31FA382"},"3787":{"isSerializedDate":true,"string":"Wed Aug 06 2014 15:15:36 GMT+0200 (W. Europe Summer Time)"},"3788":{"isSerializedDate":true,"string":"Wed Aug 06 2014 15:13:56 GMT+0200 (W. Europe Summer Time)"},"3789":{"morph":{"__isSmartRef__":true,"id":1},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3790":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3791}},"3791":{"test01IsMorph":{"__isSmartRef__":true,"id":3792}},"3792":{"varMapping":{"__isSmartRef__":true,"id":3793},"source":"function test01IsMorph(aPart) {\n this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":3794},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3793":{"this":{"__isSmartRef__":true,"id":3790}},"3794":{},"3795":{"resizeWidth":true,"resizeHeight":true,"adjustForNewBounds":true,"__serializedExpressions__":["extentWithoutPlaceholder"],"extentWithoutPlaceholder":"lively.pt(1827.0,2299.3)"},"3796":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Marker.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3797":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Image.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3798":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/TransparentRectangle.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3799":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Editor.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3800":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/LineWithArrowOrange.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3801":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Ellipse.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3802":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/LineWithArrow.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3803":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Rectangle.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3804":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/ACar.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3805":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Notebook.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3806":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/LineWithArrows.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3807":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Pen.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3808":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Text.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3809":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Line.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3810":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Car.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3811":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Triangle.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3812":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Cloud.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3813":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/Star.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3814":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/PartsBin/Basic/PrimitiveShapes.json","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"3815":{"submorphs":[{"__isSmartRef__":true,"id":3816},{"__isSmartRef__":true,"id":3824}],"scripts":[],"shape":{"__isSmartRef__":true,"id":3862},"eventHandler":{"__isSmartRef__":true,"id":3863},"_ClipMode":"hidden","derivationIds":[],"id":"4AECD44F-2A22-4542-B914-BB734FA1D8F6","__layered_droppingEnabled__":true,"halosEnabled":true,"layout":{"__isSmartRef__":true,"id":3864},"progressMorph":{"__isSmartRef__":true,"id":3824},"labelBlack":{"__isSmartRef__":true,"id":3816},"labelWhite":{"__isSmartRef__":true,"id":3819},"value":0,"owner":null,"eventsAreIgnored":true,"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ProgressBar","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(1190.3,1191.2)"},"3816":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":3817},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":3844}],"eventHandler":{"__isSmartRef__":true,"id":3846},"_ClipMode":"hidden","derivationIds":[],"id":"F431E593-37D2-4223-8D6C-405760EEC261","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":false,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":11,"evalEnabled":false,"isLabel":true,"layout":{"__isSmartRef__":true,"id":3847},"_Align":"center","eventsAreIgnored":true,"owner":{"__isSmartRef__":true,"id":3815},"attributeConnections":[{"__isSmartRef__":true,"id":3832},{"__isSmartRef__":true,"id":3848},{"__isSmartRef__":true,"id":3849},{"__isSmartRef__":true,"id":3851}],"doNotSerialize":["$$_Position"],"doNotCopyProperties":["$$_Position"],"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)","_Position":"lively.pt(0.0,4.0)"},"3817":{"_BorderWidth":0,"_Fill":null,"attributeConnections":[{"__isSmartRef__":true,"id":3818},{"__isSmartRef__":true,"id":3833}],"doNotSerialize":["$$_Extent"],"doNotCopyProperties":["$$_Extent"],"__serializedExpressions__":["_Position","_Padding","_BorderColor","_Extent"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(0,0,0)","_Extent":"lively.pt(800.0,22.0)"},"3818":{"sourceObj":{"__isSmartRef__":true,"id":3817},"sourceAttrName":"_Extent","targetObj":{"__isSmartRef__":true,"id":3819},"targetMethodName":"setExtent","varMapping":{"__isSmartRef__":true,"id":3831},"dependedBy":{"__isSmartRef__":true,"id":3832},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3819":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":3820},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":3821}],"eventHandler":{"__isSmartRef__":true,"id":3823},"_ClipMode":"hidden","derivationIds":[],"id":"0506F4EF-7817-45AB-9EB3-B911EEEE00F5","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":false,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":11,"evalEnabled":false,"isLabel":true,"_Align":"center","eventsAreIgnored":true,"owner":{"__isSmartRef__":true,"id":3824},"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(255,255,255)","_Position":"lively.pt(0.0,4.0)"},"3820":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(800.0,22.0)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"3821":{"style":{"__isSmartRef__":true,"id":3822},"chunkOwner":{"__isSmartRef__":true,"id":3819},"_id":"_22303","storedString":"load http://lively-kernel.org/repository/webwerkstatt/users/jenslincke/thesis/presentations/test.xhtml rev 198638","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"3822":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"3823":{"morph":{"__isSmartRef__":true,"id":3819},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3824":{"submorphs":[{"__isSmartRef__":true,"id":3819}],"scripts":[],"shape":{"__isSmartRef__":true,"id":3825},"eventHandler":{"__isSmartRef__":true,"id":3829},"_ClipMode":"hidden","derivationIds":[],"id":"8E0EE2AC-52B5-4155-800E-88E5A8622898","__layered_droppingEnabled__":true,"halosEnabled":true,"owner":{"__isSmartRef__":true,"id":3815},"layout":{"__isSmartRef__":true,"id":3830},"eventsAreIgnored":true,"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,0.0)"},"3825":{"_BorderWidth":1,"_Fill":{"__isSmartRef__":true,"id":3826},"_BorderRadius":"5px 0px 0px 5px","__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(0.0,30.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(170,170,170)"},"3826":{"stops":[{"__isSmartRef__":true,"id":3827},{"__isSmartRef__":true,"id":3828}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"3827":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(223,223,223)"},"3828":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(204,204,204)"},"3829":{"morph":{"__isSmartRef__":true,"id":3824},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3830":{"scaleHorizontal":true,"scaleVertical":true},"3831":{"source":{"__isSmartRef__":true,"id":3817},"target":{"__isSmartRef__":true,"id":3819}},"3832":{"sourceObj":{"__isSmartRef__":true,"id":3816},"sourceAttrName":"extent","targetObj":{"__isSmartRef__":true,"id":3819},"targetMethodName":"setExtent","dependendConnections":[{"__isSmartRef__":true,"id":3818},{"__isSmartRef__":true,"id":3833}],"attributeConnections":[{"__isSmartRef__":true,"id":3835},{"__isSmartRef__":true,"id":3837},{"__isSmartRef__":true,"id":3839},{"__isSmartRef__":true,"id":3841}],"doNotSerialize":["$$converterString","$$updaterString","$$varMapping"],"doNotCopyProperties":["$$converterString","$$updaterString","$$varMapping"],"varMapping":{"__isSmartRef__":true,"id":3843},"__LivelyClassName__":"lively.morphic.GeometryConnection","__SourceModuleName__":"Global.lively.bindings.GeometryBindings"},"3833":{"sourceObj":{"__isSmartRef__":true,"id":3817},"sourceAttrName":"_Extent","targetObj":{"__isSmartRef__":true,"id":3832},"targetMethodName":"update","varMapping":{"__isSmartRef__":true,"id":3834},"dependedBy":{"__isSmartRef__":true,"id":3832},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3834":{"source":{"__isSmartRef__":true,"id":3817},"target":{"__isSmartRef__":true,"id":3832}},"3835":{"sourceObj":{"__isSmartRef__":true,"id":3832},"sourceAttrName":"converterString","targetObj":{"__isSmartRef__":true,"id":3818},"targetMethodName":"setConverter","varMapping":{"__isSmartRef__":true,"id":3836},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3836":{"source":{"__isSmartRef__":true,"id":3832},"target":{"__isSmartRef__":true,"id":3818}},"3837":{"sourceObj":{"__isSmartRef__":true,"id":3832},"sourceAttrName":"updaterString","targetObj":{"__isSmartRef__":true,"id":3818},"targetMethodName":"setUpdater","varMapping":{"__isSmartRef__":true,"id":3838},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3838":{"source":{"__isSmartRef__":true,"id":3832},"target":{"__isSmartRef__":true,"id":3818}},"3839":{"sourceObj":{"__isSmartRef__":true,"id":3832},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":3818},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":3840},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3840":{"source":{"__isSmartRef__":true,"id":3832},"target":{"__isSmartRef__":true,"id":3818}},"3841":{"sourceObj":{"__isSmartRef__":true,"id":3832},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":3833},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":3842},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3842":{"source":{"__isSmartRef__":true,"id":3832},"target":{"__isSmartRef__":true,"id":3833}},"3843":{"source":{"__isSmartRef__":true,"id":3816},"target":{"__isSmartRef__":true,"id":3819}},"3844":{"style":{"__isSmartRef__":true,"id":3845},"chunkOwner":{"__isSmartRef__":true,"id":3816},"_id":"_22302","storedString":"load http://lively-kernel.org/repository/webwerkstatt/users/jenslincke/thesis/presentations/test.xhtml rev 198638","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"3845":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"3846":{"morph":{"__isSmartRef__":true,"id":3816},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3847":{"scaleHorizontal":true,"centeredVertical":true},"3848":{"sourceObj":{"__isSmartRef__":true,"id":3816},"sourceAttrName":"position","targetObj":{"__isSmartRef__":true,"id":3819},"targetMethodName":"setPosition","dependendConnections":[{"__isSmartRef__":true,"id":3849},{"__isSmartRef__":true,"id":3851}],"attributeConnections":[{"__isSmartRef__":true,"id":3853},{"__isSmartRef__":true,"id":3855},{"__isSmartRef__":true,"id":3857},{"__isSmartRef__":true,"id":3859}],"doNotSerialize":["$$converterString","$$updaterString","$$varMapping"],"doNotCopyProperties":["$$converterString","$$updaterString","$$varMapping"],"varMapping":{"__isSmartRef__":true,"id":3861},"__LivelyClassName__":"lively.morphic.GeometryConnection","__SourceModuleName__":"Global.lively.bindings.GeometryBindings"},"3849":{"sourceObj":{"__isSmartRef__":true,"id":3816},"sourceAttrName":"_Position","targetObj":{"__isSmartRef__":true,"id":3819},"targetMethodName":"setPosition","varMapping":{"__isSmartRef__":true,"id":3850},"dependedBy":{"__isSmartRef__":true,"id":3848},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3850":{"source":{"__isSmartRef__":true,"id":3816},"target":{"__isSmartRef__":true,"id":3819}},"3851":{"sourceObj":{"__isSmartRef__":true,"id":3816},"sourceAttrName":"_Position","targetObj":{"__isSmartRef__":true,"id":3848},"targetMethodName":"update","varMapping":{"__isSmartRef__":true,"id":3852},"dependedBy":{"__isSmartRef__":true,"id":3848},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3852":{"source":{"__isSmartRef__":true,"id":3816},"target":{"__isSmartRef__":true,"id":3848}},"3853":{"sourceObj":{"__isSmartRef__":true,"id":3848},"sourceAttrName":"converterString","targetObj":{"__isSmartRef__":true,"id":3849},"targetMethodName":"setConverter","varMapping":{"__isSmartRef__":true,"id":3854},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3854":{"source":{"__isSmartRef__":true,"id":3848},"target":{"__isSmartRef__":true,"id":3849}},"3855":{"sourceObj":{"__isSmartRef__":true,"id":3848},"sourceAttrName":"updaterString","targetObj":{"__isSmartRef__":true,"id":3849},"targetMethodName":"setUpdater","varMapping":{"__isSmartRef__":true,"id":3856},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3856":{"source":{"__isSmartRef__":true,"id":3848},"target":{"__isSmartRef__":true,"id":3849}},"3857":{"sourceObj":{"__isSmartRef__":true,"id":3848},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":3849},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":3858},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3858":{"source":{"__isSmartRef__":true,"id":3848},"target":{"__isSmartRef__":true,"id":3849}},"3859":{"sourceObj":{"__isSmartRef__":true,"id":3848},"sourceAttrName":"varMapping","targetObj":{"__isSmartRef__":true,"id":3851},"targetMethodName":"varMapping","varMapping":{"__isSmartRef__":true,"id":3860},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3860":{"source":{"__isSmartRef__":true,"id":3848},"target":{"__isSmartRef__":true,"id":3851}},"3861":{"source":{"__isSmartRef__":true,"id":3816},"target":{"__isSmartRef__":true,"id":3819}},"3862":{"_BorderWidth":1,"_BorderRadius":5,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(800.0,30.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(170,170,170)","_Fill":"Color.rgb(255,255,255)"},"3863":{"morph":{"__isSmartRef__":true,"id":3815},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3864":{"adjustForNewBounds":true},"3865":{},"3866":{"onrestore":{"__isSmartRef__":true,"id":3867},"installLayers":{"__isSmartRef__":true,"id":3875},"createLayer":{"__isSmartRef__":true,"id":3879},"loadAll":{"__isSmartRef__":true,"id":3883},"updateProgress":{"__isSmartRef__":true,"id":3887},"finishLoading":{"__isSmartRef__":true,"id":3891},"reset":{"__isSmartRef__":true,"id":3895},"log":{"__isSmartRef__":true,"id":3899},"resetLog":{"__isSmartRef__":true,"id":3903},"stopLoading":{"__isSmartRef__":true,"id":3907},"update":{"__isSmartRef__":true,"id":3911},"loadAllURLs":{"__isSmartRef__":true,"id":3915},"loadURL":{"__isSmartRef__":true,"id":3919},"deserializeObjectFromJSON":{"__isSmartRef__":true,"id":3923},"continueLoading":{"__isSmartRef__":true,"id":3927},"onOnlyLoad":{"__isSmartRef__":true,"id":3931},"neoPane":{"__isSmartRef__":true,"id":3935},"loadLatestWebwerkstatt":{"__isSmartRef__":true,"id":3939},"getLatestRevisions":{"__isSmartRef__":true,"id":3943},"loadAllStepFilterLoadedAndContinue":{"__isSmartRef__":true,"id":3947},"fitToScreenBounds":{"__isSmartRef__":true,"id":3951},"layer":{"__isSmartRef__":true,"id":3955}},"3867":{"varMapping":{"__isSmartRef__":true,"id":3868},"source":"function onrestore() {\n this.installLayers()\n}","funcProperties":{"__isSmartRef__":true,"id":3873},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3868":{"this":{"__isSmartRef__":true,"id":1},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3869}},"3869":{"$super":{"__isSmartRef__":true,"id":3870}},"3870":{"varMapping":{"__isSmartRef__":true,"id":3871},"source":"function () {\n try {\n return obj.constructor.prototype[name].apply(obj, arguments)\n } catch (e) {\n if ($world)\n $world.logError(e, 'Error in $super call')\n else\n alert('Error in $super call: ' + e + '\\n' + e.stack);\n return null;\n }\n }","funcProperties":{"__isSmartRef__":true,"id":3872},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3871":{"obj":{"__isSmartRef__":true,"id":1},"name":"onrestore"},"3872":{},"3873":{"timestamp":{"__isSmartRef__":true,"id":3874},"user":"jenslincke","tags":[]},"3874":{"isSerializedDate":true,"string":"Wed Aug 28 2013 20:48:44 GMT+0200 (W. Europe Summer Time)"},"3875":{"varMapping":{"__isSmartRef__":true,"id":3876},"source":"function installLayers() {\n this.createLayer(\"ResizeLayer\", this).refineClass(lively.morphic.World, {\n onWindowResize: function(evt) {\n this.fitToScreenBounds();\n return cop.proceed(evt)\n }.bind(this),\n }).beGlobal()\n}","funcProperties":{"__isSmartRef__":true,"id":3877},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3876":{"this":{"__isSmartRef__":true,"id":1}},"3877":{"timestamp":{"__isSmartRef__":true,"id":3878},"user":"jenslincke","tags":[]},"3878":{"isSerializedDate":true,"string":"Wed Oct 23 2013 17:07:16 GMT+0200 (W. Europe Summer Time)"},"3879":{"varMapping":{"__isSmartRef__":true,"id":3880},"source":"function createLayer(layerName) {\n var context = this;\n this.doNotSerialize = this.doNotSerialize.concat([layerName]).uniq()\n return context[layerName] = cop.basicCreate(layerName, context);\n}","funcProperties":{"__isSmartRef__":true,"id":3881},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3880":{"this":{"__isSmartRef__":true,"id":1}},"3881":{"timestamp":{"__isSmartRef__":true,"id":3882},"user":"jenslincke","tags":[]},"3882":{"isSerializedDate":true,"string":"Wed Oct 23 2013 16:44:19 GMT+0200 (W. Europe Summer Time)"},"3883":{"varMapping":{"__isSmartRef__":true,"id":3884},"source":"function loadAll() {\n this.stopLoadingWorlds = false;\n this.startLoadingWorlds = Date.now();\n this.resetLog()\n var rootURL = this.get(\"TargetURL\").textString;\n var rootWR = new WebResource(rootURL)\n rootWR.beAsync()\n rootWR.getSubElements(5)\n \n var self = this;\n var time = Date.now();\n var work = {\n getURLs: function() {\n var urls = rootWR.subDocuments.collect(function(ea) { return ea.getURL()})\n self.urls = {}\n urls= urls.select(function(ea){\n return new URL(ea).filename().match(/\\.(xhtml)|(json)$/)\n })\n urls.each(function(ea) {\n self.urls[ea] = {loaded: false}\n }, this)\n self.log(\"\" + urls.length + \" urls to load in \" + ((Date.now() - time) / 1000) + \"s\")\n time = Date.now()\n\n connect(rootWR, 'versions', work, 'getRevisions')\n rootWR.getVersions()\n },\n getRevisions: function() {\n time = Date.now()\n var revisionCount = 0;\n rootWR.versions.each(function(ea) {\n var entry = self.urls[ea.url];\n if (entry) {\n if (!entry.revisions) entry.revisions = [];\n revisionCount++\n entry.revisions.push(String(ea.rev))\n }\n }.bind(this))\n self.log(\"\" + revisionCount + \" svn entries found (\" + ((Date.now() - time) / 1000) + \"s)\")\n self.log(Properties.own(self.urls).collect(function(ea) {\n return ea + \": \" + self.urls[ea].revisions\n }).join(\"\\n\"))\n self.loadAllStepFilterLoadedAndContinue();\n },\n }\n this.log(\"load urls\")\n connect(rootWR, 'subDocuments', work, 'getURLs')\n}","funcProperties":{"__isSmartRef__":true,"id":3885},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3884":{"this":{"__isSmartRef__":true,"id":1}},"3885":{"timestamp":{"__isSmartRef__":true,"id":3886},"user":"jenslincke","tags":[]},"3886":{"isSerializedDate":true,"string":"Wed Sep 18 2013 19:47:42 GMT+0200 (W. Europe Summer Time)"},"3887":{"varMapping":{"__isSmartRef__":true,"id":3888},"source":"function updateProgress() {\n \n this.get(\"ProgressBar\").setValue(\n Properties.own(this.urls).select(function(ea) { \n return this.urls[ea].loaded}.bind(this)).length\n / (Properties.own(this.urls).length || 1) )\n this.get(\"ProgressBar\").setLabel(\"\")\n \n this.get(\"ProgressBarInner\").setValue(0)\n this.get(\"ProgressBarInner\").setLabel(\"\")\n \n}","funcProperties":{"__isSmartRef__":true,"id":3889},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3888":{"this":{"__isSmartRef__":true,"id":1}},"3889":{"timestamp":{"__isSmartRef__":true,"id":3890},"user":"jenslincke","tags":[]},"3890":{"isSerializedDate":true,"string":"Mon Aug 19 2013 17:41:24 GMT+0200 (W. Europe Summer Time)"},"3891":{"varMapping":{"__isSmartRef__":true,"id":3892},"source":"function finishLoading() {\n var t = (Date.now() - this.startLoadingWorlds) / 1000;\n this.log(\"Finished loading \" + \n Properties.ownValues(this.urls).select(function(ea) {\n return ea.loaded\n }).length + \" urls \" + t +\"s\");\n this.onlyLoad = false \n}","funcProperties":{"__isSmartRef__":true,"id":3893},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3892":{"this":{"__isSmartRef__":true,"id":1}},"3893":{"timestamp":{"__isSmartRef__":true,"id":3894},"user":"jenslincke","tags":[]},"3894":{"isSerializedDate":true,"string":"Fri Aug 16 2013 09:02:11 GMT+0200 (W. Europe Summer Time)"},"3895":{"varMapping":{"__isSmartRef__":true,"id":3896},"source":"function reset() {\n this.doNotSerialize = ['urls']\n \n this.get(\"Status\").clear()\n this.get(\"ProgressBar\").setValue(0)\n}","funcProperties":{"__isSmartRef__":true,"id":3897},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3896":{"this":{"__isSmartRef__":true,"id":1}},"3897":{"timestamp":{"__isSmartRef__":true,"id":3898},"user":"jenslincke","tags":[]},"3898":{"isSerializedDate":true,"string":"Wed Oct 23 2013 16:43:33 GMT+0200 (W. Europe Summer Time)"},"3899":{"varMapping":{"__isSmartRef__":true,"id":3900},"source":"function log(s) {\n this.get(\"Status\").log(s)\n\n}","funcProperties":{"__isSmartRef__":true,"id":3901},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3900":{"this":{"__isSmartRef__":true,"id":1}},"3901":{"timestamp":{"__isSmartRef__":true,"id":3902},"user":"jenslincke","tags":[]},"3902":{"isSerializedDate":true,"string":"Thu Aug 15 2013 15:01:32 GMT+0200 (W. Europe Summer Time)"},"3903":{"varMapping":{"__isSmartRef__":true,"id":3904},"source":"function resetLog() {\n this.get(\"Status\").clear()\n}","funcProperties":{"__isSmartRef__":true,"id":3905},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3904":{"this":{"__isSmartRef__":true,"id":1}},"3905":{"timestamp":{"__isSmartRef__":true,"id":3906},"user":"jenslincke","tags":[]},"3906":{"isSerializedDate":true,"string":"Thu Aug 15 2013 15:01:43 GMT+0200 (W. Europe Summer Time)"},"3907":{"varMapping":{"__isSmartRef__":true,"id":3908},"source":"function stopLoading() {\n this.stopLoadingWorlds = true\n this.log(\"loading stopped\")\n}","funcProperties":{"__isSmartRef__":true,"id":3909},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3908":{"this":{"__isSmartRef__":true,"id":1}},"3909":{"timestamp":{"__isSmartRef__":true,"id":3910},"user":"jenslincke","tags":[]},"3910":{"isSerializedDate":true,"string":"Fri Jul 05 2013 11:55:40 GMT+0200 (W. Europe Summer Time)"},"3911":{"varMapping":{"__isSmartRef__":true,"id":3912},"source":"function update() {\n\n this.get(\"AnalysisPane\").update()\n\n \n}","funcProperties":{"__isSmartRef__":true,"id":3913},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3912":{"this":{"__isSmartRef__":true,"id":1}},"3913":{"timestamp":{"__isSmartRef__":true,"id":3914},"user":"jenslincke","tags":[]},"3914":{"isSerializedDate":true,"string":"Sun Sep 15 2013 16:08:44 GMT+0200 (W. Europe Summer Time)"},"3915":{"varMapping":{"__isSmartRef__":true,"id":3916},"source":"function loadAllURLs(urls, loadedURLsWithRev) {\n // worldOrPartURL = URL.root.withFilename(\"PartsBin/Basic/Rectangle.json\") \n if (!urls || urls.length == 0 || this.stopLoadingWorlds) {\n this.finishLoading()\n return\n }\n var worldOrPartURL = new URL(urls.pop());\n //this.loadAllVersions = true\n var revs = this.urls[worldOrPartURL].revisions\n\n var progressBar = this.get(\"ProgressBarInner\")\n if (loadedURLsWithRev) {\n var loadedRevs = loadedURLsWithRev.detect(function(ea) { return ea[0] == worldOrPartURL })\n if(loadedRevs){\n this.log(\"ignore \" + loadedRevs[1])\n revs = revs.withoutAll(loadedRevs[1])\n }\n }\n revs.doAndContinue(\n function(nextFunc, rev, idx) {\n this.log(\"___\")\n this.log(\"next: \" + worldOrPartURL+ \" rev \" + rev)\n progressBar.setValue(idx / revs.length)\n progressBar.setLabel(\"load \"+ worldOrPartURL+ \" rev \" + rev)\n\n var key = worldOrPartURL+ \"#\" + rev\n this.urls[key] = {loaded: false, rev: rev}\n if (this.stopLoadingWorlds) return\n this.loadURL(worldOrPartURL, rev, function(){\n this.log(\"loaded \" + worldOrPartURL.filename() + \" rev \" + rev +\" in \" + this.urls[key].loadTime + \"ms\");\n nextFunc()\n }.bind(this))\n }.bind(this),\n function(ea) {\n this.log(\"All revisions loaded\" + \"\\n\")\n if (!this.stopLoadingWorlds)\n this.urls[worldOrPartURL].loaded = true; // all revs are loaded\n this.updateProgress()\n this.loadAllURLs.curry(urls, loadedURLsWithRev).bind(this).delay(0.1)\n }.bind(this),\n this);\n\n\n}","funcProperties":{"__isSmartRef__":true,"id":3917},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3916":{"this":{"__isSmartRef__":true,"id":1}},"3917":{"timestamp":{"__isSmartRef__":true,"id":3918},"user":"jenslincke","tags":[]},"3918":{"isSerializedDate":true,"string":"Fri Sep 06 2013 20:48:52 GMT+0200 (W. Europe Summer Time)"},"3919":{"varMapping":{"__isSmartRef__":true,"id":3920},"source":"function loadURL(url, rev, callback) {\n if (this.stopLoadingWorlds) return;\n\n if (! new WebResource(url).exists()) {\n this.log(\"url \" + url + \" does not exist.\")\n return callback()\n }\n\n var key = url + (rev ? \"#\" + rev : \"\")\n url = new URL(url)\n var neo4JApp = this.neoPane();\n var isWorld = url.filename().match(/\\.xhtml$/)\n var isPart = url.filename().match(/\\.json$/)\n \n var startTime = Date.now()\n var continued = false;\n var continueFunc = callback.wrap(function(next){\n if (continued) {\n this.stopLoadingWorlds = true\n debugger\n throw \"Continue called twice!\"\n }\n continued = true;\n this.log(\"--> continue from \" + startTime)\n try {\n var log = Object.clone(this.urls[key])\n log.url = \"\"+ url;\n log.rev = rev;\n this.urls[key].loadTime = Date.now() - startTime;\r\n if(isWorld) log.msg = \"Loaded World\";\n if(isPart) log.msg = \"Loaded Part\";\n neo4JApp.addLog(log)\n }catch(e) {\n this.log(\"error logging to neo4J: \" + e)\n }\n next()\n }.bind(this))\n\n var obj\n var neo4JTime;\n var startTime = Date.now()\n\n var webR = new WebResource(url)\n webR.beAsync();\n var contentLoaded = false;\n var jsonExtractor = {\n continueAfterError: function(msg) {\r\n this.urls[key].error = msg\n this.log(\"Error in \" + url + \" \" + rev + \", but continue: \" + msg)\r\n continueFunc()\r\n }.bind(this),\r\n waitOnContent: function() {\n this.log(\"waitOnContent\")\n var status = webR.status;\n if (!status.isDone()) return\n this.log(\"done\")\n if (!status.isSuccess()) {\n return jsonExtractor.continueAfterError(\"Loading Error\" + status)\n }\n if (contentLoaded) {\n debugger // this should not happen\n throw \"Content Loaded Twice!\"\n }\n contentLoaded = true\n this.log(\"content loaded\")\n if (isWorld){\n if (!webR.contentDocument) {\n return jsonExtractor.continueAfterError(\"no document\")\n }\n jsonExtractor.extractFromWorld(webR.contentDocument)\n } else {\n if (!webR.content) {\r\n return jsonExtractor.continueAfterError(\"no content\")\r\n }\n jsonExtractor.parseJSON(webR.content)\n }\n }.bind(this),\n extractFromWorld: function(xml) {\n this.log(\"extract \" + url + \" \" + rev )\n try {\n var json = $(xml).find(\"#LivelyJSONWorld\").text()\n } catch(e) {\n this.urls[key].error = \"\" +e\n }\n if (json) {\n jsonExtractor.parseJSON(json)\n } else {\n jsonExtractor.continueAfterError(\"No JSON found in world!\")\n }\n }.bind(this),\n parseJSON: function parseJSON(json) {\n this.log(\"parseJSON \" + url + \" \" + rev)\n if(! json) {\n this.urls[key].error = \"No json could be extracted \";\n return continueFunc()\n }\n jsonExtractor.neoStartTime = Date.now()\n try {\n if (this.dryMode){ \n this.log(\"SIMULATE onNodeEnsured \" + url)\n jsonExtractor.onNodeEnsured.curry({}).delay(2)\n } else\n neo4JApp.ensureObjectNode(json, url, rev, undefined, jsonExtractor.onNodeEnsured)\n } catch(e){\n this.urls[key].neoError = \"\" + e\n continueFunc()\r\n }\n }.bind(this),\n onNodeEnsured: function onNodeEnsured(node, err) {\r\n this.log(\"onNodeEnsured\")\r\n if (! this.urls[key]) continueFunc()\r\n if (err) {\r\n this.urls[key].neoError = \"\"+JSON.serialize(err)\r\n if (this.continueOnErrorEnabled) {\n this.log(\"NeoError, but continue: \" + err)\n return continueFunc.delay(60 * 5) // wait 5mins after error before continueing\n }\n this.stopLoadingWorlds = true\n this.log(\"Stopped due to NeoError: \" + err)\n return // don't continue\n }\r\n if (node)\r\n this.urls[key].loaded = true;\r\n if (RobustDeserializionLayer.lastWarnings)\r\n this.urls[key].warnings = RobustDeserializionLayer.lastWarnings.collect(function(ea) { return \"\"+ea});\r\n this.urls[key].neo4JTime = Date.now() - jsonExtractor.neoStartTime;\r\n RobustDeserializionLayer.lastWarnings = []\r\n this.urls[key].log = JSON.serialize(this.get(\"Status\").logSnappshot())\r\n continueFunc()\r\n }.bind(this),\n }\n if (isWorld){\r\n lively.bindings.connect(webR ,'contentDocument', jsonExtractor, 'waitOnContent')\n } else {\r\n lively.bindings.connect(webR ,'content', jsonExtractor, 'waitOnContent')\r\n }\n\n webR.get(rev, undefined, webR.getURL()) // don't compute past url\n\n}","funcProperties":{"__isSmartRef__":true,"id":3921},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3920":{"this":{"__isSmartRef__":true,"id":1}},"3921":{"timestamp":{"__isSmartRef__":true,"id":3922},"user":"jenslincke","tags":[]},"3922":{"isSerializedDate":true,"string":"Sun Sep 15 2013 13:45:44 GMT+0200 (W. Europe Summer Time)"},"3923":{"varMapping":{"__isSmartRef__":true,"id":3924},"source":"function deserializeObjectFromJSON(json) {\n var jso = JSON.parse(json);\n var world;\n cop.withLayers([RobustDeserializionLayer], function() {\n var serializer = lively.persistence.Serializer.createObjectGraphLinearizer();\n serializer.plugins = serializer.plugins.reject(function(ea) {\n return ea instanceof StoreAndRestorePlugin })\n world = serializer.deserializeJso(jso);\n \n // world = lively.persistence.Serializer.deserializeWorldFromJso(jso)\n \n })\n return world\n}","funcProperties":{"__isSmartRef__":true,"id":3925},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3924":{"this":{"__isSmartRef__":true,"id":1}},"3925":{"timestamp":{"__isSmartRef__":true,"id":3926},"user":"jenslincke","tags":[]},"3926":{"isSerializedDate":true,"string":"Mon Jul 08 2013 15:51:51 GMT+0200 (W. Europe Summer Time)"},"3927":{"varMapping":{"__isSmartRef__":true,"id":3928},"source":"function continueLoading() {\n this.stopLoadingWorlds = false\n\n this.loadAllURLs(\n Properties.own(this.urls).reject(function(ea) {\n return this.urls[ea].loaded\n }, this).reverse())\n}","funcProperties":{"__isSmartRef__":true,"id":3929},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3928":{"this":{"__isSmartRef__":true,"id":1}},"3929":{"timestamp":{"__isSmartRef__":true,"id":3930},"user":"jenslincke","tags":[]},"3930":{"isSerializedDate":true,"string":"Tue Jul 09 2013 11:50:42 GMT+0200 (W. Europe Summer Time)"},"3931":{"varMapping":{"__isSmartRef__":true,"id":3932},"source":"function onOnlyLoad() {\n // don't remember and visualize parts after loading\n this.onlyLoad = true \n this.loadAll()\n \n\n\n}","funcProperties":{"__isSmartRef__":true,"id":3933},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3932":{"this":{"__isSmartRef__":true,"id":1}},"3933":{"timestamp":{"__isSmartRef__":true,"id":3934},"user":"jenslincke","tags":[]},"3934":{"isSerializedDate":true,"string":"Mon Jul 22 2013 16:11:54 GMT+0200 (W. Europe Summer Time)"},"3935":{"varMapping":{"__isSmartRef__":true,"id":3936},"source":"function neoPane() {\n return this.get(\"DerivationNeo4JGraphPane\")\n}","funcProperties":{"__isSmartRef__":true,"id":3937},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3936":{"this":{"__isSmartRef__":true,"id":1}},"3937":{"timestamp":{"__isSmartRef__":true,"id":3938},"user":"jenslincke","tags":[]},"3938":{"isSerializedDate":true,"string":"Thu Aug 15 2013 15:28:03 GMT+0200 (W. Europe Summer Time)"},"3939":{"varMapping":{"__isSmartRef__":true,"id":3940},"source":"function loadLatestWebwerkstatt() {\n\n this.resetLog()\n this.stopLoadingWorlds = false;\n\n var latestRevisions = this.getLatestRevisions()\n // latestRevisions = latestRevisions.slice(0,20) // for dev\n this.urls = {}\n latestRevisions.each(function(ea) {\n if (! ea[1] || !ea[1].match(/\\.(xhtml)|(json)/)) return ;\n var url = URL.root.withFilename(ea[1])\n var rev = ea[0]\n this.urls[url] = {loaded: false, revisions: [rev]}\n }.bind(this))\n this.loadAllStepFilterLoadedAndContinue()\n}","funcProperties":{"__isSmartRef__":true,"id":3941},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3940":{"this":{"__isSmartRef__":true,"id":1}},"3941":{"timestamp":{"__isSmartRef__":true,"id":3942},"user":"jenslincke","tags":[]},"3942":{"isSerializedDate":true,"string":"Fri Sep 06 2013 22:58:28 GMT+0200 (W. Europe Summer Time)"},"3943":{"varMapping":{"__isSmartRef__":true,"id":3944},"source":"function getLatestRevisions() {\n // this.getLatestRevisions().length\n var url = URL.root.withFilename(\"/users/jenslincke/thesis/data/latest_revisions.tsv\")\n var str = url.asWebResource().get().content\n if (!str) return;\n return Strings.lines(str).collect(function(ea) {\n return ea.split(\"\\t\")\n })\n}","funcProperties":{"__isSmartRef__":true,"id":3945},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3944":{"this":{"__isSmartRef__":true,"id":1}},"3945":{"timestamp":{"__isSmartRef__":true,"id":3946},"user":"jenslincke","tags":[]},"3946":{"isSerializedDate":true,"string":"Fri Aug 16 2013 10:29:41 GMT+0200 (W. Europe Summer Time)"},"3947":{"varMapping":{"__isSmartRef__":true,"id":3948},"source":"function loadAllStepFilterLoadedAndContinue() {\n\n var self = this;\n // only load head revision, when not loading all versions\n if (!self.loadAllVersions) {\n Properties.own(self.urls).each(function(ea) {\n if (self.urls[ea].revisions)\n self.urls[ea].revisions = [self.urls[ea].revisions.max()]\n else\n self.urls[ea].revisions = []\n })\n }\n try {\n var loadedURLsWithRev = self.neoPane().allLoadedURLsAndRevisions(this.loadAllObjects);\n } catch(e) {\n this.log(\"Error getting exiting revisions\")\n return\n }\n loadedURLsWithRev.each(function(ea) {\n var entry = self.urls[ea[0]];\n if (entry) {\n entry.loadedRevisions = ea[1].collect(function(ea) { return String(ea)})\n // self.log(\"found \" + ea[0] + \" \" + ea[1])\n }\n })\n Properties.own(self.urls).each(function(ea) {\n var entry = self.urls[ea]\n if (!entry.revisions) entry.revisions =[];\n if (entry.loadedRevisions) {\n entry.revisions = entry.revisions.withoutAll(entry.loadedRevisions)\n self.log(\"to load: \" + entry.revisions + \" \" + entry.loadedRevisions)\n }\n })\n var urlsToLoad = Properties.own(self.urls).select(function(ea) {\n return self.urls[ea].revisions && self.urls[ea].revisions.length > 0\n })\n self.log(\"start loading \" + urlsToLoad.length + \" urls\")\n self.loadAllURLs(urlsToLoad.reverse())\n}","funcProperties":{"__isSmartRef__":true,"id":3949},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3948":{"this":{"__isSmartRef__":true,"id":1}},"3949":{"timestamp":{"__isSmartRef__":true,"id":3950},"user":"jenslincke","tags":[]},"3950":{"isSerializedDate":true,"string":"Wed Sep 18 2013 19:49:39 GMT+0200 (W. Europe Summer Time)"},"3951":{"varMapping":{"__isSmartRef__":true,"id":3952},"source":"function fitToScreenBounds() {\n var h = 50\n var width = this.world().windowBounds().extent().x - 10\n this.setExtent(pt(width, this.getExtent().y))\n this.sendToBack()\n // world.setPosition(pt(0,0))\n \n // world.setExtent(world.windowBounds().extent())\n}","funcProperties":{"__isSmartRef__":true,"id":3953},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3952":{"this":{"__isSmartRef__":true,"id":1}},"3953":{"timestamp":{"__isSmartRef__":true,"id":3954},"user":"jenslincke","tags":[]},"3954":{"isSerializedDate":true,"string":"Wed Oct 23 2013 16:01:42 GMT+0200 (W. Europe Summer Time)"},"3955":{"varMapping":{"__isSmartRef__":true,"id":3956},"source":"function layer(name) {\n \n}","funcProperties":{"__isSmartRef__":true,"id":3957},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3956":{"this":{"__isSmartRef__":true,"id":1}},"3957":{"timestamp":{"__isSmartRef__":true,"id":3958},"user":"jenslincke","tags":[]},"3958":{"isSerializedDate":true,"string":"Wed Oct 23 2013 16:26:03 GMT+0200 (W. Europe Summer Time)"},"3959":{"submorphs":[],"scripts":[],"id":"F43C5DBF-97D8-4835-8CB7-2B6EAB81E196","shape":{"__isSmartRef__":true,"id":3960},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Helvetica","registeredForMouseEvents":true,"_MaxTextWidth":662.1211211211211,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":28,"name":"Title","partsBinMetaInfo":{"__isSmartRef__":true,"id":3961},"textChunks":[{"__isSmartRef__":true,"id":3966}],"charsReplaced":"Worlds Stats","lastFindLoc":12,"prevScroll":[0,0],"_ClipMode":"visible","_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":662.1211211211211,"_MinTextHeight":null,"eventHandler":{"__isSmartRef__":true,"id":3968},"derivationIds":[683],"moved":true,"owner":{"__isSmartRef__":true,"id":0},"lastSearchString":"","lastSearchIndex":0,"searchHighlights":[],"isBeingDragged":false,"_WordBreak":"normal","_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_TextColor","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(20.2,21.3)","textColor":"Color.rgb(0,0,0)","_TextColor":"Color.rgb(0,79,152)","distanceToDragEvent":"lively.pt(386.2,-19.8)"},"3960":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(592.7,43.0)","_BorderColor":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"3961":{"partsSpaceName":"PartsBin/Text/","partName":"Title","comment":"A title morph template","changes":[{"__isSmartRef__":true,"id":3962},{"__isSmartRef__":true,"id":3964}],"migrationLevel":4,"revisionOnLoad":140039,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"3962":{"date":{"__isSmartRef__":true,"id":3963},"author":"jenslincke","message":"","id":"1390D6B7-2215-4E06-8C86-7500ED7702F2"},"3963":{"isSerializedDate":true,"string":"Wed Nov 09 2011 17:27:07 GMT+0100 (W. Europe Standard Time)"},"3964":{"date":{"__isSmartRef__":true,"id":3965},"author":"jenslincke","message":"initial","id":"2DA7C793-6A93-4D2F-A854-29DFAAE1BCE8"},"3965":{"isSerializedDate":true,"string":"Wed Nov 09 2011 17:26:44 GMT+0100 (W. Europe Standard Time)"},"3966":{"style":{"__isSmartRef__":true,"id":3967},"chunkOwner":{"__isSmartRef__":true,"id":3959},"storedString":"World Analysis","_id":"_1","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"3967":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"3968":{"morph":{"__isSmartRef__":true,"id":3959},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3969":{"submorphs":[{"__isSmartRef__":true,"id":3970}],"scripts":[],"id":"FA45412A-691F-433D-B638-76A7951D4550","shape":{"__isSmartRef__":true,"id":3975},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"registeredForMouseEvents":true,"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":3976},"lighterFill":{"__isSmartRef__":true,"id":3981},"label":{"__isSmartRef__":true,"id":3970},"name":"ToggleButton1","showsHalos":false,"partsBinMetaInfo":{"__isSmartRef__":true,"id":3986},"attributeConnections":[{"__isSmartRef__":true,"id":3994}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"eventHandler":{"__isSmartRef__":true,"id":3995},"derivationIds":[2588,"C96F474C-1F3A-4E42-844C-DD2EB76BDD7E","E36FA68D-6317-416A-99FA-0ED81E4193DA","06258075-AC5A-4CAB-A248-A66D3213816C","64801999-DFCE-4F54-974F-D68137E3178F"],"_ClipMode":"visible","isPressed":false,"isToggled":false,"moved":true,"prevScroll":[0,0],"_PreviousBorderWidth":1,"owner":{"__isSmartRef__":true,"id":0},"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":3996},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(427.6,31.0)","distanceToDragEvent":"lively.pt(49.0,-12.0)"},"3970":{"submorphs":[],"scripts":[],"id":"82951754-565E-4380-9630-C956526D98B0","shape":{"__isSmartRef__":true,"id":3971},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":false,"_FontFamily":"Helvetica","registeredForMouseEvents":true,"_MaxTextWidth":105,"_MaxTextHeight":null,"textStyle":null,"owner":{"__isSmartRef__":true,"id":3969},"isLabel":true,"eventsAreIgnored":true,"_ClipMode":"hidden","textChunks":[{"__isSmartRef__":true,"id":3972}],"_Align":"center","eventHandler":{"__isSmartRef__":true,"id":3974},"_HandStyle":"default","_PointerEvents":"none","derivationIds":[2589,"44787449-DE07-40ED-B4D3-89A4A185AE29","F4BC3D0F-FF03-4EFC-B727-951442606730","277CDAEF-77E0-49F1-BD6F-1630D7ECC2E1","18C6D32F-6FC9-4BBD-9369-B33B5262D0BD"],"_MinTextWidth":105,"_MinTextHeight":null,"_WordBreak":"break-all","_FontSize":10,"__serializedExpressions__":["_Position","padding","_Padding","_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(0.0,0.0)","padding":"lively.rect(5,5,0,0)","_Padding":"lively.rect(0,0,0,0)","_TextColor":"Color.rgb(0,0,0)"},"3971":{"_BorderWidth":0,"_Fill":null,"_ClipMode":"hidden","__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(70.0,22.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(0,3,0,0)"},"3972":{"style":{"__isSmartRef__":true,"id":3973},"chunkOwner":{"__isSmartRef__":true,"id":3970},"_id":"_123683","storedString":"collapse","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"3973":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"3974":{"morph":{"__isSmartRef__":true,"id":3970},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3975":{"_BorderWidth":1,"_Fill":{"__isSmartRef__":true,"id":3976},"_BorderRadius":5.2,"_ClipMode":"visible","_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(70.0,22.0)","_BorderColor":"Color.rgb(214,214,214)","_Padding":"lively.rect(0,0,0,0)"},"3976":{"stops":[{"__isSmartRef__":true,"id":3977},{"__isSmartRef__":true,"id":3978},{"__isSmartRef__":true,"id":3979},{"__isSmartRef__":true,"id":3980}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"3977":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(245,245,245)"},"3978":{"offset":0.4,"__serializedExpressions__":["color"],"color":"Color.rgb(209,209,209)"},"3979":{"offset":0.6,"__serializedExpressions__":["color"],"color":"Color.rgb(209,209,209)"},"3980":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(240,240,240)"},"3981":{"stops":[{"__isSmartRef__":true,"id":3982},{"__isSmartRef__":true,"id":3983},{"__isSmartRef__":true,"id":3984},{"__isSmartRef__":true,"id":3985}],"__serializedExpressions__":["vector"],"__LivelyClassName__":"lively.morphic.LinearGradient","__SourceModuleName__":"Global.lively.morphic.Shapes","vector":"lively.rect(0,0,0,1)"},"3982":{"offset":0,"__serializedExpressions__":["color"],"color":"Color.rgb(250,250,250)"},"3983":{"offset":0.4,"__serializedExpressions__":["color"],"color":"Color.rgb(232,232,232)"},"3984":{"offset":0.6,"__serializedExpressions__":["color"],"color":"Color.rgb(232,232,232)"},"3985":{"offset":1,"__serializedExpressions__":["color"],"color":"Color.rgb(248,248,248)"},"3986":{"partsSpaceName":"PartsBin/Inputs/","migrationLevel":4,"partName":"ToggleButton","comment":"A toggle button:\n- emits, toggle, enable, disable on pressed.\n- changes label","changes":[{"__isSmartRef__":true,"id":3987},{"__isSmartRef__":true,"id":3989},{"__isSmartRef__":true,"id":3991}],"lastModifiedDate":{"__isSmartRef__":true,"id":3993},"revisionOnLoad":200633,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"3987":{"date":{"__isSmartRef__":true,"id":3988},"author":"jenslincke","message":"no comment","id":"497F3947-290E-4A97-A50D-3A5A7A186919"},"3988":{"isSerializedDate":true,"string":"Fri Sep 20 2013 16:45:30 GMT+0200 (W. Europe Summer Time)"},"3989":{"date":{"__isSmartRef__":true,"id":3990},"author":"jenslincke","message":"no comment","id":"02AB5A6F-7748-4A48-8C36-D334F97FC321"},"3990":{"isSerializedDate":true,"string":"Thu Feb 07 2013 17:57:46 GMT+0100 (W. Europe Standard Time)"},"3991":{"date":{"__isSmartRef__":true,"id":3992},"author":"jenslincke","message":"no comment","id":"7471CE07-F2C0-4149-9684-90E843DB8DCE"},"3992":{"isSerializedDate":true,"string":"Fri Feb 08 2013 10:43:34 GMT+0100 (W. Europe Standard Time)"},"3993":{"isSerializedDate":true,"string":"Fri Sep 20 2013 16:43:31 GMT+0200 (W. Europe Summer Time)"},"3994":{"sourceObj":{"__isSmartRef__":true,"id":3969},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":3969},"targetMethodName":"onFire","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"3995":{"morph":{"__isSmartRef__":true,"id":3969},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"3996":{"onFire":{"__isSmartRef__":true,"id":3997},"reset":{"__isSmartRef__":true,"id":4001}},"3997":{"varMapping":{"__isSmartRef__":true,"id":3998},"source":"function onFire() {\n\t\n if (this.isToggled) {\n this.setLabel(\"collapse\")\n\n } else {\n this.setLabel(\"expand\")\n }\n this.isToggled = !this.isToggled;\n}","funcProperties":{"__isSmartRef__":true,"id":3999},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"3998":{"this":{"__isSmartRef__":true,"id":3969}},"3999":{"timestamp":{"__isSmartRef__":true,"id":4000},"user":"jenslincke","tags":[]},"4000":{"isSerializedDate":true,"string":"Fri Oct 25 2013 14:11:54 GMT+0200 (W. Europe Summer Time)"},"4001":{"varMapping":{"__isSmartRef__":true,"id":4002},"source":"function reset() {\n\n}","funcProperties":{"__isSmartRef__":true,"id":4003},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"4002":{"this":{"__isSmartRef__":true,"id":3969}},"4003":{"timestamp":{"__isSmartRef__":true,"id":4004},"user":"jenslincke","tags":[]},"4004":{"isSerializedDate":true,"string":"Fri Oct 25 2013 14:12:19 GMT+0200 (W. Europe Summer Time)"},"4005":{"submorphs":[{"__isSmartRef__":true,"id":4006},{"__isSmartRef__":true,"id":4009},{"__isSmartRef__":true,"id":4012},{"__isSmartRef__":true,"id":4015},{"__isSmartRef__":true,"id":4063}],"scripts":[],"shape":{"__isSmartRef__":true,"id":4073},"eventHandler":{"__isSmartRef__":true,"id":4074},"_ClipMode":"visible","derivationIds":[],"id":"AE191FAA-F850-489A-95DA-893623DDD57C","__layered_droppingEnabled__":false,"halosEnabled":true,"draggingEnabled":true,"layout":{"__isSmartRef__":true,"id":4075},"LK2":true,"reframeHandle":{"__isSmartRef__":true,"id":4006},"rightReframeHandle":{"__isSmartRef__":true,"id":4012},"bottomReframeHandle":{"__isSmartRef__":true,"id":4009},"titleBar":{"__isSmartRef__":true,"id":4015},"collapsedTransform":null,"collapsedExtent":null,"expandedTransform":null,"expandedExtent":null,"ignoreEventsOnExpand":false,"_PreviousBorderWidth":0,"targetMorph":{"__isSmartRef__":true,"id":4063},"owner":{"__isSmartRef__":true,"id":0},"highlighted":false,"prevScroll":[0,0],"__serializedExpressions__":["_Position","contentOffset"],"__LivelyClassName__":"lively.morphic.Window","__SourceModuleName__":"Global.lively.morphic.Widgets","withLayers":["Global.PreventDroppingLayer"],"withoutLayers":["Global.lively.morphic.GrabbingLayer"],"_Position":"lively.pt(1511.3,455.0)","contentOffset":"lively.pt(4.0,22.0)"},"4006":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":4007},"eventHandler":{"__isSmartRef__":true,"id":4008},"_ClipMode":"visible","derivationIds":[],"id":"2DE66F77-37C3-47A5-97A2-03B2E592C56A","__layered_droppingEnabled__":true,"halosEnabled":true,"draggingEnabled":false,"type":"corner","_StyleClassNames":["reframe-handle corner"],"owner":{"__isSmartRef__":true,"id":4005},"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ReframeHandle","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(494.0,212.0)"},"4007":{"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(14.0,14.0)","_Padding":"lively.rect(0,0,0,0)"},"4008":{"morph":{"__isSmartRef__":true,"id":4006},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4009":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":4010},"eventHandler":{"__isSmartRef__":true,"id":4011},"_ClipMode":"visible","derivationIds":[],"id":"DB35FB01-9482-47E3-A927-7B01F54BBF48","__layered_droppingEnabled__":true,"halosEnabled":true,"draggingEnabled":false,"type":"bottom","_StyleClassNames":["reframe-handle bottom"],"owner":{"__isSmartRef__":true,"id":4005},"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ReframeHandle","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(0.0,222.0)"},"4010":{"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(494.0,4.0)","_Padding":"lively.rect(0,0,0,0)"},"4011":{"morph":{"__isSmartRef__":true,"id":4009},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4012":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":4013},"eventHandler":{"__isSmartRef__":true,"id":4014},"_ClipMode":"visible","derivationIds":[],"id":"14CB83F3-C464-4866-9908-656E8C8256DA","__layered_droppingEnabled__":true,"halosEnabled":true,"draggingEnabled":false,"type":"right","_StyleClassNames":["reframe-handle right"],"owner":{"__isSmartRef__":true,"id":4005},"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ReframeHandle","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(504.0,0.0)"},"4013":{"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(4.0,212.0)","_Padding":"lively.rect(0,0,0,0)"},"4014":{"morph":{"__isSmartRef__":true,"id":4012},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4015":{"submorphs":[{"__isSmartRef__":true,"id":4016},{"__isSmartRef__":true,"id":4022},{"__isSmartRef__":true,"id":4035},{"__isSmartRef__":true,"id":4047}],"scripts":[],"shape":{"__isSmartRef__":true,"id":4060},"eventHandler":{"__isSmartRef__":true,"id":4061},"_ClipMode":"visible","derivationIds":[],"id":"CFC1DB51-695B-4410-B348-86F285205D37","__layered_droppingEnabled__":false,"halosEnabled":true,"draggingEnabled":false,"layout":{"__isSmartRef__":true,"id":4062},"windowMorph":{"__isSmartRef__":true,"id":4005},"label":{"__isSmartRef__":true,"id":4016},"closeButton":{"__isSmartRef__":true,"id":4022},"menuButton":{"__isSmartRef__":true,"id":4035},"collapseButton":{"__isSmartRef__":true,"id":4047},"_PreviousBorderWidth":0,"owner":{"__isSmartRef__":true,"id":4005},"prevScroll":[0,0],"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.TitleBar","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(0.0,0.0)"},"4016":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":4017},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":4018}],"eventHandler":{"__isSmartRef__":true,"id":4020},"_ClipMode":"hidden","derivationIds":[],"id":"58B13C04-FE7A-4A47-9F6F-CF4BBFD466AD","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"draggingEnabled":false,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"evalEnabled":false,"isLabel":true,"layout":{"__isSmartRef__":true,"id":4021},"eventsAreIgnored":true,"owner":{"__isSmartRef__":true,"id":4015},"_StyleClassNames":["window-title"],"_TextStylingMode":true,"prevScroll":[0,0],"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(20.0,3.0)"},"4017":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(449.0,18.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"4018":{"style":{"__isSmartRef__":true,"id":4019},"chunkOwner":{"__isSmartRef__":true,"id":4016},"_id":"_8125","storedString":"Workspace","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"4019":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"4020":{"morph":{"__isSmartRef__":true,"id":4016},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4021":{"resizeWidth":true},"4022":{"submorphs":[{"__isSmartRef__":true,"id":4023}],"scripts":[],"shape":{"__isSmartRef__":true,"id":4028},"eventHandler":{"__isSmartRef__":true,"id":4029},"_ClipMode":"visible","derivationIds":[],"id":"004121BE-F8F3-408F-A0F1-9C152BFEB4D7","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"draggingEnabled":false,"accessibleInInactiveWindow":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":4023},"_PreviousBorderWidth":0,"owner":{"__isSmartRef__":true,"id":4015},"layout":{"__isSmartRef__":true,"id":4030},"_StyleClassNames":["close"],"attributeConnections":[{"__isSmartRef__":true,"id":4031},{"__isSmartRef__":true,"id":4033}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(488.0,3.0)"},"4023":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":4024},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":4025}],"eventHandler":{"__isSmartRef__":true,"id":4027},"_ClipMode":"hidden","derivationIds":[],"id":"0DE88710-510F-4244-90A6-A13861386344","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"draggingEnabled":false,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":8,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":4022},"isLabel":true,"eventsAreIgnored":true,"_TextStylingMode":true,"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(0.0,-1.0)"},"4024":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(17.0,17.0)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"4025":{"style":{"__isSmartRef__":true,"id":4026},"chunkOwner":{"__isSmartRef__":true,"id":4023},"_id":"_8127","storedString":"X","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"4026":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"4027":{"morph":{"__isSmartRef__":true,"id":4023},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4028":{"_BorderWidth":1,"_StrokeOpacity":0,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(17.0,17.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"4029":{"morph":{"__isSmartRef__":true,"id":4022},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4030":{"moveHorizontal":true},"4031":{"sourceObj":{"__isSmartRef__":true,"id":4022},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":4005},"targetMethodName":"getCloseHelp","varMapping":{"__isSmartRef__":true,"id":4032},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"4032":{"source":{"__isSmartRef__":true,"id":4022},"target":{"__isSmartRef__":true,"id":4005}},"4033":{"sourceObj":{"__isSmartRef__":true,"id":4022},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":4005},"targetMethodName":"initiateShutdown","varMapping":{"__isSmartRef__":true,"id":4034},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"4034":{"source":{"__isSmartRef__":true,"id":4022},"target":{"__isSmartRef__":true,"id":4005}},"4035":{"submorphs":[{"__isSmartRef__":true,"id":4036}],"scripts":[],"shape":{"__isSmartRef__":true,"id":4041},"eventHandler":{"__isSmartRef__":true,"id":4042},"_ClipMode":"visible","derivationIds":[],"id":"3A6C7022-A4F7-49E3-ACC7-41609658D735","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"draggingEnabled":false,"accessibleInInactiveWindow":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":4036},"_PreviousBorderWidth":0,"owner":{"__isSmartRef__":true,"id":4015},"attributeConnections":[{"__isSmartRef__":true,"id":4043},{"__isSmartRef__":true,"id":4045}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"isPressed":false,"prevScroll":[0,0],"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(3.0,3.0)"},"4036":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":4037},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":4038}],"eventHandler":{"__isSmartRef__":true,"id":4040},"_ClipMode":"hidden","derivationIds":[],"id":"99674483-9D30-4994-B8D8-B3444C8C6EA4","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"draggingEnabled":false,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":8,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":4035},"isLabel":true,"eventsAreIgnored":true,"_TextStylingMode":true,"prevScroll":[0,0],"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(0.0,0.0)"},"4037":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(18.0,17.0)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"4038":{"style":{"__isSmartRef__":true,"id":4039},"chunkOwner":{"__isSmartRef__":true,"id":4036},"_id":"_8129","storedString":"M","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"4039":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"4040":{"morph":{"__isSmartRef__":true,"id":4036},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4041":{"_BorderWidth":1,"_StrokeOpacity":0,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(17.0,17.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"4042":{"morph":{"__isSmartRef__":true,"id":4035},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4043":{"sourceObj":{"__isSmartRef__":true,"id":4035},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":4005},"targetMethodName":"getMenuHelp","varMapping":{"__isSmartRef__":true,"id":4044},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"4044":{"source":{"__isSmartRef__":true,"id":4035},"target":{"__isSmartRef__":true,"id":4005}},"4045":{"sourceObj":{"__isSmartRef__":true,"id":4035},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":4005},"targetMethodName":"showTargetMorphMenu","varMapping":{"__isSmartRef__":true,"id":4046},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"4046":{"source":{"__isSmartRef__":true,"id":4035},"target":{"__isSmartRef__":true,"id":4005}},"4047":{"submorphs":[{"__isSmartRef__":true,"id":4048}],"scripts":[],"shape":{"__isSmartRef__":true,"id":4053},"eventHandler":{"__isSmartRef__":true,"id":4054},"_ClipMode":"visible","derivationIds":[],"id":"8AC73535-637B-4ED5-A49D-EC73D6F60EB4","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"draggingEnabled":false,"accessibleInInactiveWindow":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":4048},"_PreviousBorderWidth":0,"owner":{"__isSmartRef__":true,"id":4015},"layout":{"__isSmartRef__":true,"id":4055},"attributeConnections":[{"__isSmartRef__":true,"id":4056},{"__isSmartRef__":true,"id":4058}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(469.0,3.0)"},"4048":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":4049},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":4050}],"eventHandler":{"__isSmartRef__":true,"id":4052},"_ClipMode":"hidden","derivationIds":[],"id":"AD70DD19-7FD4-4334-ADF9-CEC81C76D06E","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"draggingEnabled":false,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":8,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":4047},"isLabel":true,"eventsAreIgnored":true,"_TextStylingMode":true,"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(0.0,1.0)"},"4049":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(17.0,17.0)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"4050":{"style":{"__isSmartRef__":true,"id":4051},"chunkOwner":{"__isSmartRef__":true,"id":4048},"_id":"_8131","storedString":"–","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"4051":{"textShadow":"0px 1px 0 rgba(255,255,255,1)","__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"4052":{"morph":{"__isSmartRef__":true,"id":4048},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4053":{"_BorderWidth":1,"_StrokeOpacity":0,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(17.0,17.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"4054":{"morph":{"__isSmartRef__":true,"id":4047},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4055":{"moveHorizontal":true},"4056":{"sourceObj":{"__isSmartRef__":true,"id":4047},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":4005},"targetMethodName":"getCollapseHelp","varMapping":{"__isSmartRef__":true,"id":4057},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"4057":{"source":{"__isSmartRef__":true,"id":4047},"target":{"__isSmartRef__":true,"id":4005}},"4058":{"sourceObj":{"__isSmartRef__":true,"id":4047},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":4005},"targetMethodName":"toggleCollapse","varMapping":{"__isSmartRef__":true,"id":4059},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"4059":{"source":{"__isSmartRef__":true,"id":4047},"target":{"__isSmartRef__":true,"id":4005}},"4060":{"_AppearanceStylingMode":true,"_BorderStylingMode":true,"_BorderWidth":0,"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(508.0,22.0)","_Padding":"lively.rect(0,0,0,0)"},"4061":{"morph":{"__isSmartRef__":true,"id":4015},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4062":{"resizeWidth":true,"adjustForNewBounds":true},"4063":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":4064},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":4065},{"__isSmartRef__":true,"id":4067}],"eventHandler":{"__isSmartRef__":true,"id":4069},"_ClipMode":"auto","derivationIds":[],"id":"E274AB00-2671-437E-A5B2-4EB106FAB3CC","grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"draggingEnabled":false,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":true,"_HandStyle":null,"allowInput":true,"_FontFamily":"Monaco,monospace","_FontSize":10,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":4005},"layout":{"__isSmartRef__":true,"id":4070},"syntaxHighlightingWhileTyping":true,"attributeConnections":[{"__isSmartRef__":true,"id":4071}],"doNotSerialize":["$$textString","parseErrors","parseErrors"],"doNotCopyProperties":["$$textString"],"accessibleInInactiveWindow":true,"_lastSyntaxHighlightTime":15,"previousSelection":[7,7],"charsReplaced":"nothing","lastFindLoc":7,"prevScroll":[0,0],"__serializedExpressions__":["_TextColor","_Position"],"textString":"\"\".truncate","__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(4.0,22.0)"},"4064":{"_BorderWidth":1,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(500.0,200.0)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(95,94,95)","_Fill":"Color.rgb(243,243,243)"},"4065":{"style":{"__isSmartRef__":true,"id":4066},"chunkOwner":{"__isSmartRef__":true,"id":4063},"_id":"_12","storedString":"\"\"","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"4066":{"__serializedExpressions__":["color"],"backgroundColor":null,"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore","color":"Color.rgb(0,128,128)"},"4067":{"_id":"_13","style":{"__isSmartRef__":true,"id":4068},"chunkOwner":{"__isSmartRef__":true,"id":4063},"storedString":".truncate","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"4068":{"__serializedExpressions__":["color"],"backgroundColor":null,"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore","color":"Color.rgb(0,0,0)"},"4069":{"morph":{"__isSmartRef__":true,"id":4063},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4070":{"resizeWidth":true,"resizeHeight":true},"4071":{"sourceObj":{"__isSmartRef__":true,"id":4063},"sourceAttrName":"textString","targetObj":{"__isSmartRef__":true,"id":4063},"targetMethodName":"highlightSyntaxDebounced","varMapping":{"__isSmartRef__":true,"id":4072},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"4072":{"source":{"__isSmartRef__":true,"id":4063},"target":{"__isSmartRef__":true,"id":4063}},"4073":{"_BorderWidth":0,"_Fill":null,"_StrokeOpacity":false,"_BorderRadius":false,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Padding","_Extent"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Padding":"lively.rect(0,0,0,0)","_Extent":"lively.pt(508.0,226.0)"},"4074":{"morph":{"__isSmartRef__":true,"id":4005},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4075":{"adjustForNewBounds":true},"4076":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":4077},"id":2,"eventHandler":{"__isSmartRef__":true,"id":4078},"__layered_droppingEnabled__":false,"halosEnabled":false,"_world":{"__isSmartRef__":true,"id":0},"eventsAreIgnored":true,"_HandStyle":"default","_PointerEvents":"none","carriesGrabbedMorphs":false,"lastScrollTime":1502804249770,"_ClipMode":"visible","doNotSerialize":["$$scrollFocusMorph"],"doNotCopyProperties":["$$scrollFocusMorph"],"highlightConnection":null,"_Scale":1,"_Rotation":0,"owner":{"__isSmartRef__":true,"id":0},"attributeConnections":[],"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.HandMorph","__SourceModuleName__":"Global.lively.morphic.Events","withLayers":["Global.NoMagnetsLayer"],"_Position":"lively.pt(972.4,1371.8)"},"4077":{"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(2.0,2.0)","_Fill":"Color.rgb(204,0,0)","_Padding":"lively.rect(0,0,0,0)"},"4078":{"morph":{"__isSmartRef__":true,"id":4076},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4079":{"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(15000.0,15000.0)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"4080":{"morph":{"__isSmartRef__":true,"id":0},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4081":{"name":"Local code","__LivelyClassName__":"ChangeSet","__SourceModuleName__":"Global.lively.ChangeSet"},"4082":{"submorphs":[{"__isSmartRef__":true,"id":4083}],"scripts":[],"id":"151062F4-475E-479E-92B6-6B8111CF80C3","shape":{"__isSmartRef__":true,"id":4094},"__layered_droppingEnabled__":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"LoadingMorph","partsBinMetaInfo":{"__isSmartRef__":true,"id":4095},"eventHandler":{"__isSmartRef__":true,"id":4195},"derivationIds":[127,"59692BC3-6C7B-4E23-B820-8699260EA722","486BB935-1313-4103-B2A8-642B19437478","18AFFD44-46CD-489E-B1D6-DED43E2B6B06","2608C892-2204-4981-9A87-8E749F8944AB","5535861F-4EA2-44AB-8A40-0538124E0AAC","16C292B3-86E8-4622-B516-27C48263B8CC","87731A20-D455-44D0-97E5-98A7CFD4E417","A17081E7-E597-47ED-BD32-6E4D206BD7D7","CFB4A44C-BFEA-4584-BCBA-AE2A56739200","76B3DD9B-8D01-42BA-A574-AB99D5F899BB","1EBC5512-8F54-4B24-998C-69A285EC8533","DD1165C7-6C1A-4361-A4AE-FCF6F31152FD","4D6D36E8-48F3-408A-B03C-202E4DC182BD","5F3B3E0F-BBC6-4DDA-BAA0-7EFC05FF2011","E0A6B33B-767A-4532-9021-892414520200","F5F5E2B1-5FF0-4E09-B323-AE88A3920B8D","0C7E832A-A741-430F-B295-8BC181D066FE","472AED3B-CB76-49BD-BF49-354A2D568F86","A7C52F65-D140-4791-880F-F7584C7BB570","3516412B-8B36-4E52-9416-6B7FB358BDC2","1840CACC-078C-4795-AD3F-E9D6F8D557A0","1FEDCA25-0131-46FA-840F-DC5F1B05C6CA","C620CED3-0AE9-4097-9AA7-2706A042F9C9","679A861B-40E0-4DB2-B22F-95B454C6978D","FEF39B3C-E634-4825-BAB8-2D44FE647B03","0C359AB4-E7FF-46F2-B050-E84944AAC865"],"isBeingDragged":false,"layout":{"__isSmartRef__":true,"id":4196},"prevScroll":[0,0],"moved":true,"headRevision":146469,"_ClipMode":"visible","_Rotation":0,"_Scale":1,"isMetaTool":true,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":4197},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,0.0)","distanceToDragEvent":"lively.pt(171.0,-13.0)"},"4083":{"submorphs":[{"__isSmartRef__":true,"id":4084}],"scripts":[],"shape":{"__isSmartRef__":true,"id":4090},"id":"2CB95B11-7F6A-40B1-8E34-E5426AA62044","eventHandler":{"__isSmartRef__":true,"id":4091},"__layered_droppingEnabled__":true,"halosEnabled":true,"name":"ProgressIndicator","showsHalos":false,"partsBinMetaInfo":{"__isSmartRef__":true,"id":4092},"derivationIds":[520,"071F18BE-FF28-40F5-ACAD-1916E0D25C38","DF185A10-743D-45FC-B9C2-76E12D908BCF","BF125D2C-596A-4C1E-A5F8-DAE4801E9497","3CEE8CFF-B8F1-4B4B-A405-CB583080252A","D0652878-8F9C-4591-8A82-296898AACDB6","31441DDF-2220-43BE-A99F-69E1FEC68030","14A90039-0D3E-46DC-8445-D42B8E02EB42","681EF5DE-A344-4114-B2F3-B96CE3872524","C0381116-5116-4F33-B082-A411D0E4534E","24E9581E-B008-46EE-9CBC-D5190E100D98","C69D1041-2C5E-48FE-B04C-04E66450658A","4830945B-4FFF-4564-9424-34D7995DAE60","8602C233-B3E7-4682-9B0E-D7549761D934","B4E0E11F-2BED-462E-B708-89D63971856E","EE0144C2-D016-4390-8A67-4E7DEF171C83","F44DF6E4-5F27-440E-AB5F-3721C0A10CA6","73FC6648-DAAF-4673-8CF4-7DA219513F22","B78EB1B5-780C-45F7-B0A7-B988B52B1FF1","DFDB8CD1-72F7-40F4-849B-1F9B866277AB","66111105-B1FC-41F7-BF70-D45118C9E09F","02420416-1E35-4831-AABB-91CD0460CA1A","7C6B2EB2-4510-4A8E-BAFF-5CF0040DD7F5","0503F5A1-1732-4610-9A5A-920D658CA766","07C5AE03-36AD-4849-BACD-27D7D9A2CCF2","9FFF9D73-931C-404C-AA4B-5AC2E7C53504","B1D109CF-D403-4B0A-988D-50F79586DAC1"],"owner":{"__isSmartRef__":true,"id":4082},"isBeingDragged":false,"layout":{"__isSmartRef__":true,"id":4093},"prevScroll":[0,0],"_ClipMode":"visible","_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Image","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(113.5,81.0)","distanceToDragEvent":"lively.pt(39.0,-11.0)"},"4084":{"submorphs":[],"scripts":[],"id":"B4D0DE88-6E0A-4C90-B91C-344CD86F948F","shape":{"__isSmartRef__":true,"id":4085},"grabbingEnabled":false,"__layered_droppingEnabled__":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":257,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":14,"name":"loadedMorphName","partsBinMetaInfo":{"__isSmartRef__":true,"id":4086},"textChunks":[{"__isSmartRef__":true,"id":4087}],"charsReplaced":"MorphName","lastFindLoc":18,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":4089},"_ClipMode":"visible","derivationIds":[355,"023045B3-2D6B-4425-89FB-F4806D527BE0","DC0C2365-868C-41AE-8369-51C31E91493E","C6D9D314-86A1-4015-970B-F6787F535E1A","6AA4552E-2E85-447E-9033-99D5AA1A94BC","D94BE49C-8A3E-4F1F-BF28-FEDD9B40D213","AA8F0470-654C-4AA2-8135-4607F5429AC5","E0BAABCC-FFB2-4EDF-BAE5-C63CC99B6A97","1A86AE17-73AE-442E-AB36-DD90C6DFC8BC","EF750075-E964-4CD3-B6A4-161511E1D058","CED69CBF-FFA5-45E7-B333-FBACE4F278AC","E56978C1-7424-4C10-8168-11FD3237B540","D5AB2532-A4DC-42D6-AF17-99CBBCEAA848","245866CB-598A-4172-A3A0-A06D4D26C6AD","43B0F12E-5793-43AA-80E1-496774E0EBA6","1B776A8C-0413-475F-8EBD-120BBD91D2BB","F84F2C9A-8003-4E81-833A-83F48C92F3B8","3124B389-9FA4-4348-BC5D-0DFF9C59CD1B","1A1BCBAC-D7CC-4BAE-B8C2-7C693F7327A1","1CB201BA-5E0B-4771-821A-139FA2AEFBC2","195520FA-4816-47A4-B0F5-BA890AFD9DF9","0D15F28A-24C9-46B7-89C5-6D2354728AC1","316FE9D3-62EC-4FD6-9B0F-FFA622B79575","739F3743-9BE1-48C8-813D-C0BFB0DCACA6","01877B3B-7DA7-4222-B011-7B5F4E501862","B8FE7DEE-9568-4BE6-BA12-EA674BA79E08","08EA4866-65F7-416E-810F-77F2E719663A"],"_WhiteSpaceHandling":"pre-wrap","owner":{"__isSmartRef__":true,"id":4083},"_MinTextWidth":257,"_MinTextHeight":null,"previousSelection":[6,6],"_Align":"center","isBeingDragged":false,"_Rotation":0,"_Scale":1,"__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(-109.0,38.0)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(179.0,-11.0)"},"4085":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(257.0,22.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(0,0,0,0)"},"4086":{"partsSpaceName":"PartsBin/Basic","migrationLevel":4,"comment":"a simple text morph","partName":"Text","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"4087":{"style":{"__isSmartRef__":true,"id":4088},"chunkOwner":{"__isSmartRef__":true,"id":4084},"storedString":"loading part","_id":"_4371","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"4088":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"4089":{"morph":{"__isSmartRef__":true,"id":4084},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4090":{"_ImageURL":"data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==","attributeConnections":[],"doNotSerialize":[],"doNotCopyProperties":[],"isLoaded":true,"_ClipMode":"visible","_BorderWidth":0,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Image","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(31.0,31.0)","_Padding":"lively.rect(0,0,0,0)"},"4091":{"morph":{"__isSmartRef__":true,"id":4083},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4092":{"partName":"ProgressIndicator","requiredModules":[],"migrationLevel":2,"partsSpaceName":"PartsBin/Widgets/","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"4093":{"centeredHorizontal":true,"centeredVertical":true},"4094":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":8.515,"_Opacity":0.8146,"_BorderStyle":"solid","__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(266.0,223.0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(214,214,214)","_Padding":"lively.rect(0,0,0,0)"},"4095":{"partsSpaceName":"PartsBin/iPadWidgets","comment":"This is a placeholder to indicate that a morph is being loaded. It will be replaced by the morph as soon as the requested morph finished loading.","migrationLevel":4,"partName":"LoadingMorph","changes":[{"__isSmartRef__":true,"id":4096},{"__isSmartRef__":true,"id":4098},{"__isSmartRef__":true,"id":4100},{"__isSmartRef__":true,"id":4102},{"__isSmartRef__":true,"id":4104},{"__isSmartRef__":true,"id":4106},{"__isSmartRef__":true,"id":4108},{"__isSmartRef__":true,"id":4110},{"__isSmartRef__":true,"id":4112},{"__isSmartRef__":true,"id":4114},{"__isSmartRef__":true,"id":4116},{"__isSmartRef__":true,"id":4118},{"__isSmartRef__":true,"id":4120},{"__isSmartRef__":true,"id":4122},{"__isSmartRef__":true,"id":4124},{"__isSmartRef__":true,"id":4126},{"__isSmartRef__":true,"id":4128},{"__isSmartRef__":true,"id":4130},{"__isSmartRef__":true,"id":4132},{"__isSmartRef__":true,"id":4134},{"__isSmartRef__":true,"id":4136},{"__isSmartRef__":true,"id":4138},{"__isSmartRef__":true,"id":4140},{"__isSmartRef__":true,"id":4142},{"__isSmartRef__":true,"id":4144},{"__isSmartRef__":true,"id":4146},{"__isSmartRef__":true,"id":4148},{"__isSmartRef__":true,"id":4150},{"__isSmartRef__":true,"id":4152},{"__isSmartRef__":true,"id":4154},{"__isSmartRef__":true,"id":4156},{"__isSmartRef__":true,"id":4158},{"__isSmartRef__":true,"id":4160},{"__isSmartRef__":true,"id":4162},{"__isSmartRef__":true,"id":4164},{"__isSmartRef__":true,"id":4166},{"__isSmartRef__":true,"id":4168},{"__isSmartRef__":true,"id":4170},{"__isSmartRef__":true,"id":4172},{"__isSmartRef__":true,"id":4174},{"__isSmartRef__":true,"id":4176},{"__isSmartRef__":true,"id":4178},{"__isSmartRef__":true,"id":4180},{"__isSmartRef__":true,"id":4182},{"__isSmartRef__":true,"id":4184},{"__isSmartRef__":true,"id":4186},{"__isSmartRef__":true,"id":4188},{"__isSmartRef__":true,"id":4190},{"__isSmartRef__":true,"id":4192}],"lastModifiedDate":{"__isSmartRef__":true,"id":4194},"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"4096":{"date":{"__isSmartRef__":true,"id":4097},"author":"sstamm","message":"","id":"1C1391AE-5722-4707-BE52-F0094FC56829"},"4097":{"isSerializedDate":true,"string":"Wed Feb 22 2012 14:02:04 GMT+0100 (W. Europe Standard Time)"},"4098":{"date":{"__isSmartRef__":true,"id":4099},"author":"sstamm","message":"","id":"663F147A-9084-4AC3-81A7-1E7BA6547F08"},"4099":{"isSerializedDate":true,"string":"Wed Feb 22 2012 12:43:10 GMT+0100 (W. Europe Standard Time)"},"4100":{"date":{"__isSmartRef__":true,"id":4101},"author":"sstamm","message":"","id":"F72B746E-B170-4EFB-9074-5E8770640B8A"},"4101":{"isSerializedDate":true,"string":"Wed Feb 22 2012 12:36:14 GMT+0100 (W. Europe Standard Time)"},"4102":{"date":{"__isSmartRef__":true,"id":4103},"author":"sstamm","message":"","id":"568D2EFD-C535-43AE-8944-6D8B967129F5"},"4103":{"isSerializedDate":true,"string":"Wed Feb 22 2012 12:23:04 GMT+0100 (W. Europe Standard Time)"},"4104":{"date":{"__isSmartRef__":true,"id":4105},"author":"sstamm","message":"","id":"AB2484A6-0707-4E13-845E-F0A5F48BBA3D"},"4105":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:59:45 GMT+0100 (W. Europe Standard Time)"},"4106":{"date":{"__isSmartRef__":true,"id":4107},"author":"sstamm","message":"","id":"97D20633-F76C-46A5-A32A-FFE9BC83CAB3"},"4107":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:59:10 GMT+0100 (W. Europe Standard Time)"},"4108":{"date":{"__isSmartRef__":true,"id":4109},"author":"sstamm","message":"","id":"8A697DF5-9A45-4A84-B709-9719BF55083E"},"4109":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:56:54 GMT+0100 (W. Europe Standard Time)"},"4110":{"date":{"__isSmartRef__":true,"id":4111},"author":"sstamm","message":"","id":"F2157D66-1571-4B9A-B325-6FA96488260F"},"4111":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:51:05 GMT+0100 (W. Europe Standard Time)"},"4112":{"date":{"__isSmartRef__":true,"id":4113},"author":"sstamm","message":"","id":"E5E808CA-06AB-47DC-A9C9-CA7967591545"},"4113":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:47:19 GMT+0100 (W. Europe Standard Time)"},"4114":{"date":{"__isSmartRef__":true,"id":4115},"author":"sstamm","message":"","id":"009DC4E0-23CA-485A-A796-801AA0F75049"},"4115":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:46:25 GMT+0100 (W. Europe Standard Time)"},"4116":{"date":{"__isSmartRef__":true,"id":4117},"author":"sstamm","message":"","id":"C0CE1397-6E2E-4E8C-AEFF-9017E24BB7E4"},"4117":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:45:05 GMT+0100 (W. Europe Standard Time)"},"4118":{"date":{"__isSmartRef__":true,"id":4119},"author":"sstamm","message":"","id":"FFE16986-548D-4AC2-A627-CF6416282BC4"},"4119":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:37:15 GMT+0100 (W. Europe Standard Time)"},"4120":{"date":{"__isSmartRef__":true,"id":4121},"author":"sstamm","message":"","id":"57213D63-7147-4057-ADC9-30994443B066"},"4121":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:35:29 GMT+0100 (W. Europe Standard Time)"},"4122":{"date":{"__isSmartRef__":true,"id":4123},"author":"sstamm","message":"","id":"75A31364-B380-4312-BB5B-F8F2DA1CE824"},"4123":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:31:52 GMT+0100 (W. Europe Standard Time)"},"4124":{"date":{"__isSmartRef__":true,"id":4125},"author":"sstamm","message":"","id":"5AA50B7E-7D33-44C4-807B-BF1ABA31D530"},"4125":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:14:10 GMT+0100 (W. Europe Standard Time)"},"4126":{"date":{"__isSmartRef__":true,"id":4127},"author":"sstamm","message":"","id":"BCDCC505-534C-45E5-9BB2-5238959A5AD0"},"4127":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:02:56 GMT+0100 (W. Europe Standard Time)"},"4128":{"date":{"__isSmartRef__":true,"id":4129},"author":"sstamm","message":"","id":"890D14F4-E89D-4E05-BFB9-875D6AB6C765"},"4129":{"isSerializedDate":true,"string":"Wed Feb 22 2012 11:01:50 GMT+0100 (W. Europe Standard Time)"},"4130":{"date":{"__isSmartRef__":true,"id":4131},"author":"sstamm","message":"","id":"B6FE0805-0D24-4267-8238-8B332352617E"},"4131":{"isSerializedDate":true,"string":"Wed Feb 22 2012 10:55:44 GMT+0100 (W. Europe Standard Time)"},"4132":{"date":{"__isSmartRef__":true,"id":4133},"author":"sstamm","message":"callbacks are working","id":"9348260A-3B55-4659-BC85-440BFBD98EA4"},"4133":{"isSerializedDate":true,"string":"Fri Feb 10 2012 09:45:55 GMT+0100 (W. Europe Standard Time)"},"4134":{"date":{"__isSmartRef__":true,"id":4135},"author":"sstamm","message":"made it more opaque","id":"1B84264C-2822-407F-A58F-19217BCD2762"},"4135":{"isSerializedDate":true,"string":"Wed Feb 08 2012 11:41:50 GMT+0100 (W. Europe Standard Time)"},"4136":{"date":{"__isSmartRef__":true,"id":4137},"author":"sstamm","message":"","id":"0FB41D7D-2A52-4782-814B-A66C24FCE569"},"4137":{"isSerializedDate":true,"string":"Tue Feb 07 2012 11:13:49 GMT+0100 (W. Europe Standard Time)"},"4138":{"date":{"__isSmartRef__":true,"id":4139},"author":"sstamm","message":"","id":"A0C2D7C1-04AF-493A-A7D7-70750F7D3E2F"},"4139":{"isSerializedDate":true,"string":"Thu Feb 02 2012 17:22:07 GMT+0100 (W. Europe Standard Time)"},"4140":{"date":{"__isSmartRef__":true,"id":4141},"author":"sstamm","message":"trollolol","id":"F6CFAD78-AC72-4DE2-9F38-79776C2E9462"},"4141":{"isSerializedDate":true,"string":"Thu Feb 02 2012 14:55:14 GMT+0100 (W. Europe Standard Time)"},"4142":{"date":{"__isSmartRef__":true,"id":4143},"author":"sstamm","message":"should be centered now","id":"EE366B4D-C272-477F-8C28-4EAE5A7EC7CB"},"4143":{"isSerializedDate":true,"string":"Thu Feb 02 2012 14:54:35 GMT+0100 (W. Europe Standard Time)"},"4144":{"date":{"__isSmartRef__":true,"id":4145},"author":"sstamm","message":"initial commit","id":"8920D925-DD16-4667-B8C7-FB74D78C2424"},"4145":{"isSerializedDate":true,"string":"Thu Feb 02 2012 13:26:01 GMT+0100 (W. Europe Standard Time)"},"4146":{"date":{"__isSmartRef__":true,"id":4147},"author":"sstamm","message":"changed text morph name","id":"80E88A3C-5AF3-48F2-A600-710877630997"},"4147":{"isSerializedDate":true,"string":"Thu Feb 02 2012 14:04:01 GMT+0100 (W. Europe Standard Time)"},"4148":{"date":{"__isSmartRef__":true,"id":4149},"author":"sstamm","message":"added loading script","id":"EE9B8F4D-1F03-4232-82E6-794046974F8F"},"4149":{"isSerializedDate":true,"string":"Thu Feb 02 2012 14:28:30 GMT+0100 (W. Europe Standard Time)"},"4150":{"date":{"__isSmartRef__":true,"id":4151},"author":"sstamm","message":"added disconnection","id":"11F19267-924E-4087-99ED-998245576BD2"},"4151":{"isSerializedDate":true,"string":"Thu Feb 02 2012 14:32:58 GMT+0100 (W. Europe Standard Time)"},"4152":{"date":{"__isSmartRef__":true,"id":4153},"author":"sstamm","message":"removed connections before deletion","id":"35A88218-6864-4D52-83A2-BFF7B9A6907C"},"4153":{"isSerializedDate":true,"string":"Thu Feb 02 2012 14:41:00 GMT+0100 (W. Europe Standard Time)"},"4154":{"date":{"__isSmartRef__":true,"id":4155},"author":"sstamm","message":"now able to load parts by name and category as well as per partItem","id":"F36A5782-461D-4813-95F8-0207990A261C"},"4155":{"isSerializedDate":true,"string":"Thu Feb 02 2012 15:24:30 GMT+0100 (W. Europe Standard Time)"},"4156":{"date":{"__isSmartRef__":true,"id":4157},"author":"sstamm","message":"now with round corners","id":"F42C39CB-CC37-467D-BF10-D362241F047E"},"4157":{"isSerializedDate":true,"string":"Thu Feb 02 2012 15:26:23 GMT+0100 (W. Europe Standard Time)"},"4158":{"date":{"__isSmartRef__":true,"id":4159},"author":"sstamm","message":"loadingMorph is sync now","id":"12ACFFC9-BA53-4A2A-ABD4-894A5ECE1145"},"4159":{"isSerializedDate":true,"string":"Thu Feb 02 2012 15:48:04 GMT+0100 (W. Europe Standard Time)"},"4160":{"date":{"__isSmartRef__":true,"id":4161},"author":"sstamm","message":"display the loadingMorph in new thread","id":"2BA51E30-F02B-4AF0-B3BE-52DD4ED522CC"},"4161":{"isSerializedDate":true,"string":"Thu Feb 02 2012 15:53:49 GMT+0100 (W. Europe Standard Time)"},"4162":{"date":{"__isSmartRef__":true,"id":4163},"author":"sstamm","message":"","id":"DF0AE4EA-1B08-4556-8BBE-E6488F23B8A3"},"4163":{"isSerializedDate":true,"string":"Thu Feb 02 2012 16:49:48 GMT+0100 (W. Europe Standard Time)"},"4164":{"date":{"__isSmartRef__":true,"id":4165},"author":"sstamm","message":"","id":"220821B3-C589-41C9-A324-8E7E6D9D6CEB"},"4165":{"isSerializedDate":true,"string":"Thu Feb 02 2012 16:58:43 GMT+0100 (W. Europe Standard Time)"},"4166":{"date":{"__isSmartRef__":true,"id":4167},"author":"sstamm","message":"","id":"DEBFACE2-7EC5-4A86-AD46-5A0A88A73707"},"4167":{"isSerializedDate":true,"string":"Thu Feb 02 2012 17:04:28 GMT+0100 (W. Europe Standard Time)"},"4168":{"date":{"__isSmartRef__":true,"id":4169},"author":"sstamm","message":"load request in new thread if loading should be async","id":"18282D28-D6D4-48C9-A508-6E3244449BD8"},"4169":{"isSerializedDate":true,"string":"Tue Feb 07 2012 11:10:27 GMT+0100 (W. Europe Standard Time)"},"4170":{"date":{"__isSmartRef__":true,"id":4171},"author":"sstamm","message":"added benchmarking output","id":"249CFF90-DDF5-4A83-9759-0289E96D7D58"},"4171":{"isSerializedDate":true,"string":"Tue Feb 07 2012 11:31:50 GMT+0100 (W. Europe Standard Time)"},"4172":{"date":{"__isSmartRef__":true,"id":4173},"author":"sstamm","message":"","id":"882082E1-29B6-418D-9B8B-672729D60619"},"4173":{"isSerializedDate":true,"string":"Tue Feb 07 2012 11:38:26 GMT+0100 (W. Europe Standard Time)"},"4174":{"date":{"__isSmartRef__":true,"id":4175},"author":"sstamm","message":"","id":"5179AEF9-E19F-4B0C-BBD8-556C5687988A"},"4175":{"isSerializedDate":true,"string":"Tue Feb 07 2012 11:44:11 GMT+0100 (W. Europe Standard Time)"},"4176":{"date":{"__isSmartRef__":true,"id":4177},"author":"sstamm","message":"","id":"1159C5B4-724E-4124-9D7B-5CD5DC4A8EE3"},"4177":{"isSerializedDate":true,"string":"Tue Feb 07 2012 11:48:14 GMT+0100 (W. Europe Standard Time)"},"4178":{"date":{"__isSmartRef__":true,"id":4179},"author":"sstamm","message":"","id":"2A718D1F-1036-41D6-999A-336F2B14E65D"},"4179":{"isSerializedDate":true,"string":"Tue Feb 07 2012 11:49:47 GMT+0100 (W. Europe Standard Time)"},"4180":{"date":{"__isSmartRef__":true,"id":4181},"author":"sstamm","message":"","id":"EB6BDD0C-7EEC-4124-B77F-2F106A601538"},"4181":{"isSerializedDate":true,"string":"Tue Feb 07 2012 11:59:48 GMT+0100 (W. Europe Standard Time)"},"4182":{"date":{"__isSmartRef__":true,"id":4183},"author":"sstamm","message":"","id":"63EC8D07-AB6A-450A-BB84-9B4D37E03647"},"4183":{"isSerializedDate":true,"string":"Tue Feb 07 2012 12:02:33 GMT+0100 (W. Europe Standard Time)"},"4184":{"date":{"__isSmartRef__":true,"id":4185},"author":"sstamm","message":"","id":"19CE12E4-5AA5-48DC-B1D1-B0EB0EDF1CB9"},"4185":{"isSerializedDate":true,"string":"Tue Feb 07 2012 12:03:42 GMT+0100 (W. Europe Standard Time)"},"4186":{"date":{"__isSmartRef__":true,"id":4187},"author":"sstamm","message":"first attempt to introduce callback functions to part loading","id":"22BD0B95-8948-411A-A56E-AD7CBE445F1D"},"4187":{"isSerializedDate":true,"string":"Thu Feb 09 2012 20:20:11 GMT+0100 (W. Europe Standard Time)"},"4188":{"date":{"__isSmartRef__":true,"id":4189},"author":"sstamm","message":"","id":"A216DFD2-9D1F-4E62-A22F-6B5472823E1B"},"4189":{"isSerializedDate":true,"string":"Fri Mar 16 2012 15:37:34 GMT+0100 (W. Europe Standard Time)"},"4190":{"date":{"__isSmartRef__":true,"id":4191},"author":"sstamm","message":"","id":"464E723A-08DC-433C-AA5C-CEC850DBAF0B"},"4191":{"isSerializedDate":true,"string":"Fri Mar 16 2012 15:42:29 GMT+0100 (W. Europe Standard Time)"},"4192":{"date":{"__isSmartRef__":true,"id":4193},"author":"jenslincke","message":"make it a meta tool","id":"8406E1E5-C48F-4F03-AC17-81AABDE9235E"},"4193":{"isSerializedDate":true,"string":"Fri Mar 22 2013 14:56:05 GMT+0100 (W. Europe Standard Time)"},"4194":{"isSerializedDate":true,"string":"Wed Feb 05 2014 19:59:57 GMT+0100 (W. Europe Standard Time)"},"4195":{"morph":{"__isSmartRef__":true,"id":4082},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"4196":{"adjustForNewBounds":true},"4197":{"loadPart":{"__isSmartRef__":true,"id":4198},"loadFinished":{"__isSmartRef__":true,"id":4202},"loadPartByName":{"__isSmartRef__":true,"id":4206}},"4198":{"varMapping":{"__isSmartRef__":true,"id":4199},"source":"function loadPart(partItem, isAsync) {\n this.partItem = partItem;\n \n this.openInWorld();\n if(partItem.part) {\n this.setExtent(partItem.part.getExtent());\n }\n this.align(this.bounds().center(), $world.visibleBounds().center());\n \n \n if(typeof isAsync === \"function\") {\n this.callback = isAsync;\n }\n\n connect(partItem, 'part', this, \"loadFinished\");\n\n partItem.loadPart(isAsync);\n\n return partItem.part;\n\n}","funcProperties":{"__isSmartRef__":true,"id":4200},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"4199":{"this":{"__isSmartRef__":true,"id":4082}},"4200":{"timestamp":{"__isSmartRef__":true,"id":4201},"user":"sstamm","tags":[]},"4201":{"isSerializedDate":true,"string":"Fri Mar 16 2012 15:42:18 GMT+0100 (W. Europe Standard Time)"},"4202":{"varMapping":{"__isSmartRef__":true,"id":4203},"source":"function loadFinished(part) {\n if(this.owner === $world.firstHand()) {\n $world.firstHand().removeAllMorphs();\n } else {\n this.owner.addMorph(part);\n part.align(part.bounds().center(), this.bounds().center());\n this.remove();\n }\n disconnect(this.partItem, 'part', this, \"loadFinished\");\n if(this.callback) {\n this.callback(part);\n }\n}","funcProperties":{"__isSmartRef__":true,"id":4204},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"4203":{"this":{"__isSmartRef__":true,"id":4082}},"4204":{"timestamp":{"__isSmartRef__":true,"id":4205},"user":"sstamm","tags":[]},"4205":{"isSerializedDate":true,"string":"Wed Feb 22 2012 14:01:53 GMT+0100 (W. Europe Standard Time)"},"4206":{"varMapping":{"__isSmartRef__":true,"id":4207},"source":"function loadPartByName(partName, optPartsSpaceName, isAsync) {\n var partItem = lively.PartsBin.getPartItem(partName, optPartsSpaceName);\n return this.loadPart(partItem, isAsync);\n}","funcProperties":{"__isSmartRef__":true,"id":4208},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"4207":{"this":{"__isSmartRef__":true,"id":4082}},"4208":{"timestamp":{"__isSmartRef__":true,"id":4209},"user":"sstamm","tags":[]},"4209":{"isSerializedDate":true,"string":"Thu Feb 02 2012 17:03:18 GMT+0100 (W. Europe Standard Time)"},"4210":{"sourceObj":{"__isSmartRef__":true,"id":0},"sourceAttrName":"savedWorldAsURL","targetObj":{"__isSmartRef__":true,"id":0},"targetMethodName":"visitNewPageAfterSaveAs","varMapping":{"__isSmartRef__":true,"id":4211},"updaterString":"function ($upd, v) {\n if (v && v.toString() !== URL.source.toString()) { $upd(v); }\n }","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"4211":{"source":{"__isSmartRef__":true,"id":0},"target":{"__isSmartRef__":true,"id":0}},"4212":{"isSerializedDate":true,"string":"Mon Sep 15 2014 00:28:44 GMT+0200 (W. Europe Summer Time)"},"4213":{"clipboardData":{"__isSmartRef__":true,"id":4214},"path":{"__isSmartRef__":true,"id":4217},"cancelBubble":false,"returnValue":false,"defaultPrevented":true,"timeStamp":1407844318940,"cancelable":true,"bubbles":true,"eventPhase":0,"currentTarget":null,"type":"paste","hasLivelyPatch":true,"isMouseEvent":false,"isKeyboardEvent":false,"world":{"__isSmartRef__":true,"id":0},"hand":{"__isSmartRef__":true,"id":4076},"isStopped":true,"__serializedExpressions__":["mousePoint"],"mousePoint":"lively.pt(0.0,0.0)"},"4214":{"items":{"__isSmartRef__":true,"id":4215},"files":{"__isSmartRef__":true,"id":4216},"types":[],"effectAllowed":"uninitialized","dropEffect":"none"},"4215":{"length":0},"4216":{"length":0},"4217":{"length":0},"4218":{"rules":[{"__isSmartRef__":true,"id":4219},{"__isSmartRef__":true,"id":4221}],"originMorph":{"__isSmartRef__":true,"id":0},"__LivelyClassName__":"lively.morphic.StyleSheet","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"4219":{"declarations":[{"__isSmartRef__":true,"id":4220}],"styleSheet":{"__isSmartRef__":true,"id":4218},"selector":".Window","__LivelyClassName__":"lively.morphic.StyleSheetRule","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"4220":{"values":["none"],"rule":{"__isSmartRef__":true,"id":4219},"property":"box-shadow","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"4221":{"declarations":[{"__isSmartRef__":true,"id":4222}],"styleSheet":{"__isSmartRef__":true,"id":4218},"selector":".Window.highlighted","__LivelyClassName__":"lively.morphic.StyleSheetRule","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"4222":{"values":["none"],"rule":{"__isSmartRef__":true,"id":4221},"property":"box-shadow","priority":false,"__LivelyClassName__":"lively.morphic.StyleSheetDeclaration","__SourceModuleName__":"Global.lively.morphic.StyleSheetRepresentation"},"4223":{"protocol":"http:","hostname":"lively-kernel.org","pathname":"/repository/webwerkstatt/users/jenslincke/thesis/Evaluation/WorldAnalysis.xhtml","__LivelyClassName__":"URL","__SourceModuleName__":"Global.lively.Network"},"isSimplifiedRegistry":true}}]]>