Spec layout

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Spec layout

Marion Noirbent
Hi,
I'm trying to create a widget whith Spec, managing a collection of
RadioButton. But I have a problem with defaultSpec (the accessor of the
collection is the methods "buttons") :

If i put defaultSpec on class side, i can't acces the collection of the
instance. (the following code iterate on the string)

defaultSpec
        <spec: #default>
        ^ SpecLayout composed
                newColumn: [ :column | #buttons do: [ :item | column add: item ] ];
                yourself

If i put it on instance side, the lookup don't find it (in the book
Building UI with Spec, it said the lookup begin by the instance side and
it allow to have specific UI, in part about layout)

defaultSpec
        <spec: #default>
        ^ SpecLayout composed
                newColumn: [ :column | self buttons do: [ :item | column add: item ] ];
                yourself

Any idea ?

Marion Noirbent,

Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

Peter Uhnak
I don't have time right now to give you a proper example…

however if you have layout on the instance side, then you need to call the build method explicitly with the proper layout… well, that's what I do at least



On Tue, May 17, 2016 at 6:48 PM, Marion Noirbent <[hidden email]> wrote:
Hi,
I'm trying to create a widget whith Spec, managing a collection of RadioButton. But I have a problem with defaultSpec (the accessor of the collection is the methods "buttons") :

If i put defaultSpec on class side, i can't acces the collection of the instance. (the following code iterate on the string)

