{"id":0,"registry":{"0":{"submorphs":[{"__isSmartRef__":true,"id":1},{"__isSmartRef__":true,"id":41},{"__isSmartRef__":true,"id":234},{"__isSmartRef__":true,"id":238},{"__isSmartRef__":true,"id":242}],"scripts":[],"shape":{"__isSmartRef__":true,"id":246},"_ClipMode":"visible","derivationIds":["C4E8FCC1-C41C-49C0-B61B-B011333B4BF3","DF1C0ADD-545B-4F00-AECB-04B8932D98E2","4F9B38D1-0E0E-4DA6-B3BA-AF4D1B083264"],"id":"B8C45644-C1F7-464A-8F15-924975989C81","droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"layout":{"__isSmartRef__":true,"id":247},"closeButton":{"__isSmartRef__":true,"id":8},"collapseButton":{"__isSmartRef__":true,"id":18},"menuButton":{"__isSmartRef__":true,"id":28},"reframeHandle":{"__isSmartRef__":true,"id":234},"rightReframeHandle":{"__isSmartRef__":true,"id":242},"bottomReframeHandle":{"__isSmartRef__":true,"id":238},"titleBar":{"__isSmartRef__":true,"id":1},"collapsedTransform":null,"collapsedExtent":null,"expandedTransform":null,"expandedExtent":null,"ignoreEventsOnExpand":false,"_PreviousBorderWidth":0,"targetMorph":{"__isSmartRef__":true,"id":41},"eventHandler":{"__isSmartRef__":true,"id":248},"_StyleClassNames":["Morph","Window"],"showsHalos":false,"partsBinMetaInfo":{"__isSmartRef__":true,"id":249},"name":"DependResolver","__serializedExpressions__":["_Position","contentOffset"],"_Rotation":0,"_Scale":1,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":264},"__LivelyClassName__":"lively.morphic.Window","__SourceModuleName__":"Global.lively.morphic.Widgets","withoutLayers":["Global.lively.morphic.GrabbingLayer"],"_Position":"lively.pt(0.0,0.0)","contentOffset":"lively.pt(3.0,22.0)"},"1":{"submorphs":[{"__isSmartRef__":true,"id":2},{"__isSmartRef__":true,"id":8},{"__isSmartRef__":true,"id":18},{"__isSmartRef__":true,"id":28}],"scripts":[],"shape":{"__isSmartRef__":true,"id":38},"_ClipMode":"visible","derivationIds":["E7DEBDA7-4C6B-4041-92E1-EBC8AE5FEB16","A5CC9EA1-C982-4D6C-9787-9B99049D90F2","F2FDADD6-23DC-45C6-B268-77AF1A14D764"],"id":"E67A9AFB-5C64-469C-B023-40D8CA2D5A1E","droppingEnabled":false,"halosEnabled":true,"layout":{"__isSmartRef__":true,"id":39},"windowMorph":{"__isSmartRef__":true,"id":0},"buttons":[{"__isSmartRef__":true,"id":8},{"__isSmartRef__":true,"id":18},{"__isSmartRef__":true,"id":28}],"label":{"__isSmartRef__":true,"id":2},"_PreviousBorderWidth":0,"owner":{"__isSmartRef__":true,"id":0},"eventHandler":{"__isSmartRef__":true,"id":40},"showsHalos":false,"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.TitleBar","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(0.0,0.0)"},"2":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":3},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":4}],"_ClipMode":"hidden","derivationIds":["FC05BAF8-F076-485C-B7A8-EE93F2E4773D","3B00E73F-8E52-4C8B-B906-F21AC202E2AF","B0034228-9E2D-45F6-9FBB-448E6B550C50"],"id":"6B2F09C9-9DD3-41AF-AA85-1C08F1084A7E","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"fixedWidth":true,"fixedHeight":true,"_FontFamily":"Helvetica","_FontSize":10,"evalEnabled":false,"isLabel":true,"eventsAreIgnored":true,"layout":{"__isSmartRef__":true,"id":6},"owner":{"__isSmartRef__":true,"id":1},"_StyleClassNames":["Morph","Text","window-title"],"_TextStylingMode":true,"eventHandler":{"__isSmartRef__":true,"id":7},"showsHalos":false,"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(3.0,3.0)"},"3":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(334.0,16.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"4":{"style":{"__isSmartRef__":true,"id":5},"chunkOwner":{"__isSmartRef__":true,"id":2},"_id":"_873","storedString":"Dependency Resolver","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"5":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"6":{"resizeWidth":true},"7":{"morph":{"__isSmartRef__":true,"id":2},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"8":{"submorphs":[{"__isSmartRef__":true,"id":9}],"scripts":[],"shape":{"__isSmartRef__":true,"id":14},"_ClipMode":"visible","derivationIds":["4C7A016E-78D4-48A2-9BC7-A38B0B257ACB","AAEF9ADB-0613-4D96-B1B1-34B422894547","FE2FBA34-FA95-4CED-A7A8-93F8090CE494"],"id":"473956E4-C894-48C7-A428-C2E9C107ADFF","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"accessibleInInactiveWindow":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":9},"_PreviousBorderWidth":0,"owner":{"__isSmartRef__":true,"id":1},"_StyleClassNames":["Morph","Button","WindowControl","close"],"attributeConnections":[{"__isSmartRef__":true,"id":15}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"eventHandler":{"__isSmartRef__":true,"id":17},"isPressed":false,"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(406.0,3.0)"},"9":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":10},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":11}],"_ClipMode":"hidden","derivationIds":["D3CCEF56-7C68-4A75-A922-04D8FE208FAD","7C68AF8B-0D05-4E02-8933-2400E41D853B","19356F6C-66C8-4524-9DB0-5A9A948A5DAE"],"id":"DFE7BADB-B6A5-4647-9AE5-7AF073FA16F8","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"fixedWidth":true,"fixedHeight":true,"_FontFamily":"Helvetica","_FontSize":8,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":8},"isLabel":true,"eventsAreIgnored":true,"_TextStylingMode":true,"eventsAreDisabled":true,"_PointerEvents":"none","eventHandler":{"__isSmartRef__":true,"id":13},"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(0.0,-1.0)"},"10":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(16.0,19.0)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"11":{"style":{"__isSmartRef__":true,"id":12},"chunkOwner":{"__isSmartRef__":true,"id":9},"_id":"_651","storedString":"X","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"12":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"13":{"morph":{"__isSmartRef__":true,"id":9},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"14":{"_BorderWidth":1,"_StrokeOpacity":0,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(17.0,17.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"15":{"sourceObj":{"__isSmartRef__":true,"id":8},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":0},"targetMethodName":"initiateShutdown","varMapping":{"__isSmartRef__":true,"id":16},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"16":{"source":{"__isSmartRef__":true,"id":8},"target":{"__isSmartRef__":true,"id":0}},"17":{"morph":{"__isSmartRef__":true,"id":8},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"18":{"submorphs":[{"__isSmartRef__":true,"id":19}],"scripts":[],"shape":{"__isSmartRef__":true,"id":24},"_ClipMode":"visible","derivationIds":["49E530E0-EB0E-412B-80B2-5CC96890DECF","AAD52BCD-3EB5-4CD8-BC61-2A2917FA6FC3","BE25D80A-B8DD-4947-B68F-16C03CF06C44"],"id":"8234BBF0-6D20-4B30-ABE9-D244E157E9C1","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"accessibleInInactiveWindow":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":19},"_PreviousBorderWidth":0,"owner":{"__isSmartRef__":true,"id":1},"attributeConnections":[{"__isSmartRef__":true,"id":25}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"eventHandler":{"__isSmartRef__":true,"id":27},"isPressed":false,"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(386.0,3.0)"},"19":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":20},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":21}],"_ClipMode":"hidden","derivationIds":["B9732807-7DE9-452F-B2F6-461D229A1876","E6DCE3CE-9B3D-4AAB-9260-93BC23CF473D","889E9D0B-B8E8-4F42-9536-EC212471F9D7"],"id":"B787BF0D-7288-48D6-8D11-D030E7B3D0F0","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"fixedWidth":true,"fixedHeight":true,"_FontFamily":"Helvetica","_FontSize":8,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":18},"isLabel":true,"eventsAreIgnored":true,"_TextStylingMode":true,"eventsAreDisabled":true,"_PointerEvents":"none","eventHandler":{"__isSmartRef__":true,"id":23},"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(0.0,1.0)"},"20":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(15.0,19.0)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"21":{"style":{"__isSmartRef__":true,"id":22},"chunkOwner":{"__isSmartRef__":true,"id":19},"_id":"_653","storedString":"–","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"22":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"23":{"morph":{"__isSmartRef__":true,"id":19},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"24":{"_BorderWidth":1,"_StrokeOpacity":0,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(17.0,17.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"25":{"sourceObj":{"__isSmartRef__":true,"id":18},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":0},"targetMethodName":"toggleCollapse","varMapping":{"__isSmartRef__":true,"id":26},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"26":{"source":{"__isSmartRef__":true,"id":18},"target":{"__isSmartRef__":true,"id":0}},"27":{"morph":{"__isSmartRef__":true,"id":18},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"28":{"submorphs":[{"__isSmartRef__":true,"id":29}],"scripts":[],"shape":{"__isSmartRef__":true,"id":34},"_ClipMode":"visible","derivationIds":["7A24011A-C5B7-49D3-91E1-84D39C739D52","00A26DD3-773E-4017-84FD-F897F33C6565","8470EFCA-920F-4F83-BAF0-9E721C103431"],"id":"CF506160-D846-4171-8311-D48D4D314B20","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"accessibleInInactiveWindow":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":29},"_PreviousBorderWidth":0,"owner":{"__isSmartRef__":true,"id":1},"attributeConnections":[{"__isSmartRef__":true,"id":35}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"eventHandler":{"__isSmartRef__":true,"id":37},"isPressed":false,"_StyleClassNames":["Morph","Button","WindowControl"],"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(343.0,3.0)"},"29":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":30},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":31}],"_ClipMode":"hidden","derivationIds":["4BB48991-95AC-4728-A48E-F92AD0B6DF79","4B8791D5-A673-49CD-8580-6BB725DF307C","E3372C6C-2FEF-4015-B21F-D9230B16B290"],"id":"89672304-DAF2-4408-8A21-B3946AC9A7AB","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"fixedWidth":true,"fixedHeight":true,"_FontFamily":"Helvetica","_FontSize":8,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":28},"isLabel":true,"eventsAreIgnored":true,"_TextStylingMode":true,"eventsAreDisabled":true,"_PointerEvents":"none","eventHandler":{"__isSmartRef__":true,"id":33},"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(0.0,0.0)"},"30":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(40.0,17.0)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"31":{"style":{"__isSmartRef__":true,"id":32},"chunkOwner":{"__isSmartRef__":true,"id":29},"_id":"_655","storedString":"Menu","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"32":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"33":{"morph":{"__isSmartRef__":true,"id":29},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"34":{"_BorderWidth":1,"_StrokeOpacity":0,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(40.0,17.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"35":{"sourceObj":{"__isSmartRef__":true,"id":28},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":0},"targetMethodName":"showTargetMorphMenu","varMapping":{"__isSmartRef__":true,"id":36},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"36":{"source":{"__isSmartRef__":true,"id":28},"target":{"__isSmartRef__":true,"id":0}},"37":{"morph":{"__isSmartRef__":true,"id":28},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"38":{"_AppearanceStylingMode":true,"_BorderStylingMode":true,"_BorderWidth":0,"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(426.0,22.0)","_Padding":"lively.rect(0,0,0,0)"},"39":{"resizeWidth":true,"adjustForNewBounds":true},"40":{"morph":{"__isSmartRef__":true,"id":1},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"41":{"submorphs":[{"__isSmartRef__":true,"id":42}],"scripts":[],"shape":{"__isSmartRef__":true,"id":117},"_ClipMode":"visible","derivationIds":["FAE352FA-5067-4C70-8691-835EABB4AE81","AE943B0B-820D-4DDB-BBC2-18B3DDFB0BB4","4892D4AB-ECF7-434C-85D5-0E6B4A1EBDAA"],"id":"E070028C-A131-4056-B483-F061D2562A42","droppingEnabled":true,"halosEnabled":true,"layout":{"__isSmartRef__":true,"id":118},"ownerWidget":{"__isSmartRef__":true,"id":119},"owner":{"__isSmartRef__":true,"id":0},"eventHandler":{"__isSmartRef__":true,"id":176},"ownerApp":{"__isSmartRef__":true,"id":119},"showsHalos":false,"isBeingDragged":false,"isCopyMorphRef":true,"morphRefId":1,"__serializedExpressions__":["_Position"],"_Rotation":0,"_Scale":1,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":177},"__LivelyClassName__":"lively.morphic.Panel","__SourceModuleName__":"Global.lively.morphic.MorphAddons","_Position":"lively.pt(3.0,22.0)"},"42":{"submorphs":[{"__isSmartRef__":true,"id":43},{"__isSmartRef__":true,"id":51},{"__isSmartRef__":true,"id":65}],"scripts":[],"id":"6F1EBF3D-7B2A-4CE8-A1B5-1D6D39419D33","shape":{"__isSmartRef__":true,"id":110},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"VBox","partsBinMetaInfo":{"__isSmartRef__":true,"id":111},"layout":{"__isSmartRef__":true,"id":114},"eventHandler":{"__isSmartRef__":true,"id":116},"isInLayoutCycle":false,"derivationIds":[1237,"0005D8FD-19B7-40AB-8E72-D066A1030C24"],"_ClipMode":"visible","owner":{"__isSmartRef__":true,"id":41},"_PreviousBorderWidth":0,"__serializedExpressions__":["_Position","distanceToDragEvent"],"_Rotation":0,"_Scale":1.01,"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,0.0)","distanceToDragEvent":"lively.pt(95.0,-15.0)"},"43":{"submorphs":[],"scripts":[],"id":"E9603868-355E-4753-98B2-70FD3D9ACC18","shape":{"__isSmartRef__":true,"id":44},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WhiteSpaceHandling":"pre-wrap","fixedHeight":true,"allowInput":true,"_OverflowMode":"auto","_FontFamily":"Monaco,Courier","_MaxTextWidth":530,"_MaxTextHeight":188,"textChunks":[{"__isSmartRef__":true,"id":45}],"layout":{"__isSmartRef__":true,"id":47},"showsHalos":false,"prevScroll":[0,0],"name":"CodePane","charsReplaced":"1","lastFindLoc":97,"partsBinMetaInfo":{"__isSmartRef__":true,"id":48},"_ClipMode":"auto","eventHandler":{"__isSmartRef__":true,"id":49},"syntaxHighlightingWhileTyping":true,"attributeConnections":[{"__isSmartRef__":true,"id":50}],"doNotSerialize":["$$textString"],"doNotCopyProperties":["$$textString"],"lastSyntaxHighlightTime":1307359360432,"savedTextString":"{\n    \"dependencies\": {\n        \"connect\": \">= 3.0\",\n        \"parseurl\": \"~> 1.0\"\n    }\n}","derivationIds":[155,"07649F5A-0EDF-4B7C-838C-95A0E3743F9B"],"owner":{"__isSmartRef__":true,"id":42},"_lastSyntaxHighlightTime":8,"__serializedExpressions__":["_Padding","_Position"],"textString":"// package.json\n{\n    \"dependencies\": {\n        \"connect\": \">= 3.0.0\",\n        \"parseurl\": \"~> 1.0.0\",\n        \"crypto\": \"= 6.2.8\",\n        \"logger\": \"*\"\n    }\n}","_Rotation":0,"_Scale":0.9900990099009901,"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Padding":"lively.rect(2,1,0,0)","_Position":"lively.pt(10.0,10.0)"},"44":{"_BorderWidth":1.5559999999999998,"__serializedExpressions__":["_Position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(395.6,206.0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"45":{"style":{"__isSmartRef__":true,"id":46},"chunkOwner":{"__isSmartRef__":true,"id":43},"_id":"_24549","storedString":"// package.json\n{\n    \"dependencies\": {\n        \"connect\": \">= 3.0.0\",\n        \"parseurl\": \"~> 1.0.0\",\n        \"crypto\": \"= 6.2.8\",\n        \"logger\": \"*\"\n    }\n}","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"46":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"47":{"resizeWidth":true,"resizeHeight":true},"48":{"requiredModules":[],"partsSpaceName":"PartsBin/Widgets/","migrationLevel":2,"partName":"CodePane","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"49":{"morph":{"__isSmartRef__":true,"id":43},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"50":{"sourceObj":{"__isSmartRef__":true,"id":43},"sourceAttrName":"textString","targetObj":{"__isSmartRef__":true,"id":43},"targetMethodName":"highlightJavaScriptSyntax","__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"51":{"submorphs":[],"scripts":[],"id":"071D5B7B-BD73-4F2A-A508-78DD6A0D664B","shape":{"__isSmartRef__":true,"id":52},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_FontFamily":"monaco ","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":11,"name":"OutputText","partsBinMetaInfo":{"__isSmartRef__":true,"id":53},"textChunks":[{"__isSmartRef__":true,"id":61}],"charsReplaced":"Some Text","lastFindLoc":9,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":63},"_ClipMode":"auto","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","616397F4-D603-40AF-A8B9-28053D52EB69"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"previousSelection":[2,2],"isBeingDragged":false,"moved":true,"owner":{"__isSmartRef__":true,"id":42},"layout":{"__isSmartRef__":true,"id":64},"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"__serializedExpressions__":["_Position","textColor","_Padding"],"_Rotation":0,"_Scale":0.9900990099009901,"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(10.0,231.0)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)"},"52":{"fill":null,"_BorderWidth":1.036,"_ClipMode":"visible","__serializedExpressions__":["_Position","_Extent","_BorderColor","_Padding","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(395.6,206.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)","_Fill":"Color.rgb(245,245,245)"},"53":{"partsSpaceName":"PartsBin/Basic/","migrationLevel":4,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":54},{"__isSmartRef__":true,"id":55},{"__isSmartRef__":true,"id":56},{"__isSmartRef__":true,"id":57},{"__isSmartRef__":true,"id":58},{"__isSmartRef__":true,"id":59},{"__isSmartRef__":true,"id":60}],"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Thu Mar 07 2013 01:25:14 GMT+0100 (Central Europe Standard Time)\")"},"54":{"author":"jenslincke","message":"no comment","id":"A3BA0C1E-7E83-43BF-9EC6-4F4BB3835D62","__serializedExpressions__":["date"],"date":"new Date(\"Tue Mar 12 2013 17:31:56 GMT+0100 (Central Europe Standard Time)\")"},"55":{"author":"timfelgentreff","message":"better text","id":"B904F9AC-6EA0-4A8A-83C9-AFC85AADC194","__serializedExpressions__":["date"],"date":"new Date(\"Tue May 08 2012 14:18:18 GMT+0200 (Central Europe Daylight Time)\")"},"56":{"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"785D95BD-7858-43EB-90E6-A1C085E2F2B9","__serializedExpressions__":["date"],"date":"new Date(\"Sat Apr 21 2012 07:32:09 GMT+0200 (Central Europe Daylight Time)\")"},"57":{"author":"tessi","message":"TextBubble calls its disappear() function after showBubbleTime() milliseconds now","id":"0F4DE333-A551-4961-B29D-70270977EBEF","__serializedExpressions__":["date"],"date":"new Date(\"Sat Apr 21 2012 07:31:43 GMT+0200 (Central Europe Daylight Time)\")"},"58":{"author":"undefined","message":"Set the inset as: this.setPadding(Rectangle.inset(4,2)).  This gives it a more pleasing appearance with a border, and also makes it easier to select near the bounds.","id":"BD5B0E4C-4830-4863-A013-35BB66D5AD6F","__serializedExpressions__":["date"],"date":"new Date(\"Mon Feb 27 2012 06:20:38 GMT+0100 (Central Europe Standard Time)\")"},"59":{"author":"robertkrahn","message":"text click was broken?","id":"9D065E14-9653-4B2A-9A2E-3AD84EBBC3E0","__serializedExpressions__":["date"],"date":"new Date(\"Sat Apr 21 2012 16:30:30 GMT+0200 (Central Europe Daylight Time)\")"},"60":{"author":"jenslincke","message":"no comment","id":"9E495E1B-6E6D-4A89-9F9E-85AF618DC598","__serializedExpressions__":["date"],"date":"new Date(\"Tue Mar 12 2013 18:36:22 GMT+0100 (Central Europe Standard Time)\")"},"61":{"style":{"__isSmartRef__":true,"id":62},"chunkOwner":{"__isSmartRef__":true,"id":51},"_id":"_822","storedString":"Press resolve…","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"62":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"63":{"morph":{"__isSmartRef__":true,"id":51},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"64":{"resizeWidth":true,"resizeHeight":true},"65":{"submorphs":[{"__isSmartRef__":true,"id":66},{"__isSmartRef__":true,"id":85}],"scripts":[],"id":"BA4E6B52-FA92-49C4-941E-628B41FD26A3","shape":{"__isSmartRef__":true,"id":104},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"HBox","partsBinMetaInfo":{"__isSmartRef__":true,"id":105},"layout":{"__isSmartRef__":true,"id":107},"eventHandler":{"__isSmartRef__":true,"id":109},"isInLayoutCycle":false,"derivationIds":[1234,"F6568E9D-116C-47BB-8DF0-0937306C26A3"],"_ClipMode":"visible","owner":{"__isSmartRef__":true,"id":42},"__serializedExpressions__":["_Position"],"_Rotation":0,"_Scale":1,"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(10.0,452.0)"},"66":{"submorphs":[{"__isSmartRef__":true,"id":67}],"scripts":[],"shape":{"__isSmartRef__":true,"id":72},"eventHandler":{"__isSmartRef__":true,"id":73},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","58F96767-96E0-41C6-B08F-F3F97B8A8D44","6758B0BC-E539-4320-A2C7-3D96C18BA16D","BE05B59C-4CDC-41EB-886B-343EA9BC487B"],"id":"3D030921-A4C4-4EAC-B07A-97B6ACC6D8CB","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":67},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":74}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button1","partsBinMetaInfo":{"__isSmartRef__":true,"id":76},"owner":{"__isSmartRef__":true,"id":65},"layout":{"__isSmartRef__":true,"id":80},"_StyleClassNames":["Morph","Button"],"__serializedExpressions__":["_Position","distanceToDragEvent"],"_Rotation":0,"_Scale":0.9802960494069208,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":81},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(0.0,0.0)","distanceToDragEvent":"lively.pt(74.0,7.0)"},"67":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":68},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":69}],"eventHandler":{"__isSmartRef__":true,"id":71},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","1C7E6CBD-9C61-4360-9263-F96DE832F454","AEDAE4B8-0604-4956-9762-56FFE52F0D59","060A8027-E3E0-4AE5-93B1-28FBF789DF41"],"id":"455881CD-F7BD-4533-965E-D2A5CC55BAFD","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":66},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"68":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(189.3,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"69":{"style":{"__isSmartRef__":true,"id":70},"chunkOwner":{"__isSmartRef__":true,"id":67},"_id":"_9845","storedString":"Reset","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"70":{"__serializedExpressions__":["color"],"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore","color":"Color.rgb(0,0,0)"},"71":{"morph":{"__isSmartRef__":true,"id":67},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"72":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(189.3,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"73":{"morph":{"__isSmartRef__":true,"id":66},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"74":{"sourceObj":{"__isSmartRef__":true,"id":66},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":66},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":75},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"75":{"source":{"__isSmartRef__":true,"id":66},"target":{"__isSmartRef__":true,"id":66}},"76":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Jens/","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":77},{"__isSmartRef__":true,"id":78},{"__isSmartRef__":true,"id":79}],"migrationLevel":4,"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Tue Dec 11 2012 22:53:24 GMT+0100 (Central Europe Standard Time)\")"},"77":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","__serializedExpressions__":["date"],"date":"new Date(\"Tue Dec 11 2012 22:15:42 GMT+0100 (Central Europe Standard Time)\")"},"78":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","__serializedExpressions__":["date"],"date":"new Date(\"Tue Dec 11 2012 22:53:16 GMT+0100 (Central Europe Standard Time)\")"},"79":{"author":"jenslincke","message":"no comment","id":"69AF37A3-C9D0-4346-B759-E7122CA74FCF","__serializedExpressions__":["date"],"date":"new Date(\"Tue Jan 29 2013 19:50:21 GMT+0100 (Central Europe Standard Time)\")"},"80":{"resizeWidth":true},"81":{"doAction":{"__isSmartRef__":true,"id":82}},"82":{"varMapping":{"__isSmartRef__":true,"id":83},"source":"function doAction() {\n    this.get('DependResolver').reset();\n}","funcProperties":{"__isSmartRef__":true,"id":84},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"83":{"this":{"__isSmartRef__":true,"id":66}},"84":{"user":"pmeinhardt","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Jun 04 2014 20:02:48 GMT+0200 (Central Europe Daylight Time)\")"},"85":{"submorphs":[{"__isSmartRef__":true,"id":86}],"scripts":[],"shape":{"__isSmartRef__":true,"id":91},"eventHandler":{"__isSmartRef__":true,"id":92},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","58F96767-96E0-41C6-B08F-F3F97B8A8D44","6758B0BC-E539-4320-A2C7-3D96C18BA16D"],"id":"F1C59EA1-823F-4383-8945-65884FCB31ED","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":86},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":93}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"Button","partsBinMetaInfo":{"__isSmartRef__":true,"id":95},"owner":{"__isSmartRef__":true,"id":65},"layout":{"__isSmartRef__":true,"id":99},"_StyleClassNames":["Morph","Button"],"__serializedExpressions__":["_Position","distanceToDragEvent"],"_Rotation":0,"_Scale":0.9900990099009901,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":100},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(206.3,0.0)","distanceToDragEvent":"lively.pt(74.0,7.0)"},"86":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":87},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":88}],"eventHandler":{"__isSmartRef__":true,"id":90},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","1C7E6CBD-9C61-4360-9263-F96DE832F454","AEDAE4B8-0604-4956-9762-56FFE52F0D59"],"id":"D10A2F2A-1718-4A26-9733-EF5DBAC74DAF","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"_WordBreak":"break-all","fixedHeight":true,"_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_FontFamily":"Helvetica","_FontSize":10,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":85},"isLabel":true,"_Align":"center","eventsAreIgnored":true,"_TextStylingMode":true,"showsHalos":false,"eventsAreDisabled":true,"_PointerEvents":"none","__serializedExpressions__":["_TextColor"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(0,0,0)"},"87":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(189.3,22.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"88":{"style":{"__isSmartRef__":true,"id":89},"chunkOwner":{"__isSmartRef__":true,"id":86},"_id":"_3587","storedString":"Resolve Dependencies","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"89":{"__serializedExpressions__":["color"],"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore","color":"Color.rgb(0,0,0)"},"90":{"morph":{"__isSmartRef__":true,"id":86},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"91":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(189.3,22.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"92":{"morph":{"__isSmartRef__":true,"id":85},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"93":{"sourceObj":{"__isSmartRef__":true,"id":85},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":85},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":94},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"94":{"source":{"__isSmartRef__":true,"id":85},"target":{"__isSmartRef__":true,"id":85}},"95":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Jens/","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":96},{"__isSmartRef__":true,"id":97},{"__isSmartRef__":true,"id":98}],"migrationLevel":4,"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Tue Dec 11 2012 22:53:24 GMT+0100 (Central Europe Standard Time)\")"},"96":{"author":null,"message":"no comment","id":"F8B70225-5143-4A51-ABB4-344B488B3811","__serializedExpressions__":["date"],"date":"new Date(\"Tue Dec 11 2012 22:15:42 GMT+0100 (Central Europe Standard Time)\")"},"97":{"author":"robertkrahn","message":"no comment","id":"9B8B6BE4-4519-4A6C-8F47-70DE61BBB0FB","__serializedExpressions__":["date"],"date":"new Date(\"Tue Dec 11 2012 22:53:16 GMT+0100 (Central Europe Standard Time)\")"},"98":{"author":"jenslincke","message":"no comment","id":"69AF37A3-C9D0-4346-B759-E7122CA74FCF","__serializedExpressions__":["date"],"date":"new Date(\"Tue Jan 29 2013 19:50:21 GMT+0100 (Central Europe Standard Time)\")"},"99":{"resizeWidth":true},"100":{"doAction":{"__isSmartRef__":true,"id":101}},"101":{"varMapping":{"__isSmartRef__":true,"id":102},"source":"function doAction() {\n    this.get('DependResolver').resolve();\n}","funcProperties":{"__isSmartRef__":true,"id":103},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"102":{"this":{"__isSmartRef__":true,"id":85}},"103":{"user":"pmeinhardt","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Jun 04 2014 23:31:29 GMT+0200 (Central Europe Daylight Time)\")"},"104":{"_BorderWidth":0,"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_ClipMode":"visible","_BorderStylingMode":false,"_AppearanceStylingMode":true,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(395.6,26.0)","_BorderColor":"Color.rgb(235,235,235)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"105":{"partsSpaceName":"PartsBin/Layout/","comment":"A simple box morph","migrationLevel":4,"partName":"HBox","changes":[{"__isSmartRef__":true,"id":106}],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"106":{"author":"fbo","message":"","id":"C0A8DE73-F7F3-437E-B0A6-5DD5B6456C9A","__serializedExpressions__":["date"],"date":"new Date(\"Tue Nov 29 2011 21:11:31 GMT+0100 (Central Europe Standard Time)\")"},"107":{"layouter":{"__isSmartRef__":true,"id":108},"resizeWidth":true,"__serializedExpressions__":["extentWithoutPlaceholder"],"extentWithoutPlaceholder":"lively.pt(466.4,116.0)"},"108":{"defaultBorderSize":10,"defaultSpacing":15,"borderSize":0,"spacing":16.994999999999997,"container":{"__isSmartRef__":true,"id":65},"__LivelyClassName__":"lively.morphic.Layout.HorizontalLayout","__SourceModuleName__":"Global.lively.morphic.Layout"},"109":{"morph":{"__isSmartRef__":true,"id":65},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"110":{"_BorderWidth":1,"_BorderRadius":0,"_ClipMode":"visible","_BorderStylingMode":true,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(415.6,488.0)","_BorderColor":"Color.rgb(235,235,235)","_Fill":"Color.rgb(245,245,245)","_Padding":"lively.rect(0,0,0,0)"},"111":{"partsSpaceName":"PartsBin/Layout/","comment":"A simple box morph","migrationLevel":4,"partName":"VBox","changes":[{"__isSmartRef__":true,"id":112},{"__isSmartRef__":true,"id":113}],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin"},"112":{"author":"fbo","message":"","id":"20B1939E-D6D2-47E0-B216-76A770D59F3B","__serializedExpressions__":["date"],"date":"new Date(\"Tue Nov 29 2011 21:11:42 GMT+0100 (Central Europe Standard Time)\")"},"113":{"author":"fbo","message":"","id":"9AF7DAFA-F349-4B76-9C4E-3C221A6ECDE8","__serializedExpressions__":["date"],"date":"new Date(\"Tue Nov 29 2011 21:12:30 GMT+0100 (Central Europe Standard Time)\")"},"114":{"layouter":{"__isSmartRef__":true,"id":115},"resizeWidth":true,"resizeHeight":true,"__serializedExpressions__":["extentWithoutPlaceholder"],"extentWithoutPlaceholder":"lively.pt(486.4,587.0)"},"115":{"defaultBorderSize":10,"defaultSpacing":15,"borderSize":10,"spacing":15,"container":{"__isSmartRef__":true,"id":42},"__LivelyClassName__":"lively.morphic.Layout.VerticalLayout","__SourceModuleName__":"Global.lively.morphic.Layout"},"116":{"morph":{"__isSmartRef__":true,"id":42},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"117":{"_BorderWidth":1,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor","_Fill"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(420.0,494.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(95,94,95)","_Fill":"Color.rgb(204,204,204)"},"118":{"resizeWidth":true,"resizeHeight":true,"adjustForNewBounds":true,"__serializedExpressions__":["grid"],"grid":"lively.pt(21.0,24.7)"},"119":{"panel":{"__isSmartRef__":true,"id":41},"view":{"__isSmartRef__":true,"id":120},"__LivelyClassName__":"lively.morphic.WindowedApp","__SourceModuleName__":"Global.lively.morphic.Widgets"},"120":{"submorphs":[{"__isSmartRef__":true,"id":121},{"__isSmartRef__":true,"id":161},{"__isSmartRef__":true,"id":165},{"__isSmartRef__":true,"id":169}],"scripts":[],"shape":{"__isSmartRef__":true,"id":173},"_ClipMode":"visible","derivationIds":[],"id":"05B77408-B501-4349-8D37-E35F29A982C3","droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"layout":{"__isSmartRef__":true,"id":174},"closeButton":{"__isSmartRef__":true,"id":128},"collapseButton":{"__isSmartRef__":true,"id":138},"menuButton":{"__isSmartRef__":true,"id":148},"reframeHandle":{"__isSmartRef__":true,"id":161},"rightReframeHandle":{"__isSmartRef__":true,"id":169},"bottomReframeHandle":{"__isSmartRef__":true,"id":165},"titleBar":{"__isSmartRef__":true,"id":121},"collapsedTransform":null,"collapsedExtent":null,"expandedTransform":null,"expandedExtent":null,"ignoreEventsOnExpand":false,"_PreviousBorderWidth":0,"targetMorph":{"__isSmartRef__":true,"id":41},"owner":null,"eventHandler":{"__isSmartRef__":true,"id":175},"_StyleClassNames":["Morph","Window","highlighted"],"__serializedExpressions__":["_Position","contentOffset"],"__LivelyClassName__":"lively.morphic.Window","__SourceModuleName__":"Global.lively.morphic.Widgets","withoutLayers":["Global.lively.morphic.GrabbingLayer"],"_Position":"lively.pt(105.5,40.0)","contentOffset":"lively.pt(3.0,22.0)"},"121":{"submorphs":[{"__isSmartRef__":true,"id":122},{"__isSmartRef__":true,"id":128},{"__isSmartRef__":true,"id":138},{"__isSmartRef__":true,"id":148}],"scripts":[],"shape":{"__isSmartRef__":true,"id":158},"_ClipMode":"visible","derivationIds":[],"id":"3AB66973-B817-4005-A599-D05CCFE4F3BA","droppingEnabled":false,"halosEnabled":true,"layout":{"__isSmartRef__":true,"id":159},"windowMorph":{"__isSmartRef__":true,"id":120},"buttons":[{"__isSmartRef__":true,"id":128},{"__isSmartRef__":true,"id":138},{"__isSmartRef__":true,"id":148}],"label":{"__isSmartRef__":true,"id":122},"_PreviousBorderWidth":0,"owner":{"__isSmartRef__":true,"id":120},"eventHandler":{"__isSmartRef__":true,"id":160},"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.TitleBar","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(0.0,0.0)"},"122":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":123},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":124}],"_ClipMode":"hidden","derivationIds":[],"id":"658B3E09-6BB8-4820-BF73-FF028E2EAFBA","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"fixedWidth":true,"fixedHeight":true,"_FontFamily":"Helvetica","_FontSize":10,"evalEnabled":false,"isLabel":true,"eventsAreIgnored":true,"layout":{"__isSmartRef__":true,"id":126},"owner":{"__isSmartRef__":true,"id":121},"_StyleClassNames":["Morph","Text","window-title"],"_TextStylingMode":true,"eventHandler":{"__isSmartRef__":true,"id":127},"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(3.0,3.0)"},"123":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(396.0,16.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"124":{"style":{"__isSmartRef__":true,"id":125},"chunkOwner":{"__isSmartRef__":true,"id":122},"_id":"_562","storedString":"Window","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"125":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"126":{"resizeWidth":true},"127":{"morph":{"__isSmartRef__":true,"id":122},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"128":{"submorphs":[{"__isSmartRef__":true,"id":129}],"scripts":[],"shape":{"__isSmartRef__":true,"id":134},"_ClipMode":"visible","derivationIds":[],"id":"FD28143F-80FF-4198-A00E-2BF5BA609AD5","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"accessibleInInactiveWindow":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":129},"_PreviousBorderWidth":0,"owner":{"__isSmartRef__":true,"id":121},"_StyleClassNames":["Morph","Button","WindowControl","close"],"attributeConnections":[{"__isSmartRef__":true,"id":135}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"eventHandler":{"__isSmartRef__":true,"id":137},"isPressed":false,"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(468.0,3.0)"},"129":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":130},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":131}],"_ClipMode":"hidden","derivationIds":[],"id":"6CB68EC0-F007-47DB-859B-662C64767851","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"fixedWidth":false,"fixedHeight":false,"_FontFamily":"Helvetica","_FontSize":8,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":128},"isLabel":true,"eventsAreIgnored":true,"_TextStylingMode":true,"eventsAreDisabled":true,"_PointerEvents":"none","eventHandler":{"__isSmartRef__":true,"id":133},"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(0.0,-1.0)"},"130":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(17.0,17.0)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"131":{"style":{"__isSmartRef__":true,"id":132},"chunkOwner":{"__isSmartRef__":true,"id":129},"_id":"_564","storedString":"X","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"132":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"133":{"morph":{"__isSmartRef__":true,"id":129},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"134":{"_BorderWidth":0,"_StrokeOpacity":0,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(17.0,17.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"135":{"sourceObj":{"__isSmartRef__":true,"id":128},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":120},"targetMethodName":"initiateShutdown","varMapping":{"__isSmartRef__":true,"id":136},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"136":{"source":{"__isSmartRef__":true,"id":128},"target":{"__isSmartRef__":true,"id":120}},"137":{"morph":{"__isSmartRef__":true,"id":128},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"138":{"submorphs":[{"__isSmartRef__":true,"id":139}],"scripts":[],"shape":{"__isSmartRef__":true,"id":144},"_ClipMode":"visible","derivationIds":[],"id":"0FA553B2-9571-432A-816E-32CA98762CBD","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"accessibleInInactiveWindow":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":139},"_PreviousBorderWidth":0,"owner":{"__isSmartRef__":true,"id":121},"attributeConnections":[{"__isSmartRef__":true,"id":145}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"eventHandler":{"__isSmartRef__":true,"id":147},"isPressed":false,"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(448.0,3.0)"},"139":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":140},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":141}],"_ClipMode":"hidden","derivationIds":[],"id":"C5C1BBA1-3D0E-4DDF-BAC0-E91BEEFF651F","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"fixedWidth":false,"fixedHeight":false,"_FontFamily":"Helvetica","_FontSize":8,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":138},"isLabel":true,"eventsAreIgnored":true,"_TextStylingMode":true,"eventsAreDisabled":true,"_PointerEvents":"none","eventHandler":{"__isSmartRef__":true,"id":143},"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(0.0,1.0)"},"140":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(15.0,19.0)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"141":{"style":{"__isSmartRef__":true,"id":142},"chunkOwner":{"__isSmartRef__":true,"id":139},"_id":"_566","storedString":"–","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"142":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"143":{"morph":{"__isSmartRef__":true,"id":139},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"144":{"_BorderWidth":1,"_StrokeOpacity":0,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(17.0,17.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"145":{"sourceObj":{"__isSmartRef__":true,"id":138},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":120},"targetMethodName":"toggleCollapse","varMapping":{"__isSmartRef__":true,"id":146},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"146":{"source":{"__isSmartRef__":true,"id":138},"target":{"__isSmartRef__":true,"id":120}},"147":{"morph":{"__isSmartRef__":true,"id":138},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"148":{"submorphs":[{"__isSmartRef__":true,"id":149}],"scripts":[],"shape":{"__isSmartRef__":true,"id":154},"_ClipMode":"visible","derivationIds":[],"id":"24712B64-16AF-4D2A-B607-5CD6E6404516","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"accessibleInInactiveWindow":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":149},"_PreviousBorderWidth":0,"owner":{"__isSmartRef__":true,"id":121},"attributeConnections":[{"__isSmartRef__":true,"id":155}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"eventHandler":{"__isSmartRef__":true,"id":157},"isPressed":false,"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(405.0,3.0)"},"149":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":150},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":151}],"_ClipMode":"hidden","derivationIds":[],"id":"0BA5EB53-BBF6-4E78-A811-C81CE1536546","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"fixedWidth":false,"fixedHeight":false,"_FontFamily":"Helvetica","_FontSize":8,"evalEnabled":false,"owner":{"__isSmartRef__":true,"id":148},"isLabel":true,"eventsAreIgnored":true,"_TextStylingMode":true,"eventsAreDisabled":true,"_PointerEvents":"none","eventHandler":{"__isSmartRef__":true,"id":153},"__serializedExpressions__":["_TextColor","_Position"],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_TextColor":"Color.rgb(64,64,64)","_Position":"lively.pt(0.0,0.0)"},"150":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(39.0,19.0)","_Padding":"lively.rect(4,2,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"151":{"style":{"__isSmartRef__":true,"id":152},"chunkOwner":{"__isSmartRef__":true,"id":149},"_id":"_568","storedString":"Menu","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"152":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"153":{"morph":{"__isSmartRef__":true,"id":149},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"154":{"_BorderWidth":1,"_StrokeOpacity":0,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(40.0,17.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"155":{"sourceObj":{"__isSmartRef__":true,"id":148},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":120},"targetMethodName":"showTargetMorphMenu","varMapping":{"__isSmartRef__":true,"id":156},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"156":{"source":{"__isSmartRef__":true,"id":148},"target":{"__isSmartRef__":true,"id":120}},"157":{"morph":{"__isSmartRef__":true,"id":148},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"158":{"_AppearanceStylingMode":true,"_BorderStylingMode":true,"_BorderWidth":0,"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(488.0,22.0)","_Padding":"lively.rect(0,0,0,0)"},"159":{"resizeWidth":true,"adjustForNewBounds":true},"160":{"morph":{"__isSmartRef__":true,"id":121},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"161":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":162},"_ClipMode":"visible","derivationIds":[],"id":"FE7222A8-C101-4614-B71A-59E2A33CA776","droppingEnabled":true,"halosEnabled":true,"type":"corner","_StyleClassNames":["Morph","Box","ReframeHandle","reframe-handle corner"],"layout":{"__isSmartRef__":true,"id":163},"owner":{"__isSmartRef__":true,"id":120},"eventHandler":{"__isSmartRef__":true,"id":164},"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ReframeHandle","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(474.0,437.0)"},"162":{"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(14.0,14.0)","_Padding":"lively.rect(0,0,0,0)"},"163":{"moveVertical":true,"moveHorizontal":true},"164":{"morph":{"__isSmartRef__":true,"id":161},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"165":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":166},"_ClipMode":"visible","derivationIds":[],"id":"CFBB112A-50CE-4D1D-9702-CCBCCF827791","droppingEnabled":true,"halosEnabled":true,"type":"bottom","_StyleClassNames":["Morph","Box","ReframeHandle","reframe-handle bottom"],"layout":{"__isSmartRef__":true,"id":167},"owner":{"__isSmartRef__":true,"id":120},"eventHandler":{"__isSmartRef__":true,"id":168},"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ReframeHandle","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(0.0,448.0)"},"166":{"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(474.0,3.0)","_Padding":"lively.rect(0,0,0,0)"},"167":{"moveVertical":true},"168":{"morph":{"__isSmartRef__":true,"id":165},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"169":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":170},"_ClipMode":"visible","derivationIds":[],"id":"6F255F59-B774-427E-A483-249FB2A43E3D","droppingEnabled":true,"halosEnabled":true,"type":"right","_StyleClassNames":["Morph","Box","ReframeHandle","reframe-handle right"],"layout":{"__isSmartRef__":true,"id":171},"owner":{"__isSmartRef__":true,"id":120},"eventHandler":{"__isSmartRef__":true,"id":172},"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ReframeHandle","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(485.0,0.0)"},"170":{"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(3.0,437.0)","_Padding":"lively.rect(0,0,0,0)"},"171":{"moveHorizontal":true},"172":{"morph":{"__isSmartRef__":true,"id":169},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"173":{"_BorderWidth":1,"_Fill":null,"_StrokeOpacity":false,"_BorderRadius":false,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Padding","_Extent"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Padding":"lively.rect(0,0,0,0)","_Extent":"lively.pt(488.0,451.0)"},"174":{"adjustForNewBounds":true},"175":{"morph":{"__isSmartRef__":true,"id":120},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"176":{"morph":{"__isSmartRef__":true,"id":41},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"177":{"aboutMe":{"__isSmartRef__":true,"id":178},"buildView":{"__isSmartRef__":true,"id":181},"newCodePane":{"__isSmartRef__":true,"id":184},"onLoad":{"__isSmartRef__":true,"id":187},"reset":{"__isSmartRef__":true,"id":190},"yetToDo":{"__isSmartRef__":true,"id":193},"restart":{"__isSmartRef__":true,"id":196},"addMorph":{"__isSmartRef__":true,"id":199},"newListPane":{"__isSmartRef__":true,"id":206},"renamePart":{"__isSmartRef__":true,"id":209},"methodStubFor":{"__isSmartRef__":true,"id":212},"uncapitalize":{"__isSmartRef__":true,"id":215},"plugIn":{"__isSmartRef__":true,"id":218},"unPlug":{"__isSmartRef__":true,"id":221},"wrapWidget":{"__isSmartRef__":true,"id":224},"setExtent":{"__isSmartRef__":true,"id":227}},"178":{"varMapping":{"__isSmartRef__":true,"id":179},"source":"function aboutMe() {\n    //  This is an experiment in drag-and-drop construction of\n    //  paned window apps. \n    // \n    //  The idea is that each widget will have a \"plug\" reminiscent\n    //  of Squeak's pluggable views.  From the plug, this panel\n    //  will strive to create all the necessary connections and \n    //  stubbed methods appropriate to operation of that widget.\n    //  Gridding assistance and other style defauts will facilitate\n    //  rapid construction of pleasing practical apps.\n    //\n    //  Renaming of the widgets will be supported, but this clearly\n    //  becomes more difficult as construction progresses, since the \n    //  stubbed methods, etc will be synchronized with the widget names.\n    // \n    //  A further aspiration of this experiment is to automatically\n    //  generate a buildView method correponding to the concretely\n    //  constructed app.\n}","funcProperties":{"__isSmartRef__":true,"id":180},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"179":{"this":{"__isSmartRef__":true,"id":41}},"180":{"user":"Dan","tags":["documentation"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Sat Sep 21 2013 21:48:16 GMT+0200 (Central Europe Daylight Time)\")"},"181":{"varMapping":{"__isSmartRef__":true,"id":182},"source":"function buildView(extent) {  // this.buildView()\n    // Disassemble prior view if present and set extent if not null\n    this.restart(extent);\n\n    // Lay out new widgets\n    lively.morphic.Panel.makePanedPanel(extent, [\n\t\t['classPane', this.newListPane, new Rectangle(0, 0, 0.5, 0.6)],\n\t\t['methodPane', this.newListPane, new Rectangle(0.5, 0, 0.5, 0.6)],\n\t\t['codePane', this.newCodePane, new Rectangle(0, 0.6, 1, 0.4)],\n\t], this);\n\n    // Connect widgets to this panel as model\n    connect(this.classPane, \"selection\", this, \"setSelectedClass\", {});\n    connect(this.methodPane, \"selection\", this, \"setMethodName\", {});\n\n    // Initialize this panel as model\n    this.onLoad();\n}","funcProperties":{"__isSmartRef__":true,"id":183},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"182":{"this":{"__isSmartRef__":true,"id":41}},"183":{"user":"Dan","tags":["panel support"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Sun Sep 22 2013 08:09:43 GMT+0200 (Central Europe Daylight Time)\")"},"184":{"varMapping":{"__isSmartRef__":true,"id":185},"source":"function newCodePane(bnds, morphorNull) {\n    // This method should be inherited for all apps\n    var codePane = morphorNull || newTextPane(bnds);\n    codePane.enableSyntaxHighlighting();\n    codePane.evalEnabled = true;\n    codePane.doSave = function() {\n        this.cachedTextString = null;\n        this.savedTextString = this.textString;\n        if (this.methodPane.selection) {\n            alertOK('eval'); \n            this.tryBoundEval('this.' + panel.methodPane.selection + ' = ' + this.savedTextString)\n        }\n    }\n    codePane.applyStyle({scaleProportional: true});\n    codePane.plug = {setTextString: 'input', getTextString: 'output', menuItems: 'output'}\n    this.wrapWidget(codePane);  // Override remove to clean up stubs\n    return codePane\n}","funcProperties":{"__isSmartRef__":true,"id":186},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"185":{"this":{"__isSmartRef__":true,"id":41}},"186":{"user":"Dan","tags":["panel support"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Thu Sep 26 2013 23:00:12 GMT+0200 (Central Europe Daylight Time)\")"},"187":{"varMapping":{"__isSmartRef__":true,"id":188},"source":"function onLoad() {  // this.onLoad()\n    // Call a method here to initialize state upon loading\n}","funcProperties":{"__isSmartRef__":true,"id":189},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"188":{"this":{"__isSmartRef__":true,"id":41}},"189":{"user":"Dan","tags":["app methods"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Oct 01 2013 02:29:09 GMT+0200 (Central Europe Daylight Time)\")"},"190":{"varMapping":{"__isSmartRef__":true,"id":191},"source":"function reset() {  // this.reset()\n    //  Call a method to clear state for saving in parts bin\n}","funcProperties":{"__isSmartRef__":true,"id":192},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"191":{"this":{"__isSmartRef__":true,"id":41}},"192":{"user":"Dan","tags":["app methods"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Sat Sep 21 2013 21:54:33 GMT+0200 (Central Europe Daylight Time)\")"},"193":{"varMapping":{"__isSmartRef__":true,"id":194},"source":"function yetToDo() {\n//  [X] Write code to intercept addMorph()\n//  [X]     gridding\n//  [X]     other defaults such as layout, borders, etc\n//  [X]     define plugs for, eg, list and text\n//  [X]     add stub methods for plugs\n//  [X]     add connections for outputs\n//  [X] Remove stubs when remove parts\n//  [X] Make safeRemove that checks for unchanged stubs\n//  [X] Remove connections when remove parts\n//  [X] Support renaming of parts by safeRemove, followed by add\n//  [X] Add and remove own variable refs\n//  [X] Test by building a browser\n//  [ ] Write code that will generate buildView method\n}","funcProperties":{"__isSmartRef__":true,"id":195},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"194":{"this":{"__isSmartRef__":true,"id":41}},"195":{"user":"Dan","tags":["documentation"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Sep 24 2013 08:07:11 GMT+0200 (Central Europe Daylight Time)\")"},"196":{"varMapping":{"__isSmartRef__":true,"id":197},"source":"function restart(extent) {  // this.restart()\n    // Use new frame if supplied\n    extent = extent || this.getExtent();\n    this.applyStyle({adjustForNewBounds: true, fill: Color.gray});\n    this.layout.grid = this.innerBounds().extent().scaleBy(1/20);\n\n    // Disassemble prior view and connections\n    this.removeAllMorphs();  // this should handle disconnect and unplug\n}","funcProperties":{"__isSmartRef__":true,"id":198},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"197":{"this":{"__isSmartRef__":true,"id":41}},"198":{"user":"Dan","tags":["DnD model"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Sep 24 2013 06:22:39 GMT+0200 (Central Europe Daylight Time)\")"},"199":{"varMapping":{"__isSmartRef__":true,"id":200},"source":"function addMorph(widget) {\n    // Override addMorph to provide gridding and docking of plugs\n    $super(widget);  // momentarily install to get local bounds\n    var bnds = widget.getBounds();\n    var name = widget.getName();\n    if (!name) return widget;\n    \n    if (widget.isList) {\n        widget.remove();  // replace by our special version\n        var m = this.newListPane(bnds); }\n    else if (widget.isText) {\n        widget.remove();  // replace by our special version\n        var m = this.newCodePane(bnds); }\n    else return widget;\n    \n    m.setName(name);\n    $super(m);\n    this.plugIn(m);\n    return m;\n}","funcProperties":{"__isSmartRef__":true,"id":205},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"200":{"this":{"__isSmartRef__":true,"id":41},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":201}},"201":{"$super":{"__isSmartRef__":true,"id":202}},"202":{"varMapping":{"__isSmartRef__":true,"id":203},"source":"function () {\n                    try {\n                        return obj.constructor.prototype[name].apply(obj, arguments)\n                    } catch (e) {\n                        if ($world)\n                            $world.logError(e, 'Error in $super call')\n                        else\n                            alert('Error in $super call: ' + e + '\\n' + e.stack);\n                        return null;\n                    }\n                }","funcProperties":{"__isSmartRef__":true,"id":204},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"203":{"obj":{"__isSmartRef__":true,"id":41},"name":"addMorph"},"204":{},"205":{"user":"Dan","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Sep 24 2013 20:56:20 GMT+0200 (Central Europe Daylight Time)\")"},"206":{"varMapping":{"__isSmartRef__":true,"id":207},"source":"function newListPane(bnds, morphorNull) {\n    // This method should be inherited for all apps\n    var list = morphorNull || new lively.morphic.List(bnds);\n    list.applyStyle({scaleProportional: true});\n    list.plug = {setList: 'input', selection: 'output', menuItems: 'output'}\n    this.wrapWidget(list);  // Override remove to clean up stubs\n    return list;\n}","funcProperties":{"__isSmartRef__":true,"id":208},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"207":{"this":{"__isSmartRef__":true,"id":41}},"208":{"user":"Dan","tags":["panel support"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Thu Sep 26 2013 23:01:36 GMT+0200 (Central Europe Daylight Time)\")"},"209":{"varMapping":{"__isSmartRef__":true,"id":210},"source":"function renamePart(part, oldName, newName) {\n    // setName must be wrapped to call this\n    console.log('Renaming ' + oldName + ' to ' + newName)\n    // We will simply remove all old stubs (safely) and then install again\n}","funcProperties":{"__isSmartRef__":true,"id":211},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"210":{"this":{"__isSmartRef__":true,"id":41}},"211":{"user":"Dan","tags":["DnD model"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Mon Sep 23 2013 21:19:47 GMT+0200 (Central Europe Daylight Time)\")"},"212":{"varMapping":{"__isSmartRef__":true,"id":213},"source":"function methodStubFor(widget, propName) {\n    // returns {methodName: 'nnn', methodString: 'sss'}\n    var mode = widget.plug[propName];\n    var widgetName = this.uncapitalize(widget.getName());\n    var methodName = widgetName + propName.capitalize();\n    var methodString = 'function ' + methodName + '(' + propName + ') {\\n'\n    if (mode == 'input') methodString +=\n        '\\tthis.' + widgetName + '.' + propName + '(' + propName + ');\\n';\n    methodString += '}';\n    return {widgetName: widgetName, methodName: methodName, methodString: methodString};\n}","funcProperties":{"__isSmartRef__":true,"id":214},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"213":{"this":{"__isSmartRef__":true,"id":41}},"214":{"user":"Dan","tags":["DnD model"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Sep 24 2013 05:45:12 GMT+0200 (Central Europe Daylight Time)\")"},"215":{"varMapping":{"__isSmartRef__":true,"id":216},"source":"function uncapitalize(name) {\n    // By symmetry with <string>.capitalize()\n    return name.charAt(0).toLowerCase() + name.slice(1);\n}","funcProperties":{"__isSmartRef__":true,"id":217},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"216":{"this":{"__isSmartRef__":true,"id":41}},"217":{"user":"Dan","tags":["DnD model"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Mon Sep 23 2013 02:48:00 GMT+0200 (Central Europe Daylight Time)\")"},"218":{"varMapping":{"__isSmartRef__":true,"id":219},"source":"function plugIn(widget) {\n    // set up connect and stub methods based on widget.plug\n    if (!widget.plug) return;\n    var plug = widget.plug;\n    ownPropertyNames(plug).forEach(function (prop) {\n        var stub = this.methodStubFor(widget, prop);\n        //  Add method stub\n        var script = this.addScript(eval('(' + stub.methodString + ')'));\n        script.setProperty(\"tags\", [\"app methods\"]);\n        //  Add connection for outputs\n        if (plug[prop] == 'output')\n            connect(widget, prop, this, stub.methodName)\n        //  Add own variable for each widget\n        this[stub.widgetName] = widget;\n        }, this)\n}","funcProperties":{"__isSmartRef__":true,"id":220},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"219":{"this":{"__isSmartRef__":true,"id":41}},"220":{"user":"Dan","tags":["DnD model"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Oct 01 2013 09:28:39 GMT+0200 (Central Europe Daylight Time)\")"},"221":{"varMapping":{"__isSmartRef__":true,"id":222},"source":"function unPlug(widget) {\n    // remove stub methods based on widget.plug\n    if (!widget.plug) return;\n    var plug = widget.plug;\n    ownPropertyNames(plug).forEach(function (prop) {\n        var stub = this.methodStubFor(widget, prop);\n        // remove method stubs that have not been edited\n        if (this[stub.methodName]\n            && this[stub.methodName].toString() == stub.methodString)\n            delete this[stub.methodName];\n        // remove connection for outputs\n        if (plug[prop] == 'output')\n            disconnect(widget, prop, this, stub.methodName)\n        // remove own variable for widget\n        if (this[stub.widgetName]) console.log('deleting ' + stub.widgetName);\n        if (this[stub.widgetName]) delete this[stub.widgetName];\n        }, this)\n}","funcProperties":{"__isSmartRef__":true,"id":223},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"222":{"this":{"__isSmartRef__":true,"id":41}},"223":{"user":"Dan","tags":["DnD model"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Sep 24 2013 00:11:47 GMT+0200 (Central Europe Daylight Time)\")"},"224":{"varMapping":{"__isSmartRef__":true,"id":225},"source":"function wrapWidget(widget) {\n    // Clean up stubs when a widget is removed or renamed\n    var self = this;\n    widget.remove = widget.remove.wrap(\n        function(wrapped) {\n            var args = $A(arguments); args.shift();\n            if (this.owner !== self)\n                return wrapped.apply(this, args);\n            self.unPlug(this);\n            this.remove = wrapped;  // restore remove\n            return wrapped.apply(this, args);\n        });\n    widget.setName = widget.setName.wrap(\n        function(wrapped) {\n            var args = $A(arguments); args.shift();\n            if (this.owner !== self || !this.getName())\n                return wrapped.apply(this, args);\n            self.unPlug(this);\n            var result = wrapped.apply(this, args);\n            self.plugIn(this);\n            return result;\n        });\n}","funcProperties":{"__isSmartRef__":true,"id":226},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"225":{"this":{"__isSmartRef__":true,"id":41}},"226":{"user":"Dan","tags":["DnD model"],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Thu Sep 26 2013 23:18:14 GMT+0200 (Central Europe Daylight Time)\")"},"227":{"varMapping":{"__isSmartRef__":true,"id":228},"source":"function setExtent(newExt) {\n    var result = $super(newExt);\n    this.layout.grid = this.innerBounds().extent().scaleBy(1/20);\n    return result;\n}","funcProperties":{"__isSmartRef__":true,"id":233},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"228":{"this":{"__isSmartRef__":true,"id":41},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":229}},"229":{"$super":{"__isSmartRef__":true,"id":230}},"230":{"varMapping":{"__isSmartRef__":true,"id":231},"source":"function () {\n                    try {\n                        return obj.constructor.prototype[name].apply(obj, arguments)\n                    } catch (e) {\n                        if ($world)\n                            $world.logError(e, 'Error in $super call')\n                        else\n                            alert('Error in $super call: ' + e + '\\n' + e.stack);\n                        return null;\n                    }\n                }","funcProperties":{"__isSmartRef__":true,"id":232},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"231":{"obj":{"__isSmartRef__":true,"id":41},"name":"setExtent"},"232":{},"233":{"user":"Dan","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Sep 24 2013 08:06:06 GMT+0200 (Central Europe Daylight Time)\")"},"234":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":235},"_ClipMode":"visible","derivationIds":["C1929B6F-562D-497A-A945-A197C3A9E889","D7B3050C-0857-4843-84E7-92B7F82F11A9","DA4387C8-E6FA-46CE-A51B-9DDC47D3A303"],"id":"BA798C22-1087-42CC-BD98-DBB8E6B74970","droppingEnabled":true,"halosEnabled":true,"type":"corner","_StyleClassNames":["Morph","Box","ReframeHandle","reframe-handle corner"],"layout":{"__isSmartRef__":true,"id":236},"owner":{"__isSmartRef__":true,"id":0},"eventHandler":{"__isSmartRef__":true,"id":237},"showsHalos":false,"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ReframeHandle","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(412.0,505.0)"},"235":{"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(14.0,14.0)","_Padding":"lively.rect(0,0,0,0)"},"236":{"moveVertical":true,"moveHorizontal":true},"237":{"morph":{"__isSmartRef__":true,"id":234},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"238":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":239},"_ClipMode":"visible","derivationIds":["203C3A91-D9D2-4230-A9F8-9752C28F1F34","4662873B-EC15-4307-B839-94873CF182E7","13B3275B-9205-4855-9FE7-54B1318EF6B1"],"id":"C515EF0E-AE30-4AD6-A06D-D0BF17B89615","droppingEnabled":true,"halosEnabled":true,"type":"bottom","_StyleClassNames":["Morph","Box","ReframeHandle","reframe-handle bottom"],"layout":{"__isSmartRef__":true,"id":240},"owner":{"__isSmartRef__":true,"id":0},"eventHandler":{"__isSmartRef__":true,"id":241},"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ReframeHandle","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(0.0,516.0)"},"239":{"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(412.0,3.0)","_Padding":"lively.rect(0,0,0,0)"},"240":{"moveVertical":true},"241":{"morph":{"__isSmartRef__":true,"id":238},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"242":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":243},"_ClipMode":"visible","derivationIds":["EB3F78E5-CD2B-4F21-99D7-F5C93CE0F6AE","9D9BE3B7-B67B-4676-9B27-93C74EE7D701","70D850A3-8C56-47E5-8C32-DE0ADB4D2A6C"],"id":"5463A9D2-D02A-4D59-9EF2-7193F208982E","droppingEnabled":true,"halosEnabled":true,"type":"right","_StyleClassNames":["Morph","Box","ReframeHandle","reframe-handle right"],"layout":{"__isSmartRef__":true,"id":244},"owner":{"__isSmartRef__":true,"id":0},"eventHandler":{"__isSmartRef__":true,"id":245},"showsHalos":false,"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ReframeHandle","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(423.0,0.0)"},"243":{"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(3.0,505.0)","_Padding":"lively.rect(0,0,0,0)"},"244":{"moveHorizontal":true},"245":{"morph":{"__isSmartRef__":true,"id":242},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"246":{"_BorderWidth":0,"_Fill":null,"_StrokeOpacity":false,"_BorderRadius":false,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Padding","_Extent"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Padding":"lively.rect(0,0,0,0)","_Extent":"lively.pt(426.0,519.0)"},"247":{"adjustForNewBounds":true},"248":{"morph":{"__isSmartRef__":true,"id":0},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"249":{"partName":"DependResolver","requiredModules":[],"partsSpaceName":"users/timfelgentreff/PartsBin/Examples/","comment":"no comment","changes":[{"__isSmartRef__":true,"id":250},{"__isSmartRef__":true,"id":251},{"__isSmartRef__":true,"id":252},{"__isSmartRef__":true,"id":253},{"__isSmartRef__":true,"id":254},{"__isSmartRef__":true,"id":255},{"__isSmartRef__":true,"id":256},{"__isSmartRef__":true,"id":257},{"__isSmartRef__":true,"id":258},{"__isSmartRef__":true,"id":259},{"__isSmartRef__":true,"id":260},{"__isSmartRef__":true,"id":261},{"__isSmartRef__":true,"id":262},{"__isSmartRef__":true,"id":263}],"migrationLevel":9,"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Tue Oct 01 2013 06:02:37 GMT+0200 (Central Europe Daylight Time)\")"},"250":{"author":"Dan","message":"no comment","id":"03111616-D63B-4E0C-AECF-77A08E218848","__serializedExpressions__":["date"],"date":"new Date(\"Tue Sep 17 2013 00:31:54 GMT+0200 (Central Europe Daylight Time)\")"},"251":{"author":"Dan","message":"no comment","id":"E920E96F-3861-4260-AF29-3D44E1F29958","__serializedExpressions__":["date"],"date":"new Date(\"Tue Sep 17 2013 00:39:51 GMT+0200 (Central Europe Daylight Time)\")"},"252":{"author":"Dan","message":"no comment","id":"84571B21-EFE8-4A55-8D35-75EC1ED17005","__serializedExpressions__":["date"],"date":"new Date(\"Tue Sep 17 2013 00:40:12 GMT+0200 (Central Europe Daylight Time)\")"},"253":{"author":"Dan","message":"no comment","id":"6444D8BF-7EDC-4711-B26C-4529F5D22CB1","__serializedExpressions__":["date"],"date":"new Date(\"Sat Sep 21 2013 22:07:20 GMT+0200 (Central Europe Daylight Time)\")"},"254":{"author":"Dan","message":"gridding works","id":"1CC18F8E-20CA-4009-91C3-400ED346E070","__serializedExpressions__":["date"],"date":"new Date(\"Sun Sep 22 2013 08:13:34 GMT+0200 (Central Europe Daylight Time)\")"},"255":{"author":"Dan","message":"gridding and methods stubs working","id":"ED881202-CC94-4564-92CC-A8CCDC7E333D","__serializedExpressions__":["date"],"date":"new Date(\"Sun Sep 22 2013 09:34:40 GMT+0200 (Central Europe Daylight Time)\")"},"256":{"author":"Dan","message":"fixed code for remove","id":"B7929EA7-5493-4EC0-87F3-A079CF02234E","__serializedExpressions__":["date"],"date":"new Date(\"Mon Sep 23 2013 21:15:09 GMT+0200 (Central Europe Daylight Time)\")"},"257":{"author":"Dan","message":"ready to test browser construction","id":"34873C2E-A884-46EC-B8E2-E790BB0CF0FB","__serializedExpressions__":["date"],"date":"new Date(\"Tue Sep 24 2013 00:47:14 GMT+0200 (Central Europe Daylight Time)\")"},"258":{"author":"Dan","message":"Working now; demo page forthcoming","id":"10723F4A-EDE3-4238-9178-29C9215165CC","__serializedExpressions__":["date"],"date":"new Date(\"Tue Sep 24 2013 06:23:27 GMT+0200 (Central Europe Daylight Time)\")"},"259":{"author":"Dan","message":"Now ready for test","id":"B1D2EF5C-17DA-48D0-988E-04AAA6C5B84D","__serializedExpressions__":["date"],"date":"new Date(\"Tue Sep 24 2013 08:16:09 GMT+0200 (Central Europe Daylight Time)\")"},"260":{"author":"Dan","message":"minor tweaks","id":"FDE46469-5CF2-44E6-8B48-9D1CD7F8BC7F","__serializedExpressions__":["date"],"date":"new Date(\"Tue Oct 01 2013 06:02:37 GMT+0200 (Central Europe Daylight Time)\")"},"261":{"author":"Dan","message":"method categories now working","id":"A3B1DAE0-A532-482F-9E95-4837C357A920","__serializedExpressions__":["date"],"date":"new Date(\"Tue Oct 01 2013 09:43:38 GMT+0200 (Central Europe Daylight Time)\")"},"262":{"author":"timfelgentreff","message":"no comment","id":"419AD769-BE94-4625-AF44-283FEFF4B09E","__serializedExpressions__":["date"],"date":"new Date(\"Thu Jul 17 2014 12:46:18 GMT+0200 (Central Europe Daylight Time)\")"},"263":{"__serializedExpressions__":["date"],"author":"timfelgentreff","message":"no comment","id":"07DC17FA-A9D0-45BA-8701-FF3C0F5B5E0E","date":"new Date(\"Thu Jul 17 2014 12:48:31 GMT+0200 (Central Europe Daylight Time)\")"},"264":{"reset":{"__isSmartRef__":true,"id":265},"resolve":{"__isSmartRef__":true,"id":268}},"265":{"varMapping":{"__isSmartRef__":true,"id":266},"source":"function reset() {\n    var input = this.get('CodePane');\n    var output = this.get('OutputText');\n    \n    input.textString = [\n        '// package.json',\n        '{',\n        '    \"dependencies\": {',\n        '        \"connect\": \">= 3.0.0\",',\n        '        \"parseurl\": \"~> 1.0.0\",',\n        '        \"crypto\": \"= 6.2.8\",',\n        '        \"logger\": \"*\"',\n        '    }',\n        '}'\n    ].join('\\n');\n    \n    output.textString = 'Press resolve…';\n}","funcProperties":{"__isSmartRef__":true,"id":267},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"266":{"this":{"__isSmartRef__":true,"id":0}},"267":{"user":"pmeinhardt","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Jun 17 2014 00:16:45 GMT+0200 (Central Europe Daylight Time)\")"},"268":{"varMapping":{"__isSmartRef__":true,"id":269},"source":"function resolve() {\n    // Package version\n    var Version = function Version(name, major, minor, patch) {\n        this.name = name;\n        this.major = major;\n        this.minor = minor;\n        this.patch = patch;\n    };\n\n    // Package repository\n    //\n    // Encapsulates information on available packages,\n    // allows for searching package versions by name.\n    var Repo = function Repo(content) {\n        this._versions = JSON.parse(content).map(function (ver) {\n            return new Version(ver.name, ver.major, ver.minor, ver.patch);\n        });\n    };\n    \n    Repo.prototype.search = function search(name) {\n        return this._versions.filter(function (ver) {\n            return ver.name == name;\n        });\n    };\n    \n    // Version specification\n    //\n    // Supported formats:\n    //   - \"= x.x.x\"\n    //   - \">= x.x.x\"\n    //   - \"~> x.x.x\"\n    //   - \"*\"\n    var Spec = function Spec(name, spec) {\n        var parts = spec.split(/ |\\./g);\n        \n        this.name  = name;\n        this.type  = parts[0]; // =, >=, ~>, *\n        this.major = parseInt(parts[1], 10);\n        this.minor = parseInt(parts[2], 10);\n        this.patch = parseInt(parts[3], 10);\n    };\n    \n    // Predicate\n    //\n    // Allows for building complex compound predicates.\n    //\n    // Example:\n    //   var and = new Predicate('&&', ['a >= b', 'b >= c']);\n    //   var or = new Predicate('||', [and, 'd == 0']);\n    //\n    //   or.toString(); // => '((a >= b && b >= c) || d == 0)'\n    //\n    //   or.predicates.push('f == 12');\n    //\n    //   or.toString(); // => '((a >= b && b >= c) || d == 0 || f == 12)'\n    var Predicate = function Predicate(type, predicates) {\n        if (!predicates) {\n            predicates = type;\n            type = '&&';\n        }\n        \n        this.predicates = predicates;\n        this.type = type;\n    };\n    \n    Predicate.prototype.toString = function toString() {\n        return this.predicates.map(function (pred) {\n            return '(' + pred.toString() + ')';\n        }).join(' ' + this.type + ' ');\n    };\n    \n    Predicate.prototype.toFunction = function toFunction() {\n        return new Function('return (' + this.toString() + ');');\n    };\n    \n    // Resolver for dependency specs\n    //\n    // Creates package constraints from a version specification\n    // and tries to satisfy them with packages from a given package repository.\n    var Resolver = function Resolver(repo) {\n        this._repo = repo;\n    };\n    \n    Resolver.prototype.resolve = function resolve(deps) {\n        var repository = this._repo;\n        var pkg = [];\n        \n        var solver = new ServerZ3(true);\n        solver.reset();\n        \n        Object.keys(deps).each(function (name) {\n            // Find available versions for the current package\n            var versions = repository.search(name);\n            \n            // Read requested package version spec\n            var spec = new Spec(name, deps[name]);\n            \n            // This object will hold the resolved version information\n            var res = new Version(name, 0, 0, 0);\n    \n            // Add required constraints for the actual version specification\n            var predicate; // constraint function, ctx: spec, res, ro\n    \n            if (spec.type == '>=') {\n                predicate = new Predicate('||', [\n                    'res.major >= ro(spec.major)',\n                    'res.major == ro(spec.major) && spec.minor >= ro(spec.minor)',\n                    'res.major == ro(spec.major) && spec.minor == ro(spec.minor) && res.patch >= ro(spec.patch)'\n                ]);\n            } else if (spec.type == '~>') {\n                if (isNaN(spec.minor)) {\n                    predicate = new Predicate([\n                        'res.major >= ro(spec.major)'\n                    ]);\n                } else if (isNaN(spec.patch)) {\n                    predicate = new Predicate('&&', [\n                        'res.major == ro(spec.major)',\n                        'res.minor >= ro(spec.minor)'\n                    ]);\n                } else {\n                    predicate = new Predicate('&&', [\n                        'res.major == ro(spec.major)',\n                        'res.minor == ro(spec.minor)',\n                        'res.patch >= ro(spec.patch)'\n                    ]);\n                }\n            } else if (spec.type == '=') {\n                predicate = new Predicate('&&', [\n                    'res.major == ro(spec.major)',\n                    'res.minor == ro(spec.minor)',\n                    'res.patch == ro(spec.patch)'\n                ]);\n            } else if (spec.type == '*') {\n                // here we do not create a predicate, as we would like to fetch\n                // any available version to satisfy the version requirement\n            } else {\n                throw 'Version spec not implemented: ' + spec.type;\n            }\n            \n            if (predicate) {\n                solver.always({\n                    ctx: {\n                        res: res,\n                        spec: spec,\n                        ro: bbb.readonly\n                    }\n                }, predicate.toFunction());\n            }\n            \n            // Add a compound constraint that the resolved version must\n            // correspond to any of the available versions\n            var disjunction = new Predicate('||', versions.map(function (ver) {\n                return new Predicate('&&', [\n                    'res.major == ' + ver.major,\n                    'res.minor == ' + ver.minor,\n                    'res.patch == ' + ver.patch\n                ]);\n            }));\n            \n            // console.log(req.name + ': ' + disjunction);\n    \n            try {\n                solver.always({\n                    ctx: {\n                        res: res,\n                        ro: bbb.readonly\n                    }\n                }, disjunction.toFunction());\n                \n                pkg.push(res); // push the resolved version\n            } catch (e) {\n                pkg.push({\n                    name: spec.name + ' (unresolved)',\n                    major: 'x',\n                    minor: 'x',\n                    patch: 'x'\n                });\n            }\n        });\n        \n        return pkg;\n    };\n\n\n    // ---\n\n\n    // Fetch the repository content\n    var repository = new Repo(this.get('Repository').get('RepoPane').textString);\n    \n    // Read given package dependencies\n    var input = this.get('CodePane');\n    var json = JSON.parse(input.textString.replace(/\\/\\/.*\\n/g, ''));\n    var deps = json.dependencies;\n    \n    // Try to resolve the specified versions \n    var resolver = new Resolver(repository);\n    var pkg = resolver.resolve(deps);\n    \n    // Output results\n\n    var output = this.get('OutputText');\n    \n    output.textString = pkg.map(function (res) {\n        return res.name + ': ' + [res.major, res.minor, res.patch].join('.');\n    }).join('\\n');\n}","funcProperties":{"__isSmartRef__":true,"id":270},"__LivelyClassName__":"lively.Closure","__SourceModuleName__":"Global.lively.lang.Closure"},"269":{"this":{"__isSmartRef__":true,"id":0}},"270":{"user":"pmeinhardt","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Sun Jul 06 2014 22:09:54 GMT+0200 (Central Europe Daylight Time)\")"},"isSimplifiedRegistry":true}}