Re: [Pharo-users] "whenSelectedItemChanged:" in Spec

2019-07-17 Thread Steve Quezadas
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  wrote:

> I'm not familiar with Spec but I'll have a go...
>
> On Wed, 17 Jul 2019 at 07:03, Steve Quezadas  wrote:
>
> > On Tue, Jul 16, 2019 at 7:43 AM Ben Coman  wrote:
> >>
> >> On Tue, 16 Jul 2019 at 12:49, Steve Quezadas 
> 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
>
>


Re: [Pharo-users] "whenSelectedItemChanged:" in Spec

2019-07-16 Thread Ben Coman
I'm not familiar with Spec but I'll have a go...

On Wed, 17 Jul 2019 at 07:03, Steve Quezadas  wrote:

> On Tue, Jul 16, 2019 at 7:43 AM Ben Coman  wrote:
>>
>> On Tue, 16 Jul 2019 at 12:49, Steve Quezadas  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



Re: [Pharo-users] "whenSelectedItemChanged:" in Spec

2019-07-16 Thread Steve Quezadas
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.
! !


!WidgetClassList methodsFor: 'api' stamp: 'SteveQuezadas 6/26/2019 18:22'!
title
^ 'Widgets'! !

!WidgetClassList methodsFor: 'api' stamp: 'SteveQuezadas 7/15/2019 19:09'!
list

^ list.! !

"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!

WidgetClassList class
instanceVariableNames: ''!

!WidgetClassList class methodsFor: 'specs' stamp: 'SteveQuezadas 7/10/2019
14:14'!
defaultSpec
^ SpecLayout composed
add: #list;
yourself! !

On Tue, Jul 16, 2019 at 7:43 AM Ben Coman  wrote:

> On Tue, 16 Jul 2019 at 12:49, Steve Quezadas  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
>
>


Re: [Pharo-users] "whenSelectedItemChanged:" in Spec

2019-07-16 Thread PBKResearch
Steve

How did you get the source code for the examples? Pages 12-13 of the "Spec UI 
Framework" booklet give the code for the methods of class WidgetClassList, and 
there we find:

WidgetClassList >> whenSelectedItemChanged: aBlock
list whenSelectedItemChanged: aBlock

This looks very much like the 'when' methods of all the other subclasses of 
ComposablePresenter. It should at least do something when activated.

HTH

Peter Kenny

-Original Message-
From: Pharo-users  On Behalf Of Ben Coman
Sent: 16 July 2019 15:42
To: Any question about pharo is welcome 
Subject: Re: [Pharo-users] "whenSelectedItemChanged:" in Spec

On Tue, 16 Jul 2019 at 12:49, Steve Quezadas  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




Re: [Pharo-users] "whenSelectedItemChanged:" in Spec

2019-07-16 Thread Ben Coman
On Tue, 16 Jul 2019 at 12:49, Steve Quezadas  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



[Pharo-users] "whenSelectedItemChanged:" in Spec

2019-07-15 Thread Steve Quezadas
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.

- Steve