Work on object explorer

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

Work on object explorer

Patrick R.
Hi everyone,

the attached ChangeSet includes changes to the Object Explorer.
If anyone finds the time for reviewing it the following is in there:

- Fixes and issue with the object explorer not updating on clicking a selected
entry correctly if the tree item was created through explorerContents
- Moved the logic of how to extract tree items from arbitrary objects to an extension
method in Object
- Adds drag and drop support to the object explorer
- Adds a way to specify a double click handler method in PluggableTreeSpecs

Thanks and bests
Patrick


WorkOnExplorer.1.cs (11K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Work on object explorer

Hannes Hirzel
Hello Patrick

This is interesting work.

On 4/26/17, Rein, Patrick <[hidden email]> wrote:

> Hi everyone,
>
> the attached ChangeSet includes changes to the Object Explorer.
> If anyone finds the time for reviewing it the following is in there:
>
> - Fixes and issue with the object explorer not updating on clicking a
> selected
> entry correctly if the tree item was created through explorerContents
> - Moved the logic of how to extract tree items from arbitrary objects to an
> extension
> method in Object
> - Adds drag and drop support to the object explorer

Could you please elaborate on what this means? What can I drop into
object explorer and what can I drag out?

> - Adds a way to specify a double click handler method in PluggableTreeSpecs

How will this be used? An example?

> Thanks and bests
> Patrick

Reply | Threaded
Open this post in threaded view
|

Re: Work on object explorer

Patrick R.
Thanks, sure  I can elaborate some more.

The drag and drop support basically means that it now behaves similar to the Inspector
in that you can drag out objects from there. Dropping has no effect so far.

I stumbled on the missing double click handler when implementing a browser for my
maildir structure. Dragging out should put the email as a morph in the world while
double click should open the tool for reading emails. (see attached gif)

________________________________________
From: Squeak-dev <[hidden email]> on behalf of H. Hirzel <[hidden email]>
Sent: Wednesday, April 26, 2017 13:51
To: The general-purpose Squeak developers list
Subject: Re: [squeak-dev] Work on object explorer

Hello Patrick

This is interesting work.

On 4/26/17, Rein, Patrick <[hidden email]> wrote:

> Hi everyone,
>
> the attached ChangeSet includes changes to the Object Explorer.
> If anyone finds the time for reviewing it the following is in there:
>
> - Fixes and issue with the object explorer not updating on clicking a
> selected
> entry correctly if the tree item was created through explorerContents
> - Moved the logic of how to extract tree items from arbitrary objects to an
> extension
> method in Object
> - Adds drag and drop support to the object explorer
Could you please elaborate on what this means? What can I drop into
object explorer and what can I drag out?

> - Adds a way to specify a double click handler method in PluggableTreeSpecs

How will this be used? An example?

> Thanks and bests
> Patrick




Aufnahme-1.gif (1M) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Email with Squeak (was Re: Work on object explorer)

Tony Garnock-Jones-3
Hi Patrick,

On 04/26/2017 08:11 AM, Rein, Patrick wrote:
> I stumbled on the missing double click handler when implementing a browser for my
> maildir structure. Dragging out should put the email as a morph in the world while
> double click should open the tool for reading emails. (see attached gif)

I'm very interested to see you are working on email in Squeak!

I'd like to increase my "dogfooding" of Squeak, and getting to the point
where I can do basic email tasks within the image seems a good first step.

I have tried Celeste recently, but it didn't immediately work and I
don't have the time at present to spend on getting it working.

Are your email tools publicly available anywhere I can follow along as
you develop them?

Regards,
  Tony

Reply | Threaded
Open this post in threaded view
|

Email with Squeak (was Re: Work on object explorer)

Jecel Assumpcao Jr
Tony Garnock-Jones wrote on Wed, 26 Apr 2017 10:42:41 -0400
> I'm very interested to see you are working on email in Squeak!

I am typing this in Celeste on a Squeak 4.1 image.

> I'd like to increase my "dogfooding" of Squeak, and getting to the point
> where I can do basic email tasks within the image seems a good first step.

In September of 2004 I made the same decision and switched from KMail.
Of course, I was also moving from a KDE based Linux to one with a
different GUI so I would have had to change email clients anyway.

> I have tried Celeste recently, but it didn't immediately work and I
> don't have the time at present to spend on getting it working.

At first I used Squeak 3.8 but then had to move to 3.9 and now 4.1.
Along the way I had to make some quick and dirty fixes to keep going.
These were not done "the right way" since normally I would get a
debugger in the middle of downloading stuff from my pop3 server and
wanted to get things working again before I got a network timeout.

In this image I have the following change sets:

'Network-Mail Reader-ls.21'
'CelesteCompatibility41'
'Celeste41NoSqueakToIso'
'Celeste41CharFixes'
'Celeste41MiscFixes'
'Network-HTML-md.5'
'Porter-bpm.3'
'Scamper-kfr.12'

Since some of my emails were in Portuguese, I had to add a bunch o
SqueakToIso conversions to deal with them. On recent Squeaks these
changes need to be reverted.

One major problem I had was that files were limited to 2GB. So once a
year or so I would have to start a new database. David Lewis helped me
fix that by getting a newer VM - no image side changes were needed.

> Are your email tools publicly available anywhere I can follow along as
> you develop them?

At some point I will be interested in this as well since it would be
nice to move to a newer Squeak image. I should post those four Celeste*
change sets somewhere, though they need a lot of cleaning up. In
particular, halfway through I changed my style of fixes so they are very
inconsistent. No if things are messed up, for example, you see the text
"** bad encoding **" as the body of the message. You can still look at
the raw message. And emails from some people here are nearly unreadable,
but I never got around to fixing that.

-- Jecel

bpi
Reply | Threaded
Open this post in threaded view
|

Re: Email with Squeak (was Re: Work on object explorer)

bpi
In reply to this post by Tony Garnock-Jones-3
Hi Patrick,

I was also intrigued, especially since you mentioned MailDir. I had used Celeste several years ago and had to stop when my mail database got too large. Nowadays it is even larger and now Apple Mail is getting too slow. So I will need a replacement soon. ;-)

