A lil simplification of MorphTreeNodeMorph

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

Re: A lil simplification of MorphTreeNodeMorph

Stéphane Ducasse
so can you open an issue with all the stuff that the slaveMasters = me or marcus or igor or alain :)
should integrate.

Stef

On Apr 6, 2011, at 6:01 PM, Igor Stasenko wrote:

> okay.. i found one bug
>
> forgot to add  cellPositioning: #leftCenter;  for colum wrapper morph
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
> <Tree2.3.cs>


Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Tudor Girba
In reply to this post by Igor Stasenko
This is great!

I tested it on Glamour and it looks pretty cool. And, it is definitely snappier.

I tested LazyMorphTreeMorph it on a list with 1 million items in the context of Glamour with a pagination of 50 items I got:
- before: 6414 ms
- after: 3526 ms

The code I used is (works in a Moose image, or after you load Glamour):

Time millisecondsToRun: [
        | browser |
        browser := GLMTabulator new.
        browser column: #one.
        browser transmit to: #one; andShow: [ :a |
                a tree
                        tags: [ :each | {each even printString} ];
                        showOnly: 50 ].
        browser openOn: (1 to: 1000000)
]

Cheers,
Doru


On 6 Apr 2011, at 18:01, Igor Stasenko wrote:

> okay.. i found one bug
>
> forgot to add  cellPositioning: #leftCenter;  for colum wrapper morph
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
> <Tree2.3.cs>

--
www.tudorgirba.com

"What we can governs what we wish."




Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Stéphane Ducasse
Good! I'm happy. Igor and Ben are doing a great job.

Stef

> This is great!
>
> I tested it on Glamour and it looks pretty cool. And, it is definitely snappier.
>
> I tested LazyMorphTreeMorph it on a list with 1 million items in the context of Glamour with a pagination of 50 items I got:
> - before: 6414 ms
> - after: 3526 ms
>
> The code I used is (works in a Moose image, or after you load Glamour):
>
> Time millisecondsToRun: [
> | browser |
> browser := GLMTabulator new.
> browser column: #one.
> browser transmit to: #one; andShow: [ :a |
> a tree
> tags: [ :each | {each even printString} ];
> showOnly: 50 ].
> browser openOn: (1 to: 1000000)
> ]
>
> Cheers,
> Doru
>
>
> On 6 Apr 2011, at 18:01, Igor Stasenko wrote:
>
>> okay.. i found one bug
>>
>> forgot to add  cellPositioning: #leftCenter;  for colum wrapper morph
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>> <Tree2.3.cs>
>
> --
> www.tudorgirba.com
>
> "What we can governs what we wish."
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Tudor Girba
Excellent job :). And very highly appreciated.

Cheers,
Doru


On 6 Apr 2011, at 22:06, Stéphane Ducasse wrote:

> Good! I'm happy. Igor and Ben are doing a great job.
>
> Stef
>
>> This is great!
>>
>> I tested it on Glamour and it looks pretty cool. And, it is definitely snappier.
>>
>> I tested LazyMorphTreeMorph it on a list with 1 million items in the context of Glamour with a pagination of 50 items I got:
>> - before: 6414 ms
>> - after: 3526 ms
>>
>> The code I used is (works in a Moose image, or after you load Glamour):
>>
>> Time millisecondsToRun: [
>> | browser |
>> browser := GLMTabulator new.
>> browser column: #one.
>> browser transmit to: #one; andShow: [ :a |
>> a tree
>> tags: [ :each | {each even printString} ];
>> showOnly: 50 ].
>> browser openOn: (1 to: 1000000)
>> ]
>>
>> Cheers,
>> Doru
>>
>>
>> On 6 Apr 2011, at 18:01, Igor Stasenko wrote:
>>
>>> okay.. i found one bug
>>>
>>> forgot to add  cellPositioning: #leftCenter;  for colum wrapper morph
>>>
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko AKA sig.
>>> <Tree2.3.cs>
>>
>> --
>> www.tudorgirba.com
>>
>> "What we can governs what we wish."
>>
>>
>>
>>
>
>

