Can you point me where to load your code and how to end up in a situation where I can play with the spec ? :P
Ben On Oct 4, 2013, at 11:11 PM, Pavel Krivanek <[email protected]> wrote: > Damn, the last row of the last plugins fills all the window... > > -- Pavel > > 2013/10/4 Pavel Krivanek <[email protected]>: >> Thanks, this seems to work: >> >> defaultSpec >> >> | layout | >> layout := SpecLayout composed. >> self pluginClasses do: [ :c | >> layout add: {#model. #class. #pluginOf:. c. #defaultSpec} ]. >> >> ^ layout. >> >> >> plugin code on the instance side looks like this: >> >> defaultSpec >> >> ^ SpecLayout composed >> newRow:[: r | >> r add: #finderButtonModel; >> add: #browserButtonModel] >> height: 25. >> >> >> -- Pavel >> >> 2013/10/4 Benjamin <[email protected]>: >>> Since you are doing some really edge use of Spec, >>> it's not covered by Spec easily. >>> >>> But if on you model you have a method returning your pluginClasses, you >>> could do maybe: >>> >>> | layout | >>> layout := SpecLayout composed. >>> self pluginClasses do: [ :c | >>> layout add: {#model. pluginOf:. c} ] >>> >>> I am not sure it works, but it worth a try :P >>> >>> Ben >>> >>> On Oct 4, 2013, at 9:28 PM, Pavel Krivanek <[email protected]> wrote: >>> >>>> This was the original code for the spec that embeds plugins. As you >>>> can see, it had to use ugly addMorph:. I do not think that I need to >>>> do something special. Has the current Spec a better way how to do >>>> that? >>>> >>>> defaultSpec >>>> >>>> | spec | >>>> spec := OrderedCollection with: #ContainerModel. >>>> spec addAll: {#changeTableLayout. >>>> #listDirection:. #topToBottom. >>>> #hResizing:. #spaceFill. >>>> #vResizing:. #spaceFill.}. >>>> self pluginClasses do: [:c | >>>> spec add: #addMorph:. >>>> spec add: {(self pluginOf: c) defaultSpec}]. >>>> ^ spec asArray. >>>> >>>> 2013/10/4 Pavel Krivanek <[email protected]>: >>>>> In other words... I have a model that has some plugins. I need to >>>>> generate a spec that embeds specs generated for each plugin. Models >>>>> for this embedded specs must be the plugins, not the original model. >>>>> >>>>> -- Pavel >>>>> >>>>> 2013/10/4 Pavel Krivanek <[email protected]>: >>>>>> well, and the version with "SpecLayout composed" when I do not need >>>>>> direct fractions? >>>>>> >>>>>> ^ SpecLayout composed >>>>>> newRow:[: r | >>>>>> r add: #finderButtonModel] >>>>>> height: 25 >>>>>> >>>>>> How to send #finderButtonModel to different object than SpecInterpreter >>>>>> model? >>>>>> >>>>>> -- Pavel >>>>>> >>>>>> 2013/10/4 Benjamin <[email protected]>: >>>>>>> ^{ #ContainerModel. >>>>>>> >>>>>>> #vShrinkWrap. >>>>>>> >>>>>>> #add:. {{self. #finderButtonModel}. >>>>>>> >>>>>>> #layout:. #(FrameLayout >>>>>>> >>>>>>> rightFraction: 0.125)}. >>>>>>> >>>>>>> #add:. {{self. #browserButtonModel}. >>>>>>> >>>>>>> #layout:. #(FrameLayout >>>>>>> >>>>>>> leftFraction: 0.125 >>>>>>> rightFraction: 0.25)}} >>>>>>> >>>>>>> This should work, but looks strange though :P >>>>>>> >>>>>>> Ben >>>>>>> >>>>>>> On Oct 4, 2013, at 8:13 PM, Pavel Krivanek <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>> Ben, >>>>>>> >>>>>>> how now should look code like this: >>>>>>> >>>>>>> defaultSpec >>>>>>> >>>>>>> ^{ #ComposableSpec. >>>>>>> #vResizing:. #shrinkWrap. >>>>>>> #add:. {{self. #finderButtonModel}. >>>>>>> #layout:. #(FrameLayout >>>>>>> rightFraction: 0.125)}. >>>>>>> #add:. {{self. #browserButtonModel}. >>>>>>> #layout:. #(FrameLayout >>>>>>> leftFraction: 0.125 >>>>>>> rightFraction: 0.25)}} >>>>>>> >>>>>>> -- Pavel >>>>>>> >>>>>>> 2013/10/4 Benjamin <[email protected]>: >>>>>>> >>>>>>> For Spec users: >>>>>>> >>>>>>> The change is mostly backward compatible :) >>>>>>> 2 things really changed: >>>>>>> - direct access to a model's widget is not returning what it used to >>>>>>> return. >>>>>>> This is done on purpose since >>>>>>> it's very often a bad idea to directly access the widget. >>>>>>> - some behaviour on trees are now only available after the tree build. >>>>>>> This >>>>>>> is because some properties >>>>>>> have been moved on the adapter directly, which is reachable only after >>>>>>> the >>>>>>> model build. >>>>>>> You can use `whenBuiltDo:` to add post-build actions. >>>>>>> >>>>>>> Enjoy this new Spec :P >>>>>>> >>>>>>> Ben >>>>>>> >>>>>>> On Oct 4, 2013, at 2:31 PM, Marcus Denker <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>> 30448 >>>>>>> ----- >>>>>>> >>>>>>> 11740 Remove Morphic dependency from Spec >>>>>>> https://pharo.fogbugz.com/f/cases/11740 >>>>>>> >>>>>>> A Huge change from Ben... >>>>>>> >>>>>>> Diff information: >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Tools-MarcusDenker.1292.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Tabs-MarcusDenker.33.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Widgets-MarcusDenker.265.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Tools-MarcusDenker.150.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Tests-MarcusDenker.35.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-MorphicAdapters-MarcusDenker.9.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-PolyWidgets-MarcusDenker.7.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Layout-MarcusDenker.58.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Inspector-MarcusDenker.102.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Examples-MarcusDenker.48.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Debugger-MarcusDenker.163.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Core-MarcusDenker.175.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Builder-MarcusDenker.43.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Bindings-MarcusDenker.35.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/NautilusRefactoring-MarcusDenker.126.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Adapters-MarcusDenker.3.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Manifest-CriticBrowser-MarcusDenker.124.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/Keymapping-Tools-Spec-MarcusDenker.19.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/KeyChain-MarcusDenker.58.diff >>>>>>> http://smalltalkhub.com/mc/Pharo/Pharo30/main/HudsonBuildTools20-MarcusDenker.45.diff >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>> >>> >>> >
