<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
-1<div><br></div><div>LazyListMorph has only a (kind of) private communication to fulfill towards PluggableListMorph. The proper access goes through #item: or #getListItem:. See categories "list access" and "list access - cached".</div><div><br></div><div>If you want to make a change in this regard, you have to consider the entire protocol, which includes: #listItems, #listIcons, and #listFilterOffsets.</div><div><br></div><div>Best,</div><div>Marcel</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;">
<p style="color: #AAAAAA; margin-top: 10px;">Am 20.03.2020 20:50:19 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style="font-family:Arial,Helvetica,sans-serif">Christoph Thiede uploaded a new version of Morphic to project The Inbox:<br>http://source.squeak.org/inbox/Morphic-ct.1639.mcz<br><br>==================== Summary ====================<br><br>Name: Morphic-ct.1639<br>Author: ct<br>Time: 20 March 2020, 8:49:59.689237 pm<br>UUID: 068f59a1-989d-b244-ad1f-84e726dcf055<br>Ancestors: Morphic-eem.1638<br><br>Extracts lazy accessor in LazyListMorph<br><br>This does not only follow SRP but also makes it easier for other objects to access listItems properly. Pheno uses this, for example [1].<br><br>[1] https://github.com/tom95/Pheno/commit/ab39c5b72c1764e9d525e287f3efff99917b38e2#diff-bf98bbb5fedbbc4b66a4b825d3c8d14b<br><br>=============== Diff against Morphic-eem.1638 ===============<br><br>Item was changed:<br> ----- Method: LazyListMorph>>item: (in category 'list access - cached') -----<br> item: index<br> "Do inst-var access on listItems here to initialize it as late as possible."<br> <br>+ ^ (self listItems at: index) ifNil: [<br>- listItems ifNil: [listItems := Array new: self getListSize].<br>- <br>- ^ (listItems at: index) ifNil: [<br> | newItem itemWidth | <br> newItem := self getListItem: index.<br> <br> "Update the width cache."<br> maxWidth ifNotNil: [<br> itemWidth := self widthToDisplayItem: newItem.<br> itemWidth > maxWidth ifTrue: [<br> maxWidth := itemWidth.<br> super layoutChanged]].<br> <br> listItems at: index put: newItem.<br> newItem].!<br><br>Item was added:<br>+ ----- Method: LazyListMorph>>listItems (in category 'accessing') -----<br>+ listItems<br>+ <br>+ ^ listItems ifNil: [listItems := Array new: self getListSize]!<br><br><br></div></blockquote>
</div></body>