defaultSpec
        <spec: #default>
        ^ SpecLayout composed
                newColumn: [ :column | #buttons do: [ :item | column add: item ] ];
                yourself

If i put it on instance side, the lookup don't find it (in the book Building UI with Spec, it said the lookup begin by the instance side and it allow to have specific UI, in part about layout)

defaultSpec
        <spec: #default>
        ^ SpecLayout composed
                newColumn: [ :column | self buttons do: [ :item | column add: item ] ];
                yourself

Any idea ?

Marion Noirbent,


Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

jfabry
In reply to this post by Marion Noirbent
Hi Marion,

the class side message of defaultSpec is generally meant to be used if you use a fixed number of widgets, so you can put the reference to the name of each widget there (in cour case #buttons). For variable number of widgets you should have a look at the dynamic features of Spec.

That being said, It looks like what you really want to use is a Radio Button Group. Have a look at RadioButtonGroupExample.

HTH

--
Does this mail seem too brief? Sorry for that, I don’t mean to be rude! Please see http://emailcharter.org .

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -  University of Chile

> On May 17, 2016, at 13:48, Marion Noirbent <[hidden email]> wrote:
>
> Hi,
> I'm trying to create a widget whith Spec, managing a collection of RadioButton. But I have a problem with defaultSpec (the accessor of the collection is the methods "buttons") :
>
> If i put defaultSpec on class side, i can't acces the collection of the instance. (the following code iterate on the string)
>
> defaultSpec
> <spec: #default>
> ^ SpecLayout composed
> newColumn: [ :column | #buttons do: [ :item | column add: item ] ];
> yourself
>
> If i put it on instance side, the lookup don't find it (in the book Building UI with Spec, it said the lookup begin by the instance side and it allow to have specific UI, in part about layout)
>
> defaultSpec
> <spec: #default>
> ^ SpecLayout composed
> newColumn: [ :column | self buttons do: [ :item | column add: item ] ];
> yourself
>
> Any idea ?
>
> Marion Noirbent,
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

stepharo
Thanks Johan


We looked at

RadioButtonGroupExample

but you see we cannot have a RadioButtonGroupPresenter having 2, 3 or 4 radioButton.

Stef


Le 17/5/16 à 18:52, Johan Fabry a écrit :

> Hi Marion,
>
> the class side message of defaultSpec is generally meant to be used if you use a fixed number of widgets, so you can put the reference to the name of each widget there (in cour case #buttons). For variable number of widgets you should have a look at the dynamic features of Spec.
>
> That being said, It looks like what you really want to use is a Radio Button Group. Have a look at RadioButtonGroupExample.
>
> HTH
>
> --
> Does this mail seem too brief? Sorry for that, I don’t mean to be rude! Please see http://emailcharter.org .
>
> Johan Fabry   -   http://pleiad.cl/~jfabry
> PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -  University of Chile
>
>> On May 17, 2016, at 13:48, Marion Noirbent <[hidden email]> wrote:
>>
>> Hi,
>> I'm trying to create a widget whith Spec, managing a collection of RadioButton. But I have a problem with defaultSpec (the accessor of the collection is the methods "buttons") :
>>
>> If i put defaultSpec on class side, i can't acces the collection of the instance. (the following code iterate on the string)
>>
>> defaultSpec
>> <spec: #default>
>> ^ SpecLayout composed
>> newColumn: [ :column | #buttons do: [ :item | column add: item ] ];
>> yourself
>>
>> If i put it on instance side, the lookup don't find it (in the book Building UI with Spec, it said the lookup begin by the instance side and it allow to have specific UI, in part about layout)
>>
>> defaultSpec
>> <spec: #default>
>> ^ SpecLayout composed
>> newColumn: [ :column | self buttons do: [ :item | column add: item ] ];
>> yourself
>>
>> Any idea ?
>>
>> Marion Noirbent,
>>
>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

Marion Noirbent
In fact i was trying to modify RadioButtonGroup to turn it into a
widget, #buttons is not a widget but its collection of widget.

May you have confused RadioButtonGroup with the MenuModel /
MenuGroupModel / MenuItemModel which are widgets. I take  inspiration
from them and I would got the same kind of behaviour.

Le 17/05/2016 21:11, stepharo a écrit :

> Thanks Johan
>
>
> We looked at
>
> RadioButtonGroupExample
>
> but you see we cannot have a RadioButtonGroupPresenter having 2, 3 or 4
> radioButton.
>
> Stef
>
>
> Le 17/5/16 à 18:52, Johan Fabry a écrit :
>> Hi Marion,
>>
>> the class side message of defaultSpec is generally meant to be used if
>> you use a fixed number of widgets, so you can put the reference to the
>> name of each widget there (in cour case #buttons). For variable number
>> of widgets you should have a look at the dynamic features of Spec.
>>
>> That being said, It looks like what you really want to use is a Radio
>> Button Group. Have a look at RadioButtonGroupExample.
>>
>> HTH
>>
>> --
>> Does this mail seem too brief? Sorry for that, I don’t mean to be
>> rude! Please see http://emailcharter.org .
>>
>> Johan Fabry   -   http://pleiad.cl/~jfabry
>> PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -
>> University of Chile
>>
>>> On May 17, 2016, at 13:48, Marion Noirbent
>>> <[hidden email]> wrote:
>>>
>>> Hi,
>>> I'm trying to create a widget whith Spec, managing a collection of
>>> RadioButton. But I have a problem with defaultSpec (the accessor of
>>> the collection is the methods "buttons") :
>>>
>>> If i put defaultSpec on class side, i can't acces the collection of
>>> the instance. (the following code iterate on the string)
>>>
>>> defaultSpec
>>>     <spec: #default>
>>>     ^ SpecLayout composed
>>>         newColumn: [ :column | #buttons do: [ :item | column add:
>>> item ] ];
>>>         yourself
>>>
>>> If i put it on instance side, the lookup don't find it (in the book
>>> Building UI with Spec, it said the lookup begin by the instance side
>>> and it allow to have specific UI, in part about layout)
>>>
>>> defaultSpec
>>>     <spec: #default>
>>>     ^ SpecLayout composed
>>>         newColumn: [ :column | self buttons do: [ :item | column add:
>>> item ] ];
>>>         yourself
>>>
>>> Any idea ?
>>>
>>> Marion Noirbent,
>>>
>>>
>>
>>
>
>

--
Ma clé publique sur pgp.mit.edu

Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

stepharo
marion the solution is what peter proposes.

Stef


Le 18/5/16 à 11:14, Marion Noirbent a écrit :

> In fact i was trying to modify RadioButtonGroup to turn it into a
> widget, #buttons is not a widget but its collection of widget.
>
> May you have confused RadioButtonGroup with the MenuModel /
> MenuGroupModel / MenuItemModel which are widgets. I take inspiration
> from them and I would got the same kind of behaviour.
>
> Le 17/05/2016 21:11, stepharo a écrit :
>> Thanks Johan
>>
>>
>> We looked at
>>
>> RadioButtonGroupExample
>>
>> but you see we cannot have a RadioButtonGroupPresenter having 2, 3 or 4
>> radioButton.
>>
>> Stef
>>
>>
>> Le 17/5/16 à 18:52, Johan Fabry a écrit :
>>> Hi Marion,
>>>
>>> the class side message of defaultSpec is generally meant to be used if
>>> you use a fixed number of widgets, so you can put the reference to the
>>> name of each widget there (in cour case #buttons). For variable number
>>> of widgets you should have a look at the dynamic features of Spec.
>>>
>>> That being said, It looks like what you really want to use is a Radio
>>> Button Group. Have a look at RadioButtonGroupExample.
>>>
>>> HTH
>>>
>>> --
>>> Does this mail seem too brief? Sorry for that, I don’t mean to be
>>> rude! Please see http://emailcharter.org .
>>>
>>> Johan Fabry   -   http://pleiad.cl/~jfabry
>>> PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -
>>> University of Chile
>>>
>>>> On May 17, 2016, at 13:48, Marion Noirbent
>>>> <[hidden email]> wrote:
>>>>
>>>> Hi,
>>>> I'm trying to create a widget whith Spec, managing a collection of
>>>> RadioButton. But I have a problem with defaultSpec (the accessor of
>>>> the collection is the methods "buttons") :
>>>>
>>>> If i put defaultSpec on class side, i can't acces the collection of
>>>> the instance. (the following code iterate on the string)
>>>>
>>>> defaultSpec
>>>>     <spec: #default>
>>>>     ^ SpecLayout composed
>>>>         newColumn: [ :column | #buttons do: [ :item | column add:
>>>> item ] ];
>>>>         yourself
>>>>
>>>> If i put it on instance side, the lookup don't find it (in the book
>>>> Building UI with Spec, it said the lookup begin by the instance side
>>>> and it allow to have specific UI, in part about layout)
>>>>
>>>> defaultSpec
>>>>     <spec: #default>
>>>>     ^ SpecLayout composed
>>>>         newColumn: [ :column | self buttons do: [ :item | column add:
>>>> item ] ];
>>>>         yourself
>>>>
>>>> Any idea ?
>>>>
>>>> Marion Noirbent,
>>>>
>>>>
>>>
>>>
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

Marion Noirbent
I was trying to use it but i have still the problem to call the instance
method from the class side, so i call the buildWithSpecLayout: in the
method to add buttons in the collection, it seems work but i have an
"MessageNotUnderstood" RadioButton>>layout:

Le 18/05/2016 09:20, stepharo a écrit :

> marion the solution is what peter proposes.
>
> Stef
>
>
> Le 18/5/16 à 11:14, Marion Noirbent a écrit :
>> In fact i was trying to modify RadioButtonGroup to turn it into a
>> widget, #buttons is not a widget but its collection of widget.
>>
>> May you have confused RadioButtonGroup with the MenuModel /
>> MenuGroupModel / MenuItemModel which are widgets. I take inspiration
>> from them and I would got the same kind of behaviour.
>>
>> Le 17/05/2016 21:11, stepharo a écrit :
>>> Thanks Johan
>>>
>>>
>>> We looked at
>>>
>>> RadioButtonGroupExample
>>>
>>> but you see we cannot have a RadioButtonGroupPresenter having 2, 3 or 4
>>> radioButton.
>>>
>>> Stef
>>>
>>>
>>> Le 17/5/16 à 18:52, Johan Fabry a écrit :
>>>> Hi Marion,
>>>>
>>>> the class side message of defaultSpec is generally meant to be used if
>>>> you use a fixed number of widgets, so you can put the reference to the
>>>> name of each widget there (in cour case #buttons). For variable number
>>>> of widgets you should have a look at the dynamic features of Spec.
>>>>
>>>> That being said, It looks like what you really want to use is a Radio
>>>> Button Group. Have a look at RadioButtonGroupExample.
>>>>
>>>> HTH
>>>>
>>>> --
>>>> Does this mail seem too brief? Sorry for that, I don’t mean to be
>>>> rude! Please see http://emailcharter.org .
>>>>
>>>> Johan Fabry   -   http://pleiad.cl/~jfabry
>>>> PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -
>>>> University of Chile
>>>>
>>>>> On May 17, 2016, at 13:48, Marion Noirbent
>>>>> <[hidden email]> wrote:
>>>>>
>>>>> Hi,
>>>>> I'm trying to create a widget whith Spec, managing a collection of
>>>>> RadioButton. But I have a problem with defaultSpec (the accessor of
>>>>> the collection is the methods "buttons") :
>>>>>
>>>>> If i put defaultSpec on class side, i can't acces the collection of
>>>>> the instance. (the following code iterate on the string)
>>>>>
>>>>> defaultSpec
>>>>>     <spec: #default>
>>>>>     ^ SpecLayout composed
>>>>>         newColumn: [ :column | #buttons do: [ :item | column add:
>>>>> item ] ];
>>>>>         yourself
>>>>>
>>>>> If i put it on instance side, the lookup don't find it (in the book
>>>>> Building UI with Spec, it said the lookup begin by the instance side
>>>>> and it allow to have specific UI, in part about layout)
>>>>>
>>>>> defaultSpec
>>>>>     <spec: #default>
>>>>>     ^ SpecLayout composed
>>>>>         newColumn: [ :column | self buttons do: [ :item | column add:
>>>>> item ] ];
>>>>>         yourself
>>>>>
>>>>> Any idea ?
>>>>>
>>>>> Marion Noirbent,
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>
>

--
Ma clé publique sur pgp.mit.edu

Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

stepharo
But why from the class side.

buttons
     ^ buttons

returns an empty collection

and

rebuildWidget
     self widgets removeAll.
     self createWidgets.
     self needFullRebuild: false.
     self buildWithSpecLayout: self dynamicLayout.
     self alignButtons



Le 18/5/16 à 11:31, Marion Noirbent a écrit :

> I was trying to use it but i have still the problem to call the
> instance method from the class side, so i call the
> buildWithSpecLayout: in the method to add buttons in the collection,
> it seems work but i have an "MessageNotUnderstood" RadioButton>>layout:
>
> Le 18/05/2016 09:20, stepharo a écrit :
>> marion the solution is what peter proposes.
>>
>> Stef
>>
>>
>> Le 18/5/16 à 11:14, Marion Noirbent a écrit :
>>> In fact i was trying to modify RadioButtonGroup to turn it into a
>>> widget, #buttons is not a widget but its collection of widget.
>>>
>>> May you have confused RadioButtonGroup with the MenuModel /
>>> MenuGroupModel / MenuItemModel which are widgets. I take inspiration
>>> from them and I would got the same kind of behaviour.
>>>
>>> Le 17/05/2016 21:11, stepharo a écrit :
>>>> Thanks Johan
>>>>
>>>>
>>>> We looked at
>>>>
>>>> RadioButtonGroupExample
>>>>
>>>> but you see we cannot have a RadioButtonGroupPresenter having 2, 3
>>>> or 4
>>>> radioButton.
>>>>
>>>> Stef
>>>>
>>>>
>>>> Le 17/5/16 à 18:52, Johan Fabry a écrit :
>>>>> Hi Marion,
>>>>>
>>>>> the class side message of defaultSpec is generally meant to be
>>>>> used if
>>>>> you use a fixed number of widgets, so you can put the reference to
>>>>> the
>>>>> name of each widget there (in cour case #buttons). For variable
>>>>> number
>>>>> of widgets you should have a look at the dynamic features of Spec.
>>>>>
>>>>> That being said, It looks like what you really want to use is a Radio
>>>>> Button Group. Have a look at RadioButtonGroupExample.
>>>>>
>>>>> HTH
>>>>>
>>>>> --
>>>>> Does this mail seem too brief? Sorry for that, I don’t mean to be
>>>>> rude! Please see http://emailcharter.org .
>>>>>
>>>>> Johan Fabry   -   http://pleiad.cl/~jfabry
>>>>> PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -
>>>>> University of Chile
>>>>>
>>>>>> On May 17, 2016, at 13:48, Marion Noirbent
>>>>>> <[hidden email]> wrote:
>>>>>>
>>>>>> Hi,
>>>>>> I'm trying to create a widget whith Spec, managing a collection of
>>>>>> RadioButton. But I have a problem with defaultSpec (the accessor of
>>>>>> the collection is the methods "buttons") :
>>>>>>
>>>>>> If i put defaultSpec on class side, i can't acces the collection of
>>>>>> the instance. (the following code iterate on the string)
>>>>>>
>>>>>> defaultSpec
>>>>>>     <spec: #default>
>>>>>>     ^ SpecLayout composed
>>>>>>         newColumn: [ :column | #buttons do: [ :item | column add:
>>>>>> item ] ];
>>>>>>         yourself
>>>>>>
>>>>>> If i put it on instance side, the lookup don't find it (in the book
>>>>>> Building UI with Spec, it said the lookup begin by the instance side
>>>>>> and it allow to have specific UI, in part about layout)
>>>>>>
>>>>>> defaultSpec
>>>>>>     <spec: #default>
>>>>>>     ^ SpecLayout composed
>>>>>>         newColumn: [ :column | self buttons do: [ :item | column
>>>>>> add:
>>>>>> item ] ];
>>>>>>         yourself
>>>>>>
>>>>>> Any idea ?
>>>>>>
>>>>>> Marion Noirbent,
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

Marion Noirbent
Because I would use "openWithSpec" to build only when the widget is
ready, but it call a method (with the good pragma) on the class side.

In the example i use i have add RadioButtonModel with addRadioButton: in
the collection buttons, it's not empty but RadioButtonModel is a
ComposableModel and layout: is define in the subclass
DynamicComposableModel .

Le 18/05/2016 10:22, stepharo a écrit :

> But why from the class side.
>
> buttons
>      ^ buttons
>
> returns an empty collection
>
> and
>
> rebuildWidget
>      self widgets removeAll.
>      self createWidgets.
>      self needFullRebuild: false.
>      self buildWithSpecLayout: self dynamicLayout.
>      self alignButtons
>
>
>
> Le 18/5/16 à 11:31, Marion Noirbent a écrit :
>> I was trying to use it but i have still the problem to call the
>> instance method from the class side, so i call the
>> buildWithSpecLayout: in the method to add buttons in the collection,
>> it seems work but i have an "MessageNotUnderstood" RadioButton>>layout:
>>
>> Le 18/05/2016 09:20, stepharo a écrit :
>>> marion the solution is what peter proposes.
>>>
>>> Stef
>>>
>>>
>>> Le 18/5/16 à 11:14, Marion Noirbent a écrit :
>>>> In fact i was trying to modify RadioButtonGroup to turn it into a
>>>> widget, #buttons is not a widget but its collection of widget.
>>>>
>>>> May you have confused RadioButtonGroup with the MenuModel /
>>>> MenuGroupModel / MenuItemModel which are widgets. I take inspiration
>>>> from them and I would got the same kind of behaviour.
>>>>
>>>> Le 17/05/2016 21:11, stepharo a écrit :
>>>>> Thanks Johan
>>>>>
>>>>>
>>>>> We looked at
>>>>>
>>>>> RadioButtonGroupExample
>>>>>
>>>>> but you see we cannot have a RadioButtonGroupPresenter having 2, 3
>>>>> or 4
>>>>> radioButton.
>>>>>
>>>>> Stef
>>>>>
>>>>>
>>>>> Le 17/5/16 à 18:52, Johan Fabry a écrit :
>>>>>> Hi Marion,
>>>>>>
>>>>>> the class side message of defaultSpec is generally meant to be
>>>>>> used if
>>>>>> you use a fixed number of widgets, so you can put the reference to
>>>>>> the
>>>>>> name of each widget there (in cour case #buttons). For variable
>>>>>> number
>>>>>> of widgets you should have a look at the dynamic features of Spec.
>>>>>>
>>>>>> That being said, It looks like what you really want to use is a Radio
>>>>>> Button Group. Have a look at RadioButtonGroupExample.
>>>>>>
>>>>>> HTH
>>>>>>
>>>>>> --
>>>>>> Does this mail seem too brief? Sorry for that, I don’t mean to be
>>>>>> rude! Please see http://emailcharter.org .
>>>>>>
>>>>>> Johan Fabry   -   http://pleiad.cl/~jfabry
>>>>>> PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -
>>>>>> University of Chile
>>>>>>
>>>>>>> On May 17, 2016, at 13:48, Marion Noirbent
>>>>>>> <[hidden email]> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>> I'm trying to create a widget whith Spec, managing a collection of
>>>>>>> RadioButton. But I have a problem with defaultSpec (the accessor of
>>>>>>> the collection is the methods "buttons") :
>>>>>>>
>>>>>>> If i put defaultSpec on class side, i can't acces the collection of
>>>>>>> the instance. (the following code iterate on the string)
>>>>>>>
>>>>>>> defaultSpec
>>>>>>>     <spec: #default>
>>>>>>>     ^ SpecLayout composed
>>>>>>>         newColumn: [ :column | #buttons do: [ :item | column add:
>>>>>>> item ] ];
>>>>>>>         yourself
>>>>>>>
>>>>>>> If i put it on instance side, the lookup don't find it (in the book
>>>>>>> Building UI with Spec, it said the lookup begin by the instance side
>>>>>>> and it allow to have specific UI, in part about layout)
>>>>>>>
>>>>>>> defaultSpec
>>>>>>>     <spec: #default>
>>>>>>>     ^ SpecLayout composed
>>>>>>>         newColumn: [ :column | self buttons do: [ :item | column
>>>>>>> add:
>>>>>>> item ] ];
>>>>>>>         yourself
>>>>>>>
>>>>>>> Any idea ?
>>>>>>>
>>>>>>> Marion Noirbent,
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
>

