>' + result.selector;\n\t\tmsg += '\\n' + result.err.message;\n\t\tmsg += '\\n' + result.err.stack;\n\t\treturn msg;\n\t}).join('\\n---------\\n');\n\tresultText.setFill(Color.red);\n\tresultText.setTextString(failStr);\n} /* runFinished */\nsuite.runAll();\n\n}","funcProperties":{"__isSmartRef__":true,"id":105},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"104":{"this":{"__isSmartRef__":true,"id":41}},"105":{},"106":{"submorphs":[],"scripts":[],"id":257,"shape":{"__isSmartRef__":true,"id":107},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_OverflowMode":"visible","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":111},"_MaxTextWidth":540,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":112},"showsHalos":false,"halos":[],"_FontSize":28,"__SourceModuleName__":"Global.lively.morphic.Core","name":"Title","partsBinMetaInfo":{"__isSmartRef__":true,"id":113},"_TextColor":{"__isSmartRef__":true,"id":114},"owner":{"__isSmartRef__":true,"id":0},"_Rotation":0,"textChunks":[{"__isSmartRef__":true,"id":115}],"__LivelyClassName__":"lively.morphic.Text"},"107":{"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":108},"_Extent":{"__isSmartRef__":true,"id":109},"_BorderWidth":2,"_BorderColor":{"__isSmartRef__":true,"id":110},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"108":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"109":{"x":540,"y":43,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"110":{"r":1,"g":1,"b":1,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"111":{"x":21,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"112":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"113":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"114":{"r":0,"g":0.309,"b":0.595,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"115":{"style":{"__isSmartRef__":true,"id":116},"morph":{"__isSmartRef__":true,"id":106},"storedString":"System Code Browser migration\n","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"116":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"117":{"submorphs":[{"__isSmartRef__":true,"id":118}],"scripts":[],"id":670,"shape":{"__isSmartRef__":true,"id":126},"grabbingEnabled":false,"droppingEnabled":false,"showsMorphMenu":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":140},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":129},"lighterFill":{"__isSmartRef__":true,"id":141},"label":{"__isSmartRef__":true,"id":118},"attributeConnections":[{"__isSmartRef__":true,"id":150}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"showsHalos":false,"halos":[],"__SourceModuleName__":"Global.lively.morphic.Widgets","owner":{"__isSmartRef__":true,"id":0},"_Rotation":0,"name":"SelectButton","__serializedLivelyClosures__":{"__isSmartRef__":true,"id":151},"__LivelyClassName__":"lively.morphic.Button"},"118":{"submorphs":[],"scripts":[],"id":18,"shape":{"__isSmartRef__":true,"id":119},"grabbingEnabled":false,"droppingEnabled":false,"showsMorphMenu":false,"halosEnabled":true,"fixedWidth":false,"_MaxTextWidth":null,"_MaxTextHeight":null,"fixedHeight":false,"allowsInput":false,"_OverflowMode":"visible","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":123},"textColor":{"__isSmartRef__":true,"id":122},"owner":{"__isSmartRef__":true,"id":117},"eventsAreIgnored":true,"__SourceModuleName__":"Global.lively.morphic.Core","textChunks":[{"__isSmartRef__":true,"id":124}],"__LivelyClassName__":"lively.morphic.Text"},"119":{"borderWidth":0,"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":120},"_Extent":{"__isSmartRef__":true,"id":121},"_BorderColor":{"__isSmartRef__":true,"id":122},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"120":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"121":{"x":35,"y":18,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"122":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"123":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"124":{"style":{"__isSmartRef__":true,"id":125},"morph":{"__isSmartRef__":true,"id":118},"storedString":"select","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"125":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"126":{"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":127},"_Extent":{"__isSmartRef__":true,"id":128},"_Fill":{"__isSmartRef__":true,"id":129},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":139},"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"127":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"128":{"x":123,"y":20,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"129":{"stops":[{"__isSmartRef__":true,"id":130},{"__isSmartRef__":true,"id":132},{"__isSmartRef__":true,"id":134},{"__isSmartRef__":true,"id":136}],"vector":{"__isSmartRef__":true,"id":138},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"130":{"offset":0,"color":{"__isSmartRef__":true,"id":131}},"131":{"r":0.9600000000000001,"g":0.9600000000000001,"b":0.9600000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"132":{"offset":0.4,"color":{"__isSmartRef__":true,"id":133}},"133":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"134":{"offset":0.6,"color":{"__isSmartRef__":true,"id":135}},"135":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"136":{"offset":1,"color":{"__isSmartRef__":true,"id":137}},"137":{"r":0.94,"g":0.94,"b":0.94,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"138":{"x":0,"y":0,"width":0,"height":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"139":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"140":{"x":910,"y":338,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"141":{"stops":[{"__isSmartRef__":true,"id":142},{"__isSmartRef__":true,"id":144},{"__isSmartRef__":true,"id":146},{"__isSmartRef__":true,"id":148}],"vector":{"__isSmartRef__":true,"id":138},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"142":{"offset":0,"color":{"__isSmartRef__":true,"id":143}},"143":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"144":{"offset":0.4,"color":{"__isSmartRef__":true,"id":145}},"145":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"146":{"offset":0.6,"color":{"__isSmartRef__":true,"id":147}},"147":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"148":{"offset":1,"color":{"__isSmartRef__":true,"id":149}},"149":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"150":{"sourceObj":{"__isSmartRef__":true,"id":117},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":117},"targetMethodName":"selectText","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"151":{"selectText":{"__isSmartRef__":true,"id":152}},"152":{"varMapping":{"__isSmartRef__":true,"id":153},"source":"function selectText() {\n\t(function() {\n\t\tt = $morph('Text')\n\t\tt.focus()\n\t\tt.setSelectionRange.apply(t, eval($morph('selRange').textString))\n\t}).delay(0)\n}","funcProperties":{"__isSmartRef__":true,"id":154},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"153":{"this":{"__isSmartRef__":true,"id":117}},"154":{},"155":{"submorphs":[],"scripts":[],"id":939,"shape":{"__isSmartRef__":true,"id":156},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_OverflowMode":"visible","_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":160},"_MaxTextWidth":168,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":159},"showsHalos":false,"halos":[],"_FontSize":14,"__SourceModuleName__":"Global.lively.morphic.Core","_Rotation":0,"name":"selRange","partsBinMetaInfo":{"__isSmartRef__":true,"id":161},"owner":{"__isSmartRef__":true,"id":0},"textChunks":[{"__isSmartRef__":true,"id":162}],"__LivelyClassName__":"lively.morphic.Text"},"156":{"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":157},"_Extent":{"__isSmartRef__":true,"id":158},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":159},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"157":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"158":{"x":168,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"159":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"160":{"x":899,"y":365,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"161":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"162":{"style":{"__isSmartRef__":true,"id":163},"morph":{"__isSmartRef__":true,"id":155},"storedString":"[1,2]","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"163":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"164":{"submorphs":[],"scripts":[],"id":846,"shape":{"__isSmartRef__":true,"id":165},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowsInput":true,"_OverflowMode":"visible","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":170},"_MaxTextWidth":100,"_MaxTextHeight":20,"textColor":{"__isSmartRef__":true,"id":168},"owner":{"__isSmartRef__":true,"id":0},"showsHalos":true,"halos":[],"_Rotation":0,"__SourceModuleName__":"Global.lively.morphic.Core","textChunks":[{"__isSmartRef__":true,"id":171}],"__LivelyClassName__":"lively.morphic.Text"},"165":{"position":{"__isSmartRef__":true,"id":166},"_Extent":{"__isSmartRef__":true,"id":167},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":168},"_Fill":{"__isSmartRef__":true,"id":169},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"166":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"167":{"x":100,"y":20,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"168":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"169":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"170":{"x":935,"y":425,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"171":{"style":{"__isSmartRef__":true,"id":172},"morph":{"__isSmartRef__":true,"id":164},"storedString":"ein test","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"172":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"173":{"submorphs":[{"__isSmartRef__":true,"id":174},{"__isSmartRef__":true,"id":209},{"__isSmartRef__":true,"id":218}],"scripts":[],"id":495,"shape":{"__isSmartRef__":true,"id":227},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":231},"showsHalos":false,"halos":[],"name":"TestRunPane","_Rotation":0,"__SourceModuleName__":"Global.lively.morphic.Core","partsBinMetaInfo":{"__isSmartRef__":true,"id":232},"owner":{"__isSmartRef__":true,"id":0},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":233},"__LivelyClassName__":"lively.morphic.Box"},"174":{"submorphs":[{"__isSmartRef__":true,"id":175}],"scripts":[],"id":45,"shape":{"__isSmartRef__":true,"id":184},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":198},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":187},"lighterFill":{"__isSmartRef__":true,"id":199},"label":{"__isSmartRef__":true,"id":175},"owner":{"__isSmartRef__":true,"id":173},"_Rotation":0,"showsHalos":false,"halos":[],"name":"runButton","attributeConnections":[{"__isSmartRef__":true,"id":208}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","__LivelyClassName__":"lively.morphic.Button"},"175":{"submorphs":[],"scripts":[],"id":46,"shape":{"__isSmartRef__":true,"id":176},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":false,"fixedHeight":false,"allowsInput":false,"_OverflowMode":"visible","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":180},"_MaxTextWidth":null,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":179},"padding":{"__isSmartRef__":true,"id":181},"_Padding":{"__isSmartRef__":true,"id":181},"owner":{"__isSmartRef__":true,"id":174},"isLabel":true,"eventsAreIgnored":true,"__SourceModuleName__":"Global.lively.morphic.Core","textChunks":[{"__isSmartRef__":true,"id":182}],"__LivelyClassName__":"lively.morphic.Text"},"176":{"borderWidth":0,"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":177},"_Extent":{"__isSmartRef__":true,"id":178},"_BorderColor":{"__isSmartRef__":true,"id":179},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"177":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"178":{"x":57,"y":29,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"179":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"180":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"181":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"182":{"style":{"__isSmartRef__":true,"id":183},"morph":{"__isSmartRef__":true,"id":175},"storedString":"run","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"183":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"184":{"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":185},"_Extent":{"__isSmartRef__":true,"id":186},"_Fill":{"__isSmartRef__":true,"id":187},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":197},"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"185":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"186":{"x":57,"y":29,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"187":{"stops":[{"__isSmartRef__":true,"id":188},{"__isSmartRef__":true,"id":190},{"__isSmartRef__":true,"id":192},{"__isSmartRef__":true,"id":194}],"vector":{"__isSmartRef__":true,"id":196},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"188":{"offset":0,"color":{"__isSmartRef__":true,"id":189}},"189":{"r":0.9600000000000001,"g":0.9600000000000001,"b":0.9600000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"190":{"offset":0.4,"color":{"__isSmartRef__":true,"id":191}},"191":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"192":{"offset":0.6,"color":{"__isSmartRef__":true,"id":193}},"193":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"194":{"offset":1,"color":{"__isSmartRef__":true,"id":195}},"195":{"r":0.94,"g":0.94,"b":0.94,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"196":{"x":0,"y":0,"width":0,"height":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"197":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"198":{"x":10,"y":10,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"199":{"stops":[{"__isSmartRef__":true,"id":200},{"__isSmartRef__":true,"id":202},{"__isSmartRef__":true,"id":204},{"__isSmartRef__":true,"id":206}],"vector":{"__isSmartRef__":true,"id":196},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"200":{"offset":0,"color":{"__isSmartRef__":true,"id":201}},"201":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"202":{"offset":0.4,"color":{"__isSmartRef__":true,"id":203}},"203":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"204":{"offset":0.6,"color":{"__isSmartRef__":true,"id":205}},"205":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"206":{"offset":1,"color":{"__isSmartRef__":true,"id":207}},"207":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"208":{"sourceObj":{"__isSmartRef__":true,"id":174},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":173},"targetMethodName":"runTest","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"209":{"submorphs":[],"scripts":[],"id":76,"shape":{"__isSmartRef__":true,"id":210},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_OverflowMode":"scroll","_FontFamily":"Monaco","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":213},"_MaxTextWidth":449,"_MaxTextHeight":163,"textColor":{"__isSmartRef__":true,"id":179},"owner":{"__isSmartRef__":true,"id":173},"showsHalos":false,"halos":[],"name":"testResult","__SourceModuleName__":"Global.lively.morphic.Core","padding":{"__isSmartRef__":true,"id":214},"layout":{"__isSmartRef__":true,"id":215},"_FontSize":10,"_Padding":{"__isSmartRef__":true,"id":214},"textChunks":[{"__isSmartRef__":true,"id":216}],"__LivelyClassName__":"lively.morphic.Text"},"210":{"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":211},"_Extent":{"__isSmartRef__":true,"id":212},"_Fill":{"__isSmartRef__":true,"id":81},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":179},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"211":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"212":{"x":449,"y":163,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"213":{"x":11,"y":48,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"214":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"215":{"resizeWidth":true,"resizeHeight":true},"216":{"style":{"__isSmartRef__":true,"id":217},"morph":{"__isSmartRef__":true,"id":209},"storedString":"3ms for 2 tests","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"217":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"218":{"submorphs":[],"scripts":[],"id":157,"shape":{"__isSmartRef__":true,"id":219},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_OverflowMode":"visible","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":224},"_MaxTextWidth":366,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":223},"showsHalos":false,"halos":[],"__SourceModuleName__":"Global.lively.morphic.Core","owner":{"__isSmartRef__":true,"id":173},"_Rotation":0,"name":"testModuleNS","charsReplaced":"lively.morphic.Tests","lastFindLoc":-18,"textChunks":[{"__isSmartRef__":true,"id":225}],"__LivelyClassName__":"lively.morphic.Text"},"219":{"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":220},"_Extent":{"__isSmartRef__":true,"id":221},"_Fill":{"__isSmartRef__":true,"id":222},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":223},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"220":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"221":{"x":366,"y":18,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"222":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"223":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"224":{"x":102,"y":12,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"225":{"style":{"__isSmartRef__":true,"id":226},"morph":{"__isSmartRef__":true,"id":218},"storedString":"['Tests.TextBasicsTest']","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"226":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"227":{"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":228},"_Extent":{"__isSmartRef__":true,"id":229},"_Fill":{"__isSmartRef__":true,"id":230},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":179},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"228":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"229":{"x":479,"y":225,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"230":{"r":0.8,"g":0.8,"b":0.8,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"231":{"x":504,"y":84,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"232":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"233":{"runTest":{"__isSmartRef__":true,"id":234}},"234":{"varMapping":{"__isSmartRef__":true,"id":235},"source":"function runTest() {\n\nmodule('lively.TestFramework').load(true);\n\nvar moduleNames = eval(this.get('testModuleNS').textString),\n\tmodules = moduleNames.collect(function(name) { return module(name) }),\n\tresultText = this.get('testResult'),\n\tstartTime = new Date(),\n\tsuite = new TestSuite();\n\n\tresultText.setFill(Color.white);\n\tresultText.setTextString('running...');\n\nmodules.forEach(function(m) {\n\tif (!m.isLoaded()) m.load(true);\n\tsuite.testCasesFromModule(m);\n});\nvar noOfTestCases = suite.testCaseClasses.inject(0, function(sum, testClass) {\n\treturn sum + new testClass().allTestSelectors().length\n});\nsuite.runFinished = function() {\n\tGlobal.testResult = suite.result\n\tif (suite.result.failed.length == 0) {\n\t\tvar time = new Date() - startTime;\n\t\tresultText.setFill(Color.green);\n\t\tresultText.setTextString(time.toString() + 'ms for ' + noOfTestCases + ' tests');\n\t\treturn;\n\t}\n\tvar failStr = suite.result.failed.collect(function(result) {\n\t\tvar msg = result.classname + '>>' + result.selector;\n\t\tmsg += '\\n' + result.err.message;\n\t\tmsg += '\\n' + result.err.stack;\n\t\treturn msg;\n\t}).join('\\n---------\\n');\n\tresultText.setFill(Color.red);\n\tresultText.setTextString(failStr);\n} /* runFinished */\nsuite.runAll();\n\n}","funcProperties":{"__isSmartRef__":true,"id":236},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"235":{"this":{"__isSmartRef__":true,"id":173}},"236":{},"237":{"submorphs":[],"scripts":[],"id":66,"shape":{"__isSmartRef__":true,"id":238},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_OverflowMode":"visible","_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":242},"_MaxTextWidth":168,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":241},"showsHalos":false,"halos":[],"_FontSize":14,"__SourceModuleName__":"Global.lively.morphic.Core","_Rotation":0,"name":"Text2","partsBinMetaInfo":{"__isSmartRef__":true,"id":243},"owner":{"__isSmartRef__":true,"id":0},"charsReplaced":"This is some text","lastFindLoc":0,"textStyle":{"__isSmartRef__":true,"id":244},"textChunks":[{"__isSmartRef__":true,"id":248}],"__LivelyClassName__":"lively.morphic.Text"},"238":{"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":239},"_Extent":{"__isSmartRef__":true,"id":240},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":241},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"239":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"240":{"x":168,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"241":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"242":{"x":1018,"y":32,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"243":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"244":{"runs":[17,17,4],"values":[{"__isSmartRef__":true,"id":245},{"__isSmartRef__":true,"id":246},{"__isSmartRef__":true,"id":247}],"lastIndex":34,"lastRunIndex":2,"__SourceModuleName__":"Global.lively.TextSupport","__LivelyClassName__":"lively.RunArray"},"245":{"style":"bold","__SourceModuleName__":"Global.lively.TextSupport","__LivelyClassName__":"lively.TextEmphasis"},"246":{"__SourceModuleName__":"Global.lively.TextSupport","__LivelyClassName__":"lively.TextEmphasis"},"247":{"style":"bold","__SourceModuleName__":"Global.lively.TextSupport","__LivelyClassName__":"lively.TextEmphasis"},"248":{"style":{"__isSmartRef__":true,"id":249},"morph":{"__isSmartRef__":true,"id":237},"storedString":"ein","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"249":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"250":{"submorphs":[{"__isSmartRef__":true,"id":251},{"__isSmartRef__":true,"id":286},{"__isSmartRef__":true,"id":295}],"scripts":[],"id":73,"shape":{"__isSmartRef__":true,"id":304},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":308},"showsHalos":false,"halos":[],"name":"TestClassRunner","_Rotation":0,"__SourceModuleName__":"Global.lively.morphic.Core","partsBinMetaInfo":{"__isSmartRef__":true,"id":309},"owner":{"__isSmartRef__":true,"id":0},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":310},"__LivelyClassName__":"lively.morphic.Box"},"251":{"submorphs":[{"__isSmartRef__":true,"id":252}],"scripts":[],"id":45,"shape":{"__isSmartRef__":true,"id":261},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":275},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":264},"lighterFill":{"__isSmartRef__":true,"id":276},"label":{"__isSmartRef__":true,"id":252},"owner":{"__isSmartRef__":true,"id":250},"_Rotation":0,"showsHalos":false,"halos":[],"name":"runButton","attributeConnections":[{"__isSmartRef__":true,"id":285}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","__LivelyClassName__":"lively.morphic.Button"},"252":{"submorphs":[],"scripts":[],"id":46,"shape":{"__isSmartRef__":true,"id":253},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":false,"fixedHeight":false,"allowsInput":false,"_OverflowMode":"visible","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":257},"_MaxTextWidth":null,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":256},"padding":{"__isSmartRef__":true,"id":258},"_Padding":{"__isSmartRef__":true,"id":258},"owner":{"__isSmartRef__":true,"id":251},"isLabel":true,"eventsAreIgnored":true,"__SourceModuleName__":"Global.lively.morphic.Core","textChunks":[{"__isSmartRef__":true,"id":259}],"__LivelyClassName__":"lively.morphic.Text"},"253":{"borderWidth":0,"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":254},"_Extent":{"__isSmartRef__":true,"id":255},"_BorderColor":{"__isSmartRef__":true,"id":256},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"254":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"255":{"x":57,"y":29,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"256":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"257":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"258":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"259":{"style":{"__isSmartRef__":true,"id":260},"morph":{"__isSmartRef__":true,"id":252},"storedString":"run","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"260":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"261":{"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":262},"_Extent":{"__isSmartRef__":true,"id":263},"_Fill":{"__isSmartRef__":true,"id":264},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":274},"_BorderRadius":5,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"262":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"263":{"x":57,"y":29,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"264":{"stops":[{"__isSmartRef__":true,"id":265},{"__isSmartRef__":true,"id":267},{"__isSmartRef__":true,"id":269},{"__isSmartRef__":true,"id":271}],"vector":{"__isSmartRef__":true,"id":273},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"265":{"offset":0,"color":{"__isSmartRef__":true,"id":266}},"266":{"r":0.9600000000000001,"g":0.9600000000000001,"b":0.9600000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"267":{"offset":0.4,"color":{"__isSmartRef__":true,"id":268}},"268":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"269":{"offset":0.6,"color":{"__isSmartRef__":true,"id":270}},"270":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"271":{"offset":1,"color":{"__isSmartRef__":true,"id":272}},"272":{"r":0.94,"g":0.94,"b":0.94,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"273":{"x":0,"y":0,"width":0,"height":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"274":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"275":{"x":10,"y":10,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"276":{"stops":[{"__isSmartRef__":true,"id":277},{"__isSmartRef__":true,"id":279},{"__isSmartRef__":true,"id":281},{"__isSmartRef__":true,"id":283}],"vector":{"__isSmartRef__":true,"id":273},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"277":{"offset":0,"color":{"__isSmartRef__":true,"id":278}},"278":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"279":{"offset":0.4,"color":{"__isSmartRef__":true,"id":280}},"280":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"281":{"offset":0.6,"color":{"__isSmartRef__":true,"id":282}},"282":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"283":{"offset":1,"color":{"__isSmartRef__":true,"id":284}},"284":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"285":{"sourceObj":{"__isSmartRef__":true,"id":251},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":250},"targetMethodName":"runTest","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"286":{"submorphs":[],"scripts":[],"id":76,"shape":{"__isSmartRef__":true,"id":287},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_OverflowMode":"scroll","_FontFamily":"Monaco","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":290},"_MaxTextWidth":447,"_MaxTextHeight":160,"textColor":{"__isSmartRef__":true,"id":256},"owner":{"__isSmartRef__":true,"id":250},"showsHalos":false,"halos":[],"name":"testResult","__SourceModuleName__":"Global.lively.morphic.Core","savedTextString":"module('lively.morphic.Tests').load()\nrunning lively.morphic.Tests.ImageTests\nthis.owner.runTest\n\nthis.owner.addScript(function runTest() {\n\tvar testName = this.get('testName').textString,\n\t\tklass = Class.forName(testName),\n\t\ttestCase = new klass();\n\tif (testCase == undefined) {\n\t\talert('no test found named ' + testName);\n\t\treturn;\n\t} else {\n\t\talert('run test ' + testName)\n\t}\n\ttestCase.runAll();\n\tthis.get('testResult').setTextString('result:' + testCase.result)\n})","padding":{"__isSmartRef__":true,"id":291},"layout":{"__isSmartRef__":true,"id":292},"_FontSize":10,"_Padding":{"__isSmartRef__":true,"id":291},"textChunks":[{"__isSmartRef__":true,"id":293}],"__LivelyClassName__":"lively.morphic.Text"},"287":{"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":288},"_Extent":{"__isSmartRef__":true,"id":289},"_Fill":{"__isSmartRef__":true,"id":81},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":256},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"288":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"289":{"x":447,"y":160,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"290":{"x":11,"y":48,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"291":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"292":{"resizeWidth":true,"resizeHeight":true},"293":{"style":{"__isSmartRef__":true,"id":294},"morph":{"__isSmartRef__":true,"id":286},"storedString":"result:[TestResult Tests run: 3 -- Tests failed: 0 -- Time: 0.18s]","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"294":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"295":{"submorphs":[],"scripts":[],"id":157,"shape":{"__isSmartRef__":true,"id":296},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_OverflowMode":"visible","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":301},"_MaxTextWidth":366,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":300},"showsHalos":false,"halos":[],"__SourceModuleName__":"Global.lively.morphic.Core","owner":{"__isSmartRef__":true,"id":250},"_Rotation":0,"name":"testName","charsReplaced":"Tests.ToolsTests.JsParserTest1","lastFindLoc":-30,"textChunks":[{"__isSmartRef__":true,"id":302}],"__LivelyClassName__":"lively.morphic.Text"},"296":{"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":297},"_Extent":{"__isSmartRef__":true,"id":298},"_Fill":{"__isSmartRef__":true,"id":299},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":300},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"297":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"298":{"x":366,"y":18,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"299":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"300":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"301":{"x":102,"y":12,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"302":{"style":{"__isSmartRef__":true,"id":303},"morph":{"__isSmartRef__":true,"id":295},"storedString":"lively.morphic.Tests.RichTextHTMLTests","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"303":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"304":{"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":305},"_Extent":{"__isSmartRef__":true,"id":306},"_Fill":{"__isSmartRef__":true,"id":307},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":256},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"305":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"306":{"x":479,"y":225,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"307":{"r":0.8,"g":0.8,"b":0.8,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"308":{"x":23,"y":311,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"309":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"310":{"runTest":{"__isSmartRef__":true,"id":311}},"311":{"varMapping":{"__isSmartRef__":true,"id":312},"source":"function runTest() {\n\tvar testName = this.get('testName').textString,\n\t\tklass = Class.forName(testName),\n\t\ttestCase = new klass();\n\tif (testCase == undefined) {\n\t\talert('no test found named ' + testName);\n\t\treturn;\n\t} else {\n\t\talert('run test ' + testName)\n\t}\n\ttestCase.runAll();\n\tif (testCase.result.failed.length > 0) {\n\t\tthis.get('testResult').setFill(Color.red)\n\t\tthis.get('testResult').setTextString('result:' + testCase.result.failed)\n\t} else {\n\t\tthis.get('testResult').setFill(Color.green)\n\t\tthis.get('testResult').setTextString('result:' + testCase.result)\n\t}\n}","funcProperties":{"__isSmartRef__":true,"id":313},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"312":{"this":{"__isSmartRef__":true,"id":250}},"313":{},"314":{"submorphs":[],"scripts":[],"id":66,"shape":{"__isSmartRef__":true,"id":315},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_OverflowMode":"visible","_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":319},"_MaxTextWidth":168,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":318},"showsHalos":false,"halos":[],"_FontSize":14,"__SourceModuleName__":"Global.lively.morphic.Core","_Rotation":0,"name":"Text","partsBinMetaInfo":{"__isSmartRef__":true,"id":320},"owner":{"__isSmartRef__":true,"id":0},"textStyle":{"__isSmartRef__":true,"id":321},"textChunks":[{"__isSmartRef__":true,"id":324}],"__LivelyClassName__":"lively.morphic.Text"},"315":{"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":316},"_Extent":{"__isSmartRef__":true,"id":317},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":318},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"316":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"317":{"x":168,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"318":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"319":{"x":1316,"y":21,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"320":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"321":{"runs":[3,5],"values":[{"__isSmartRef__":true,"id":322},{"__isSmartRef__":true,"id":323}],"lastIndex":3,"lastRunIndex":1,"__SourceModuleName__":"Global.lively.TextSupport","__LivelyClassName__":"lively.RunArray"},"322":{"style":"bold","__SourceModuleName__":"Global.lively.TextSupport","__LivelyClassName__":"lively.TextEmphasis"},"323":{"__SourceModuleName__":"Global.lively.TextSupport","__LivelyClassName__":"lively.TextEmphasis"},"324":{"style":{"__isSmartRef__":true,"id":325},"morph":{"__isSmartRef__":true,"id":314},"storedString":"ein test","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"325":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"326":{"submorphs":[{"__isSmartRef__":true,"id":327},{"__isSmartRef__":true,"id":337}],"scripts":[],"id":29557,"shape":{"__isSmartRef__":true,"id":446},"droppingEnabled":true,"halosEnabled":true,"draggingEnabled":true,"layout":{"__isSmartRef__":true,"id":448},"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":449},"priorExtent":{"__isSmartRef__":true,"id":450},"targetMorph":{"__isSmartRef__":true,"id":327},"titleBar":{"__isSmartRef__":true,"id":337},"contentOffset":{"__isSmartRef__":true,"id":333},"collapsedTransform":null,"collapsedExtent":null,"expandedTransform":null,"expandedExtent":null,"ignoreEventsOnExpand":false,"owner":{"__isSmartRef__":true,"id":0},"highlighted":true,"_Rotation":0,"prevDragPos":{"__isSmartRef__":true,"id":451},"showsHalos":false,"halos":[],"__SourceModuleName__":"Global.lively.morphic.Widgets","__LivelyClassName__":"lively.morphic.Window"},"327":{"submorphs":[],"scripts":[],"id":29556,"shape":{"__isSmartRef__":true,"id":328},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowsInput":true,"_OverflowMode":"auto","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":333},"_MaxTextWidth":635,"_MaxTextHeight":334,"owner":{"__isSmartRef__":true,"id":326},"layout":{"__isSmartRef__":true,"id":334},"showsHalos":false,"halos":[],"name":"transcript","__SourceModuleName__":"Global.lively.morphic.Core","charsReplaced":" ","lastFindLoc":64,"lastSearchString":" ","textChunks":[{"__isSmartRef__":true,"id":335}],"__LivelyClassName__":"lively.morphic.Text"},"328":{"position":{"__isSmartRef__":true,"id":329},"_Extent":{"__isSmartRef__":true,"id":330},"_BorderWidth":2,"_BorderColor":{"__isSmartRef__":true,"id":331},"_Fill":{"__isSmartRef__":true,"id":332},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"329":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"330":{"x":635,"y":334,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"331":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"332":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"333":{"x":0,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"334":{"resizeWidth":true,"resizeHeight":true},"335":{"style":{"__isSmartRef__":true,"id":336},"morph":{"__isSmartRef__":true,"id":327},"storedString":"list = new lively.morphic.List(new Rectangle(0,0, 100, 100), [1, 2 3])\nsearching at 62\nsearching at 64\nError when trying to update AttributeConnection(.selection --> [object Object].setPane4Selection) with value -----:\nTypeError: Object ----- has no method 'sourceString'\nTypeError: Object ----- has no method 'sourceString'\n at SystemBrowser.onPane4SelectionUpdate (eval at (http://www.lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:96:3))\n at SystemBrowser.setPane4Selection (eval at (http://www.lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:96:3))\n at http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:175:19\n at AttributeConnection.updater (eval at (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:91:49))\n at AttributeConnection.update (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:185:13)\n at List.selection (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:243:8)\n at List.selectAt (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Widgets.js?1301991672554:378:54)\n at List. (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:433:8)\n at List.wrapped [as onMouseDown] (http://www.lively-kernel.org/repository/webwerkstatt/lively/miniprototype.js?1301991672215:135:22)\n at EventHandler.handleEvent (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:98:64)\nLOGERROR: TypeError: Object ----- has no method 'sourceString'\nError in handleEvent ReferenceError: msgMorph is not defined\nReferenceError: msgMorph is not defined\n at Text.remove (eval at (http://www.lively-kernel.org/repository/webwerkstatt/lively/Base.js?1301991672313:1:0))\n at CloseHalo.clickAction (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Halos.js?1301991672623:270:20)\n at CloseHalo. (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Halos.js?1301991672623:124:8)\n at CloseHalo.wrapped [as onMouseDown] (http://www.lively-kernel.org/repository/webwerkstatt/lively/miniprototype.js?1301991672215:135:22)\n at EventHandler.handleEvent (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:98:64)\n at HTMLDivElement.bound (http://www.lively-kernel.org/repository/webwerkstatt/lively/Base.js?1301991672313:217:22)\nError in handleEvent ReferenceError: msgMorph is not defined\nReferenceError: msgMorph is not defined\n at Text.remove (eval at (http://www.lively-kernel.org/repository/webwerkstatt/lively/Base.js?1301991672313:2472:4))\n at CloseHalo.clickAction (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Halos.js?1301991672623:270:20)\n at CloseHalo. (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Halos.js?1301991672623:124:8)\n at CloseHalo.wrapped [as onMouseDown] (http://www.lively-kernel.org/repository/webwerkstatt/lively/miniprototype.js?1301991672215:135:22)\n at EventHandler.handleEvent (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:98:64)\n at HTMLDivElement.bound (http://www.lively-kernel.org/repository/webwerkstatt/lively/Base.js?1301991672313:217:22)\nReferenceError: msgMorph is not defined\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nError when trying to update AttributeConnection(.savedTextString --> [object Object].setSourceString) with value \ttest05ListMorphKeepsSelectionHighlightOnUpdateList: function() {\n\t\tvar list = new lively.morphic.List(new Rectangle (0, 0, 100, 100));\n\t\tthis.world.addMorph(list);\n\n\t\tlist.updateList([1,2,3]);\n\t\tlist.setSelection(2);\n\n\t\tvar expected = {\n\t\t\ttagName: 'span'\n\t\t\tstyle: {backgroundColor: list.selectionColor.toCSSString()}\n\t\t};\n\t\tthis.assertNodeMatches(expected, list.renderContext().subNodes[1]);\n\t},:\nTypeError: Object has no method 'setStatusMessage'\nTypeError: Object has no method 'setStatusMessage'\n at Text.showError (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Core.js?1301991672551:1309:8)\n at ClassElemFragmentNode.newSource (eval at (http://www.lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:1:0))\n at SystemBrowser.onSourceStringUpdate (eval at (http://www.lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:1:0))\n at SystemBrowser.$$setSourceString (eval at (http://www.lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:1:0))\n at SystemBrowser.connectionWrapper [as setSourceString] (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:263:51)\n at http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:175:19\n at AttributeConnection.update (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:186:5)\n at Text.savedTextString (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:243:8)\n at Text.doSave (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Core.js?1301991672551:946:44)\n at Text.processCommandKeys (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Core.js?1301991672551:909:21)\nLOGERROR: TypeError: Object has no method 'setStatusMessage'\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nClicked on class and want to select all\nClicked on class and want to select all\nClicked on class and want to select all\nClicked on class and want to select all\nClicked on class and want to select all\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nSaving to http://www.lively-kernel.org/repository/webwerkstatt/robert/SceneRefactoring/SCBMigration.xhtml...\nsaving: #\nselecting 0 09\nTypeError: Object has no method 'forcus'\nError when trying to update AttributeConnection([object Object].result --> [object Object].triggerCallback) with value null:\nTypeError: Cannot read property 'length' of null\nTypeError: Cannot read property 'length' of null\n at Text.searchForFind (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Core.js?1301991672551:1268:49)\n at PromptDialog.callback (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Core.js?1301991672551:986:17)\n at PromptDialog.triggerCallback (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Widgets.js?1301991672554:691:27)\n at http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:175:19\n at AttributeConnection.update (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:186:5)\n at PromptDialog.result (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:243:8)\n at http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:176:23\n at AttributeConnection.update (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:186:5)\n at Namespace.signal (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:473:45)\n at Button.setValue (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Widgets.js?1301991672554:48:44)\nLOGERROR: TypeError: Cannot read property 'length' of null\nError when trying to update AttributeConnection(.savedTextString --> [object Object].setSourceString) with value Widget.subclass('lively.ide.BasicBrowser',\n'settings', {\n\tdocumentation: 'Abstract widget with three list panes and one text pane. Uses nodes to display and manipulate content.',\n\temptyText: '-----',\n\tconnections: ['targetURL', 'sourceString', 'pane1Selection', 'pane2Selection', 'pane3Selection', 'pane4Selection'],\n},\n'initializing', {\n\n\tinitialViewExtent: pt(820, 550),\n\n\tpanelSpec: [\n\t\t\t['locationPane', newTextPane, new Rectangle(0, 0, 0.8, 0.04)],\n\t\t\t['codeBaseDirBtn', function(bnds) { \n\t\t\t\t\treturn new ButtonMorph(bnds) }, new Rectangle(0.8, 0, 0.12, 0.04)],\n\t\t\t['localDirBtn', function(bnds) { \n\t\t\t\t\treturn new ButtonMorph(bnds) }, new Rectangle(0.92, 0, 0.08, 0.04)],\n\t\t\t['Pane1', newDragnDropListPane, new Rectangle(0, 0.05, 0.25, 0.35)],\n\t\t\t['Pane2', newDragnDropListPane, new Rectangle(0.25, 0.05, 0.25, 0.35)],\n\t\t\t['Pane3', newDragnDropListPane, new Rectangle(0.5, 0.05, 0.25, 0.35)],\n\t\t\t['Pane4', newDragnDropListPane, new Rectangle(0.75, 0.05, 0.25, 0.35)],\n\t\t\t['midResizer', function(bnds) { \n\t\t\t\t\treturn new HorizontalDivider(bnds) }, new Rectangle(0, 0.44, 1, 0.01)],\n\t\t\t['sourcePane', newTextPane, new Rectangle(0, 0.45, 1, 0.49)],\n\t\t\t['bottomResizer', function(bnds) { \n\t\t\t\t\treturn new HorizontalDivider(bnds) }, new Rectangle(0, 0.94, 1, 0.01)],\n\t\t\t['commentPane', newTextPane, new Rectangle(0, 0.95, 1, 0.05)]\n\t\t],\n\n\tallPaneNames: ['Pane1', 'Pane2', 'Pane3', 'Pane4'],\n\n\tfilterPlaces: ['Root', 'Pane1', 'Pane2', 'Pane3', 'Pane4'],\n\n\tformals: [\"Pane1Content\", \"Pane1Selection\", \"Pane1Menu\", \"Pane1Filters\",\n\t\t\t\"Pane2Content\", \"Pane2Selection\", \"Pane2Menu\", \"Pane2Filters\",\n\t\t\t\"Pane3Content\", \"Pane3Selection\", \"Pane3Menu\", \"Pane3Filters\",\n\t\t\t\"Pane4Content\", \"Pane4Selection\", \"Pane4Menu\", \"Pane4Filters\",\n\t\t\t\"SourceString\", \"StatusMessage\", \"RootFilters\"],\n\n\tinitialize: function($super) {\n\t\t$super();\n\t\tthis.buttonCommands = [];\n\t\t// init filters\n\t\tthis.filterPlaces.forEach(function(ea) { /*identity filter*/\t\n\t\t\tthis['set' + ea + 'Filters']([new lively.ide.NodeFilter()]);\n\t\t}, this);\n\t},\n\tsetupListPanes: function() {\n\t\tvar browser = this;\n\t\tfunction setupListPane(paneName) {\n var pane = browser.panel[paneName],\n\t\t\t\tlist = pane.innerMorph();\n\t\t\tconnect(list, 'selection', browser, 'set' + paneName + 'Selection', {\n\t\t\t\tupdater: function($upd, v) { $upd(v, this.sourceObj) }});\n\t\t\tlist.plugTo(browser, {\n\t\t\t\tgetSelection: '->get' + paneName + 'Selection',\n\t\t\t\tgetList: '->get' + paneName + 'Content',\n\t\t\t\tgetMenu: '->get' + paneName + 'Menu',\n\t\t\t\tupdateList: '<-set' + paneName + 'Content',\n\t\t\t})\n\t\t\tpane.plugTo(browser, {\n\t\t\t\tgetMenu: '->get' + paneName + 'Menu',\n\t\t\t})\n\t\t\tpane.addMenuButton();\n // list.owner.connectModel(model.newRelay(\n\t\t\t\t// {List: (\"-\" + paneName + \"Content\"),\n // Selection: ( paneName + 'Selection'),\n // Menu: (\"-\" + paneName + \"Menu\")}), true);\n list.withAllSubmorphsDo(function() {\n\t\t\t\tif (this.constructor == SliderMorph || !this.onMouseDown) return;\n this.onMouseDown = this.onMouseDown.wrap(function(proceed, evt) {\n\t\t\t\t\tbrowser.ensureSourceNotAccidentlyDeleted(proceed.curry(evt));\n });\n })\n }\n\t\tthis.allPaneNames.forEach(function(ea) { setupListPane(ea) });\n\t},\n\tsetupSourceInput: function() {\n\t\tif (!Config.isNewMorphic)\n\t\t\tthis.sourceInput().maxSafeSize = 2e6;\n\t\telse\n\t\t\tthis.panel.sourcePane.applyStyle({\n\t\t\t\toverflow: 'scroll', \n\t\t\t\tfixedHeight: true,\n\t\t\t\tfixedWidth: true,\n\t\t\t\tfontFamily: 'Monaco', \n\t\t\t\tfontSize: 10,\n\t\t\t\tpadding: Rectangle.inset(5,5,5,5),\n\t\t\t\t// layouting poliy\n\t\t\t\tresizeWidth: true, \n\t\t\t\tresizeHeight: true,\n\t\t\t});\n\n\t\tthis.panel.sourcePane.innerMorph().noEval = true;\n\n\t\tthis.panel.sourcePane.innerMorph().plugTo(this, {\n\t\t\tsetTextString: '<-setSourceString',\n\t\t\tsavedTextString: '->setSourceString',\n\t\t});\n\t\tthis.setSourceString('-----');\n\n\t\tthis.panel.sourcePane.linkToStyles([\"Browser_codePane\"])\n\t\tthis.panel.sourcePane.innerMorph().linkToStyles([\"Browser_codePaneText\"])\n\t\tif (this.panel.sourcePane.clipMorph) this.panel.sourcePane.clipMorph.setFill(null);\n\t},\n\n\tbuildView: function (extent) {\n\n\t\textent = extent || this.initialViewExtent;\n\n\t\tvar panel = new lively.ide.BrowserPanel(extent);\n\t\tPanelMorph.makePanedPanel(extent, this.panelSpec, panel);\n\t\tpanel.applyStyle({fill: Color.lightGray})\n\t\tthis.panel = panel;\n\n\t\tthis.setupListPanes();\n\t\tthis.setupSourceInput();\n\t\tthis.setupLocationInput();\n\n\t\t//panel.statusPane.connectModel(model.newRelay({Text: \"-StatusMessage\"}));\n\t\tthis.buildCommandButtons(panel);\n\t\tthis.setupResizers(panel);\n\n\t\tpanel.commentPane.linkToStyles([\"Browser_commentPane\"])\n\t\tpanel.commentPane.innerMorph().linkToStyles([\"Browser_commentPaneText\"])\n\t\tif (panel.commentPane.clipMorph) panel.commentPane.clipMorph.setFill(null);\n\n\t\tpanel.ownerWidget = this;\n\n\t\tthis.start();\n\n\t\treturn panel;\n\t},\n\t\n\tsetupLocationInput: function() {\n\t\tvar locInput = this.locationInput();\n\t\tif (!locInput) return;\n\t\tlocInput.beInputLine({fixedWidth: true, fixedHeight: true});\n\t\tlocInput.noEval = true;\n\t\tlocInput.linkToStyles([\"Browser_locationInput\"])\n\t},\n\t\n\tsetupResizers: function() {\n\t\tvar panel = this.panel;\n\t\t\n\t\t// for compatibility to old pages -- FIXME remove\n\t\tif (!panel.bottomResizer || !panel.midResizer) return \n\t\t\n\t\t// resizer in the middle resiszes top panes, buttons and source pane\n\t\tthis.allPaneNames.collect(function(name) {\n\t\t\tpanel.midResizer.addScalingAbove(panel[name]);\n\t\t});\n\t\tpanel.midResizer.addScalingBelow(panel.sourcePane)\n\n\t\t// buttons\n\t\tpanel.submorphs.forEach(function(m) {\n\t\t\tif (m.constructor == ButtonMorph && m != panel.codeBaseDirBtn && m != panel.localDirBtn)\n\t\t\t\tpanel.midResizer.addFixed(m);\n\t\t})\n\n\t\t// bottom resizer divides code and comment pane\n\t\tpanel.bottomResizer.addScalingAbove(panel.sourcePane)\n\t\tpanel.bottomResizer.addScalingBelow(panel.commentPane)\n\n\t\tpanel.bottomResizer.linkToStyles([\"Browser_resizer\"]);\n\t\tpanel.midResizer.linkToStyles([\"Browser_resizer\"]);\n\t},\n\t\n\tbuildCommandButtons: function(morph) {\n\t\tvar cmds = this.commands()\n\t\t\t.collect(function(ea) { return new ea(this) }, this)\n\t\t\t.select(function(ea) { return ea.wantsButton() });\n\t\tif (cmds.length === 0) return;\n\n\t\tvar height = Math.round(morph.getExtent().y * 0.04);\n\t\tvar width = morph.getExtent().x / cmds.length\n\t\tvar y = morph.getExtent().y * 0.44 - height;\n\n\t\tvar btns = cmds.forEach(function(cmd, i) {\n\t\t\t// Refactor me!!!\n\t\t\tvar btn = new ButtonMorph(new Rectangle(i*width, y, width, height));\n\t\t\tbtn.command = cmd; // used in connection\n\t\t\tbtn.setLabel(cmd.asString());\n\t\t\tlively.bindings.connect(btn, 'fire', cmd, 'trigger');\n\t\t\tlively.bindings.connect(btn, 'fire', btn, 'setLabel', {\n\t\t\t\tconverter: function() { return this.getSourceObj().command.asString() }\n\t\t\t});\n\t\t\tif (!Config.isNewMorphic) {\n\t\t\t\t// *wuergs* mixed old model and connect FIXME!!!\n\t\t\t\tvar btnModel = {\n\t\t\t\t\tsetIsActive: function(val) { btn.onIsActiveUpdate(val) },\n\t\t\t\t\tgetIsActive: function(val) { return cmd.isActive() }\n\t\t\t\t};\n\t\t\t\tbtn.connectModel({model: btnModel, setIsActive: 'setIsActive', getIsActive: 'getIsActive'});\n\t\t\t}\n\t\t\tcmd.button = btn; // used in onPaneXUpdate, to be removed!!!\n\t\t\tmorph.addMorph(btn);\n\t\t\tif (!Config.isNewMorphic)\n\t\t\t\tbtnModel.setIsActive(cmd.isActive());\n\t\t})\n\t\tthis.buttonCommands = cmds;\n\t},\n\n start: function() {\n this.setPane1Content(this.childsFilteredAndAsListItems(this.rootNode(), this.getRootFilters()));\n\t\tthis.mySourceControl().registerBrowser(this);\n },\n\t\n\tstop: function() {\n\t\tthis.mySourceControl().unregisterBrowser(this);\n },\n\n},\n'generated formal getters and setters', {\n\tgenerateGetterAndSetterSource: function() {\n\t\tthis.formals.inject('', function(str, spec) {\n\t\t\tstr += Strings.format('get%s: function() { return this.%s },\\n', spec, spec);\n\t\t\tstr += Strings.format('set%s: function(value, source) {\\n\\tthis.%s = value;\\n\\tif (this.on%sUpdate) this.on%sUpdate(value, source);\\n\\treturn value\\n},\\n', spec, spec, spec, spec);\n\t\t\treturn str;\n\t\t})\n\t},\n\tgetPane1Content: function() { return this.Pane1Content },\n\tsetPane1Content: function(value, source) {\n\t\tthis.Pane1Content = value;\n\t\tif (this.onPane1ContentUpdate) this.onPane1ContentUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane1Selection: function() { return this.Pane1Selection },\n\tsetPane1Selection: function(value, source) {\n\t\tthis.Pane1Selection = value;\n\t\tif (this.onPane1SelectionUpdate) this.onPane1SelectionUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane1Menu: function() { return this.Pane1Menu },\n\tsetPane1Menu: function(value, source) {\n\t\tthis.Pane1Menu = value;\n\t\tif (this.onPane1MenuUpdate) this.onPane1MenuUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane1Filters: function() { return this.Pane1Filters },\n\tsetPane1Filters: function(value, source) {\n\t\tthis.Pane1Filters = value;\n\t\tif (this.onPane1FiltersUpdate) this.onPane1FiltersUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane2Content: function() { return this.Pane2Content },\n\tsetPane2Content: function(value, source) {\n\t\tthis.Pane2Content = value;\n\t\tif (this.onPane2ContentUpdate) this.onPane2ContentUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane2Selection: function() { return this.Pane2Selection },\n\tsetPane2Selection: function(value, source) {\n\t\tthis.Pane2Selection = value;\n\t\tif (this.onPane2SelectionUpdate) this.onPane2SelectionUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane2Menu: function() { return this.Pane2Menu },\n\tsetPane2Menu: function(value, source) {\n\t\tthis.Pane2Menu = value;\n\t\tif (this.onPane2MenuUpdate) this.onPane2MenuUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane2Filters: function() { return this.Pane2Filters },\n\tsetPane2Filters: function(value, source) {\n\t\tthis.Pane2Filters = value;\n\t\tif (this.onPane2FiltersUpdate) this.onPane2FiltersUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane3Content: function() { return this.Pane3Content },\n\tsetPane3Content: function(value, source) {\n\t\tthis.Pane3Content = value;\n\t\tif (this.onPane3ContentUpdate) this.onPane3ContentUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane3Selection: function() { return this.Pane3Selection },\n\tsetPane3Selection: function(value, source) {\n\t\tthis.Pane3Selection = value;\n\t\tif (this.onPane3SelectionUpdate) this.onPane3SelectionUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane3Menu: function() { return this.Pane3Menu },\n\tsetPane3Menu: function(value, source) {\n\t\tthis.Pane3Menu = value;\n\t\tif (this.onPane3MenuUpdate) this.onPane3MenuUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane3Filters: function() { return this.Pane3Filters },\n\tsetPane3Filters: function(value, source) {\n\t\tthis.Pane3Filters = value;\n\t\tif (this.onPane3FiltersUpdate) this.onPane3FiltersUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane4Content: function() { return this.Pane4Content },\n\tsetPane4Content: function(value, source) {\n\t\tthis.Pane4Content = value;\n\t\tif (this.onPane4ContentUpdate) this.onPane4ContentUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane4Selection: function() { return this.Pane4Selection },\n\tsetPane4Selection: function(value, source) {\n\t\tthis.Pane4Selection = value;\n\t\tif (this.onPane4SelectionUpdate) this.onPane4SelectionUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane4Menu: function() { return this.Pane4Menu },\n\tsetPane4Menu: function(value, source) {\n\t\tthis.Pane4Menu = value;\n\t\tif (this.onPane4MenuUpdate) this.onPane4MenuUpdate(value, source);\n\t\treturn value\n\t},\n\tgetPane4Filters: function() { return this.Pane4Filters },\n\tsetPane4Filters: function(value, source) {\n\t\tthis.Pane4Filters = value;\n\t\tif (this.onPane4FiltersUpdate) this.onPane4FiltersUpdate(value, source);\n\t\treturn value\n\t},\n\tgetSourceString: function() { return this.SourceString },\n\tsetSourceString: function(value, source) {\n\t\tthis.SourceString = value;\n\t\tif (this.onSourceStringUpdate) this.onSourceStringUpdate(value, source);\n\t\treturn value\n\t},\n\tgetStatusMessage: function() { return this.StatusMessage },\n\tsetStatusMessage: function(value, source) {\n\t\tthis.StatusMessage = value;\n\t\tif (this.onStatusMessageUpdate) this.onStatusMessageUpdate(value, source);\n\t\treturn value\n\t},\n\tgetRootFilters: function() { return this.RootFilters },\n\tsetRootFilters: function(value, source) {\n\t\tthis.RootFilters = value;\n\t\tif (this.onRootFiltersUpdate) this.onRootFiltersUpdate(value, source);\n\t\treturn value\n\t},\n},\n'testing', {\n hasUnsavedChanges: function() {\n return this.panel.sourcePane.innerMorph().hasUnsavedChanges();\n },\n},\n'accessing', {\n\n\tcommands: function() { return [] },\n\n\tlocationInput: function() { return this.panel.locationPane && this.panel.locationPane.innerMorph() },\n\t\n\tsourceInput: function() { return this.panel.sourcePane.innerMorph() },\n\n\tmySourceControl: function() {\n\t\tvar ctrl = lively.ide.startSourceControl();\n\t\tif (!ctrl) throw new Error('Browser has no SourceControl!');\n\t\treturn ctrl;\n\t},\n},\n'browser nodes', {\n\n rootNode: function() {\n throw dbgOn(new Error('To be implemented from subclass'));\n },\n \n\tselectedNode: function() {\n\t\treturn this.getPane4Selection() || this.getPane3Selection() || this.getPane2Selection() || this.getPane1Selection();\n\t},\n\n\tallNodes: function() {\n\t\treturn this.allPaneNames.collect(function(ea) { return this.nodesInPane(ea) }, this).flatten();\n\t},\n\n\tsiblingsFor: function(node) {\n\t\tvar siblings = this.allPaneNames\n\t\t.collect(function(ea) { return this.nodesInPane(ea) }, this)\n\t\t.detect(function(ea) { return ea.include(node) });\n\t\tif (!siblings) return [];\n\t\treturn siblings.without(node);\n\t},\n\n\tnodesInPane: function(paneName) { // panes have listItems, no nodes\n\t\tvar listItems = this['get' + paneName + 'Content']();\n\t\tif (!listItems) return [];\n\t\tif (!listItems.collect) {\n\t\t\tconsole.log('Weird bug: listItems: ' + listItems + ' has no collect in pane ' + paneName);\n\t\t\treturn [];\n\t\t}\n\t\treturn listItems.collect(function(ea) { return ea.value }) \n\t},\n\t\n\tpaneNameOfNode: function(node) {\n \treturn this.allPaneNames.detect(function(pane) {\n\t\t\t// FIXME quality\n\t\t\treturn this.nodesInPane(pane).any(function(otherNode) { return otherNode.target == node.target })\n\t\t}, this);\n\t},\n\n\tselectionInPane: function(pane) {\n\t\treturn this['get'+pane+'Selection'](); \n\t},\n\n\tchildsFilteredAndAsListItems: function(node, filters) {\n \treturn \tthis.filterChildNodesOf(node, filters || []).collect(function(ea) { return ea.asListItem() });\n },\n\n filterChildNodesOf: function(node, filters) {\n \treturn filters.inject(node.childNodes(), function(nodes, filter) {\n \t\treturn filter.apply(nodes)\n \t});\n },\n\n \tinPaneSelectNodeNamed: function(paneName, nodeName) {\n\t\treturn this.inPaneSelectNodeMatching(paneName, function(node) {\n\t\t\treturn node && node.asString && node.asString().replace(/ ?\\(.*\\)/,\"\").endsWith(nodeName) });\n\t},\n\n\tinPaneSelectNodeMatching: function(paneName, test) {\n\t\tvar listItems = this['get' + paneName + 'Content']();\n\t\tif (!listItems) return null;\n\t\tvar nodes = listItems.pluck('value');\n\t\tvar wanted = nodes.detect(test);\n\t\tif (!wanted) return null;\n\t\tvar list = this.panel[paneName].innerMorph();\n\t\t// list.onSelectionUpdate(wanted);\n\t\tlist.setSelection(wanted);\n\t\treturn wanted;\n\t},\n\n\tselectNode: function(node) {\n\t\treturn this.selectNodeMatching(function(otherNode) { return node == otherNode });\n\t\t// var paneName = this.paneNameOfNode(node);\n\t\t// if (!paneName) return;\n\t\t// this.inPaneSelectNodeNamed(paneName, node.asString());\n\t},\n\n\tselectNodeMatching: function(testFunc) {\n\t\tfor (var i = 0; i < this.allPaneNames.length; i++) {\n\t\t\tvar paneName = this.allPaneNames[i];\n\t\t\tvar node = this.inPaneSelectNodeMatching(paneName, testFunc);\n\t\t\tif (node) return node;\n\t\t}\n\t\treturn null;\n\t},\n\tselectNodeNamed: function(name) {\n\t\treturn this.selectNodeMatching(function(node) {\n\t\t\treturn node && node.asString && node.asString().include(name);\n\t\t});\n\t},\n\tselectNothing: function() {\n\t\tif (this.panel) this.setPane1Selection(null, true);\n\t},\n\n\n onPane1SelectionUpdate: function(node) {\n\t\tthis.pane1Selection = node; // for bindings\n\n\t\tthis.panel['Pane2'] && this.panel['Pane2'].innerMorph().clearFilter(); // FIXME, lis filter, not a browser filter!\n\t\t\n this.setPane2Selection(null, true);\n this.setPane2Content([this.emptyText]);\n if (!node) return\n\n\t\tthis.setPane2Content(this.childsFilteredAndAsListItems(node, this.getPane1Filters()));\n \tthis.setSourceString(node.sourceString());\n\t\tthis.updateTitle();\n\n this.setPane1Menu(node.menuSpec().concat(this.commandMenuSpec('Pane1')));\n\t\tthis.setPane2Menu(this.commandMenuSpec('Pane2'));\n\t\tthis.setPane3Menu(this.commandMenuSpec('Pane3'));\n\n\t\tthis.buttonCommands.forEach(function(cmd) { cmd.button.setIsActive(cmd.isActive()) })\n\n\t\tnode.onSelect();\n },\n \n onPane2SelectionUpdate: function(node) {\n\n\t\tthis.pane2Selection = node; // for bindings\n\n\t\tthis.panel['Pane3'] && this.panel['Pane3'].innerMorph().clearFilter(); // FIXME, lis filter, not a browser filter!\n\t\n this.setPane3Selection(null);\n this.setPane3Content([this.emptyText]); \n if (!node) return\n\n this.setPane3Content(this.childsFilteredAndAsListItems(node, this.getPane2Filters()));\n this.setSourceString(node.sourceString());\n\t\tthis.updateTitle();\n\n\t\tthis.setPane2Menu(node.menuSpec().concat(this.commandMenuSpec('Pane2')));\n\t\tthis.setPane3Menu(this.commandMenuSpec('Pane3'));\n\n\t\tthis.buttonCommands.forEach(function(cmd) { cmd.button.setIsActive(cmd.isActive()) })\n\n\t\tnode.onSelect();\n },\n \n\tonPane3SelectionUpdate: function(node) {\n\t\tthis.pane3Selection = node; // for bindings\n\n\t\tthis.panel['Pane4'] && this.panel['Pane4'].innerMorph().clearFilter(); // FIXME, lis filter, not a browser filter!\n\t\n this.setPane4Selection(null);\n this.setPane4Content([this.emptyText]); \n if (!node) return;\n\n this.setPane4Content(this.childsFilteredAndAsListItems(node, this.getPane3Filters()));\n this.setSourceString(node.sourceString());\n\t\tthis.updateTitle();\n\n\t\tthis.setPane3Menu(node.menuSpec().concat(this.commandMenuSpec('Pane3')));\n\t\tthis.setPane4Menu(this.commandMenuSpec('Pane4'));\n\n\t\tthis.buttonCommands.forEach(function(cmd) { cmd.button.setIsActive(cmd.isActive()) })\n\n\t\tnode.onSelect();\n },\n\n\tonPane4SelectionUpdate: function(node) {\n\t\tthis.pane4Selection = node; // for bindings\n\n\t\tif (!node) return;\n\n\t\tthis.setSourceString(node.sourceString());\n\t\tthis.updateTitle();\n\n\t\tthis.setPane4Menu(node.menuSpec().concat(this.commandMenuSpec('Pane4')));\n\t\tthis.buttonCommands.forEach(function(cmd) { cmd.button.setIsActive(cmd.isActive()) })\n\n\t\tnode.onSelect();\n },\n\n\tonSourceStringUpdate: function(methodString, source) {\n\t\tthis.sourceString = methodString;\n\t\tif (!methodString || methodString == this.emptyText || !this.selectedNode()) return;\n\t\tif (this.selectedNode().sourceString() == methodString &&\n\t\t\tsource !== this.panel.sourcePane.innerMorph())\n\t\t\t\treturn;\n\t\tthis.selectedNode().newSource(methodString);\n\t\tthis.nodeChanged(this.selectedNode());\n\t},\n\n\tonPane1ContentUpdate: function() {\n\t},\n\n\tonPane2ContentUpdate: function() {\n\t},\n\n\tonPane3ContentUpdate: function(items, source) {\n\t\tif (source !== this.panel.Pane3.innerMorph())\n\t\t return;\n\t\t// handle drag and drop of items\n\t\tconsole.log('Got ' + items);\n\t},\n\n\tonPane4ContentUpdate: function(items, source) {\n\t},\n\n\tonPane1MenuUpdate: Functions.Null,\n\tonPane2MenuUpdate: Functions.Null,\n\tonPane3MenuUpdate: Functions.Null,\n\tonPane4MenuUpdate: Functions.Null,\n\tonPane1FiltersUpdate: Functions.Null,\n\tonPane2FiltersUpdate: Functions.Null,\n\tonPane3FiltersUpdate: Functions.Null,\n\tonPane4FiltersUpdate: Functions.Null,\n\tonStatusMessageUpdate: Functions.Null,\n\tonRootFiltersUpdate: Functions.Null,\n\n\tallChanged: function(keepUnsavedChanges, changedNode) {\n\t\t// optimization: if no node looks like the changed node in my browser do nothing\n\t\tif (changedNode && this.allNodes().every(function(ea) {return !changedNode.hasSimilarTarget(ea)}))\n\t\t\treturn;\n\n\t\t// FIXME remove duplication\n\t\tvar oldN1 = this.getPane1Selection();\n\t\tvar oldN2 = this.getPane2Selection();\n\t\tvar oldN3 = this.getPane3Selection();\n\t\tvar oldN4 = this.getPane4Selection();\n\n\t\tvar sourcePos = this.panel.sourcePane.getVerticalScrollPosition();\n\n\t\tvar src = keepUnsavedChanges &&\n\t\t\t\t\tthis.hasUnsavedChanges() &&\n\t\t\t\t\tthis.panel.sourcePane.innerMorph().textString;\n\n\t\tif (this.hasUnsavedChanges())\n\t\t\tthis.setSourceString(this.emptyText);\n\n\t\tvar revertStateOfPane = function(paneName, oldNode) {\n\t\t\tif (!oldNode) return;\n\t\t\tvar nodes = this.nodesInPane(paneName);\n\t\t\tvar newNode = nodes.detect(function(ea) {\n\t\t\t return ea && ea.target &&\n\t\t\t\t\t(ea.target == oldNode.target || (ea.target.eq && ea.target.eq(oldNode.target)))\n\t\t\t});\n\t\t\tif (!newNode)\n\t\t\t\tnewNode = nodes.detect(function(ea) {return ea && ea.asString() === oldNode.asString()});\n\t this['set' + paneName + 'Selection'](newNode, true);\n\t\t}.bind(this);\n\t\n\t\tthis.start(); // select rootNode and generate new subnodes\n\n\t\trevertStateOfPane('Pane1', oldN1);\n\t\trevertStateOfPane('Pane2', oldN2);\n\t\trevertStateOfPane('Pane3', oldN3);\n\t\trevertStateOfPane('Pane4', oldN4);\n\n\t\tif (!src) {\n\t\t\tthis.panel.sourcePane.setVerticalScrollPosition(sourcePos);\n\t\t\treturn;\n\t\t}\n\n\t\t//this.setSourceString(src);\n\t\tvar text = this.panel.sourcePane.innerMorph();\n\t\ttext.setTextString(src.toString())\n\t\tthis.panel.sourcePane.setVerticalScrollPosition(sourcePos);\n\t\t// text.changed()\n\t\ttext.showChangeClue(); // FIXME\n\t},\n\n nodeChanged: function(node) {\n // currently update everything, this isn't really necessary\n \t\tthis.allChanged();\n },\n \n\ttextChanged: function(node) {\n\t\t// be careful -- this can lead to overwritten source code\n\t\tvar pane = this.paneNameOfNode(node);\n\t\tif (!pane) return;\n\t\tthis.inPaneSelectNodeMatching(pane, Functions.False); // unselect\n\t\tthis.inPaneSelectNodeMatching(pane, function(other) { return other.target == node.target });\n\t\t// this.setSourceString(node.sourceString());\n\t},\n \n\tsignalNewSource: function(changedNode) {\n\t\tthis.mySourceControl().updateBrowsers(this, changedNode);\n\t},\n\n\tupdateTitle: function() {\n\t\tvar window = this.panel.owner;\n\t\tif (!window) return;\n\t\tvar n1 = this.getPane1Selection();\n\t var n2 = this.getPane2Selection();\n\t var n3 = this.getPane3Selection();\n\t\tvar n4 = this.getPane4Selection();\n\t\tvar title = '';\n\t\tif (n1) title += n1.asString();\n\t\tif (n2) title += ':' + n2.asString();\n\t\tif (n3) title += ':' + n3.asString();\n\t\tif (n4) title += ':' + n4.asString();\n\t\twindow.setTitle(title);\n\t},\n\n},\n'browser related', {\n\n installFilter: function(filter, paneName) {\n\t\tvar getter = 'get' + paneName + 'Filters';\n\t\tvar setter = 'set' + paneName + 'Filters';\n \tthis[setter](this[getter]().concat([filter]).uniq());\n },\n\n uninstallFilters: function(testFunc, paneName) {\n \t// testFunc returns true if the filter should be removed\n\t\tvar getter = 'get' + paneName + 'Filters';\n\t\tvar setter = 'set' + paneName + 'Filters';\n \tthis[setter](this[getter]().reject(testFunc));\n },\n\n\tcommandMenuSpec: function(pane) {\n\t\tvar result = this.commands()\n\t\t\t.collect(function(ea) { return new ea(this) }, this)\n\t\t\t.select(function(ea) { return ea.wantsMenu() && ea.isActive(pane) })\n\t\t\t.inject([], function(all, ea) { return all.concat(ea.trigger()) });\n\t\tif (result.length > 0)\n\t\t\tresult.unshift(['-------']);\n\t\treturn result;\n\t},\n\n\tsetStatusMessage: function(msg, color, delay) {\n\t\tvar s = this.panel.sourcePane;\t\n\t\tif (!this._statusMorph) {\n\t\t\tthis._statusMorph = new TextMorph(pt(300,30).extentAsRectangle());\n\t\t\tthis._statusMorph.applyStyle({borderWidth: 0, strokeOpacity: 0})\n\t\t}\n\t\tvar statusMorph = this._statusMorph;\n\t\tstatusMorph.setTextString(msg);\n\t\ts.addMorph(statusMorph);\n\t\tstatusMorph.setTextColor(color || Color.black);\n\t\tstatusMorph.centerAt(s.innerBounds().center());\n\t\t(function() { statusMorph.remove() }).delay(delay || 2);\n\t},\n\n\tworld: function() {\n\t\treturn this.panel.world();\n\t},\n\n\tconfirm: function(question, callback) {\n\t\tthis.world().confirm(question, callback.bind(this));\n\t},\n\n\tensureSourceNotAccidentlyDeleted: function(callback) {\n\t\t// checks if the source code has unsaved changes if it hasn't or if the\n\t\t// user wants to discard them then run the callback\n\t\t// otherwise do nothing\n\t\tif (!this.hasUnsavedChanges()) {\n\t\t\tcallback.apply(this);\n\t\t\treturn;\n\t\t}\n\t\tthis.confirm('There are unsaved changes. Discard them?',\n\t\t\tfunction(answer) { answer && callback.apply(this) });\n\t},\n\n},\n'source pane', {\n\tselectStringInSourcePane: function(string) {\n\t\tvar textMorph =\tthis.panel.sourcePane.innerMorph(),\n\t\t\tindex = textMorph.textString.indexOf(string);\n\t\ttextMorph.requestKeyboardFocus(WorldMorph.current().firstHand())\n\t\ttextMorph.setSelectionRange(index, index + string.length)\n\t},\n});\n:\nTypeError: Object has no method 'setStatusMessage'\nTypeError: Object has no method 'setStatusMessage'\n at Text.showError (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Core.js?1301991672551:1309:8)\n at AllMethodCategoryFragmentNode.newSource (eval at (http://www.lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:1:0))\n at SystemBrowser.onSourceStringUpdate (eval at (http://www.lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:1:0))\n at SystemBrowser.$$setSourceString (eval at (http://www.lively-kernel.org/repository/webwerkstatt/lively/bootstrap.js:1:0))\n at SystemBrowser.connectionWrapper [as setSourceString] (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:263:51)\n at http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:175:19\n at AttributeConnection.update (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:186:5)\n at Text.savedTextString (http://www.lively-kernel.org/repository/webwerkstatt/lively/bindings.js?1301991672388:243:8)\n at Text.doSave (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Core.js?1301991672551:946:44)\n at Text.processCommandKeys (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Core.js?1301991672551:909:21)\nLOGERROR: TypeError: Object has no method 'setStatusMessage'\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nrun test lively.morphic.Tests.RichTextHTMLTests\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nError in handleEvent ReferenceError: pos is not defined\nReferenceError: pos is not defined\n at HorizontalDivider.onDrag (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Widgets.js?1301991672554:956:10)\n at World.onMouseMove (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:476:50)\n at EventHandler.handleEvent (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:98:64)\n at HTMLDivElement.bound (http://www.lively-kernel.org/repository/webwerkstatt/lively/Base.js?1301991672313:217:22)\nError in handleEvent ReferenceError: pos is not defined\nReferenceError: pos is not defined\n at HorizontalDivider.onDrag (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Widgets.js?1301991672554:956:10)\n at World.onMouseMove (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:476:50)\n at EventHandler.handleEvent (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:98:64)\n at HTMLDivElement.bound (http://www.lively-kernel.org/repository/webwerkstatt/lively/Base.js?1301991672313:217:22)\nError in handleEvent ReferenceError: pos is not defined\nReferenceError: pos is not defined\n at HorizontalDivider.onDrag (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Widgets.js?1301991672554:956:10)\n at World.onMouseMove (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:476:50)\n at EventHandler.handleEvent (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:98:64)\n at HTMLDivElement.bound (http://www.lively-kernel.org/repository/webwerkstatt/lively/Base.js?1301991672313:217:22)\nError in handleEvent ReferenceError: pos is not defined\nReferenceError: pos is not defined\n at HorizontalDivider.onDrag (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Widgets.js?1301991672554:956:10)\n at World.onMouseMove (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:476:50)\n at EventHandler.handleEvent (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:98:64)\n at HTMLDivElement.bound (http://www.lively-kernel.org/repository/webwerkstatt/lively/Base.js?1301991672313:217:22)\nError in handleEvent ReferenceError: pos is not defined\nReferenceError: pos is not defined\n at HorizontalDivider.onDrag (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Widgets.js?1301991672554:956:10)\n at World.onMouseMove (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:476:50)\n at EventHandler.handleEvent (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:98:64)\n at HTMLDivElement.bound (http://www.lively-kernel.org/repository/webwerkstatt/lively/Base.js?1301991672313:217:22)\nError in handleEvent ReferenceError: pos is not defined\nReferenceError: pos is not defined\n at HorizontalDivider.onDrag (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Widgets.js?1301991672554:956:10)\n at World.onMouseMove (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:476:50)\n at EventHandler.handleEvent (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:98:64)\n at HTMLDivElement.bound (http://www.lively-kernel.org/repository/webwerkstatt/lively/Base.js?1301991672313:217:22)\nError in handleEvent ReferenceError: pos is not defined\nReferenceError: pos is not defined\n at HorizontalDivider.onDrag (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Widgets.js?1301991672554:956:10)\n at World.onMouseMove (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:476:50)\n at EventHandler.handleEvent (http://www.lively-kernel.org/repository/webwerkstatt/lively/morphic/Events.js?1301991672552:98:64)\n at HTMLDivElement.bound (http://www.lively-kernel.org/repository/webwerkstatt/lively/Base.js?1301991672313:217:22)\n Tests.js:lively.morphic.Tests.ButtonMorphTests:-- all --\nnull\n\nnull\n\nnull\n\nnull\n\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n WidgetsTraits.js:HorizontalDividerTrait:addScalingBelow\nnull\n Events.js\nnull\n Widgets.js:lively.morphic.Button:-- all --:onMouseDown (proto)\nnull\n\nnull\n\n\n\n\n\nnull\n\nnull\n\nnull\n\n\nnull\n\nnull\n\nnull\n\nnull\n Events.js\nnull\n\n\n\n\n Widgets.js:lively.morphic.Button:-- all --:onMouseDown (proto)\nnull\n Events.js:lively.morphic.Morph (extension):-- all --\nnull\n\nnull\n\nnull\n\n\n\n\n\n\n Widgets.js:lively.morphic.Button:-- all --:onMouseDown (proto)\nnull\n\nnull\n\n\n\n\n\n\n\n\n\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n Events.js:lively.morphic.Morph (extension):-- all --:onMouseUp (proto)\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\n\n Tests.js:lively.morphic.Tests.ButtonMorphTests:-- all --\n\nnull\n\n\n Tests.js:lively.morphic.Tests.ButtonMorphTests:-- all --\n\nnull\n\n\n Tests.js:lively.morphic.Tests.ButtonMorphTests:-- all --\n\nnull\n\nnull\n\nnull\n\n\n Tests.js:lively.morphic.Tests.ButtonMorphTests:-- all --\n\nnull\n\n\n Tests.js:lively.morphic.Tests.ButtonMorphTests:-- all --\n\nnull\n\n\n Tests.js:lively.morphic.Tests.ButtonMorphTests:-- all --\n\nnull\n\n\n Tests.js:lively.morphic.Tests.ButtonMorphTests:-- all --\n\nnull\n\nnull\n\nnull\n\nnull\n Workspace\n\nnull\n Workspace\n\nnull\n Workspace\n\nnull\n Workspace\n\nnull\n\nnull\n Tests.js:lively.morphic.Tests.ButtonMorphTests:-- all --\n\nnull\n\nnull\n\nnull\n\nnull\ndropping on \nEventHandler still registered in DOM?\nEventHandler still registered in DOM?\nEventHandler still registered in DOM?\n\nnull\n\nnull\n\nnull\ndropping on \nEventHandler still registered in DOM?\nEventHandler still registered in DOM?\nEventHandler still registered in DOM?\nEventHandler still registered in DOM?\nEventHandler still registered in DOM?\nEventHandler still registered in DOM?\nEventHandler still registered in DOM?\n\nnull\n\n\nnull\n\n\nnull\n\nnull\n\nnull\n Widgets.js:lively.morphic.Button:-- all --:onMouseUp (proto)\n\nnull\n Events.js:lively.morphic.Morph (extension):-- all --:onMouseDown (proto)\n\nnull\n\n\n Tests.js:lively.morphic.Tests.ButtonMorphTests:-- all --\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n Events.js:lively.morphic.Morph (extension):-- all --:onMouseDown (proto)\nnull\n\nnull\n\nnull\n Widgets.js:lively.morphic.HorizontalDivider:-- all --:onDragStart (proto)\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n Events.js:lively.morphic.World (extension):-- all --:onMouseMove (proto)\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\n\nnull\n\n\nnull\n\nnull\n\n\nnull\n\n\nnull\n\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n Workspace\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\n Workspace\nnull\n\nnull\nSyntaxError: Unexpected token ILLEGAL\nTypeError: function call() { [native code] } is not a constructor\n\nnull\n\nnull\n\nnull\n\nnull\n\nnull\ndropping on \n\nnull\n\nnull\ndropping on \n\nnull\n\nnull\n\nnull\ndropping on \n\nnull\n\nnull\ndropping on \n\nnull\n\nnull\n\nnull\ndropping on \n Tests.js:lively.morphic.Tests.ButtonMorphTests:-- all --\nnull\n\nnull\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nLOGERROR: TypeError: Cannot call method 'removeOpenMenu' of undefined\nLOGERROR: TypeError: Cannot call method 'removeOpenMenu' of undefined\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\nsearching at 187\nsearching at 207\nsearching at 323\nmorphDispatchTable does no include: getTextString for renderContext: alively.morphic.SVG.RenderContext\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 5]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [3, 4]; values = [TextEmphasis({style: bold}), TextEmphasis({})]\nruns = [7]; values = [TextEmphasis({})]\ndropping on \ndropping on \ndropping on \npt(92.0,767.0)","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"336":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"337":{"submorphs":[{"__isSmartRef__":true,"id":338},{"__isSmartRef__":true,"id":346},{"__isSmartRef__":true,"id":382},{"__isSmartRef__":true,"id":406}],"scripts":[],"id":29558,"shape":{"__isSmartRef__":true,"id":431},"droppingEnabled":true,"halosEnabled":true,"layout":{"__isSmartRef__":true,"id":443},"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":444},"eventsAreIgnored":true,"windowMorph":{"__isSmartRef__":true,"id":326},"label":{"__isSmartRef__":true,"id":338},"closeButton":{"__isSmartRef__":true,"id":346},"menuButton":{"__isSmartRef__":true,"id":382},"collapseButton":{"__isSmartRef__":true,"id":406},"priorExtent":{"__isSmartRef__":true,"id":445},"owner":{"__isSmartRef__":true,"id":326},"__SourceModuleName__":"Global.lively.morphic.Widgets","__LivelyClassName__":"lively.morphic.TitleBar"},"338":{"submorphs":[],"scripts":[],"id":29559,"shape":{"__isSmartRef__":true,"id":339},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":false,"_WhiteSpaceHandling":"pre","fixedHeight":true,"allowsInput":false,"_OverflowMode":"hidden","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":342},"_MaxTextWidth":null,"_MaxTextHeight":22,"isLabel":true,"eventsAreIgnored":true,"padding":{"__isSmartRef__":true,"id":343},"_FontSize":10,"_Padding":{"__isSmartRef__":true,"id":343},"owner":{"__isSmartRef__":true,"id":337},"__SourceModuleName__":"Global.lively.morphic.Core","textChunks":[{"__isSmartRef__":true,"id":344}],"__LivelyClassName__":"lively.morphic.Text"},"339":{"position":{"__isSmartRef__":true,"id":340},"_Extent":{"__isSmartRef__":true,"id":341},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":331},"_Fill":null,"_BorderRadius":0,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"340":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"341":{"x":72,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"342":{"x":281.5,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"343":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"344":{"style":{"__isSmartRef__":true,"id":345},"morph":{"__isSmartRef__":true,"id":338},"storedString":"Workspace","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"345":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"346":{"submorphs":[{"__isSmartRef__":true,"id":347}],"scripts":[],"id":29560,"shape":{"__isSmartRef__":true,"id":355},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":369},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":359},"lighterFill":{"__isSmartRef__":true,"id":370},"label":{"__isSmartRef__":true,"id":347},"owner":{"__isSmartRef__":true,"id":337},"layout":{"__isSmartRef__":true,"id":379},"attributeConnections":[{"__isSmartRef__":true,"id":380},{"__isSmartRef__":true,"id":381}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","__LivelyClassName__":"lively.morphic.WindowControl"},"347":{"submorphs":[],"scripts":[],"id":29561,"shape":{"__isSmartRef__":true,"id":348},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":false,"_WhiteSpaceHandling":"pre","fixedHeight":true,"allowsInput":false,"_OverflowMode":"hidden","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":351},"_MaxTextWidth":null,"_MaxTextHeight":17,"padding":{"__isSmartRef__":true,"id":352},"_Padding":{"__isSmartRef__":true,"id":352},"owner":{"__isSmartRef__":true,"id":346},"isLabel":true,"eventsAreIgnored":true,"_FontSize":8,"__SourceModuleName__":"Global.lively.morphic.Core","textChunks":[{"__isSmartRef__":true,"id":353}],"__LivelyClassName__":"lively.morphic.Text"},"348":{"position":{"__isSmartRef__":true,"id":349},"_Extent":{"__isSmartRef__":true,"id":350},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":331},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"349":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"350":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"351":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"352":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"353":{"style":{"__isSmartRef__":true,"id":354},"morph":{"__isSmartRef__":true,"id":347},"storedString":"X","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"354":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"355":{"position":{"__isSmartRef__":true,"id":356},"_Extent":{"__isSmartRef__":true,"id":357},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":358},"_Fill":{"__isSmartRef__":true,"id":359},"_StrokeOpacity":0,"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"356":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"357":{"x":17,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"358":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"359":{"stops":[{"__isSmartRef__":true,"id":360},{"__isSmartRef__":true,"id":362},{"__isSmartRef__":true,"id":364},{"__isSmartRef__":true,"id":366}],"vector":{"__isSmartRef__":true,"id":368},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"360":{"offset":0,"color":{"__isSmartRef__":true,"id":361}},"361":{"r":0.9600000000000001,"g":0.9600000000000001,"b":0.9600000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"362":{"offset":0.4,"color":{"__isSmartRef__":true,"id":363}},"363":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"364":{"offset":0.6,"color":{"__isSmartRef__":true,"id":365}},"365":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"366":{"offset":1,"color":{"__isSmartRef__":true,"id":367}},"367":{"r":0.94,"g":0.94,"b":0.94,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"368":{"x":0,"y":0,"width":0,"height":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"369":{"x":615,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"370":{"stops":[{"__isSmartRef__":true,"id":371},{"__isSmartRef__":true,"id":373},{"__isSmartRef__":true,"id":375},{"__isSmartRef__":true,"id":377}],"vector":{"__isSmartRef__":true,"id":368},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"371":{"offset":0,"color":{"__isSmartRef__":true,"id":372}},"372":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"373":{"offset":0.4,"color":{"__isSmartRef__":true,"id":374}},"374":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"375":{"offset":0.6,"color":{"__isSmartRef__":true,"id":376}},"376":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"377":{"offset":1,"color":{"__isSmartRef__":true,"id":378}},"378":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"379":{"moveHorizontal":true},"380":{"sourceObj":{"__isSmartRef__":true,"id":346},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":326},"targetMethodName":"getCloseHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"381":{"sourceObj":{"__isSmartRef__":true,"id":346},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":326},"targetMethodName":"initiateShutdown","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"382":{"submorphs":[{"__isSmartRef__":true,"id":383}],"scripts":[],"id":29562,"shape":{"__isSmartRef__":true,"id":391},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":394},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":359},"lighterFill":{"__isSmartRef__":true,"id":395},"label":{"__isSmartRef__":true,"id":383},"owner":{"__isSmartRef__":true,"id":337},"attributeConnections":[{"__isSmartRef__":true,"id":404},{"__isSmartRef__":true,"id":405}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","__LivelyClassName__":"lively.morphic.WindowControl"},"383":{"submorphs":[],"scripts":[],"id":29563,"shape":{"__isSmartRef__":true,"id":384},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":false,"_WhiteSpaceHandling":"pre","fixedHeight":true,"allowsInput":false,"_OverflowMode":"hidden","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":387},"_MaxTextWidth":null,"_MaxTextHeight":17,"padding":{"__isSmartRef__":true,"id":388},"_Padding":{"__isSmartRef__":true,"id":388},"owner":{"__isSmartRef__":true,"id":382},"isLabel":true,"eventsAreIgnored":true,"_FontSize":8,"__SourceModuleName__":"Global.lively.morphic.Core","textChunks":[{"__isSmartRef__":true,"id":389}],"__LivelyClassName__":"lively.morphic.Text"},"384":{"position":{"__isSmartRef__":true,"id":385},"_Extent":{"__isSmartRef__":true,"id":386},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":331},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"385":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"386":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"387":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"388":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"389":{"style":{"__isSmartRef__":true,"id":390},"morph":{"__isSmartRef__":true,"id":383},"storedString":"M","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"390":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"391":{"position":{"__isSmartRef__":true,"id":392},"_Extent":{"__isSmartRef__":true,"id":393},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":358},"_Fill":{"__isSmartRef__":true,"id":359},"_StrokeOpacity":0,"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"392":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"393":{"x":17,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"394":{"x":3,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"395":{"stops":[{"__isSmartRef__":true,"id":396},{"__isSmartRef__":true,"id":398},{"__isSmartRef__":true,"id":400},{"__isSmartRef__":true,"id":402}],"vector":{"__isSmartRef__":true,"id":368},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"396":{"offset":0,"color":{"__isSmartRef__":true,"id":397}},"397":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"398":{"offset":0.4,"color":{"__isSmartRef__":true,"id":399}},"399":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"400":{"offset":0.6,"color":{"__isSmartRef__":true,"id":401}},"401":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"402":{"offset":1,"color":{"__isSmartRef__":true,"id":403}},"403":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"404":{"sourceObj":{"__isSmartRef__":true,"id":382},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":326},"targetMethodName":"getMenuHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"405":{"sourceObj":{"__isSmartRef__":true,"id":382},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":326},"targetMethodName":"showTargetMorphMenu","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"406":{"submorphs":[{"__isSmartRef__":true,"id":407}],"scripts":[],"id":29564,"shape":{"__isSmartRef__":true,"id":415},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":418},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":359},"lighterFill":{"__isSmartRef__":true,"id":419},"label":{"__isSmartRef__":true,"id":407},"owner":{"__isSmartRef__":true,"id":337},"layout":{"__isSmartRef__":true,"id":428},"attributeConnections":[{"__isSmartRef__":true,"id":429},{"__isSmartRef__":true,"id":430}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","__LivelyClassName__":"lively.morphic.WindowControl"},"407":{"submorphs":[],"scripts":[],"id":29565,"shape":{"__isSmartRef__":true,"id":408},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":false,"_WhiteSpaceHandling":"pre","fixedHeight":true,"allowsInput":false,"_OverflowMode":"hidden","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":411},"_MaxTextWidth":null,"_MaxTextHeight":17,"padding":{"__isSmartRef__":true,"id":412},"_Padding":{"__isSmartRef__":true,"id":412},"owner":{"__isSmartRef__":true,"id":406},"isLabel":true,"eventsAreIgnored":true,"_FontSize":8,"__SourceModuleName__":"Global.lively.morphic.Core","textChunks":[{"__isSmartRef__":true,"id":413}],"__LivelyClassName__":"lively.morphic.Text"},"408":{"position":{"__isSmartRef__":true,"id":409},"_Extent":{"__isSmartRef__":true,"id":410},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":331},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"409":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"410":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"411":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"412":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"413":{"style":{"__isSmartRef__":true,"id":414},"morph":{"__isSmartRef__":true,"id":407},"storedString":"–","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"414":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"415":{"position":{"__isSmartRef__":true,"id":416},"_Extent":{"__isSmartRef__":true,"id":417},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":358},"_Fill":{"__isSmartRef__":true,"id":359},"_StrokeOpacity":0,"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"416":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"417":{"x":17,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"418":{"x":596,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"419":{"stops":[{"__isSmartRef__":true,"id":420},{"__isSmartRef__":true,"id":422},{"__isSmartRef__":true,"id":424},{"__isSmartRef__":true,"id":426}],"vector":{"__isSmartRef__":true,"id":368},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"420":{"offset":0,"color":{"__isSmartRef__":true,"id":421}},"421":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"422":{"offset":0.4,"color":{"__isSmartRef__":true,"id":423}},"423":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"424":{"offset":0.6,"color":{"__isSmartRef__":true,"id":425}},"425":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"426":{"offset":1,"color":{"__isSmartRef__":true,"id":427}},"427":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"428":{"moveHorizontal":true},"429":{"sourceObj":{"__isSmartRef__":true,"id":406},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":326},"targetMethodName":"getCollapseHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"430":{"sourceObj":{"__isSmartRef__":true,"id":406},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":326},"targetMethodName":"toggleCollapse","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"431":{"position":{"__isSmartRef__":true,"id":432},"_Extent":{"__isSmartRef__":true,"id":433},"_BorderWidth":2,"_BorderColor":{"__isSmartRef__":true,"id":434},"_Fill":{"__isSmartRef__":true,"id":435},"_StrokeOpacity":1,"_BorderRadius":"8px 8px 0px 0px","__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"432":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"433":{"x":635,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"434":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"435":{"stops":[{"__isSmartRef__":true,"id":436},{"__isSmartRef__":true,"id":438},{"__isSmartRef__":true,"id":440}],"vector":{"__isSmartRef__":true,"id":442},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"436":{"offset":0,"color":{"__isSmartRef__":true,"id":437}},"437":{"r":0.7200000000000001,"g":0.7200000000000001,"b":0.7200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"438":{"offset":0.6,"color":{"__isSmartRef__":true,"id":439}},"439":{"r":0.9,"g":0.9,"b":0.9,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"440":{"offset":1,"color":{"__isSmartRef__":true,"id":441}},"441":{"r":0.7200000000000001,"g":0.7200000000000001,"b":0.7200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"442":{"x":0,"y":1,"width":0,"height":-1,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"443":{"resizeWidth":true,"adjustForNewBounds":true},"444":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"445":{"x":635,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"446":{"_BorderWidth":0,"_Fill":null,"_StrokeOpacity":0,"_BorderRadius":0,"_Extent":{"__isSmartRef__":true,"id":447},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"447":{"x":635,"y":356,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"448":{"adjustForNewBounds":true},"449":{"x":1237,"y":405,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"450":{"x":635,"y":356,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"451":{"x":1734,"y":418,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"452":{"submorphs":[{"__isSmartRef__":true,"id":453},{"__isSmartRef__":true,"id":463}],"scripts":[],"id":397,"shape":{"__isSmartRef__":true,"id":564},"droppingEnabled":true,"halosEnabled":true,"draggingEnabled":true,"layout":{"__isSmartRef__":true,"id":566},"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":567},"priorExtent":{"__isSmartRef__":true,"id":568},"targetMorph":{"__isSmartRef__":true,"id":453},"titleBar":{"__isSmartRef__":true,"id":463},"contentOffset":{"__isSmartRef__":true,"id":459},"collapsedTransform":null,"collapsedExtent":null,"expandedTransform":null,"expandedExtent":null,"ignoreEventsOnExpand":false,"owner":{"__isSmartRef__":true,"id":0},"highlighted":true,"_Rotation":0,"prevDragPos":{"__isSmartRef__":true,"id":569},"showsHalos":false,"halos":[],"__SourceModuleName__":"Global.lively.morphic.Widgets","__LivelyClassName__":"lively.morphic.Window"},"453":{"submorphs":[],"scripts":[],"id":396,"shape":{"__isSmartRef__":true,"id":454},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowsInput":true,"_OverflowMode":"auto","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":459},"_MaxTextWidth":746,"_MaxTextHeight":312,"textColor":{"__isSmartRef__":true,"id":457},"owner":{"__isSmartRef__":true,"id":452},"layout":{"__isSmartRef__":true,"id":460},"showsHalos":false,"halos":[],"__SourceModuleName__":"Global.lively.morphic.Core","lastSearchString":"start","charsReplaced":"","lastFindLoc":3226,"_lastFindLoc":86,"savedTextString":"t = $morph('Text2')\nnewShowMorph(t)\nparent = t.renderContext().textNode;\nExporter.stringify(parent)\n\nProperties.all(parent)\n\nt.getTextElements()\n\nt.textString = t.textString;\nt.textString.length\n\nrange = getRange(t, 8, 12)\n\nsetStyle(t, 8, 12, 'bold')\nsetStyle(t, 8, 12, 'normal')\n\ngetRange = function(textMorph, from, to) {\n\tvar range = document.createRange(),\n\t\tstartNodeAndIdx = textMorph.getTextElementAndLocalIndexForGlobalIndex(from),\n\t\tendNodeAndIdx = textMorph.getTextElementAndLocalIndexForGlobalIndex(to);\n\trange.setStart(startNodeAndIdx[0], startNodeAndIdx[1]);\n\trange.setEnd(endNodeAndIdx[0], endNodeAndIdx[1]);\n\treturn range\n}\n\nsetStyle = function(textMorph, from, to, style) {\n\tvar range = getRange(textMorph, from, to);\nalert('range: ' + range);\n\tvar span = XHTMLNS.create('span');\n\tspan.style.fontWeight = style;\n\trange.surroundContents(span);\n}\n\nt.textStyle = null\nrt = t.getRichText()\nt.setRichText(rt)\n\nrt\nt.emphasize({style: 'bold'}, 1,6)\nt.emphasize({style: 'unbold'}, 1,6)\nt.emphasize({style: 'bold'}, 0,1)\nt.emphasize({style: 'unbold'}, 0,1)\nt.focus()\nt.setSelectionRange(0,2)\nt.emphasize({style: 'normal'}, 0, 2)\n[1,3,4].map(function(ea) { return this + ea}, 5)\nnew lively.RunArray([], [])","textChunks":[{"__isSmartRef__":true,"id":461}],"__LivelyClassName__":"lively.morphic.Text"},"454":{"position":{"__isSmartRef__":true,"id":455},"_Extent":{"__isSmartRef__":true,"id":456},"_BorderWidth":2,"_BorderColor":{"__isSmartRef__":true,"id":457},"_Fill":{"__isSmartRef__":true,"id":458},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"455":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"456":{"x":746,"y":312,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"457":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"458":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"459":{"x":0,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"460":{"resizeWidth":true,"resizeHeight":true},"461":{"style":{"__isSmartRef__":true,"id":462},"morph":{"__isSmartRef__":true,"id":453},"storedString":"connect(this.world(), 'lastAlert', $morph('transcript'), 'appendTextString', {converter: function(str) { return '\\n' + str }});\n\nt1 = $morph('Text')\nt1.setTextString('ein test');\nt1.textStyle = null\nt1.getTextStyle().asArray()\nt1.emphasize({style: 'bold'}, 0, 2);\nt1.getRange(0, 2)\nt1.emphasize({style: 'bold'}, 5, 6);\nExporter.stringify(t1.renderContext().textNode)\n\nt1.renderContext().textNode.childNodes[2]\n\nt = $morph('Text2')\nnewShowMorph(t)\nparent = t.renderContext().textNode;\nExporter.stringify(parent)\n\nparent.normalize()\nProperties.all(parent)\n\nt.getTextElements()\n\nt.textString = t.textString;\nt.textString.length\n\nrange = getRange(t, 8, 12)\nrange\ncontent = range.cloneContents()\n\nrange.commonAncestorContainer\n\nExporter.stringify(content)\n\nsetStyle(t, 8, 12, 'bold')\nsetStyle(t, 8, 12, 'normal')\nsetStyle(t, 9, 11, 'bold')\n\n\nsetStyle = function(textMorph, from, to, style) {\n\tvar range = getRange(textMorph, from, to);\nalert('range: ' + range);\n\n\tvar fragment = range.extractContents();\n\n\tfragment.normalize()\n\tif (fragment.childNodes.length == 1 && fragment.childNodes[0].tagName == 'span') {\n\t\tvar span = fragment.childNodes[0];\n\t} else {\n\t\tvar span = XHTMLNS.create('span');\n\t\tspan.appendChild(fragment);\n\t}\n\n\tspan.style.fontWeight = style;\n\trange.insertNode(span)\n\n\t// textMorph.renderContext().textNode.appendChild(span)\n\t// range.surroundContents(span);\n}\n\nt.textStyle = null\nrt = t.getRichText()\nt.setRichText(rt)\n\nrt\nt.emphasize({style: 'bold'}, 1,6)\nt.emphasize({style: 'unbold'}, 1,6)\nt.emphasize({style: 'bold'}, 0,1)\nt.emphasize({style: 'unbold'}, 0,1)\nt.focus()\nt.setSelectionRange(0,2)\nt.emphasize({style: 'normal'}, 0, 2)\n[1,3,4].map(function(ea) { return this + ea}, 5)\n\n\narr = new lively.RunArray([], [])\n\n\nlist.renderContext().listNode.\nExporter.stringify(list.renderContext().subNodes[1])\nlist.renderContext().subNodes[1].style.backgroundColor\n
\n\t1
\n\t2
3
\nlist = new lively.morphic.List(new Rectangle(0,0, 100, 100), [1, 2, 3])\nlist.openInWorld()\nlist.updateList([1, 2, 3])\nlist.setSelection(2)\nColor.green.toCSSString()\nColor.green.toRGBAString()\nColor.green\nthis.world().statusMessages[0].remove\nthis.world().statusMessages.invoke('remove')\nthis.world().statusMessages.forEach(function(ea) {\n\tea.addScript(function remove() {\n\t\t\tvar world = this.world();\n\t\t\tif (world.statusMessages)\n\t\t\t\tworld.statusMessages = world.statusMessages.without(this);\n\t\t\t// return $super();\n\t\t\treturn lively.morphic.Morph.prototype.remove.apply(this)\n\t\t})\n})\ndisconnect(this.world(), 'clickedOnMorph', this.world(), 'alert', {converter: function(v) { if (!v) debugger; return v}})","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"462":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"463":{"submorphs":[{"__isSmartRef__":true,"id":464},{"__isSmartRef__":true,"id":472},{"__isSmartRef__":true,"id":508},{"__isSmartRef__":true,"id":532}],"scripts":[],"id":398,"shape":{"__isSmartRef__":true,"id":557},"droppingEnabled":true,"halosEnabled":true,"layout":{"__isSmartRef__":true,"id":561},"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":562},"eventsAreIgnored":true,"windowMorph":{"__isSmartRef__":true,"id":452},"label":{"__isSmartRef__":true,"id":464},"closeButton":{"__isSmartRef__":true,"id":472},"menuButton":{"__isSmartRef__":true,"id":508},"collapseButton":{"__isSmartRef__":true,"id":532},"priorExtent":{"__isSmartRef__":true,"id":563},"owner":{"__isSmartRef__":true,"id":452},"__SourceModuleName__":"Global.lively.morphic.Widgets","__LivelyClassName__":"lively.morphic.TitleBar"},"464":{"submorphs":[],"scripts":[],"id":399,"shape":{"__isSmartRef__":true,"id":465},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":false,"_WhiteSpaceHandling":"pre","fixedHeight":true,"allowsInput":false,"_OverflowMode":"hidden","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":468},"_MaxTextWidth":null,"_MaxTextHeight":22,"textColor":{"__isSmartRef__":true,"id":457},"isLabel":true,"eventsAreIgnored":true,"padding":{"__isSmartRef__":true,"id":469},"_FontSize":10,"_Padding":{"__isSmartRef__":true,"id":469},"owner":{"__isSmartRef__":true,"id":463},"__SourceModuleName__":"Global.lively.morphic.Core","textChunks":[{"__isSmartRef__":true,"id":470}],"__LivelyClassName__":"lively.morphic.Text"},"465":{"position":{"__isSmartRef__":true,"id":466},"_Extent":{"__isSmartRef__":true,"id":467},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":457},"_Fill":null,"_BorderRadius":0,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"466":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"467":{"x":72,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"468":{"x":337,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"469":{"x":0,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"470":{"style":{"__isSmartRef__":true,"id":471},"morph":{"__isSmartRef__":true,"id":464},"storedString":"Workspace","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"471":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"472":{"submorphs":[{"__isSmartRef__":true,"id":473}],"scripts":[],"id":400,"shape":{"__isSmartRef__":true,"id":481},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":495},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":485},"lighterFill":{"__isSmartRef__":true,"id":496},"label":{"__isSmartRef__":true,"id":473},"owner":{"__isSmartRef__":true,"id":463},"layout":{"__isSmartRef__":true,"id":505},"attributeConnections":[{"__isSmartRef__":true,"id":506},{"__isSmartRef__":true,"id":507}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","__LivelyClassName__":"lively.morphic.WindowControl"},"473":{"submorphs":[],"scripts":[],"id":401,"shape":{"__isSmartRef__":true,"id":474},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":false,"_WhiteSpaceHandling":"pre","fixedHeight":true,"allowsInput":false,"_OverflowMode":"hidden","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":477},"_MaxTextWidth":null,"_MaxTextHeight":17,"textColor":{"__isSmartRef__":true,"id":457},"padding":{"__isSmartRef__":true,"id":478},"_Padding":{"__isSmartRef__":true,"id":478},"owner":{"__isSmartRef__":true,"id":472},"isLabel":true,"eventsAreIgnored":true,"_FontSize":8,"__SourceModuleName__":"Global.lively.morphic.Core","textChunks":[{"__isSmartRef__":true,"id":479}],"__LivelyClassName__":"lively.morphic.Text"},"474":{"position":{"__isSmartRef__":true,"id":475},"_Extent":{"__isSmartRef__":true,"id":476},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":457},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"475":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"476":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"477":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"478":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"479":{"style":{"__isSmartRef__":true,"id":480},"morph":{"__isSmartRef__":true,"id":473},"storedString":"X","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"480":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"481":{"position":{"__isSmartRef__":true,"id":482},"_Extent":{"__isSmartRef__":true,"id":483},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":484},"_Fill":{"__isSmartRef__":true,"id":485},"_StrokeOpacity":0,"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"482":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"483":{"x":17,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"484":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"485":{"stops":[{"__isSmartRef__":true,"id":486},{"__isSmartRef__":true,"id":488},{"__isSmartRef__":true,"id":490},{"__isSmartRef__":true,"id":492}],"vector":{"__isSmartRef__":true,"id":494},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"486":{"offset":0,"color":{"__isSmartRef__":true,"id":487}},"487":{"r":0.9600000000000001,"g":0.9600000000000001,"b":0.9600000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"488":{"offset":0.4,"color":{"__isSmartRef__":true,"id":489}},"489":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"490":{"offset":0.6,"color":{"__isSmartRef__":true,"id":491}},"491":{"r":0.8200000000000001,"g":0.8200000000000001,"b":0.8200000000000001,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"492":{"offset":1,"color":{"__isSmartRef__":true,"id":493}},"493":{"r":0.94,"g":0.94,"b":0.94,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"494":{"x":0,"y":0,"width":0,"height":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"495":{"x":726,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"496":{"stops":[{"__isSmartRef__":true,"id":497},{"__isSmartRef__":true,"id":499},{"__isSmartRef__":true,"id":501},{"__isSmartRef__":true,"id":503}],"vector":{"__isSmartRef__":true,"id":494},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"497":{"offset":0,"color":{"__isSmartRef__":true,"id":498}},"498":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"499":{"offset":0.4,"color":{"__isSmartRef__":true,"id":500}},"500":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"501":{"offset":0.6,"color":{"__isSmartRef__":true,"id":502}},"502":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"503":{"offset":1,"color":{"__isSmartRef__":true,"id":504}},"504":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"505":{"moveHorizontal":true},"506":{"sourceObj":{"__isSmartRef__":true,"id":472},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":452},"targetMethodName":"getCloseHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"507":{"sourceObj":{"__isSmartRef__":true,"id":472},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":452},"targetMethodName":"initiateShutdown","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"508":{"submorphs":[{"__isSmartRef__":true,"id":509}],"scripts":[],"id":402,"shape":{"__isSmartRef__":true,"id":517},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":520},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":485},"lighterFill":{"__isSmartRef__":true,"id":521},"label":{"__isSmartRef__":true,"id":509},"owner":{"__isSmartRef__":true,"id":463},"attributeConnections":[{"__isSmartRef__":true,"id":530},{"__isSmartRef__":true,"id":531}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","showsHalos":false,"halos":[],"__LivelyClassName__":"lively.morphic.WindowControl"},"509":{"submorphs":[],"scripts":[],"id":403,"shape":{"__isSmartRef__":true,"id":510},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":false,"_WhiteSpaceHandling":"pre","fixedHeight":true,"allowsInput":false,"_OverflowMode":"hidden","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":513},"_MaxTextWidth":null,"_MaxTextHeight":17,"textColor":{"__isSmartRef__":true,"id":457},"padding":{"__isSmartRef__":true,"id":514},"_Padding":{"__isSmartRef__":true,"id":514},"owner":{"__isSmartRef__":true,"id":508},"isLabel":true,"eventsAreIgnored":true,"_FontSize":8,"__SourceModuleName__":"Global.lively.morphic.Core","textChunks":[{"__isSmartRef__":true,"id":515}],"__LivelyClassName__":"lively.morphic.Text"},"510":{"position":{"__isSmartRef__":true,"id":511},"_Extent":{"__isSmartRef__":true,"id":512},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":457},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"511":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"512":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"513":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"514":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"515":{"style":{"__isSmartRef__":true,"id":516},"morph":{"__isSmartRef__":true,"id":509},"storedString":"M","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"516":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"517":{"position":{"__isSmartRef__":true,"id":518},"_Extent":{"__isSmartRef__":true,"id":519},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":484},"_Fill":{"__isSmartRef__":true,"id":485},"_StrokeOpacity":0,"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"518":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"519":{"x":17,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"520":{"x":3,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"521":{"stops":[{"__isSmartRef__":true,"id":522},{"__isSmartRef__":true,"id":524},{"__isSmartRef__":true,"id":526},{"__isSmartRef__":true,"id":528}],"vector":{"__isSmartRef__":true,"id":494},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"522":{"offset":0,"color":{"__isSmartRef__":true,"id":523}},"523":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"524":{"offset":0.4,"color":{"__isSmartRef__":true,"id":525}},"525":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"526":{"offset":0.6,"color":{"__isSmartRef__":true,"id":527}},"527":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"528":{"offset":1,"color":{"__isSmartRef__":true,"id":529}},"529":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"530":{"sourceObj":{"__isSmartRef__":true,"id":508},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":452},"targetMethodName":"getMenuHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"531":{"sourceObj":{"__isSmartRef__":true,"id":508},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":452},"targetMethodName":"showTargetMorphMenu","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"532":{"submorphs":[{"__isSmartRef__":true,"id":533}],"scripts":[],"id":404,"shape":{"__isSmartRef__":true,"id":541},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":544},"value":false,"toggle":false,"isActive":true,"normalFill":{"__isSmartRef__":true,"id":485},"lighterFill":{"__isSmartRef__":true,"id":545},"label":{"__isSmartRef__":true,"id":533},"owner":{"__isSmartRef__":true,"id":463},"layout":{"__isSmartRef__":true,"id":554},"attributeConnections":[{"__isSmartRef__":true,"id":555},{"__isSmartRef__":true,"id":556}],"doNotSerialize":["$$getHelpText","$$fire"],"doNotCopyProperties":["$$getHelpText","$$fire"],"__SourceModuleName__":"Global.lively.morphic.Widgets","__LivelyClassName__":"lively.morphic.WindowControl"},"533":{"submorphs":[],"scripts":[],"id":405,"shape":{"__isSmartRef__":true,"id":534},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":false,"_WhiteSpaceHandling":"pre","fixedHeight":true,"allowsInput":false,"_OverflowMode":"hidden","_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":537},"_MaxTextWidth":null,"_MaxTextHeight":17,"textColor":{"__isSmartRef__":true,"id":457},"padding":{"__isSmartRef__":true,"id":538},"_Padding":{"__isSmartRef__":true,"id":538},"owner":{"__isSmartRef__":true,"id":532},"isLabel":true,"eventsAreIgnored":true,"_FontSize":8,"__SourceModuleName__":"Global.lively.morphic.Core","textChunks":[{"__isSmartRef__":true,"id":539}],"__LivelyClassName__":"lively.morphic.Text"},"534":{"position":{"__isSmartRef__":true,"id":535},"_Extent":{"__isSmartRef__":true,"id":536},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":457},"_Fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"535":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"536":{"x":17,"y":17,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"537":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"538":{"x":5,"y":5,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"539":{"style":{"__isSmartRef__":true,"id":540},"morph":{"__isSmartRef__":true,"id":533},"storedString":"–","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.Core"},"540":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.Core"},"541":{"position":{"__isSmartRef__":true,"id":542},"_Extent":{"__isSmartRef__":true,"id":543},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":484},"_Fill":{"__isSmartRef__":true,"id":485},"_StrokeOpacity":0,"_BorderRadius":5,"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"542":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"543":{"x":17,"y":17,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"544":{"x":707,"y":3,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"545":{"stops":[{"__isSmartRef__":true,"id":546},{"__isSmartRef__":true,"id":548},{"__isSmartRef__":true,"id":550},{"__isSmartRef__":true,"id":552}],"vector":{"__isSmartRef__":true,"id":494},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.LinearGradient"},"546":{"offset":0,"color":{"__isSmartRef__":true,"id":547}},"547":{"r":0.98,"g":0.98,"b":0.98,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"548":{"offset":0.4,"color":{"__isSmartRef__":true,"id":549}},"549":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"550":{"offset":0.6,"color":{"__isSmartRef__":true,"id":551}},"551":{"r":0.91,"g":0.91,"b":0.91,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"552":{"offset":1,"color":{"__isSmartRef__":true,"id":553}},"553":{"r":0.97,"g":0.97,"b":0.97,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"554":{"moveHorizontal":true},"555":{"sourceObj":{"__isSmartRef__":true,"id":532},"sourceAttrName":"getHelpText","targetObj":{"__isSmartRef__":true,"id":452},"targetMethodName":"getCollapseHelp","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"556":{"sourceObj":{"__isSmartRef__":true,"id":532},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":452},"targetMethodName":"toggleCollapse","converter":null,"converterString":null,"updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"557":{"position":{"__isSmartRef__":true,"id":558},"_Extent":{"__isSmartRef__":true,"id":559},"_BorderWidth":2,"_BorderColor":{"__isSmartRef__":true,"id":560},"_Fill":{"__isSmartRef__":true,"id":435},"_StrokeOpacity":1,"_BorderRadius":"8px 8px 0px 0px","__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"558":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"559":{"x":746,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"560":{"r":0.4,"g":0.4,"b":0.4,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"561":{"resizeWidth":true,"adjustForNewBounds":true},"562":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"563":{"x":746,"y":22,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"564":{"_BorderWidth":0,"_Fill":null,"_StrokeOpacity":0,"_BorderRadius":0,"_Extent":{"__isSmartRef__":true,"id":565},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"565":{"x":746,"y":334,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"566":{"adjustForNewBounds":true},"567":{"x":1157,"y":59,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"568":{"x":746,"y":334,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"569":{"x":1607,"y":65,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"570":{"submorphs":[],"scripts":[],"id":232,"shape":{"__isSmartRef__":true,"id":571},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":576},"name":"rectangle","showsHalos":false,"halos":[],"_Rotation":0,"partsBinMetaInfo":{"__isSmartRef__":true,"id":577},"__SourceModuleName__":"Global.lively.morphic.Core","owner":{"__isSmartRef__":true,"id":0},"__LivelyClassName__":"lively.morphic.Box"},"571":{"position":{"__isSmartRef__":true,"id":572},"extent":{"__isSmartRef__":true,"id":573},"borderWidth":1,"borderColor":{"__isSmartRef__":true,"id":574},"fill":{"__isSmartRef__":true,"id":575},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"572":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"573":{"x":100,"y":100,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"574":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"575":{"r":0,"g":0,"b":0.8,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"576":{"x":1055,"y":288,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"577":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"578":{"submorphs":[],"scripts":[],"id":64,"shape":{"__isSmartRef__":true,"id":579},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":584},"itemList":[1,2,3],"selectedLineNo":1,"owner":{"__isSmartRef__":true,"id":0},"showsHalos":false,"halos":[],"_Rotation":0,"__SourceModuleName__":"Global.lively.morphic.Core","selection":2,"__LivelyClassName__":"lively.morphic.List"},"579":{"position":{"__isSmartRef__":true,"id":580},"_Extent":{"__isSmartRef__":true,"id":581},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":582},"_Fill":{"__isSmartRef__":true,"id":583},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"580":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"581":{"x":100,"y":100,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"582":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"583":{"r":0.95,"g":0.95,"b":0.95,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"584":{"x":1024,"y":129,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"585":{"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":586},"_Extent":{"__isSmartRef__":true,"id":587},"_Fill":{"__isSmartRef__":true,"id":588},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"586":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"587":{"x":2800,"y":2900,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"588":{"r":1,"g":1,"b":1,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"589":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"590":{"name":"Local code","__LivelyClassName__":"ChangeSet","__SourceModuleName__":"Global.lively.ChangeSet"},"591":{"sourceObj":{"__isSmartRef__":true,"id":0},"sourceAttrName":"lastAlert","targetObj":{"__isSmartRef__":true,"id":327},"targetMethodName":"appendTextString","converterString":"function (str) { return '\\n' + str }","updater":null,"updaterString":null,"__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"isSimplifiedRegistry":true}}]]>