Damn, the last row of the last plugins fills all the window... -- Pavel 2013/10/4 Pavel Krivanek <pavel.krivanek@gmail.com>:
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 <Benjamin.VanRyseghem.Pharo@gmail.com>:
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 <pavel.krivanek@gmail.com> 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 <pavel.krivanek@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@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@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@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@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@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.... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Tools-MarcusDenker.150.di... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Tests-MarcusDenker.35.dif... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-MorphicAdapters-MarcusDen... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-PolyWidgets-MarcusDenker.... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Layout-MarcusDenker.58.di... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Inspector-MarcusDenker.10... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Examples-MarcusDenker.48.... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Debugger-MarcusDenker.163... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Core-MarcusDenker.175.dif... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Builder-MarcusDenker.43.d... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Bindings-MarcusDenker.35.... http://smalltalkhub.com/mc/Pharo/Pharo30/main/NautilusRefactoring-MarcusDenk... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Spec-Adapters-MarcusDenker.3.d... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Manifest-CriticBrowser-MarcusD... http://smalltalkhub.com/mc/Pharo/Pharo30/main/Keymapping-Tools-Spec-MarcusDe... http://smalltalkhub.com/mc/Pharo/Pharo30/main/KeyChain-MarcusDenker.58.diff http://smalltalkhub.com/mc/Pharo/Pharo30/main/HudsonBuildTools20-MarcusDenke...