--
Ma clé publique sur pgp.mit.edu

Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

stepharo
I do not get it.

I still think that the solution of peter is the one to implement

rebuildWidget
     self widgets removeAll.
     self createWidgets.
     self needFullRebuild: false.
     self buildWithSpecLayout: self dynamicLayout.
     self alignButtons


dynamicLayout
     | keys |
     keys := self widgets keys.
     ^ SpecLayout composed
         newColumn: [ :c |
                     keys do: [ :key | c newRow: key height: self class
buttonHeight ].
                     c newRow: [ :r |  ] ];
         yourself



Le 18/5/16 à 12:46, Marion Noirbent a écrit :

> Because I would use "openWithSpec" to build only when the widget is
> ready, but it call a method (with the good pragma) on the class side.
>
> In the example i use i have add RadioButtonModel with addRadioButton:
> in the collection buttons, it's not empty but RadioButtonModel is a
> ComposableModel and layout: is define in the subclass
> DynamicComposableModel .
>
> Le 18/05/2016 10:22, stepharo a écrit :
>> But why from the class side.
>>
>> buttons
>>      ^ buttons
>>
>> returns an empty collection
>>
>> and
>>
>> rebuildWidget
>>      self widgets removeAll.
>>      self createWidgets.
>>      self needFullRebuild: false.
>>      self buildWithSpecLayout: self dynamicLayout.
>>      self alignButtons
>>
>>
>>
>> Le 18/5/16 à 11:31, Marion Noirbent a écrit :
>>> I was trying to use it but i have still the problem to call the
>>> instance method from the class side, so i call the
>>> buildWithSpecLayout: in the method to add buttons in the collection,
>>> it seems work but i have an "MessageNotUnderstood" RadioButton>>layout:
>>>
>>> Le 18/05/2016 09:20, stepharo a écrit :
>>>> marion the solution is what peter proposes.
>>>>
>>>> Stef
>>>>
>>>>
>>>> Le 18/5/16 à 11:14, Marion Noirbent a écrit :
>>>>> In fact i was trying to modify RadioButtonGroup to turn it into a
>>>>> widget, #buttons is not a widget but its collection of widget.
>>>>>
>>>>> May you have confused RadioButtonGroup with the MenuModel /
>>>>> MenuGroupModel / MenuItemModel which are widgets. I take inspiration
>>>>> from them and I would got the same kind of behaviour.
>>>>>
>>>>> Le 17/05/2016 21:11, stepharo a écrit :
>>>>>> Thanks Johan
>>>>>>
>>>>>>
>>>>>> We looked at
>>>>>>
>>>>>> RadioButtonGroupExample
>>>>>>
>>>>>> but you see we cannot have a RadioButtonGroupPresenter having 2, 3
>>>>>> or 4
>>>>>> radioButton.
>>>>>>
>>>>>> Stef
>>>>>>
>>>>>>
>>>>>> Le 17/5/16 à 18:52, Johan Fabry a écrit :
>>>>>>> Hi Marion,
>>>>>>>
>>>>>>> the class side message of defaultSpec is generally meant to be
>>>>>>> used if
>>>>>>> you use a fixed number of widgets, so you can put the reference to
>>>>>>> the
>>>>>>> name of each widget there (in cour case #buttons). For variable
>>>>>>> number
>>>>>>> of widgets you should have a look at the dynamic features of Spec.
>>>>>>>
>>>>>>> That being said, It looks like what you really want to use is a
>>>>>>> Radio
>>>>>>> Button Group. Have a look at RadioButtonGroupExample.
>>>>>>>
>>>>>>> HTH
>>>>>>>
>>>>>>> --
>>>>>>> Does this mail seem too brief? Sorry for that, I don’t mean to be
>>>>>>> rude! Please see http://emailcharter.org .
>>>>>>>
>>>>>>> Johan Fabry   -   http://pleiad.cl/~jfabry
>>>>>>> PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -
>>>>>>> University of Chile
>>>>>>>
>>>>>>>> On May 17, 2016, at 13:48, Marion Noirbent
>>>>>>>> <[hidden email]> wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>> I'm trying to create a widget whith Spec, managing a collection of
>>>>>>>> RadioButton. But I have a problem with defaultSpec (the
>>>>>>>> accessor of
>>>>>>>> the collection is the methods "buttons") :
>>>>>>>>
>>>>>>>> If i put defaultSpec on class side, i can't acces the
>>>>>>>> collection of
>>>>>>>> the instance. (the following code iterate on the string)
>>>>>>>>
>>>>>>>> defaultSpec
>>>>>>>>     <spec: #default>
>>>>>>>>     ^ SpecLayout composed
>>>>>>>>         newColumn: [ :column | #buttons do: [ :item | column add:
>>>>>>>> item ] ];
>>>>>>>>         yourself
>>>>>>>>
>>>>>>>> If i put it on instance side, the lookup don't find it (in the
>>>>>>>> book
>>>>>>>> Building UI with Spec, it said the lookup begin by the instance
>>>>>>>> side
>>>>>>>> and it allow to have specific UI, in part about layout)
>>>>>>>>
>>>>>>>> defaultSpec
>>>>>>>>     <spec: #default>
>>>>>>>>     ^ SpecLayout composed
>>>>>>>>         newColumn: [ :column | self buttons do: [ :item | column
>>>>>>>> add:
>>>>>>>> item ] ];
>>>>>>>>         yourself
>>>>>>>>
>>>>>>>> Any idea ?
>>>>>>>>
>>>>>>>> Marion Noirbent,
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

Peter Uhnak
Yes but someone must call rebuildWidget… I will try to take a look at this today and give a better/more comprehensive example.

Peter

On Wed, May 18, 2016 at 1:01 PM, stepharo <[hidden email]> wrote:
I do not get it.

I still think that the solution of peter is the one to implement

rebuildWidget
    self widgets removeAll.
    self createWidgets.
    self needFullRebuild: false.
    self buildWithSpecLayout: self dynamicLayout.
    self alignButtons


dynamicLayout
    | keys |
    keys := self widgets keys.
    ^ SpecLayout composed
        newColumn: [ :c |
                    keys do: [ :key | c newRow: key height: self class buttonHeight ].
                    c newRow: [ :r |  ] ];
        yourself



Le 18/5/16 à 12:46, Marion Noirbent a écrit :

Because I would use "openWithSpec" to build only when the widget is ready, but it call a method (with the good pragma) on the class side.

In the example i use i have add RadioButtonModel with addRadioButton: in the collection buttons, it's not empty but RadioButtonModel is a ComposableModel and layout: is define in the subclass DynamicComposableModel .

Le 18/05/2016 10:22, stepharo a écrit :
But why from the class side.

buttons
     ^ buttons

returns an empty collection

and

rebuildWidget
     self widgets removeAll.
     self createWidgets.
     self needFullRebuild: false.
     self buildWithSpecLayout: self dynamicLayout.
     self alignButtons



