Hi Andrei,

Thanks for the suggestion!  That avoids the problem until the fix is in.

Thanks again,
Alistair


On 25 February 2017 at 22:50, Andrei Chis <chisvasileand...@gmail.com> wrote:
> Hi Alistair,
>
> I do not have access to a computer right now but indeed this is related to
> GTInspector moving to fast table. You should be able to temporarily solve
> this be defining a custom Items presentation in the Matrix class that in the
> display block transforms the martix to an ordered collection.
>
> We'll integrate a fix at the beginning of next week to solve this in the
> inspector without requiring a new presentation.
>
> Cheers,
> Andeei
>
>
> On Feb 25, 2017 12:10 PM, "Alistair Grant" <akgrant0...@gmail.com> wrote:
>
> Hi All,
>
> I've just upgrade from Pharo 60395 to 60411 and am now unable to
> inspect instances of Matrix.
>
> I think I read somewhere that the GTInspector is now using fast tables,
> and am guessing that it is this change that is causing the problem.
>
> I've included code below to reproduce the problem and a stack trace.
> The sample code creates a 3 x 3 matrix.
>
> FTTableContainerMorph>>updateExposedRows suggests that the matrix is
> being treated as a one-dimensional collection:
>
> self owner numberOfRows  => 9 "expected 3"
> self owner numberOfColumns  => 1 "expected 3"
>
> I'll keep investigating, but if someone more familiar can point me in
> the right direction, any hints will be appreciated.
>
> Thanks,
> Alistair
>
> Pharo 6.0
> Latest update: #60411
> OS: 4.9.8-1-ARCH
>
>
>
> | m |
>
> m := Matrix rows: 3 columns: 3.
> 1 to: 3 do: [ :i |
> 1 to: 3 do: [ :j |
> m at: i at: j put: 'C', i printString, j printString ] ].
> m inspect
>
>
>
> Matrix(Object)>>error:
> Matrix(Object)>>errorNotIndexable
> Matrix(Object)>>at:
> GLMFastListDataSource(FTSimpleDataSource)>>elementAt:
> GLMFastListDataSource>>cellColumn:row:
> FTTableContainerMorph>>updateExposedRows
> FTTableMorph>>resetPosition
> FTTableMorph>>resizeAllSubviews
> FTTableMorph>>extent:
> FTTableMorph(Morph)>>bounds:
> FTTableMorph(Morph)>>layoutInBounds:
> FTTableMorph(Morph)>>layoutProportionallyIn:
> [ :m | m layoutProportionallyIn: newBounds ] in
> ProportionalLayout>>layout:in: in Block: [ :m | m
> layoutProportionallyIn: newBounds ]
> Array(SequenceableCollection)>>do:
> GLMPanelMorph(Morph)>>submorphsDo:
> ProportionalLayout>>layout:in:
> GLMPanelMorph(Morph)>>doLayoutIn:
> [ self doLayoutIn: self layoutBounds ] in
> GLMPanelMorph(Morph)>>computeFullBounds in Block: [ self doLayoutIn:
> self layoutBounds ]
> BlockClosure>>on:do:
> GLMPanelMorph(Morph)>>computeFullBounds
> GLMPanelMorph(Morph)>>fullBounds
> [ :m |
> | subBox |
> m visible
> ifTrue: [ subBox := m fullBounds.
> box
> ifNil: [ box := subBox copy ]
> ifNotNil: [ box := box quickMerge: subBox ] ] ] in
> GLMPanelMorph(Morph)>>submorphBounds in Block: [ :m | ...
> Array(SequenceableCollection)>>do:
> GLMPanelMorph(Morph)>>submorphBounds
> GLMPanelMorph(Morph)>>privateFullBounds
> GLMPanelMorph(Morph)>>doLayoutIn:
> [ self doLayoutIn: self layoutBounds ] in
> GLMPanelMorph(Morph)>>computeFullBounds in Block: [ self doLayoutIn:
> self layoutBounds ]
> BlockClosure>>on:do:
> GLMPanelMorph(Morph)>>computeFullBounds
> GLMPanelMorph(Morph)>>fullBounds
>
>

Reply via email to