Perhaps neither. One thing that would help is to tell us a way to
reproduce the issue you're seeing -- as I cannot see any way McLLM>>drawOn: could die with non-indexable -- perhaps you meant setColumnWidthsFor: died? In any case, MulticolumnLazyListMorph is not being used inside the image. So lets look to fixing it rather than rolling back to requiring all Strings in all lists. - Chris On Tue, Dec 13, 2011 at 4:35 PM, Christopher Oliver <[hidden email]> wrote: > Change Morphic-cmm.523 as merged in Morphic-ul.524 breaks MulticolumnLazyListMorph. The > rows for a McLLM are arrays of strings, and because LazyListMorph, as it is now, converts > these to strings, McLLM>>drawOn: dies with non-indexable. I.e. first index gets the > character $# (the start of an array literal), and then deeper, we try to index it again. > Ugh! Should McLLM just do its own thing, and not subclass LLM, or should we roll back > Muller's change on LLM? > > Thoughts? > > -- > Christopher Oliver <[hidden email]> > |
On Thu, 15 Dec 2011 10:23:16 -0600
Chris Muller <[hidden email]> wrote: > Perhaps neither. One thing that would help is to tell us a way to > reproduce the issue you're seeing -- as I cannot see any way > McLLM>>drawOn: could die with non-indexable -- perhaps you meant > setColumnWidthsFor: died? No. I'm seeing a red morph failure with the setups in eIRC. The McLLM is given an array of strings. Your asString converts with to a single string, and so how do you get the per-column string to display? When you try to get an entry to display, you get the nth character of the result of asString instead. -- Christopher Oliver <[hidden email]> |
Hmm, I guess I'm still left with no clue how to see the problem you saw... :(
On Thu, Dec 15, 2011 at 11:26 AM, Christopher Oliver <[hidden email]> wrote: > On Thu, 15 Dec 2011 10:23:16 -0600 > Chris Muller <[hidden email]> wrote: > >> Perhaps neither. One thing that would help is to tell us a way to >> reproduce the issue you're seeing -- as I cannot see any way >> McLLM>>drawOn: could die with non-indexable -- perhaps you meant >> setColumnWidthsFor: died? > > No. I'm seeing a red morph failure with the setups in eIRC. The McLLM is given an > array of strings. Your asString converts with to a single string, and so how do you get > the per-column string to display? When you try to get an entry to display, you get the > nth character of the result of asString instead. > > -- > Christopher Oliver <[hidden email]> > |
On Thu, 15 Dec 2011 13:39:13 -0600
Chris Muller <[hidden email]> wrote: > Hmm, I guess I'm still left with no clue how to see the problem you saw... :( Ok. Once more with feeling. >From the eIRC walkback: FormCanvas sends MulticolumnLazyListMorph a drawOn: This is handled via superclass LazyListMorph: which send itself self display: (self item: row) asStringOrText atRow: row on: aCanvas. MulticolumnLazyIRCListMorph gets the display:atRow:on:, but there is no longer a way to distinguish the individuals column items because it's all one string now. McLILM blindly sends the ByteString a with:do: hoping to iterate over the column items, but instead iterates over characters. BTW: this method is a copy of the parent method in McLLM, but that shouldn't be of significance; there is no super send, so this is merely redundant. Do you see the difficulty now? McLLM and its subclasses expect a collection of things to display in the columns to method display:atRow:on:, and LLM's flattened this collection to a single string destroying necessary information. Not good! -- Christopher Oliver <[hidden email]> |
Free forum by Nabble | Edit this page |