Le 18/5/16 à 11:31, Marion Noirbent a écrit :
I was trying to use it but i have still the problem to call the
instance method from the class side, so i call the
buildWithSpecLayout: in the method to add buttons in the collection,
it seems work but i have an "MessageNotUnderstood" RadioButton>>layout:

Le 18/05/2016 09:20, stepharo a écrit :
marion the solution is what peter proposes.

Stef


Le 18/5/16 à 11:14, Marion Noirbent a écrit :
In fact i was trying to modify RadioButtonGroup to turn it into a
widget, #buttons is not a widget but its collection of widget.

May you have confused RadioButtonGroup with the MenuModel /
MenuGroupModel / MenuItemModel which are widgets. I take inspiration
from them and I would got the same kind of behaviour.

Le 17/05/2016 21:11, stepharo a écrit :
Thanks Johan


We looked at

RadioButtonGroupExample

but you see we cannot have a RadioButtonGroupPresenter having 2, 3
or 4
radioButton.

Stef


Le 17/5/16 à 18:52, Johan Fabry a écrit :
Hi Marion,

the class side message of defaultSpec is generally meant to be
used if
you use a fixed number of widgets, so you can put the reference to
the
name of each widget there (in cour case #buttons). For variable
number
of widgets you should have a look at the dynamic features of Spec.

That being said, It looks like what you really want to use is a Radio
Button Group. Have a look at RadioButtonGroupExample.

HTH

--
Does this mail seem too brief? Sorry for that, I don’t mean to be
rude! Please see http://emailcharter.org .

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -
University of Chile

On May 17, 2016, at 13:48, Marion Noirbent
<[hidden email]> wrote:

Hi,
I'm trying to create a widget whith Spec, managing a collection of
RadioButton. But I have a problem with defaultSpec (the accessor of
the collection is the methods "buttons") :

If i put defaultSpec on class side, i can't acces the collection of
the instance. (the following code iterate on the string)

defaultSpec
    <spec: #default>
    ^ SpecLayout composed
        newColumn: [ :column | #buttons do: [ :item | column add:
item ] ];
        yourself

If i put it on instance side, the lookup don't find it (in the book
Building UI with Spec, it said the lookup begin by the instance side
and it allow to have specific UI, in part about layout)

defaultSpec
    <spec: #default>
    ^ SpecLayout composed
        newColumn: [ :column | self buttons do: [ :item | column
add:
item ] ];
        yourself

Any idea ?

Marion Noirbent,
















Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

Marion Noirbent
Ok, I wait your answer.
Thanks for your help.
Marion,

Le 18/05/2016 12:04, Peter Uhnák a écrit :