Cheers,
Bernhard


> Am 26.04.2017 um 16:42 schrieb Tony Garnock-Jones <[hidden email]>:
>
> Hi Patrick,
>
> On 04/26/2017 08:11 AM, Rein, Patrick wrote:
>> I stumbled on the missing double click handler when implementing a browser for my
>> maildir structure. Dragging out should put the email as a morph in the world while
>> double click should open the tool for reading emails. (see attached gif)
>
> I'm very interested to see you are working on email in Squeak!
>
> I'd like to increase my "dogfooding" of Squeak, and getting to the point
> where I can do basic email tasks within the image seems a good first step.
>
> I have tried Celeste recently, but it didn't immediately work and I
> don't have the time at present to spend on getting it working.
>
> Are your email tools publicly available anywhere I can follow along as
> you develop them?
>
> Regards,
>  Tony

Reply | Threaded
Open this post in threaded view
|

Re: Email with Squeak (was Re: Work on object explorer)

Karl Ramberg
I stopped using mail in Squeak because so much mail has hyperlinks or html that it was hard to read and/or not convenient.
Gmail is both convenient and accessible so I don't see myself changing back at the moment.

Cheers,
Karl 

On Wed, Apr 26, 2017 at 8:36 PM, Bernhard Pieber <[hidden email]> wrote:
Hi Patrick,

I was also intrigued, especially since you mentioned MailDir. I had used Celeste several years ago and had to stop when my mail database got too large. Nowadays it is even larger and now Apple Mail is getting too slow. So I will need a replacement soon. ;-)

Cheers,
Bernhard