--
www.tudorgirba.com

"Yesterday is a fact.
 Tomorrow is a possibility.
 Today is a challenge."




Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Tudor Girba
In reply to this post by Igor Stasenko
And if we are at it, how would it be possible to get vertical resizers between rows?

For example, in the case of GTCoder, I would like to be able to resize the pane with code inside.

Cheers,
Doru


On 6 Apr 2011, at 18:01, Igor Stasenko wrote:

> okay.. i found one bug
>
> forgot to add  cellPositioning: #leftCenter;  for colum wrapper morph
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
> <Tree2.3.cs>

--
www.tudorgirba.com

"There are no old things, there are only old ways of looking at them."




Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Igor Stasenko
On 6 April 2011 22:54, Tudor Girba <[hidden email]> wrote:
> And if we are at it, how would it be possible to get vertical resizers between rows?
>
between rows..


> For example, in the case of GTCoder, I would like to be able to resize the pane with code inside.
>

i think you'd better do a little different thing.
You can put a resizer 'grip' into a corner of code pane, and then
resize code using that grip,
and parent morph(s) will(or should) adjust themselves accordingly.

For example you can take a look how gmail web interface works:
for text areas where i currently typing a message there is a resizer
grip, using which i can resize the text pane.

But there is no sizers every row which representing a separate mail in
this thread. I guess you got an idea.

> Cheers,
> Doru
>
>
> On 6 Apr 2011, at 18:01, Igor Stasenko wrote:
>
>> okay.. i found one bug
>>
>> forgot to add  cellPositioning: #leftCenter;  for colum wrapper morph
>>
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>> <Tree2.3.cs>
>
> --
> www.tudorgirba.com
>
> "There are no old things, there are only old ways of looking at them."
>
>
>
>
>



--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Stéphane Ducasse
In reply to this post by Tudor Girba
Indeed this is really important to improve key infrastructure widgets.
They are enablers of the future.
This is why SM and polymorph are important.

Stef

On Apr 6, 2011, at 10:30 PM, Tudor Girba wrote:

> Excellent job :). And very highly appreciated.
>
> Cheers,
> Doru
>
>
> On 6 Apr 2011, at 22:06, Stéphane Ducasse wrote:
>
>> Good! I'm happy. Igor and Ben are doing a great job.
>>
>> Stef
>>
>>> This is great!
>>>
>>> I tested it on Glamour and it looks pretty cool. And, it is definitely snappier.
>>>
>>> I tested LazyMorphTreeMorph it on a list with 1 million items in the context of Glamour with a pagination of 50 items I got:
>>> - before: 6414 ms
>>> - after: 3526 ms
>>>
>>> The code I used is (works in a Moose image, or after you load Glamour):
>>>
>>> Time millisecondsToRun: [
>>> | browser |
>>> browser := GLMTabulator new.
>>> browser column: #one.
>>> browser transmit to: #one; andShow: [ :a |
>>> a tree
>>> tags: [ :each | {each even printString} ];
>>> showOnly: 50 ].
>>> browser openOn: (1 to: 1000000)
>>> ]
>>>
>>> Cheers,
>>> Doru
>>>
>>>
>>> On 6 Apr 2011, at 18:01, Igor Stasenko wrote:
>>>
>>>> okay.. i found one bug
>>>>
>>>> forgot to add  cellPositioning: #leftCenter;  for colum wrapper morph
>>>>
>>>>
>>>> --
>>>> Best regards,
>>>> Igor Stasenko AKA sig.
>>>> <Tree2.3.cs>
>>>
>>> --
>>> www.tudorgirba.com
>>>
>>> "What we can governs what we wish."
>>>
>>>
>>>
>>>
>>
>>
>
> --
> www.tudorgirba.com
>
> "Yesterday is a fact.
> Tomorrow is a possibility.
> Today is a challenge."
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Tudor Girba
In reply to this post by Igor Stasenko
Hi,