> Yes but someone must call rebuildWidget… I will try to take a look at this
> today and give a better/more comprehensive example.
>
> Peter
>
> On Wed, May 18, 2016 at 1:01 PM, stepharo <[hidden email]> wrote:
>
>> I do not get it.
>>
>> I still think that the solution of peter is the one to implement
>>
>> rebuildWidget
>>      self widgets removeAll.
>>      self createWidgets.
>>      self needFullRebuild: false.
>>      self buildWithSpecLayout: self dynamicLayout.
>>      self alignButtons
>>
>>
>> dynamicLayout
>>      | keys |
>>      keys := self widgets keys.
>>      ^ SpecLayout composed
>>          newColumn: [ :c |
>>                      keys do: [ :key | c newRow: key height: self class
>> buttonHeight ].
>>                      c newRow: [ :r |  ] ];
>>          yourself
>>
>>
>>
>> Le 18/5/16 à 12:46, Marion Noirbent a écrit :
>>
>> Because I would use "openWithSpec" to build only when the widget is ready,
>>> but it call a method (with the good pragma) on the class side.
>>>
>>> In the example i use i have add RadioButtonModel with addRadioButton: in
>>> the collection buttons, it's not empty but RadioButtonModel is a
>>> ComposableModel and layout: is define in the subclass
>>> DynamicComposableModel .
>>>
>>> Le 18/05/2016 10:22, stepharo a écrit :
>>>
>>>> But why from the class side.
>>>>
>>>> buttons
>>>>       ^ buttons
>>>>
>>>> returns an empty collection
>>>>
>>>> and
>>>>
>>>> rebuildWidget
>>>>       self widgets removeAll.
>>>>       self createWidgets.
>>>>       self needFullRebuild: false.
>>>>       self buildWithSpecLayout: self dynamicLayout.
>>>>       self alignButtons
>>>>
>>>>
>>>>
>>>> Le 18/5/16 à 11:31, Marion Noirbent a écrit :
>>>>
>>>>> I was trying to use it but i have still the problem to call the
>>>>> instance method from the class side, so i call the
>>>>> buildWithSpecLayout: in the method to add buttons in the collection,
>>>>> it seems work but i have an "MessageNotUnderstood" RadioButton>>layout:
>>>>>
>>>>> Le 18/05/2016 09:20, stepharo a écrit :
>>>>>
>>>>>> marion the solution is what peter proposes.
>>>>>>
>>>>>> Stef
>>>>>>
>>>>>>
>>>>>> Le 18/5/16 à 11:14, Marion Noirbent a écrit :
>>>>>>
>>>>>>> In fact i was trying to modify RadioButtonGroup to turn it into a
>>>>>>> widget, #buttons is not a widget but its collection of widget.
>>>>>>>
>>>>>>> May you have confused RadioButtonGroup with the MenuModel /
>>>>>>> MenuGroupModel / MenuItemModel which are widgets. I take inspiration
>>>>>>> from them and I would got the same kind of behaviour.
>>>>>>>
>>>>>>> Le 17/05/2016 21:11, stepharo a écrit :
>>>>>>>
>>>>>>>> Thanks Johan
>>>>>>>>
>>>>>>>>
>>>>>>>> We looked at
>>>>>>>>
>>>>>>>> RadioButtonGroupExample
>>>>>>>>
>>>>>>>> but you see we cannot have a RadioButtonGroupPresenter having 2, 3
>>>>>>>> or 4
>>>>>>>> radioButton.
>>>>>>>>
>>>>>>>> Stef
>>>>>>>>
>>>>>>>>
>>>>>>>> Le 17/5/16 à 18:52, Johan Fabry a écrit :
>>>>>>>>
>>>>>>>>> Hi Marion,
>>>>>>>>>
>>>>>>>>> the class side message of defaultSpec is generally meant to be
>>>>>>>>> used if
>>>>>>>>> you use a fixed number of widgets, so you can put the reference to
>>>>>>>>> the
>>>>>>>>> name of each widget there (in cour case #buttons). For variable
>>>>>>>>> number
>>>>>>>>> of widgets you should have a look at the dynamic features of Spec.
>>>>>>>>>
>>>>>>>>> That being said, It looks like what you really want to use is a
>>>>>>>>> Radio
>>>>>>>>> Button Group. Have a look at RadioButtonGroupExample.
>>>>>>>>>
>>>>>>>>> HTH
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Does this mail seem too brief? Sorry for that, I don’t mean to be
>>>>>>>>> rude! Please see http://emailcharter.org .
>>>>>>>>>
>>>>>>>>> Johan Fabry   -   http://pleiad.cl/~jfabry
>>>>>>>>> PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -
>>>>>>>>> University of Chile
>>>>>>>>>
>>>>>>>>> On May 17, 2016, at 13:48, Marion Noirbent
>>>>>>>>>> <[hidden email]> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>> I'm trying to create a widget whith Spec, managing a collection of
>>>>>>>>>> RadioButton. But I have a problem with defaultSpec (the accessor of
>>>>>>>>>> the collection is the methods "buttons") :
>>>>>>>>>>
>>>>>>>>>> If i put defaultSpec on class side, i can't acces the collection of
>>>>>>>>>> the instance. (the following code iterate on the string)
>>>>>>>>>>
>>>>>>>>>> defaultSpec
>>>>>>>>>>      <spec: #default>
>>>>>>>>>>      ^ SpecLayout composed
>>>>>>>>>>          newColumn: [ :column | #buttons do: [ :item | column add:
>>>>>>>>>> item ] ];
>>>>>>>>>>          yourself
>>>>>>>>>>
>>>>>>>>>> If i put it on instance side, the lookup don't find it (in the book
>>>>>>>>>> Building UI with Spec, it said the lookup begin by the instance
>>>>>>>>>> side
>>>>>>>>>> and it allow to have specific UI, in part about layout)
>>>>>>>>>>
>>>>>>>>>> defaultSpec
>>>>>>>>>>      <spec: #default>
>>>>>>>>>>      ^ SpecLayout composed
>>>>>>>>>>          newColumn: [ :column | self buttons do: [ :item | column
>>>>>>>>>> add:
>>>>>>>>>> item ] ];
>>>>>>>>>>          yourself
>>>>>>>>>>
>>>>>>>>>> Any idea ?
>>>>>>>>>>
>>>>>>>>>> Marion Noirbent,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>

--
Ma clé publique sur pgp.mit.edu

Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

Peter Uhnak
Hi,

I've made a simple example — see attached fileout.

Couple things to note:

1.
If i put it on instance side, the lookup don't find it (in the book Building UI with Spec, it said the lookup begin by the instance side and it allow to have specific UI, in part about layout)

As far as I know / as far as I can tell this is false for ComposableModel.
For DynamicComposableModel you can override the method "#layout".

2. For some odd reason when you add a new radio button it looks like a checkbox and only once you click on it it turns into a checkbox… which is WTF but it shouldn't matter atm

3. DynamicComposableModel holds the item in a Dictionary, since you can't provide accessors for each item, you have to cobble together some other selector, as shown in createWidgets

4. I don't know if this is the best approach, but I've been using something like this for quite a while

I'm quite busy this week, however I scheduled to take a look at the Spec book next week as I should probably write something there…
So if you have any more questions/comments please ask.

