Interchanging tags and children names order in a tree for browser window

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Interchanging tags and children names order in a tree for browser window

Offray
Hi,

I'm looking at the Basic Examples browser and I would like to use the
"Tree with tags" examples as an inspiration to build a custom browser.

My idea is to make a browser with two columns. Left is a tree with tags
and right is the "content" of that tree. According with the tags in the
tree the display and behaviour of the content will change. For example,
if the tree node is tagged with "code" the left browser will be and
executable pane, if not it will be just plain text.

For that I will like to change the order in which tags and children
names are shown in a tree with tags. I would like to have tags first and
children names second, which is the reverse order of what we have now. I
see in the examples that the message to build a tree with tags have the
form:

=[1]========================
a tree
    display: [];
    children: [];
    tags: [].
============================

and I would like something with the form:

=[2]========================
a tree
    display: [];
    tags: [];
    children: [].
============================

I tried to find the message for [1] at the GLMTabulator and
GLMTreePresentation but it's not there and I don't know where else to
look for.

How can I change the order of tags and children names in a tree with
tags presentation for a browser?

Thanks,

Offray
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Interchanging tags and children names order in a tree for browser window

Tudor Girba-2
Hi,

To achieve this, you should use a presentation on the left hand side. Here is an example:
GLMCompositePresentation new 
with: [ :c |
c table
children: #subclasses;
column: 'Kind' evaluated: ['' ] tags: [ :each | { (each methods anySatisfy: #isAbstract) asString } ]; 
column: 'Name' evaluated: #name ];
openOn: { Collection }

Cheers,
Doru

On Sun, Jan 11, 2015 at 4:47 PM, Offray Vladimir Luna Cárdenas <[hidden email]> wrote:
Hi,

I'm looking at the Basic Examples browser and I would like to use the "Tree with tags" examples as an inspiration to build a custom browser.

My idea is to make a browser with two columns. Left is a tree with tags and right is the "content" of that tree. According with the tags in the tree the display and behaviour of the content will change. For example, if the tree node is tagged with "code" the left browser will be and executable pane, if not it will be just plain text.

For that I will like to change the order in which tags and children names are shown in a tree with tags. I would like to have tags first and children names second, which is the reverse order of what we have now. I see in the examples that the message to build a tree with tags have the form:

=[1]========================
a tree
   display: [];
   children: [];
   tags: [].
============================

and I would like something with the form:

=[2]========================
a tree
   display: [];
   tags: [];
   children: [].
============================

I tried to find the message for [1] at the GLMTabulator and GLMTreePresentation but it's not there and I don't know where else to look for.

How can I change the order of tags and children names in a tree with tags presentation for a browser?

Thanks,

Offray
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



--

"Every thing has its own flow"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Interchanging tags and children names order in a tree for browser window

Offray
Hi,

I have tested this, but I have two issues:

1. When I browser your example with the keyboard arrows expanding and
contracting levels in the tree inside the table the method name gets all
the time truncated, as shown in the attached screenshot. I have long
names in my trees and I wouldn't like this to be the default experience.

2. I don't know how to replace my current tree with the
GLMCompositePresentation. My tree builder is something like:


=[1]=================================
GrafoscopioBrowser>>buildBrowserNamed:

browser := GLMTabulator new
        title: aName, ' | Grafoscopio'.

browser
     column: [:c |
                c row: #tree span: 6;
                        row: #nodeHeader span: 1] span: 2;
     column: [ :c |
               c row: #nodeBody span: 2] span: 5.
browser
        updateOn: GLMItemAdded from: #yourself;
        updateOn: GLMItemRemoved from: #yourself.
               
(browser transmit)
     to: #tree;
     andShow: [:a | self treeOn: a].

===================================

and the "treeOn:" message works like:

=[2]=================================
(constructor tree) "Layout"
       title: mainTree header;
       children: [ :eachNode |
                  (eachNode children) isNil
                     ifTrue: [ self inform: 'Seleccione un nodo para ver
su contenido' ]
                     ifFalse:[ eachNode children ] ];
                   format:[:eachNode |
                           (eachNode header) isNil
                              ifTrue: [ '' ]
                              ifFalse: [ eachNode header ]];

"A lot of act nodes to build the interface"
===================================

Seems that GLMCompositePresentation can not receive the "act: "
messages, so I would need to embed the table inside something which can.

It seems that a tree with tags to the left could solve this more easily,
but I don't know how easy is to get this as a feature of Glamorous
browsers. May be something like:

a tree
    display:
    children:
    tagsAtLeft:

could be done.

I will test with the interface with the current tags location and let
you know how it goes (but my intuition says that would be better to have
tags in a tree aligned at left).

Cheers,

Offray

El 11/01/15 a las 11:05, Tudor Girba escribió:

> Hi,
>
> To achieve this, you should use a presentation on the left hand side. Here is an
> example:
> GLMCompositePresentation new
> with: [ :c |
> c table
> children: #subclasses;
> column: 'Kind' evaluated: ['' ] tags: [ :each | { (each methods anySatisfy:
> #isAbstract) asString } ];
> column: 'Name' evaluated: #name ];
> openOn: { Collection }
>
> Cheers,
> Doru
>
> On Sun, Jan 11, 2015 at 4:47 PM, Offray Vladimir Luna Cárdenas
> <[hidden email] <mailto:[hidden email]>> wrote:
>
>      Hi,
>
>      I'm looking at the Basic Examples browser and I would like to use the "Tree
>      with tags" examples as an inspiration to build a custom browser.
>
>      My idea is to make a browser with two columns. Left is a tree with tags and
>      right is the "content" of that tree. According with the tags in the tree the
>      display and behaviour of the content will change. For example, if the tree
>      node is tagged with "code" the left browser will be and executable pane, if
>      not it will be just plain text.
>
>      For that I will like to change the order in which tags and children names
>      are shown in a tree with tags. I would like to have tags first and children
>      names second, which is the reverse order of what we have now. I see in the
>      examples that the message to build a tree with tags have the form:
>
>      =[1]========================
>      a tree
>          display: [];
>          children: [];
>          tags: [].
>      ============================
>
>      and I would like something with the form:
>
>      =[2]========================
>      a tree
>          display: [];
>          tags: [];
>          children: [].
>      ============================
>
>      I tried to find the message for [1] at the GLMTabulator and
>      GLMTreePresentation but it's not there and I don't know where else to look for.
>
>      How can I change the order of tags and children names in a tree with tags
>      presentation for a browser?
>
>      Thanks,
>
>      Offray
>      _________________________________________________
>      Moose-dev mailing list
>      [hidden email] <mailto:[hidden email]>
>      https://www.iam.unibe.ch/__mailman/listinfo/moose-dev
>      <https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>
>
>
>
> --
> www.tudorgirba.com <http://www.tudorgirba.com>
>
> "Every thing has its own flow"
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev

taggedTreeWithChopedNames.png (52K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Interchanging tags and children names order in a tree for browser window

Offray
Hi,

I have tested this:

[1] http://ws.stfx.eu/6S2XAUQ2VBG0

and this:

[2] http://ws.stfx.eu/LQBQKZ41H3S9

The only difference between both is that the long text of the second
includes the character "ñ" and in that case the tree gets disordered
with the longer text at the end instead of at the beginning.

I will trees tagged at right with my current interface which contains
accented characters and "ñ"s and see how it's going.

Cheers,

Offray

El 13/01/15 a las 19:57, Offray Vladimir Luna Cárdenas escribió:

> Hi,
>
> I have tested this, but I have two issues:
>
> 1. When I browser your example with the keyboard arrows expanding and
> contracting levels in the tree inside the table the method name gets all
> the time truncated, as shown in the attached screenshot. I have long
> names in my trees and I wouldn't like this to be the default experience.
>
> 2. I don't know how to replace my current tree with the
> GLMCompositePresentation. My tree builder is something like:
>
>
> =[1]=================================
> GrafoscopioBrowser>>buildBrowserNamed:
>
> browser := GLMTabulator new
>      title: aName, ' | Grafoscopio'.
>
> browser
>      column: [:c |
>          c     row: #tree span: 6;
>              row: #nodeHeader span: 1] span: 2;
>      column: [ :c |
>                c row: #nodeBody span: 2] span: 5.
> browser
>      updateOn: GLMItemAdded from: #yourself;
>      updateOn: GLMItemRemoved from: #yourself.
>
> (browser transmit)
>      to: #tree;
>      andShow: [:a | self treeOn: a].
>
> ===================================
>
> and the "treeOn:" message works like:
>
> =[2]=================================
> (constructor tree) "Layout"
>        title: mainTree header;
>        children: [ :eachNode |
>                   (eachNode children) isNil
>                      ifTrue: [ self inform: 'Seleccione un nodo para ver
> su contenido' ]
>                      ifFalse:[ eachNode children ] ];
>                    format:[:eachNode |
>                            (eachNode header) isNil
>                               ifTrue: [ '' ]
>                               ifFalse: [ eachNode header ]];
>
> "A lot of act nodes to build the interface"
> ===================================
>
> Seems that GLMCompositePresentation can not receive the "act: "
> messages, so I would need to embed the table inside something which can.
>
> It seems that a tree with tags to the left could solve this more easily,
> but I don't know how easy is to get this as a feature of Glamorous
> browsers. May be something like:
>
> a tree
>     display:
>     children:
>     tagsAtLeft:
>
> could be done.
>
> I will test with the interface with the current tags location and let
> you know how it goes (but my intuition says that would be better to have
> tags in a tree aligned at left).
>
> Cheers,
>
> Offray
>
> El 11/01/15 a las 11:05, Tudor Girba escribió:
>> Hi,
>>
>> To achieve this, you should use a presentation on the left hand side.
>> Here is an
>> example:
>> GLMCompositePresentation new
>> with: [ :c |
>> c table
>> children: #subclasses;
>> column: 'Kind' evaluated: ['' ] tags: [ :each | { (each methods
>> anySatisfy:
>> #isAbstract) asString } ];
>> column: 'Name' evaluated: #name ];
>> openOn: { Collection }
>>
>> Cheers,
>> Doru
>>
>> On Sun, Jan 11, 2015 at 4:47 PM, Offray Vladimir Luna Cárdenas
>> <[hidden email] <mailto:[hidden email]>> wrote:
>>
>>      Hi,
>>
>>      I'm looking at the Basic Examples browser and I would like to use
>> the "Tree
>>      with tags" examples as an inspiration to build a custom browser.
>>
>>      My idea is to make a browser with two columns. Left is a tree
>> with tags and
>>      right is the "content" of that tree. According with the tags in
>> the tree the
>>      display and behaviour of the content will change. For example, if
>> the tree
>>      node is tagged with "code" the left browser will be and
>> executable pane, if
>>      not it will be just plain text.
>>
>>      For that I will like to change the order in which tags and
>> children names
>>      are shown in a tree with tags. I would like to have tags first
>> and children
>>      names second, which is the reverse order of what we have now. I
>> see in the
>>      examples that the message to build a tree with tags have the form:
>>
>>      =[1]========================
>>      a tree
>>          display: [];
>>          children: [];
>>          tags: [].
>>      ============================
>>
>>      and I would like something with the form:
>>
>>      =[2]========================
>>      a tree
>>          display: [];
>>          tags: [];
>>          children: [].
>>      ============================
>>
>>      I tried to find the message for [1] at the GLMTabulator and
>>      GLMTreePresentation but it's not there and I don't know where
>> else to look for.
>>
>>      How can I change the order of tags and children names in a tree
>> with tags
>>      presentation for a browser?
>>
>>      Thanks,
>>
>>      Offray
>>      _________________________________________________
>>      Moose-dev mailing list
>>      [hidden email] <mailto:[hidden email]>
>>      https://www.iam.unibe.ch/__mailman/listinfo/moose-dev
>>      <https://www.iam.unibe.ch/mailman/listinfo/moose-dev>
>>
>>
>>
>>
>> --
>> www.tudorgirba.com <http://www.tudorgirba.com>
>>
>> "Every thing has its own flow"
>>
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Interchanging tags and children names order in a tree for browser window

Nicolai Hess
2015-01-14 2:37 GMT+01:00 Offray Vladimir Luna Cárdenas <[hidden email]>:
Hi,

I have tested this:

[1] http://ws.stfx.eu/6S2XAUQ2VBG0

and this:

[2] http://ws.stfx.eu/LQBQKZ41H3S9

The only difference between both is that the long text of the second includes the character "ñ" and in that case the tree gets disordered with the longer text at the end instead of at the beginning.

You can use an OrderedDictionary. It will preserve the key insertion order.
 

I will trees tagged at right with my current interface which contains accented characters and "ñ"s and see how it's going.

Cheers,

Offray

El 13/01/15 a las 19:57, Offray Vladimir Luna Cárdenas escribió:

Hi,

I have tested this, but I have two issues:

1. When I browser your example with the keyboard arrows expanding and
contracting levels in the tree inside the table the method name gets all
the time truncated, as shown in the attached screenshot. I have long
names in my trees and I wouldn't like this to be the default experience.

2. I don't know how to replace my current tree with the
GLMCompositePresentation. My tree builder is something like:


=[1]=================================
GrafoscopioBrowser>>buildBrowserNamed:

browser := GLMTabulator new
     title: aName, ' | Grafoscopio'.

browser
     column: [:c |
         c     row: #tree span: 6;
             row: #nodeHeader span: 1] span: 2;
     column: [ :c |
               c row: #nodeBody span: 2] span: 5.
browser
     updateOn: GLMItemAdded from: #yourself;
     updateOn: GLMItemRemoved from: #yourself.

(browser transmit)
     to: #tree;
     andShow: [:a | self treeOn: a].

===================================

and the "treeOn:" message works like:

=[2]=================================
(constructor tree) "Layout"
       title: mainTree header;
       children: [ :eachNode |
                  (eachNode children) isNil
                     ifTrue: [ self inform: 'Seleccione un nodo para ver
su contenido' ]
                     ifFalse:[ eachNode children ] ];
                   format:[:eachNode |
                           (eachNode header) isNil
                              ifTrue: [ '' ]
                              ifFalse: [ eachNode header ]];

"A lot of act nodes to build the interface"
===================================

Seems that GLMCompositePresentation can not receive the "act: "
messages, so I would need to embed the table inside something which can.

It seems that a tree with tags to the left could solve this more easily,
but I don't know how easy is to get this as a feature of Glamorous
browsers. May be something like:

a tree
    display:
    children:
    tagsAtLeft:

could be done.

I will test with the interface with the current tags location and let
you know how it goes (but my intuition says that would be better to have
tags in a tree aligned at left).

Cheers,

Offray

El 11/01/15 a las 11:05, Tudor Girba escribió:
Hi,

To achieve this, you should use a presentation on the left hand side.
Here is an
example:
GLMCompositePresentation new
with: [ :c |
c table
children: #subclasses;
column: 'Kind' evaluated: ['' ] tags: [ :each | { (each methods
anySatisfy:
#isAbstract) asString } ];
column: 'Name' evaluated: #name ];
openOn: { Collection }

Cheers,
Doru

On Sun, Jan 11, 2015 at 4:47 PM, Offray Vladimir Luna Cárdenas
<[hidden email] <mailto:[hidden email]>> wrote:

     Hi,

     I'm looking at the Basic Examples browser and I would like to use
the "Tree
     with tags" examples as an inspiration to build a custom browser.

     My idea is to make a browser with two columns. Left is a tree
with tags and
     right is the "content" of that tree. According with the tags in
the tree the
     display and behaviour of the content will change. For example, if
the tree
     node is tagged with "code" the left browser will be and
executable pane, if
     not it will be just plain text.

     For that I will like to change the order in which tags and
children names
     are shown in a tree with tags. I would like to have tags first
and children
     names second, which is the reverse order of what we have now. I
see in the
     examples that the message to build a tree with tags have the form:

     =[1]========================
     a tree
         display: [];
         children: [];
         tags: [].
     ============================

     and I would like something with the form:

     =[2]========================
     a tree
         display: [];
         tags: [];
         children: [].
     ============================

     I tried to find the message for [1] at the GLMTabulator and
     GLMTreePresentation but it's not there and I don't know where
else to look for.

     How can I change the order of tags and children names in a tree
with tags
     presentation for a browser?

     Thanks,

     Offray
     _________________________________________________
     Moose-dev mailing list
     [hidden email] <mailto:[hidden email]>
     https://www.iam.unibe.ch/__mailman/listinfo/moose-dev
     <https://www.iam.unibe.ch/mailman/listinfo/moose-dev>




--
www.tudorgirba.com <http://www.tudorgirba.com>

"Every thing has its own flow"



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev