<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Josh was kind enough to share his snapshot with me, and I've been looking at this; I don't yet have a conclusion but here is my process:</div><div><br></div><div>First I filed out the ircChannelMorph and filed it into a new world, but it was missing all of its copy down slots (so no rawMorphs etc).  This turned out to be because the transporter thinks in slots: from its perspective the annotation for the ircChannelMorph is in the 'ircChannelMorph' slot on 'globals' (which wasn't part of the ircClient module) and not really in ircChannelMorph itself.  When that was changed, the ircChannelMorph filed out and then back it with its annotation and hence its copied down slots (rawMorph etc).</div><div><br></div><div>Now, although the rawMorphs copied down slot was present, it no longer had any submorphs in it.  Partly this seems to be because the transporter doesn't maintain local values for copied down slots but re-copies their value when saving and loading (so rawMorphs is initialised to a vector copy).</div><div><br></div><div>Removing the rawMorphs slot from the copy down list so it was just a normal slot on ircChannelMorph, and then drilling down setting creator slots and modules meant the next level of submorphs were filed out and in - but then their rawMorphs were similarly missing!</div><div><br></div><div>Now unless I am doing something wrong, this seems a bit of an incompatibility between the transporter, copy down slots, and morphic.</div><div><br></div><div>The obvious solution is to add an 'initialiseMorph' method which is called when filing in and builds the appropriate prototype structure for the morph. This is more or less what I did when I used to use Squeak's morphic.</div><div><br></div><div>Personally I don't like it.  When I build a lego castle and then put it away in a cupboard, it is still in one piece when I take it out later to play. I don't have to write down my castle building instructions and redo them every time.</div><div><br></div><div>It turns mophic into a programatic ui where we construct our morphs from text descriptions. Icky.</div><div><br></div><div>I'm open to suggestions and solutions, meanwhile, back to thinking...</div><div><br></div><div>- Russell</div><div><br></div><div><br></div><div><br></div><div><br></div><br><div><div>On 18/12/2010, at 8:05 PM, Josh Flowers wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">



<div style="background-color: #fff;">
<span style="display:none"> </span>



    <div id="ygrp-text"><div><br class="webkit-block-placeholder"></div><div>Unfortunately that didn't work either.</div><div><br></div><div>A Morph saved using saveMorphInFile can only reference a limited </div><div>set of other object types (strings, methods, morphs, collections of </div><div>morphs, and 'concrete' objects) - mine references a ircServer object.  </div><div>Clearly there are a couple different ways I can refactor the code, just </div><div>need to spend some time thinking about which one I like....</div><div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate;font-family: Helvetica;font-style: normal;font-variant: normal;font-weight: normal;letter-spacing: normal;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;"><div>That looks promising - I'll try it out this weekend. <br><div><br></div><div>Thanks Jan,</div><div><br></div><div>Josh</div><div><br></div><div><div>On Dec 9, 2010, at 2:08 AM, Jan-Paul Bultmann wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate;font-family: Helvetica;font-style: normal;font-variant: normal;font-weight: normal;letter-spacing: normal;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;"><div><br><br><div>There is a passage about this in the manual. <a href="http://docs.selflanguage.org/morphic.html">http://docs.selflanguage.org/morphic.html</a></div><div>6.4. Saving a Composite Morph</div><div>The System for filling out morphs seems pretty raw around the edges and really needs to be improved if we want to create usefull apps.</div><div><br></div>Hope this helps,<div>cheers Jan<br><div><div>On Dec 9, 2010, at 5:12 AM, Josh Flowers wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="background-color: rgb(255, 255, 255);"><div id="ygrp-text"><p>Does Self support filing out composited morphs? I composited a number of morphs to create an irc chat UI, but I'm having troubles writing it out.<br><br>I turned an instance of the morph into a prototype; added it to a module; setup the copy-down slots to Copydown parent: 'rowMorph', Copydown selector: 'copyRemoveAllMorphs'... and I think that's about it.<br><br>The module files out and in without errors, but when I try and create an instance of the prototype I get an error message about 'rawMorphs' being missing. I can fix this by manually setting the irc morph's copy-down attributes (they don't seem to copy over as part of the file-in/out process) but then the original submorphs don't exist.<br><br>Besides having trouble describing the problem - am I doing something wrong?<br></p></div></div></blockquote></div><br></div><br><br><div width="1" style="color: white;"></div></div></span></blockquote></div><br><br><br><div width="1" style="color: white;"></div></div></span></blockquote></div><br><div><br class="webkit-block-placeholder"></div>

    </div>
     

    

</div>



<!-- end group email -->

</blockquote></div><br></body></html>