On 6 Apr 2011, at 23:03, Igor Stasenko wrote:

> On 6 April 2011 22:54, Tudor Girba <[hidden email]> wrote:
>> And if we are at it, how would it be possible to get vertical resizers between rows?
>>
> between rows..
>
>
>> For example, in the case of GTCoder, I would like to be able to resize the pane with code inside.
>>
>
> i think you'd better do a little different thing.
> You can put a resizer 'grip' into a corner of code pane, and then
> resize code using that grip,
> and parent morph(s) will(or should) adjust themselves accordingly.
>
> For example you can take a look how gmail web interface works:
> for text areas where i currently typing a message there is a resizer
> grip, using which i can resize the text pane.
>
> But there is no sizers every row which representing a separate mail in
> this thread. I guess you got an idea.

I got the idea. I mentioned splitters, because I do not know how to get grips to work. I tried to poke around a bit but I cannot seem to get the grips work on any morph other than window. Do you happen to have an example that makes it work?

Cheers,
Doru

>> Cheers,
>> Doru
>>
>>
>> On 6 Apr 2011, at 18:01, Igor Stasenko wrote:
>>
>>> okay.. i found one bug
>>>
>>> forgot to add  cellPositioning: #leftCenter;  for colum wrapper morph
>>>
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko AKA sig.
>>> <Tree2.3.cs>
>>
>> --
>> www.tudorgirba.com
>>
>> "There are no old things, there are only old ways of looking at them."
>>
>>
>>
>>
>>
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>

--
www.tudorgirba.com

"Every successful trip needs a suitable vehicle."





Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Tudor Girba
In reply to this post by Igor Stasenko
Hi,

In this thread, there were several cs proposed. I thought they were integrated in 1.3, but they do not seem to be there.

I was so looking forward to using them :). Igor, could you take a look?

Cheers,
Doru


On 6 Apr 2011, at 13:43, Igor Stasenko wrote:

> Okay, here the updated version.
>
>
> GTCoder open
> looks fine
>
> Settings look fine.
> and
>
> SimpleGridExample new open
> looking fine as well
>
> --
> Best regards,
> Igor Stasenko AKA sig.
> <theTreee.8.cs>

--
www.tudorgirba.com

"Be rather willing to give than demanding to get."




Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Igor Stasenko
On 18 May 2011 14:14, Tudor Girba <[hidden email]> wrote:
> Hi,
>
> In this thread, there were several cs proposed. I thought they were integrated in 1.3, but they do not seem to be there.
>
> I was so looking forward to using them :). Igor, could you take a look?
>

hmm.. strange.. i thought we are integrated it.

> Cheers,
> Doru
>
>

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Tudor Girba
I just tried to load Glamorous Toolkit and run "GTCoder open" in a Pharo 1.3 and the tree does not fill the space horizontally. This prompted my mail.

Cheers,
Doru


On 18 May 2011, at 17:10, Igor Stasenko wrote:

> On 18 May 2011 14:14, Tudor Girba <[hidden email]> wrote:
>> Hi,
>>
>> In this thread, there were several cs proposed. I thought they were integrated in 1.3, but they do not seem to be there.
>>
>> I was so looking forward to using them :). Igor, could you take a look?
>>
>
> hmm.. strange.. i thought we are integrated it.
>
>> Cheers,
>> Doru
>>
>>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>

--
www.tudorgirba.com

"To lead is not to demand things, it is to make them happen."




Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Igor Stasenko
On 18 May 2011 17:15, Tudor Girba <[hidden email]> wrote:
> I just tried to load Glamorous Toolkit and run "GTCoder open" in a Pharo 1.3 and the tree does not fill the space horizontally. This prompted my mail.
>

We just checked it with Marcus, and yes, this stuff are already
integrated into 1.3.