> Am 26.04.2017 um 16:42 schrieb Tony Garnock-Jones <[hidden email]>:
>
> Hi Patrick,
>
> On 04/26/2017 08:11 AM, Rein, Patrick wrote:
>> I stumbled on the missing double click handler when implementing a browser for my
>> maildir structure. Dragging out should put the email as a morph in the world while
>> double click should open the tool for reading emails. (see attached gif)
>
> I'm very interested to see you are working on email in Squeak!
>
> I'd like to increase my "dogfooding" of Squeak, and getting to the point
> where I can do basic email tasks within the image seems a good first step.
>
> I have tried Celeste recently, but it didn't immediately work and I
> don't have the time at present to spend on getting it working.
>
> Are your email tools publicly available anywhere I can follow along as
> you develop them?
>
> Regards,
>  Tony




Reply | Threaded
Open this post in threaded view
|

Re: Email with Squeak (was Re: Work on object explorer)

Patrick R.
In reply to this post by Tony Garnock-Jones-3
Hi Tony,

the "dogfooding" is what I am heading for, too :)

So far, all approaches I found used POP and I wanted to stay with my IMAP workflow.
So my current setup is the following (not ideal probably):

1.) http://www.offlineimap.org/ to synchronize my complete mailboxes to a MailDir structure.
It can also synchronize changes to the MailDir structure back to the IMAP server
2.) Using CCMail (original: https://github.com/calmez/CCMail), I read in the MailDir structure
and go on from there. Currently, I am evolving the tool at https://github.com/codeZeilen/CCMail

The setup has the advantage that the huge amount of data is not affecting the image directly.
However, the synchronization outside of the image is cumbersome and the performance is not
very good yet. All of these things are on my list and I am working on them :)
I will keep you in the loop if you want to.

