<div id="__MailbirdStyleContent" style="font-size: 12pt;font-family: calibri;color: #000000">
                                        
                                        
                                            
                                        
                                        
                                        Hi Hannes,<div><br></div><div>if you have project instances that need clean-up, you can put that code at one of several checkpoints:</div><div><br></div><div>- entering a project (EtoysProject >> #finalEnterActions:)</div><div>- leaving a project (EtoysProject >> #finalExitActions:)</div><div>- loading/merging a Monticello package (see postLoad scripts)</div><div>- quitting the Squeak image (EtoysProject class >> #shutDown:)</div><div>- resuming the Squeak image (<span style="font-size: 12pt;line-height: 1.5">EtoysProject class >> #startUp:)</span></div><div>- loading a ChangeSet (see postLoad scripts)</div><div><br></div><div>Or if you plan to persist Etoys project in the file system, clean them up manually (e.g. with a workspace and object inspector) and write the clean version back to disk for everybody to share.</div><div><br></div><div>Best,</div><div>Marcel</div><div><br></div><div class="mb_sig"></div>
                                        
                                        <blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 14.10.2017 12:21:20 schrieb H. Hirzel <hannes.hirzel@gmail.com>:</p>Thank you Dave for reviewing and merging and committing Morphic-hjh.1349.mcz.<br><br>One of the next issues is that the loaded Etoys project has a key<br><br>    #aboutToLeaveWorld<br><br>in the actionMap which causes an error message to  appear when leaving<br>the project.<br><br>Executing<br><br>     Project current world actionMap removeKey: #aboutToLeaveWorld<br><br>or just<br><br>    self world actionMap removeKey: #aboutToLeaveWorld<br><br>if not called from a workspace<br><br>solves that problem.<br><br>But I am not sure if this is the right thing to do and where to put this.<br><br>The event mechanism is not used much in Squeak6.0a.  (see thread:<br>'PasteUpMorph>>#removeModalWindow has been deprecated --- what do we<br>need to do?', in particular answer by Bob Arning')<br><br><br>Another issue is that<br><br>      SugarNavigatorBar showSugarNavigator: true.<br><br>needs to be called.<br><br><br>A third question: In which directory should the three projects to preload stay?<br>( Section 3 on http://wiki.squeak.org/squeak/6531)<br><br>    Smalltalk imagePath<br><br>?<br><br><br>--Hannes<br><br>On 10/13/17, H. Hirzel <hannes.hirzel@gmail.com> wrote:<br>> Thank you Bert for the links to the regular three projects (home,<br>> gallery, tutorials) and the background information.<br>><br>><br>> Update<br>> -----------<br>><br>> for the most recent trunk image Squeak6.0a-17417 with<br>> Morphic-hjh.1349.mcz loaded manually from the inbox:<br>><br>><br>> https://freudenbergs.de/bert/squeakjs/Etoys/Home.007.pr<br>><br>> loads, and works but brings up an error window regarding a #script1.<br>><br>> The car is moving around.<br>><br>> To leave the project you need to open a workspace and paste and execute<br>>      Project current world actionMap removeKey: #aboutToLeaveWorld<br>><br>> The menu entry 'previous project' works fine.<br>><br>> - Hannes -<br>><br>> On 10/10/17, Bert Freudenberg <bert@freudenbergs.de> wrote:<br>>> On Sat, Oct 7, 2017 at 2:17 AM, David T. Lewis <lewis@mail.msen.com><br>>> wrote:<br>>><br>>>> On Fri, Oct 06, 2017 at 03:48:56PM +0200, Bert Freudenberg wrote:<br>>>> > It's all class-based. E.g. if the shape of a class changed (new /<br>>>> > renamed<br>>>> > inst vars) that class can provide a "conversion method" that creates<br>>>> > an<br>>>> > instance with the new layout from the old inst vars (that are loaded<br>>>> > as<br>>>> > a<br>>>> > dictionary). There still is a preference (conversionMethodsAtFileOut)<br>>>> that<br>>>> > used to prompt people to provide these conversion methods when they<br>>>> changed<br>>>> > a class. But it didn't survive the transition to Monticello, we now<br>>>> > have<br>>>> to<br>>>> > remember to write conversion methods for instances that may be stored<br>>>> > in<br>>>> a<br>>>> > project.<br>>>><br>>>> To check my understanding, the "conversion method" might be something<br>>>> like<br>>>> #storeDataOn: and #readDataFrom:size: like what I described for<br>>>> DateAndTime,<br>>>> is that right?<br>>>><br>>><br>>> ​No, it's those weirdly-named methods like Hannes just made<br>>> in Morphic-hjh.1349.mcz. The store / read methods aren't used per-object.<br>>> This<br>>> would have been too expensive back in the interpreter days on slow CPUs,<br>>> that's why the project is stored as an image-segment, and the segment is<br>>> written to a SmartRefStream with its out-pointers (references to objects<br>>> outside the segment, e.g. classes).<br>>><br>>> The SmartRefStream is only used to resolve the class references from the<br>>> ImageSegment that stores the project.<br>>><br>>>> This is different from the Etoys home screen (the clouds and<br>>>> drive-a-car)<br>>>> > which is simply a project that would be loaded by the deployment<br>>>> > script<br>>>> > that creates an Etoys image. It does not have to ship with the general<br>>>> > Squeak image.<br>>>><br>>>> I do not know if it will make sense, but I guess my mental image is an<br>>>> Etoys "deployed image" hosted inside my regular Squeak trunk image. So I<br>>>> guess that I am thinking of the "clouds and drive-a-car" project being<br>>>> loaded the first time that I create a new EtoysProject from normal<br>>>> Squeak,<br>>>> and that somehow the subsequent project navigation within that new<br>>>> "hosted"<br>>>> Etoys would behave is if I were in a stand-alone Etoys image. Finally,<br>>>> I would want to be able to escape back to my normal Squeak.<br>>><br>>><br>>> ​That sounds good :)<br>>><br>>> - Bert -​<br>>><br>><br><br></lewis@mail.msen.com></bert@freudenbergs.de></hannes.hirzel@gmail.com>
                        </blockquote></div>