Oh, I see. Ok, I am somewhat new to pharo smalltalk so I'm getting used to
the paradigm. Thank you. The best way to learn is to "do". I can learn a
lot by trying to figure out ways around unexpected behavior.

On Tue, Jul 16, 2019 at 5:39 PM Ben Coman <b...@openinworld.com> wrote:

> I'm not familiar with Spec but I'll have a go...
>
> On Wed, 17 Jul 2019 at 07:03, Steve Quezadas <steve...@gmail.com> wrote:
>
> > On Tue, Jul 16, 2019 at 7:43 AM Ben Coman <b...@openinworld.com> wrote:
> >>
> >> On Tue, 16 Jul 2019 at 12:49, Steve Quezadas <steve...@gmail.com>
> wrote:
> >> >
> >> > I am running through the "Spec UI Framework" tutorial, and in it has
> a widget class inherited from "ComposablePresenter" (ComposablePresenter
> subclass: #WidgetClassList). But for some reason the
> "whenSelectedItemChanged:" method call does not execute when I select any
> item on the GUI list. Is there anything I'm missing?
> >> >
> >> > I posted this earlier on the list, and someone suggested I try
> "whenActivatedDo:" or "whenSelectionChangedDo:", but it doesn't do anything
> as well. The code looks like this:
> >> >
> >> > whenSelectedItemChanged: aBlock
> >> >     Transcript show: 'should get here; cr.
> >> >
> >> > I am using Pharo 7.
> >>
> >> Can you FileOut the entire sample class and attached it?
> >>
> >> cheers -ben
> >>
> >
> > Ok, I filed out and it exported the file 'WidgetClassList.st' . This is
> the contents of the file:
> >
> > 'From Pharo7.0.3 of 12 April 2019 [Build information:
> Pharo-7.0.3+build.158.sha.0903ade8a6c96633f07e0a7f1baa9a5d48cfdf55 (64
> Bit)] on 16 July 2019 at 3:58:28.785036 pm'!
> > ComposablePresenter subclass: #WidgetClassList
> > instanceVariableNames: 'list'
> > classVariableNames: ''
> > poolDictionaries: ''
> > category: 'QuotesProg'!
> >
> > !WidgetClassList methodsFor: 'initialization' stamp: 'SteveQuezadas
> 7/10/2019 14:07'!
> > initializeWidgets
> > list := self newList.
> > list items: (AbstractWidgetPresenter allSubclasses
> > sorted: [:a :b | a name < b name ]).
> > self focusOrder add: list.! !
> >
> >
> > !WidgetClassList methodsFor: 'events-shortcuts' stamp: 'SteveQuezadas
> 7/15/2019 21:40'!
> > whenSelectedItemChanged: aBlock
> > Transcript show: 'got here'; cr.
> > ! !
>
> Looking at ListPresenter>>whenSelectedItemChanged: aBlock
> it is registering aBlock on selectionHolder using #whenChangedDo:
> Reviewing selectionHolder "Code search...>References to it" I see that
> selectionHolder is initialized as an instance of SelectionHolderClass.
>
> So it seems you are expecting whenSelectedItemChanged: to be called
> every time the-selection-is-changed
> when actually it is only called once (by your application) to register
> the block-to-be-called when the-selection-is-changed.
> You don't seem to have done any such registration.
>
> cheers -ben
>
>

Reply via email to