","draggingEnabled":true,"_Scale":1,"__LivelyClassName__":"lively.morphic.World"},"1":{"submorphs":[],"scripts":[],"id":257,"shape":{"__isSmartRef__":true,"id":2},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Helvetica","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":6},"_MaxTextWidth":469.50325500675854,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":7},"showsHalos":false,"_FontSize":25,"__SourceModuleName__":"Global.lively.morphic.TextCore","name":"Title","partsBinMetaInfo":{"__isSmartRef__":true,"id":8},"_TextColor":{"__isSmartRef__":true,"id":9},"owner":{"__isSmartRef__":true,"id":0},"_Rotation":0,"textChunks":[{"__isSmartRef__":true,"id":10}],"charsReplaced":"May Objectives","lastFindLoc":-14,"priorSelectionRange":[0,0],"prevScroll":[-2,-2],"_ClipMode":"visible","priorExtent":{"__isSmartRef__":true,"id":12},"__LivelyClassName__":"lively.morphic.Text"},"2":{"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":3},"_Extent":{"__isSmartRef__":true,"id":4},"_BorderWidth":2,"_BorderColor":{"__isSmartRef__":true,"id":5},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"3":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"4":{"x":469.50325500675854,"y":38,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"5":{"r":1,"g":1,"b":1,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"6":{"x":23,"y":28,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"7":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"8":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"9":{"r":0,"g":0.309,"b":0.595,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"10":{"style":{"__isSmartRef__":true,"id":11},"morph":{"__isSmartRef__":true,"id":1},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Forms Creation Demo\n","__LivelyClassName__":"lively.morphic.TextChunk"},"11":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"12":{"x":469.50325500675854,"y":38,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"13":{"submorphs":[],"scripts":[],"id":121,"shape":{"__isSmartRef__":true,"id":14},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":18},"_MaxTextWidth":796.2603905206507,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":19},"showsHalos":false,"_FontSize":14,"__SourceModuleName__":"Global.lively.morphic.TextCore","owner":{"__isSmartRef__":true,"id":0},"_Rotation":0,"padding":{"__isSmartRef__":true,"id":20},"layout":{"__isSmartRef__":true,"id":21},"_Padding":{"__isSmartRef__":true,"id":20},"textChunks":[{"__isSmartRef__":true,"id":22},{"__isSmartRef__":true,"id":24},{"__isSmartRef__":true,"id":26},{"__isSmartRef__":true,"id":28},{"__isSmartRef__":true,"id":30},{"__isSmartRef__":true,"id":32},{"__isSmartRef__":true,"id":34},{"__isSmartRef__":true,"id":36},{"__isSmartRef__":true,"id":38},{"__isSmartRef__":true,"id":40},{"__isSmartRef__":true,"id":42}],"charsReplaced":"","lastFindLoc":1044,"priorSelectionRange":[299,299],"prevScroll":[0,0],"lastSearchString":"End of May (really early June)","_Scale":1,"_ClipMode":"auto","priorExtent":{"__isSmartRef__":true,"id":44},"__LivelyClassName__":"lively.morphic.Text"},"14":{"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":15},"_Extent":{"__isSmartRef__":true,"id":16},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":17},"_Fill":{"__isSmartRef__":true,"id":17},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"15":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"16":{"x":796.2603905206507,"y":989,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"17":{"r":1,"g":1,"b":1,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"18":{"x":19.987981975969944,"y":85.85978971964957,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"19":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"20":{"x":5,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"21":{"resizeWidth":true,"resizeHeight":true},"22":{"style":{"__isSmartRef__":true,"id":23},"morph":{"__isSmartRef__":true,"id":13},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\nThe goal of this project is to be able to build, simply and quickly, a database model and a client view of some useful information. An example might be a Driver's License, and the various phases to be considered are\n\n\tDesigner builds the form\n\tDesigner stores the form\n\tClient fills out a new form\n\tClient updates an existing form\n\tProgram or clerk reviews form for approval\n\nFor application to existing databases, the process might begin with opening a view on the database, and being able to drag viewing fields out into the composition area. For a new database, one would similarly drag out data fields, but one would also fill in the database paths associated with each field.\n\nThis application will be very similar to the current use of parts bin and scripter for rapid application development, but with at least three differences:\n\n","__LivelyClassName__":"lively.morphic.TextChunk"},"23":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"24":{"style":{"__isSmartRef__":true,"id":25},"morph":{"__isSmartRef__":true,"id":13},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Declarative Code Capture","__LivelyClassName__":"lively.morphic.TextChunk"},"25":{"__SourceModuleName__":"Global.lively.morphic.TextCore","textDecoration":"underline","__LivelyClassName__":"lively.morphic.TextEmphasis"},"26":{"style":{"__isSmartRef__":true,"id":27},"morph":{"__isSmartRef__":true,"id":13},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\nIn addition to capturing the screen layout, as is done currently when serializing a Lively page, code will be generated that is equivalent to what has been concretely assembled. This will allow that code to be copied, altered, and reused without having to revert to the same concrete assembly process. It may also allow for faster initialization of the resulting pages. This one feature is probably optional, but will be important for the (related) Phoenix composer.\n\n","__LivelyClassName__":"lively.morphic.TextChunk"},"27":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"28":{"style":{"__isSmartRef__":true,"id":29},"morph":{"__isSmartRef__":true,"id":13},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Spreadsheet Scripter","__LivelyClassName__":"lively.morphic.TextChunk"},"29":{"__SourceModuleName__":"Global.lively.morphic.TextCore","textDecoration":"underline","__LivelyClassName__":"lively.morphic.TextEmphasis"},"30":{"style":{"__isSmartRef__":true,"id":31},"morph":{"__isSmartRef__":true,"id":13},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\nThe scripter will be more like a spreadsheet, allowing simultaneous access to part names, part values, part rules, and database path links.\n\n","__LivelyClassName__":"lively.morphic.TextChunk"},"31":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"32":{"style":{"__isSmartRef__":true,"id":33},"morph":{"__isSmartRef__":true,"id":13},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Database Interface","__LivelyClassName__":"lively.morphic.TextChunk"},"33":{"__SourceModuleName__":"Global.lively.morphic.TextCore","textDecoration":"underline","__LivelyClassName__":"lively.morphic.TextEmphasis"},"34":{"style":{"__isSmartRef__":true,"id":35},"morph":{"__isSmartRef__":true,"id":13},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\nThe database interface may be a specific object or set of objects, or it may be subsumed by some feature of the scripter.\n\n","__LivelyClassName__":"lively.morphic.TextChunk"},"35":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"36":{"style":{"__isSmartRef__":true,"id":37},"morph":{"__isSmartRef__":true,"id":13},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Design Approach","__LivelyClassName__":"lively.morphic.TextChunk"},"37":{"__SourceModuleName__":"Global.lively.morphic.TextCore","textDecoration":"underline","__LivelyClassName__":"lively.morphic.TextEmphasis"},"38":{"style":{"__isSmartRef__":true,"id":39},"morph":{"__isSmartRef__":true,"id":13},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\nAs suggested by Marko, the declarative capture mechanism, the spreadsheet scripter, and the database interface can all be treated as independent components that can be imported from the parts bin, rather than having to build some special-purpose containing environment.\n\n","__LivelyClassName__":"lively.morphic.TextChunk"},"39":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"40":{"style":{"__isSmartRef__":true,"id":41},"morph":{"__isSmartRef__":true,"id":13},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Scenario","__LivelyClassName__":"lively.morphic.TextChunk"},"41":{"__SourceModuleName__":"Global.lively.morphic.TextCore","textDecoration":"underline","__LivelyClassName__":"lively.morphic.TextEmphasis"},"42":{"style":{"__isSmartRef__":true,"id":43},"morph":{"__isSmartRef__":true,"id":13},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\nI'll be working on a scenario for this, including each of the steps of component input, gestures, and scripter input.","__LivelyClassName__":"lively.morphic.TextChunk"},"43":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"44":{"x":796.2603905206507,"y":989,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"45":{"submorphs":[],"scripts":[],"id":23,"shape":{"__isSmartRef__":true,"id":46},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_FontFamily":"Arial","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":50},"_MaxTextWidth":816.3004506007507,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":51},"showsHalos":false,"_FontSize":14,"__SourceModuleName__":"Global.lively.morphic.TextCore","_Rotation":0,"padding":{"__isSmartRef__":true,"id":52},"layout":{"__isSmartRef__":true,"id":53},"_Padding":{"__isSmartRef__":true,"id":52},"textChunks":[{"__isSmartRef__":true,"id":54},{"__isSmartRef__":true,"id":56},{"__isSmartRef__":true,"id":59},{"__isSmartRef__":true,"id":61},{"__isSmartRef__":true,"id":64},{"__isSmartRef__":true,"id":66},{"__isSmartRef__":true,"id":68},{"__isSmartRef__":true,"id":70},{"__isSmartRef__":true,"id":72},{"__isSmartRef__":true,"id":74},{"__isSmartRef__":true,"id":76},{"__isSmartRef__":true,"id":78},{"__isSmartRef__":true,"id":80},{"__isSmartRef__":true,"id":82},{"__isSmartRef__":true,"id":84},{"__isSmartRef__":true,"id":86},{"__isSmartRef__":true,"id":88},{"__isSmartRef__":true,"id":90},{"__isSmartRef__":true,"id":92},{"__isSmartRef__":true,"id":94},{"__isSmartRef__":true,"id":96},{"__isSmartRef__":true,"id":98},{"__isSmartRef__":true,"id":100},{"__isSmartRef__":true,"id":102},{"__isSmartRef__":true,"id":104},{"__isSmartRef__":true,"id":106},{"__isSmartRef__":true,"id":108},{"__isSmartRef__":true,"id":110},{"__isSmartRef__":true,"id":112},{"__isSmartRef__":true,"id":114},{"__isSmartRef__":true,"id":116},{"__isSmartRef__":true,"id":118},{"__isSmartRef__":true,"id":120},{"__isSmartRef__":true,"id":122},{"__isSmartRef__":true,"id":124},{"__isSmartRef__":true,"id":126}],"charsReplaced":"","lastFindLoc":3192,"priorSelectionRange":[2477,2477],"prevScroll":[0,0],"lastSearchString":"End of May (really early June)","_Scale":1,"_ClipMode":"auto","priorExtent":{"__isSmartRef__":true,"id":128},"name":"Text","owner":{"__isSmartRef__":true,"id":0},"__LivelyClassName__":"lively.morphic.Text"},"46":{"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":47},"_Extent":{"__isSmartRef__":true,"id":48},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":49},"_Fill":{"__isSmartRef__":true,"id":49},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"47":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"48":{"x":816.3004506007507,"y":1636,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"49":{"r":1,"g":1,"b":1,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"50":{"x":938.8247366485605,"y":87.86379572765958,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"51":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"52":{"x":5,"y":0,"width":0,"height":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Rectangle"},"53":{"resizeWidth":true,"resizeHeight":true},"54":{"style":{"__isSmartRef__":true,"id":55},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Some thoughts from Robert + comments by ","__LivelyClassName__":"lively.morphic.TextChunk"},"55":{"italics":"italic","__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"56":{"style":{"__isSmartRef__":true,"id":57},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Dan","__LivelyClassName__":"lively.morphic.TextChunk"},"57":{"italics":"italic","__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":58},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"58":{"r":0,"g":0.591,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"59":{"style":{"__isSmartRef__":true,"id":60},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":" and ","__LivelyClassName__":"lively.morphic.TextChunk"},"60":{"italics":"italic","__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"61":{"style":{"__isSmartRef__":true,"id":62},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Marko","__LivelyClassName__":"lively.morphic.TextChunk"},"62":{"italics":"italic","__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":63},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"63":{"r":0.113,"g":0,"b":0.599,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"64":{"style":{"__isSmartRef__":true,"id":65},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n\n","__LivelyClassName__":"lively.morphic.TextChunk"},"65":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"66":{"style":{"__isSmartRef__":true,"id":67},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Spreadsheet scripting","__LivelyClassName__":"lively.morphic.TextChunk"},"67":{"fontWeight":"bold","__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"68":{"style":{"__isSmartRef__":true,"id":69},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n- Scripter layout: In the scripter what objects should appear? The morph the scripter is invoked on and its submorphs? ","__LivelyClassName__":"lively.morphic.TextChunk"},"69":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"70":{"style":{"__isSmartRef__":true,"id":71},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Yes, the morph the scripter is invoked on and its submorphs.\n","__LivelyClassName__":"lively.morphic.TextChunk"},"71":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":58},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"72":{"style":{"__isSmartRef__":true,"id":73},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"E.g. consider a box morph with a text field inside\n\n\n\n\n\nThe box provides a method reactToTextChange(). How would the scripter connect the textString to reactToTextChange() and how could you add conversion code? \n","__LivelyClassName__":"lively.morphic.TextChunk"},"73":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"74":{"style":{"__isSmartRef__":true,"id":75},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"In the example here, we might have\n Box1\n reactToChanges\n txt1\n getText\n putText\nin column 1. Column 2 is like a spreadsheet, in that it can have a cell reference or a more complicated “= expr”. In this case we would drag the putText name to the reactToChanges rule. The result would be to enter text such as txt1.putText, but interimly it might say $morph(“txt1”).putText.","__LivelyClassName__":"lively.morphic.TextChunk"},"75":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":58},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"76":{"style":{"__isSmartRef__":true,"id":77},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n - Spreadsheets: How to integrate/build a spreadsheet/table widget in Lively?\n\n\n","__LivelyClassName__":"lively.morphic.TextChunk"},"77":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"78":{"style":{"__isSmartRef__":true,"id":79},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Database","__LivelyClassName__":"lively.morphic.TextChunk"},"79":{"fontWeight":"bold","__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"80":{"style":{"__isSmartRef__":true,"id":81},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n- What should be stored there? Just data, text? Or serialized objects? Maybe morphs?\n","__LivelyClassName__":"lively.morphic.TextChunk"},"81":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"82":{"style":{"__isSmartRef__":true,"id":83},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Right now I was storing objects (in CouchDB/Couchbase), so something like ","__LivelyClassName__":"lively.morphic.TextChunk"},"83":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":63},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"84":{"style":{"__isSmartRef__":true,"id":85},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"{ firstname: 'Marko', lastname: 'Roeder', gender: 'm' }","__LivelyClassName__":"lively.morphic.TextChunk"},"85":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":63},"fontWeight":"bold","fontFamily":"Courier ","__LivelyClassName__":"lively.morphic.TextEmphasis"},"86":{"style":{"__isSmartRef__":true,"id":87},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":". But generally it would be attributes (columns in an RDBMS).","__LivelyClassName__":"lively.morphic.TextChunk"},"87":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":63},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"88":{"style":{"__isSmartRef__":true,"id":89},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n - How would a graphical database connection part look like? Just a box with a URL to a database in it?\n","__LivelyClassName__":"lively.morphic.TextChunk"},"89":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"90":{"style":{"__isSmartRef__":true,"id":91},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"A database connection can just be a box with a label \"DB\" on it. The settings for the URL and database name are done by attributes (visible in the Spreadsheet Scripter). ","__LivelyClassName__":"lively.morphic.TextChunk"},"91":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":63},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"92":{"style":{"__isSmartRef__":true,"id":93},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n - How can someone connect to the database? Create a connection between e.g. a Text>>textString and a putData() or putObject() method of the database interface object? E.g. the text box above could represent a name so when writing it with our old connect I would probably do\n","__LivelyClassName__":"lively.morphic.TextChunk"},"93":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"94":{"style":{"__isSmartRef__":true,"id":95},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"connect(text, 'textString', database, 'putDat', {\n\tupdater: function(string) { $upd(string, \"driver's name\") }})","__LivelyClassName__":"lively.morphic.TextChunk"},"95":{"fontFamily":"Courier ","__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"96":{"style":{"__isSmartRef__":true,"id":97},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n(the updater is used because two arguments are given: the actual data and a \"path\" inside the database)\n","__LivelyClassName__":"lively.morphic.TextChunk"},"97":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"98":{"style":{"__isSmartRef__":true,"id":99},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"See the ","__LivelyClassName__":"lively.morphic.TextChunk"},"99":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":63},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"100":{"style":{"__isSmartRef__":true,"id":101},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Spreadsheet Scripter drawing","__LivelyClassName__":"lively.morphic.TextChunk"},"101":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":63},"fontWeight":"bold","uri":"FormsScripter.xhtml","__LivelyClassName__":"lively.morphic.TextEmphasis"},"102":{"style":{"__isSmartRef__":true,"id":103},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":" for this.","__LivelyClassName__":"lively.morphic.TextChunk"},"103":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":63},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"104":{"style":{"__isSmartRef__":true,"id":105},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n - Would the connection back work the same way?\n\n","__LivelyClassName__":"lively.morphic.TextChunk"},"105":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"106":{"style":{"__isSmartRef__":true,"id":107},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"PartsBin support","__LivelyClassName__":"lively.morphic.TextChunk"},"107":{"fontWeight":"bold","__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"108":{"style":{"__isSmartRef__":true,"id":109},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n- \"Storing it as a form\" means to publish a part?!\n","__LivelyClassName__":"lively.morphic.TextChunk"},"109":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"110":{"style":{"__isSmartRef__":true,"id":111},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Storing means \"releasing\" a form to the public which should be something like \"save world as...\" but while saving test values are removed, the database is set to the production database, the form gets non-editable, ...","__LivelyClassName__":"lively.morphic.TextChunk"},"111":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":63},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"112":{"style":{"__isSmartRef__":true,"id":113},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n - Are there other requirements to the PartsBin?\n- PartsBin components for name address etc. could probably be just be text morphs/composed morphs that will do certain checks when data is entered. E.g. a certain format for a street name/number, zipcode, etc.\n\n\n\n\n","__LivelyClassName__":"lively.morphic.TextChunk"},"113":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"114":{"style":{"__isSmartRef__":true,"id":115},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Nice example! Maybe instead of having a ellipse indicating whether that value is valid, a red border if not valid would be nice. I also tried refusing the character if does not match a constraint (e.g. numeric field).","__LivelyClassName__":"lively.morphic.TextChunk"},"115":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":63},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"116":{"style":{"__isSmartRef__":true,"id":117},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n\n","__LivelyClassName__":"lively.morphic.TextChunk"},"117":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"118":{"style":{"__isSmartRef__":true,"id":119},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"Usage of the finished application","__LivelyClassName__":"lively.morphic.TextChunk"},"119":{"fontWeight":"bold","__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"120":{"style":{"__isSmartRef__":true,"id":121},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n- Specific client mode that disables editing?\n\n","__LivelyClassName__":"lively.morphic.TextChunk"},"121":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"122":{"style":{"__isSmartRef__":true,"id":123},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"For the beginning, a button to change between edit mode and client mode would be good. Also a parameter for the URL is an option.\n","__LivelyClassName__":"lively.morphic.TextChunk"},"123":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":58},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"124":{"style":{"__isSmartRef__":true,"id":125},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"I was thinking of a layer that disables for example the halo and that can be activated and deactivated for a form.","__LivelyClassName__":"lively.morphic.TextChunk"},"125":{"__SourceModuleName__":"Global.lively.morphic.TextCore","color":{"__isSmartRef__":true,"id":63},"fontWeight":"bold","__LivelyClassName__":"lively.morphic.TextEmphasis"},"126":{"style":{"__isSmartRef__":true,"id":127},"morph":{"__isSmartRef__":true,"id":45},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"\n","__LivelyClassName__":"lively.morphic.TextChunk"},"127":{"__SourceModuleName__":"Global.lively.morphic.TextCore","__LivelyClassName__":"lively.morphic.TextEmphasis"},"128":{"x":816.3004506007507,"y":1636,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"129":{"submorphs":[{"__isSmartRef__":true,"id":130}],"scripts":[],"id":452,"shape":{"__isSmartRef__":true,"id":141},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":146},"showsHalos":false,"name":"Rectangle","partsBinMetaInfo":{"__isSmartRef__":true,"id":147},"__SourceModuleName__":"Global.lively.morphic.Core","owner":{"__isSmartRef__":true,"id":0},"_Rotation":0,"_Scale":1.002003004005006,"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":148},"__LivelyClassName__":"lively.morphic.Box"},"130":{"submorphs":[],"scripts":[],"id":66,"shape":{"__isSmartRef__":true,"id":131},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_OverflowMode":"visible","_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":135},"_MaxTextWidth":59.78367556745934,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":134},"showsHalos":false,"_FontSize":14,"__SourceModuleName__":"Global.lively.morphic.TextCore","_Rotation":0,"name":"innerText","partsBinMetaInfo":{"__isSmartRef__":true,"id":136},"textChunks":[{"__isSmartRef__":true,"id":137}],"charsReplaced":"some text","lastFindLoc":-9,"priorSelectionRange":[0,9],"prevScroll":[0,0],"_Scale":1,"owner":{"__isSmartRef__":true,"id":129},"priorExtent":{"__isSmartRef__":true,"id":139},"_Align":"center","attributeConnections":[{"__isSmartRef__":true,"id":140}],"doNotSerialize":["$$textString"],"doNotCopyProperties":["$$textString"],"textString":"some text","__LivelyClassName__":"lively.morphic.Text"},"131":{"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":132},"_Extent":{"__isSmartRef__":true,"id":133},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":134},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"132":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"133":{"x":59.78367556745934,"y":44,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"134":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"135":{"x":17.000000000000114,"y":25.999999999999858,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"136":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","migrationLevel":1,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"137":{"style":{"__isSmartRef__":true,"id":138},"morph":{"__isSmartRef__":true,"id":130},"storedString":"some text","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"138":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"139":{"x":59.78367556745934,"y":44,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"140":{"sourceObj":{"__isSmartRef__":true,"id":130},"sourceAttrName":"textString","targetObj":{"__isSmartRef__":true,"id":129},"targetMethodName":"reactToTextChange","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"141":{"position":{"__isSmartRef__":true,"id":142},"_Extent":{"__isSmartRef__":true,"id":143},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":144},"_Fill":{"__isSmartRef__":true,"id":145},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"142":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"143":{"x":100,"y":100,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"144":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"145":{"r":1,"g":1,"b":1,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"146":{"x":959.9188778367959,"y":223.44666989311636,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"147":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"148":{"reactToTextChange":{"__isSmartRef__":true,"id":149},"setupConnections":{"__isSmartRef__":true,"id":152}},"149":{"varMapping":{"__isSmartRef__":true,"id":150},"source":"function reactToTextChange(text) {\n\talert('text was changed!')\n}","funcProperties":{"__isSmartRef__":true,"id":151},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"150":{"this":{"__isSmartRef__":true,"id":129}},"151":{},"152":{"varMapping":{"__isSmartRef__":true,"id":153},"source":"function setupConnections() {\n\tconnect(this.get('innerText'), 'textString', this, 'reactToTextChange')\n}","funcProperties":{"__isSmartRef__":true,"id":154},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"153":{"this":{"__isSmartRef__":true,"id":129}},"154":{},"155":{"submorphs":[{"__isSmartRef__":true,"id":156},{"__isSmartRef__":true,"id":167},{"__isSmartRef__":true,"id":177}],"scripts":[],"id":1574,"shape":{"__isSmartRef__":true,"id":185},"droppingEnabled":true,"halosEnabled":true,"registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":190},"showsHalos":false,"name":"Rectangle1","partsBinMetaInfo":{"__isSmartRef__":true,"id":191},"__SourceModuleName__":"Global.lively.morphic.Core","_Rotation":0,"_Scale":1.002003004005006,"owner":{"__isSmartRef__":true,"id":0},"priorExtent":{"__isSmartRef__":true,"id":192},"__serializedLivelyClosures__":{"__isSmartRef__":true,"id":193},"__LivelyClassName__":"lively.morphic.Box"},"156":{"submorphs":[],"scripts":[],"id":66,"shape":{"__isSmartRef__":true,"id":157},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_OverflowMode":"visible","_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":161},"_MaxTextWidth":108.88182276370458,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":160},"showsHalos":false,"_FontSize":14,"__SourceModuleName__":"Global.lively.morphic.TextCore","_Rotation":0,"name":"innerText","partsBinMetaInfo":{"__isSmartRef__":true,"id":162},"textChunks":[{"__isSmartRef__":true,"id":163}],"charsReplaced":"dddd","lastFindLoc":-4,"priorSelectionRange":[0,3],"prevScroll":[0,0],"_Scale":1,"owner":{"__isSmartRef__":true,"id":155},"priorExtent":{"__isSmartRef__":true,"id":165},"_Align":"left","attributeConnections":[{"__isSmartRef__":true,"id":166}],"doNotSerialize":["$$textString"],"doNotCopyProperties":["$$textString"],"textString":"1234","__LivelyClassName__":"lively.morphic.Text"},"157":{"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":158},"_Extent":{"__isSmartRef__":true,"id":159},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":160},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"158":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"159":{"x":108.88182276370458,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"160":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"161":{"x":112.00000000000045,"y":15.999999999999858,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"162":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","migrationLevel":1,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"163":{"style":{"__isSmartRef__":true,"id":164},"morph":{"__isSmartRef__":true,"id":156},"storedString":"1234","__LivelyClassName__":"lively.morphic.TextChunk","__SourceModuleName__":"Global.lively.morphic.TextCore"},"164":{"__LivelyClassName__":"lively.morphic.TextEmphasis","__SourceModuleName__":"Global.lively.morphic.TextCore"},"165":{"x":108.88182276370458,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"166":{"sourceObj":{"__isSmartRef__":true,"id":156},"sourceAttrName":"textString","targetObj":{"__isSmartRef__":true,"id":155},"targetMethodName":"reactToTextChange","__SourceModuleName__":"Global.lively.bindings","__LivelyClassName__":"AttributeConnection"},"167":{"submorphs":[],"scripts":[],"id":66,"shape":{"__isSmartRef__":true,"id":168},"grabbingEnabled":false,"droppingEnabled":false,"halosEnabled":true,"fixedWidth":true,"fixedHeight":false,"allowsInput":true,"_OverflowMode":"visible","_FontFamily":"Arial, sans-serif","registeredForMouseEvents":true,"_Position":{"__isSmartRef__":true,"id":172},"_MaxTextWidth":97.8597897196496,"_MaxTextHeight":null,"textColor":{"__isSmartRef__":true,"id":171},"showsHalos":false,"_FontSize":14,"__SourceModuleName__":"Global.lively.morphic.TextCore","_Rotation":0,"name":"Text1","partsBinMetaInfo":{"__isSmartRef__":true,"id":173},"textChunks":[{"__isSmartRef__":true,"id":174}],"charsReplaced":"some text","lastFindLoc":-9,"priorSelectionRange":[0,15],"prevScroll":[0,0],"_Scale":1,"owner":{"__isSmartRef__":true,"id":155},"priorExtent":{"__isSmartRef__":true,"id":176},"__LivelyClassName__":"lively.morphic.Text"},"168":{"fill":null,"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":169},"_Extent":{"__isSmartRef__":true,"id":170},"_BorderWidth":0,"_BorderColor":{"__isSmartRef__":true,"id":171},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"169":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"170":{"x":97.8597897196496,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"171":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"172":{"x":11.999999999999886,"y":13.000000000000227,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"173":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","migrationLevel":1,"__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"174":{"style":{"__isSmartRef__":true,"id":175},"morph":{"__isSmartRef__":true,"id":167},"__SourceModuleName__":"Global.lively.morphic.TextCore","storedString":"enter a number:","__LivelyClassName__":"lively.morphic.TextChunk"},"175":{"__SourceModuleName__":"Global.lively.morphic.TextCore","fontSize":9,"__LivelyClassName__":"lively.morphic.TextEmphasis"},"176":{"x":97.8597897196496,"y":22,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"177":{"submorphs":[],"scripts":[],"id":183,"shape":{"__isSmartRef__":true,"id":178},"droppingEnabled":true,"halosEnabled":true,"showsHalos":false,"_Position":{"__isSmartRef__":true,"id":182},"name":"okIndicator","partsBinMetaInfo":{"__isSmartRef__":true,"id":183},"__SourceModuleName__":"Global.lively.morphic.Core","owner":{"__isSmartRef__":true,"id":155},"_Rotation":0,"_Scale":1,"priorExtent":{"__isSmartRef__":true,"id":184},"__LivelyClassName__":"lively.morphic.Morph"},"178":{"position":{"__isSmartRef__":true,"id":179},"_Extent":{"__isSmartRef__":true,"id":180},"_Fill":{"__isSmartRef__":true,"id":181},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Ellipse"},"179":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"180":{"x":26.853780707634655,"y":26.853780707634655,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"181":{"r":0,"g":0.8,"b":0,"a":1,"__LivelyClassName__":"Color","__SourceModuleName__":"Global"},"182":{"x":235.00000000000023,"y":16.00000000000034,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"183":{"partsSpaceName":"PartsBin/NewWorld","migrationLevel":1,"__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"184":{"x":27.855783711639674,"y":27.855783711639674,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"185":{"position":{"__isSmartRef__":true,"id":186},"_Extent":{"__isSmartRef__":true,"id":187},"_BorderWidth":1,"_BorderColor":{"__isSmartRef__":true,"id":188},"_Fill":{"__isSmartRef__":true,"id":189},"__SourceModuleName__":"Global.lively.morphic.Shapes","__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"186":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"187":{"x":280.3605407209011,"y":57.91587383178967,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"188":{"r":0,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"189":{"r":1,"g":1,"b":1,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"190":{"x":952.9048568087608,"y":1366.7320974628285,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"191":{"partsSpaceName":"PartsBin/NewWorld","__SourceModuleName__":"Global.lively.PartsBin","__LivelyClassName__":"lively.PartsBin.PartsBinMetaInfo"},"192":{"x":281.3625437249061,"y":57.91587383178967,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"193":{"reactToTextChange":{"__isSmartRef__":true,"id":194},"setupConnections":{"__isSmartRef__":true,"id":197}},"194":{"varMapping":{"__isSmartRef__":true,"id":195},"source":"function reactToTextChange(text) {\n\tthis.get('okIndicator').setFill(isNaN(Number(text)) ? Color.red : Color.green)\n}","funcProperties":{"__isSmartRef__":true,"id":196},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"195":{"this":{"__isSmartRef__":true,"id":155}},"196":{},"197":{"varMapping":{"__isSmartRef__":true,"id":198},"source":"function setupConnections() {\n\tconnect(this.get('innerText'), 'textString', this, 'reactToTextChange')\n}","funcProperties":{"__isSmartRef__":true,"id":199},"__SourceModuleName__":"Global","__LivelyClassName__":"lively.Closure"},"198":{"this":{"__isSmartRef__":true,"id":155}},"199":{},"200":{"submorphs":[],"scripts":[],"id":226,"shape":{"__isSmartRef__":true,"id":201},"grabbingEnabled":false,"droppingEnabled":false,"showsMorphMenu":false,"halosEnabled":false,"registeredForMouseEvents":true,"_world":{"__isSmartRef__":true,"id":0},"_Position":{"__isSmartRef__":true,"id":205},"owner":{"__isSmartRef__":true,"id":0},"__SourceModuleName__":"Global.lively.morphic.Events","carriesGrabbedMorphs":false,"_Scale":1.002003004005006,"_Rotation":0,"__LivelyClassName__":"lively.morphic.HandMorph"},"201":{"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":202},"_Extent":{"__isSmartRef__":true,"id":203},"_Fill":{"__isSmartRef__":true,"id":204},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"202":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"203":{"x":2,"y":2,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"204":{"r":0.8,"g":0,"b":0,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"205":{"x":753.5062590117645,"y":1250.4997489982477,"__LivelyClassName__":"Point","__SourceModuleName__":"Global"},"206":{"__SourceModuleName__":"Global.lively.morphic.Shapes","_Position":{"__isSmartRef__":true,"id":207},"_Extent":{"__isSmartRef__":true,"id":208},"_Fill":{"__isSmartRef__":true,"id":209},"__LivelyClassName__":"lively.morphic.Shapes.Rectangle"},"207":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"208":{"x":2800,"y":2900,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"209":{"r":1,"g":1,"b":1,"a":1,"__SourceModuleName__":"Global","__LivelyClassName__":"Color"},"210":{"x":0,"y":0,"__SourceModuleName__":"Global","__LivelyClassName__":"Point"},"211":{"name":"Local code","__LivelyClassName__":"ChangeSet","__SourceModuleName__":"Global.lively.ChangeSet"},"isSimplifiedRegistry":true}}]]>