On 04 Oct 2014, at 15:35, Nicolai Hess <nicolaihess@web.de> wrote:
2014-10-03 13:26 GMT+02:00 Esteban Lorenzano <estebanlm@gmail.com>:yes, but a few models means a few classes :)On 03 Oct 2014, at 13:14, Nicolai Hess <nicolaihess@web.de> wrote:
Am 03.10.2014 12:34 schrieb "Yuriy Tymchuk" <yuriy.tymchuk@me.com>:
>
> Hi.
>
> I want to make something like a browser on a single class. I.e. just use 2 last lists out if 4 in standard browser.
>
> Is there already something like that? If not, should I use existing widgets, or implement my own using spec?
>
> Cheers!
> Uko
>
> Sent from my iPhoneI think that is pretty easy with some spec models.
Maybe there is already an examplein a single class, it will e a lot easier glamour (which btw, is specially designed for that: to make browsers).You can work with ready made models like ListModel/TextModel and just need one class for sticking them
together. Here some code, evaluateable from workspace, that shows how we
can build a "simple browser" with spec models:This is just the simple skeleton, for more details it would be a bit confusing doing all this
in one workspace "script" :)
class:=Morph.
method:=class>>#openInWorld.
composed:= DynamicComposableModel new.
composed instantiateModels: #(code TextModel protocols ListModel methods ListModel).
composed code text:method sourceCode.
composed protocols items: class protocols.
composed methods items: class selectors.
composed code aboutToStyle:true.
composed code behavior:class.
composed title: class asString.
composed code acceptBlock:[:text |
class compile:text notifying:nil.
].
composed protocols whenSelectedItemChanged:[:item |
composed methods items:( class selectorsInProtocol: item)
].
composed methods whenSelectedItemChanged:[:item |
item ifNotNil:[
method:=class methodDict at:item.
composed code text:method sourceCode]
].
composed openWithSpecLayout:(
SpecLayout composed
newColumn:[:c | c
newRow:[:r | r
add: #protocols;
add: #methods
];
add: #code];
yourself).EstebanHilaire asked for a simple Method editor and
i wrote a simple example build with DynamicComposableModel, search the Mailingliste.