[Pharo-dev] [update 3.0] #30448

Pavel Krivanek pavel.krivanek at gmail.com
Fri Oct 4 15:28:38 EDT 2013


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 <pavel.krivanek at gmail.com>:
> 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 <pavel.krivanek at gmail.com>:
>> 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 <Benjamin.VanRyseghem.Pharo at gmail.com>:
>>> ^{ #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 <pavel.krivanek at gmail.com> 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 <Benjamin.VanRyseghem.Pharo at gmail.com>:
>>>
>>> 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 <marcus.denker at inria.fr> 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
>>>
>>>
>>>
>>>




More information about the Pharo-dev mailing list