2013/11/7 Benjamin <benjamin.vanryseghem.ph...@gmail.com>

> Just a general remark: you should try as much as possible to avoid hard
> coding width/height :)
>
> there are some methods on ComposableModel you could use like buttonHeight
> toolbarHeight etc. that you should use instead :)
>
>
> Ben
>
> On 07 Nov 2013, at 13:22, Bahman Movaqar <bah...@bahmanm.com> wrote:
>
>  On 11/07/2013 12:45, Clément Bera wrote:
>
> Hey,
>
>  I don't know what you want exactly.
>
>  You can do:
>
>  spec
> <spec>
>  ^ SpecLayout composed
>  newRow: [:row |
>  row
>                                 newColumn: [ :col |
>                                 col
>  add: #list width: 135;
>  add: #description ] ];
>  yourself
>
>  and nest that as many times as you want (but I don't know if this was
> your question).
>
>
> I just tried this one and it works (see the code below) BUT, the code is
> so hard to read and understand just for 3 rows and 7 widgets!
>
> <code>
> defaultSpec
>     ^ SpecLayout composed
>         newColumn: [ :mainColumn |
>                     mainColumn
>                         newRow: [ :nameRow |
>                             nameRow
>                                 add: #labelName;
>                                 add: #textName ]
>                         height: 25.
>                     mainColumn
>                         newRow: [ :titleRow |
>                             titleRow
>                                 add: #labelTitle;
>                                 newRow: [ :titleRadioRow |
>                                             titleRadioRow
>                                                 add: #radioMr;
>                                                 add: #radioMrs;
>                                                 add: #radioMs ] ]
>                         height: 25.
>                     mainColumn newRow: [ :buttonRow | buttonRow add:
> #buttonGreet ] height: 25 ];
>         yourself
> </code>
>
> Am I doing it right?
>
> I guess this is right. But I think you need to generate this layout out of
collections, not to write it.

>
>
>  Another feature is:
>
>  debuggerSpec
>  <spec: #default>
>  ^ SpecLayout composed
>  add: #inspector withSpec: #debuggerSpec;
>  yourself
>
>  #inspector being the instance variable name that holds a subclass of
> ComposableModel that defines class side #debuggerSpec, which answers a
> SpecLayout.
>
>
> Does this mean that for every table cell I have to create a new class?
>
> Yeah well I was just pointing out all the choices you had. Depending on
what you want to do you could have a class hierarchy similar to this:

SpecTable
AbstractSpecColumn
    SpecColumnA
    SpecColumnB
AbstractSpecCell
    SpecCellA
    SpecCellB

SpecTable having column, column having cells.
But this may not be the best choice.

Now that you caught my interest, I tried to do a table. I put it in
attachment the result. It is a .st file, so drag and drop it in your image,
then click file in entire file. Then try to run 'SpecTable new', it opens a
table with 3 columns and 5 rows, with no complex layout method. All the
code is in SpecTable (Cmd+f,Cmd+c to find a class in nautilus or write the
class name in workspace then select it and press Cmd+m), in the method
protocol table logic. It's like 6 methods.

However:
- vertical splitters are not sync.
- I don't know how to color the border of each cell to make it beautiful.

Of course you need to polish it ...

I hope it helped you :)


>  Not sure if this helped.
>
>  All of these questions are for your tutorials ?
>
>
>
>
> 2013/11/7 Bahman Movaqar <bah...@bahmanm.com>
>
>> Hi all,
>>
>> Is it possible to nest layouts in Spec?  For example can I combine
>> `SpecColumnLayout` and `SpecRowLayout` together?
>>
>>
> --
> Bahman Movaqar  (http://BahmanM.com <http://bahmanm.com/>)
>
> ERP Evaluation, Implementation & Deployment Consultant
> PGP Key ID: 0x6AB5BD68 (keyserver2.pgp.com)
> --
> Bahman Movaqar  (http://BahmanM.com <http://bahmanm.com/>)
>
> ERP Evaluation, Implementation & Deployment Consultant
> PGP Key ID: 0x6AB5BD68 (keyserver2.pgp.com)
>
>
>

Attachment: SpecTable.st
Description: Binary data

Reply via email to