Alternatively, there is a student project implementing an IMAP client (https://github.com/HPI-SWA-Teaching/IMAPClient).
It currently can connect to servers and list emails. It still has some rough edges, but work will continue during the next few months.

Bests,
Patrick
________________________________________
From: Squeak-dev <[hidden email]> on behalf of Tony Garnock-Jones <[hidden email]>
Sent: Wednesday, April 26, 2017 16:42
To: The general-purpose Squeak developers list
Subject: [squeak-dev] Email with Squeak (was Re:  Work on object explorer)

Hi Patrick,

On 04/26/2017 08:11 AM, Rein, Patrick wrote:
> I stumbled on the missing double click handler when implementing a browser for my
> maildir structure. Dragging out should put the email as a morph in the world while
> double click should open the tool for reading emails. (see attached gif)

I'm very interested to see you are working on email in Squeak!

I'd like to increase my "dogfooding" of Squeak, and getting to the point
where I can do basic email tasks within the image seems a good first step.

I have tried Celeste recently, but it didn't immediately work and I
don't have the time at present to spend on getting it working.

Are your email tools publicly available anywhere I can follow along as
you develop them?

Regards,
  Tony


Reply | Threaded
Open this post in threaded view
|

Re: Email with Squeak (was Re: Work on object explorer)

Patrick R.
In reply to this post by Jecel Assumpcao Jr
Hi Jecel,

in the course of working on the email classes in the image I am also fixing some issues.
I would be really interested in the change sets to see which other parts could use some
work.

Bests,
Patrick
________________________________________
From: Squeak-dev <[hidden email]> on behalf of Jecel Assumpcao Jr. <[hidden email]>
Sent: Wednesday, April 26, 2017 18:51
To: The general-purpose Squeak developers list
Subject: [squeak-dev] Email with Squeak (was Re: Work on object explorer)

Tony Garnock-Jones wrote on Wed, 26 Apr 2017 10:42:41 -0400
> I'm very interested to see you are working on email in Squeak!

I am typing this in Celeste on a Squeak 4.1 image.

> I'd like to increase my "dogfooding" of Squeak, and getting to the point
> where I can do basic email tasks within the image seems a good first step.

In September of 2004 I made the same decision and switched from KMail.
Of course, I was also moving from a KDE based Linux to one with a
different GUI so I would have had to change email clients anyway.

> I have tried Celeste recently, but it didn't immediately work and I
> don't have the time at present to spend on getting it working.

At first I used Squeak 3.8 but then had to move to 3.9 and now 4.1.
Along the way I had to make some quick and dirty fixes to keep going.
These were not done "the right way" since normally I would get a
debugger in the middle of downloading stuff from my pop3 server and
wanted to get things working again before I got a network timeout.

In this image I have the following change sets:

'Network-Mail Reader-ls.21'
'CelesteCompatibility41'
'Celeste41NoSqueakToIso'
'Celeste41CharFixes'
'Celeste41MiscFixes'
'Network-HTML-md.5'
'Porter-bpm.3'
'Scamper-kfr.12'

Since some of my emails were in Portuguese, I had to add a bunch o
SqueakToIso conversions to deal with them. On recent Squeaks these
changes need to be reverted.

One major problem I had was that files were limited to 2GB. So once a
year or so I would have to start a new database. David Lewis helped me
fix that by getting a newer VM - no image side changes were needed.

> Are your email tools publicly available anywhere I can follow along as
> you develop them?

At some point I will be interested in this as well since it would be
nice to move to a newer Squeak image. I should post those four Celeste*
change sets somewhere, though they need a lot of cleaning up. In
particular, halfway through I changed my style of fixes so they are very
inconsistent. No if things are messed up, for example, you see the text
"** bad encoding **" as the body of the message. You can still look at
the raw message. And emails from some people here are nearly unreadable,
but I never got around to fixing that.

-- Jecel


Reply | Threaded
Open this post in threaded view
|

Re: Email with Squeak (was Re: Work on object explorer)

Jecel Assumpcao Jr
Patrick

> in the course of working on the email classes in the image I am also fixing some issues.
> I would be really interested in the change sets to see which other parts could use some
> work.

I have attached my change sets.

-- Jecel



Celeste41NoSqueakToIso.1.cs (7K) Download Attachment
CelesteCompatibility41.1.cs (2K) Download Attachment
Celeste41CharFixes.1.cs (7K) Download Attachment
Celeste41MiscFixes.1.cs (21K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Work on object explorer

Hannes Hirzel
In reply to this post by Patrick R.
Thank you Patrick for the illustrative gif video clip.

Regarding dragging out list elements from the Inspector. I my
Sq6.0a-17230 image I can not confirm that this is possible. What am I
missing? It would be great to have this option.

Just trying to understand your code. You add method


Object

explorerContents

        ^ (self class allInstVarNames asOrderedCollection withIndexCollect:
[:each :index |
                ObjectExplorerWrapper
                        with: (self instVarAt: index)
                        name: each
                        model: self]) ,
                ((1 to: self basicSize) collect: [:index |
                        ObjectExplorerWrapper
                                with: (self  basicAt: index)
                                name: index printString
                                model: self ])


There are other implementations of explorerContents

Collection
CompiledeMethod
Dictionary
Integer
MatrixTransform2x3
OrderedDictionary
SequenceableCollection
Set
XMLelement
XMLNodeWithElements

What is the reason for adding this method?


--Hannes

On 4/26/17, Rein, Patrick <[hidden email]> wrote:

> Thanks, sure  I can elaborate some more.
>
> The drag and drop support basically means that it now behaves similar to the
> Inspector
> in that you can drag out objects from there. Dropping has no effect so far.
>
> I stumbled on the missing double click handler when implementing a browser
> for my
> maildir structure. Dragging out should put the email as a morph in the world
> while
> double click should open the tool for reading emails. (see attached gif)
>
> ________________________________________
> From: Squeak-dev <[hidden email]> on behalf
> of H. Hirzel <[hidden email]>
> Sent: Wednesday, April 26, 2017 13:51
> To: The general-purpose Squeak developers list
> Subject: Re: [squeak-dev] Work on object explorer
>
> Hello Patrick
>
> This is interesting work.
>
> On 4/26/17, Rein, Patrick <[hidden email]> wrote:
>> Hi everyone,
>>
>> the attached ChangeSet includes changes to the Object Explorer.
>> If anyone finds the time for reviewing it the following is in there:
>>
>> - Fixes and issue with the object explorer not updating on clicking a
>> selected
>> entry correctly if the tree item was created through explorerContents
>> - Moved the logic of how to extract tree items from arbitrary objects to
>> an
>> extension
>> method in Object
>> - Adds drag and drop support to the object explorer
>
> Could you please elaborate on what this means? What can I drop into
> object explorer and what can I drag out?
>
>> - Adds a way to specify a double click handler method in
>> PluggableTreeSpecs
>
> How will this be used? An example?
>
>> Thanks and bests
>> Patrick
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Work on object explorer

Hannes Hirzel
I filed in

Object explorerContents
Object buildWith:
Object getDragItem: binding
ObjectExplorerWrapper contents
ObjectExplorerWrapper refresh

so far. What should be the effect of this?

--Hannes

On 5/2/17, H. Hirzel <[hidden email]> wrote:

> Thank you Patrick for the illustrative gif video clip.
>
> Regarding dragging out list elements from the Inspector. I my
> Sq6.0a-17230 image I can not confirm that this is possible. What am I
> missing? It would be great to have this option.
>
> Just trying to understand your code. You add method
>
>
> Object
>
> explorerContents
>
> ^ (self class allInstVarNames asOrderedCollection withIndexCollect:
> [:each :index |
> ObjectExplorerWrapper
> with: (self instVarAt: index)
> name: each
> model: self]) ,
> ((1 to: self basicSize) collect: [:index |
> ObjectExplorerWrapper
> with: (self  basicAt: index)
> name: index printString
> model: self ])
>
>
> There are other implementations of explorerContents
>
> Collection
> CompiledeMethod
> Dictionary
> Integer
> MatrixTransform2x3
> OrderedDictionary
> SequenceableCollection
> Set
> XMLelement
> XMLNodeWithElements
>
> What is the reason for adding this method?
>
>
> --Hannes
>
> On 4/26/17, Rein, Patrick <[hidden email]> wrote:
>> Thanks, sure  I can elaborate some more.
>>
>> The drag and drop support basically means that it now behaves similar to
>> the
>> Inspector
>> in that you can drag out objects from there. Dropping has no effect so
>> far.
>>
>> I stumbled on the missing double click handler when implementing a
>> browser
>> for my
>> maildir structure. Dragging out should put the email as a morph in the
>> world
>> while
>> double click should open the tool for reading emails. (see attached gif)
>>
>> ________________________________________
>> From: Squeak-dev <[hidden email]> on
>> behalf
>> of H. Hirzel <[hidden email]>
>> Sent: Wednesday, April 26, 2017 13:51
>> To: The general-purpose Squeak developers list
>> Subject: Re: [squeak-dev] Work on object explorer
>>
>> Hello Patrick
>>
>> This is interesting work.
>>
>> On 4/26/17, Rein, Patrick <[hidden email]> wrote:
>>> Hi everyone,
>>>
>>> the attached ChangeSet includes changes to the Object Explorer.
>>> If anyone finds the time for reviewing it the following is in there:
>>>
>>> - Fixes and issue with the object explorer not updating on clicking a
>>> selected
>>> entry correctly if the tree item was created through explorerContents
>>> - Moved the logic of how to extract tree items from arbitrary objects to
>>> an
>>> extension
>>> method in Object
>>> - Adds drag and drop support to the object explorer
>>
>> Could you please elaborate on what this means? What can I drop into
>> object explorer and what can I drag out?
>>
>>> - Adds a way to specify a double click handler method in
>>> PluggableTreeSpecs
>>
>> How will this be used? An example?
>>
>>> Thanks and bests
>>> Patrick
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Work on object explorer

Hannes Hirzel
Corrected list

Object explorerContents
ObjectExplorer buildWith:
ObjectExplorer getDragItem: binding   (new method)
ObjectExplorerWrapper contents
ObjectExplorerWrapper refresh


On 5/2/17, H. Hirzel <[hidden email]> wrote:

> I filed in
>
> Object explorerContents
> Object buildWith:
> Object getDragItem: binding
> ObjectExplorerWrapper contents
> ObjectExplorerWrapper refresh
>
> so far. What should be the effect of this?
>
> --Hannes
>
> On 5/2/17, H. Hirzel <[hidden email]> wrote:
>> Thank you Patrick for the illustrative gif video clip.
>>
>> Regarding dragging out list elements from the Inspector. I my
>> Sq6.0a-17230 image I can not confirm that this is possible. What am I
>> missing? It would be great to have this option.
>>
>> Just trying to understand your code. You add method
>>
>>
>> Object
>>
>> explorerContents
>>
>> ^ (self class allInstVarNames asOrderedCollection withIndexCollect:
>> [:each :index |
>> ObjectExplorerWrapper
>> with: (self instVarAt: index)
>> name: each
>> model: self]) ,
>> ((1 to: self basicSize) collect: [:index |
>> ObjectExplorerWrapper
>> with: (self  basicAt: index)
>> name: index printString
>> model: self ])
>>
>>
>> There are other implementations of explorerContents
>>
>> Collection
>> CompiledeMethod
>> Dictionary
>> Integer
>> MatrixTransform2x3
>> OrderedDictionary
>> SequenceableCollection
>> Set
>> XMLelement
>> XMLNodeWithElements
>>
>> What is the reason for adding this method?
>>
>>
>> --Hannes
>>
>> On 4/26/17, Rein, Patrick <[hidden email]> wrote:
>>> Thanks, sure  I can elaborate some more.
>>>
>>> The drag and drop support basically means that it now behaves similar to
>>> the
>>> Inspector
>>> in that you can drag out objects from there. Dropping has no effect so
>>> far.
>>>
>>> I stumbled on the missing double click handler when implementing a
>>> browser
>>> for my
>>> maildir structure. Dragging out should put the email as a morph in the
>>> world
>>> while
>>> double click should open the tool for reading emails. (see attached gif)
>>>
>>> ________________________________________
>>> From: Squeak-dev <[hidden email]> on
>>> behalf
>>> of H. Hirzel <[hidden email]>
>>> Sent: Wednesday, April 26, 2017 13:51
>>> To: The general-purpose Squeak developers list
>>> Subject: Re: [squeak-dev] Work on object explorer
>>>
>>> Hello Patrick
>>>
>>> This is interesting work.
>>>
>>> On 4/26/17, Rein, Patrick <[hidden email]> wrote:
>>>> Hi everyone,
>>>>
>>>> the attached ChangeSet includes changes to the Object Explorer.
>>>> If anyone finds the time for reviewing it the following is in there:
>>>>
>>>> - Fixes and issue with the object explorer not updating on clicking a
>>>> selected
>>>> entry correctly if the tree item was created through explorerContents
>>>> - Moved the logic of how to extract tree items from arbitrary objects
>>>> to
>>>> an
>>>> extension
>>>> method in Object
>>>> - Adds drag and drop support to the object explorer
>>>
>>> Could you please elaborate on what this means? What can I drop into
>>> object explorer and what can I drag out?
>>>
>>>> - Adds a way to specify a double click handler method in
>>>> PluggableTreeSpecs
>>>
>>> How will this be used? An example?
>>>
>>>> Thanks and bests
>>>> Patrick
>>>
>>>
>>
>