Peter

On Wed, May 18, 2016 at 2:19 PM, Marion Noirbent <[hidden email]> wrote:
Ok, I wait your answer.
Thanks for your help.
Marion,


Le 18/05/2016 12:04, Peter Uhnák a écrit :
Yes but someone must call rebuildWidget… I will try to take a look at this
today and give a better/more comprehensive example.

Peter

On Wed, May 18, 2016 at 1:01 PM, stepharo <[hidden email]> wrote:

I do not get it.

I still think that the solution of peter is the one to implement

rebuildWidget
     self widgets removeAll.
     self createWidgets.
     self needFullRebuild: false.
     self buildWithSpecLayout: self dynamicLayout.
     self alignButtons


dynamicLayout
     | keys |
     keys := self widgets keys.
     ^ SpecLayout composed
         newColumn: [ :c |
                     keys do: [ :key | c newRow: key height: self class
buttonHeight ].
                     c newRow: [ :r |  ] ];
         yourself



Le 18/5/16 à 12:46, Marion Noirbent a écrit :

Because I would use "openWithSpec" to build only when the widget is ready,
but it call a method (with the good pragma) on the class side.

In the example i use i have add RadioButtonModel with addRadioButton: in
the collection buttons, it's not empty but RadioButtonModel is a
ComposableModel and layout: is define in the subclass
DynamicComposableModel .

Le 18/05/2016 10:22, stepharo a écrit :

But why from the class side.

buttons
      ^ buttons

returns an empty collection

and

rebuildWidget
      self widgets removeAll.
      self createWidgets.
      self needFullRebuild: false.
      self buildWithSpecLayout: self dynamicLayout.
      self alignButtons



Le 18/5/16 à 11:31, Marion Noirbent a écrit :

I was trying to use it but i have still the problem to call the
instance method from the class side, so i call the
buildWithSpecLayout: in the method to add buttons in the collection,
it seems work but i have an "MessageNotUnderstood" RadioButton>>layout:

Le 18/05/2016 09:20, stepharo a écrit :

marion the solution is what peter proposes.

Stef


Le 18/5/16 à 11:14, Marion Noirbent a écrit :

In fact i was trying to modify RadioButtonGroup to turn it into a
widget, #buttons is not a widget but its collection of widget.

May you have confused RadioButtonGroup with the MenuModel /
MenuGroupModel / MenuItemModel which are widgets. I take inspiration
from them and I would got the same kind of behaviour.

Le 17/05/2016 21:11, stepharo a écrit :

Thanks Johan


We looked at

RadioButtonGroupExample

but you see we cannot have a RadioButtonGroupPresenter having 2, 3
or 4
radioButton.

Stef


Le 17/5/16 à 18:52, Johan Fabry a écrit :

Hi Marion,

the class side message of defaultSpec is generally meant to be
used if
you use a fixed number of widgets, so you can put the reference to
the
name of each widget there (in cour case #buttons). For variable
number
of widgets you should have a look at the dynamic features of Spec.

That being said, It looks like what you really want to use is a
Radio
Button Group. Have a look at RadioButtonGroupExample.

HTH

--
Does this mail seem too brief? Sorry for that, I don’t mean to be
rude! Please see http://emailcharter.org .

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -
University of Chile

On May 17, 2016, at 13:48, Marion Noirbent
<[hidden email]> wrote:

Hi,
I'm trying to create a widget whith Spec, managing a collection of
RadioButton. But I have a problem with defaultSpec (the accessor of
the collection is the methods "buttons") :

If i put defaultSpec on class side, i can't acces the collection of
the instance. (the following code iterate on the string)

defaultSpec
     <spec: #default>
     ^ SpecLayout composed
         newColumn: [ :column | #buttons do: [ :item | column add:
item ] ];
         yourself

If i put it on instance side, the lookup don't find it (in the book
Building UI with Spec, it said the lookup begin by the instance
side
and it allow to have specific UI, in part about layout)

defaultSpec
     <spec: #default>
     ^ SpecLayout composed
         newColumn: [ :column | self buttons do: [ :item | column
add:
item ] ];
         yourself

Any idea ?

Marion Noirbent,


















--
Ma clé publique sur pgp.mit.edu