About bugs you mentioning, it is hard to say. I remember there was a
little piece of code which i forced to remove because it worked well
in 1.2 images
but caused complete layout mess in 1.3.
Maybe it is because of it.

Can you send a screenshot?

> Cheers,
> Doru
>
>

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Tudor Girba
Hi,

On 18 May 2011, at 17:28, Igor Stasenko wrote:

> On 18 May 2011 17:15, Tudor Girba <[hidden email]> wrote:
>> I just tried to load Glamorous Toolkit and run "GTCoder open" in a Pharo 1.3 and the tree does not fill the space horizontally. This prompted my mail.
>>
>
> We just checked it with Marcus, and yes, this stuff are already
> integrated into 1.3.
>
> About bugs you mentioning, it is hard to say. I remember there was a
> little piece of code which i forced to remove because it worked well
> in 1.2 images
> but caused complete layout mess in 1.3.
> Maybe it is because of it.
>
> Can you send a screenshot?
I attached the screenshot here.

To reproduce it:
1. Download the Glamorous Toolkit based on Pharo 1.3 #13204
http://ci.moosetechnology.org/job/glamorous-toolkit-latest-dev/lastSuccessfulBuild/artifact/glamoroust/*zip*/glamoroust.zip
2. Run
GTCoder open

Cheers,
Doru



>
>> Cheers,
>> Doru
>>
>>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
--
www.tudorgirba.com

"One cannot do more than one can do."




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

Re: A lil simplification of MorphTreeNodeMorph

Igor Stasenko
On 18 May 2011 17:43, Tudor Girba <[hidden email]> wrote:

> Hi,
>
> On 18 May 2011, at 17:28, Igor Stasenko wrote:
>
>> On 18 May 2011 17:15, Tudor Girba <[hidden email]> wrote:
>>> I just tried to load Glamorous Toolkit and run "GTCoder open" in a Pharo 1.3 and the tree does not fill the space horizontally. This prompted my mail.
>>>
>>
>> We just checked it with Marcus, and yes, this stuff are already
>> integrated into 1.3.
>>
>> About bugs you mentioning, it is hard to say. I remember there was a
>> little piece of code which i forced to remove because it worked well
>> in 1.2 images
>> but caused complete layout mess in 1.3.
>> Maybe it is because of it.
>>
>> Can you send a screenshot?
>
> I attached the screenshot here.
>
Okay.. looks not very good :)
Can you give a description (or screenshot) of appearance which you
expected to see.
The problem with these things, that it is hard to make it fit for
every possible use of different kinds of layout.
Mainly i was making sure that Settings and other treemorph examples in
1.3 are looking ok.

> To reproduce it:
> 1. Download the Glamorous Toolkit based on Pharo 1.3 #13204
> http://ci.moosetechnology.org/job/glamorous-toolkit-latest-dev/lastSuccessfulBuild/artifact/glamoroust/*zip*/glamoroust.zip
> 2. Run
> GTCoder open
>

Thanks, Doru i will check it.

> Cheers,
> Doru
>


--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Tudor Girba
Hi,

On 18 May 2011, at 17:53, Igor Stasenko wrote:

> On 18 May 2011 17:43, Tudor Girba <[hidden email]> wrote:
>> Hi,
>>
>> On 18 May 2011, at 17:28, Igor Stasenko wrote:
>>
>>> On 18 May 2011 17:15, Tudor Girba <[hidden email]> wrote:
>>>> I just tried to load Glamorous Toolkit and run "GTCoder open" in a Pharo 1.3 and the tree does not fill the space horizontally. This prompted my mail.
>>>>
>>>
>>> We just checked it with Marcus, and yes, this stuff are already
>>> integrated into 1.3.
>>>
>>> About bugs you mentioning, it is hard to say. I remember there was a
>>> little piece of code which i forced to remove because it worked well
>>> in 1.2 images
>>> but caused complete layout mess in 1.3.
>>> Maybe it is because of it.
>>>
>>> Can you send a screenshot?
>>
>> I attached the screenshot here.
>>
> Okay.. looks not very good :)
> Can you give a description (or screenshot) of appearance which you
> expected to see.

