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
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>> 
>>> 
>>> 
> 

Reply via email to