RadioButtonsExample.st (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Spec layout

Marion Noirbent
Hi,

Thanks, I think i can do it  if i take inspiration from your code. I
will put too an anotation  in the book to correct it.

Marion,


Le 20/05/2016 00:42, Peter Uhnák a écrit :

> Hi,
>
> I've made a simple example — see attached fileout.
>
> Couple things to note:
>
> 1.
>> If i put it on instance side, the lookup don't find it (in the book
> Building UI with Spec, it said the lookup begin by the instance side and it
> allow to have specific UI, in part about layout)
>
> As far as I know / as far as I can tell this is false for ComposableModel.
> For DynamicComposableModel you can override the method "#layout".
>
> 2. For some odd reason when you add a new radio button it looks like a
> checkbox and only once you click on it it turns into a checkbox… which is
> WTF but it shouldn't matter atm
>
> 3. DynamicComposableModel holds the item in a Dictionary, since you can't
> provide accessors for each item, you have to cobble together some other
> selector, as shown in createWidgets
>
> 4. I don't know if this is the best approach, but I've been using something
> like this for quite a while
>
> I'm quite busy this week, however I scheduled to take a look at the Spec
> book next week as I should probably write something there…
> So if you have any more questions/comments please ask.
>
> Peter
>
> On Wed, May 18, 2016 at 2:19 PM, Marion Noirbent <
> [hidden email]> wrote:
>
>> Ok, I wait your answer.
>> Thanks for your help.
>> Marion,
>>
>>
>> Le 18/05/2016 12:04, Peter Uhnák a écrit :
>>
>>> Yes but someone must call rebuildWidget… I will try to take a look at this
>>> today and give a better/more comprehensive example.
>>>
>>> Peter
>>>
>>> On Wed, May 18, 2016 at 1:01 PM, stepharo <[hidden email]> wrote:
>>>
>>> I do not get it.
>>>>
>>>> I still think that the solution of peter is the one to implement
>>>>
>>>> rebuildWidget
>>>>      self widgets removeAll.
>>>>      self createWidgets.
>>>>      self needFullRebuild: false.
>>>>      self buildWithSpecLayout: self dynamicLayout.
>>>>      self alignButtons
>>>>
>>>>
>>>> dynamicLayout
>>>>      | keys |
>>>>      keys := self widgets keys.
>>>>      ^ SpecLayout composed
>>>>          newColumn: [ :c |
>>>>                      keys do: [ :key | c newRow: key height: self class
>>>> buttonHeight ].
>>>>                      c newRow: [ :r |  ] ];
>>>>          yourself
>>>>
>>>>
>>>>
>>>> Le 18/5/16 à 12:46, Marion Noirbent a écrit :
>>>>
>>>> Because I would use "openWithSpec" to build only when the widget is
>>>> ready,
>>>>
>>>>> but it call a method (with the good pragma) on the class side.
>>>>>
>>>>> In the example i use i have add RadioButtonModel with addRadioButton: in
>>>>> the collection buttons, it's not empty but RadioButtonModel is a
>>>>> ComposableModel and layout: is define in the subclass
>>>>> DynamicComposableModel .
>>>>>
>>>>> Le 18/05/2016 10:22, stepharo a écrit :
>>>>>
>>>>> But why from the class side.
>>>>>>
>>>>>> buttons
>>>>>>       ^ buttons
>>>>>>
>>>>>> returns an empty collection
>>>>>>
>>>>>> and
>>>>>>
>>>>>> rebuildWidget
>>>>>>       self widgets removeAll.
>>>>>>       self createWidgets.
>>>>>>       self needFullRebuild: false.
>>>>>>       self buildWithSpecLayout: self dynamicLayout.
>>>>>>       self alignButtons
>>>>>>
>>>>>>
>>>>>>
>>>>>> Le 18/5/16 à 11:31, Marion Noirbent a écrit :
>>>>>>
>>>>>> I was trying to use it but i have still the problem to call the
>>>>>>> instance method from the class side, so i call the
>>>>>>> buildWithSpecLayout: in the method to add buttons in the collection,
>>>>>>> it seems work but i have an "MessageNotUnderstood"
>>>>>>> RadioButton>>layout:
>>>>>>>
>>>>>>> Le 18/05/2016 09:20, stepharo a écrit :
>>>>>>>
>>>>>>> marion the solution is what peter proposes.
>>>>>>>>
>>>>>>>> Stef
>>>>>>>>
>>>>>>>>
>>>>>>>> Le 18/5/16 à 11:14, Marion Noirbent a écrit :
>>>>>>>>
>>>>>>>> In fact i was trying to modify RadioButtonGroup to turn it into a
>>>>>>>>> widget, #buttons is not a widget but its collection of widget.
>>>>>>>>>
>>>>>>>>> May you have confused RadioButtonGroup with the MenuModel /
>>>>>>>>> MenuGroupModel / MenuItemModel which are widgets. I take inspiration
>>>>>>>>> from them and I would got the same kind of behaviour.
>>>>>>>>>
>>>>>>>>> Le 17/05/2016 21:11, stepharo a écrit :
>>>>>>>>>
>>>>>>>>> Thanks Johan
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> We looked at
>>>>>>>>>>
>>>>>>>>>> RadioButtonGroupExample
>>>>>>>>>>
>>>>>>>>>> but you see we cannot have a RadioButtonGroupPresenter having 2, 3
>>>>>>>>>> or 4
>>>>>>>>>> radioButton.
>>>>>>>>>>
>>>>>>>>>> Stef
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Le 17/5/16 à 18:52, Johan Fabry a écrit :
>>>>>>>>>>
>>>>>>>>>> Hi Marion,
>>>>>>>>>>>
>>>>>>>>>>> the class side message of defaultSpec is generally meant to be
>>>>>>>>>>> used if
>>>>>>>>>>> you use a fixed number of widgets, so you can put the reference to
>>>>>>>>>>> the
>>>>>>>>>>> name of each widget there (in cour case #buttons). For variable
>>>>>>>>>>> number
>>>>>>>>>>> of widgets you should have a look at the dynamic features of Spec.
>>>>>>>>>>>
>>>>>>>>>>> That being said, It looks like what you really want to use is a
>>>>>>>>>>> Radio
>>>>>>>>>>> Button Group. Have a look at RadioButtonGroupExample.
>>>>>>>>>>>
>>>>>>>>>>> HTH
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Does this mail seem too brief? Sorry for that, I don’t mean to be
>>>>>>>>>>> rude! Please see http://emailcharter.org .
>>>>>>>>>>>
>>>>>>>>>>> Johan Fabry   -   http://pleiad.cl/~jfabry
>>>>>>>>>>> PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -
>>>>>>>>>>> University of Chile
>>>>>>>>>>>
>>>>>>>>>>> On May 17, 2016, at 13:48, Marion Noirbent
>>>>>>>>>>>
>>>>>>>>>>>> <[hidden email]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>> I'm trying to create a widget whith Spec, managing a collection
>>>>>>>>>>>> of
>>>>>>>>>>>> RadioButton. But I have a problem with defaultSpec (the accessor
>>>>>>>>>>>> of
>>>>>>>>>>>> the collection is the methods "buttons") :
>>>>>>>>>>>>
>>>>>>>>>>>> If i put defaultSpec on class side, i can't acces the collection
>>>>>>>>>>>> of
>>>>>>>>>>>> the instance. (the following code iterate on the string)
>>>>>>>>>>>>
>>>>>>>>>>>> defaultSpec
>>>>>>>>>>>>      <spec: #default>
>>>>>>>>>>>>      ^ SpecLayout composed
>>>>>>>>>>>>          newColumn: [ :column | #buttons do: [ :item | column
>>>>>>>>>>>> add:
>>>>>>>>>>>> item ] ];
>>>>>>>>>>>>          yourself
>>>>>>>>>>>>
>>>>>>>>>>>> If i put it on instance side, the lookup don't find it (in the
>>>>>>>>>>>> book
>>>>>>>>>>>> Building UI with Spec, it said the lookup begin by the instance
>>>>>>>>>>>> side
>>>>>>>>>>>> and it allow to have specific UI, in part about layout)
>>>>>>>>>>>>
>>>>>>>>>>>> defaultSpec
>>>>>>>>>>>>      <spec: #default>
>>>>>>>>>>>>      ^ SpecLayout composed
>>>>>>>>>>>>          newColumn: [ :column | self buttons do: [ :item | column
>>>>>>>>>>>> add:
>>>>>>>>>>>> item ] ];
>>>>>>>>>>>>          yourself
>>>>>>>>>>>>
>>>>>>>>>>>> Any idea ?
>>>>>>>>>>>>
>>>>>>>>>>>> Marion Noirbent,
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>> --
>> Ma clé publique sur pgp.mit.edu
>>
>>
>

--
Ma clé publique sur pgp.mit.edu