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 <steph...@free.fr> 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 >>>>>>>>> <ms.noirb...@etudiant.univ-lille1.fr> 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, >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>> >>> >>> >> > >