{"id":0,"registry":{"0":{"submorphs":[{"__isSmartRef__":true,"id":1},{"__isSmartRef__":true,"id":41},{"__isSmartRef__":true,"id":381},{"__isSmartRef__":true,"id":385},{"__isSmartRef__":true,"id":389}],"scripts":[],"shape":{"__isSmartRef__":true,"id":393},"_ClipMode":"visible","derivationIds":[],"id":"B13DD1E7-E2C0-4A70-A38A-5BB85A291CF8","droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"layout":{"__isSmartRef__":true,"id":394},"closeButton":{"__isSmartRef__":true,"id":8},"collapseButton":{"__isSmartRef__":true,"id":18},"menuButton":{"__isSmartRef__":true,"id":28},"reframeHandle":{"__isSmartRef__":true,"id":381},"rightReframeHandle":{"__isSmartRef__":true,"id":389},"bottomReframeHandle":{"__isSmartRef__":true,"id":385},"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":395},"partsBinMetaInfo":{"__isSmartRef__":true,"id":315},"name":"LayerToBaseSystemMergeTool","_StyleClassNames":["Morph","Window"],"showsHalos":false,"_Scale":1,"__serializedExpressions__":["_Position","contentOffset"],"__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":[],"id":"9002DA05-0911-4A29-9AE2-46750F2DFE46","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":[],"id":"1EA98A32-D853-4F22-8449-34087FBD60EB","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_IsSelectable":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(1121.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":"_16467","storedString":"Layer to BaseSystem Merge Tool","__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":[],"id":"6F638992-0CC1-4B2D-9536-000F6B10710C","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(1193.0,3.0)"},"9":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":10},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":11}],"_ClipMode":"hidden","derivationIds":[],"id":"E59A3E7C-3B51-45DE-900F-5FE79FA6C3E1","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_IsSelectable":true,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"fixedWidth":true,"fixedHeight":true,"_FontFamily":"Helvetica","_FontSize":10,"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,0.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(17.0,20.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":"_16285","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,"_Fill":null,"_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":[],"id":"460F482B-B3D1-40D3-9752-DCF7EF73A68E","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},"__serializedExpressions__":["_Position"],"isPressed":false,"__LivelyClassName__":"lively.morphic.WindowControl","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(1173.0,3.0)"},"19":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":20},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":21}],"_ClipMode":"hidden","derivationIds":[],"id":"812AC5D0-9661-4B9A-85E4-87116E774ADE","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_IsSelectable":true,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"fixedWidth":true,"fixedHeight":true,"_FontFamily":"Helvetica","_FontSize":10,"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,0.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(17.0,20.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":"_16288","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,"_Fill":null,"_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":[],"id":"7A73C66D-55B4-4466-9E8E-1441BB2EC7C6","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(1130.0,3.0)"},"29":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":30},"_WhiteSpaceHandling":"pre","textChunks":[{"__isSmartRef__":true,"id":31}],"_ClipMode":"hidden","derivationIds":[],"id":"F389A6A3-44E0-447B-A3F3-635D205FD5DA","_InputAllowed":false,"_HandStyle":"default","allowInput":false,"_IsSelectable":true,"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"draggingEnabled":true,"fixedWidth":true,"fixedHeight":true,"_FontFamily":"Helvetica","_FontSize":10,"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":"_16291","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,"_Fill":null,"_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":{"_BorderWidth":0,"_BorderColor":null,"_Fill":null,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1213.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},{"__isSmartRef__":true,"id":58},{"__isSmartRef__":true,"id":75},{"__isSmartRef__":true,"id":146},{"__isSmartRef__":true,"id":171},{"__isSmartRef__":true,"id":242},{"__isSmartRef__":true,"id":289}],"scripts":[],"id":"9285BC03-4877-4874-B415-BD0E2EA9419F","shape":{"__isSmartRef__":true,"id":314},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"MergeLayerIntoBaseSystemPane","partsBinMetaInfo":{"__isSmartRef__":true,"id":315},"eventHandler":{"__isSmartRef__":true,"id":343},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","BD8BECDB-A9A1-4009-B433-C925F0AFCCFC","F2677A9D-5855-4DF2-B248-94545B34B762","D52188B3-7DC0-410E-96B1-50892AC00A37"],"partTests":{"__isSmartRef__":true,"id":344},"_ClipMode":"visible","moved":true,"owner":{"__isSmartRef__":true,"id":0},"_Rotation":0,"_Scale":1,"layout":{"__isSmartRef__":true,"id":349},"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":350},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(3.0,22.0)","distanceToDragEvent":"lively.pt(421.0,-6.0)"},"42":{"submorphs":[{"__isSmartRef__":true,"id":43}],"scripts":[],"id":"72F685CC-E2F2-4F6D-BEAE-263EB1F69B07","shape":{"__isSmartRef__":true,"id":47},"droppingEnabled":true,"halosEnabled":true,"itemList":[],"selectedIndexes":[],"showsHalos":false,"name":"Refinements","partsBinMetaInfo":{"__isSmartRef__":true,"id":48},"_ClipMode":{"__isSmartRef__":true,"id":53},"eventHandler":{"__isSmartRef__":true,"id":54},"derivationIds":[2860,"30186701-49A1-49AD-A42F-27F425D92029","ADD09343-51ED-44F6-85F3-257C9A52C897","C1C00AC4-F3E1-44E1-8973-0E9903EFE3B9","2B85E408-84FC-4316-BD59-0C77BB49E637","6CE6A7BB-6705-43E9-9DB7-A9B499A0017C"],"isBeingDragged":false,"changeTriggered":true,"grabbingEnabled":false,"_FontSize":10,"moved":true,"itemMorphs":[],"layout":{"__isSmartRef__":true,"id":55},"owner":{"__isSmartRef__":true,"id":41},"_Rotation":0,"_Scale":1,"attributeConnections":[{"__isSmartRef__":true,"id":56}],"doNotSerialize":["$$selection"],"doNotCopyProperties":["$$selection"],"__serializedExpressions__":["_Position","distanceToDragEvent"],"__LivelyClassName__":"lively.morphic.List","__SourceModuleName__":"Global.lively.morphic.Lists","_Position":"lively.pt(13.0,28.0)","distanceToDragEvent":"lively.pt(405.0,-8.0)"},"43":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":44},"_ClipMode":"visible","derivationIds":["5B4469C4-350D-4551-89E3-0CCAA4874419","99AE6204-7A5A-47D1-AE7C-1B39DB42669D","F64CD827-F2C5-4AA9-9BB4-3144BDFC362C"],"id":"F9BD78F1-E2E4-4DCD-999C-93169ADCDDB3","droppingEnabled":true,"halosEnabled":false,"owner":{"__isSmartRef__":true,"id":42},"eventHandler":{"__isSmartRef__":true,"id":45},"showsHalos":false,"layout":{"__isSmartRef__":true,"id":46},"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(0.0,0.0)"},"44":{"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1161.0,4.0)","_Padding":"lively.rect(0,0,0,0)"},"45":{"morph":{"__isSmartRef__":true,"id":43},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"46":{"resizeWidth":true,"adjustForNewBounds":true},"47":{"_BorderWidth":0,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1178.0,153.0)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(243,243,243)","_Padding":"lively.rect(0,0,0,0)"},"48":{"partsSpaceName":"PartsBin/Inputs","migrationLevel":8,"partName":"List","comment":"a list morph","changes":[{"__isSmartRef__":true,"id":49},{"__isSmartRef__":true,"id":50},{"__isSmartRef__":true,"id":51},{"__isSmartRef__":true,"id":52}],"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Fri Jun 27 2014 11:53:08 GMT+0200 (Central Europe Daylight Time)\")"},"49":{"author":"undefined","message":"Click on scrollbar does not grab list","id":"16AABF98-2E7D-4875-9E66-CF86EB74AF93","__serializedExpressions__":["date"],"date":"new Date(\"Thu Mar 29 2012 14:39:24 GMT+0200 (Central Europe Daylight Time)\")"},"50":{"author":"robertkrahn","message":"new morphic lists","id":"ACF81045-E200-4DA6-B0C6-B9AB94590E84","__serializedExpressions__":["date"],"date":"new Date(\"Mon Sep 30 2013 23:32:00 GMT+0200 (Central Europe Daylight Time)\")"},"51":{"author":"robertkrahn","message":"no comment","id":"3D0531CA-D241-4692-89F0-2FCC7621B8DE","__serializedExpressions__":["date"],"date":"new Date(\"Wed Oct 02 2013 00:29:07 GMT+0200 (Central Europe Daylight Time)\")"},"52":{"author":"robertkrahn","message":"Fixed onMouseDown handler of text item morphs","id":"860182BB-590A-4CD9-AAB6-2F87F9BDF9B6","__serializedExpressions__":["date"],"date":"new Date(\"Fri Jun 27 2014 11:53:07 GMT+0200 (Central Europe Daylight Time)\")"},"53":{"x":"hidden","y":"scroll"},"54":{"morph":{"__isSmartRef__":true,"id":42},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"55":{"listItemHeight":19,"padding":0,"maxListItems":9,"noOfCandidatesShown":1,"adjustForNewBounds":true,"resizeWidth":true,"__serializedExpressions__":["extent","maxExtent"],"extent":"lively.pt(1178.0,153.0)","maxExtent":"lively.pt(1178.0,153.0)"},"56":{"sourceObj":{"__isSmartRef__":true,"id":42},"sourceAttrName":"selection","targetObj":{"__isSmartRef__":true,"id":41},"targetMethodName":"selectRefinement","varMapping":{"__isSmartRef__":true,"id":57},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"57":{"source":{"__isSmartRef__":true,"id":42},"target":{"__isSmartRef__":true,"id":41}},"58":{"submorphs":[],"scripts":[],"id":"62735ED6-2E79-44D7-AB38-864B2CEB41E6","shape":{"__isSmartRef__":true,"id":59},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":true,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_MaxTextWidth":120.695652,"_MaxTextHeight":null,"showsHalos":false,"_FontSize":12,"name":"LayerName","partsBinMetaInfo":{"__isSmartRef__":true,"id":60},"textChunks":[{"__isSmartRef__":true,"id":69}],"charsReplaced":"NoLayer","lastFindLoc":7,"prevScroll":[0,0],"eventHandler":{"__isSmartRef__":true,"id":71},"_ClipMode":"hidden","derivationIds":[355,"1EB1674F-8BF2-419B-B054-86129ED70335","63698904-DC05-4341-A9B6-5CC4A219CD04","F6A714BA-4735-41ED-8A2A-45CB153FBDF8","F1D26890-7392-487D-B5DE-97C772B4E79E","59440FC5-E676-4B9B-A828-C150A05765C0"],"_WhiteSpaceHandling":"pre-wrap","_MinTextWidth":120.695652,"_MinTextHeight":null,"isBeingDragged":false,"moved":true,"layout":{"__isSmartRef__":true,"id":72},"owner":{"__isSmartRef__":true,"id":41},"_Rotation":0,"_Scale":1,"isInputLine":true,"_InputAllowed":true,"_HandStyle":null,"allowInput":true,"attributeConnections":[{"__isSmartRef__":true,"id":73}],"doNotSerialize":["$$savedTextString"],"doNotCopyProperties":["$$savedTextString"],"savedTextString":"DevLayer","__serializedExpressions__":["_Position","textColor","_Padding","distanceToDragEvent"],"previousSelection":[0,7],"__LivelyClassName__":"lively.morphic.Text","__SourceModuleName__":"Global.lively.morphic.TextCore","_Position":"lively.pt(12.0,3.0)","textColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(5,5,0,0)","distanceToDragEvent":"lively.pt(406.0,-13.0)"},"59":{"fill":null,"_BorderWidth":0,"_ClipMode":"visible","__serializedExpressions__":["_Fill","_Position","_Extent","_BorderColor","_Padding"],"_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Fill":"Color.rgb(255,255,255)","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(887.0,22.0)","_BorderColor":"Color.rgb(0,0,0)","_Padding":"lively.rect(4,2,0,0)"},"60":{"partsSpaceName":"PartsBin/Basic","migrationLevel":8,"comment":"a simple text morph","partName":"Text","changes":[{"__isSmartRef__":true,"id":61},{"__isSmartRef__":true,"id":62},{"__isSmartRef__":true,"id":63},{"__isSmartRef__":true,"id":64},{"__isSmartRef__":true,"id":65},{"__isSmartRef__":true,"id":66},{"__isSmartRef__":true,"id":67},{"__isSmartRef__":true,"id":68}],"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Sat Apr 05 2014 10:51:52 GMT+0200 (Central Europe Daylight Time)\")"},"61":{"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)\")"},"62":{"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)\")"},"63":{"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)\")"},"64":{"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)\")"},"65":{"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)\")"},"66":{"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)\")"},"67":{"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)\")"},"68":{"author":"robertkrahn","message":"resizeWidth = true","id":"E402462A-7AB2-487B-82BD-A3369C1C1F75","__serializedExpressions__":["date"],"date":"new Date(\"Sat Apr 05 2014 10:58:52 GMT+0200 (Central Europe Daylight Time)\")"},"69":{"style":{"__isSmartRef__":true,"id":70},"chunkOwner":{"__isSmartRef__":true,"id":58},"_id":"_11627","storedString":"NoLayer","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"70":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"71":{"morph":{"__isSmartRef__":true,"id":58},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"72":{"resizeWidth":true},"73":{"sourceObj":{"__isSmartRef__":true,"id":58},"sourceAttrName":"savedTextString","targetObj":{"__isSmartRef__":true,"id":41},"targetMethodName":"updateRefinements","varMapping":{"__isSmartRef__":true,"id":74},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"74":{"source":{"__isSmartRef__":true,"id":58},"target":{"__isSmartRef__":true,"id":41}},"75":{"storedTextString":"","submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":76},"derivationIds":[],"id":"0933E085-3CD3-497C-9B27-13B9A76BB384","halosEnabled":true,"_FontSize":12,"doNotSerialize":[],"_ShowGutter":false,"_TextMode":"javascript","_Theme":"chrome","_LineWrapping":false,"_ShowInvisibles":false,"_ShowPrintMargin":false,"_ShowIndents":true,"_ShowActiveLine":false,"_SoftTabs":true,"_AutocompletionEnabled":true,"_ShowWarnings":true,"_ShowErrors":true,"_TabSize":4,"allowInput":true,"evalEnabled":true,"layout":{"__isSmartRef__":true,"id":77},"name":"LayeredSourceCode","state":{"__isSmartRef__":true,"id":78},"doNotCopyProperties":[],"_Rotation":0,"_Scale":1,"owner":{"__isSmartRef__":true,"id":41},"eventHandler":{"__isSmartRef__":true,"id":80},"_isFocused":false,"showsHalos":false,"isBeingDragged":false,"prevScroll":[0,0],"accessibleInInactiveWindow":true,"_FontFamily":"Monaco,monospace","__serializedExpressions__":["_Position","distanceToDragEvent","padding"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":81},"__LivelyClassName__":"lively.morphic.CodeEditor","__SourceModuleName__":"Global.lively.ide.CodeEditor","_Position":"lively.pt(10.3,208.1)","distanceToDragEvent":"lively.pt(509.0,-12.0)","padding":"lively.rect(5,5,0,0)"},"76":{"_BorderWidth":1.482,"_Fill":null,"_BorderStyle":"solid","_BorderRadius":0,"_Opacity":1,"__serializedExpressions__":["_BorderColor","_Extent","extent"],"__LivelyClassName__":"lively.morphic.CodeEditorShape","__SourceModuleName__":"Global.lively.ide.CodeEditor","_BorderColor":"Color.rgb(95,94,95)","_Extent":"lively.pt(500.5,285.5)","extent":"lively.pt(501.5,286.5)"},"77":{"resizeHeight":true,"resizeWidth":false,"scaleVertical":false,"scaleHorizontal":false},"78":{"depth":1,"doNotSerialize":["workspaceVars"],"defRanges":{"__isSmartRef__":true,"id":79}},"79":{},"80":{"morph":{"__isSmartRef__":true,"id":75},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"81":{"onWindowGetsFocus":{"__isSmartRef__":true,"id":82},"animatedSetBounds":{"__isSmartRef__":true,"id":89},"sourceNameForEval":{"__isSmartRef__":true,"id":92},"getVarValue":{"__isSmartRef__":true,"id":99},"hideVariableArea":{"__isSmartRef__":true,"id":102},"onLoad":{"__isSmartRef__":true,"id":105},"onFromBuildSpecCreated":{"__isSmartRef__":true,"id":112},"rerender":{"__isSmartRef__":true,"id":119},"reset":{"__isSmartRef__":true,"id":122},"resetState":{"__isSmartRef__":true,"id":125},"selectVarDef":{"__isSmartRef__":true,"id":128},"showVariableArea":{"__isSmartRef__":true,"id":131},"showVars":{"__isSmartRef__":true,"id":134},"toggleVarArea":{"__isSmartRef__":true,"id":137},"updateToggleVarsButton":{"__isSmartRef__":true,"id":140},"varAreaIsHidden":{"__isSmartRef__":true,"id":143}},"82":{"varMapping":{"__isSmartRef__":true,"id":83},"source":"function onWindowGetsFocus() { this.focus(); }","funcProperties":{"__isSmartRef__":true,"id":88},"__LivelyClassName__":"lively.Closure"},"83":{"this":{"__isSmartRef__":true,"id":75},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":84}},"84":{"$super":{"__isSmartRef__":true,"id":85}},"85":{"varMapping":{"__isSmartRef__":true,"id":86},"source":"function () {\n        try {\n          // FIXME super is supposed to be static\n          return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n        } catch (e) {\n          if (typeof $world !== undefined) $world.logError(e, 'Error in $super call')\n          else alert('Error in $super call: ' + e + '\\n' + e.stack);\n          return null;\n        }\n      }","funcProperties":{"__isSmartRef__":true,"id":87},"__LivelyClassName__":"lively.Closure"},"86":{"obj":{"__isSmartRef__":true,"id":75},"name":"onWindowGetsFocus"},"87":{},"88":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"89":{"varMapping":{"__isSmartRef__":true,"id":90},"source":"function animatedSetBounds(morph, bounds) {\n        // this.setBounds(newEditorBounds);\n        // this.animatedSetBounds(this, this.bounds().withExtent(this.getExtent().addXY(10,0)));\n        var morphBounds = morph.bounds();\n        var posDiff = bounds.topLeft().subPt(morphBounds.topLeft());\n        var extentDiff = bounds.extent().subPt(morphBounds.extent());\n\n        var time = 400; // ms\n        var steps = 10;\n        var stepMove = posDiff.scaleBy(1/steps);\n        var stepResize = extentDiff.scaleBy(1/steps);\n        animatedScale(steps);\n\n        function animatedScale(step) {\n            if (step === 0) { morph.setBounds(bounds); return; }\n            morph.moveBy(stepMove);\n            morph.resizeBy(stepResize);\n            animatedScale.curry(step-1).delay(time/steps / 1000);\n        }\n\n    }","funcProperties":{"__isSmartRef__":true,"id":91},"__LivelyClassName__":"lively.Closure"},"90":{"this":{"__isSmartRef__":true,"id":75}},"91":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"92":{"varMapping":{"__isSmartRef__":true,"id":93},"source":"function sourceNameForEval() {\n      return (this.getWindow() ? this.getWindow().getTitle() : \"JS-workspace\") + \"-\" + Date.now();\n    }","funcProperties":{"__isSmartRef__":true,"id":98},"__LivelyClassName__":"lively.Closure"},"93":{"this":{"__isSmartRef__":true,"id":75},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":94}},"94":{"$super":{"__isSmartRef__":true,"id":95}},"95":{"varMapping":{"__isSmartRef__":true,"id":96},"source":"function () {\n        try {\n          // FIXME super is supposed to be static\n          return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n        } catch (e) {\n          if (typeof $world !== undefined) $world.logError(e, 'Error in $super call')\n          else alert('Error in $super call: ' + e + '\\n' + e.stack);\n          return null;\n        }\n      }","funcProperties":{"__isSmartRef__":true,"id":97},"__LivelyClassName__":"lively.Closure"},"96":{"obj":{"__isSmartRef__":true,"id":75},"name":"sourceNameForEval"},"97":{},"98":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"99":{"varMapping":{"__isSmartRef__":true,"id":100},"source":"function setVarValue(varName, val) {\n        if (!this.state.workspaceVars) this.state.workspaceVars = {};\n        return this.state.workspaceVars[varName] = val;\n    }","funcProperties":{"__isSmartRef__":true,"id":101},"__LivelyClassName__":"lively.Closure"},"100":{"this":{"__isSmartRef__":true,"id":75}},"101":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"102":{"varMapping":{"__isSmartRef__":true,"id":103},"source":"function hideVariableArea() {\n        var newEditorBounds = rect(pt(3,22), this.get(\"listContainer\").bounds().bottomRight());\n        // this.setBounds(newEditorBounds);\n        this.updateToggleVarsButton(newEditorBounds);\n        this.animatedSetBounds(this, newEditorBounds);\n        this.stopStepping();\n    }","funcProperties":{"__isSmartRef__":true,"id":104},"__LivelyClassName__":"lively.Closure"},"103":{"this":{"__isSmartRef__":true,"id":75}},"104":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"105":{"varMapping":{"__isSmartRef__":true,"id":106},"source":"function onLoad() {\n            $super();\n            // FIXME...\n            this.getWindow().addMorphBack(this.get(\"listContainer\"));\n        }","funcProperties":{"__isSmartRef__":true,"id":111},"__LivelyClassName__":"lively.Closure"},"106":{"this":{"__isSmartRef__":true,"id":75},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":107}},"107":{"$super":{"__isSmartRef__":true,"id":108}},"108":{"varMapping":{"__isSmartRef__":true,"id":109},"source":"function () {\n        try {\n          // FIXME super is supposed to be static\n          return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n        } catch (e) {\n          if (typeof $world !== undefined) $world.logError(e, 'Error in $super call')\n          else alert('Error in $super call: ' + e + '\\n' + e.stack);\n          return null;\n        }\n      }","funcProperties":{"__isSmartRef__":true,"id":110},"__LivelyClassName__":"lively.Closure"},"109":{"obj":{"__isSmartRef__":true,"id":75},"name":"onLoad"},"110":{},"111":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"112":{"varMapping":{"__isSmartRef__":true,"id":113},"source":"function onFromBuildSpecCreated() {\n            $super();\n            this.getWindow().addMorphBack(this.get(\"listContainer\"));\n            this.resetState();\n        }","funcProperties":{"__isSmartRef__":true,"id":118},"__LivelyClassName__":"lively.Closure"},"113":{"this":{"__isSmartRef__":true,"id":75},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":114}},"114":{"$super":{"__isSmartRef__":true,"id":115}},"115":{"varMapping":{"__isSmartRef__":true,"id":116},"source":"function () {\n        try {\n          // FIXME super is supposed to be static\n          return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n        } catch (e) {\n          if (typeof $world !== undefined) $world.logError(e, 'Error in $super call')\n          else alert('Error in $super call: ' + e + '\\n' + e.stack);\n          return null;\n        }\n      }","funcProperties":{"__isSmartRef__":true,"id":117},"__LivelyClassName__":"lively.Closure"},"116":{"obj":{"__isSmartRef__":true,"id":75},"name":"onFromBuildSpecCreated"},"117":{},"118":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"119":{"varMapping":{"__isSmartRef__":true,"id":120},"source":"function rerender() {\n            var obs = this.get('workspaceVarObserver');\n            obs.setList([]);\n            this.showVars();\n        }","funcProperties":{"__isSmartRef__":true,"id":121},"__LivelyClassName__":"lively.Closure"},"120":{"this":{"__isSmartRef__":true,"id":75}},"121":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"122":{"varMapping":{"__isSmartRef__":true,"id":123},"source":"function reset() {\n        this.setStyleSheet('.list-item { font-size: 9pt; }')\n        this.state = {\n            doNotSerialize: ['workspaceVars'],\n            workspaceVars: {},\n            depth: 1\n        };\n        this.showVars();\n        this.textString = '';\n        lively.bindings.connect(this.get(\"toggleVarsButton\"), 'fire', this, 'toggleVarArea');\n    }","funcProperties":{"__isSmartRef__":true,"id":124},"__LivelyClassName__":"lively.Closure"},"123":{"this":{"__isSmartRef__":true,"id":75}},"124":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"125":{"varMapping":{"__isSmartRef__":true,"id":126},"source":"function resetState() {\n        this.owner.targetMorph = this;\n        this.state = {\n            depth: 1,\n            doNotSerialize: [\"workspaceVars\"],\n            workspaceVars: {},\n            defRanges: {}\n        }\n        this.showVars();\n        lively.bindings.connect(this.get(\"workspaceVarObserver\"), \"selection\", this, \"selectVarDef\");\n    }","funcProperties":{"__isSmartRef__":true,"id":127},"__LivelyClassName__":"lively.Closure"},"126":{"this":{"__isSmartRef__":true,"id":75}},"127":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"128":{"varMapping":{"__isSmartRef__":true,"id":129},"source":"function selectVarDef(selection) {\n        if (!selection) return;\n        var name = selection.item.value.key\n        var defRanges = this.state.defRanges[name];\n        if (!defRanges || !defRanges.length) return;\n        var range = defRanges.last();\n        this.setSelectionRange(range.start, range.end, true);\n    }","funcProperties":{"__isSmartRef__":true,"id":130},"__LivelyClassName__":"lively.Closure"},"129":{"this":{"__isSmartRef__":true,"id":75}},"130":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"131":{"varMapping":{"__isSmartRef__":true,"id":132},"source":"function showVariableArea() {\n        var border = 2,\n            varAreaWidth = 220,\n            varList = this.get(\"listContainer\"),\n            newEditorBounds = rect(\n                pt(3,22),\n                varList.bounds().bottomRight().addXY(-3 - varAreaWidth - border, 0));\n    \n        varList.setExtent(varList.getExtent().withX(varAreaWidth));\n        varList.align(varList.bounds().topRight(), this.getWindow().innerBounds().topRight().addXY(-3,22));\n    \n        this.updateToggleVarsButton(newEditorBounds);\n    \n        this.animatedSetBounds(this, newEditorBounds);\n        this.startStepping(1000, \"showVars\");\n    }","funcProperties":{"__isSmartRef__":true,"id":133},"__LivelyClassName__":"lively.Closure"},"132":{"this":{"__isSmartRef__":true,"id":75}},"133":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"134":{"varMapping":{"__isSmartRef__":true,"id":135},"source":"function showVars() {\n            // this.startStepping(1000, 'showVars')\n            // obs.setList([]);\n\n            var style = {\n                allowInput: false,\n                fixedHeight: false, fixedWidth: true,\n                whiteSpaceHandling: 'pre',\n                cssStylingMode: true\n            };\n\n            var s = this.state;\n            var vars = s.workspaceVars || {};\n            var keys = Object.keys(vars);\n\n            var obs = this.get('workspaceVarObserver');\n            var list = obs.getList() || [];\n\n            var preexistingItems = list.filter(function(item) {\n                    return keys.include(item.value.key); })\n                .map(function(ea) {\n                    ea.value = {key: ea.value.key, value: vars[ea.value.key]};\n                    ea.morph = render(ea.value.key, ea.value.value, ea.morph);\n                    return ea\n                });\n\n            var newItems = keys\n                .withoutAll(preexistingItems.pluck('value').pluck('key'))\n                .map(function(k) {\n                    var morph = render(k, vars[k]),\n                        item = {morph: morph, isListItem: true, string: 'foo', value: {key: k, value: vars[k]}};\n                    morph.item = item;\n                    return item; });\n\n            var items = preexistingItems.concat(newItems);\n\n            obs.setList(items);\n            obs.applyLayout();\n\n            // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n            function render(key, val, optListItemMorph) {\n                var morph = optListItemMorph || createListItemMorph();\n\n                var valString = stringifyObj(val);\n                var string = key + ': ' + valString;\n                if (morph.textString !== string) {\n                    morph.setClipMode('visible');\n                    morph.textString = string;\n                    morph.fitThenDo(function() { morph.setClipMode(\"hidden\"); });\n                };\n\n                return morph;\n            }\n\n            function createListItemMorph() {\n                var morph = new lively.morphic.Text(\n                    obs.getExtent()\n                        .addXY(-2 * obs.layout.layouter.borderSize, 0)\n                        .extentAsRectangle(), '');\n\n                morph.applyStyle(style);\n\n                morph.addStyleClassName('list-item');\n\n                morph.addScript(function showControls() {\n                    var resetButton = new lively.morphic.Button(this.innerBounds());\n                    resetButton.align(resetButton.getPosition(), this.innerBounds().bottomLeft());\n                    this.controls = [\n                        this.addMorph(resetButton)\n                    ];\n                    this.cachedBounds = null;\n                    this.owner.applyLayout();\n                });\n\n                morph.addScript(function hideControls() {\n                    this.controls.invoke('remove');\n                    this.controls.length = 0;\n                    this.owner.applyLayout();\n                })\n\n                morph.addScript(function onHoverIn(evt) {\n                    this.showControls();\n                });\n\n                morph.addScript(function onHoverOut(evt) {\n                    this.hideControls();\n                });\n\n                morph.addScript(function onMouseMove(evt) {\n                    if (this.thereIsAHandInMe) return false;\n                    this.thereIsAHandInMe = true;\n                    this.onHoverIn(evt);\n                });\n\n                morph.addScript(function onMouseOut(evt) {\n                    var wasHovered = !!this.thereIsAHandInMe;\n                    var hoverInMorph = evt.relatedTarget && lively.$(evt.relatedTarget).parents('.morphNode').data('morph');\n                    if (hoverInMorph && (hoverInMorph === this || hoverInMorph.ownerChain().include(this))) return;\n                    this.thereIsAHandInMe = false;\n                    wasHovered && this.onHoverOut(evt);\n                });\n\n                return morph;\n            }\n\n            function stringifyObj(obj) {\n                var string = String(obj);\n                return string.truncate(250);\n                var string;\n                if (obj && obj.isMorph) {\n                    string = obj.toString();\n                } else {\n                     string = Objects.inspect(obj, {maxDepth: s.depth});\n                }\n                return string.truncate(250);\n            }\n        }","funcProperties":{"__isSmartRef__":true,"id":136},"__LivelyClassName__":"lively.Closure"},"135":{"this":{"__isSmartRef__":true,"id":75}},"136":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"137":{"varMapping":{"__isSmartRef__":true,"id":138},"source":"function toggleVarArea() {\n        this[this.varAreaIsHidden() ? \"showVariableArea\" : \"hideVariableArea\"]();\n    }","funcProperties":{"__isSmartRef__":true,"id":139},"__LivelyClassName__":"lively.Closure"},"138":{"this":{"__isSmartRef__":true,"id":75}},"139":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"140":{"varMapping":{"__isSmartRef__":true,"id":141},"source":"function updateToggleVarsButton(bnds) {\n        var btn = this.get(\"toggleVarsButton\");\n        bnds = bnds || this.bounds();\n\n        var newButtonBounds = btn.bounds().withTopRight(bnds.topRight().addXY(-4,4))\n        this.animatedSetBounds(btn, newButtonBounds);\n\n        var hidden = this.varAreaIsHidden();\n        var label = hidden ? \"hide vars\" : \"show vars\";\n        btn.setLabel(label);\n        if (this.owner.submorphs.indexOf(btn) < this.owner.submorphs.indexOf(this))\n            this.owner.addMorph(this, btn);\n    }","funcProperties":{"__isSmartRef__":true,"id":142},"__LivelyClassName__":"lively.Closure"},"141":{"this":{"__isSmartRef__":true,"id":75}},"142":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"143":{"varMapping":{"__isSmartRef__":true,"id":144},"source":"function varAreaIsHidden() {\n        this.cachedBounds = null;\n        this.aceEditor.resize(true)\n        var varsAreVisible = this.getWindow().getExtent().x - this.bounds().width > 30;\n        return !varsAreVisible\n    }","funcProperties":{"__isSmartRef__":true,"id":145},"__LivelyClassName__":"lively.Closure"},"144":{"this":{"__isSmartRef__":true,"id":75}},"145":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"146":{"submorphs":[{"__isSmartRef__":true,"id":147}],"scripts":[],"shape":{"__isSmartRef__":true,"id":152},"eventHandler":{"__isSmartRef__":true,"id":153},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"77B295F7-9636-47F1-A578-54C50311D0A1","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":147},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":154},{"__isSmartRef__":true,"id":156}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"MergeButton","partsBinMetaInfo":{"__isSmartRef__":true,"id":158},"pinSpecs":[{"__isSmartRef__":true,"id":166}],"owner":{"__isSmartRef__":true,"id":41},"_Rotation":0,"_Scale":1,"_StyleClassNames":["Morph","Button"],"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":167},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(11.0,186.0)","distanceToDragEvent":"lively.pt(72.0,-19.0)"},"147":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":148},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":149}],"eventHandler":{"__isSmartRef__":true,"id":151},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"4AD60C3A-348E-47CD-A80F-946711313721","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":146},"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)"},"148":{"_BorderWidth":0,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,20.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"149":{"style":{"__isSmartRef__":true,"id":150},"chunkOwner":{"__isSmartRef__":true,"id":147},"_id":"_16019","storedString":"Merge -> Base","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"150":{"__serializedExpressions__":["color"],"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore","color":"Color.rgb(0,0,0)"},"151":{"morph":{"__isSmartRef__":true,"id":147},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"152":{"_BorderWidth":1,"_BorderRadius":5,"_AppearanceStylingMode":true,"_BorderStylingMode":true,"__serializedExpressions__":["_Position","_Extent","_Padding","_BorderColor"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(100.0,20.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"153":{"morph":{"__isSmartRef__":true,"id":146},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"154":{"sourceObj":{"__isSmartRef__":true,"id":146},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":146},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":155},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"155":{"source":{"__isSmartRef__":true,"id":146},"target":{"__isSmartRef__":true,"id":146}},"156":{"sourceObj":{"__isSmartRef__":true,"id":146},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":41},"targetMethodName":"mergeRefinementToBase","varMapping":{"__isSmartRef__":true,"id":157},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"157":{"source":{"__isSmartRef__":true,"id":146},"target":{"__isSmartRef__":true,"id":41}},"158":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":159},{"__isSmartRef__":true,"id":160},{"__isSmartRef__":true,"id":161},{"__isSmartRef__":true,"id":162},{"__isSmartRef__":true,"id":163},{"__isSmartRef__":true,"id":164},{"__isSmartRef__":true,"id":165}],"migrationLevel":7,"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Wed Jul 24 2013 08:21:12 GMT+0200 (Central Europe Daylight Time)\")"},"159":{"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)\")"},"160":{"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)\")"},"161":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","__serializedExpressions__":["date"],"date":"new Date(\"Wed May 01 2013 05:34:25 GMT+0200 (Central Europe Daylight Time)\")"},"162":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","__serializedExpressions__":["date"],"date":"new Date(\"Wed May 01 2013 05:35:59 GMT+0200 (Central Europe Daylight Time)\")"},"163":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","__serializedExpressions__":["date"],"date":"new Date(\"Wed May 01 2013 05:36:30 GMT+0200 (Central Europe Daylight Time)\")"},"164":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jun 17 2013 19:22:38 GMT+0200 (Central Europe Daylight Time)\")"},"165":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jun 17 2013 19:24:50 GMT+0200 (Central Europe Daylight Time)\")"},"166":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"167":{"doAction":{"__isSmartRef__":true,"id":168}},"168":{"varMapping":{"__isSmartRef__":true,"id":169},"source":"function doAction() {\n    \n}","funcProperties":{"__isSmartRef__":true,"id":170},"__LivelyClassName__":"lively.Closure"},"169":{"this":{"__isSmartRef__":true,"id":146}},"170":{"user":"undefined","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Dec 11 2012 22:14:29 GMT+0100 (Central Europe Standard Time)\")"},"171":{"storedTextString":"","submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":172},"derivationIds":["0933E085-3CD3-497C-9B27-13B9A76BB384"],"id":"D2A652AD-FA60-439A-940C-BD6F2C61351B","halosEnabled":true,"_FontSize":12,"doNotSerialize":[],"_ShowGutter":false,"_TextMode":"javascript","_Theme":"chrome","_LineWrapping":false,"_ShowInvisibles":false,"_ShowPrintMargin":false,"_ShowIndents":true,"_ShowActiveLine":false,"_SoftTabs":true,"_AutocompletionEnabled":true,"_ShowWarnings":true,"_ShowErrors":true,"_TabSize":4,"allowInput":true,"evalEnabled":true,"layout":{"__isSmartRef__":true,"id":173},"name":"OriginalSourceCode","state":{"__isSmartRef__":true,"id":174},"doNotCopyProperties":[],"_Rotation":0,"_Scale":1,"eventHandler":{"__isSmartRef__":true,"id":176},"_isFocused":false,"showsHalos":false,"isBeingDragged":false,"owner":{"__isSmartRef__":true,"id":41},"prevScroll":[0,0],"accessibleInInactiveWindow":true,"_FontFamily":"Monaco,monospace","__serializedExpressions__":["_Position","distanceToDragEvent","padding"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":177},"__LivelyClassName__":"lively.morphic.CodeEditor","__SourceModuleName__":"Global.lively.ide.CodeEditor","_Position":"lively.pt(511.6,205.2)","distanceToDragEvent":"lively.pt(274.0,-15.0)","padding":"lively.rect(5,5,0,0)"},"172":{"_BorderWidth":1.482,"_Fill":null,"_BorderStyle":"solid","_BorderRadius":0,"_Opacity":1,"__serializedExpressions__":["_BorderColor","_Extent","extent"],"__LivelyClassName__":"lively.morphic.CodeEditorShape","__SourceModuleName__":"Global.lively.ide.CodeEditor","_BorderColor":"Color.rgb(95,94,95)","_Extent":"lively.pt(686.5,293.5)","extent":"lively.pt(687.5,294.5)"},"173":{"resizeHeight":true,"resizeWidth":true,"scaleVertical":false,"scaleHorizontal":false},"174":{"depth":1,"doNotSerialize":["workspaceVars"],"defRanges":{"__isSmartRef__":true,"id":175}},"175":{},"176":{"morph":{"__isSmartRef__":true,"id":171},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"177":{"onWindowGetsFocus":{"__isSmartRef__":true,"id":178},"animatedSetBounds":{"__isSmartRef__":true,"id":185},"sourceNameForEval":{"__isSmartRef__":true,"id":188},"getVarValue":{"__isSmartRef__":true,"id":195},"hideVariableArea":{"__isSmartRef__":true,"id":198},"onLoad":{"__isSmartRef__":true,"id":201},"onFromBuildSpecCreated":{"__isSmartRef__":true,"id":208},"rerender":{"__isSmartRef__":true,"id":215},"reset":{"__isSmartRef__":true,"id":218},"resetState":{"__isSmartRef__":true,"id":221},"selectVarDef":{"__isSmartRef__":true,"id":224},"showVariableArea":{"__isSmartRef__":true,"id":227},"showVars":{"__isSmartRef__":true,"id":230},"toggleVarArea":{"__isSmartRef__":true,"id":233},"updateToggleVarsButton":{"__isSmartRef__":true,"id":236},"varAreaIsHidden":{"__isSmartRef__":true,"id":239}},"178":{"varMapping":{"__isSmartRef__":true,"id":179},"source":"function onWindowGetsFocus() { this.focus(); }","funcProperties":{"__isSmartRef__":true,"id":184},"__LivelyClassName__":"lively.Closure"},"179":{"this":{"__isSmartRef__":true,"id":171},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":180}},"180":{"$super":{"__isSmartRef__":true,"id":181}},"181":{"varMapping":{"__isSmartRef__":true,"id":182},"source":"function () {\n        try {\n          // FIXME super is supposed to be static\n          return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n        } catch (e) {\n          if (typeof $world !== undefined) $world.logError(e, 'Error in $super call')\n          else alert('Error in $super call: ' + e + '\\n' + e.stack);\n          return null;\n        }\n      }","funcProperties":{"__isSmartRef__":true,"id":183},"__LivelyClassName__":"lively.Closure"},"182":{"obj":{"__isSmartRef__":true,"id":171},"name":"onWindowGetsFocus"},"183":{},"184":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"185":{"varMapping":{"__isSmartRef__":true,"id":186},"source":"function animatedSetBounds(morph, bounds) {\n        // this.setBounds(newEditorBounds);\n        // this.animatedSetBounds(this, this.bounds().withExtent(this.getExtent().addXY(10,0)));\n        var morphBounds = morph.bounds();\n        var posDiff = bounds.topLeft().subPt(morphBounds.topLeft());\n        var extentDiff = bounds.extent().subPt(morphBounds.extent());\n\n        var time = 400; // ms\n        var steps = 10;\n        var stepMove = posDiff.scaleBy(1/steps);\n        var stepResize = extentDiff.scaleBy(1/steps);\n        animatedScale(steps);\n\n        function animatedScale(step) {\n            if (step === 0) { morph.setBounds(bounds); return; }\n            morph.moveBy(stepMove);\n            morph.resizeBy(stepResize);\n            animatedScale.curry(step-1).delay(time/steps / 1000);\n        }\n\n    }","funcProperties":{"__isSmartRef__":true,"id":187},"__LivelyClassName__":"lively.Closure"},"186":{"this":{"__isSmartRef__":true,"id":171}},"187":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"188":{"varMapping":{"__isSmartRef__":true,"id":189},"source":"function sourceNameForEval() {\n      return (this.getWindow() ? this.getWindow().getTitle() : \"JS-workspace\") + \"-\" + Date.now();\n    }","funcProperties":{"__isSmartRef__":true,"id":194},"__LivelyClassName__":"lively.Closure"},"189":{"this":{"__isSmartRef__":true,"id":171},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":190}},"190":{"$super":{"__isSmartRef__":true,"id":191}},"191":{"varMapping":{"__isSmartRef__":true,"id":192},"source":"function () {\n        try {\n          // FIXME super is supposed to be static\n          return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n        } catch (e) {\n          if (typeof $world !== undefined) $world.logError(e, 'Error in $super call')\n          else alert('Error in $super call: ' + e + '\\n' + e.stack);\n          return null;\n        }\n      }","funcProperties":{"__isSmartRef__":true,"id":193},"__LivelyClassName__":"lively.Closure"},"192":{"obj":{"__isSmartRef__":true,"id":171},"name":"sourceNameForEval"},"193":{},"194":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"195":{"varMapping":{"__isSmartRef__":true,"id":196},"source":"function setVarValue(varName, val) {\n        if (!this.state.workspaceVars) this.state.workspaceVars = {};\n        return this.state.workspaceVars[varName] = val;\n    }","funcProperties":{"__isSmartRef__":true,"id":197},"__LivelyClassName__":"lively.Closure"},"196":{"this":{"__isSmartRef__":true,"id":171}},"197":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"198":{"varMapping":{"__isSmartRef__":true,"id":199},"source":"function hideVariableArea() {\n        var newEditorBounds = rect(pt(3,22), this.get(\"listContainer\").bounds().bottomRight());\n        // this.setBounds(newEditorBounds);\n        this.updateToggleVarsButton(newEditorBounds);\n        this.animatedSetBounds(this, newEditorBounds);\n        this.stopStepping();\n    }","funcProperties":{"__isSmartRef__":true,"id":200},"__LivelyClassName__":"lively.Closure"},"199":{"this":{"__isSmartRef__":true,"id":171}},"200":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"201":{"varMapping":{"__isSmartRef__":true,"id":202},"source":"function onLoad() {\n            $super();\n            // FIXME...\n            this.getWindow().addMorphBack(this.get(\"listContainer\"));\n        }","funcProperties":{"__isSmartRef__":true,"id":207},"__LivelyClassName__":"lively.Closure"},"202":{"this":{"__isSmartRef__":true,"id":171},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":203}},"203":{"$super":{"__isSmartRef__":true,"id":204}},"204":{"varMapping":{"__isSmartRef__":true,"id":205},"source":"function () {\n        try {\n          // FIXME super is supposed to be static\n          return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n        } catch (e) {\n          if (typeof $world !== undefined) $world.logError(e, 'Error in $super call')\n          else alert('Error in $super call: ' + e + '\\n' + e.stack);\n          return null;\n        }\n      }","funcProperties":{"__isSmartRef__":true,"id":206},"__LivelyClassName__":"lively.Closure"},"205":{"obj":{"__isSmartRef__":true,"id":171},"name":"onLoad"},"206":{},"207":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"208":{"varMapping":{"__isSmartRef__":true,"id":209},"source":"function onFromBuildSpecCreated() {\n            $super();\n            this.getWindow().addMorphBack(this.get(\"listContainer\"));\n            this.resetState();\n        }","funcProperties":{"__isSmartRef__":true,"id":214},"__LivelyClassName__":"lively.Closure"},"209":{"this":{"__isSmartRef__":true,"id":171},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":210}},"210":{"$super":{"__isSmartRef__":true,"id":211}},"211":{"varMapping":{"__isSmartRef__":true,"id":212},"source":"function () {\n        try {\n          // FIXME super is supposed to be static\n          return Object.getPrototypeOf(obj)[name].apply(obj, arguments);\n        } catch (e) {\n          if (typeof $world !== undefined) $world.logError(e, 'Error in $super call')\n          else alert('Error in $super call: ' + e + '\\n' + e.stack);\n          return null;\n        }\n      }","funcProperties":{"__isSmartRef__":true,"id":213},"__LivelyClassName__":"lively.Closure"},"212":{"obj":{"__isSmartRef__":true,"id":171},"name":"onFromBuildSpecCreated"},"213":{},"214":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"215":{"varMapping":{"__isSmartRef__":true,"id":216},"source":"function rerender() {\n            var obs = this.get('workspaceVarObserver');\n            obs.setList([]);\n            this.showVars();\n        }","funcProperties":{"__isSmartRef__":true,"id":217},"__LivelyClassName__":"lively.Closure"},"216":{"this":{"__isSmartRef__":true,"id":171}},"217":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"218":{"varMapping":{"__isSmartRef__":true,"id":219},"source":"function reset() {\n        this.setStyleSheet('.list-item { font-size: 9pt; }')\n        this.state = {\n            doNotSerialize: ['workspaceVars'],\n            workspaceVars: {},\n            depth: 1\n        };\n        this.showVars();\n        this.textString = '';\n        lively.bindings.connect(this.get(\"toggleVarsButton\"), 'fire', this, 'toggleVarArea');\n    }","funcProperties":{"__isSmartRef__":true,"id":220},"__LivelyClassName__":"lively.Closure"},"219":{"this":{"__isSmartRef__":true,"id":171}},"220":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"221":{"varMapping":{"__isSmartRef__":true,"id":222},"source":"function resetState() {\n        this.owner.targetMorph = this;\n        this.state = {\n            depth: 1,\n            doNotSerialize: [\"workspaceVars\"],\n            workspaceVars: {},\n            defRanges: {}\n        }\n        this.showVars();\n        lively.bindings.connect(this.get(\"workspaceVarObserver\"), \"selection\", this, \"selectVarDef\");\n    }","funcProperties":{"__isSmartRef__":true,"id":223},"__LivelyClassName__":"lively.Closure"},"222":{"this":{"__isSmartRef__":true,"id":171}},"223":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"224":{"varMapping":{"__isSmartRef__":true,"id":225},"source":"function selectVarDef(selection) {\n        if (!selection) return;\n        var name = selection.item.value.key\n        var defRanges = this.state.defRanges[name];\n        if (!defRanges || !defRanges.length) return;\n        var range = defRanges.last();\n        this.setSelectionRange(range.start, range.end, true);\n    }","funcProperties":{"__isSmartRef__":true,"id":226},"__LivelyClassName__":"lively.Closure"},"225":{"this":{"__isSmartRef__":true,"id":171}},"226":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"227":{"varMapping":{"__isSmartRef__":true,"id":228},"source":"function showVariableArea() {\n        var border = 2,\n            varAreaWidth = 220,\n            varList = this.get(\"listContainer\"),\n            newEditorBounds = rect(\n                pt(3,22),\n                varList.bounds().bottomRight().addXY(-3 - varAreaWidth - border, 0));\n    \n        varList.setExtent(varList.getExtent().withX(varAreaWidth));\n        varList.align(varList.bounds().topRight(), this.getWindow().innerBounds().topRight().addXY(-3,22));\n    \n        this.updateToggleVarsButton(newEditorBounds);\n    \n        this.animatedSetBounds(this, newEditorBounds);\n        this.startStepping(1000, \"showVars\");\n    }","funcProperties":{"__isSmartRef__":true,"id":229},"__LivelyClassName__":"lively.Closure"},"228":{"this":{"__isSmartRef__":true,"id":171}},"229":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"230":{"varMapping":{"__isSmartRef__":true,"id":231},"source":"function showVars() {\n            // this.startStepping(1000, 'showVars')\n            // obs.setList([]);\n\n            var style = {\n                allowInput: false,\n                fixedHeight: false, fixedWidth: true,\n                whiteSpaceHandling: 'pre',\n                cssStylingMode: true\n            };\n\n            var s = this.state;\n            var vars = s.workspaceVars || {};\n            var keys = Object.keys(vars);\n\n            var obs = this.get('workspaceVarObserver');\n            var list = obs.getList() || [];\n\n            var preexistingItems = list.filter(function(item) {\n                    return keys.include(item.value.key); })\n                .map(function(ea) {\n                    ea.value = {key: ea.value.key, value: vars[ea.value.key]};\n                    ea.morph = render(ea.value.key, ea.value.value, ea.morph);\n                    return ea\n                });\n\n            var newItems = keys\n                .withoutAll(preexistingItems.pluck('value').pluck('key'))\n                .map(function(k) {\n                    var morph = render(k, vars[k]),\n                        item = {morph: morph, isListItem: true, string: 'foo', value: {key: k, value: vars[k]}};\n                    morph.item = item;\n                    return item; });\n\n            var items = preexistingItems.concat(newItems);\n\n            obs.setList(items);\n            obs.applyLayout();\n\n            // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n            function render(key, val, optListItemMorph) {\n                var morph = optListItemMorph || createListItemMorph();\n\n                var valString = stringifyObj(val);\n                var string = key + ': ' + valString;\n                if (morph.textString !== string) {\n                    morph.setClipMode('visible');\n                    morph.textString = string;\n                    morph.fitThenDo(function() { morph.setClipMode(\"hidden\"); });\n                };\n\n                return morph;\n            }\n\n            function createListItemMorph() {\n                var morph = new lively.morphic.Text(\n                    obs.getExtent()\n                        .addXY(-2 * obs.layout.layouter.borderSize, 0)\n                        .extentAsRectangle(), '');\n\n                morph.applyStyle(style);\n\n                morph.addStyleClassName('list-item');\n\n                morph.addScript(function showControls() {\n                    var resetButton = new lively.morphic.Button(this.innerBounds());\n                    resetButton.align(resetButton.getPosition(), this.innerBounds().bottomLeft());\n                    this.controls = [\n                        this.addMorph(resetButton)\n                    ];\n                    this.cachedBounds = null;\n                    this.owner.applyLayout();\n                });\n\n                morph.addScript(function hideControls() {\n                    this.controls.invoke('remove');\n                    this.controls.length = 0;\n                    this.owner.applyLayout();\n                })\n\n                morph.addScript(function onHoverIn(evt) {\n                    this.showControls();\n                });\n\n                morph.addScript(function onHoverOut(evt) {\n                    this.hideControls();\n                });\n\n                morph.addScript(function onMouseMove(evt) {\n                    if (this.thereIsAHandInMe) return false;\n                    this.thereIsAHandInMe = true;\n                    this.onHoverIn(evt);\n                });\n\n                morph.addScript(function onMouseOut(evt) {\n                    var wasHovered = !!this.thereIsAHandInMe;\n                    var hoverInMorph = evt.relatedTarget && lively.$(evt.relatedTarget).parents('.morphNode').data('morph');\n                    if (hoverInMorph && (hoverInMorph === this || hoverInMorph.ownerChain().include(this))) return;\n                    this.thereIsAHandInMe = false;\n                    wasHovered && this.onHoverOut(evt);\n                });\n\n                return morph;\n            }\n\n            function stringifyObj(obj) {\n                var string = String(obj);\n                return string.truncate(250);\n                var string;\n                if (obj && obj.isMorph) {\n                    string = obj.toString();\n                } else {\n                     string = Objects.inspect(obj, {maxDepth: s.depth});\n                }\n                return string.truncate(250);\n            }\n        }","funcProperties":{"__isSmartRef__":true,"id":232},"__LivelyClassName__":"lively.Closure"},"231":{"this":{"__isSmartRef__":true,"id":171}},"232":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"233":{"varMapping":{"__isSmartRef__":true,"id":234},"source":"function toggleVarArea() {\n        this[this.varAreaIsHidden() ? \"showVariableArea\" : \"hideVariableArea\"]();\n    }","funcProperties":{"__isSmartRef__":true,"id":235},"__LivelyClassName__":"lively.Closure"},"234":{"this":{"__isSmartRef__":true,"id":171}},"235":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"236":{"varMapping":{"__isSmartRef__":true,"id":237},"source":"function updateToggleVarsButton(bnds) {\n        var btn = this.get(\"toggleVarsButton\");\n        bnds = bnds || this.bounds();\n\n        var newButtonBounds = btn.bounds().withTopRight(bnds.topRight().addXY(-4,4))\n        this.animatedSetBounds(btn, newButtonBounds);\n\n        var hidden = this.varAreaIsHidden();\n        var label = hidden ? \"hide vars\" : \"show vars\";\n        btn.setLabel(label);\n        if (this.owner.submorphs.indexOf(btn) < this.owner.submorphs.indexOf(this))\n            this.owner.addMorph(this, btn);\n    }","funcProperties":{"__isSmartRef__":true,"id":238},"__LivelyClassName__":"lively.Closure"},"237":{"this":{"__isSmartRef__":true,"id":171}},"238":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"239":{"varMapping":{"__isSmartRef__":true,"id":240},"source":"function varAreaIsHidden() {\n        this.cachedBounds = null;\n        this.aceEditor.resize(true)\n        var varsAreVisible = this.getWindow().getExtent().x - this.bounds().width > 30;\n        return !varsAreVisible\n    }","funcProperties":{"__isSmartRef__":true,"id":241},"__LivelyClassName__":"lively.Closure"},"240":{"this":{"__isSmartRef__":true,"id":171}},"241":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 16:51:56 GMT+0200 (Central Europe Daylight Time)\")"},"242":{"submorphs":[],"scripts":[],"id":"78F0143D-73E3-4F11-B929-F04FA5F267E7","shape":{"__isSmartRef__":true,"id":243},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"showsHalos":false,"name":"HorizontalSplitterMorph","partsBinMetaInfo":{"__isSmartRef__":true,"id":244},"eventHandler":{"__isSmartRef__":true,"id":257},"derivationIds":[127,"F0291F62-F100-480C-AEBF-0230398F7983","AE8B5ED7-E305-45BC-BE4A-1C28A49EE12B","39BA345C-17FA-45A0-BAC2-F0CF5654ACF8","FE91EA31-D8AE-461B-8A49-95DA5FBAE5B4","F38439A3-2F4E-4AC2-BF73-2633C00B1393","6748F5B5-2284-4748-A6EE-F1A261CBAD0B","BBAFB862-93AE-4F89-BCFF-9F1C67B7FE4C","7EC17E78-593A-4CC8-B7E3-859BCBBFE785","ED38E7CF-DBF8-44F7-8FCD-44556A95F525","2837627B-B301-45E3-BE2F-AE809626DE89","43E4DB05-C44F-44CB-A54B-72C9636B3396","D4A35074-DDE1-4EB5-AA93-C43A119497EB","CF518181-272E-4C27-B197-8293CC3C656D","B452D558-D948-42E3-A432-D47C514667B3","074439CA-3EBB-40B9-8DBF-B5CB7F0682A8"],"partTests":{"__isSmartRef__":true,"id":258},"_ClipMode":"visible","moved":true,"layout":{"__isSmartRef__":true,"id":263},"isBeingDragged":false,"originalTargetExtent":null,"morphA":null,"morphB":null,"originalMorphAExtent":null,"originalMorphBExtent":null,"prevScroll":[0,0],"isLayoutHelper":true,"owner":{"__isSmartRef__":true,"id":41},"_Rotation":0,"_Scale":0.9803921568627452,"__serializedExpressions__":["_Position","distanceToDragEvent","dragStartPoint","originalMorphBPosition"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":264},"__LivelyClassName__":"lively.morphic.Box","__SourceModuleName__":"Global.lively.morphic.Core","_Position":"lively.pt(490.8,473.6)","distanceToDragEvent":"lively.pt(30.6,-15.1)","dragStartPoint":"lively.pt(2286.0,631.0)","originalMorphBPosition":"lively.pt(703.6,205.2)"},"243":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":0.5557,"_BorderStyle":"solid","_AppearanceStylingMode":false,"_BorderStylingMode":false,"__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(40.8,25.1)","_BorderColor":"Color.rgb(0,0,0)","_Fill":"Color.rgb(167,167,173)","_Padding":"lively.rect(0,0,0,0)"},"244":{"partsSpaceName":"PartsBin/Widgets/","comment":"A horizontal splitter of two morphs.\n\n(Derived from the vertical splitter morph)","migrationLevel":4,"partName":"HorizontalSplitterMorph","changes":[{"__isSmartRef__":true,"id":245},{"__isSmartRef__":true,"id":246},{"__isSmartRef__":true,"id":247},{"__isSmartRef__":true,"id":248},{"__isSmartRef__":true,"id":249},{"__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}],"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Wed Jul 24 2013 06:21:02 GMT+0200 (Central Europe Daylight Time)\")"},"245":{"author":"jenslincke","message":"no comment","id":"3FF2C8E3-9B5C-4846-B328-5B9DE699E342","__serializedExpressions__":["date"],"date":"new Date(\"Thu Nov 22 2012 14:01:17 GMT+0100 (Central Europe Standard Time)\")"},"246":{"author":"jenslincke","message":"no comment","id":"4D8DFE4C-2980-4B5F-A1E9-E4C650CBA0C6","__serializedExpressions__":["date"],"date":"new Date(\"Thu Nov 22 2012 14:01:14 GMT+0100 (Central Europe Standard Time)\")"},"247":{"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205","__serializedExpressions__":["date"],"date":"new Date(\"Thu Nov 22 2012 10:35:51 GMT+0100 (Central Europe Standard Time)\")"},"248":{"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jun 18 2012 19:35:08 GMT+0200 (Central Europe Daylight Time)\")"},"249":{"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350","__serializedExpressions__":["date"],"date":"new Date(\"Mon Apr 09 2012 13:42:07 GMT+0200 (Central Europe Daylight Time)\")"},"250":{"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7","__serializedExpressions__":["date"],"date":"new Date(\"Wed Mar 14 2012 10:42:26 GMT+0100 (Central Europe Standard Time)\")"},"251":{"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B","__serializedExpressions__":["date"],"date":"new Date(\"Sat Feb 25 2012 02:59:09 GMT+0100 (Central Europe Standard Time)\")"},"252":{"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2","__serializedExpressions__":["date"],"date":"new Date(\"Wed Mar 14 2012 10:53:45 GMT+0100 (Central Europe Standard Time)\")"},"253":{"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC","__serializedExpressions__":["date"],"date":"new Date(\"Thu May 03 2012 15:51:30 GMT+0200 (Central Europe Daylight Time)\")"},"254":{"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23","__serializedExpressions__":["date"],"date":"new Date(\"Thu May 03 2012 15:51:36 GMT+0200 (Central Europe Daylight Time)\")"},"255":{"author":"jenslincke","message":"no comment","id":"FA94CFD6-7DB4-4712-B4A0-E0BC45EF55E9","__serializedExpressions__":["date"],"date":"new Date(\"Fri Apr 12 2013 16:32:01 GMT+0200 (Central Europe Daylight Time)\")"},"256":{"author":"jenslincke","message":"no comment","id":"C30C23D7-FEA0-4555-8C6C-47EBEF7E3BDF","__serializedExpressions__":["date"],"date":"new Date(\"Fri Apr 12 2013 16:32:56 GMT+0200 (Central Europe Daylight Time)\")"},"257":{"morph":{"__isSmartRef__":true,"id":242},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"258":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":259}},"259":{"test01IsMorph":{"__isSmartRef__":true,"id":260}},"260":{"varMapping":{"__isSmartRef__":true,"id":261},"source":"function test01IsMorph(aPart) {\n    this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":262},"__LivelyClassName__":"lively.Closure"},"261":{"this":{"__isSmartRef__":true,"id":258}},"262":{},"263":{"moveVertical":true,"moveHorizontal":false},"264":{"onDrag":{"__isSmartRef__":true,"id":265},"onDragEnd":{"__isSmartRef__":true,"id":272},"onDragStart":{"__isSmartRef__":true,"id":279},"getSiblingsAtCorner":{"__isSmartRef__":true,"id":286}},"265":{"varMapping":{"__isSmartRef__":true,"id":266},"source":"function onDrag(evt) {\n    var moveDelta = evt.mousePoint.subPt(this.dragStartPoint)\n\n    moveDelta.y = 0;\n    if (!this.morphA || !this.morphB) return;\n    \n    var newExtent = this.originalMorphAExtent.addPt(moveDelta);\n    this.morphA.setExtent(newExtent);\n\n    this.morphB.setPosition(this.originalMorphBPosition.addPt(moveDelta));\n    moveDelta.x = - moveDelta.x;\n    this.morphB.setExtent(this.originalMorphBExtent.addPt(moveDelta));\n\n    this.setBounds(\n        rect(this.morphA.bounds().bottomRight().subPt(pt(20,20)),\n            this.morphB.bounds().bottomLeft().addPt(pt(20,0))));\n\n    // this.setExtent(pt(this.getExtent().x, Math.max(this.getExtent().y, 20)))\n\n}","funcProperties":{"__isSmartRef__":true,"id":271},"__LivelyClassName__":"lively.Closure"},"266":{"this":{"__isSmartRef__":true,"id":242},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":267}},"267":{"$super":{"__isSmartRef__":true,"id":268}},"268":{"varMapping":{"__isSmartRef__":true,"id":269},"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":270},"__LivelyClassName__":"lively.Closure"},"269":{"obj":{"__isSmartRef__":true,"id":242},"name":"onDrag"},"270":{},"271":{"user":"jenslincke","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Fri Apr 12 2013 16:30:29 GMT+0200 (Central Europe Daylight Time)\")"},"272":{"varMapping":{"__isSmartRef__":true,"id":273},"source":"function onDragEnd(evt) {\n    this.morphA = null;\n    this.morphB = null;\n    this.originalMorphAExtent = null;\n    this.originalMorphBExtent = null;\n}","funcProperties":{"__isSmartRef__":true,"id":278},"__LivelyClassName__":"lively.Closure"},"273":{"this":{"__isSmartRef__":true,"id":242},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":274}},"274":{"$super":{"__isSmartRef__":true,"id":275}},"275":{"varMapping":{"__isSmartRef__":true,"id":276},"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":277},"__LivelyClassName__":"lively.Closure"},"276":{"obj":{"__isSmartRef__":true,"id":242},"name":"onDragEnd"},"277":{},"278":{"user":"jenslincke","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Thu Nov 22 2012 12:32:59 GMT+0100 (Central Europe Standard Time)\")"},"279":{"varMapping":{"__isSmartRef__":true,"id":280},"source":"function onDragStart(evt) {\n    this.dragStartPoint = evt.mousePoint;\n    this.morphA = this.getSiblingsAtCorner(\"topLeft\")[0]\n    this.morphB = this.getSiblingsAtCorner(\"topRight\")[0]\n\n    if (!this.morphA || !this.morphB) return;\n\n    this.originalMorphAExtent = this.morphA.getExtent();\n    this.originalMorphBExtent = this.morphB.getExtent();\n    this.originalMorphBPosition = this.morphB.getPosition();\n\n}","funcProperties":{"__isSmartRef__":true,"id":285},"__LivelyClassName__":"lively.Closure"},"280":{"this":{"__isSmartRef__":true,"id":242},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":281}},"281":{"$super":{"__isSmartRef__":true,"id":282}},"282":{"varMapping":{"__isSmartRef__":true,"id":283},"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":284},"__LivelyClassName__":"lively.Closure"},"283":{"obj":{"__isSmartRef__":true,"id":242},"name":"onDragStart"},"284":{},"285":{"user":"jenslincke","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Fri Apr 12 2013 16:26:53 GMT+0200 (Central Europe Daylight Time)\")"},"286":{"varMapping":{"__isSmartRef__":true,"id":287},"source":"function getSiblingsAtCorner(corner) {\n    // this.getSiblingsAtCorner(\"topLeft\")\n    var p = this.bounds()[corner]()\n    var self= this;\n    return this.owner.submorphs.select(function(ea) {\n        return (ea !== self) && ea.bounds().containsPoint(p)\n    })\n}","funcProperties":{"__isSmartRef__":true,"id":288},"__LivelyClassName__":"lively.Closure"},"287":{"this":{"__isSmartRef__":true,"id":242}},"288":{"user":"jenslincke","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Thu Nov 22 2012 12:28:43 GMT+0100 (Central Europe Standard Time)\")"},"289":{"submorphs":[{"__isSmartRef__":true,"id":290}],"scripts":[],"shape":{"__isSmartRef__":true,"id":295},"eventHandler":{"__isSmartRef__":true,"id":296},"_ClipMode":"visible","derivationIds":["EC7EBB28-54AE-4244-80ED-3E13650F82B7","9FD2DCE2-B997-4536-B2A5-90D7DD92B3E6","0D8CC908-BD1C-4062-BB03-3FCEB910483D"],"id":"6755DFE0-D61A-423A-B3D3-BB39577046C6","grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"value":false,"toggle":false,"isActive":true,"label":{"__isSmartRef__":true,"id":290},"_PreviousBorderWidth":1,"isPressed":false,"showsHalos":false,"attributeConnections":[{"__isSmartRef__":true,"id":297},{"__isSmartRef__":true,"id":299}],"doNotSerialize":["$$fire"],"doNotCopyProperties":["$$fire"],"name":"BrowseButton","partsBinMetaInfo":{"__isSmartRef__":true,"id":301},"pinSpecs":[{"__isSmartRef__":true,"id":309}],"owner":{"__isSmartRef__":true,"id":41},"_Rotation":0,"_Scale":1,"_StyleClassNames":["Morph","Button"],"__serializedExpressions__":["_Position","distanceToDragEvent"],"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":310},"__LivelyClassName__":"lively.morphic.Button","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(117.0,184.0)","distanceToDragEvent":"lively.pt(65.0,-11.0)"},"290":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":291},"_WhiteSpaceHandling":"pre-wrap","textChunks":[{"__isSmartRef__":true,"id":292}],"eventHandler":{"__isSmartRef__":true,"id":294},"_ClipMode":"hidden","derivationIds":["7884E73F-0D17-44B3-907F-44A5223F1F3D","444B63A6-D9E7-4AB2-AB57-4A9146C18BFF","08999E10-CCC3-4CAB-99BC-4EF500309EC4"],"id":"4F08F0C9-8538-4D91-837B-C05F06EC371B","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":289},"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)"},"291":{"_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(74.0,21.0)","_Padding":"lively.rect(0,3,0,0)","_BorderColor":"Color.rgb(0,0,0)"},"292":{"style":{"__isSmartRef__":true,"id":293},"chunkOwner":{"__isSmartRef__":true,"id":290},"_id":"_29955","storedString":"Browse","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"293":{"__serializedExpressions__":["color"],"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore","color":"Color.rgb(0,0,0)"},"294":{"morph":{"__isSmartRef__":true,"id":290},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"295":{"_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(74.0,21.0)","_Padding":"lively.rect(0,0,0,0)","_BorderColor":"Color.rgb(189,190,192)"},"296":{"morph":{"__isSmartRef__":true,"id":289},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"297":{"sourceObj":{"__isSmartRef__":true,"id":289},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":289},"targetMethodName":"doAction","varMapping":{"__isSmartRef__":true,"id":298},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"298":{"source":{"__isSmartRef__":true,"id":289},"target":{"__isSmartRef__":true,"id":289}},"299":{"sourceObj":{"__isSmartRef__":true,"id":289},"sourceAttrName":"fire","targetObj":{"__isSmartRef__":true,"id":41},"targetMethodName":"browseOriginal","varMapping":{"__isSmartRef__":true,"id":300},"__LivelyClassName__":"AttributeConnection","__SourceModuleName__":"Global.lively.bindings.Core"},"300":{"source":{"__isSmartRef__":true,"id":289},"target":{"__isSmartRef__":true,"id":41}},"301":{"partName":"Button","requiredModules":[],"partsSpaceName":"PartsBin/Inputs","comment":"A simple button that calls a method #doAction when pressed.","changes":[{"__isSmartRef__":true,"id":302},{"__isSmartRef__":true,"id":303},{"__isSmartRef__":true,"id":304},{"__isSmartRef__":true,"id":305},{"__isSmartRef__":true,"id":306},{"__isSmartRef__":true,"id":307},{"__isSmartRef__":true,"id":308}],"migrationLevel":7,"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Wed Jul 24 2013 08:21:12 GMT+0200 (Central Europe Daylight Time)\")"},"302":{"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)\")"},"303":{"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)\")"},"304":{"author":"robertkrahn","message":"test","id":"ACA617B4-0416-4E3C-9F4D-171A40F44F0F","__serializedExpressions__":["date"],"date":"new Date(\"Wed May 01 2013 05:34:25 GMT+0200 (Central Europe Daylight Time)\")"},"305":{"author":"robertkrahn","message":"no comment","id":"811BDE87-D8DD-48BB-97B2-7A3C3F3FAE32","__serializedExpressions__":["date"],"date":"new Date(\"Wed May 01 2013 05:35:59 GMT+0200 (Central Europe Daylight Time)\")"},"306":{"author":"robertkrahn","message":"no comment","id":"BB2EA501-D9AF-414B-A035-E1487DA6F0FD","__serializedExpressions__":["date"],"date":"new Date(\"Wed May 01 2013 05:36:30 GMT+0200 (Central Europe Daylight Time)\")"},"307":{"author":"Dan","message":"no comment","id":"A594459F-DA9B-49DD-A105-547B3F613CC5","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jun 17 2013 19:22:38 GMT+0200 (Central Europe Daylight Time)\")"},"308":{"author":"Dan","message":"no comment","id":"CFEC4071-14FF-4AEB-A399-197884CD18BF","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jun 17 2013 19:24:50 GMT+0200 (Central Europe Daylight Time)\")"},"309":{"pinName":"fire","modality":"output","type":"Boolean","accessor":"fire","location":1.5},"310":{"doAction":{"__isSmartRef__":true,"id":311}},"311":{"varMapping":{"__isSmartRef__":true,"id":312},"source":"function doAction() {\n    \n}","funcProperties":{"__isSmartRef__":true,"id":313},"__LivelyClassName__":"lively.Closure"},"312":{"this":{"__isSmartRef__":true,"id":289}},"313":{"user":"undefined","tags":[],"__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Tue Dec 11 2012 22:14:29 GMT+0100 (Central Europe Standard Time)\")"},"314":{"_BorderWidth":1,"_ClipMode":"visible","_BorderRadius":0,"_Opacity":1,"_BorderStyle":"solid","__serializedExpressions__":["position","_Extent","_BorderColor","_Fill","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1205.0,504.0)","_BorderColor":"Color.rgb(95,94,95)","_Fill":"Color.rgb(255,255,255)","_Padding":"lively.rect(0,0,0,0)"},"315":{"partsSpaceName":"PartsBin/Jens/","comment":"A tool to merge layers into the base system \nthat can be used to permanently integrate experimental features into the base system. ","migrationLevel":9,"partName":"LayerToBaseSystemMergeTool","changes":[{"__isSmartRef__":true,"id":316},{"__isSmartRef__":true,"id":317},{"__isSmartRef__":true,"id":318},{"__isSmartRef__":true,"id":319},{"__isSmartRef__":true,"id":320},{"__isSmartRef__":true,"id":321},{"__isSmartRef__":true,"id":322},{"__isSmartRef__":true,"id":323},{"__isSmartRef__":true,"id":324},{"__isSmartRef__":true,"id":325},{"__isSmartRef__":true,"id":326},{"__isSmartRef__":true,"id":327},{"__isSmartRef__":true,"id":328},{"__isSmartRef__":true,"id":329},{"__isSmartRef__":true,"id":330},{"__isSmartRef__":true,"id":331},{"__isSmartRef__":true,"id":332},{"__isSmartRef__":true,"id":333},{"__isSmartRef__":true,"id":334},{"__isSmartRef__":true,"id":335},{"__isSmartRef__":true,"id":336},{"__isSmartRef__":true,"id":337},{"__isSmartRef__":true,"id":338},{"__isSmartRef__":true,"id":339},{"__isSmartRef__":true,"id":340},{"__isSmartRef__":true,"id":341},{"__isSmartRef__":true,"id":342}],"__serializedExpressions__":["lastModifiedDate"],"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo","__SourceModuleName__":"Global.lively.PartsBin","lastModifiedDate":"new Date(\"Mon May 04 2015 12:54:22 GMT+0200 (Central Europe Daylight Time)\")"},"316":{"author":"jenslincke","message":"no comment","id":"ADFBF069-513C-4DE6-95A9-8AD4985C6508","__serializedExpressions__":["date"],"date":"new Date(\"Tue Feb 04 2014 10:23:53 GMT+0100 (Central Europe Standard Time)\")"},"317":{"author":"robertkrahn","message":"no comment","id":"A452871F-4EB9-45D1-94B8-6065CBA7B8FD","__serializedExpressions__":["date"],"date":"new Date(\"Tue Jul 30 2013 08:20:51 GMT+0200 (Central Europe Daylight Time)\")"},"318":{"author":"SAPLivelyScreen","message":"no comment","id":"7A44D8CA-6D5F-42A3-A4B4-4D7F51EECA52","__serializedExpressions__":["date"],"date":"new Date(\"Tue Jun 18 2013 20:49:27 GMT+0200 (Central Europe Daylight Time)\")"},"319":{"author":"SAPLivelyScreen","message":"no comment","id":"EF145198-0649-41BD-A92E-521D98FEC49D","__serializedExpressions__":["date"],"date":"new Date(\"Thu May 30 2013 00:36:50 GMT+0200 (Central Europe Daylight Time)\")"},"320":{"author":"jenslincke","message":"added legend","id":"7ADA3049-56C1-4D32-874B-F664A79DDB20","__serializedExpressions__":["date"],"date":"new Date(\"Fri Jan 18 2013 16:47:05 GMT+0100 (Central Europe Standard Time)\")"},"321":{"author":"jenslincke","message":"no comment","id":"A4B86A7E-A398-4C29-BEE0-4AA045ABABD2","__serializedExpressions__":["date"],"date":"new Date(\"Fri Jan 18 2013 16:42:31 GMT+0100 (Central Europe Standard Time)\")"},"322":{"author":"jenslincke","message":"I want my blue rectangle back!","id":"5AA9291A-869F-4D36-8095-4721B5A5B205","__serializedExpressions__":["date"],"date":"new Date(\"Thu Nov 22 2012 10:35:51 GMT+0100 (Central Europe Standard Time)\")"},"323":{"author":"bgnauk","message":"no comment","id":"0124E570-50B7-4CE3-83A1-6E7BA89B5CD8","__serializedExpressions__":["date"],"date":"new Date(\"Mon Jun 18 2012 19:35:08 GMT+0200 (Central Europe Daylight Time)\")"},"324":{"author":"undefined","message":"suddenly, the rectangle became a CarDemo","id":"B5083AA8-9BAE-48DD-A6B4-FD7DB3998350","__serializedExpressions__":["date"],"date":"new Date(\"Mon Apr 09 2012 13:42:07 GMT+0200 (Central Europe Daylight Time)\")"},"325":{"author":"undefined","message":"css transitions","id":"1004E0FC-D96B-4F40-B3E0-F514A3FCFFD7","__serializedExpressions__":["date"],"date":"new Date(\"Wed Mar 14 2012 10:42:26 GMT+0100 (Central Europe Standard Time)\")"},"326":{"author":"fbo","message":"","id":"BD1C654D-9100-4B66-BC62-B15FF2498B2B","__serializedExpressions__":["date"],"date":"new Date(\"Sat Feb 25 2012 02:59:09 GMT+0100 (Central Europe Standard Time)\")"},"327":{"author":"undefined","message":"sorry","id":"44B56D2E-9B59-4C67-A305-49A6E10E66C2","__serializedExpressions__":["date"],"date":"new Date(\"Wed Mar 14 2012 10:53:45 GMT+0100 (Central Europe Standard Time)\")"},"328":{"author":"undefined","message":"whoopsie","id":"CEA5DCD5-2DB7-40AD-A776-262A7A0666FC","__serializedExpressions__":["date"],"date":"new Date(\"Thu May 03 2012 15:51:30 GMT+0200 (Central Europe Daylight Time)\")"},"329":{"author":"undefined","message":"whoopsie","id":"3F17A2D2-3C24-424B-B0FA-E43112267D23","__serializedExpressions__":["date"],"date":"new Date(\"Thu May 03 2012 15:51:36 GMT+0200 (Central Europe Daylight Time)\")"},"330":{"author":"jenslincke","message":"no comment","id":"AEB2F41B-2C88-4BBA-8875-93CD17CBA1C8","__serializedExpressions__":["date"],"date":"new Date(\"Wed Jan 23 2013 12:57:18 GMT+0100 (Central Europe Standard Time)\")"},"331":{"author":"robertkrahn","message":"no comment","id":"67FD74CD-7AE4-4050-ADC7-4DF73804258D","__serializedExpressions__":["date"],"date":"new Date(\"Thu May 30 2013 09:18:06 GMT+0200 (Central Europe Daylight Time)\")"},"332":{"author":"robertkrahn","message":"no comment","id":"FBBB9C99-B61C-4D5F-8750-6E2987DF0C9C","__serializedExpressions__":["date"],"date":"new Date(\"Fri Jun 21 2013 00:16:24 GMT+0200 (Central Europe Daylight Time)\")"},"333":{"author":"jenslincke","message":"no comment","id":"ECD12BFF-E872-4918-8341-C6571E72F36D","__serializedExpressions__":["date"],"date":"new Date(\"Tue Feb 04 2014 10:24:27 GMT+0100 (Central Europe Standard Time)\")"},"334":{"author":"lauritz","message":"dropping enabled for the blue rectangle","id":"81D350CB-D926-491F-8FF3-A6C9C831BDF2","__serializedExpressions__":["date"],"date":"new Date(\"Wed Mar 12 2014 15:00:28 GMT+0100 (Central Europe Standard Time)\")"},"335":{"author":"robertkrahn","message":"no comment","id":"5AF36E70-7428-4762-9423-D7160E3DCBDC","__serializedExpressions__":["date"],"date":"new Date(\"Sun Nov 09 2014 00:34:45 GMT+0100 (Central Europe Standard Time)\")"},"336":{"author":"jenslincke","message":"no comment","id":"1CFDDC07-5479-46EF-8833-094A159AF2E7","__serializedExpressions__":["date"],"date":"new Date(\"Wed Apr 29 2015 16:57:12 GMT+0200 (Central Europe Daylight Time)\")"},"337":{"author":"jenslincke","message":"no comment","id":"551912BC-9C3B-4320-8AC5-4652AC818B88","__serializedExpressions__":["date"],"date":"new Date(\"Wed Apr 29 2015 17:53:17 GMT+0200 (Central Europe Daylight Time)\")"},"338":{"author":"jenslincke","message":"no comment","id":"FDD029E1-F326-4713-BD2F-0D7E4305FE63","__serializedExpressions__":["date"],"date":"new Date(\"Wed Apr 29 2015 18:32:59 GMT+0200 (Central Europe Daylight Time)\")"},"339":{"author":"jenslincke","message":"no comment","id":"5033A9A9-48A6-4940-AC06-8B41848F9A6D","__serializedExpressions__":["date"],"date":"new Date(\"Thu Apr 30 2015 14:32:36 GMT+0200 (Central Europe Daylight Time)\")"},"340":{"author":"jenslincke","message":"no comment","id":"318DE254-0786-4E1C-A8B1-2E38546A24D5","__serializedExpressions__":["date"],"date":"new Date(\"Thu Apr 30 2015 14:53:07 GMT+0200 (Central Europe Daylight Time)\")"},"341":{"__serializedExpressions__":["date"],"author":"jenslincke","message":"no comment","id":"02AD0DC0-E0A7-45A7-AC97-01D9789B99E4","date":"new Date(\"Mon May 04 2015 12:54:40 GMT+0200 (Central Europe Daylight Time)\")"},"342":{"__serializedExpressions__":["date"],"author":"jenslincke","message":"no comment","id":"91FABC26-415F-446D-8606-84D1678F9B32","date":"new Date(\"Mon May 04 2015 13:30:12 GMT+0200 (Central Europe Daylight Time)\")"},"343":{"morph":{"__isSmartRef__":true,"id":41},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"344":{"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":345}},"345":{"test01IsMorph":{"__isSmartRef__":true,"id":346}},"346":{"varMapping":{"__isSmartRef__":true,"id":347},"source":"function test01IsMorph(aPart) {\n    this.assert(aPart.isMorph, 'rectangle should be a morph');\n}","funcProperties":{"__isSmartRef__":true,"id":348},"__LivelyClassName__":"lively.Closure"},"347":{"this":{"__isSmartRef__":true,"id":344}},"348":{},"349":{"adjustForNewBounds":true,"resizeWidth":true,"resizeHeight":true},"350":{"updateRefinements":{"__isSmartRef__":true,"id":351},"selectRefinement":{"__isSmartRef__":true,"id":354},"browseOriginal":{"__isSmartRef__":true,"id":357},"mergeRefinementToBase":{"__isSmartRef__":true,"id":360},"fileFragmentFor":{"__isSmartRef__":true,"id":363},"fileFragmentForRefinement":{"__isSmartRef__":true,"id":366},"functionForRefinement":{"__isSmartRef__":true,"id":369},"fileFragmentsForObj":{"__isSmartRef__":true,"id":372},"mergeAsSibling":{"__isSmartRef__":true,"id":375},"reset":{"__isSmartRef__":true,"id":378}},"351":{"varMapping":{"__isSmartRef__":true,"id":352},"source":"function updateRefinements() {\n    var layerName = this.get(\"LayerName\").textString\n    try{ var layerObj = eval(layerName) } catch(e) {};\n    if (!layerObj) {\n        this.get(\"LayerName\").setFill(Global.Color.red)\n        return;\n    }\n    this.get(\"LayerName\").setFill(null) \n    // #MetaNote: How can we separate domain logic styling here? Or should we do it at all? #JensLincke\n    \n    var refinements = Global.Properties.ownValues(layerObj)\n        .select(function(ea) { return ea._layered_object})\n    \n    \n    var all = []\n    refinements.each(function(eaRefinement) {\n        try {\n            var objectName = eaRefinement._layered_object.constructor.type}\n        catch(e) { \n            return // could not find a class or prototype for it\n        }\n        Functions.own(eaRefinement).each(function(eaFunc) {\n            all.push({string: \"\" + objectName + \">>\"+ eaFunc, value: {\n                layerName: layerName,\n                methodName: eaFunc,\n                objectName: objectName\n            }})\n        })        \n    })\n    \n    this.get(\"Refinements\").setList(all)\n}","funcProperties":{"__isSmartRef__":true,"id":353},"__LivelyClassName__":"lively.Closure"},"352":{"this":{"__isSmartRef__":true,"id":41}},"353":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Thu Apr 30 2015 14:01:20 GMT+0200 (Central Europe Daylight Time)\")"},"354":{"varMapping":{"__isSmartRef__":true,"id":355},"source":"function selectRefinement(refinement) {\n   \n    this.currentRefinement = refinement;\n    if (!refinement) return;\n    var layeredFunc = this.functionForRefinement(this.currentRefinement)\n    \n    this.get(\"LayeredSourceCode\").textString = \"\\t\"+refinement.methodName + \": \" + layeredFunc;\n\n    var filefragment = this.fileFragmentForRefinement(this.currentRefinement)\n    if (filefragment) {\n        this.get(\"OriginalSourceCode\").textString = filefragment.getSourceCode();\n    } else {\n        this.get(\"OriginalSourceCode\").textString = \" // no file fragment found\"\n    }    \n}","funcProperties":{"__isSmartRef__":true,"id":356},"__LivelyClassName__":"lively.Closure"},"355":{"this":{"__isSmartRef__":true,"id":41}},"356":{"__serializedExpressions__":["timestamp"],"user":"jenslincke","timestamp":"new Date(\"Mon May 04 2015 13:28:06 GMT+0200 (Central Europe Daylight Time)\")"},"357":{"varMapping":{"__isSmartRef__":true,"id":358},"source":"function browseOriginal() {\n    this.fileFragmentForRefinement(this.currentRefinement).browseIt()\n}","funcProperties":{"__isSmartRef__":true,"id":359},"__LivelyClassName__":"lively.Closure"},"358":{"this":{"__isSmartRef__":true,"id":41}},"359":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 18:10:39 GMT+0200 (Central Europe Daylight Time)\")"},"360":{"varMapping":{"__isSmartRef__":true,"id":361},"source":"function mergeRefinementToBase() {\n    var newSrc = this.get(\"LayeredSourceCode\").textString;\n    var filefragment = this.fileFragmentForRefinement(this.currentRefinement)\n    \n    if (filefragment) {\n        filefragment.putSourceCode(newSrc)   \n        Global.alertOK(\"merged it to \" + filefragment)\n    } else {\n        this.mergeAsSibling()\n    }\n}","funcProperties":{"__isSmartRef__":true,"id":362},"__LivelyClassName__":"lively.Closure"},"361":{"this":{"__isSmartRef__":true,"id":41}},"362":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Thu Apr 30 2015 14:26:06 GMT+0200 (Central Europe Daylight Time)\")"},"363":{"varMapping":{"__isSmartRef__":true,"id":364},"source":"function fileFragmentFor(objectName, methodName) {\n    // ok, lets do some automatic refactoring...\n    \n    try {var obj = eval(objectName).prototype } catch(e) {\n        // throw new Error(\"Could not evaluate object name: \" + objectName)\n        return \n    }\n    \n    try {\n        var func = obj[methodName].getOriginal()    \n    } catch(e) {\n        // throw new Error(\"Could not find method: \" + methodName)\n        return \n    }\n    \n    func.declaredClass // lively.store.ObjectRepository\n    func.sourceModule // lively.module(\"lively.store.Interface\")\n    \n    if (!func.sourceModule) return // brand new function.... not loaded yet\n    var uri = new Global.URL(func.sourceModule.uri())\n    var relative = uri.relativePathFrom(new Global.URL(Global.Config.codeBase))\n\n    var moduleNode = lively.ide.startSourceControl().addModule(relative)\n    var rootNode = moduleNode.ast();\n\n    var fileFragments = rootNode.subElements(10).select(function(ea) {\n        var path = ea.getOwnerNamePath()\n        if (objectName == \"Global\")\n            return path.include(methodName);\n        return path.include(objectName) && (!methodName || path.include(methodName)) \n    });\n\n    return fileFragments.first()\n    \n    // fileFragments.first().putSourceCode(newString)\n}","funcProperties":{"__isSmartRef__":true,"id":365},"__LivelyClassName__":"lively.Closure"},"364":{"this":{"__isSmartRef__":true,"id":41}},"365":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 18:28:27 GMT+0200 (Central Europe Daylight Time)\")"},"366":{"varMapping":{"__isSmartRef__":true,"id":367},"source":"function fileFragmentForRefinement(refinement) {\n    return this.fileFragmentFor(refinement.objectName, refinement.methodName);\n}","funcProperties":{"__isSmartRef__":true,"id":368},"__LivelyClassName__":"lively.Closure"},"367":{"this":{"__isSmartRef__":true,"id":41}},"368":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Wed Apr 29 2015 18:10:32 GMT+0200 (Central Europe Daylight Time)\")"},"369":{"varMapping":{"__isSmartRef__":true,"id":370},"source":"function functionForRefinement(refinement) {\n    if (!refinement) return\n    try {var obj =  eval(refinement.objectName)} catch(e) {\n        throw new Error(\"Could not evaluate \" + refinement.objectName);\n    }\n    var layerObj = eval(refinement.layerName);\n    var refinementObj = Global.cop.getLayerDefinitionForObject(layerObj, obj.prototype);\n\n    return refinementObj[refinement.methodName];\n}","funcProperties":{"__isSmartRef__":true,"id":371},"__LivelyClassName__":"lively.Closure"},"370":{"this":{"__isSmartRef__":true,"id":41}},"371":{"__serializedExpressions__":["timestamp"],"user":"jenslincke","timestamp":"new Date(\"Mon May 04 2015 13:27:14 GMT+0200 (Central Europe Daylight Time)\")"},"372":{"varMapping":{"__isSmartRef__":true,"id":373},"source":"function fileFragmentsForObj(objectName) {\n    // ok, lets do some automatic refactoring...\n    //  this.fileFragmentsForObj('lively.PartsBin.PartItem')\n    \n    try {var classObj = eval(objectName) } catch(e) {\n        // throw new Error(\"Could not evaluate object name: \" + objectName)\n        return \n    }\n    \n    var uri = new URL(classObj.sourceModule.uri())\n    var relative = uri.relativePathFrom(new URL(Config.codeBase))\n\n    var moduleNode = lively.ide.startSourceControl().addModule(relative)\n    var rootNode = moduleNode.ast();\n\n    var fileFragments = rootNode.subElements(10).select(function(ea) {\n        var path = ea.getOwnerNamePath()\n        return path.include(objectName) \n    });\n\n    return fileFragments\n}","funcProperties":{"__isSmartRef__":true,"id":374},"__LivelyClassName__":"lively.Closure"},"373":{"this":{"__isSmartRef__":true,"id":41}},"374":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Thu Apr 30 2015 14:10:27 GMT+0200 (Central Europe Daylight Time)\")"},"375":{"varMapping":{"__isSmartRef__":true,"id":376},"source":"function mergeAsSibling() {\n\n    var siblingFragment = this.get(\"Refinements\").getList()\n        .select(function(ea) { \n            return ea.value.objectName == this.currentRefinement.objectName}, this)\n        .collect(function(ea) { return this.fileFragmentForRefinement(ea.value)}, this)\n        .detect(function(ea) { return ea})\n\n    if (!siblingFragment) {\n        throw new Error(\"No Sibling  found for: \" + JSON.prettyPrint(this.currentRefinement))\n    }\n    alertOK(\"Merge into: \" + siblingFragment)\n    siblingFragment.addSibling(this.get('LayeredSourceCode').textString)\n}","funcProperties":{"__isSmartRef__":true,"id":377},"__LivelyClassName__":"lively.Closure"},"376":{"this":{"__isSmartRef__":true,"id":41}},"377":{"user":"jenslincke","__serializedExpressions__":["timestamp"],"timestamp":"new Date(\"Thu Apr 30 2015 14:27:30 GMT+0200 (Central Europe Daylight Time)\")"},"378":{"varMapping":{"__isSmartRef__":true,"id":379},"source":"function reset() {\n    this.get(\"LayerName\").textString = \"NoLayer\"\n    this.get(\"LayerName\").setFill(Color.white)\n    this.get(\"Refinements\").setList([])\n    \n    this.get(\"OriginalSourceCode\").textString = \"\"\n    this.get(\"LayeredSourceCode\").textString = \"\"\n    \n}","funcProperties":{"__isSmartRef__":true,"id":380},"__LivelyClassName__":"lively.Closure"},"379":{"this":{"__isSmartRef__":true,"id":41}},"380":{"__serializedExpressions__":["timestamp"],"user":"jenslincke","timestamp":"new Date(\"Mon May 04 2015 12:54:32 GMT+0200 (Central Europe Daylight Time)\")"},"381":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":382},"_ClipMode":"visible","derivationIds":[],"id":"1FE2E8C1-BFBC-4C31-BF96-068326EB5B77","droppingEnabled":true,"halosEnabled":true,"type":"corner","_StyleClassNames":["Morph","Box","ReframeHandle","reframe-handle corner"],"layout":{"__isSmartRef__":true,"id":383},"owner":{"__isSmartRef__":true,"id":0},"eventHandler":{"__isSmartRef__":true,"id":384},"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ReframeHandle","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(1199.0,519.0)"},"382":{"_BorderWidth":0,"_BorderColor":null,"_Fill":null,"__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)"},"383":{"moveVertical":true,"moveHorizontal":true},"384":{"morph":{"__isSmartRef__":true,"id":381},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"385":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":386},"_ClipMode":"visible","derivationIds":[],"id":"1B14924E-CC69-4FF4-BF85-D9FCDBD13830","droppingEnabled":true,"halosEnabled":true,"type":"bottom","_StyleClassNames":["Morph","Box","ReframeHandle","reframe-handle bottom"],"layout":{"__isSmartRef__":true,"id":387},"owner":{"__isSmartRef__":true,"id":0},"eventHandler":{"__isSmartRef__":true,"id":388},"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ReframeHandle","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(0.0,530.0)"},"386":{"_BorderWidth":0,"_BorderColor":null,"_Fill":null,"__serializedExpressions__":["_Position","_Extent","_Padding"],"__LivelyClassName__":"lively.morphic.Shapes.Rectangle","__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":"lively.pt(0.0,0.0)","_Extent":"lively.pt(1199.0,3.0)","_Padding":"lively.rect(0,0,0,0)"},"387":{"moveVertical":true},"388":{"morph":{"__isSmartRef__":true,"id":385},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"389":{"submorphs":[],"scripts":[],"shape":{"__isSmartRef__":true,"id":390},"_ClipMode":"visible","derivationIds":[],"id":"069D07BF-6516-4814-BEBC-1B07B75F9D19","droppingEnabled":true,"halosEnabled":true,"type":"right","_StyleClassNames":["Morph","Box","ReframeHandle","reframe-handle right"],"layout":{"__isSmartRef__":true,"id":391},"owner":{"__isSmartRef__":true,"id":0},"eventHandler":{"__isSmartRef__":true,"id":392},"__serializedExpressions__":["_Position"],"__LivelyClassName__":"lively.morphic.ReframeHandle","__SourceModuleName__":"Global.lively.morphic.Widgets","_Position":"lively.pt(1210.0,0.0)"},"390":{"_BorderWidth":0,"_BorderColor":null,"_Fill":null,"__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,519.0)","_Padding":"lively.rect(0,0,0,0)"},"391":{"moveHorizontal":true},"392":{"morph":{"__isSmartRef__":true,"id":389},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"393":{"_BorderWidth":0,"_BorderColor":null,"_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(1213.0,533.0)"},"394":{"adjustForNewBounds":true},"395":{"morph":{"__isSmartRef__":true,"id":0},"__LivelyClassName__":"lively.morphic.EventHandler","__SourceModuleName__":"Global.lively.morphic.Events"},"isSimplifiedRegistry":true}}