The rows with text with a gray background should span the entire horizontal space. Actually, the reason why there is the gray background is to reveal the bounds of the morphs for debugging :).

Also the text morphs that are the children of the gray root items should also span the horizontal space (now you see from the border that it has a very small extent)

Cheers,
Doru

> The problem with these things, that it is hard to make it fit for
> every possible use of different kinds of layout.
> Mainly i was making sure that Settings and other treemorph examples in
> 1.3 are looking ok.
>
>> To reproduce it:
>> 1. Download the Glamorous Toolkit based on Pharo 1.3 #13204
>> http://ci.moosetechnology.org/job/glamorous-toolkit-latest-dev/lastSuccessfulBuild/artifact/glamoroust/*zip*/glamoroust.zip
>> 2. Run
>> GTCoder open
>>
>
> Thanks, Doru i will check it.
>
>> Cheers,
>> Doru
>>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>

--
www.tudorgirba.com

"Value is always contextual."




Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Igor Stasenko
On 18 May 2011 17:57, Tudor Girba <[hidden email]> wrote:
> Hi,
>
>
> The rows with text with a gray background should span the entire horizontal space. Actually, the reason why there is the gray background is to reveal the bounds of the morphs for debugging :).
>
> Also the text morphs that are the children of the gray root items should also span the horizontal space (now you see from the border that it has a very small extent)
>

Now i'd like to ask you , if this is a general requirement for all
morphs placed in treemorph node?
Or it should be controlled by morph which you placing?

This should be controlled by #hResizing: , but not all morphs actually
honor this.
I can mistake, but string morph which is used for labels just paints
the string and any extra width is ignored..

It is also, a good question what to do if you have multiple morphs
which has #spaceFill placed in a row?

Consider following:

<column1>                                                    |  <column2>
<m1> <m2 spacefill .......> <m3 spacfill ... > |  <mx ... > <my ... > < mz>

> Cheers,
> Doru
>


--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: A lil simplification of MorphTreeNodeMorph

Tudor Girba
Hi,

On 18 May 2011, at 18:17, Igor Stasenko wrote:

> On 18 May 2011 17:57, Tudor Girba <[hidden email]> wrote:
>> Hi,
>>
>>
>> The rows with text with a gray background should span the entire horizontal space. Actually, the reason why there is the gray background is to reveal the bounds of the morphs for debugging :).
>>
>> Also the text morphs that are the children of the gray root items should also span the horizontal space (now you see from the border that it has a very small extent)
>>
>
> Now i'd like to ask you , if this is a general requirement for all
> morphs placed in treemorph node?
> Or it should be controlled by morph which you placing?

I think that having this work for any morph should be fine. But, the other would work as well.

> This should be controlled by #hResizing: , but not all morphs actually
> honor this.
> I can mistake, but string morph which is used for labels just paints
> the string and any extra width is ignored..

Aha. Ok. in any case, we should be able to get a PluggableTextMorph fill the space.

> It is also, a good question what to do if you have multiple morphs
> which has #spaceFill placed in a row?
>
> Consider following:
>
> <column1>                                                    |  <column2>
> <m1> <m2 spacefill .......> <m3 spacfill ... > |  <mx ... > <my ... > < mz>

I think that the best way is to require a root morph that controls the layout of the children.

On a related note, Gary made the GeneralScrollPane to scroll on one dimension and stretch on another. The problem is that MorphTreeMorph inherits from ScrollPane. Alain proposed that perhaps it would be a solution to get it work with the GeneralScrollPane.

Cheers,
Doru


>> Cheers,
>> Doru
>>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>

--
www.tudorgirba.com

"Be rather willing to give than demanding to get."




12