Hannes,
You did not cause the problem. It may have been me, I saved the squeaksource.com image from a VNC session (because I wanted to make an up to date backup of it), and I am now unable to log in to squeaksource. Maybe I triggered a bug :-/ Can you please tell me if you are able to log in to your http://squeaksource.com page? I am getting authorization errors, and I suspect it is a problem that affects everyone. Thanks, Dave On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: > Dave, > > Yes, I encounter problems. They might be related to what I just tried to do: > > I wanted to save an updated version of Morphic to the ProjectEtoys > repository but by mistake I tried to commit it to the trunk. As I do > not have commit rights to trunk this prevented me from changing it > inadvertently. Later on I wanted to commit that version to > ProjectEtoys. It did not work. > > --Hannes > > > > On 10/5/17, David T. Lewis <[hidden email]> wrote: > > I'm seeing problems with SqueakSource right now, trying to figure out > > what is wrong. So the project may not be accessible right now :-/ > > > > Dave > > > > > > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: > >> Karl, > >> > >> So far entering and existing the Etoys project works smoothly. > >> > >> Load mcz from into current Squeak 6.0a > >> > >> MCHttpRepository > >> location: 'http://www.squeaksource.com/EtoysProject' > >> user: '' > >> password: '' > >> > >> The issue is about providing more settings when entering. > >> > >> Karl, do you want to be added to the list of developers? > >> > >> --HH > >> > >> On 10/5/17, H. Hirzel <[hidden email]> wrote: > >> > PasteUpMorph is useful and the functions have to be maintained. > >> > > >> > However adding more functions to Morph does not make sense. > >> > > >> > Squeak 6.0a > >> > Morph selectors size 1345 > >> > PasteUpMorph selectors size 530 > >> > > >> > --Hannes > >> > > >> > On 10/4/17, karl ramberg <[hidden email]> wrote: > >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph is very > >> >> useful > >> >> in > >> >> direct manipulation because of it's various layout and event handling > >> >> options. It also act as a container of other morphs, with automatic > >> >> layout, enumeration etc. > >> >> I'm sure most of this could be refactored into Morph class or another > >> >> class. > >> >> > >> >> Best, > >> >> Karl > >> >> > >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel <[hidden email]> > >> >> wrote: > >> >> > >> >>> +1 :) > >> >>> > >> >>> And then later: Rename PasteUpMorph to WorldMorph, and keep an empty > >> >>> PasteUpMorph subclass around for compatibility reasons. So many ideas > >> >>> have > >> >>> been ported down to Morph class over the past years. New applications > >> >>> have > >> >>> no reason to ever use other instances of PasteUpMorph. > >> >>> > >> >>> Best, > >> >>> Marcel > >> >>> > >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel <[hidden email]>: > >> >>> On 10/3/17, H. Hirzel wrote: > >> >>> > Dave > >> >>> > > >> >>> > your change set contains the class EtoysProject with > >> >>> > > >> >>> > EtoysProject selectors > >> >>> > > >> >>> > #(#finalEnterActions: #restoreGlobalPreferences > >> >>> > #saveGlobalPreferences > >> >>> > #initializeProjectPreferences #configureOnFirstEntry > >> >>> > #finalExitActions:) > >> >>> > > >> >>> > For complete configuration of a EtoysProject it might be necessary > >> >>> > to > >> >>> > do > >> >>> > > >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph > >> >>> > > >> >>> > as well. http://wiki.squeak.org/squeak/6461 > >> >>> > > >> >>> > Then Etoys related methods may be pushed down to EtoysPasteUpMorph. > >> >>> > >> >>> See screen shot attached. > >> >>> > >> >>> > And probably an Etoys specific subclass of WorldMenu would be fine > >> >>> > as > >> >>> well > >> >>> > http://wiki.squeak.org/squeak/6461 > >> >>> > > >> >>> > > >> >>> > there is a test project [2] and some more information about > >> >>> > adaptions > >> >>> > needed because of the UI changes in the thread 'Etoys in 2017?' - UI > >> >>> > preferences [3]. And it would be good to have Etoys methods / > >> >>> > configuration separate [4]. > >> >>> > > >> >>> > I suggest that you start go ahead and start implementing this while > >> >>> > using a test Etoys project dropped onto the desktop. > >> >>> > > >> >>> > --Hannes > >> >>> > > >> >>> > > >> >>> > [2] > You simply drop it in. E.g. download this project > >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr > >> >>> > > >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, 2017 at 11:01 > >> >>> > AM > >> >>> > > >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM > >> >>> > "I think it would be great if both Etoys and Scratch were easily > >> >>> > loadable and unloadable in trunk." > >> >>> > > >> >>> > On 10/2/17, David T. Lewis wrote: > >> >>> >> An EtoysProject is a project that is configured for running Etoys. > >> >>> >> On > >> >>> >> first entry to a new EtoysProject, the playground and project > >> >>> preferences > >> >>> >> are initialized to provide an environment similar to that of a > >> >>> >> traditional > >> >>> >> standalone Etoys image. > >> >>> >> > >> >>> >> Certain preferences that are required for Etoys are initialized on > >> >>> >> project > >> >>> >> entry, overriding their global preference values while this > >> >>> EtoysProject > >> >>> >> is active. On leaving the project, these preferences are restored > >> >>> >> to > >> >>> >> their > >> >>> >> previous values. > >> >>> >> > >> >>> >> "ProjectViewMorph openOn: EtoysProject new" > >> >>> >> > >> >>> >> Change set attached for a minimal implementation. > >> >>> >> > >> >>> >> Anyone with Etoys knowledge care to help? I do not know enough > >> >>> >> about > >> >>> >> Etoys > >> >>> >> to fill in the rest of the initialization that will be required, > >> >>> >> but > >> >>> >> it > >> >>> >> should not be hard to do. > >> >>> >> > >> >>> >> Dave > >> >>> >> > >> >>> >> > >> >>> > > >> >>> > >> >>> > >> >>> > >> >>> > >> >>> > >> >> > >> > > > > > > >> > > > > > > > |
Dave
Earlier today login worked. Currently it does not. --Hannes On 10/5/17, David T. Lewis <[hidden email]> wrote: > Hannes, > > You did not cause the problem. It may have been me, I saved the > squeaksource.com > image from a VNC session (because I wanted to make an up to date backup of > it), > and I am now unable to log in to squeaksource. Maybe I triggered a bug :-/ > > Can you please tell me if you are able to log in to your > http://squeaksource.com > page? I am getting authorization errors, and I suspect it is a problem that > affects > everyone. > > Thanks, > Dave > > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: >> Dave, >> >> Yes, I encounter problems. They might be related to what I just tried to >> do: >> >> I wanted to save an updated version of Morphic to the ProjectEtoys >> repository but by mistake I tried to commit it to the trunk. As I do >> not have commit rights to trunk this prevented me from changing it >> inadvertently. Later on I wanted to commit that version to >> ProjectEtoys. It did not work. >> >> --Hannes >> >> >> >> On 10/5/17, David T. Lewis <[hidden email]> wrote: >> > I'm seeing problems with SqueakSource right now, trying to figure out >> > what is wrong. So the project may not be accessible right now :-/ >> > >> > Dave >> > >> > >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: >> >> Karl, >> >> >> >> So far entering and existing the Etoys project works smoothly. >> >> >> >> Load mcz from into current Squeak 6.0a >> >> >> >> MCHttpRepository >> >> location: 'http://www.squeaksource.com/EtoysProject' >> >> user: '' >> >> password: '' >> >> >> >> The issue is about providing more settings when entering. >> >> >> >> Karl, do you want to be added to the list of developers? >> >> >> >> --HH >> >> >> >> On 10/5/17, H. Hirzel <[hidden email]> wrote: >> >> > PasteUpMorph is useful and the functions have to be maintained. >> >> > >> >> > However adding more functions to Morph does not make sense. >> >> > >> >> > Squeak 6.0a >> >> > Morph selectors size 1345 >> >> > PasteUpMorph selectors size 530 >> >> > >> >> > --Hannes >> >> > >> >> > On 10/4/17, karl ramberg <[hidden email]> wrote: >> >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph is very >> >> >> useful >> >> >> in >> >> >> direct manipulation because of it's various layout and event >> >> >> handling >> >> >> options. It also act as a container of other morphs, with automatic >> >> >> layout, enumeration etc. >> >> >> I'm sure most of this could be refactored into Morph class or >> >> >> another >> >> >> class. >> >> >> >> >> >> Best, >> >> >> Karl >> >> >> >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel >> >> >> <[hidden email]> >> >> >> wrote: >> >> >> >> >> >>> +1 :) >> >> >>> >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and keep an >> >> >>> empty >> >> >>> PasteUpMorph subclass around for compatibility reasons. So many >> >> >>> ideas >> >> >>> have >> >> >>> been ported down to Morph class over the past years. New >> >> >>> applications >> >> >>> have >> >> >>> no reason to ever use other instances of PasteUpMorph. >> >> >>> >> >> >>> Best, >> >> >>> Marcel >> >> >>> >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel <[hidden email]>: >> >> >>> On 10/3/17, H. Hirzel wrote: >> >> >>> > Dave >> >> >>> > >> >> >>> > your change set contains the class EtoysProject with >> >> >>> > >> >> >>> > EtoysProject selectors >> >> >>> > >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences >> >> >>> > #saveGlobalPreferences >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry >> >> >>> > #finalExitActions:) >> >> >>> > >> >> >>> > For complete configuration of a EtoysProject it might be >> >> >>> > necessary >> >> >>> > to >> >> >>> > do >> >> >>> > >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph >> >> >>> > >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 >> >> >>> > >> >> >>> > Then Etoys related methods may be pushed down to >> >> >>> > EtoysPasteUpMorph. >> >> >>> >> >> >>> See screen shot attached. >> >> >>> >> >> >>> > And probably an Etoys specific subclass of WorldMenu would be >> >> >>> > fine >> >> >>> > as >> >> >>> well >> >> >>> > http://wiki.squeak.org/squeak/6461 >> >> >>> > >> >> >>> > >> >> >>> > there is a test project [2] and some more information about >> >> >>> > adaptions >> >> >>> > needed because of the UI changes in the thread 'Etoys in 2017?' - >> >> >>> > UI >> >> >>> > preferences [3]. And it would be good to have Etoys methods / >> >> >>> > configuration separate [4]. >> >> >>> > >> >> >>> > I suggest that you start go ahead and start implementing this >> >> >>> > while >> >> >>> > using a test Etoys project dropped onto the desktop. >> >> >>> > >> >> >>> > --Hannes >> >> >>> > >> >> >>> > >> >> >>> > [2] > You simply drop it in. E.g. download this project >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >> >> >>> > >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, 2017 at >> >> >>> > 11:01 >> >> >>> > AM >> >> >>> > >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM >> >> >>> > "I think it would be great if both Etoys and Scratch were easily >> >> >>> > loadable and unloadable in trunk." >> >> >>> > >> >> >>> > On 10/2/17, David T. Lewis wrote: >> >> >>> >> An EtoysProject is a project that is configured for running >> >> >>> >> Etoys. >> >> >>> >> On >> >> >>> >> first entry to a new EtoysProject, the playground and project >> >> >>> preferences >> >> >>> >> are initialized to provide an environment similar to that of a >> >> >>> >> traditional >> >> >>> >> standalone Etoys image. >> >> >>> >> >> >> >>> >> Certain preferences that are required for Etoys are initialized >> >> >>> >> on >> >> >>> >> project >> >> >>> >> entry, overriding their global preference values while this >> >> >>> EtoysProject >> >> >>> >> is active. On leaving the project, these preferences are >> >> >>> >> restored >> >> >>> >> to >> >> >>> >> their >> >> >>> >> previous values. >> >> >>> >> >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" >> >> >>> >> >> >> >>> >> Change set attached for a minimal implementation. >> >> >>> >> >> >> >>> >> Anyone with Etoys knowledge care to help? I do not know enough >> >> >>> >> about >> >> >>> >> Etoys >> >> >>> >> to fill in the rest of the initialization that will be required, >> >> >>> >> but >> >> >>> >> it >> >> >>> >> should not be hard to do. >> >> >>> >> >> >> >>> >> Dave >> >> >>> >> >> >> >>> >> >> >> >>> > >> >> >>> >> >> >>> >> >> >>> >> >> >>> >> >> >>> >> >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> > > |
On Thu, Oct 05, 2017 at 02:03:47AM +0200, H. Hirzel wrote:
> Dave > > Earlier today login worked. Currently it does not. Hannes, Thanks for confirming. I sent some updates to the box-admins list and a notification to squeak-dev. Dave > > On 10/5/17, David T. Lewis <[hidden email]> wrote: > > Hannes, > > > > You did not cause the problem. It may have been me, I saved the > > squeaksource.com > > image from a VNC session (because I wanted to make an up to date backup of > > it), > > and I am now unable to log in to squeaksource. Maybe I triggered a bug :-/ > > > > Can you please tell me if you are able to log in to your > > http://squeaksource.com > > page? I am getting authorization errors, and I suspect it is a problem that > > affects > > everyone. > > > > Thanks, > > Dave > > > > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: > >> Dave, > >> > >> Yes, I encounter problems. They might be related to what I just tried to > >> do: > >> > >> I wanted to save an updated version of Morphic to the ProjectEtoys > >> repository but by mistake I tried to commit it to the trunk. As I do > >> not have commit rights to trunk this prevented me from changing it > >> inadvertently. Later on I wanted to commit that version to > >> ProjectEtoys. It did not work. > >> > >> --Hannes > >> > >> > >> > >> On 10/5/17, David T. Lewis <[hidden email]> wrote: > >> > I'm seeing problems with SqueakSource right now, trying to figure out > >> > what is wrong. So the project may not be accessible right now :-/ > >> > > >> > Dave > >> > > >> > > >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: > >> >> Karl, > >> >> > >> >> So far entering and existing the Etoys project works smoothly. > >> >> > >> >> Load mcz from into current Squeak 6.0a > >> >> > >> >> MCHttpRepository > >> >> location: 'http://www.squeaksource.com/EtoysProject' > >> >> user: '' > >> >> password: '' > >> >> > >> >> The issue is about providing more settings when entering. > >> >> > >> >> Karl, do you want to be added to the list of developers? > >> >> > >> >> --HH > >> >> > >> >> On 10/5/17, H. Hirzel <[hidden email]> wrote: > >> >> > PasteUpMorph is useful and the functions have to be maintained. > >> >> > > >> >> > However adding more functions to Morph does not make sense. > >> >> > > >> >> > Squeak 6.0a > >> >> > Morph selectors size 1345 > >> >> > PasteUpMorph selectors size 530 > >> >> > > >> >> > --Hannes > >> >> > > >> >> > On 10/4/17, karl ramberg <[hidden email]> wrote: > >> >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph is very > >> >> >> useful > >> >> >> in > >> >> >> direct manipulation because of it's various layout and event > >> >> >> handling > >> >> >> options. It also act as a container of other morphs, with automatic > >> >> >> layout, enumeration etc. > >> >> >> I'm sure most of this could be refactored into Morph class or > >> >> >> another > >> >> >> class. > >> >> >> > >> >> >> Best, > >> >> >> Karl > >> >> >> > >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel > >> >> >> <[hidden email]> > >> >> >> wrote: > >> >> >> > >> >> >>> +1 :) > >> >> >>> > >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and keep an > >> >> >>> empty > >> >> >>> PasteUpMorph subclass around for compatibility reasons. So many > >> >> >>> ideas > >> >> >>> have > >> >> >>> been ported down to Morph class over the past years. New > >> >> >>> applications > >> >> >>> have > >> >> >>> no reason to ever use other instances of PasteUpMorph. > >> >> >>> > >> >> >>> Best, > >> >> >>> Marcel > >> >> >>> > >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel <[hidden email]>: > >> >> >>> On 10/3/17, H. Hirzel wrote: > >> >> >>> > Dave > >> >> >>> > > >> >> >>> > your change set contains the class EtoysProject with > >> >> >>> > > >> >> >>> > EtoysProject selectors > >> >> >>> > > >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences > >> >> >>> > #saveGlobalPreferences > >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry > >> >> >>> > #finalExitActions:) > >> >> >>> > > >> >> >>> > For complete configuration of a EtoysProject it might be > >> >> >>> > necessary > >> >> >>> > to > >> >> >>> > do > >> >> >>> > > >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph > >> >> >>> > > >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 > >> >> >>> > > >> >> >>> > Then Etoys related methods may be pushed down to > >> >> >>> > EtoysPasteUpMorph. > >> >> >>> > >> >> >>> See screen shot attached. > >> >> >>> > >> >> >>> > And probably an Etoys specific subclass of WorldMenu would be > >> >> >>> > fine > >> >> >>> > as > >> >> >>> well > >> >> >>> > http://wiki.squeak.org/squeak/6461 > >> >> >>> > > >> >> >>> > > >> >> >>> > there is a test project [2] and some more information about > >> >> >>> > adaptions > >> >> >>> > needed because of the UI changes in the thread 'Etoys in 2017?' - > >> >> >>> > UI > >> >> >>> > preferences [3]. And it would be good to have Etoys methods / > >> >> >>> > configuration separate [4]. > >> >> >>> > > >> >> >>> > I suggest that you start go ahead and start implementing this > >> >> >>> > while > >> >> >>> > using a test Etoys project dropped onto the desktop. > >> >> >>> > > >> >> >>> > --Hannes > >> >> >>> > > >> >> >>> > > >> >> >>> > [2] > You simply drop it in. E.g. download this project > >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr > >> >> >>> > > >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, 2017 at > >> >> >>> > 11:01 > >> >> >>> > AM > >> >> >>> > > >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM > >> >> >>> > "I think it would be great if both Etoys and Scratch were easily > >> >> >>> > loadable and unloadable in trunk." > >> >> >>> > > >> >> >>> > On 10/2/17, David T. Lewis wrote: > >> >> >>> >> An EtoysProject is a project that is configured for running > >> >> >>> >> Etoys. > >> >> >>> >> On > >> >> >>> >> first entry to a new EtoysProject, the playground and project > >> >> >>> preferences > >> >> >>> >> are initialized to provide an environment similar to that of a > >> >> >>> >> traditional > >> >> >>> >> standalone Etoys image. > >> >> >>> >> > >> >> >>> >> Certain preferences that are required for Etoys are initialized > >> >> >>> >> on > >> >> >>> >> project > >> >> >>> >> entry, overriding their global preference values while this > >> >> >>> EtoysProject > >> >> >>> >> is active. On leaving the project, these preferences are > >> >> >>> >> restored > >> >> >>> >> to > >> >> >>> >> their > >> >> >>> >> previous values. > >> >> >>> >> > >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" > >> >> >>> >> > >> >> >>> >> Change set attached for a minimal implementation. > >> >> >>> >> > >> >> >>> >> Anyone with Etoys knowledge care to help? I do not know enough > >> >> >>> >> about > >> >> >>> >> Etoys > >> >> >>> >> to fill in the rest of the initialization that will be required, > >> >> >>> >> but > >> >> >>> >> it > >> >> >>> >> should not be hard to do. > >> >> >>> >> > >> >> >>> >> Dave > >> >> >>> >> > >> >> >>> >> > >> >> >>> > > >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> > >> >> >> > >> >> > > >> > > >> > > >> >> > >> > > >> > > >> > > >> > > > > > |
In reply to this post by Hannes Hirzel
We did have a problem on squeaksource.com, but I think it is mostly resolved now.
Hannes, The password reset for your HJH account was lost, so I set it back to the new password that I sent to you earlier in private email. Hopefully your access is working again now. Marcel, Your new account disappeared when squeaksource recovered from some internal problem. Sorry, I do not know the cause. But could I ask you to please register again on squeaksource.com, and I will then add you back to EtoysProject? Sorry for the disruption, Dave On Thu, Oct 05, 2017 at 02:03:47AM +0200, H. Hirzel wrote: > Dave > > Earlier today login worked. Currently it does not. > > --Hannes > > On 10/5/17, David T. Lewis <[hidden email]> wrote: > > Hannes, > > > > You did not cause the problem. It may have been me, I saved the > > squeaksource.com > > image from a VNC session (because I wanted to make an up to date backup of > > it), > > and I am now unable to log in to squeaksource. Maybe I triggered a bug :-/ > > > > Can you please tell me if you are able to log in to your > > http://squeaksource.com > > page? I am getting authorization errors, and I suspect it is a problem that > > affects > > everyone. > > > > Thanks, > > Dave > > > > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: > >> Dave, > >> > >> Yes, I encounter problems. They might be related to what I just tried to > >> do: > >> > >> I wanted to save an updated version of Morphic to the ProjectEtoys > >> repository but by mistake I tried to commit it to the trunk. As I do > >> not have commit rights to trunk this prevented me from changing it > >> inadvertently. Later on I wanted to commit that version to > >> ProjectEtoys. It did not work. > >> > >> --Hannes > >> > >> > >> > >> On 10/5/17, David T. Lewis <[hidden email]> wrote: > >> > I'm seeing problems with SqueakSource right now, trying to figure out > >> > what is wrong. So the project may not be accessible right now :-/ > >> > > >> > Dave > >> > > >> > > >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: > >> >> Karl, > >> >> > >> >> So far entering and existing the Etoys project works smoothly. > >> >> > >> >> Load mcz from into current Squeak 6.0a > >> >> > >> >> MCHttpRepository > >> >> location: 'http://www.squeaksource.com/EtoysProject' > >> >> user: '' > >> >> password: '' > >> >> > >> >> The issue is about providing more settings when entering. > >> >> > >> >> Karl, do you want to be added to the list of developers? > >> >> > >> >> --HH > >> >> > >> >> On 10/5/17, H. Hirzel <[hidden email]> wrote: > >> >> > PasteUpMorph is useful and the functions have to be maintained. > >> >> > > >> >> > However adding more functions to Morph does not make sense. > >> >> > > >> >> > Squeak 6.0a > >> >> > Morph selectors size 1345 > >> >> > PasteUpMorph selectors size 530 > >> >> > > >> >> > --Hannes > >> >> > > >> >> > On 10/4/17, karl ramberg <[hidden email]> wrote: > >> >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph is very > >> >> >> useful > >> >> >> in > >> >> >> direct manipulation because of it's various layout and event > >> >> >> handling > >> >> >> options. It also act as a container of other morphs, with automatic > >> >> >> layout, enumeration etc. > >> >> >> I'm sure most of this could be refactored into Morph class or > >> >> >> another > >> >> >> class. > >> >> >> > >> >> >> Best, > >> >> >> Karl > >> >> >> > >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel > >> >> >> <[hidden email]> > >> >> >> wrote: > >> >> >> > >> >> >>> +1 :) > >> >> >>> > >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and keep an > >> >> >>> empty > >> >> >>> PasteUpMorph subclass around for compatibility reasons. So many > >> >> >>> ideas > >> >> >>> have > >> >> >>> been ported down to Morph class over the past years. New > >> >> >>> applications > >> >> >>> have > >> >> >>> no reason to ever use other instances of PasteUpMorph. > >> >> >>> > >> >> >>> Best, > >> >> >>> Marcel > >> >> >>> > >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel <[hidden email]>: > >> >> >>> On 10/3/17, H. Hirzel wrote: > >> >> >>> > Dave > >> >> >>> > > >> >> >>> > your change set contains the class EtoysProject with > >> >> >>> > > >> >> >>> > EtoysProject selectors > >> >> >>> > > >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences > >> >> >>> > #saveGlobalPreferences > >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry > >> >> >>> > #finalExitActions:) > >> >> >>> > > >> >> >>> > For complete configuration of a EtoysProject it might be > >> >> >>> > necessary > >> >> >>> > to > >> >> >>> > do > >> >> >>> > > >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph > >> >> >>> > > >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 > >> >> >>> > > >> >> >>> > Then Etoys related methods may be pushed down to > >> >> >>> > EtoysPasteUpMorph. > >> >> >>> > >> >> >>> See screen shot attached. > >> >> >>> > >> >> >>> > And probably an Etoys specific subclass of WorldMenu would be > >> >> >>> > fine > >> >> >>> > as > >> >> >>> well > >> >> >>> > http://wiki.squeak.org/squeak/6461 > >> >> >>> > > >> >> >>> > > >> >> >>> > there is a test project [2] and some more information about > >> >> >>> > adaptions > >> >> >>> > needed because of the UI changes in the thread 'Etoys in 2017?' - > >> >> >>> > UI > >> >> >>> > preferences [3]. And it would be good to have Etoys methods / > >> >> >>> > configuration separate [4]. > >> >> >>> > > >> >> >>> > I suggest that you start go ahead and start implementing this > >> >> >>> > while > >> >> >>> > using a test Etoys project dropped onto the desktop. > >> >> >>> > > >> >> >>> > --Hannes > >> >> >>> > > >> >> >>> > > >> >> >>> > [2] > You simply drop it in. E.g. download this project > >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr > >> >> >>> > > >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, 2017 at > >> >> >>> > 11:01 > >> >> >>> > AM > >> >> >>> > > >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM > >> >> >>> > "I think it would be great if both Etoys and Scratch were easily > >> >> >>> > loadable and unloadable in trunk." > >> >> >>> > > >> >> >>> > On 10/2/17, David T. Lewis wrote: > >> >> >>> >> An EtoysProject is a project that is configured for running > >> >> >>> >> Etoys. > >> >> >>> >> On > >> >> >>> >> first entry to a new EtoysProject, the playground and project > >> >> >>> preferences > >> >> >>> >> are initialized to provide an environment similar to that of a > >> >> >>> >> traditional > >> >> >>> >> standalone Etoys image. > >> >> >>> >> > >> >> >>> >> Certain preferences that are required for Etoys are initialized > >> >> >>> >> on > >> >> >>> >> project > >> >> >>> >> entry, overriding their global preference values while this > >> >> >>> EtoysProject > >> >> >>> >> is active. On leaving the project, these preferences are > >> >> >>> >> restored > >> >> >>> >> to > >> >> >>> >> their > >> >> >>> >> previous values. > >> >> >>> >> > >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" > >> >> >>> >> > >> >> >>> >> Change set attached for a minimal implementation. > >> >> >>> >> > >> >> >>> >> Anyone with Etoys knowledge care to help? I do not know enough > >> >> >>> >> about > >> >> >>> >> Etoys > >> >> >>> >> to fill in the rest of the initialization that will be required, > >> >> >>> >> but > >> >> >>> >> it > >> >> >>> >> should not be hard to do. > >> >> >>> >> > >> >> >>> >> Dave > >> >> >>> >> > >> >> >>> >> > >> >> >>> > > >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> > >> >> >> > >> >> > > >> > > >> > > >> >> > >> > > >> > > >> > > >> > > > > > |
Done. :) Best, Marcel
|
I added a demo file Morphic-hjh.1354 [11] to the repository
MCHttpRepository location: 'http://www.squeaksource.com/EtoysProject' user: '' password: '' This file should be loaded into a fully updated trunk test image. I agree with what Tobias noted earlier in this thread that it is probably better to avoid renaming PasteUpMorph. I see as a solution to easier deal with PasteUpMorph functions the insertion of superclasses of PasteUpMorph (and thus subclasses of BorderedMorph) [12] The next thing I will come up with is a class MorphWithDnD a morph class which supports drag and drop. As a superclass of MorphWithGrid A third class would be PlayField which contains all the Etoys selectors. In an image without Etoys that class would then be just empty. --Hannes -------------------- [11] Name: Morphic-hjh.1354 Author: hjh Time: 5 October 2017, 11:51:21.903338 am UUID: e96d5a46-453f-418c-b95f-26f1674ca329 Ancestors: Morphic-hjh.1353 Demo which shows how to remove selectors from PasteUpMorph and insert them into a newy created superclass Inserted MorphWithGrid as a subclass of BorderedMorph and superclass of PasteUpMorph gridding protocol was moved from PasteUpMorph to MorphWithGrid Morphic-hjh.1353: Ancestors: Morphic-hjh.1352 Note: I tried to save this update several times. That accounts for the empty updates in between. --------- [12] After filing in Morphic-hjh.1354 PasteUpMorph printHierarchy ' ProtoObject #() Object #() Morph #() BorderedMorph #() MorphWithGrid #(''griddingOn'') PasteUpMorph #(...) ComponentLayout #(...) EventTimeline #(...) GeeBookPageMorph #(...) IndexTabs #(...) MouseEventEditor #(...) PartsBin #(...) QuickGuideHolderMorph #(...) SyntaxTestMethods #(...) TetrisBoard #(...) TextPlusPasteUpMorph #(...) WiWPasteUpMorph #(...) MVCWiWPasteUpMorph #(...) Worldlet #(...) ZASMScriptMorph #(...) ZoomAndScrollMorph #(...)' On 10/5/17, Marcel Taeumel <[hidden email]> wrote: > Done. :) > > Best, > Marcel > Am 05.10.2017 06:21:44 schrieb David T. Lewis <[hidden email]>: > We did have a problem on squeaksource.com, but I think it is mostly resolved > now. > > Hannes, > > The password reset for your HJH account was lost, so I set it back to the > new password that I sent to you earlier in private email. Hopefully your > access is working again now. > > Marcel, > > Your new account disappeared when squeaksource recovered from some internal > problem. Sorry, I do not know the cause. But could I ask you to please > register > again on squeaksource.com, and I will then add you back to EtoysProject? > > Sorry for the disruption, > Dave > > > On Thu, Oct 05, 2017 at 02:03:47AM +0200, H. Hirzel wrote: >> Dave >> >> Earlier today login worked. Currently it does not. >> >> --Hannes >> >> On 10/5/17, David T. Lewis wrote: >> > Hannes, >> > >> > You did not cause the problem. It may have been me, I saved the >> > squeaksource.com >> > image from a VNC session (because I wanted to make an up to date backup >> > of >> > it), >> > and I am now unable to log in to squeaksource. Maybe I triggered a bug >> > :-/ >> > >> > Can you please tell me if you are able to log in to your >> > http://squeaksource.com >> > page? I am getting authorization errors, and I suspect it is a problem >> > that >> > affects >> > everyone. >> > >> > Thanks, >> > Dave >> > >> > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: >> >> Dave, >> >> >> >> Yes, I encounter problems. They might be related to what I just tried >> >> to >> >> do: >> >> >> >> I wanted to save an updated version of Morphic to the ProjectEtoys >> >> repository but by mistake I tried to commit it to the trunk. As I do >> >> not have commit rights to trunk this prevented me from changing it >> >> inadvertently. Later on I wanted to commit that version to >> >> ProjectEtoys. It did not work. >> >> >> >> --Hannes >> >> >> >> >> >> >> >> On 10/5/17, David T. Lewis wrote: >> >> > I'm seeing problems with SqueakSource right now, trying to figure >> >> > out >> >> > what is wrong. So the project may not be accessible right now :-/ >> >> > >> >> > Dave >> >> > >> >> > >> >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: >> >> >> Karl, >> >> >> >> >> >> So far entering and existing the Etoys project works smoothly. >> >> >> >> >> >> Load mcz from into current Squeak 6.0a >> >> >> >> >> >> MCHttpRepository >> >> >> location: 'http://www.squeaksource.com/EtoysProject' >> >> >> user: '' >> >> >> password: '' >> >> >> >> >> >> The issue is about providing more settings when entering. >> >> >> >> >> >> Karl, do you want to be added to the list of developers? >> >> >> >> >> >> --HH >> >> >> >> >> >> On 10/5/17, H. Hirzel wrote: >> >> >> > PasteUpMorph is useful and the functions have to be maintained. >> >> >> > >> >> >> > However adding more functions to Morph does not make sense. >> >> >> > >> >> >> > Squeak 6.0a >> >> >> > Morph selectors size 1345 >> >> >> > PasteUpMorph selectors size 530 >> >> >> > >> >> >> > --Hannes >> >> >> > >> >> >> > On 10/4/17, karl ramberg wrote: >> >> >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph is >> >> >> >> very >> >> >> >> useful >> >> >> >> in >> >> >> >> direct manipulation because of it's various layout and event >> >> >> >> handling >> >> >> >> options. It also act as a container of other morphs, with >> >> >> >> automatic >> >> >> >> layout, enumeration etc. >> >> >> >> I'm sure most of this could be refactored into Morph class or >> >> >> >> another >> >> >> >> class. >> >> >> >> >> >> >> >> Best, >> >> >> >> Karl >> >> >> >> >> >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel >> >> >> >> >> >> >> >> wrote: >> >> >> >> >> >> >> >>> +1 :) >> >> >> >>> >> >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and keep an >> >> >> >>> empty >> >> >> >>> PasteUpMorph subclass around for compatibility reasons. So many >> >> >> >>> ideas >> >> >> >>> have >> >> >> >>> been ported down to Morph class over the past years. New >> >> >> >>> applications >> >> >> >>> have >> >> >> >>> no reason to ever use other instances of PasteUpMorph. >> >> >> >>> >> >> >> >>> Best, >> >> >> >>> Marcel >> >> >> >>> >> >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel : >> >> >> >>> On 10/3/17, H. Hirzel wrote: >> >> >> >>> > Dave >> >> >> >>> > >> >> >> >>> > your change set contains the class EtoysProject with >> >> >> >>> > >> >> >> >>> > EtoysProject selectors >> >> >> >>> > >> >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences >> >> >> >>> > #saveGlobalPreferences >> >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry >> >> >> >>> > #finalExitActions:) >> >> >> >>> > >> >> >> >>> > For complete configuration of a EtoysProject it might be >> >> >> >>> > necessary >> >> >> >>> > to >> >> >> >>> > do >> >> >> >>> > >> >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph >> >> >> >>> > >> >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 >> >> >> >>> > >> >> >> >>> > Then Etoys related methods may be pushed down to >> >> >> >>> > EtoysPasteUpMorph. >> >> >> >>> >> >> >> >>> See screen shot attached. >> >> >> >>> >> >> >> >>> > And probably an Etoys specific subclass of WorldMenu would be >> >> >> >>> > fine >> >> >> >>> > as >> >> >> >>> well >> >> >> >>> > http://wiki.squeak.org/squeak/6461 >> >> >> >>> > >> >> >> >>> > >> >> >> >>> > there is a test project [2] and some more information about >> >> >> >>> > adaptions >> >> >> >>> > needed because of the UI changes in the thread 'Etoys in >> >> >> >>> > 2017?' - >> >> >> >>> > UI >> >> >> >>> > preferences [3]. And it would be good to have Etoys methods / >> >> >> >>> > configuration separate [4]. >> >> >> >>> > >> >> >> >>> > I suggest that you start go ahead and start implementing this >> >> >> >>> > while >> >> >> >>> > using a test Etoys project dropped onto the desktop. >> >> >> >>> > >> >> >> >>> > --Hannes >> >> >> >>> > >> >> >> >>> > >> >> >> >>> > [2] > You simply drop it in. E.g. download this project >> >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >> >> >> >>> > >> >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, 2017 >> >> >> >>> > at >> >> >> >>> > 11:01 >> >> >> >>> > AM >> >> >> >>> > >> >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM >> >> >> >>> > "I think it would be great if both Etoys and Scratch were >> >> >> >>> > easily >> >> >> >>> > loadable and unloadable in trunk." >> >> >> >>> > >> >> >> >>> > On 10/2/17, David T. Lewis wrote: >> >> >> >>> >> An EtoysProject is a project that is configured for running >> >> >> >>> >> Etoys. >> >> >> >>> >> On >> >> >> >>> >> first entry to a new EtoysProject, the playground and >> >> >> >>> >> project >> >> >> >>> preferences >> >> >> >>> >> are initialized to provide an environment similar to that of >> >> >> >>> >> a >> >> >> >>> >> traditional >> >> >> >>> >> standalone Etoys image. >> >> >> >>> >> >> >> >> >>> >> Certain preferences that are required for Etoys are >> >> >> >>> >> initialized >> >> >> >>> >> on >> >> >> >>> >> project >> >> >> >>> >> entry, overriding their global preference values while this >> >> >> >>> EtoysProject >> >> >> >>> >> is active. On leaving the project, these preferences are >> >> >> >>> >> restored >> >> >> >>> >> to >> >> >> >>> >> their >> >> >> >>> >> previous values. >> >> >> >>> >> >> >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" >> >> >> >>> >> >> >> >> >>> >> Change set attached for a minimal implementation. >> >> >> >>> >> >> >> >> >>> >> Anyone with Etoys knowledge care to help? I do not know >> >> >> >>> >> enough >> >> >> >>> >> about >> >> >> >>> >> Etoys >> >> >> >>> >> to fill in the rest of the initialization that will be >> >> >> >>> >> required, >> >> >> >>> >> but >> >> >> >>> >> it >> >> >> >>> >> should not be hard to do. >> >> >> >>> >> >> >> >> >>> >> Dave >> >> >> >>> >> >> >> >> >>> >> >> >> >> >>> > >> >> >> >>> >> >> >> >>> >> >> >> >>> >> >> >> >>> >> >> >> >>> >> >> >> >> >> >> >> > >> >> > >> >> > >> >> >> >> >> > >> >> > >> >> > >> >> >> > >> > >> > > |
Note: MorphWithGrid does not really make sense unless you have a
superclass MorphWithDnD (Drag and Drop) which handles the morph droped and makes them 'sticky'. Though refactoring PastUpMorph by inserting superclasses is an issue I suggest to put this on the backburner at the moment and focus on getting the Etoys setting straight as Dave suggests in the initial mail. A use case to follow: What happens when you drop the exapme project http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr on to the desktop. ExternalDropHandler>>handleDroppedItem:event: [21] is called in this case and then dispatches to do the necessary things to deal with the ExampleEtoys/CarAndPen.014.pr file. There is a message box which needs attention. And I assume that in the course of these events some settings are necessary. Most prominently to choose EtoysProject and no longer MorphicProject --Hannes [21] http://wiki.squeak.org/squeak/4283 On 10/5/17, H. Hirzel <[hidden email]> wrote: > I added a demo file Morphic-hjh.1354 [11] to the repository > > MCHttpRepository > location: 'http://www.squeaksource.com/EtoysProject' > user: '' > password: '' > > This file should be loaded into a fully updated trunk test image. > > I agree with what Tobias noted earlier in this thread that it is > probably better to avoid renaming PasteUpMorph. I see as a solution to > easier deal with PasteUpMorph functions the insertion of superclasses > of PasteUpMorph (and thus subclasses of BorderedMorph) [12] > > The next thing I will come up with is a class > MorphWithDnD > > a morph class which supports drag and drop. > As a superclass of MorphWithGrid > > A third class would be PlayField which contains all the Etoys selectors. > In an image without Etoys that class would then be just empty. > > --Hannes > > > -------------------- > > [11] > Name: Morphic-hjh.1354 > Author: hjh > Time: 5 October 2017, 11:51:21.903338 am > UUID: e96d5a46-453f-418c-b95f-26f1674ca329 > Ancestors: Morphic-hjh.1353 > > Demo which shows how to remove selectors from PasteUpMorph and insert > them into a newy created superclass > > Inserted > MorphWithGrid > as a subclass of BorderedMorph and superclass of > PasteUpMorph > > gridding protocol was moved from > PasteUpMorph > to > MorphWithGrid > > > Morphic-hjh.1353: > Ancestors: Morphic-hjh.1352 > > Note: I tried to save this update several times. That accounts for the > empty updates in between. > > > --------- > [12] > After filing in Morphic-hjh.1354 > PasteUpMorph printHierarchy ' > ProtoObject #() > Object #() > Morph #() > BorderedMorph #() > MorphWithGrid #(''griddingOn'') > PasteUpMorph #(...) > ComponentLayout #(...) > EventTimeline #(...) > GeeBookPageMorph #(...) > IndexTabs #(...) > MouseEventEditor #(...) > PartsBin #(...) > QuickGuideHolderMorph #(...) > SyntaxTestMethods #(...) > TetrisBoard #(...) > TextPlusPasteUpMorph #(...) > WiWPasteUpMorph #(...) > MVCWiWPasteUpMorph #(...) > Worldlet #(...) > ZASMScriptMorph #(...) > ZoomAndScrollMorph #(...)' > > On 10/5/17, Marcel Taeumel <[hidden email]> wrote: >> Done. :) >> >> Best, >> Marcel >> Am 05.10.2017 06:21:44 schrieb David T. Lewis <[hidden email]>: >> We did have a problem on squeaksource.com, but I think it is mostly >> resolved >> now. >> >> Hannes, >> >> The password reset for your HJH account was lost, so I set it back to the >> new password that I sent to you earlier in private email. Hopefully your >> access is working again now. >> >> Marcel, >> >> Your new account disappeared when squeaksource recovered from some >> internal >> problem. Sorry, I do not know the cause. But could I ask you to please >> register >> again on squeaksource.com, and I will then add you back to EtoysProject? >> >> Sorry for the disruption, >> Dave >> >> >> On Thu, Oct 05, 2017 at 02:03:47AM +0200, H. Hirzel wrote: >>> Dave >>> >>> Earlier today login worked. Currently it does not. >>> >>> --Hannes >>> >>> On 10/5/17, David T. Lewis wrote: >>> > Hannes, >>> > >>> > You did not cause the problem. It may have been me, I saved the >>> > squeaksource.com >>> > image from a VNC session (because I wanted to make an up to date >>> > backup >>> > of >>> > it), >>> > and I am now unable to log in to squeaksource. Maybe I triggered a bug >>> > :-/ >>> > >>> > Can you please tell me if you are able to log in to your >>> > http://squeaksource.com >>> > page? I am getting authorization errors, and I suspect it is a problem >>> > that >>> > affects >>> > everyone. >>> > >>> > Thanks, >>> > Dave >>> > >>> > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: >>> >> Dave, >>> >> >>> >> Yes, I encounter problems. They might be related to what I just tried >>> >> to >>> >> do: >>> >> >>> >> I wanted to save an updated version of Morphic to the ProjectEtoys >>> >> repository but by mistake I tried to commit it to the trunk. As I do >>> >> not have commit rights to trunk this prevented me from changing it >>> >> inadvertently. Later on I wanted to commit that version to >>> >> ProjectEtoys. It did not work. >>> >> >>> >> --Hannes >>> >> >>> >> >>> >> >>> >> On 10/5/17, David T. Lewis wrote: >>> >> > I'm seeing problems with SqueakSource right now, trying to figure >>> >> > out >>> >> > what is wrong. So the project may not be accessible right now :-/ >>> >> > >>> >> > Dave >>> >> > >>> >> > >>> >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: >>> >> >> Karl, >>> >> >> >>> >> >> So far entering and existing the Etoys project works smoothly. >>> >> >> >>> >> >> Load mcz from into current Squeak 6.0a >>> >> >> >>> >> >> MCHttpRepository >>> >> >> location: 'http://www.squeaksource.com/EtoysProject' >>> >> >> user: '' >>> >> >> password: '' >>> >> >> >>> >> >> The issue is about providing more settings when entering. >>> >> >> >>> >> >> Karl, do you want to be added to the list of developers? >>> >> >> >>> >> >> --HH >>> >> >> >>> >> >> On 10/5/17, H. Hirzel wrote: >>> >> >> > PasteUpMorph is useful and the functions have to be maintained. >>> >> >> > >>> >> >> > However adding more functions to Morph does not make sense. >>> >> >> > >>> >> >> > Squeak 6.0a >>> >> >> > Morph selectors size 1345 >>> >> >> > PasteUpMorph selectors size 530 >>> >> >> > >>> >> >> > --Hannes >>> >> >> > >>> >> >> > On 10/4/17, karl ramberg wrote: >>> >> >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph is >>> >> >> >> very >>> >> >> >> useful >>> >> >> >> in >>> >> >> >> direct manipulation because of it's various layout and event >>> >> >> >> handling >>> >> >> >> options. It also act as a container of other morphs, with >>> >> >> >> automatic >>> >> >> >> layout, enumeration etc. >>> >> >> >> I'm sure most of this could be refactored into Morph class or >>> >> >> >> another >>> >> >> >> class. >>> >> >> >> >>> >> >> >> Best, >>> >> >> >> Karl >>> >> >> >> >>> >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel >>> >> >> >> >>> >> >> >> wrote: >>> >> >> >> >>> >> >> >>> +1 :) >>> >> >> >>> >>> >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and keep an >>> >> >> >>> empty >>> >> >> >>> PasteUpMorph subclass around for compatibility reasons. So >>> >> >> >>> many >>> >> >> >>> ideas >>> >> >> >>> have >>> >> >> >>> been ported down to Morph class over the past years. New >>> >> >> >>> applications >>> >> >> >>> have >>> >> >> >>> no reason to ever use other instances of PasteUpMorph. >>> >> >> >>> >>> >> >> >>> Best, >>> >> >> >>> Marcel >>> >> >> >>> >>> >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel : >>> >> >> >>> On 10/3/17, H. Hirzel wrote: >>> >> >> >>> > Dave >>> >> >> >>> > >>> >> >> >>> > your change set contains the class EtoysProject with >>> >> >> >>> > >>> >> >> >>> > EtoysProject selectors >>> >> >> >>> > >>> >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences >>> >> >> >>> > #saveGlobalPreferences >>> >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry >>> >> >> >>> > #finalExitActions:) >>> >> >> >>> > >>> >> >> >>> > For complete configuration of a EtoysProject it might be >>> >> >> >>> > necessary >>> >> >> >>> > to >>> >> >> >>> > do >>> >> >> >>> > >>> >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph >>> >> >> >>> > >>> >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 >>> >> >> >>> > >>> >> >> >>> > Then Etoys related methods may be pushed down to >>> >> >> >>> > EtoysPasteUpMorph. >>> >> >> >>> >>> >> >> >>> See screen shot attached. >>> >> >> >>> >>> >> >> >>> > And probably an Etoys specific subclass of WorldMenu would >>> >> >> >>> > be >>> >> >> >>> > fine >>> >> >> >>> > as >>> >> >> >>> well >>> >> >> >>> > http://wiki.squeak.org/squeak/6461 >>> >> >> >>> > >>> >> >> >>> > >>> >> >> >>> > there is a test project [2] and some more information about >>> >> >> >>> > adaptions >>> >> >> >>> > needed because of the UI changes in the thread 'Etoys in >>> >> >> >>> > 2017?' - >>> >> >> >>> > UI >>> >> >> >>> > preferences [3]. And it would be good to have Etoys methods >>> >> >> >>> > / >>> >> >> >>> > configuration separate [4]. >>> >> >> >>> > >>> >> >> >>> > I suggest that you start go ahead and start implementing >>> >> >> >>> > this >>> >> >> >>> > while >>> >> >> >>> > using a test Etoys project dropped onto the desktop. >>> >> >> >>> > >>> >> >> >>> > --Hannes >>> >> >> >>> > >>> >> >> >>> > >>> >> >> >>> > [2] > You simply drop it in. E.g. download this project >>> >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>> >> >> >>> > >>> >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, 2017 >>> >> >> >>> > at >>> >> >> >>> > 11:01 >>> >> >> >>> > AM >>> >> >> >>> > >>> >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM >>> >> >> >>> > "I think it would be great if both Etoys and Scratch were >>> >> >> >>> > easily >>> >> >> >>> > loadable and unloadable in trunk." >>> >> >> >>> > >>> >> >> >>> > On 10/2/17, David T. Lewis wrote: >>> >> >> >>> >> An EtoysProject is a project that is configured for running >>> >> >> >>> >> Etoys. >>> >> >> >>> >> On >>> >> >> >>> >> first entry to a new EtoysProject, the playground and >>> >> >> >>> >> project >>> >> >> >>> preferences >>> >> >> >>> >> are initialized to provide an environment similar to that >>> >> >> >>> >> of >>> >> >> >>> >> a >>> >> >> >>> >> traditional >>> >> >> >>> >> standalone Etoys image. >>> >> >> >>> >> >>> >> >> >>> >> Certain preferences that are required for Etoys are >>> >> >> >>> >> initialized >>> >> >> >>> >> on >>> >> >> >>> >> project >>> >> >> >>> >> entry, overriding their global preference values while this >>> >> >> >>> EtoysProject >>> >> >> >>> >> is active. On leaving the project, these preferences are >>> >> >> >>> >> restored >>> >> >> >>> >> to >>> >> >> >>> >> their >>> >> >> >>> >> previous values. >>> >> >> >>> >> >>> >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" >>> >> >> >>> >> >>> >> >> >>> >> Change set attached for a minimal implementation. >>> >> >> >>> >> >>> >> >> >>> >> Anyone with Etoys knowledge care to help? I do not know >>> >> >> >>> >> enough >>> >> >> >>> >> about >>> >> >> >>> >> Etoys >>> >> >> >>> >> to fill in the rest of the initialization that will be >>> >> >> >>> >> required, >>> >> >> >>> >> but >>> >> >> >>> >> it >>> >> >> >>> >> should not be hard to do. >>> >> >> >>> >> >>> >> >> >>> >> Dave >>> >> >> >>> >> >>> >> >> >>> >> >>> >> >> >>> > >>> >> >> >>> >>> >> >> >>> >>> >> >> >>> >>> >> >> >>> >>> >> >> >>> >>> >> >> >> >>> >> >> > >>> >> > >>> >> > >>> >> >> >>> >> > >>> >> > >>> >> > >>> >> >>> > >>> > >>> >> >> > Dialog_After_Dropping_CarAndPen.014.pr_onto_desktop_2017-10-05.png (50K) Download Attachment |
A few steps more: when I drop a project file onto the desktop the
following methods are called PasteUpMorph handleDroppedItem: anItem event: anEvent ExternalDropHandler lookupExternalDropHandler: anItem ExternalDropHandler handle: dropStream in: pasteUp dropEvent: anEvent ExternalDropHandler class defaultProjectHandler ProjectLoading openOn: aMultiByteFileStream: "'/home/user/Downloads/CarAndPen.014(2).pr'" So we have to fix ProjectLoading On 10/5/17, H. Hirzel <[hidden email]> wrote: > Note: MorphWithGrid does not really make sense unless you have a > superclass MorphWithDnD (Drag and Drop) which handles the morph droped > and makes them 'sticky'. > > Though refactoring PastUpMorph by inserting superclasses is an issue I > suggest to put this on the backburner at the moment and focus on > getting the Etoys setting straight as Dave suggests in the initial > mail. > > A use case to follow: What happens when you drop the exapme project > > http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr > > on to the desktop. > > ExternalDropHandler>>handleDroppedItem:event: [21] > > is called in this case and then dispatches to do the necessary things > to deal with the > ExampleEtoys/CarAndPen.014.pr > file. > > There is a message box which needs attention. > > And I assume that in the course of these events some settings are > necessary. Most prominently to choose EtoysProject and no longer > MorphicProject > > --Hannes > > [21] http://wiki.squeak.org/squeak/4283 > > On 10/5/17, H. Hirzel <[hidden email]> wrote: >> I added a demo file Morphic-hjh.1354 [11] to the repository >> >> MCHttpRepository >> location: 'http://www.squeaksource.com/EtoysProject' >> user: '' >> password: '' >> >> This file should be loaded into a fully updated trunk test image. >> >> I agree with what Tobias noted earlier in this thread that it is >> probably better to avoid renaming PasteUpMorph. I see as a solution to >> easier deal with PasteUpMorph functions the insertion of superclasses >> of PasteUpMorph (and thus subclasses of BorderedMorph) [12] >> >> The next thing I will come up with is a class >> MorphWithDnD >> >> a morph class which supports drag and drop. >> As a superclass of MorphWithGrid >> >> A third class would be PlayField which contains all the Etoys selectors. >> In an image without Etoys that class would then be just empty. >> >> --Hannes >> >> >> -------------------- >> >> [11] >> Name: Morphic-hjh.1354 >> Author: hjh >> Time: 5 October 2017, 11:51:21.903338 am >> UUID: e96d5a46-453f-418c-b95f-26f1674ca329 >> Ancestors: Morphic-hjh.1353 >> >> Demo which shows how to remove selectors from PasteUpMorph and insert >> them into a newy created superclass >> >> Inserted >> MorphWithGrid >> as a subclass of BorderedMorph and superclass of >> PasteUpMorph >> >> gridding protocol was moved from >> PasteUpMorph >> to >> MorphWithGrid >> >> >> Morphic-hjh.1353: >> Ancestors: Morphic-hjh.1352 >> >> Note: I tried to save this update several times. That accounts for the >> empty updates in between. >> >> >> --------- >> [12] >> After filing in Morphic-hjh.1354 >> PasteUpMorph printHierarchy ' >> ProtoObject #() >> Object #() >> Morph #() >> BorderedMorph #() >> MorphWithGrid #(''griddingOn'') >> PasteUpMorph #(...) >> ComponentLayout #(...) >> EventTimeline #(...) >> GeeBookPageMorph #(...) >> IndexTabs #(...) >> MouseEventEditor #(...) >> PartsBin #(...) >> QuickGuideHolderMorph #(...) >> SyntaxTestMethods #(...) >> TetrisBoard #(...) >> TextPlusPasteUpMorph #(...) >> WiWPasteUpMorph #(...) >> MVCWiWPasteUpMorph #(...) >> Worldlet #(...) >> ZASMScriptMorph #(...) >> ZoomAndScrollMorph #(...)' >> >> On 10/5/17, Marcel Taeumel <[hidden email]> wrote: >>> Done. :) >>> >>> Best, >>> Marcel >>> Am 05.10.2017 06:21:44 schrieb David T. Lewis <[hidden email]>: >>> We did have a problem on squeaksource.com, but I think it is mostly >>> resolved >>> now. >>> >>> Hannes, >>> >>> The password reset for your HJH account was lost, so I set it back to >>> the >>> new password that I sent to you earlier in private email. Hopefully your >>> access is working again now. >>> >>> Marcel, >>> >>> Your new account disappeared when squeaksource recovered from some >>> internal >>> problem. Sorry, I do not know the cause. But could I ask you to please >>> register >>> again on squeaksource.com, and I will then add you back to EtoysProject? >>> >>> Sorry for the disruption, >>> Dave >>> >>> >>> On Thu, Oct 05, 2017 at 02:03:47AM +0200, H. Hirzel wrote: >>>> Dave >>>> >>>> Earlier today login worked. Currently it does not. >>>> >>>> --Hannes >>>> >>>> On 10/5/17, David T. Lewis wrote: >>>> > Hannes, >>>> > >>>> > You did not cause the problem. It may have been me, I saved the >>>> > squeaksource.com >>>> > image from a VNC session (because I wanted to make an up to date >>>> > backup >>>> > of >>>> > it), >>>> > and I am now unable to log in to squeaksource. Maybe I triggered a >>>> > bug >>>> > :-/ >>>> > >>>> > Can you please tell me if you are able to log in to your >>>> > http://squeaksource.com >>>> > page? I am getting authorization errors, and I suspect it is a >>>> > problem >>>> > that >>>> > affects >>>> > everyone. >>>> > >>>> > Thanks, >>>> > Dave >>>> > >>>> > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: >>>> >> Dave, >>>> >> >>>> >> Yes, I encounter problems. They might be related to what I just >>>> >> tried >>>> >> to >>>> >> do: >>>> >> >>>> >> I wanted to save an updated version of Morphic to the ProjectEtoys >>>> >> repository but by mistake I tried to commit it to the trunk. As I do >>>> >> not have commit rights to trunk this prevented me from changing it >>>> >> inadvertently. Later on I wanted to commit that version to >>>> >> ProjectEtoys. It did not work. >>>> >> >>>> >> --Hannes >>>> >> >>>> >> >>>> >> >>>> >> On 10/5/17, David T. Lewis wrote: >>>> >> > I'm seeing problems with SqueakSource right now, trying to figure >>>> >> > out >>>> >> > what is wrong. So the project may not be accessible right now :-/ >>>> >> > >>>> >> > Dave >>>> >> > >>>> >> > >>>> >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: >>>> >> >> Karl, >>>> >> >> >>>> >> >> So far entering and existing the Etoys project works smoothly. >>>> >> >> >>>> >> >> Load mcz from into current Squeak 6.0a >>>> >> >> >>>> >> >> MCHttpRepository >>>> >> >> location: 'http://www.squeaksource.com/EtoysProject' >>>> >> >> user: '' >>>> >> >> password: '' >>>> >> >> >>>> >> >> The issue is about providing more settings when entering. >>>> >> >> >>>> >> >> Karl, do you want to be added to the list of developers? >>>> >> >> >>>> >> >> --HH >>>> >> >> >>>> >> >> On 10/5/17, H. Hirzel wrote: >>>> >> >> > PasteUpMorph is useful and the functions have to be maintained. >>>> >> >> > >>>> >> >> > However adding more functions to Morph does not make sense. >>>> >> >> > >>>> >> >> > Squeak 6.0a >>>> >> >> > Morph selectors size 1345 >>>> >> >> > PasteUpMorph selectors size 530 >>>> >> >> > >>>> >> >> > --Hannes >>>> >> >> > >>>> >> >> > On 10/4/17, karl ramberg wrote: >>>> >> >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph is >>>> >> >> >> very >>>> >> >> >> useful >>>> >> >> >> in >>>> >> >> >> direct manipulation because of it's various layout and event >>>> >> >> >> handling >>>> >> >> >> options. It also act as a container of other morphs, with >>>> >> >> >> automatic >>>> >> >> >> layout, enumeration etc. >>>> >> >> >> I'm sure most of this could be refactored into Morph class or >>>> >> >> >> another >>>> >> >> >> class. >>>> >> >> >> >>>> >> >> >> Best, >>>> >> >> >> Karl >>>> >> >> >> >>>> >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel >>>> >> >> >> >>>> >> >> >> wrote: >>>> >> >> >> >>>> >> >> >>> +1 :) >>>> >> >> >>> >>>> >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and keep >>>> >> >> >>> an >>>> >> >> >>> empty >>>> >> >> >>> PasteUpMorph subclass around for compatibility reasons. So >>>> >> >> >>> many >>>> >> >> >>> ideas >>>> >> >> >>> have >>>> >> >> >>> been ported down to Morph class over the past years. New >>>> >> >> >>> applications >>>> >> >> >>> have >>>> >> >> >>> no reason to ever use other instances of PasteUpMorph. >>>> >> >> >>> >>>> >> >> >>> Best, >>>> >> >> >>> Marcel >>>> >> >> >>> >>>> >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel : >>>> >> >> >>> On 10/3/17, H. Hirzel wrote: >>>> >> >> >>> > Dave >>>> >> >> >>> > >>>> >> >> >>> > your change set contains the class EtoysProject with >>>> >> >> >>> > >>>> >> >> >>> > EtoysProject selectors >>>> >> >> >>> > >>>> >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences >>>> >> >> >>> > #saveGlobalPreferences >>>> >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry >>>> >> >> >>> > #finalExitActions:) >>>> >> >> >>> > >>>> >> >> >>> > For complete configuration of a EtoysProject it might be >>>> >> >> >>> > necessary >>>> >> >> >>> > to >>>> >> >> >>> > do >>>> >> >> >>> > >>>> >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph >>>> >> >> >>> > >>>> >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 >>>> >> >> >>> > >>>> >> >> >>> > Then Etoys related methods may be pushed down to >>>> >> >> >>> > EtoysPasteUpMorph. >>>> >> >> >>> >>>> >> >> >>> See screen shot attached. >>>> >> >> >>> >>>> >> >> >>> > And probably an Etoys specific subclass of WorldMenu would >>>> >> >> >>> > be >>>> >> >> >>> > fine >>>> >> >> >>> > as >>>> >> >> >>> well >>>> >> >> >>> > http://wiki.squeak.org/squeak/6461 >>>> >> >> >>> > >>>> >> >> >>> > >>>> >> >> >>> > there is a test project [2] and some more information about >>>> >> >> >>> > adaptions >>>> >> >> >>> > needed because of the UI changes in the thread 'Etoys in >>>> >> >> >>> > 2017?' - >>>> >> >> >>> > UI >>>> >> >> >>> > preferences [3]. And it would be good to have Etoys methods >>>> >> >> >>> > / >>>> >> >> >>> > configuration separate [4]. >>>> >> >> >>> > >>>> >> >> >>> > I suggest that you start go ahead and start implementing >>>> >> >> >>> > this >>>> >> >> >>> > while >>>> >> >> >>> > using a test Etoys project dropped onto the desktop. >>>> >> >> >>> > >>>> >> >> >>> > --Hannes >>>> >> >> >>> > >>>> >> >> >>> > >>>> >> >> >>> > [2] > You simply drop it in. E.g. download this project >>>> >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>>> >> >> >>> > >>>> >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, 2017 >>>> >> >> >>> > at >>>> >> >> >>> > 11:01 >>>> >> >> >>> > AM >>>> >> >> >>> > >>>> >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM >>>> >> >> >>> > "I think it would be great if both Etoys and Scratch were >>>> >> >> >>> > easily >>>> >> >> >>> > loadable and unloadable in trunk." >>>> >> >> >>> > >>>> >> >> >>> > On 10/2/17, David T. Lewis wrote: >>>> >> >> >>> >> An EtoysProject is a project that is configured for >>>> >> >> >>> >> running >>>> >> >> >>> >> Etoys. >>>> >> >> >>> >> On >>>> >> >> >>> >> first entry to a new EtoysProject, the playground and >>>> >> >> >>> >> project >>>> >> >> >>> preferences >>>> >> >> >>> >> are initialized to provide an environment similar to that >>>> >> >> >>> >> of >>>> >> >> >>> >> a >>>> >> >> >>> >> traditional >>>> >> >> >>> >> standalone Etoys image. >>>> >> >> >>> >> >>>> >> >> >>> >> Certain preferences that are required for Etoys are >>>> >> >> >>> >> initialized >>>> >> >> >>> >> on >>>> >> >> >>> >> project >>>> >> >> >>> >> entry, overriding their global preference values while >>>> >> >> >>> >> this >>>> >> >> >>> EtoysProject >>>> >> >> >>> >> is active. On leaving the project, these preferences are >>>> >> >> >>> >> restored >>>> >> >> >>> >> to >>>> >> >> >>> >> their >>>> >> >> >>> >> previous values. >>>> >> >> >>> >> >>>> >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" >>>> >> >> >>> >> >>>> >> >> >>> >> Change set attached for a minimal implementation. >>>> >> >> >>> >> >>>> >> >> >>> >> Anyone with Etoys knowledge care to help? I do not know >>>> >> >> >>> >> enough >>>> >> >> >>> >> about >>>> >> >> >>> >> Etoys >>>> >> >> >>> >> to fill in the rest of the initialization that will be >>>> >> >> >>> >> required, >>>> >> >> >>> >> but >>>> >> >> >>> >> it >>>> >> >> >>> >> should not be hard to do. >>>> >> >> >>> >> >>>> >> >> >>> >> Dave >>>> >> >> >>> >> >>>> >> >> >>> >> >>>> >> >> >>> > >>>> >> >> >>> >>>> >> >> >>> >>>> >> >> >>> >>>> >> >> >>> >>>> >> >> >>> >>>> >> >> >> >>>> >> >> > >>>> >> > >>>> >> > >>>> >> >> >>>> >> > >>>> >> > >>>> >> > >>>> >> >>>> > >>>> > >>>> >>> >>> >> > |
This later on goes to
ProjectLoading class>> openName: aFileName stream: preStream fromDirectory: aDirectoryOrNil withProjectView: existingView clearOriginFlag: clearOriginFlag "Reconstitute a Morph from the selected file, presumed to represent a Morph saved via the SmartRefStream mechanism, and open it in an appropriate Morphic world." | morphOrList archive mgr substituteFont numberOfFontSubstitutes resultArray anObject project manifests dict | (self checkStream: preStream) ifTrue: [^ self]. ProgressNotification signal: '0.2'. archive := preStream isZipArchive ifTrue:[ZipArchive new readFrom: preStream] ifFalse:[nil]. archive ifNotNil:[ manifests := (archive membersMatching: '*manifest'). (manifests size = 1 and: [((dict := self parseManifest: manifests first contents) at: 'Project-Format' ifAbsent: []) = 'S-Expression']) ifTrue: [ ^ (self respondsTo: #openSexpProjectDict:stream:fromDirectory:withProjectView:) ifTrue: [self openSexpProjectDict: dict stream: preStream fromDirectory: aDirectoryOrNil withProjectView: existingView] ifFalse: [self inform: 'Cannot load S-Expression format projects without Etoys' translated]]]. morphOrList := self morphOrList: aFileName stream: preStream fromDirectory: aDirectoryOrNil archive: archive. morphOrList ifNil: [^ self]. ProgressNotification signal: '0.4'. resultArray := self fileInName: aFileName archive: archive morphOrList: morphOrList. anObject := resultArray first. numberOfFontSubstitutes := resultArray second. substituteFont := resultArray third. mgr := resultArray fourth. preStream close. ProgressNotification signal: '0.7'. "the hard part is over" (anObject isKindOf: ImageSegment) ifTrue: [ project := self loadImageSegment: anObject fromDirectory: aDirectoryOrNil withProjectView: existingView numberOfFontSubstitutes: numberOfFontSubstitutes substituteFont: substituteFont mgr: mgr. project noteManifestDetailsIn: dict. project removeParameter: #sugarProperties. Smalltalk at: #SugarPropertiesNotification ifPresent: [:sp | sp signal ifNotNil: [:props | project keepSugarProperties: props monitor: true]]. clearOriginFlag ifTrue: [project forgetExistingURL]. ProgressNotification signal: '0.8'. ^ project ifNil: [self inform: 'No project found in this file' translated] ifNotNil: [ProjectEntryNotification signal: project]]. Project current openViewAndEnter: anObject On 10/5/17, H. Hirzel <[hidden email]> wrote: > A few steps more: when I drop a project file onto the desktop the > following methods are called > > PasteUpMorph handleDroppedItem: anItem event: anEvent > ExternalDropHandler lookupExternalDropHandler: anItem > ExternalDropHandler handle: dropStream in: pasteUp dropEvent: anEvent > ExternalDropHandler class defaultProjectHandler > > ProjectLoading openOn: aMultiByteFileStream: > "'/home/user/Downloads/CarAndPen.014(2).pr'" > > So we have to fix ProjectLoading > > > On 10/5/17, H. Hirzel <[hidden email]> wrote: >> Note: MorphWithGrid does not really make sense unless you have a >> superclass MorphWithDnD (Drag and Drop) which handles the morph droped >> and makes them 'sticky'. >> >> Though refactoring PastUpMorph by inserting superclasses is an issue I >> suggest to put this on the backburner at the moment and focus on >> getting the Etoys setting straight as Dave suggests in the initial >> mail. >> >> A use case to follow: What happens when you drop the exapme project >> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >> >> on to the desktop. >> >> ExternalDropHandler>>handleDroppedItem:event: [21] >> >> is called in this case and then dispatches to do the necessary things >> to deal with the >> ExampleEtoys/CarAndPen.014.pr >> file. >> >> There is a message box which needs attention. >> >> And I assume that in the course of these events some settings are >> necessary. Most prominently to choose EtoysProject and no longer >> MorphicProject >> >> --Hannes >> >> [21] http://wiki.squeak.org/squeak/4283 >> >> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>> I added a demo file Morphic-hjh.1354 [11] to the repository >>> >>> MCHttpRepository >>> location: 'http://www.squeaksource.com/EtoysProject' >>> user: '' >>> password: '' >>> >>> This file should be loaded into a fully updated trunk test image. >>> >>> I agree with what Tobias noted earlier in this thread that it is >>> probably better to avoid renaming PasteUpMorph. I see as a solution to >>> easier deal with PasteUpMorph functions the insertion of superclasses >>> of PasteUpMorph (and thus subclasses of BorderedMorph) [12] >>> >>> The next thing I will come up with is a class >>> MorphWithDnD >>> >>> a morph class which supports drag and drop. >>> As a superclass of MorphWithGrid >>> >>> A third class would be PlayField which contains all the Etoys selectors. >>> In an image without Etoys that class would then be just empty. >>> >>> --Hannes >>> >>> >>> -------------------- >>> >>> [11] >>> Name: Morphic-hjh.1354 >>> Author: hjh >>> Time: 5 October 2017, 11:51:21.903338 am >>> UUID: e96d5a46-453f-418c-b95f-26f1674ca329 >>> Ancestors: Morphic-hjh.1353 >>> >>> Demo which shows how to remove selectors from PasteUpMorph and insert >>> them into a newy created superclass >>> >>> Inserted >>> MorphWithGrid >>> as a subclass of BorderedMorph and superclass of >>> PasteUpMorph >>> >>> gridding protocol was moved from >>> PasteUpMorph >>> to >>> MorphWithGrid >>> >>> >>> Morphic-hjh.1353: >>> Ancestors: Morphic-hjh.1352 >>> >>> Note: I tried to save this update several times. That accounts for the >>> empty updates in between. >>> >>> >>> --------- >>> [12] >>> After filing in Morphic-hjh.1354 >>> PasteUpMorph printHierarchy ' >>> ProtoObject #() >>> Object #() >>> Morph #() >>> BorderedMorph #() >>> MorphWithGrid #(''griddingOn'') >>> PasteUpMorph #(...) >>> ComponentLayout #(...) >>> EventTimeline #(...) >>> GeeBookPageMorph #(...) >>> IndexTabs #(...) >>> MouseEventEditor #(...) >>> PartsBin #(...) >>> QuickGuideHolderMorph #(...) >>> SyntaxTestMethods #(...) >>> TetrisBoard #(...) >>> TextPlusPasteUpMorph #(...) >>> WiWPasteUpMorph #(...) >>> MVCWiWPasteUpMorph #(...) >>> Worldlet #(...) >>> ZASMScriptMorph #(...) >>> ZoomAndScrollMorph #(...)' >>> >>> On 10/5/17, Marcel Taeumel <[hidden email]> wrote: >>>> Done. :) >>>> >>>> Best, >>>> Marcel >>>> Am 05.10.2017 06:21:44 schrieb David T. Lewis <[hidden email]>: >>>> We did have a problem on squeaksource.com, but I think it is mostly >>>> resolved >>>> now. >>>> >>>> Hannes, >>>> >>>> The password reset for your HJH account was lost, so I set it back to >>>> the >>>> new password that I sent to you earlier in private email. Hopefully >>>> your >>>> access is working again now. >>>> >>>> Marcel, >>>> >>>> Your new account disappeared when squeaksource recovered from some >>>> internal >>>> problem. Sorry, I do not know the cause. But could I ask you to please >>>> register >>>> again on squeaksource.com, and I will then add you back to >>>> EtoysProject? >>>> >>>> Sorry for the disruption, >>>> Dave >>>> >>>> >>>> On Thu, Oct 05, 2017 at 02:03:47AM +0200, H. Hirzel wrote: >>>>> Dave >>>>> >>>>> Earlier today login worked. Currently it does not. >>>>> >>>>> --Hannes >>>>> >>>>> On 10/5/17, David T. Lewis wrote: >>>>> > Hannes, >>>>> > >>>>> > You did not cause the problem. It may have been me, I saved the >>>>> > squeaksource.com >>>>> > image from a VNC session (because I wanted to make an up to date >>>>> > backup >>>>> > of >>>>> > it), >>>>> > and I am now unable to log in to squeaksource. Maybe I triggered a >>>>> > bug >>>>> > :-/ >>>>> > >>>>> > Can you please tell me if you are able to log in to your >>>>> > http://squeaksource.com >>>>> > page? I am getting authorization errors, and I suspect it is a >>>>> > problem >>>>> > that >>>>> > affects >>>>> > everyone. >>>>> > >>>>> > Thanks, >>>>> > Dave >>>>> > >>>>> > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: >>>>> >> Dave, >>>>> >> >>>>> >> Yes, I encounter problems. They might be related to what I just >>>>> >> tried >>>>> >> to >>>>> >> do: >>>>> >> >>>>> >> I wanted to save an updated version of Morphic to the ProjectEtoys >>>>> >> repository but by mistake I tried to commit it to the trunk. As I >>>>> >> do >>>>> >> not have commit rights to trunk this prevented me from changing it >>>>> >> inadvertently. Later on I wanted to commit that version to >>>>> >> ProjectEtoys. It did not work. >>>>> >> >>>>> >> --Hannes >>>>> >> >>>>> >> >>>>> >> >>>>> >> On 10/5/17, David T. Lewis wrote: >>>>> >> > I'm seeing problems with SqueakSource right now, trying to figure >>>>> >> > out >>>>> >> > what is wrong. So the project may not be accessible right now :-/ >>>>> >> > >>>>> >> > Dave >>>>> >> > >>>>> >> > >>>>> >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: >>>>> >> >> Karl, >>>>> >> >> >>>>> >> >> So far entering and existing the Etoys project works smoothly. >>>>> >> >> >>>>> >> >> Load mcz from into current Squeak 6.0a >>>>> >> >> >>>>> >> >> MCHttpRepository >>>>> >> >> location: 'http://www.squeaksource.com/EtoysProject' >>>>> >> >> user: '' >>>>> >> >> password: '' >>>>> >> >> >>>>> >> >> The issue is about providing more settings when entering. >>>>> >> >> >>>>> >> >> Karl, do you want to be added to the list of developers? >>>>> >> >> >>>>> >> >> --HH >>>>> >> >> >>>>> >> >> On 10/5/17, H. Hirzel wrote: >>>>> >> >> > PasteUpMorph is useful and the functions have to be >>>>> >> >> > maintained. >>>>> >> >> > >>>>> >> >> > However adding more functions to Morph does not make sense. >>>>> >> >> > >>>>> >> >> > Squeak 6.0a >>>>> >> >> > Morph selectors size 1345 >>>>> >> >> > PasteUpMorph selectors size 530 >>>>> >> >> > >>>>> >> >> > --Hannes >>>>> >> >> > >>>>> >> >> > On 10/4/17, karl ramberg wrote: >>>>> >> >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph is >>>>> >> >> >> very >>>>> >> >> >> useful >>>>> >> >> >> in >>>>> >> >> >> direct manipulation because of it's various layout and event >>>>> >> >> >> handling >>>>> >> >> >> options. It also act as a container of other morphs, with >>>>> >> >> >> automatic >>>>> >> >> >> layout, enumeration etc. >>>>> >> >> >> I'm sure most of this could be refactored into Morph class or >>>>> >> >> >> another >>>>> >> >> >> class. >>>>> >> >> >> >>>>> >> >> >> Best, >>>>> >> >> >> Karl >>>>> >> >> >> >>>>> >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel >>>>> >> >> >> >>>>> >> >> >> wrote: >>>>> >> >> >> >>>>> >> >> >>> +1 :) >>>>> >> >> >>> >>>>> >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and keep >>>>> >> >> >>> an >>>>> >> >> >>> empty >>>>> >> >> >>> PasteUpMorph subclass around for compatibility reasons. So >>>>> >> >> >>> many >>>>> >> >> >>> ideas >>>>> >> >> >>> have >>>>> >> >> >>> been ported down to Morph class over the past years. New >>>>> >> >> >>> applications >>>>> >> >> >>> have >>>>> >> >> >>> no reason to ever use other instances of PasteUpMorph. >>>>> >> >> >>> >>>>> >> >> >>> Best, >>>>> >> >> >>> Marcel >>>>> >> >> >>> >>>>> >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel : >>>>> >> >> >>> On 10/3/17, H. Hirzel wrote: >>>>> >> >> >>> > Dave >>>>> >> >> >>> > >>>>> >> >> >>> > your change set contains the class EtoysProject with >>>>> >> >> >>> > >>>>> >> >> >>> > EtoysProject selectors >>>>> >> >> >>> > >>>>> >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences >>>>> >> >> >>> > #saveGlobalPreferences >>>>> >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry >>>>> >> >> >>> > #finalExitActions:) >>>>> >> >> >>> > >>>>> >> >> >>> > For complete configuration of a EtoysProject it might be >>>>> >> >> >>> > necessary >>>>> >> >> >>> > to >>>>> >> >> >>> > do >>>>> >> >> >>> > >>>>> >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph >>>>> >> >> >>> > >>>>> >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 >>>>> >> >> >>> > >>>>> >> >> >>> > Then Etoys related methods may be pushed down to >>>>> >> >> >>> > EtoysPasteUpMorph. >>>>> >> >> >>> >>>>> >> >> >>> See screen shot attached. >>>>> >> >> >>> >>>>> >> >> >>> > And probably an Etoys specific subclass of WorldMenu would >>>>> >> >> >>> > be >>>>> >> >> >>> > fine >>>>> >> >> >>> > as >>>>> >> >> >>> well >>>>> >> >> >>> > http://wiki.squeak.org/squeak/6461 >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > there is a test project [2] and some more information >>>>> >> >> >>> > about >>>>> >> >> >>> > adaptions >>>>> >> >> >>> > needed because of the UI changes in the thread 'Etoys in >>>>> >> >> >>> > 2017?' - >>>>> >> >> >>> > UI >>>>> >> >> >>> > preferences [3]. And it would be good to have Etoys >>>>> >> >> >>> > methods >>>>> >> >> >>> > / >>>>> >> >> >>> > configuration separate [4]. >>>>> >> >> >>> > >>>>> >> >> >>> > I suggest that you start go ahead and start implementing >>>>> >> >> >>> > this >>>>> >> >> >>> > while >>>>> >> >> >>> > using a test Etoys project dropped onto the desktop. >>>>> >> >> >>> > >>>>> >> >> >>> > --Hannes >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > [2] > You simply drop it in. E.g. download this project >>>>> >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>>>> >> >> >>> > >>>>> >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, >>>>> >> >> >>> > 2017 >>>>> >> >> >>> > at >>>>> >> >> >>> > 11:01 >>>>> >> >> >>> > AM >>>>> >> >> >>> > >>>>> >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM >>>>> >> >> >>> > "I think it would be great if both Etoys and Scratch were >>>>> >> >> >>> > easily >>>>> >> >> >>> > loadable and unloadable in trunk." >>>>> >> >> >>> > >>>>> >> >> >>> > On 10/2/17, David T. Lewis wrote: >>>>> >> >> >>> >> An EtoysProject is a project that is configured for >>>>> >> >> >>> >> running >>>>> >> >> >>> >> Etoys. >>>>> >> >> >>> >> On >>>>> >> >> >>> >> first entry to a new EtoysProject, the playground and >>>>> >> >> >>> >> project >>>>> >> >> >>> preferences >>>>> >> >> >>> >> are initialized to provide an environment similar to that >>>>> >> >> >>> >> of >>>>> >> >> >>> >> a >>>>> >> >> >>> >> traditional >>>>> >> >> >>> >> standalone Etoys image. >>>>> >> >> >>> >> >>>>> >> >> >>> >> Certain preferences that are required for Etoys are >>>>> >> >> >>> >> initialized >>>>> >> >> >>> >> on >>>>> >> >> >>> >> project >>>>> >> >> >>> >> entry, overriding their global preference values while >>>>> >> >> >>> >> this >>>>> >> >> >>> EtoysProject >>>>> >> >> >>> >> is active. On leaving the project, these preferences are >>>>> >> >> >>> >> restored >>>>> >> >> >>> >> to >>>>> >> >> >>> >> their >>>>> >> >> >>> >> previous values. >>>>> >> >> >>> >> >>>>> >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" >>>>> >> >> >>> >> >>>>> >> >> >>> >> Change set attached for a minimal implementation. >>>>> >> >> >>> >> >>>>> >> >> >>> >> Anyone with Etoys knowledge care to help? I do not know >>>>> >> >> >>> >> enough >>>>> >> >> >>> >> about >>>>> >> >> >>> >> Etoys >>>>> >> >> >>> >> to fill in the rest of the initialization that will be >>>>> >> >> >>> >> required, >>>>> >> >> >>> >> but >>>>> >> >> >>> >> it >>>>> >> >> >>> >> should not be hard to do. >>>>> >> >> >>> >> >>>>> >> >> >>> >> Dave >>>>> >> >> >>> >> >>>>> >> >> >>> >> >>>>> >> >> >>> > >>>>> >> >> >>> >>>>> >> >> >>> >>>>> >> >> >>> >>>>> >> >> >>> >>>>> >> >> >>> >>>>> >> >> >> >>>>> >> >> > >>>>> >> > >>>>> >> > >>>>> >> >> >>>>> >> > >>>>> >> > >>>>> >> > >>>>> >> >>>>> > >>>>> > >>>>> >>>> >>>> >>> >> > |
If you drop
http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr on to the desktop Squeak asks you for a replacement for 'MultiNewParagraph' as this class was removed in April (The Trunk: EToys-nice.292.mcz) Answer 'NewParagraph'. Then the Etoys project loads and gives some error messages. Some are related to preferences. An issue to fix first. Another issue is that actually a MorphicProject is created instead of the new #EtoysProject type we want. I do not now yet where to do this. The call chain passes through MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [1] The stream [2] has code and an object to be read by a SmartRefStream. More investigation needed. --Hannes [1] MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject fileInObjectAndCodeForProject "This file may contain: 1) a fileIn of code 2) just an object in SmartReferenceStream format 3) both code and an object. File it in and return the object. Note that self must be a FileStream or RWBinaryOrTextStream. Maybe ReadWriteStream incorporate RWBinaryOrTextStream?" | refStream object | self halt. self text. self peek asciiValue = 4 ifTrue: [ "pure object file" self binary. refStream := SmartRefStream on: self. object := refStream nextAndClose] ifFalse: [ "objects mixed with a fileIn" self fileInProject. "reads code and objects, then closes the file" self binary. object := SmartRefStream scannedObject]. "set by side effect of one of the chunks" SmartRefStream scannedObject: nil. "clear scannedObject" ^ object [2] Content of the Etoys pr file readstream '''From etoys4.0 of 9 October 2008 [latest update: #2319] on 18 September 2009 at 3:39:18 pm''! | cont | (Smalltalk includesKey: #MorphExtensionPlus) ifFalse: [self inform: ''This project cannot be loaded into an older system.\Please use an OLPC Etoys compatible image.'' translated withCRs. cont _ thisContext. [cont notNil] whileTrue: [ cont selector == #handleEvent: ifTrue: [cont return: nil]. cont _ cont sender. ]]! !ObjectScanner new initialize! !self smartRefStream! On 10/5/17, H. Hirzel <[hidden email]> wrote: > This later on goes to > > > ProjectLoading class>> > > openName: aFileName stream: preStream fromDirectory: aDirectoryOrNil > withProjectView: existingView clearOriginFlag: clearOriginFlag > "Reconstitute a Morph from the selected file, presumed to > represent a Morph saved via the SmartRefStream mechanism, and open it > in an appropriate Morphic world." > > | morphOrList archive mgr substituteFont numberOfFontSubstitutes > resultArray anObject project manifests dict | > (self checkStream: preStream) ifTrue: [^ self]. > ProgressNotification signal: '0.2'. > archive := preStream isZipArchive > ifTrue:[ZipArchive new readFrom: preStream] > ifFalse:[nil]. > archive ifNotNil:[ > manifests := (archive membersMatching: '*manifest'). > (manifests size = 1 and: [((dict := self parseManifest: manifests > first contents) at: 'Project-Format' ifAbsent: []) = 'S-Expression']) > ifTrue: [ > ^ (self respondsTo: > #openSexpProjectDict:stream:fromDirectory:withProjectView:) > ifTrue: [self openSexpProjectDict: dict stream: preStream > fromDirectory: aDirectoryOrNil withProjectView: existingView] > ifFalse: [self inform: 'Cannot load S-Expression format projects > without Etoys' translated]]]. > > morphOrList := self morphOrList: aFileName stream: preStream > fromDirectory: aDirectoryOrNil archive: archive. > morphOrList ifNil: [^ self]. > ProgressNotification signal: '0.4'. > resultArray := self fileInName: aFileName archive: archive > morphOrList: morphOrList. > anObject := resultArray first. > numberOfFontSubstitutes := resultArray second. > substituteFont := resultArray third. > mgr := resultArray fourth. > preStream close. > ProgressNotification signal: '0.7'. > "the hard part is over" > (anObject isKindOf: ImageSegment) ifTrue: [ > project := self loadImageSegment: anObject > fromDirectory: aDirectoryOrNil > withProjectView: existingView > numberOfFontSubstitutes: numberOfFontSubstitutes > substituteFont: substituteFont > mgr: mgr. > project noteManifestDetailsIn: dict. > project removeParameter: #sugarProperties. > Smalltalk at: #SugarPropertiesNotification ifPresent: [:sp | > sp signal ifNotNil: [:props | > project keepSugarProperties: props monitor: true]]. > clearOriginFlag ifTrue: [project forgetExistingURL]. > ProgressNotification signal: '0.8'. > ^ project > ifNil: [self inform: 'No project found in this file' translated] > ifNotNil: [ProjectEntryNotification signal: project]]. > Project current openViewAndEnter: anObject > > On 10/5/17, H. Hirzel <[hidden email]> wrote: >> A few steps more: when I drop a project file onto the desktop the >> following methods are called >> >> PasteUpMorph handleDroppedItem: anItem event: anEvent >> ExternalDropHandler lookupExternalDropHandler: anItem >> ExternalDropHandler handle: dropStream in: pasteUp dropEvent: anEvent >> ExternalDropHandler class defaultProjectHandler >> >> ProjectLoading openOn: aMultiByteFileStream: >> "'/home/user/Downloads/CarAndPen.014(2).pr'" >> >> So we have to fix ProjectLoading >> >> >> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>> Note: MorphWithGrid does not really make sense unless you have a >>> superclass MorphWithDnD (Drag and Drop) which handles the morph droped >>> and makes them 'sticky'. >>> >>> Though refactoring PastUpMorph by inserting superclasses is an issue I >>> suggest to put this on the backburner at the moment and focus on >>> getting the Etoys setting straight as Dave suggests in the initial >>> mail. >>> >>> A use case to follow: What happens when you drop the exapme project >>> >>> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>> >>> on to the desktop. >>> >>> ExternalDropHandler>>handleDroppedItem:event: [21] >>> >>> is called in this case and then dispatches to do the necessary things >>> to deal with the >>> ExampleEtoys/CarAndPen.014.pr >>> file. >>> >>> There is a message box which needs attention. >>> >>> And I assume that in the course of these events some settings are >>> necessary. Most prominently to choose EtoysProject and no longer >>> MorphicProject >>> >>> --Hannes >>> >>> [21] http://wiki.squeak.org/squeak/4283 >>> >>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>> I added a demo file Morphic-hjh.1354 [11] to the repository >>>> >>>> MCHttpRepository >>>> location: 'http://www.squeaksource.com/EtoysProject' >>>> user: '' >>>> password: '' >>>> >>>> This file should be loaded into a fully updated trunk test image. >>>> >>>> I agree with what Tobias noted earlier in this thread that it is >>>> probably better to avoid renaming PasteUpMorph. I see as a solution to >>>> easier deal with PasteUpMorph functions the insertion of superclasses >>>> of PasteUpMorph (and thus subclasses of BorderedMorph) [12] >>>> >>>> The next thing I will come up with is a class >>>> MorphWithDnD >>>> >>>> a morph class which supports drag and drop. >>>> As a superclass of MorphWithGrid >>>> >>>> A third class would be PlayField which contains all the Etoys >>>> selectors. >>>> In an image without Etoys that class would then be just empty. >>>> >>>> --Hannes >>>> >>>> >>>> -------------------- >>>> >>>> [11] >>>> Name: Morphic-hjh.1354 >>>> Author: hjh >>>> Time: 5 October 2017, 11:51:21.903338 am >>>> UUID: e96d5a46-453f-418c-b95f-26f1674ca329 >>>> Ancestors: Morphic-hjh.1353 >>>> >>>> Demo which shows how to remove selectors from PasteUpMorph and insert >>>> them into a newy created superclass >>>> >>>> Inserted >>>> MorphWithGrid >>>> as a subclass of BorderedMorph and superclass of >>>> PasteUpMorph >>>> >>>> gridding protocol was moved from >>>> PasteUpMorph >>>> to >>>> MorphWithGrid >>>> >>>> >>>> Morphic-hjh.1353: >>>> Ancestors: Morphic-hjh.1352 >>>> >>>> Note: I tried to save this update several times. That accounts for the >>>> empty updates in between. >>>> >>>> >>>> --------- >>>> [12] >>>> After filing in Morphic-hjh.1354 >>>> PasteUpMorph printHierarchy ' >>>> ProtoObject #() >>>> Object #() >>>> Morph #() >>>> BorderedMorph #() >>>> MorphWithGrid #(''griddingOn'') >>>> PasteUpMorph #(...) >>>> ComponentLayout #(...) >>>> EventTimeline #(...) >>>> GeeBookPageMorph #(...) >>>> IndexTabs #(...) >>>> MouseEventEditor #(...) >>>> PartsBin #(...) >>>> QuickGuideHolderMorph #(...) >>>> SyntaxTestMethods #(...) >>>> TetrisBoard #(...) >>>> TextPlusPasteUpMorph #(...) >>>> WiWPasteUpMorph #(...) >>>> MVCWiWPasteUpMorph #(...) >>>> Worldlet #(...) >>>> ZASMScriptMorph #(...) >>>> ZoomAndScrollMorph #(...)' >>>> >>>> On 10/5/17, Marcel Taeumel <[hidden email]> wrote: >>>>> Done. :) >>>>> >>>>> Best, >>>>> Marcel >>>>> Am 05.10.2017 06:21:44 schrieb David T. Lewis <[hidden email]>: >>>>> We did have a problem on squeaksource.com, but I think it is mostly >>>>> resolved >>>>> now. >>>>> >>>>> Hannes, >>>>> >>>>> The password reset for your HJH account was lost, so I set it back to >>>>> the >>>>> new password that I sent to you earlier in private email. Hopefully >>>>> your >>>>> access is working again now. >>>>> >>>>> Marcel, >>>>> >>>>> Your new account disappeared when squeaksource recovered from some >>>>> internal >>>>> problem. Sorry, I do not know the cause. But could I ask you to please >>>>> register >>>>> again on squeaksource.com, and I will then add you back to >>>>> EtoysProject? >>>>> >>>>> Sorry for the disruption, >>>>> Dave >>>>> >>>>> >>>>> On Thu, Oct 05, 2017 at 02:03:47AM +0200, H. Hirzel wrote: >>>>>> Dave >>>>>> >>>>>> Earlier today login worked. Currently it does not. >>>>>> >>>>>> --Hannes >>>>>> >>>>>> On 10/5/17, David T. Lewis wrote: >>>>>> > Hannes, >>>>>> > >>>>>> > You did not cause the problem. It may have been me, I saved the >>>>>> > squeaksource.com >>>>>> > image from a VNC session (because I wanted to make an up to date >>>>>> > backup >>>>>> > of >>>>>> > it), >>>>>> > and I am now unable to log in to squeaksource. Maybe I triggered a >>>>>> > bug >>>>>> > :-/ >>>>>> > >>>>>> > Can you please tell me if you are able to log in to your >>>>>> > http://squeaksource.com >>>>>> > page? I am getting authorization errors, and I suspect it is a >>>>>> > problem >>>>>> > that >>>>>> > affects >>>>>> > everyone. >>>>>> > >>>>>> > Thanks, >>>>>> > Dave >>>>>> > >>>>>> > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: >>>>>> >> Dave, >>>>>> >> >>>>>> >> Yes, I encounter problems. They might be related to what I just >>>>>> >> tried >>>>>> >> to >>>>>> >> do: >>>>>> >> >>>>>> >> I wanted to save an updated version of Morphic to the ProjectEtoys >>>>>> >> repository but by mistake I tried to commit it to the trunk. As I >>>>>> >> do >>>>>> >> not have commit rights to trunk this prevented me from changing it >>>>>> >> inadvertently. Later on I wanted to commit that version to >>>>>> >> ProjectEtoys. It did not work. >>>>>> >> >>>>>> >> --Hannes >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> >> On 10/5/17, David T. Lewis wrote: >>>>>> >> > I'm seeing problems with SqueakSource right now, trying to >>>>>> >> > figure >>>>>> >> > out >>>>>> >> > what is wrong. So the project may not be accessible right now >>>>>> >> > :-/ >>>>>> >> > >>>>>> >> > Dave >>>>>> >> > >>>>>> >> > >>>>>> >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: >>>>>> >> >> Karl, >>>>>> >> >> >>>>>> >> >> So far entering and existing the Etoys project works smoothly. >>>>>> >> >> >>>>>> >> >> Load mcz from into current Squeak 6.0a >>>>>> >> >> >>>>>> >> >> MCHttpRepository >>>>>> >> >> location: 'http://www.squeaksource.com/EtoysProject' >>>>>> >> >> user: '' >>>>>> >> >> password: '' >>>>>> >> >> >>>>>> >> >> The issue is about providing more settings when entering. >>>>>> >> >> >>>>>> >> >> Karl, do you want to be added to the list of developers? >>>>>> >> >> >>>>>> >> >> --HH >>>>>> >> >> >>>>>> >> >> On 10/5/17, H. Hirzel wrote: >>>>>> >> >> > PasteUpMorph is useful and the functions have to be >>>>>> >> >> > maintained. >>>>>> >> >> > >>>>>> >> >> > However adding more functions to Morph does not make sense. >>>>>> >> >> > >>>>>> >> >> > Squeak 6.0a >>>>>> >> >> > Morph selectors size 1345 >>>>>> >> >> > PasteUpMorph selectors size 530 >>>>>> >> >> > >>>>>> >> >> > --Hannes >>>>>> >> >> > >>>>>> >> >> > On 10/4/17, karl ramberg wrote: >>>>>> >> >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph is >>>>>> >> >> >> very >>>>>> >> >> >> useful >>>>>> >> >> >> in >>>>>> >> >> >> direct manipulation because of it's various layout and event >>>>>> >> >> >> handling >>>>>> >> >> >> options. It also act as a container of other morphs, with >>>>>> >> >> >> automatic >>>>>> >> >> >> layout, enumeration etc. >>>>>> >> >> >> I'm sure most of this could be refactored into Morph class >>>>>> >> >> >> or >>>>>> >> >> >> another >>>>>> >> >> >> class. >>>>>> >> >> >> >>>>>> >> >> >> Best, >>>>>> >> >> >> Karl >>>>>> >> >> >> >>>>>> >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel >>>>>> >> >> >> >>>>>> >> >> >> wrote: >>>>>> >> >> >> >>>>>> >> >> >>> +1 :) >>>>>> >> >> >>> >>>>>> >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and keep >>>>>> >> >> >>> an >>>>>> >> >> >>> empty >>>>>> >> >> >>> PasteUpMorph subclass around for compatibility reasons. So >>>>>> >> >> >>> many >>>>>> >> >> >>> ideas >>>>>> >> >> >>> have >>>>>> >> >> >>> been ported down to Morph class over the past years. New >>>>>> >> >> >>> applications >>>>>> >> >> >>> have >>>>>> >> >> >>> no reason to ever use other instances of PasteUpMorph. >>>>>> >> >> >>> >>>>>> >> >> >>> Best, >>>>>> >> >> >>> Marcel >>>>>> >> >> >>> >>>>>> >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel : >>>>>> >> >> >>> On 10/3/17, H. Hirzel wrote: >>>>>> >> >> >>> > Dave >>>>>> >> >> >>> > >>>>>> >> >> >>> > your change set contains the class EtoysProject with >>>>>> >> >> >>> > >>>>>> >> >> >>> > EtoysProject selectors >>>>>> >> >> >>> > >>>>>> >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences >>>>>> >> >> >>> > #saveGlobalPreferences >>>>>> >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry >>>>>> >> >> >>> > #finalExitActions:) >>>>>> >> >> >>> > >>>>>> >> >> >>> > For complete configuration of a EtoysProject it might be >>>>>> >> >> >>> > necessary >>>>>> >> >> >>> > to >>>>>> >> >> >>> > do >>>>>> >> >> >>> > >>>>>> >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph >>>>>> >> >> >>> > >>>>>> >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 >>>>>> >> >> >>> > >>>>>> >> >> >>> > Then Etoys related methods may be pushed down to >>>>>> >> >> >>> > EtoysPasteUpMorph. >>>>>> >> >> >>> >>>>>> >> >> >>> See screen shot attached. >>>>>> >> >> >>> >>>>>> >> >> >>> > And probably an Etoys specific subclass of WorldMenu >>>>>> >> >> >>> > would >>>>>> >> >> >>> > be >>>>>> >> >> >>> > fine >>>>>> >> >> >>> > as >>>>>> >> >> >>> well >>>>>> >> >> >>> > http://wiki.squeak.org/squeak/6461 >>>>>> >> >> >>> > >>>>>> >> >> >>> > >>>>>> >> >> >>> > there is a test project [2] and some more information >>>>>> >> >> >>> > about >>>>>> >> >> >>> > adaptions >>>>>> >> >> >>> > needed because of the UI changes in the thread 'Etoys in >>>>>> >> >> >>> > 2017?' - >>>>>> >> >> >>> > UI >>>>>> >> >> >>> > preferences [3]. And it would be good to have Etoys >>>>>> >> >> >>> > methods >>>>>> >> >> >>> > / >>>>>> >> >> >>> > configuration separate [4]. >>>>>> >> >> >>> > >>>>>> >> >> >>> > I suggest that you start go ahead and start implementing >>>>>> >> >> >>> > this >>>>>> >> >> >>> > while >>>>>> >> >> >>> > using a test Etoys project dropped onto the desktop. >>>>>> >> >> >>> > >>>>>> >> >> >>> > --Hannes >>>>>> >> >> >>> > >>>>>> >> >> >>> > >>>>>> >> >> >>> > [2] > You simply drop it in. E.g. download this project >>>>>> >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>>>>> >> >> >>> > >>>>>> >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, >>>>>> >> >> >>> > 2017 >>>>>> >> >> >>> > at >>>>>> >> >> >>> > 11:01 >>>>>> >> >> >>> > AM >>>>>> >> >> >>> > >>>>>> >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM >>>>>> >> >> >>> > "I think it would be great if both Etoys and Scratch were >>>>>> >> >> >>> > easily >>>>>> >> >> >>> > loadable and unloadable in trunk." >>>>>> >> >> >>> > >>>>>> >> >> >>> > On 10/2/17, David T. Lewis wrote: >>>>>> >> >> >>> >> An EtoysProject is a project that is configured for >>>>>> >> >> >>> >> running >>>>>> >> >> >>> >> Etoys. >>>>>> >> >> >>> >> On >>>>>> >> >> >>> >> first entry to a new EtoysProject, the playground and >>>>>> >> >> >>> >> project >>>>>> >> >> >>> preferences >>>>>> >> >> >>> >> are initialized to provide an environment similar to >>>>>> >> >> >>> >> that >>>>>> >> >> >>> >> of >>>>>> >> >> >>> >> a >>>>>> >> >> >>> >> traditional >>>>>> >> >> >>> >> standalone Etoys image. >>>>>> >> >> >>> >> >>>>>> >> >> >>> >> Certain preferences that are required for Etoys are >>>>>> >> >> >>> >> initialized >>>>>> >> >> >>> >> on >>>>>> >> >> >>> >> project >>>>>> >> >> >>> >> entry, overriding their global preference values while >>>>>> >> >> >>> >> this >>>>>> >> >> >>> EtoysProject >>>>>> >> >> >>> >> is active. On leaving the project, these preferences are >>>>>> >> >> >>> >> restored >>>>>> >> >> >>> >> to >>>>>> >> >> >>> >> their >>>>>> >> >> >>> >> previous values. >>>>>> >> >> >>> >> >>>>>> >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" >>>>>> >> >> >>> >> >>>>>> >> >> >>> >> Change set attached for a minimal implementation. >>>>>> >> >> >>> >> >>>>>> >> >> >>> >> Anyone with Etoys knowledge care to help? I do not know >>>>>> >> >> >>> >> enough >>>>>> >> >> >>> >> about >>>>>> >> >> >>> >> Etoys >>>>>> >> >> >>> >> to fill in the rest of the initialization that will be >>>>>> >> >> >>> >> required, >>>>>> >> >> >>> >> but >>>>>> >> >> >>> >> it >>>>>> >> >> >>> >> should not be hard to do. >>>>>> >> >> >>> >> >>>>>> >> >> >>> >> Dave >>>>>> >> >> >>> >> >>>>>> >> >> >>> >> >>>>>> >> >> >>> > >>>>>> >> >> >>> >>>>>> >> >> >>> >>>>>> >> >> >>> >>>>>> >> >> >>> >>>>>> >> >> >>> >>>>>> >> >> >> >>>>>> >> >> > >>>>>> >> > >>>>>> >> > >>>>>> >> >> >>>>>> >> > >>>>>> >> > >>>>>> >> > >>>>>> >> >>>>>> > >>>>>> > >>>>>> >>>>> >>>>> >>>> >>> >> > |
Later on in
ProjectLoading class>>loadImageSegment: morphOrList fromDirectory: aDirectoryOrNil withProjectView: existingView numberOfFontSubstitutes: numberOfFontSubstitutes substituteFont: substituteFont mgr: mgr | proj projectsToBeDeleted ef f | (f := (Flaps globalFlapTabWithID: 'Navigator' translated)) ifNotNil: [f hideFlap]. proj := morphOrList arrayOfRoots detect: [:mm | mm isKindOf: Project] ifNone: [^ nil]. The project 'proj' is read which is a MorphicProject. We need to convert this into an EtoysProject if we want to follow the path of upgrading MorphicProjects to EtoysProjects. Probably a good idea but a matter of discussion. On 10/5/17, H. Hirzel <[hidden email]> wrote: > If you drop > > http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr > > on to the desktop Squeak asks you for a replacement for > 'MultiNewParagraph' as this class was removed in April (The Trunk: > EToys-nice.292.mcz) > > Answer 'NewParagraph'. Then the Etoys project loads and gives some > error messages. Some are related to preferences. An issue to fix > first. > > Another issue is that actually a MorphicProject is created instead of > the new #EtoysProject type we want. > > I do not now yet where to do this. > The call chain passes through > > MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [1] > > The stream [2] has code and an object to be read by a SmartRefStream. > > More investigation needed. > > --Hannes > > > > > > > [1] MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject > > fileInObjectAndCodeForProject > "This file may contain: > 1) a fileIn of code > 2) just an object in SmartReferenceStream format > 3) both code and an object. > File it in and return the object. Note that self must be a > FileStream or RWBinaryOrTextStream. Maybe ReadWriteStream incorporate > RWBinaryOrTextStream?" > | refStream object | > self halt. > self text. > self peek asciiValue = 4 > ifTrue: [ "pure object file" > self binary. > refStream := SmartRefStream on: self. > object := refStream nextAndClose] > ifFalse: [ "objects mixed with a fileIn" > self fileInProject. "reads code and objects, then closes the file" > self binary. > object := SmartRefStream scannedObject]. "set by side effect of one > of the chunks" > SmartRefStream scannedObject: nil. "clear scannedObject" > ^ object > > > > > > > [2] Content of the Etoys pr file readstream > > '''From etoys4.0 of 9 October 2008 [latest update: #2319] on 18 > September 2009 at 3:39:18 pm''! > | cont | (Smalltalk includesKey: #MorphExtensionPlus) ifFalse: [self > inform: ''This project cannot be loaded into an older system.\Please > use an OLPC Etoys compatible image.'' translated withCRs. > cont _ thisContext. > [cont notNil] whileTrue: [ > cont selector == #handleEvent: ifTrue: [cont return: nil]. > cont _ cont sender. > ]]! > > !ObjectScanner new initialize! > > > > !self smartRefStream! > > On 10/5/17, H. Hirzel <[hidden email]> wrote: >> This later on goes to >> >> >> ProjectLoading class>> >> >> openName: aFileName stream: preStream fromDirectory: aDirectoryOrNil >> withProjectView: existingView clearOriginFlag: clearOriginFlag >> "Reconstitute a Morph from the selected file, presumed to >> represent a Morph saved via the SmartRefStream mechanism, and open it >> in an appropriate Morphic world." >> >> | morphOrList archive mgr substituteFont numberOfFontSubstitutes >> resultArray anObject project manifests dict | >> (self checkStream: preStream) ifTrue: [^ self]. >> ProgressNotification signal: '0.2'. >> archive := preStream isZipArchive >> ifTrue:[ZipArchive new readFrom: preStream] >> ifFalse:[nil]. >> archive ifNotNil:[ >> manifests := (archive membersMatching: '*manifest'). >> (manifests size = 1 and: [((dict := self parseManifest: manifests >> first contents) at: 'Project-Format' ifAbsent: []) = 'S-Expression']) >> ifTrue: [ >> ^ (self respondsTo: >> #openSexpProjectDict:stream:fromDirectory:withProjectView:) >> ifTrue: [self openSexpProjectDict: dict stream: preStream >> fromDirectory: aDirectoryOrNil withProjectView: existingView] >> ifFalse: [self inform: 'Cannot load S-Expression format projects >> without Etoys' translated]]]. >> >> morphOrList := self morphOrList: aFileName stream: preStream >> fromDirectory: aDirectoryOrNil archive: archive. >> morphOrList ifNil: [^ self]. >> ProgressNotification signal: '0.4'. >> resultArray := self fileInName: aFileName archive: archive >> morphOrList: morphOrList. >> anObject := resultArray first. >> numberOfFontSubstitutes := resultArray second. >> substituteFont := resultArray third. >> mgr := resultArray fourth. >> preStream close. >> ProgressNotification signal: '0.7'. >> "the hard part is over" >> (anObject isKindOf: ImageSegment) ifTrue: [ >> project := self loadImageSegment: anObject >> fromDirectory: aDirectoryOrNil >> withProjectView: existingView >> numberOfFontSubstitutes: numberOfFontSubstitutes >> substituteFont: substituteFont >> mgr: mgr. >> project noteManifestDetailsIn: dict. >> project removeParameter: #sugarProperties. >> Smalltalk at: #SugarPropertiesNotification ifPresent: [:sp | >> sp signal ifNotNil: [:props | >> project keepSugarProperties: props monitor: true]]. >> clearOriginFlag ifTrue: [project forgetExistingURL]. >> ProgressNotification signal: '0.8'. >> ^ project >> ifNil: [self inform: 'No project found in this file' translated] >> ifNotNil: [ProjectEntryNotification signal: project]]. >> Project current openViewAndEnter: anObject >> >> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>> A few steps more: when I drop a project file onto the desktop the >>> following methods are called >>> >>> PasteUpMorph handleDroppedItem: anItem event: anEvent >>> ExternalDropHandler lookupExternalDropHandler: anItem >>> ExternalDropHandler handle: dropStream in: pasteUp dropEvent: anEvent >>> ExternalDropHandler class defaultProjectHandler >>> >>> ProjectLoading openOn: aMultiByteFileStream: >>> "'/home/user/Downloads/CarAndPen.014(2).pr'" >>> >>> So we have to fix ProjectLoading >>> >>> >>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>> Note: MorphWithGrid does not really make sense unless you have a >>>> superclass MorphWithDnD (Drag and Drop) which handles the morph droped >>>> and makes them 'sticky'. >>>> >>>> Though refactoring PastUpMorph by inserting superclasses is an issue I >>>> suggest to put this on the backburner at the moment and focus on >>>> getting the Etoys setting straight as Dave suggests in the initial >>>> mail. >>>> >>>> A use case to follow: What happens when you drop the exapme project >>>> >>>> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>>> >>>> on to the desktop. >>>> >>>> ExternalDropHandler>>handleDroppedItem:event: [21] >>>> >>>> is called in this case and then dispatches to do the necessary things >>>> to deal with the >>>> ExampleEtoys/CarAndPen.014.pr >>>> file. >>>> >>>> There is a message box which needs attention. >>>> >>>> And I assume that in the course of these events some settings are >>>> necessary. Most prominently to choose EtoysProject and no longer >>>> MorphicProject >>>> >>>> --Hannes >>>> >>>> [21] http://wiki.squeak.org/squeak/4283 >>>> >>>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>>> I added a demo file Morphic-hjh.1354 [11] to the repository >>>>> >>>>> MCHttpRepository >>>>> location: 'http://www.squeaksource.com/EtoysProject' >>>>> user: '' >>>>> password: '' >>>>> >>>>> This file should be loaded into a fully updated trunk test image. >>>>> >>>>> I agree with what Tobias noted earlier in this thread that it is >>>>> probably better to avoid renaming PasteUpMorph. I see as a solution to >>>>> easier deal with PasteUpMorph functions the insertion of superclasses >>>>> of PasteUpMorph (and thus subclasses of BorderedMorph) [12] >>>>> >>>>> The next thing I will come up with is a class >>>>> MorphWithDnD >>>>> >>>>> a morph class which supports drag and drop. >>>>> As a superclass of MorphWithGrid >>>>> >>>>> A third class would be PlayField which contains all the Etoys >>>>> selectors. >>>>> In an image without Etoys that class would then be just empty. >>>>> >>>>> --Hannes >>>>> >>>>> >>>>> -------------------- >>>>> >>>>> [11] >>>>> Name: Morphic-hjh.1354 >>>>> Author: hjh >>>>> Time: 5 October 2017, 11:51:21.903338 am >>>>> UUID: e96d5a46-453f-418c-b95f-26f1674ca329 >>>>> Ancestors: Morphic-hjh.1353 >>>>> >>>>> Demo which shows how to remove selectors from PasteUpMorph and insert >>>>> them into a newy created superclass >>>>> >>>>> Inserted >>>>> MorphWithGrid >>>>> as a subclass of BorderedMorph and superclass of >>>>> PasteUpMorph >>>>> >>>>> gridding protocol was moved from >>>>> PasteUpMorph >>>>> to >>>>> MorphWithGrid >>>>> >>>>> >>>>> Morphic-hjh.1353: >>>>> Ancestors: Morphic-hjh.1352 >>>>> >>>>> Note: I tried to save this update several times. That accounts for the >>>>> empty updates in between. >>>>> >>>>> >>>>> --------- >>>>> [12] >>>>> After filing in Morphic-hjh.1354 >>>>> PasteUpMorph printHierarchy ' >>>>> ProtoObject #() >>>>> Object #() >>>>> Morph #() >>>>> BorderedMorph #() >>>>> MorphWithGrid #(''griddingOn'') >>>>> PasteUpMorph #(...) >>>>> ComponentLayout #(...) >>>>> EventTimeline #(...) >>>>> GeeBookPageMorph #(...) >>>>> IndexTabs #(...) >>>>> MouseEventEditor #(...) >>>>> PartsBin #(...) >>>>> QuickGuideHolderMorph #(...) >>>>> SyntaxTestMethods #(...) >>>>> TetrisBoard #(...) >>>>> TextPlusPasteUpMorph #(...) >>>>> WiWPasteUpMorph #(...) >>>>> MVCWiWPasteUpMorph #(...) >>>>> Worldlet #(...) >>>>> ZASMScriptMorph #(...) >>>>> ZoomAndScrollMorph #(...)' >>>>> >>>>> On 10/5/17, Marcel Taeumel <[hidden email]> wrote: >>>>>> Done. :) >>>>>> >>>>>> Best, >>>>>> Marcel >>>>>> Am 05.10.2017 06:21:44 schrieb David T. Lewis <[hidden email]>: >>>>>> We did have a problem on squeaksource.com, but I think it is mostly >>>>>> resolved >>>>>> now. >>>>>> >>>>>> Hannes, >>>>>> >>>>>> The password reset for your HJH account was lost, so I set it back to >>>>>> the >>>>>> new password that I sent to you earlier in private email. Hopefully >>>>>> your >>>>>> access is working again now. >>>>>> >>>>>> Marcel, >>>>>> >>>>>> Your new account disappeared when squeaksource recovered from some >>>>>> internal >>>>>> problem. Sorry, I do not know the cause. But could I ask you to >>>>>> please >>>>>> register >>>>>> again on squeaksource.com, and I will then add you back to >>>>>> EtoysProject? >>>>>> >>>>>> Sorry for the disruption, >>>>>> Dave >>>>>> >>>>>> >>>>>> On Thu, Oct 05, 2017 at 02:03:47AM +0200, H. Hirzel wrote: >>>>>>> Dave >>>>>>> >>>>>>> Earlier today login worked. Currently it does not. >>>>>>> >>>>>>> --Hannes >>>>>>> >>>>>>> On 10/5/17, David T. Lewis wrote: >>>>>>> > Hannes, >>>>>>> > >>>>>>> > You did not cause the problem. It may have been me, I saved the >>>>>>> > squeaksource.com >>>>>>> > image from a VNC session (because I wanted to make an up to date >>>>>>> > backup >>>>>>> > of >>>>>>> > it), >>>>>>> > and I am now unable to log in to squeaksource. Maybe I triggered a >>>>>>> > bug >>>>>>> > :-/ >>>>>>> > >>>>>>> > Can you please tell me if you are able to log in to your >>>>>>> > http://squeaksource.com >>>>>>> > page? I am getting authorization errors, and I suspect it is a >>>>>>> > problem >>>>>>> > that >>>>>>> > affects >>>>>>> > everyone. >>>>>>> > >>>>>>> > Thanks, >>>>>>> > Dave >>>>>>> > >>>>>>> > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: >>>>>>> >> Dave, >>>>>>> >> >>>>>>> >> Yes, I encounter problems. They might be related to what I just >>>>>>> >> tried >>>>>>> >> to >>>>>>> >> do: >>>>>>> >> >>>>>>> >> I wanted to save an updated version of Morphic to the >>>>>>> >> ProjectEtoys >>>>>>> >> repository but by mistake I tried to commit it to the trunk. As I >>>>>>> >> do >>>>>>> >> not have commit rights to trunk this prevented me from changing >>>>>>> >> it >>>>>>> >> inadvertently. Later on I wanted to commit that version to >>>>>>> >> ProjectEtoys. It did not work. >>>>>>> >> >>>>>>> >> --Hannes >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> >> On 10/5/17, David T. Lewis wrote: >>>>>>> >> > I'm seeing problems with SqueakSource right now, trying to >>>>>>> >> > figure >>>>>>> >> > out >>>>>>> >> > what is wrong. So the project may not be accessible right now >>>>>>> >> > :-/ >>>>>>> >> > >>>>>>> >> > Dave >>>>>>> >> > >>>>>>> >> > >>>>>>> >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: >>>>>>> >> >> Karl, >>>>>>> >> >> >>>>>>> >> >> So far entering and existing the Etoys project works smoothly. >>>>>>> >> >> >>>>>>> >> >> Load mcz from into current Squeak 6.0a >>>>>>> >> >> >>>>>>> >> >> MCHttpRepository >>>>>>> >> >> location: 'http://www.squeaksource.com/EtoysProject' >>>>>>> >> >> user: '' >>>>>>> >> >> password: '' >>>>>>> >> >> >>>>>>> >> >> The issue is about providing more settings when entering. >>>>>>> >> >> >>>>>>> >> >> Karl, do you want to be added to the list of developers? >>>>>>> >> >> >>>>>>> >> >> --HH >>>>>>> >> >> >>>>>>> >> >> On 10/5/17, H. Hirzel wrote: >>>>>>> >> >> > PasteUpMorph is useful and the functions have to be >>>>>>> >> >> > maintained. >>>>>>> >> >> > >>>>>>> >> >> > However adding more functions to Morph does not make sense. >>>>>>> >> >> > >>>>>>> >> >> > Squeak 6.0a >>>>>>> >> >> > Morph selectors size 1345 >>>>>>> >> >> > PasteUpMorph selectors size 530 >>>>>>> >> >> > >>>>>>> >> >> > --Hannes >>>>>>> >> >> > >>>>>>> >> >> > On 10/4/17, karl ramberg wrote: >>>>>>> >> >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph >>>>>>> >> >> >> is >>>>>>> >> >> >> very >>>>>>> >> >> >> useful >>>>>>> >> >> >> in >>>>>>> >> >> >> direct manipulation because of it's various layout and >>>>>>> >> >> >> event >>>>>>> >> >> >> handling >>>>>>> >> >> >> options. It also act as a container of other morphs, with >>>>>>> >> >> >> automatic >>>>>>> >> >> >> layout, enumeration etc. >>>>>>> >> >> >> I'm sure most of this could be refactored into Morph class >>>>>>> >> >> >> or >>>>>>> >> >> >> another >>>>>>> >> >> >> class. >>>>>>> >> >> >> >>>>>>> >> >> >> Best, >>>>>>> >> >> >> Karl >>>>>>> >> >> >> >>>>>>> >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel >>>>>>> >> >> >> >>>>>>> >> >> >> wrote: >>>>>>> >> >> >> >>>>>>> >> >> >>> +1 :) >>>>>>> >> >> >>> >>>>>>> >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and >>>>>>> >> >> >>> keep >>>>>>> >> >> >>> an >>>>>>> >> >> >>> empty >>>>>>> >> >> >>> PasteUpMorph subclass around for compatibility reasons. So >>>>>>> >> >> >>> many >>>>>>> >> >> >>> ideas >>>>>>> >> >> >>> have >>>>>>> >> >> >>> been ported down to Morph class over the past years. New >>>>>>> >> >> >>> applications >>>>>>> >> >> >>> have >>>>>>> >> >> >>> no reason to ever use other instances of PasteUpMorph. >>>>>>> >> >> >>> >>>>>>> >> >> >>> Best, >>>>>>> >> >> >>> Marcel >>>>>>> >> >> >>> >>>>>>> >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel : >>>>>>> >> >> >>> On 10/3/17, H. Hirzel wrote: >>>>>>> >> >> >>> > Dave >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > your change set contains the class EtoysProject with >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > EtoysProject selectors >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences >>>>>>> >> >> >>> > #saveGlobalPreferences >>>>>>> >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry >>>>>>> >> >> >>> > #finalExitActions:) >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > For complete configuration of a EtoysProject it might be >>>>>>> >> >> >>> > necessary >>>>>>> >> >> >>> > to >>>>>>> >> >> >>> > do >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > Then Etoys related methods may be pushed down to >>>>>>> >> >> >>> > EtoysPasteUpMorph. >>>>>>> >> >> >>> >>>>>>> >> >> >>> See screen shot attached. >>>>>>> >> >> >>> >>>>>>> >> >> >>> > And probably an Etoys specific subclass of WorldMenu >>>>>>> >> >> >>> > would >>>>>>> >> >> >>> > be >>>>>>> >> >> >>> > fine >>>>>>> >> >> >>> > as >>>>>>> >> >> >>> well >>>>>>> >> >> >>> > http://wiki.squeak.org/squeak/6461 >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > there is a test project [2] and some more information >>>>>>> >> >> >>> > about >>>>>>> >> >> >>> > adaptions >>>>>>> >> >> >>> > needed because of the UI changes in the thread 'Etoys in >>>>>>> >> >> >>> > 2017?' - >>>>>>> >> >> >>> > UI >>>>>>> >> >> >>> > preferences [3]. And it would be good to have Etoys >>>>>>> >> >> >>> > methods >>>>>>> >> >> >>> > / >>>>>>> >> >> >>> > configuration separate [4]. >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > I suggest that you start go ahead and start implementing >>>>>>> >> >> >>> > this >>>>>>> >> >> >>> > while >>>>>>> >> >> >>> > using a test Etoys project dropped onto the desktop. >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > --Hannes >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > [2] > You simply drop it in. E.g. download this project >>>>>>> >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, >>>>>>> >> >> >>> > 2017 >>>>>>> >> >> >>> > at >>>>>>> >> >> >>> > 11:01 >>>>>>> >> >> >>> > AM >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM >>>>>>> >> >> >>> > "I think it would be great if both Etoys and Scratch >>>>>>> >> >> >>> > were >>>>>>> >> >> >>> > easily >>>>>>> >> >> >>> > loadable and unloadable in trunk." >>>>>>> >> >> >>> > >>>>>>> >> >> >>> > On 10/2/17, David T. Lewis wrote: >>>>>>> >> >> >>> >> An EtoysProject is a project that is configured for >>>>>>> >> >> >>> >> running >>>>>>> >> >> >>> >> Etoys. >>>>>>> >> >> >>> >> On >>>>>>> >> >> >>> >> first entry to a new EtoysProject, the playground and >>>>>>> >> >> >>> >> project >>>>>>> >> >> >>> preferences >>>>>>> >> >> >>> >> are initialized to provide an environment similar to >>>>>>> >> >> >>> >> that >>>>>>> >> >> >>> >> of >>>>>>> >> >> >>> >> a >>>>>>> >> >> >>> >> traditional >>>>>>> >> >> >>> >> standalone Etoys image. >>>>>>> >> >> >>> >> >>>>>>> >> >> >>> >> Certain preferences that are required for Etoys are >>>>>>> >> >> >>> >> initialized >>>>>>> >> >> >>> >> on >>>>>>> >> >> >>> >> project >>>>>>> >> >> >>> >> entry, overriding their global preference values while >>>>>>> >> >> >>> >> this >>>>>>> >> >> >>> EtoysProject >>>>>>> >> >> >>> >> is active. On leaving the project, these preferences >>>>>>> >> >> >>> >> are >>>>>>> >> >> >>> >> restored >>>>>>> >> >> >>> >> to >>>>>>> >> >> >>> >> their >>>>>>> >> >> >>> >> previous values. >>>>>>> >> >> >>> >> >>>>>>> >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" >>>>>>> >> >> >>> >> >>>>>>> >> >> >>> >> Change set attached for a minimal implementation. >>>>>>> >> >> >>> >> >>>>>>> >> >> >>> >> Anyone with Etoys knowledge care to help? I do not know >>>>>>> >> >> >>> >> enough >>>>>>> >> >> >>> >> about >>>>>>> >> >> >>> >> Etoys >>>>>>> >> >> >>> >> to fill in the rest of the initialization that will be >>>>>>> >> >> >>> >> required, >>>>>>> >> >> >>> >> but >>>>>>> >> >> >>> >> it >>>>>>> >> >> >>> >> should not be hard to do. >>>>>>> >> >> >>> >> >>>>>>> >> >> >>> >> Dave >>>>>>> >> >> >>> >> >>>>>>> >> >> >>> >> >>>>>>> >> >> >>> > >>>>>>> >> >> >>> >>>>>>> >> >> >>> >>>>>>> >> >> >>> >>>>>>> >> >> >>> >>>>>>> >> >> >>> >>>>>>> >> >> >> >>>>>>> >> >> > >>>>>>> >> > >>>>>>> >> > >>>>>>> >> >> >>>>>>> >> > >>>>>>> >> > >>>>>>> >> > >>>>>>> >> >>>>>>> > >>>>>>> > >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>> >> > |
To adapt
#fixUponLoad:seg: is the issue here if we want to change MorphicProjects to EtoysProjects when loading old Etoys pr projects. As MorphicProject subclass: #EtoysProject holds an now new instance variables the changes should be minimal. Have all objects from aMorphicProject added to a new EtoysProject and then a become: Comments? On 10/5/17, H. Hirzel <[hidden email]> wrote: > Later on in > > > ProjectLoading class>>loadImageSegment: morphOrList fromDirectory: > aDirectoryOrNil withProjectView: existingView numberOfFontSubstitutes: > numberOfFontSubstitutes substituteFont: substituteFont mgr: mgr > > > > | proj projectsToBeDeleted ef f | > (f := (Flaps globalFlapTabWithID: 'Navigator' translated)) ifNotNil: > [f hideFlap]. > proj := morphOrList arrayOfRoots > detect: [:mm | mm isKindOf: Project] > ifNone: [^ nil]. > > > The project 'proj' is read which is a MorphicProject. > > We need to convert this into an EtoysProject if we want to follow the > path of upgrading MorphicProjects to EtoysProjects. > > Probably a good idea but a matter of discussion. > > On 10/5/17, H. Hirzel <[hidden email]> wrote: >> If you drop >> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >> >> on to the desktop Squeak asks you for a replacement for >> 'MultiNewParagraph' as this class was removed in April (The Trunk: >> EToys-nice.292.mcz) >> >> Answer 'NewParagraph'. Then the Etoys project loads and gives some >> error messages. Some are related to preferences. An issue to fix >> first. >> >> Another issue is that actually a MorphicProject is created instead of >> the new #EtoysProject type we want. >> >> I do not now yet where to do this. >> The call chain passes through >> >> MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [1] >> >> The stream [2] has code and an object to be read by a SmartRefStream. >> >> More investigation needed. >> >> --Hannes >> >> >> >> >> >> >> [1] MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject >> >> fileInObjectAndCodeForProject >> "This file may contain: >> 1) a fileIn of code >> 2) just an object in SmartReferenceStream format >> 3) both code and an object. >> File it in and return the object. Note that self must be a >> FileStream or RWBinaryOrTextStream. Maybe ReadWriteStream incorporate >> RWBinaryOrTextStream?" >> | refStream object | >> self halt. >> self text. >> self peek asciiValue = 4 >> ifTrue: [ "pure object file" >> self binary. >> refStream := SmartRefStream on: self. >> object := refStream nextAndClose] >> ifFalse: [ "objects mixed with a fileIn" >> self fileInProject. "reads code and objects, then closes the file" >> self binary. >> object := SmartRefStream scannedObject]. "set by side effect of one >> of the chunks" >> SmartRefStream scannedObject: nil. "clear scannedObject" >> ^ object >> >> >> >> >> >> >> [2] Content of the Etoys pr file readstream >> >> '''From etoys4.0 of 9 October 2008 [latest update: #2319] on 18 >> September 2009 at 3:39:18 pm''! >> | cont | (Smalltalk includesKey: #MorphExtensionPlus) ifFalse: [self >> inform: ''This project cannot be loaded into an older system.\Please >> use an OLPC Etoys compatible image.'' translated withCRs. >> cont _ thisContext. >> [cont notNil] whileTrue: [ >> cont selector == #handleEvent: ifTrue: [cont return: nil]. >> cont _ cont sender. >> ]]! >> >> !ObjectScanner new initialize! >> >> >> >> !self smartRefStream! >> >> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>> This later on goes to >>> >>> >>> ProjectLoading class>> >>> >>> openName: aFileName stream: preStream fromDirectory: aDirectoryOrNil >>> withProjectView: existingView clearOriginFlag: clearOriginFlag >>> "Reconstitute a Morph from the selected file, presumed to >>> represent a Morph saved via the SmartRefStream mechanism, and open it >>> in an appropriate Morphic world." >>> >>> | morphOrList archive mgr substituteFont numberOfFontSubstitutes >>> resultArray anObject project manifests dict | >>> (self checkStream: preStream) ifTrue: [^ self]. >>> ProgressNotification signal: '0.2'. >>> archive := preStream isZipArchive >>> ifTrue:[ZipArchive new readFrom: preStream] >>> ifFalse:[nil]. >>> archive ifNotNil:[ >>> manifests := (archive membersMatching: '*manifest'). >>> (manifests size = 1 and: [((dict := self parseManifest: manifests >>> first contents) at: 'Project-Format' ifAbsent: []) = 'S-Expression']) >>> ifTrue: [ >>> ^ (self respondsTo: >>> #openSexpProjectDict:stream:fromDirectory:withProjectView:) >>> ifTrue: [self openSexpProjectDict: dict stream: preStream >>> fromDirectory: aDirectoryOrNil withProjectView: existingView] >>> ifFalse: [self inform: 'Cannot load S-Expression format projects >>> without Etoys' translated]]]. >>> >>> morphOrList := self morphOrList: aFileName stream: preStream >>> fromDirectory: aDirectoryOrNil archive: archive. >>> morphOrList ifNil: [^ self]. >>> ProgressNotification signal: '0.4'. >>> resultArray := self fileInName: aFileName archive: archive >>> morphOrList: morphOrList. >>> anObject := resultArray first. >>> numberOfFontSubstitutes := resultArray second. >>> substituteFont := resultArray third. >>> mgr := resultArray fourth. >>> preStream close. >>> ProgressNotification signal: '0.7'. >>> "the hard part is over" >>> (anObject isKindOf: ImageSegment) ifTrue: [ >>> project := self loadImageSegment: anObject >>> fromDirectory: aDirectoryOrNil >>> withProjectView: existingView >>> numberOfFontSubstitutes: numberOfFontSubstitutes >>> substituteFont: substituteFont >>> mgr: mgr. >>> project noteManifestDetailsIn: dict. >>> project removeParameter: #sugarProperties. >>> Smalltalk at: #SugarPropertiesNotification ifPresent: [:sp | >>> sp signal ifNotNil: [:props | >>> project keepSugarProperties: props monitor: true]]. >>> clearOriginFlag ifTrue: [project forgetExistingURL]. >>> ProgressNotification signal: '0.8'. >>> ^ project >>> ifNil: [self inform: 'No project found in this file' translated] >>> ifNotNil: [ProjectEntryNotification signal: project]]. >>> Project current openViewAndEnter: anObject >>> >>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>> A few steps more: when I drop a project file onto the desktop the >>>> following methods are called >>>> >>>> PasteUpMorph handleDroppedItem: anItem event: anEvent >>>> ExternalDropHandler lookupExternalDropHandler: anItem >>>> ExternalDropHandler handle: dropStream in: pasteUp dropEvent: anEvent >>>> ExternalDropHandler class defaultProjectHandler >>>> >>>> ProjectLoading openOn: aMultiByteFileStream: >>>> "'/home/user/Downloads/CarAndPen.014(2).pr'" >>>> >>>> So we have to fix ProjectLoading >>>> >>>> >>>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>>> Note: MorphWithGrid does not really make sense unless you have a >>>>> superclass MorphWithDnD (Drag and Drop) which handles the morph droped >>>>> and makes them 'sticky'. >>>>> >>>>> Though refactoring PastUpMorph by inserting superclasses is an issue I >>>>> suggest to put this on the backburner at the moment and focus on >>>>> getting the Etoys setting straight as Dave suggests in the initial >>>>> mail. >>>>> >>>>> A use case to follow: What happens when you drop the exapme project >>>>> >>>>> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>>>> >>>>> on to the desktop. >>>>> >>>>> ExternalDropHandler>>handleDroppedItem:event: [21] >>>>> >>>>> is called in this case and then dispatches to do the necessary things >>>>> to deal with the >>>>> ExampleEtoys/CarAndPen.014.pr >>>>> file. >>>>> >>>>> There is a message box which needs attention. >>>>> >>>>> And I assume that in the course of these events some settings are >>>>> necessary. Most prominently to choose EtoysProject and no longer >>>>> MorphicProject >>>>> >>>>> --Hannes >>>>> >>>>> [21] http://wiki.squeak.org/squeak/4283 >>>>> >>>>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>>>> I added a demo file Morphic-hjh.1354 [11] to the repository >>>>>> >>>>>> MCHttpRepository >>>>>> location: 'http://www.squeaksource.com/EtoysProject' >>>>>> user: '' >>>>>> password: '' >>>>>> >>>>>> This file should be loaded into a fully updated trunk test image. >>>>>> >>>>>> I agree with what Tobias noted earlier in this thread that it is >>>>>> probably better to avoid renaming PasteUpMorph. I see as a solution >>>>>> to >>>>>> easier deal with PasteUpMorph functions the insertion of superclasses >>>>>> of PasteUpMorph (and thus subclasses of BorderedMorph) [12] >>>>>> >>>>>> The next thing I will come up with is a class >>>>>> MorphWithDnD >>>>>> >>>>>> a morph class which supports drag and drop. >>>>>> As a superclass of MorphWithGrid >>>>>> >>>>>> A third class would be PlayField which contains all the Etoys >>>>>> selectors. >>>>>> In an image without Etoys that class would then be just empty. >>>>>> >>>>>> --Hannes >>>>>> >>>>>> >>>>>> -------------------- >>>>>> >>>>>> [11] >>>>>> Name: Morphic-hjh.1354 >>>>>> Author: hjh >>>>>> Time: 5 October 2017, 11:51:21.903338 am >>>>>> UUID: e96d5a46-453f-418c-b95f-26f1674ca329 >>>>>> Ancestors: Morphic-hjh.1353 >>>>>> >>>>>> Demo which shows how to remove selectors from PasteUpMorph and insert >>>>>> them into a newy created superclass >>>>>> >>>>>> Inserted >>>>>> MorphWithGrid >>>>>> as a subclass of BorderedMorph and superclass of >>>>>> PasteUpMorph >>>>>> >>>>>> gridding protocol was moved from >>>>>> PasteUpMorph >>>>>> to >>>>>> MorphWithGrid >>>>>> >>>>>> >>>>>> Morphic-hjh.1353: >>>>>> Ancestors: Morphic-hjh.1352 >>>>>> >>>>>> Note: I tried to save this update several times. That accounts for >>>>>> the >>>>>> empty updates in between. >>>>>> >>>>>> >>>>>> --------- >>>>>> [12] >>>>>> After filing in Morphic-hjh.1354 >>>>>> PasteUpMorph printHierarchy ' >>>>>> ProtoObject #() >>>>>> Object #() >>>>>> Morph #() >>>>>> BorderedMorph #() >>>>>> MorphWithGrid #(''griddingOn'') >>>>>> PasteUpMorph #(...) >>>>>> ComponentLayout #(...) >>>>>> EventTimeline #(...) >>>>>> GeeBookPageMorph #(...) >>>>>> IndexTabs #(...) >>>>>> MouseEventEditor #(...) >>>>>> PartsBin #(...) >>>>>> QuickGuideHolderMorph #(...) >>>>>> SyntaxTestMethods #(...) >>>>>> TetrisBoard #(...) >>>>>> TextPlusPasteUpMorph #(...) >>>>>> WiWPasteUpMorph #(...) >>>>>> MVCWiWPasteUpMorph #(...) >>>>>> Worldlet #(...) >>>>>> ZASMScriptMorph #(...) >>>>>> ZoomAndScrollMorph #(...)' >>>>>> >>>>>> On 10/5/17, Marcel Taeumel <[hidden email]> wrote: >>>>>>> Done. :) >>>>>>> >>>>>>> Best, >>>>>>> Marcel >>>>>>> Am 05.10.2017 06:21:44 schrieb David T. Lewis <[hidden email]>: >>>>>>> We did have a problem on squeaksource.com, but I think it is mostly >>>>>>> resolved >>>>>>> now. >>>>>>> >>>>>>> Hannes, >>>>>>> >>>>>>> The password reset for your HJH account was lost, so I set it back >>>>>>> to >>>>>>> the >>>>>>> new password that I sent to you earlier in private email. Hopefully >>>>>>> your >>>>>>> access is working again now. >>>>>>> >>>>>>> Marcel, >>>>>>> >>>>>>> Your new account disappeared when squeaksource recovered from some >>>>>>> internal >>>>>>> problem. Sorry, I do not know the cause. But could I ask you to >>>>>>> please >>>>>>> register >>>>>>> again on squeaksource.com, and I will then add you back to >>>>>>> EtoysProject? >>>>>>> >>>>>>> Sorry for the disruption, >>>>>>> Dave >>>>>>> >>>>>>> >>>>>>> On Thu, Oct 05, 2017 at 02:03:47AM +0200, H. Hirzel wrote: >>>>>>>> Dave >>>>>>>> >>>>>>>> Earlier today login worked. Currently it does not. >>>>>>>> >>>>>>>> --Hannes >>>>>>>> >>>>>>>> On 10/5/17, David T. Lewis wrote: >>>>>>>> > Hannes, >>>>>>>> > >>>>>>>> > You did not cause the problem. It may have been me, I saved the >>>>>>>> > squeaksource.com >>>>>>>> > image from a VNC session (because I wanted to make an up to date >>>>>>>> > backup >>>>>>>> > of >>>>>>>> > it), >>>>>>>> > and I am now unable to log in to squeaksource. Maybe I triggered >>>>>>>> > a >>>>>>>> > bug >>>>>>>> > :-/ >>>>>>>> > >>>>>>>> > Can you please tell me if you are able to log in to your >>>>>>>> > http://squeaksource.com >>>>>>>> > page? I am getting authorization errors, and I suspect it is a >>>>>>>> > problem >>>>>>>> > that >>>>>>>> > affects >>>>>>>> > everyone. >>>>>>>> > >>>>>>>> > Thanks, >>>>>>>> > Dave >>>>>>>> > >>>>>>>> > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: >>>>>>>> >> Dave, >>>>>>>> >> >>>>>>>> >> Yes, I encounter problems. They might be related to what I just >>>>>>>> >> tried >>>>>>>> >> to >>>>>>>> >> do: >>>>>>>> >> >>>>>>>> >> I wanted to save an updated version of Morphic to the >>>>>>>> >> ProjectEtoys >>>>>>>> >> repository but by mistake I tried to commit it to the trunk. As >>>>>>>> >> I >>>>>>>> >> do >>>>>>>> >> not have commit rights to trunk this prevented me from changing >>>>>>>> >> it >>>>>>>> >> inadvertently. Later on I wanted to commit that version to >>>>>>>> >> ProjectEtoys. It did not work. >>>>>>>> >> >>>>>>>> >> --Hannes >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> On 10/5/17, David T. Lewis wrote: >>>>>>>> >> > I'm seeing problems with SqueakSource right now, trying to >>>>>>>> >> > figure >>>>>>>> >> > out >>>>>>>> >> > what is wrong. So the project may not be accessible right now >>>>>>>> >> > :-/ >>>>>>>> >> > >>>>>>>> >> > Dave >>>>>>>> >> > >>>>>>>> >> > >>>>>>>> >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: >>>>>>>> >> >> Karl, >>>>>>>> >> >> >>>>>>>> >> >> So far entering and existing the Etoys project works >>>>>>>> >> >> smoothly. >>>>>>>> >> >> >>>>>>>> >> >> Load mcz from into current Squeak 6.0a >>>>>>>> >> >> >>>>>>>> >> >> MCHttpRepository >>>>>>>> >> >> location: 'http://www.squeaksource.com/EtoysProject' >>>>>>>> >> >> user: '' >>>>>>>> >> >> password: '' >>>>>>>> >> >> >>>>>>>> >> >> The issue is about providing more settings when entering. >>>>>>>> >> >> >>>>>>>> >> >> Karl, do you want to be added to the list of developers? >>>>>>>> >> >> >>>>>>>> >> >> --HH >>>>>>>> >> >> >>>>>>>> >> >> On 10/5/17, H. Hirzel wrote: >>>>>>>> >> >> > PasteUpMorph is useful and the functions have to be >>>>>>>> >> >> > maintained. >>>>>>>> >> >> > >>>>>>>> >> >> > However adding more functions to Morph does not make sense. >>>>>>>> >> >> > >>>>>>>> >> >> > Squeak 6.0a >>>>>>>> >> >> > Morph selectors size 1345 >>>>>>>> >> >> > PasteUpMorph selectors size 530 >>>>>>>> >> >> > >>>>>>>> >> >> > --Hannes >>>>>>>> >> >> > >>>>>>>> >> >> > On 10/4/17, karl ramberg wrote: >>>>>>>> >> >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph >>>>>>>> >> >> >> is >>>>>>>> >> >> >> very >>>>>>>> >> >> >> useful >>>>>>>> >> >> >> in >>>>>>>> >> >> >> direct manipulation because of it's various layout and >>>>>>>> >> >> >> event >>>>>>>> >> >> >> handling >>>>>>>> >> >> >> options. It also act as a container of other morphs, with >>>>>>>> >> >> >> automatic >>>>>>>> >> >> >> layout, enumeration etc. >>>>>>>> >> >> >> I'm sure most of this could be refactored into Morph class >>>>>>>> >> >> >> or >>>>>>>> >> >> >> another >>>>>>>> >> >> >> class. >>>>>>>> >> >> >> >>>>>>>> >> >> >> Best, >>>>>>>> >> >> >> Karl >>>>>>>> >> >> >> >>>>>>>> >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel >>>>>>>> >> >> >> >>>>>>>> >> >> >> wrote: >>>>>>>> >> >> >> >>>>>>>> >> >> >>> +1 :) >>>>>>>> >> >> >>> >>>>>>>> >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and >>>>>>>> >> >> >>> keep >>>>>>>> >> >> >>> an >>>>>>>> >> >> >>> empty >>>>>>>> >> >> >>> PasteUpMorph subclass around for compatibility reasons. >>>>>>>> >> >> >>> So >>>>>>>> >> >> >>> many >>>>>>>> >> >> >>> ideas >>>>>>>> >> >> >>> have >>>>>>>> >> >> >>> been ported down to Morph class over the past years. New >>>>>>>> >> >> >>> applications >>>>>>>> >> >> >>> have >>>>>>>> >> >> >>> no reason to ever use other instances of PasteUpMorph. >>>>>>>> >> >> >>> >>>>>>>> >> >> >>> Best, >>>>>>>> >> >> >>> Marcel >>>>>>>> >> >> >>> >>>>>>>> >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel : >>>>>>>> >> >> >>> On 10/3/17, H. Hirzel wrote: >>>>>>>> >> >> >>> > Dave >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > your change set contains the class EtoysProject with >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > EtoysProject selectors >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences >>>>>>>> >> >> >>> > #saveGlobalPreferences >>>>>>>> >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry >>>>>>>> >> >> >>> > #finalExitActions:) >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > For complete configuration of a EtoysProject it might >>>>>>>> >> >> >>> > be >>>>>>>> >> >> >>> > necessary >>>>>>>> >> >> >>> > to >>>>>>>> >> >> >>> > do >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > Then Etoys related methods may be pushed down to >>>>>>>> >> >> >>> > EtoysPasteUpMorph. >>>>>>>> >> >> >>> >>>>>>>> >> >> >>> See screen shot attached. >>>>>>>> >> >> >>> >>>>>>>> >> >> >>> > And probably an Etoys specific subclass of WorldMenu >>>>>>>> >> >> >>> > would >>>>>>>> >> >> >>> > be >>>>>>>> >> >> >>> > fine >>>>>>>> >> >> >>> > as >>>>>>>> >> >> >>> well >>>>>>>> >> >> >>> > http://wiki.squeak.org/squeak/6461 >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > there is a test project [2] and some more information >>>>>>>> >> >> >>> > about >>>>>>>> >> >> >>> > adaptions >>>>>>>> >> >> >>> > needed because of the UI changes in the thread 'Etoys >>>>>>>> >> >> >>> > in >>>>>>>> >> >> >>> > 2017?' - >>>>>>>> >> >> >>> > UI >>>>>>>> >> >> >>> > preferences [3]. And it would be good to have Etoys >>>>>>>> >> >> >>> > methods >>>>>>>> >> >> >>> > / >>>>>>>> >> >> >>> > configuration separate [4]. >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > I suggest that you start go ahead and start >>>>>>>> >> >> >>> > implementing >>>>>>>> >> >> >>> > this >>>>>>>> >> >> >>> > while >>>>>>>> >> >> >>> > using a test Etoys project dropped onto the desktop. >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > --Hannes >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > [2] > You simply drop it in. E.g. download this project >>>>>>>> >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, >>>>>>>> >> >> >>> > 2017 >>>>>>>> >> >> >>> > at >>>>>>>> >> >> >>> > 11:01 >>>>>>>> >> >> >>> > AM >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM >>>>>>>> >> >> >>> > "I think it would be great if both Etoys and Scratch >>>>>>>> >> >> >>> > were >>>>>>>> >> >> >>> > easily >>>>>>>> >> >> >>> > loadable and unloadable in trunk." >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> > On 10/2/17, David T. Lewis wrote: >>>>>>>> >> >> >>> >> An EtoysProject is a project that is configured for >>>>>>>> >> >> >>> >> running >>>>>>>> >> >> >>> >> Etoys. >>>>>>>> >> >> >>> >> On >>>>>>>> >> >> >>> >> first entry to a new EtoysProject, the playground and >>>>>>>> >> >> >>> >> project >>>>>>>> >> >> >>> preferences >>>>>>>> >> >> >>> >> are initialized to provide an environment similar to >>>>>>>> >> >> >>> >> that >>>>>>>> >> >> >>> >> of >>>>>>>> >> >> >>> >> a >>>>>>>> >> >> >>> >> traditional >>>>>>>> >> >> >>> >> standalone Etoys image. >>>>>>>> >> >> >>> >> >>>>>>>> >> >> >>> >> Certain preferences that are required for Etoys are >>>>>>>> >> >> >>> >> initialized >>>>>>>> >> >> >>> >> on >>>>>>>> >> >> >>> >> project >>>>>>>> >> >> >>> >> entry, overriding their global preference values while >>>>>>>> >> >> >>> >> this >>>>>>>> >> >> >>> EtoysProject >>>>>>>> >> >> >>> >> is active. On leaving the project, these preferences >>>>>>>> >> >> >>> >> are >>>>>>>> >> >> >>> >> restored >>>>>>>> >> >> >>> >> to >>>>>>>> >> >> >>> >> their >>>>>>>> >> >> >>> >> previous values. >>>>>>>> >> >> >>> >> >>>>>>>> >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" >>>>>>>> >> >> >>> >> >>>>>>>> >> >> >>> >> Change set attached for a minimal implementation. >>>>>>>> >> >> >>> >> >>>>>>>> >> >> >>> >> Anyone with Etoys knowledge care to help? I do not >>>>>>>> >> >> >>> >> know >>>>>>>> >> >> >>> >> enough >>>>>>>> >> >> >>> >> about >>>>>>>> >> >> >>> >> Etoys >>>>>>>> >> >> >>> >> to fill in the rest of the initialization that will be >>>>>>>> >> >> >>> >> required, >>>>>>>> >> >> >>> >> but >>>>>>>> >> >> >>> >> it >>>>>>>> >> >> >>> >> should not be hard to do. >>>>>>>> >> >> >>> >> >>>>>>>> >> >> >>> >> Dave >>>>>>>> >> >> >>> >> >>>>>>>> >> >> >>> >> >>>>>>>> >> >> >>> > >>>>>>>> >> >> >>> >>>>>>>> >> >> >>> >>>>>>>> >> >> >>> >>>>>>>> >> >> >>> >>>>>>>> >> >> >>> >>>>>>>> >> >> >> >>>>>>>> >> >> > >>>>>>>> >> > >>>>>>>> >> > >>>>>>>> >> >> >>>>>>>> >> > >>>>>>>> >> > >>>>>>>> >> > >>>>>>>> >> >>>>>>>> > >>>>>>>> > >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > |
#fixUponLoad:seg:
as called in (see mark *******) ProjectLoading class loadImageSegment: morphOrList fromDirectory: aDirectoryOrNil withProjectView: existingView numberOfFontSubstitutes: numberOfFontSubstitutes substituteFont: substituteFont mgr: mgr | proj projectsToBeDeleted ef f | (f := (Flaps globalFlapTabWithID: 'Navigator' translated)) ifNotNil: [f hideFlap]. proj := morphOrList arrayOfRoots detect: [:mm | mm isKindOf: Project] ifNone: [^ nil]. numberOfFontSubstitutes > 0 ifTrue: [ proj projectParameterAt: #substitutedFont put: substituteFont]. ef := proj projectParameterAt: #eToysFont. (ef isNil or: [ef ~= substituteFont familySizeFace]) ifTrue: [ proj projectParameterAt: #substitutedFont put: substituteFont. ]. proj projectParameters at: #MultiSymbolInWrongPlace put: false. "Yoshiki did not put MultiSymbols into outPointers in older images!" morphOrList arrayOfRoots do: [:obj | obj fixUponLoad: proj seg: morphOrList "imageSegment ******* "]. (proj projectParameters at: #MultiSymbolInWrongPlace) ifTrue: [ morphOrList arrayOfRoots do: [:obj | (obj isKindOf: Set) ifTrue: [obj rehash]]]. proj resourceManager: mgr. "proj versionFrom: preStream." proj lastDirectory: aDirectoryOrNil. proj setParent: Project current. projectsToBeDeleted := OrderedCollection new. existingView == #none ifFalse: [ self makeExistingView: existingView project: proj projectsToBeDeleted: projectsToBeDeleted]. ChangeSorter allChangeSets add: proj changeSet. Project current projectParameters at: #deleteWhenEnteringNewProject ifPresent: [ :ignored | projectsToBeDeleted add: Project current. Project current removeParameter: #deleteWhenEnteringNewProject. ]. projectsToBeDeleted isEmpty ifFalse: [ proj projectParameters at: #projectsToBeDeleted put: projectsToBeDeleted. ]. proj removeParameter: #eToysFont. ^ proj On 10/5/17, H. Hirzel <[hidden email]> wrote: > To adapt > > #fixUponLoad:seg: > > is the issue here if we want to change MorphicProjects to > EtoysProjects when loading old Etoys pr projects. > > As > MorphicProject subclass: #EtoysProject > holds an now new instance variables the changes should be minimal. > Have all objects from aMorphicProject added to a new EtoysProject and > then a become: > > Comments? > > > > On 10/5/17, H. Hirzel <[hidden email]> wrote: >> Later on in >> >> >> ProjectLoading class>>loadImageSegment: morphOrList fromDirectory: >> aDirectoryOrNil withProjectView: existingView numberOfFontSubstitutes: >> numberOfFontSubstitutes substituteFont: substituteFont mgr: mgr >> >> >> >> | proj projectsToBeDeleted ef f | >> (f := (Flaps globalFlapTabWithID: 'Navigator' translated)) ifNotNil: >> [f hideFlap]. >> proj := morphOrList arrayOfRoots >> detect: [:mm | mm isKindOf: Project] >> ifNone: [^ nil]. >> >> >> The project 'proj' is read which is a MorphicProject. >> >> We need to convert this into an EtoysProject if we want to follow the >> path of upgrading MorphicProjects to EtoysProjects. >> >> Probably a good idea but a matter of discussion. >> >> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>> If you drop >>> >>> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>> >>> on to the desktop Squeak asks you for a replacement for >>> 'MultiNewParagraph' as this class was removed in April (The Trunk: >>> EToys-nice.292.mcz) >>> >>> Answer 'NewParagraph'. Then the Etoys project loads and gives some >>> error messages. Some are related to preferences. An issue to fix >>> first. >>> >>> Another issue is that actually a MorphicProject is created instead of >>> the new #EtoysProject type we want. >>> >>> I do not now yet where to do this. >>> The call chain passes through >>> >>> MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [1] >>> >>> The stream [2] has code and an object to be read by a SmartRefStream. >>> >>> More investigation needed. >>> >>> --Hannes >>> >>> >>> >>> >>> >>> >>> [1] MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject >>> >>> fileInObjectAndCodeForProject >>> "This file may contain: >>> 1) a fileIn of code >>> 2) just an object in SmartReferenceStream format >>> 3) both code and an object. >>> File it in and return the object. Note that self must be a >>> FileStream or RWBinaryOrTextStream. Maybe ReadWriteStream incorporate >>> RWBinaryOrTextStream?" >>> | refStream object | >>> self halt. >>> self text. >>> self peek asciiValue = 4 >>> ifTrue: [ "pure object file" >>> self binary. >>> refStream := SmartRefStream on: self. >>> object := refStream nextAndClose] >>> ifFalse: [ "objects mixed with a fileIn" >>> self fileInProject. "reads code and objects, then closes the file" >>> self binary. >>> object := SmartRefStream scannedObject]. "set by side effect of one >>> of the chunks" >>> SmartRefStream scannedObject: nil. "clear scannedObject" >>> ^ object >>> >>> >>> >>> >>> >>> >>> [2] Content of the Etoys pr file readstream >>> >>> '''From etoys4.0 of 9 October 2008 [latest update: #2319] on 18 >>> September 2009 at 3:39:18 pm''! >>> | cont | (Smalltalk includesKey: #MorphExtensionPlus) ifFalse: [self >>> inform: ''This project cannot be loaded into an older system.\Please >>> use an OLPC Etoys compatible image.'' translated withCRs. >>> cont _ thisContext. >>> [cont notNil] whileTrue: [ >>> cont selector == #handleEvent: ifTrue: [cont return: nil]. >>> cont _ cont sender. >>> ]]! >>> >>> !ObjectScanner new initialize! >>> >>> >>> >>> !self smartRefStream! >>> >>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>> This later on goes to >>>> >>>> >>>> ProjectLoading class>> >>>> >>>> openName: aFileName stream: preStream fromDirectory: aDirectoryOrNil >>>> withProjectView: existingView clearOriginFlag: clearOriginFlag >>>> "Reconstitute a Morph from the selected file, presumed to >>>> represent a Morph saved via the SmartRefStream mechanism, and open it >>>> in an appropriate Morphic world." >>>> >>>> | morphOrList archive mgr substituteFont numberOfFontSubstitutes >>>> resultArray anObject project manifests dict | >>>> (self checkStream: preStream) ifTrue: [^ self]. >>>> ProgressNotification signal: '0.2'. >>>> archive := preStream isZipArchive >>>> ifTrue:[ZipArchive new readFrom: preStream] >>>> ifFalse:[nil]. >>>> archive ifNotNil:[ >>>> manifests := (archive membersMatching: '*manifest'). >>>> (manifests size = 1 and: [((dict := self parseManifest: manifests >>>> first contents) at: 'Project-Format' ifAbsent: []) = 'S-Expression']) >>>> ifTrue: [ >>>> ^ (self respondsTo: >>>> #openSexpProjectDict:stream:fromDirectory:withProjectView:) >>>> ifTrue: [self openSexpProjectDict: dict stream: preStream >>>> fromDirectory: aDirectoryOrNil withProjectView: existingView] >>>> ifFalse: [self inform: 'Cannot load S-Expression format projects >>>> without Etoys' translated]]]. >>>> >>>> morphOrList := self morphOrList: aFileName stream: preStream >>>> fromDirectory: aDirectoryOrNil archive: archive. >>>> morphOrList ifNil: [^ self]. >>>> ProgressNotification signal: '0.4'. >>>> resultArray := self fileInName: aFileName archive: archive >>>> morphOrList: morphOrList. >>>> anObject := resultArray first. >>>> numberOfFontSubstitutes := resultArray second. >>>> substituteFont := resultArray third. >>>> mgr := resultArray fourth. >>>> preStream close. >>>> ProgressNotification signal: '0.7'. >>>> "the hard part is over" >>>> (anObject isKindOf: ImageSegment) ifTrue: [ >>>> project := self loadImageSegment: anObject >>>> fromDirectory: aDirectoryOrNil >>>> withProjectView: existingView >>>> numberOfFontSubstitutes: numberOfFontSubstitutes >>>> substituteFont: substituteFont >>>> mgr: mgr. >>>> project noteManifestDetailsIn: dict. >>>> project removeParameter: #sugarProperties. >>>> Smalltalk at: #SugarPropertiesNotification ifPresent: [:sp | >>>> sp signal ifNotNil: [:props | >>>> project keepSugarProperties: props monitor: true]]. >>>> clearOriginFlag ifTrue: [project forgetExistingURL]. >>>> ProgressNotification signal: '0.8'. >>>> ^ project >>>> ifNil: [self inform: 'No project found in this file' translated] >>>> ifNotNil: [ProjectEntryNotification signal: project]]. >>>> Project current openViewAndEnter: anObject >>>> >>>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>>> A few steps more: when I drop a project file onto the desktop the >>>>> following methods are called >>>>> >>>>> PasteUpMorph handleDroppedItem: anItem event: anEvent >>>>> ExternalDropHandler lookupExternalDropHandler: anItem >>>>> ExternalDropHandler handle: dropStream in: pasteUp dropEvent: anEvent >>>>> ExternalDropHandler class defaultProjectHandler >>>>> >>>>> ProjectLoading openOn: aMultiByteFileStream: >>>>> "'/home/user/Downloads/CarAndPen.014(2).pr'" >>>>> >>>>> So we have to fix ProjectLoading >>>>> >>>>> >>>>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>>>> Note: MorphWithGrid does not really make sense unless you have a >>>>>> superclass MorphWithDnD (Drag and Drop) which handles the morph >>>>>> droped >>>>>> and makes them 'sticky'. >>>>>> >>>>>> Though refactoring PastUpMorph by inserting superclasses is an issue >>>>>> I >>>>>> suggest to put this on the backburner at the moment and focus on >>>>>> getting the Etoys setting straight as Dave suggests in the initial >>>>>> mail. >>>>>> >>>>>> A use case to follow: What happens when you drop the exapme project >>>>>> >>>>>> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>>>>> >>>>>> on to the desktop. >>>>>> >>>>>> ExternalDropHandler>>handleDroppedItem:event: [21] >>>>>> >>>>>> is called in this case and then dispatches to do the necessary things >>>>>> to deal with the >>>>>> ExampleEtoys/CarAndPen.014.pr >>>>>> file. >>>>>> >>>>>> There is a message box which needs attention. >>>>>> >>>>>> And I assume that in the course of these events some settings are >>>>>> necessary. Most prominently to choose EtoysProject and no longer >>>>>> MorphicProject >>>>>> >>>>>> --Hannes >>>>>> >>>>>> [21] http://wiki.squeak.org/squeak/4283 >>>>>> >>>>>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>>>>> I added a demo file Morphic-hjh.1354 [11] to the repository >>>>>>> >>>>>>> MCHttpRepository >>>>>>> location: 'http://www.squeaksource.com/EtoysProject' >>>>>>> user: '' >>>>>>> password: '' >>>>>>> >>>>>>> This file should be loaded into a fully updated trunk test image. >>>>>>> >>>>>>> I agree with what Tobias noted earlier in this thread that it is >>>>>>> probably better to avoid renaming PasteUpMorph. I see as a solution >>>>>>> to >>>>>>> easier deal with PasteUpMorph functions the insertion of >>>>>>> superclasses >>>>>>> of PasteUpMorph (and thus subclasses of BorderedMorph) [12] >>>>>>> >>>>>>> The next thing I will come up with is a class >>>>>>> MorphWithDnD >>>>>>> >>>>>>> a morph class which supports drag and drop. >>>>>>> As a superclass of MorphWithGrid >>>>>>> >>>>>>> A third class would be PlayField which contains all the Etoys >>>>>>> selectors. >>>>>>> In an image without Etoys that class would then be just empty. >>>>>>> >>>>>>> --Hannes >>>>>>> >>>>>>> >>>>>>> -------------------- >>>>>>> >>>>>>> [11] >>>>>>> Name: Morphic-hjh.1354 >>>>>>> Author: hjh >>>>>>> Time: 5 October 2017, 11:51:21.903338 am >>>>>>> UUID: e96d5a46-453f-418c-b95f-26f1674ca329 >>>>>>> Ancestors: Morphic-hjh.1353 >>>>>>> >>>>>>> Demo which shows how to remove selectors from PasteUpMorph and >>>>>>> insert >>>>>>> them into a newy created superclass >>>>>>> >>>>>>> Inserted >>>>>>> MorphWithGrid >>>>>>> as a subclass of BorderedMorph and superclass of >>>>>>> PasteUpMorph >>>>>>> >>>>>>> gridding protocol was moved from >>>>>>> PasteUpMorph >>>>>>> to >>>>>>> MorphWithGrid >>>>>>> >>>>>>> >>>>>>> Morphic-hjh.1353: >>>>>>> Ancestors: Morphic-hjh.1352 >>>>>>> >>>>>>> Note: I tried to save this update several times. That accounts for >>>>>>> the >>>>>>> empty updates in between. >>>>>>> >>>>>>> >>>>>>> --------- >>>>>>> [12] >>>>>>> After filing in Morphic-hjh.1354 >>>>>>> PasteUpMorph printHierarchy ' >>>>>>> ProtoObject #() >>>>>>> Object #() >>>>>>> Morph #() >>>>>>> BorderedMorph #() >>>>>>> MorphWithGrid #(''griddingOn'') >>>>>>> PasteUpMorph #(...) >>>>>>> ComponentLayout #(...) >>>>>>> EventTimeline #(...) >>>>>>> GeeBookPageMorph #(...) >>>>>>> IndexTabs #(...) >>>>>>> MouseEventEditor #(...) >>>>>>> PartsBin #(...) >>>>>>> QuickGuideHolderMorph #(...) >>>>>>> SyntaxTestMethods #(...) >>>>>>> TetrisBoard #(...) >>>>>>> TextPlusPasteUpMorph #(...) >>>>>>> WiWPasteUpMorph #(...) >>>>>>> MVCWiWPasteUpMorph #(...) >>>>>>> Worldlet #(...) >>>>>>> ZASMScriptMorph #(...) >>>>>>> ZoomAndScrollMorph #(...)' >>>>>>> >>>>>>> On 10/5/17, Marcel Taeumel <[hidden email]> wrote: >>>>>>>> Done. :) >>>>>>>> >>>>>>>> Best, >>>>>>>> Marcel >>>>>>>> Am 05.10.2017 06:21:44 schrieb David T. Lewis >>>>>>>> <[hidden email]>: >>>>>>>> We did have a problem on squeaksource.com, but I think it is mostly >>>>>>>> resolved >>>>>>>> now. >>>>>>>> >>>>>>>> Hannes, >>>>>>>> >>>>>>>> The password reset for your HJH account was lost, so I set it back >>>>>>>> to >>>>>>>> the >>>>>>>> new password that I sent to you earlier in private email. Hopefully >>>>>>>> your >>>>>>>> access is working again now. >>>>>>>> >>>>>>>> Marcel, >>>>>>>> >>>>>>>> Your new account disappeared when squeaksource recovered from some >>>>>>>> internal >>>>>>>> problem. Sorry, I do not know the cause. But could I ask you to >>>>>>>> please >>>>>>>> register >>>>>>>> again on squeaksource.com, and I will then add you back to >>>>>>>> EtoysProject? >>>>>>>> >>>>>>>> Sorry for the disruption, >>>>>>>> Dave >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Oct 05, 2017 at 02:03:47AM +0200, H. Hirzel wrote: >>>>>>>>> Dave >>>>>>>>> >>>>>>>>> Earlier today login worked. Currently it does not. >>>>>>>>> >>>>>>>>> --Hannes >>>>>>>>> >>>>>>>>> On 10/5/17, David T. Lewis wrote: >>>>>>>>> > Hannes, >>>>>>>>> > >>>>>>>>> > You did not cause the problem. It may have been me, I saved the >>>>>>>>> > squeaksource.com >>>>>>>>> > image from a VNC session (because I wanted to make an up to date >>>>>>>>> > backup >>>>>>>>> > of >>>>>>>>> > it), >>>>>>>>> > and I am now unable to log in to squeaksource. Maybe I triggered >>>>>>>>> > a >>>>>>>>> > bug >>>>>>>>> > :-/ >>>>>>>>> > >>>>>>>>> > Can you please tell me if you are able to log in to your >>>>>>>>> > http://squeaksource.com >>>>>>>>> > page? I am getting authorization errors, and I suspect it is a >>>>>>>>> > problem >>>>>>>>> > that >>>>>>>>> > affects >>>>>>>>> > everyone. >>>>>>>>> > >>>>>>>>> > Thanks, >>>>>>>>> > Dave >>>>>>>>> > >>>>>>>>> > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: >>>>>>>>> >> Dave, >>>>>>>>> >> >>>>>>>>> >> Yes, I encounter problems. They might be related to what I just >>>>>>>>> >> tried >>>>>>>>> >> to >>>>>>>>> >> do: >>>>>>>>> >> >>>>>>>>> >> I wanted to save an updated version of Morphic to the >>>>>>>>> >> ProjectEtoys >>>>>>>>> >> repository but by mistake I tried to commit it to the trunk. As >>>>>>>>> >> I >>>>>>>>> >> do >>>>>>>>> >> not have commit rights to trunk this prevented me from changing >>>>>>>>> >> it >>>>>>>>> >> inadvertently. Later on I wanted to commit that version to >>>>>>>>> >> ProjectEtoys. It did not work. >>>>>>>>> >> >>>>>>>>> >> --Hannes >>>>>>>>> >> >>>>>>>>> >> >>>>>>>>> >> >>>>>>>>> >> On 10/5/17, David T. Lewis wrote: >>>>>>>>> >> > I'm seeing problems with SqueakSource right now, trying to >>>>>>>>> >> > figure >>>>>>>>> >> > out >>>>>>>>> >> > what is wrong. So the project may not be accessible right now >>>>>>>>> >> > :-/ >>>>>>>>> >> > >>>>>>>>> >> > Dave >>>>>>>>> >> > >>>>>>>>> >> > >>>>>>>>> >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: >>>>>>>>> >> >> Karl, >>>>>>>>> >> >> >>>>>>>>> >> >> So far entering and existing the Etoys project works >>>>>>>>> >> >> smoothly. >>>>>>>>> >> >> >>>>>>>>> >> >> Load mcz from into current Squeak 6.0a >>>>>>>>> >> >> >>>>>>>>> >> >> MCHttpRepository >>>>>>>>> >> >> location: 'http://www.squeaksource.com/EtoysProject' >>>>>>>>> >> >> user: '' >>>>>>>>> >> >> password: '' >>>>>>>>> >> >> >>>>>>>>> >> >> The issue is about providing more settings when entering. >>>>>>>>> >> >> >>>>>>>>> >> >> Karl, do you want to be added to the list of developers? >>>>>>>>> >> >> >>>>>>>>> >> >> --HH >>>>>>>>> >> >> >>>>>>>>> >> >> On 10/5/17, H. Hirzel wrote: >>>>>>>>> >> >> > PasteUpMorph is useful and the functions have to be >>>>>>>>> >> >> > maintained. >>>>>>>>> >> >> > >>>>>>>>> >> >> > However adding more functions to Morph does not make >>>>>>>>> >> >> > sense. >>>>>>>>> >> >> > >>>>>>>>> >> >> > Squeak 6.0a >>>>>>>>> >> >> > Morph selectors size 1345 >>>>>>>>> >> >> > PasteUpMorph selectors size 530 >>>>>>>>> >> >> > >>>>>>>>> >> >> > --Hannes >>>>>>>>> >> >> > >>>>>>>>> >> >> > On 10/4/17, karl ramberg wrote: >>>>>>>>> >> >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph >>>>>>>>> >> >> >> is >>>>>>>>> >> >> >> very >>>>>>>>> >> >> >> useful >>>>>>>>> >> >> >> in >>>>>>>>> >> >> >> direct manipulation because of it's various layout and >>>>>>>>> >> >> >> event >>>>>>>>> >> >> >> handling >>>>>>>>> >> >> >> options. It also act as a container of other morphs, with >>>>>>>>> >> >> >> automatic >>>>>>>>> >> >> >> layout, enumeration etc. >>>>>>>>> >> >> >> I'm sure most of this could be refactored into Morph >>>>>>>>> >> >> >> class >>>>>>>>> >> >> >> or >>>>>>>>> >> >> >> another >>>>>>>>> >> >> >> class. >>>>>>>>> >> >> >> >>>>>>>>> >> >> >> Best, >>>>>>>>> >> >> >> Karl >>>>>>>>> >> >> >> >>>>>>>>> >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel >>>>>>>>> >> >> >> >>>>>>>>> >> >> >> wrote: >>>>>>>>> >> >> >> >>>>>>>>> >> >> >>> +1 :) >>>>>>>>> >> >> >>> >>>>>>>>> >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and >>>>>>>>> >> >> >>> keep >>>>>>>>> >> >> >>> an >>>>>>>>> >> >> >>> empty >>>>>>>>> >> >> >>> PasteUpMorph subclass around for compatibility reasons. >>>>>>>>> >> >> >>> So >>>>>>>>> >> >> >>> many >>>>>>>>> >> >> >>> ideas >>>>>>>>> >> >> >>> have >>>>>>>>> >> >> >>> been ported down to Morph class over the past years. New >>>>>>>>> >> >> >>> applications >>>>>>>>> >> >> >>> have >>>>>>>>> >> >> >>> no reason to ever use other instances of PasteUpMorph. >>>>>>>>> >> >> >>> >>>>>>>>> >> >> >>> Best, >>>>>>>>> >> >> >>> Marcel >>>>>>>>> >> >> >>> >>>>>>>>> >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel : >>>>>>>>> >> >> >>> On 10/3/17, H. Hirzel wrote: >>>>>>>>> >> >> >>> > Dave >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > your change set contains the class EtoysProject with >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > EtoysProject selectors >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences >>>>>>>>> >> >> >>> > #saveGlobalPreferences >>>>>>>>> >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry >>>>>>>>> >> >> >>> > #finalExitActions:) >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > For complete configuration of a EtoysProject it might >>>>>>>>> >> >> >>> > be >>>>>>>>> >> >> >>> > necessary >>>>>>>>> >> >> >>> > to >>>>>>>>> >> >> >>> > do >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > Then Etoys related methods may be pushed down to >>>>>>>>> >> >> >>> > EtoysPasteUpMorph. >>>>>>>>> >> >> >>> >>>>>>>>> >> >> >>> See screen shot attached. >>>>>>>>> >> >> >>> >>>>>>>>> >> >> >>> > And probably an Etoys specific subclass of WorldMenu >>>>>>>>> >> >> >>> > would >>>>>>>>> >> >> >>> > be >>>>>>>>> >> >> >>> > fine >>>>>>>>> >> >> >>> > as >>>>>>>>> >> >> >>> well >>>>>>>>> >> >> >>> > http://wiki.squeak.org/squeak/6461 >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > there is a test project [2] and some more information >>>>>>>>> >> >> >>> > about >>>>>>>>> >> >> >>> > adaptions >>>>>>>>> >> >> >>> > needed because of the UI changes in the thread 'Etoys >>>>>>>>> >> >> >>> > in >>>>>>>>> >> >> >>> > 2017?' - >>>>>>>>> >> >> >>> > UI >>>>>>>>> >> >> >>> > preferences [3]. And it would be good to have Etoys >>>>>>>>> >> >> >>> > methods >>>>>>>>> >> >> >>> > / >>>>>>>>> >> >> >>> > configuration separate [4]. >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > I suggest that you start go ahead and start >>>>>>>>> >> >> >>> > implementing >>>>>>>>> >> >> >>> > this >>>>>>>>> >> >> >>> > while >>>>>>>>> >> >> >>> > using a test Etoys project dropped onto the desktop. >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > --Hannes >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > [2] > You simply drop it in. E.g. download this >>>>>>>>> >> >> >>> > project >>>>>>>>> >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, >>>>>>>>> >> >> >>> > 2017 >>>>>>>>> >> >> >>> > at >>>>>>>>> >> >> >>> > 11:01 >>>>>>>>> >> >> >>> > AM >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM >>>>>>>>> >> >> >>> > "I think it would be great if both Etoys and Scratch >>>>>>>>> >> >> >>> > were >>>>>>>>> >> >> >>> > easily >>>>>>>>> >> >> >>> > loadable and unloadable in trunk." >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> > On 10/2/17, David T. Lewis wrote: >>>>>>>>> >> >> >>> >> An EtoysProject is a project that is configured for >>>>>>>>> >> >> >>> >> running >>>>>>>>> >> >> >>> >> Etoys. >>>>>>>>> >> >> >>> >> On >>>>>>>>> >> >> >>> >> first entry to a new EtoysProject, the playground and >>>>>>>>> >> >> >>> >> project >>>>>>>>> >> >> >>> preferences >>>>>>>>> >> >> >>> >> are initialized to provide an environment similar to >>>>>>>>> >> >> >>> >> that >>>>>>>>> >> >> >>> >> of >>>>>>>>> >> >> >>> >> a >>>>>>>>> >> >> >>> >> traditional >>>>>>>>> >> >> >>> >> standalone Etoys image. >>>>>>>>> >> >> >>> >> >>>>>>>>> >> >> >>> >> Certain preferences that are required for Etoys are >>>>>>>>> >> >> >>> >> initialized >>>>>>>>> >> >> >>> >> on >>>>>>>>> >> >> >>> >> project >>>>>>>>> >> >> >>> >> entry, overriding their global preference values >>>>>>>>> >> >> >>> >> while >>>>>>>>> >> >> >>> >> this >>>>>>>>> >> >> >>> EtoysProject >>>>>>>>> >> >> >>> >> is active. On leaving the project, these preferences >>>>>>>>> >> >> >>> >> are >>>>>>>>> >> >> >>> >> restored >>>>>>>>> >> >> >>> >> to >>>>>>>>> >> >> >>> >> their >>>>>>>>> >> >> >>> >> previous values. >>>>>>>>> >> >> >>> >> >>>>>>>>> >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" >>>>>>>>> >> >> >>> >> >>>>>>>>> >> >> >>> >> Change set attached for a minimal implementation. >>>>>>>>> >> >> >>> >> >>>>>>>>> >> >> >>> >> Anyone with Etoys knowledge care to help? I do not >>>>>>>>> >> >> >>> >> know >>>>>>>>> >> >> >>> >> enough >>>>>>>>> >> >> >>> >> about >>>>>>>>> >> >> >>> >> Etoys >>>>>>>>> >> >> >>> >> to fill in the rest of the initialization that will >>>>>>>>> >> >> >>> >> be >>>>>>>>> >> >> >>> >> required, >>>>>>>>> >> >> >>> >> but >>>>>>>>> >> >> >>> >> it >>>>>>>>> >> >> >>> >> should not be hard to do. >>>>>>>>> >> >> >>> >> >>>>>>>>> >> >> >>> >> Dave >>>>>>>>> >> >> >>> >> >>>>>>>>> >> >> >>> >> >>>>>>>>> >> >> >>> > >>>>>>>>> >> >> >>> >>>>>>>>> >> >> >>> >>>>>>>>> >> >> >>> >>>>>>>>> >> >> >>> >>>>>>>>> >> >> >>> >>>>>>>>> >> >> >> >>>>>>>>> >> >> > >>>>>>>>> >> > >>>>>>>>> >> > >>>>>>>>> >> >> >>>>>>>>> >> > >>>>>>>>> >> > >>>>>>>>> >> > >>>>>>>>> >> >>>>>>>>> > >>>>>>>>> > >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > |
On 10/5/17, H. Hirzel <[hidden email]> wrote:
> #fixUponLoad:seg: > > as called in (see mark *******) > > > ProjectLoading class > > loadImageSegment: morphOrList fromDirectory: aDirectoryOrNil > withProjectView: existingView numberOfFontSubstitutes: > numberOfFontSubstitutes substituteFont: substituteFont mgr: mgr > > | proj projectsToBeDeleted ef f | > > (f := (Flaps globalFlapTabWithID: 'Navigator' translated)) ifNotNil: > [f hideFlap]. > proj := morphOrList arrayOfRoots > detect: [:mm | mm isKindOf: Project] > ifNone: [^ nil]. > numberOfFontSubstitutes > 0 ifTrue: [ > proj projectParameterAt: #substitutedFont put: substituteFont]. > ef := proj projectParameterAt: #eToysFont. > (ef isNil or: [ef ~= substituteFont familySizeFace]) ifTrue: [ > proj projectParameterAt: #substitutedFont put: substituteFont. > ]. > > proj projectParameters at: #MultiSymbolInWrongPlace put: false. > "Yoshiki did not put MultiSymbols into outPointers in older images!" > > morphOrList arrayOfRoots do: [:obj | > obj fixUponLoad: proj seg: morphOrList "imageSegment ******* "]. > > (proj projectParameters at: #MultiSymbolInWrongPlace) ifTrue: [ > morphOrList arrayOfRoots do: [:obj | (obj isKindOf: Set) ifTrue: > [obj rehash]]]. > > proj resourceManager: mgr. > "proj versionFrom: preStream." > proj lastDirectory: aDirectoryOrNil. > proj setParent: Project current. > projectsToBeDeleted := OrderedCollection new. > existingView == #none ifFalse: [ > self makeExistingView: existingView project: proj > projectsToBeDeleted: projectsToBeDeleted]. > ChangeSorter allChangeSets add: proj changeSet. > Project current projectParameters > at: #deleteWhenEnteringNewProject > ifPresent: [ :ignored | > projectsToBeDeleted add: Project current. > Project current removeParameter: #deleteWhenEnteringNewProject. > ]. > projectsToBeDeleted isEmpty ifFalse: [ > proj projectParameters > at: #projectsToBeDeleted > put: projectsToBeDeleted. > ]. > proj removeParameter: #eToysFont. > ^ proj > > On 10/5/17, H. Hirzel <[hidden email]> wrote: >> To adapt >> >> #fixUponLoad:seg: >> >> is the issue here if we want to change MorphicProjects to >> EtoysProjects when loading old Etoys pr projects. >> >> As >> MorphicProject subclass: #EtoysProject >> holds an now new instance variables the changes should be minimal. >> Have all objects from aMorphicProject added to a new EtoysProject and >> then a become: >> >> Comments? >> >> >> >> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>> Later on in >>> >>> >>> ProjectLoading class>>loadImageSegment: morphOrList fromDirectory: >>> aDirectoryOrNil withProjectView: existingView numberOfFontSubstitutes: >>> numberOfFontSubstitutes substituteFont: substituteFont mgr: mgr >>> >>> >>> >>> | proj projectsToBeDeleted ef f | >>> (f := (Flaps globalFlapTabWithID: 'Navigator' translated)) ifNotNil: >>> [f hideFlap]. >>> proj := morphOrList arrayOfRoots >>> detect: [:mm | mm isKindOf: Project] >>> ifNone: [^ nil]. >>> >>> >>> The project 'proj' is read which is a MorphicProject. >>> >>> We need to convert this into an EtoysProject if we want to follow the >>> path of upgrading MorphicProjects to EtoysProjects. >>> >>> Probably a good idea but a matter of discussion. >>> >>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>> If you drop >>>> >>>> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>>> >>>> on to the desktop Squeak asks you for a replacement for >>>> 'MultiNewParagraph' as this class was removed in April (The Trunk: >>>> EToys-nice.292.mcz) >>>> >>>> Answer 'NewParagraph'. Then the Etoys project loads and gives some >>>> error messages. Some are related to preferences. An issue to fix >>>> first. >>>> >>>> Another issue is that actually a MorphicProject is created instead of >>>> the new #EtoysProject type we want. >>>> >>>> I do not now yet where to do this. >>>> The call chain passes through >>>> >>>> MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject [1] >>>> >>>> The stream [2] has code and an object to be read by a SmartRefStream. >>>> >>>> More investigation needed. >>>> >>>> --Hannes >>>> >>>> >>>> >>>> >>>> >>>> >>>> [1] MultiByteBinaryOrTextStream>>fileInObjectAndCodeForProject >>>> >>>> fileInObjectAndCodeForProject >>>> "This file may contain: >>>> 1) a fileIn of code >>>> 2) just an object in SmartReferenceStream format >>>> 3) both code and an object. >>>> File it in and return the object. Note that self must be a >>>> FileStream or RWBinaryOrTextStream. Maybe ReadWriteStream incorporate >>>> RWBinaryOrTextStream?" >>>> | refStream object | >>>> self halt. >>>> self text. >>>> self peek asciiValue = 4 >>>> ifTrue: [ "pure object file" >>>> self binary. >>>> refStream := SmartRefStream on: self. >>>> object := refStream nextAndClose] >>>> ifFalse: [ "objects mixed with a fileIn" >>>> self fileInProject. "reads code and objects, then closes the file" >>>> self binary. >>>> object := SmartRefStream scannedObject]. "set by side effect of one >>>> of the chunks" >>>> SmartRefStream scannedObject: nil. "clear scannedObject" >>>> ^ object >>>> >>>> >>>> >>>> >>>> >>>> >>>> [2] Content of the Etoys pr file readstream >>>> >>>> '''From etoys4.0 of 9 October 2008 [latest update: #2319] on 18 >>>> September 2009 at 3:39:18 pm''! >>>> | cont | (Smalltalk includesKey: #MorphExtensionPlus) ifFalse: [self >>>> inform: ''This project cannot be loaded into an older system.\Please >>>> use an OLPC Etoys compatible image.'' translated withCRs. >>>> cont _ thisContext. >>>> [cont notNil] whileTrue: [ >>>> cont selector == #handleEvent: ifTrue: [cont return: nil]. >>>> cont _ cont sender. >>>> ]]! >>>> >>>> !ObjectScanner new initialize! >>>> >>>> >>>> >>>> !self smartRefStream! >>>> >>>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>>> This later on goes to >>>>> >>>>> >>>>> ProjectLoading class>> >>>>> >>>>> openName: aFileName stream: preStream fromDirectory: aDirectoryOrNil >>>>> withProjectView: existingView clearOriginFlag: clearOriginFlag >>>>> "Reconstitute a Morph from the selected file, presumed to >>>>> represent a Morph saved via the SmartRefStream mechanism, and open it >>>>> in an appropriate Morphic world." >>>>> >>>>> | morphOrList archive mgr substituteFont numberOfFontSubstitutes >>>>> resultArray anObject project manifests dict | >>>>> (self checkStream: preStream) ifTrue: [^ self]. >>>>> ProgressNotification signal: '0.2'. >>>>> archive := preStream isZipArchive >>>>> ifTrue:[ZipArchive new readFrom: preStream] >>>>> ifFalse:[nil]. >>>>> archive ifNotNil:[ >>>>> manifests := (archive membersMatching: '*manifest'). >>>>> (manifests size = 1 and: [((dict := self parseManifest: manifests >>>>> first contents) at: 'Project-Format' ifAbsent: []) = 'S-Expression']) >>>>> ifTrue: [ >>>>> ^ (self respondsTo: >>>>> #openSexpProjectDict:stream:fromDirectory:withProjectView:) >>>>> ifTrue: [self openSexpProjectDict: dict stream: preStream >>>>> fromDirectory: aDirectoryOrNil withProjectView: existingView] >>>>> ifFalse: [self inform: 'Cannot load S-Expression format projects >>>>> without Etoys' translated]]]. >>>>> >>>>> morphOrList := self morphOrList: aFileName stream: preStream >>>>> fromDirectory: aDirectoryOrNil archive: archive. >>>>> morphOrList ifNil: [^ self]. >>>>> ProgressNotification signal: '0.4'. >>>>> resultArray := self fileInName: aFileName archive: archive >>>>> morphOrList: morphOrList. >>>>> anObject := resultArray first. >>>>> numberOfFontSubstitutes := resultArray second. >>>>> substituteFont := resultArray third. >>>>> mgr := resultArray fourth. >>>>> preStream close. >>>>> ProgressNotification signal: '0.7'. >>>>> "the hard part is over" >>>>> (anObject isKindOf: ImageSegment) ifTrue: [ >>>>> project := self loadImageSegment: anObject >>>>> fromDirectory: aDirectoryOrNil >>>>> withProjectView: existingView >>>>> numberOfFontSubstitutes: numberOfFontSubstitutes >>>>> substituteFont: substituteFont >>>>> mgr: mgr. >>>>> project noteManifestDetailsIn: dict. >>>>> project removeParameter: #sugarProperties. >>>>> Smalltalk at: #SugarPropertiesNotification ifPresent: [:sp | >>>>> sp signal ifNotNil: [:props | >>>>> project keepSugarProperties: props monitor: true]]. >>>>> clearOriginFlag ifTrue: [project forgetExistingURL]. >>>>> ProgressNotification signal: '0.8'. >>>>> ^ project >>>>> ifNil: [self inform: 'No project found in this file' translated] >>>>> ifNotNil: [ProjectEntryNotification signal: project]]. >>>>> Project current openViewAndEnter: anObject >>>>> >>>>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>>>> A few steps more: when I drop a project file onto the desktop the >>>>>> following methods are called >>>>>> >>>>>> PasteUpMorph handleDroppedItem: anItem event: anEvent >>>>>> ExternalDropHandler lookupExternalDropHandler: anItem >>>>>> ExternalDropHandler handle: dropStream in: pasteUp dropEvent: anEvent >>>>>> ExternalDropHandler class defaultProjectHandler >>>>>> >>>>>> ProjectLoading openOn: aMultiByteFileStream: >>>>>> "'/home/user/Downloads/CarAndPen.014(2).pr'" >>>>>> >>>>>> So we have to fix ProjectLoading >>>>>> >>>>>> >>>>>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>>>>> Note: MorphWithGrid does not really make sense unless you have a >>>>>>> superclass MorphWithDnD (Drag and Drop) which handles the morph >>>>>>> droped >>>>>>> and makes them 'sticky'. >>>>>>> >>>>>>> Though refactoring PastUpMorph by inserting superclasses is an issue >>>>>>> I >>>>>>> suggest to put this on the backburner at the moment and focus on >>>>>>> getting the Etoys setting straight as Dave suggests in the initial >>>>>>> mail. >>>>>>> >>>>>>> A use case to follow: What happens when you drop the exapme project >>>>>>> >>>>>>> >>>>>>> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>>>>>> >>>>>>> on to the desktop. >>>>>>> >>>>>>> ExternalDropHandler>>handleDroppedItem:event: [21] >>>>>>> >>>>>>> is called in this case and then dispatches to do the necessary >>>>>>> things >>>>>>> to deal with the >>>>>>> ExampleEtoys/CarAndPen.014.pr >>>>>>> file. >>>>>>> >>>>>>> There is a message box which needs attention. >>>>>>> >>>>>>> And I assume that in the course of these events some settings are >>>>>>> necessary. Most prominently to choose EtoysProject and no longer >>>>>>> MorphicProject >>>>>>> >>>>>>> --Hannes >>>>>>> >>>>>>> [21] http://wiki.squeak.org/squeak/4283 >>>>>>> >>>>>>> On 10/5/17, H. Hirzel <[hidden email]> wrote: >>>>>>>> I added a demo file Morphic-hjh.1354 [11] to the repository >>>>>>>> >>>>>>>> MCHttpRepository >>>>>>>> location: 'http://www.squeaksource.com/EtoysProject' >>>>>>>> user: '' >>>>>>>> password: '' >>>>>>>> >>>>>>>> This file should be loaded into a fully updated trunk test image. >>>>>>>> >>>>>>>> I agree with what Tobias noted earlier in this thread that it is >>>>>>>> probably better to avoid renaming PasteUpMorph. I see as a solution >>>>>>>> to >>>>>>>> easier deal with PasteUpMorph functions the insertion of >>>>>>>> superclasses >>>>>>>> of PasteUpMorph (and thus subclasses of BorderedMorph) [12] >>>>>>>> >>>>>>>> The next thing I will come up with is a class >>>>>>>> MorphWithDnD >>>>>>>> >>>>>>>> a morph class which supports drag and drop. >>>>>>>> As a superclass of MorphWithGrid >>>>>>>> >>>>>>>> A third class would be PlayField which contains all the Etoys >>>>>>>> selectors. >>>>>>>> In an image without Etoys that class would then be just empty. >>>>>>>> >>>>>>>> --Hannes >>>>>>>> >>>>>>>> >>>>>>>> -------------------- >>>>>>>> >>>>>>>> [11] >>>>>>>> Name: Morphic-hjh.1354 >>>>>>>> Author: hjh >>>>>>>> Time: 5 October 2017, 11:51:21.903338 am >>>>>>>> UUID: e96d5a46-453f-418c-b95f-26f1674ca329 >>>>>>>> Ancestors: Morphic-hjh.1353 >>>>>>>> >>>>>>>> Demo which shows how to remove selectors from PasteUpMorph and >>>>>>>> insert >>>>>>>> them into a newy created superclass >>>>>>>> >>>>>>>> Inserted >>>>>>>> MorphWithGrid >>>>>>>> as a subclass of BorderedMorph and superclass of >>>>>>>> PasteUpMorph >>>>>>>> >>>>>>>> gridding protocol was moved from >>>>>>>> PasteUpMorph >>>>>>>> to >>>>>>>> MorphWithGrid >>>>>>>> >>>>>>>> >>>>>>>> Morphic-hjh.1353: >>>>>>>> Ancestors: Morphic-hjh.1352 >>>>>>>> >>>>>>>> Note: I tried to save this update several times. That accounts for >>>>>>>> the >>>>>>>> empty updates in between. >>>>>>>> >>>>>>>> >>>>>>>> --------- >>>>>>>> [12] >>>>>>>> After filing in Morphic-hjh.1354 >>>>>>>> PasteUpMorph printHierarchy ' >>>>>>>> ProtoObject #() >>>>>>>> Object #() >>>>>>>> Morph #() >>>>>>>> BorderedMorph #() >>>>>>>> MorphWithGrid #(''griddingOn'') >>>>>>>> PasteUpMorph #(...) >>>>>>>> ComponentLayout #(...) >>>>>>>> EventTimeline #(...) >>>>>>>> GeeBookPageMorph #(...) >>>>>>>> IndexTabs #(...) >>>>>>>> MouseEventEditor #(...) >>>>>>>> PartsBin #(...) >>>>>>>> QuickGuideHolderMorph #(...) >>>>>>>> SyntaxTestMethods #(...) >>>>>>>> TetrisBoard #(...) >>>>>>>> TextPlusPasteUpMorph #(...) >>>>>>>> WiWPasteUpMorph #(...) >>>>>>>> MVCWiWPasteUpMorph #(...) >>>>>>>> Worldlet #(...) >>>>>>>> ZASMScriptMorph #(...) >>>>>>>> ZoomAndScrollMorph #(...)' >>>>>>>> >>>>>>>> On 10/5/17, Marcel Taeumel <[hidden email]> wrote: >>>>>>>>> Done. :) >>>>>>>>> >>>>>>>>> Best, >>>>>>>>> Marcel >>>>>>>>> Am 05.10.2017 06:21:44 schrieb David T. Lewis >>>>>>>>> <[hidden email]>: >>>>>>>>> We did have a problem on squeaksource.com, but I think it is >>>>>>>>> mostly >>>>>>>>> resolved >>>>>>>>> now. >>>>>>>>> >>>>>>>>> Hannes, >>>>>>>>> >>>>>>>>> The password reset for your HJH account was lost, so I set it back >>>>>>>>> to >>>>>>>>> the >>>>>>>>> new password that I sent to you earlier in private email. >>>>>>>>> Hopefully >>>>>>>>> your >>>>>>>>> access is working again now. >>>>>>>>> >>>>>>>>> Marcel, >>>>>>>>> >>>>>>>>> Your new account disappeared when squeaksource recovered from some >>>>>>>>> internal >>>>>>>>> problem. Sorry, I do not know the cause. But could I ask you to >>>>>>>>> please >>>>>>>>> register >>>>>>>>> again on squeaksource.com, and I will then add you back to >>>>>>>>> EtoysProject? >>>>>>>>> >>>>>>>>> Sorry for the disruption, >>>>>>>>> Dave >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Oct 05, 2017 at 02:03:47AM +0200, H. Hirzel wrote: >>>>>>>>>> Dave >>>>>>>>>> >>>>>>>>>> Earlier today login worked. Currently it does not. >>>>>>>>>> >>>>>>>>>> --Hannes >>>>>>>>>> >>>>>>>>>> On 10/5/17, David T. Lewis wrote: >>>>>>>>>> > Hannes, >>>>>>>>>> > >>>>>>>>>> > You did not cause the problem. It may have been me, I saved the >>>>>>>>>> > squeaksource.com >>>>>>>>>> > image from a VNC session (because I wanted to make an up to >>>>>>>>>> > date >>>>>>>>>> > backup >>>>>>>>>> > of >>>>>>>>>> > it), >>>>>>>>>> > and I am now unable to log in to squeaksource. Maybe I >>>>>>>>>> > triggered >>>>>>>>>> > a >>>>>>>>>> > bug >>>>>>>>>> > :-/ >>>>>>>>>> > >>>>>>>>>> > Can you please tell me if you are able to log in to your >>>>>>>>>> > http://squeaksource.com >>>>>>>>>> > page? I am getting authorization errors, and I suspect it is a >>>>>>>>>> > problem >>>>>>>>>> > that >>>>>>>>>> > affects >>>>>>>>>> > everyone. >>>>>>>>>> > >>>>>>>>>> > Thanks, >>>>>>>>>> > Dave >>>>>>>>>> > >>>>>>>>>> > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: >>>>>>>>>> >> Dave, >>>>>>>>>> >> >>>>>>>>>> >> Yes, I encounter problems. They might be related to what I >>>>>>>>>> >> just >>>>>>>>>> >> tried >>>>>>>>>> >> to >>>>>>>>>> >> do: >>>>>>>>>> >> >>>>>>>>>> >> I wanted to save an updated version of Morphic to the >>>>>>>>>> >> ProjectEtoys >>>>>>>>>> >> repository but by mistake I tried to commit it to the trunk. >>>>>>>>>> >> As >>>>>>>>>> >> I >>>>>>>>>> >> do >>>>>>>>>> >> not have commit rights to trunk this prevented me from >>>>>>>>>> >> changing >>>>>>>>>> >> it >>>>>>>>>> >> inadvertently. Later on I wanted to commit that version to >>>>>>>>>> >> ProjectEtoys. It did not work. >>>>>>>>>> >> >>>>>>>>>> >> --Hannes >>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>>> >> On 10/5/17, David T. Lewis wrote: >>>>>>>>>> >> > I'm seeing problems with SqueakSource right now, trying to >>>>>>>>>> >> > figure >>>>>>>>>> >> > out >>>>>>>>>> >> > what is wrong. So the project may not be accessible right >>>>>>>>>> >> > now >>>>>>>>>> >> > :-/ >>>>>>>>>> >> > >>>>>>>>>> >> > Dave >>>>>>>>>> >> > >>>>>>>>>> >> > >>>>>>>>>> >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: >>>>>>>>>> >> >> Karl, >>>>>>>>>> >> >> >>>>>>>>>> >> >> So far entering and existing the Etoys project works >>>>>>>>>> >> >> smoothly. >>>>>>>>>> >> >> >>>>>>>>>> >> >> Load mcz from into current Squeak 6.0a >>>>>>>>>> >> >> >>>>>>>>>> >> >> MCHttpRepository >>>>>>>>>> >> >> location: 'http://www.squeaksource.com/EtoysProject' >>>>>>>>>> >> >> user: '' >>>>>>>>>> >> >> password: '' >>>>>>>>>> >> >> >>>>>>>>>> >> >> The issue is about providing more settings when entering. >>>>>>>>>> >> >> >>>>>>>>>> >> >> Karl, do you want to be added to the list of developers? >>>>>>>>>> >> >> >>>>>>>>>> >> >> --HH >>>>>>>>>> >> >> >>>>>>>>>> >> >> On 10/5/17, H. Hirzel wrote: >>>>>>>>>> >> >> > PasteUpMorph is useful and the functions have to be >>>>>>>>>> >> >> > maintained. >>>>>>>>>> >> >> > >>>>>>>>>> >> >> > However adding more functions to Morph does not make >>>>>>>>>> >> >> > sense. >>>>>>>>>> >> >> > >>>>>>>>>> >> >> > Squeak 6.0a >>>>>>>>>> >> >> > Morph selectors size 1345 >>>>>>>>>> >> >> > PasteUpMorph selectors size 530 >>>>>>>>>> >> >> > >>>>>>>>>> >> >> > --Hannes >>>>>>>>>> >> >> > >>>>>>>>>> >> >> > On 10/4/17, karl ramberg wrote: >>>>>>>>>> >> >> >> I'm not sure anybody uses Etoys anymore, but >>>>>>>>>> >> >> >> PasteUpMorph >>>>>>>>>> >> >> >> is >>>>>>>>>> >> >> >> very >>>>>>>>>> >> >> >> useful >>>>>>>>>> >> >> >> in >>>>>>>>>> >> >> >> direct manipulation because of it's various layout and >>>>>>>>>> >> >> >> event >>>>>>>>>> >> >> >> handling >>>>>>>>>> >> >> >> options. It also act as a container of other morphs, >>>>>>>>>> >> >> >> with >>>>>>>>>> >> >> >> automatic >>>>>>>>>> >> >> >> layout, enumeration etc. >>>>>>>>>> >> >> >> I'm sure most of this could be refactored into Morph >>>>>>>>>> >> >> >> class >>>>>>>>>> >> >> >> or >>>>>>>>>> >> >> >> another >>>>>>>>>> >> >> >> class. >>>>>>>>>> >> >> >> >>>>>>>>>> >> >> >> Best, >>>>>>>>>> >> >> >> Karl >>>>>>>>>> >> >> >> >>>>>>>>>> >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel >>>>>>>>>> >> >> >> >>>>>>>>>> >> >> >> wrote: >>>>>>>>>> >> >> >> >>>>>>>>>> >> >> >>> +1 :) >>>>>>>>>> >> >> >>> >>>>>>>>>> >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and >>>>>>>>>> >> >> >>> keep >>>>>>>>>> >> >> >>> an >>>>>>>>>> >> >> >>> empty >>>>>>>>>> >> >> >>> PasteUpMorph subclass around for compatibility reasons. >>>>>>>>>> >> >> >>> So >>>>>>>>>> >> >> >>> many >>>>>>>>>> >> >> >>> ideas >>>>>>>>>> >> >> >>> have >>>>>>>>>> >> >> >>> been ported down to Morph class over the past years. >>>>>>>>>> >> >> >>> New >>>>>>>>>> >> >> >>> applications >>>>>>>>>> >> >> >>> have >>>>>>>>>> >> >> >>> no reason to ever use other instances of PasteUpMorph. >>>>>>>>>> >> >> >>> >>>>>>>>>> >> >> >>> Best, >>>>>>>>>> >> >> >>> Marcel >>>>>>>>>> >> >> >>> >>>>>>>>>> >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel : >>>>>>>>>> >> >> >>> On 10/3/17, H. Hirzel wrote: >>>>>>>>>> >> >> >>> > Dave >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > your change set contains the class EtoysProject with >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > EtoysProject selectors >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences >>>>>>>>>> >> >> >>> > #saveGlobalPreferences >>>>>>>>>> >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry >>>>>>>>>> >> >> >>> > #finalExitActions:) >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > For complete configuration of a EtoysProject it might >>>>>>>>>> >> >> >>> > be >>>>>>>>>> >> >> >>> > necessary >>>>>>>>>> >> >> >>> > to >>>>>>>>>> >> >> >>> > do >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > Then Etoys related methods may be pushed down to >>>>>>>>>> >> >> >>> > EtoysPasteUpMorph. >>>>>>>>>> >> >> >>> >>>>>>>>>> >> >> >>> See screen shot attached. >>>>>>>>>> >> >> >>> >>>>>>>>>> >> >> >>> > And probably an Etoys specific subclass of WorldMenu >>>>>>>>>> >> >> >>> > would >>>>>>>>>> >> >> >>> > be >>>>>>>>>> >> >> >>> > fine >>>>>>>>>> >> >> >>> > as >>>>>>>>>> >> >> >>> well >>>>>>>>>> >> >> >>> > http://wiki.squeak.org/squeak/6461 >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > there is a test project [2] and some more information >>>>>>>>>> >> >> >>> > about >>>>>>>>>> >> >> >>> > adaptions >>>>>>>>>> >> >> >>> > needed because of the UI changes in the thread 'Etoys >>>>>>>>>> >> >> >>> > in >>>>>>>>>> >> >> >>> > 2017?' - >>>>>>>>>> >> >> >>> > UI >>>>>>>>>> >> >> >>> > preferences [3]. And it would be good to have Etoys >>>>>>>>>> >> >> >>> > methods >>>>>>>>>> >> >> >>> > / >>>>>>>>>> >> >> >>> > configuration separate [4]. >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > I suggest that you start go ahead and start >>>>>>>>>> >> >> >>> > implementing >>>>>>>>>> >> >> >>> > this >>>>>>>>>> >> >> >>> > while >>>>>>>>>> >> >> >>> > using a test Etoys project dropped onto the desktop. >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > --Hannes >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > [2] > You simply drop it in. E.g. download this >>>>>>>>>> >> >> >>> > project >>>>>>>>>> >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb >>>>>>>>>> >> >> >>> > 22, >>>>>>>>>> >> >> >>> > 2017 >>>>>>>>>> >> >> >>> > at >>>>>>>>>> >> >> >>> > 11:01 >>>>>>>>>> >> >> >>> > AM >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM >>>>>>>>>> >> >> >>> > "I think it would be great if both Etoys and Scratch >>>>>>>>>> >> >> >>> > were >>>>>>>>>> >> >> >>> > easily >>>>>>>>>> >> >> >>> > loadable and unloadable in trunk." >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> > On 10/2/17, David T. Lewis wrote: >>>>>>>>>> >> >> >>> >> An EtoysProject is a project that is configured for >>>>>>>>>> >> >> >>> >> running >>>>>>>>>> >> >> >>> >> Etoys. >>>>>>>>>> >> >> >>> >> On >>>>>>>>>> >> >> >>> >> first entry to a new EtoysProject, the playground >>>>>>>>>> >> >> >>> >> and >>>>>>>>>> >> >> >>> >> project >>>>>>>>>> >> >> >>> preferences >>>>>>>>>> >> >> >>> >> are initialized to provide an environment similar to >>>>>>>>>> >> >> >>> >> that >>>>>>>>>> >> >> >>> >> of >>>>>>>>>> >> >> >>> >> a >>>>>>>>>> >> >> >>> >> traditional >>>>>>>>>> >> >> >>> >> standalone Etoys image. >>>>>>>>>> >> >> >>> >> >>>>>>>>>> >> >> >>> >> Certain preferences that are required for Etoys are >>>>>>>>>> >> >> >>> >> initialized >>>>>>>>>> >> >> >>> >> on >>>>>>>>>> >> >> >>> >> project >>>>>>>>>> >> >> >>> >> entry, overriding their global preference values >>>>>>>>>> >> >> >>> >> while >>>>>>>>>> >> >> >>> >> this >>>>>>>>>> >> >> >>> EtoysProject >>>>>>>>>> >> >> >>> >> is active. On leaving the project, these preferences >>>>>>>>>> >> >> >>> >> are >>>>>>>>>> >> >> >>> >> restored >>>>>>>>>> >> >> >>> >> to >>>>>>>>>> >> >> >>> >> their >>>>>>>>>> >> >> >>> >> previous values. >>>>>>>>>> >> >> >>> >> >>>>>>>>>> >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" >>>>>>>>>> >> >> >>> >> >>>>>>>>>> >> >> >>> >> Change set attached for a minimal implementation. >>>>>>>>>> >> >> >>> >> >>>>>>>>>> >> >> >>> >> Anyone with Etoys knowledge care to help? I do not >>>>>>>>>> >> >> >>> >> know >>>>>>>>>> >> >> >>> >> enough >>>>>>>>>> >> >> >>> >> about >>>>>>>>>> >> >> >>> >> Etoys >>>>>>>>>> >> >> >>> >> to fill in the rest of the initialization that will >>>>>>>>>> >> >> >>> >> be >>>>>>>>>> >> >> >>> >> required, >>>>>>>>>> >> >> >>> >> but >>>>>>>>>> >> >> >>> >> it >>>>>>>>>> >> >> >>> >> should not be hard to do. >>>>>>>>>> >> >> >>> >> >>>>>>>>>> >> >> >>> >> Dave >>>>>>>>>> >> >> >>> >> >>>>>>>>>> >> >> >>> >> >>>>>>>>>> >> >> >>> > >>>>>>>>>> >> >> >>> >>>>>>>>>> >> >> >>> >>>>>>>>>> >> >> >>> >>>>>>>>>> >> >> >>> >>>>>>>>>> >> >> >>> >>>>>>>>>> >> >> >> >>>>>>>>>> >> >> > >>>>>>>>>> >> > >>>>>>>>>> >> > >>>>>>>>>> >> >> >>>>>>>>>> >> > >>>>>>>>>> >> > >>>>>>>>>> >> > >>>>>>>>>> >> >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > Loading_a_Etoys_Project_Screenshot_2017-10-05.png (310K) Download Attachment |
In reply to this post by Hannes Hirzel
If you drop I can't tell you from memory where exactly to fix this, but the project loading mechanism was designed to be flexible enough to allow all kinds of class changes. It's awesome you're looking into this :) - Bert - |
On 10/6/17, Bert Freudenberg <[hidden email]> wrote:
> On Thu, Oct 5, 2017 at 9:25 PM, H. Hirzel <[hidden email]> wrote: > >> If you drop >> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr >> >> on to the desktop Squeak asks you for a replacement for >> 'MultiNewParagraph' as this class was removed in April (The Trunk: >> EToys-nice.292.mcz) >> >> Answer 'NewParagraph'. Then the Etoys project loads and gives some >> error messages. Some are related to preferences. An issue to fix >> first. >> >> Another issue is that actually a MorphicProject is created instead of >> the new #EtoysProject type we want. >> >> I do not now yet where to do this. >> > > I can't tell you from memory where exactly to fix this, but the project > loading mechanism was designed to be flexible enough to allow all kinds of > class changes. Good to know. In particular - we get a MorphicProject when reading the *.pr project file. - we need to convert it to an EtoysProject Some more investigation needed. > It's awesome you're looking into this :) > > - Bert - > |
On Fri, Oct 06, 2017 at 02:15:41PM +0200, H. Hirzel wrote:
> On 10/6/17, Bert Freudenberg <[hidden email]> wrote: > > On Thu, Oct 5, 2017 at 9:25 PM, H. Hirzel <[hidden email]> wrote: > > > >> If you drop > >> > >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr > >> > >> on to the desktop Squeak asks you for a replacement for > >> 'MultiNewParagraph' as this class was removed in April (The Trunk: > >> EToys-nice.292.mcz) > >> > >> Answer 'NewParagraph'. Then the Etoys project loads and gives some > >> error messages. Some are related to preferences. An issue to fix > >> first. > >> > >> Another issue is that actually a MorphicProject is created instead of > >> the new #EtoysProject type we want. > >> > >> I do not now yet where to do this. > >> > > > > ???I can't tell you from memory where exactly to fix this, but the project > > loading mechanism was designed to be flexible enough to allow all kinds of > > class changes. > > Good to know. > > In particular > > - we get a MorphicProject when reading the *.pr project file. > - we need to convert it to an EtoysProject > > Some more investigation needed. I think this makes sense (I am still trying to wrap my head around how this stuff works in Etoys, I am an Etoys newbie). So we might have some kind of rule in project loading that says "if the current project is an EtoysProject, and if I am loading a *.pr for a MorphicProject, then make it an EtoysProject". And perhaps when saving a project, we could reverse the rule and always save a project as MorphicProject, because we know that a loader in EtoysProject will know how to do the right thing with it. I can see now that I misunderstood one important thing. I was assuming that a new EtoysProject would open up with a playfield like the one I see when I first start a normal Etoys image. But I see now this is wrong, an Etoys project should initially have an empty playfield, but perhaps there is a one-time setup that happens the very first time that I enter a new EtoysProject from the world of "normal Squeak". So maybe if I enter a new EtoysProject from a MorphicProject or MVCProject, it will automatically load some initial project that sets up the welcoming playfield with a car driving around, but when I load or create new EtoysProjects from there, the new projects would just start with empty playfields. Am I guessing right? Dave > > > It's awesome you're looking into this :) > > > > - Bert -??? > > > |
Actually, projects saved from the Squeakland image store a class named "Project". Since this has been made abstract now, we instead load it as MorphicProject. The logic is mostly in SmartRefStream, in this case, #initKnownRenames. It's all class-based. E.g. if the shape of a class changed (new / renamed inst vars) that class can provide a "conversion method" that creates an instance with the new layout from the old inst vars (that are loaded as a dictionary). There still is a preference (conversionMethodsAtFileOut) that used to prompt people to provide these conversion methods when they changed a class. But it didn't survive the transition to Monticello, we now have to remember to write conversion methods for instances that may be stored in a project. I can see now that I misunderstood one important thing. I was assuming that The only difference in an Etoys project is the initial screen layout, yes. Basically, the menu bar should be replaced with the navigator bar. In theory this should just flip a couple of preferences. I'm not sure why a special "EtoysProject" class would be useful. This is different from the Etoys home screen (the clouds and drive-a-car) which is simply a project that would be loaded by the deployment script that creates an Etoys image. It does not have to ship with the general Squeak image. UI-wise I'd think in any kind of project there should just be a plain "new project" menu item that would create the same kind of project (MVC/Morphic/etc) as the current one. And only in addition to that would I add items to create other kinds of projects. - Bert - |
In reply to this post by Hannes Hirzel
On Thu, Oct 05, 2017 at 03:16:41PM +0200, H. Hirzel wrote:
> Note: MorphWithGrid does not really make sense unless you have a > superclass MorphWithDnD (Drag and Drop) which handles the morph droped > and makes them 'sticky'. > > Though refactoring PastUpMorph by inserting superclasses is an issue I > suggest to put this on the backburner at the moment and focus on > getting the Etoys setting straight as Dave suggests in the initial > mail. I just tried loading your MorphWithGrid, and it does illustrate your point, thank you. Probably we will can think about it later though once we get some other things working better. Dave > > A use case to follow: What happens when you drop the exapme project > > http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr > > on to the desktop. > > ExternalDropHandler>>handleDroppedItem:event: [21] > > is called in this case and then dispatches to do the necessary things > to deal with the > ExampleEtoys/CarAndPen.014.pr > file. > > There is a message box which needs attention. > > And I assume that in the course of these events some settings are > necessary. Most prominently to choose EtoysProject and no longer > MorphicProject > > --Hannes > > [21] http://wiki.squeak.org/squeak/4283 > > On 10/5/17, H. Hirzel <[hidden email]> wrote: > > I added a demo file Morphic-hjh.1354 [11] to the repository > > > > MCHttpRepository > > location: 'http://www.squeaksource.com/EtoysProject' > > user: '' > > password: '' > > > > This file should be loaded into a fully updated trunk test image. > > > > I agree with what Tobias noted earlier in this thread that it is > > probably better to avoid renaming PasteUpMorph. I see as a solution to > > easier deal with PasteUpMorph functions the insertion of superclasses > > of PasteUpMorph (and thus subclasses of BorderedMorph) [12] > > > > The next thing I will come up with is a class > > MorphWithDnD > > > > a morph class which supports drag and drop. > > As a superclass of MorphWithGrid > > > > A third class would be PlayField which contains all the Etoys selectors. > > In an image without Etoys that class would then be just empty. > > > > --Hannes > > > > > > -------------------- > > > > [11] > > Name: Morphic-hjh.1354 > > Author: hjh > > Time: 5 October 2017, 11:51:21.903338 am > > UUID: e96d5a46-453f-418c-b95f-26f1674ca329 > > Ancestors: Morphic-hjh.1353 > > > > Demo which shows how to remove selectors from PasteUpMorph and insert > > them into a newy created superclass > > > > Inserted > > MorphWithGrid > > as a subclass of BorderedMorph and superclass of > > PasteUpMorph > > > > gridding protocol was moved from > > PasteUpMorph > > to > > MorphWithGrid > > > > > > Morphic-hjh.1353: > > Ancestors: Morphic-hjh.1352 > > > > Note: I tried to save this update several times. That accounts for the > > empty updates in between. > > > > > > --------- > > [12] > > After filing in Morphic-hjh.1354 > > PasteUpMorph printHierarchy ' > > ProtoObject #() > > Object #() > > Morph #() > > BorderedMorph #() > > MorphWithGrid #(''griddingOn'') > > PasteUpMorph #(...) > > ComponentLayout #(...) > > EventTimeline #(...) > > GeeBookPageMorph #(...) > > IndexTabs #(...) > > MouseEventEditor #(...) > > PartsBin #(...) > > QuickGuideHolderMorph #(...) > > SyntaxTestMethods #(...) > > TetrisBoard #(...) > > TextPlusPasteUpMorph #(...) > > WiWPasteUpMorph #(...) > > MVCWiWPasteUpMorph #(...) > > Worldlet #(...) > > ZASMScriptMorph #(...) > > ZoomAndScrollMorph #(...)' > > > > On 10/5/17, Marcel Taeumel <[hidden email]> wrote: > >> Done. :) > >> > >> Best, > >> Marcel > >> Am 05.10.2017 06:21:44 schrieb David T. Lewis <[hidden email]>: > >> We did have a problem on squeaksource.com, but I think it is mostly > >> resolved > >> now. > >> > >> Hannes, > >> > >> The password reset for your HJH account was lost, so I set it back to the > >> new password that I sent to you earlier in private email. Hopefully your > >> access is working again now. > >> > >> Marcel, > >> > >> Your new account disappeared when squeaksource recovered from some > >> internal > >> problem. Sorry, I do not know the cause. But could I ask you to please > >> register > >> again on squeaksource.com, and I will then add you back to EtoysProject? > >> > >> Sorry for the disruption, > >> Dave > >> > >> > >> On Thu, Oct 05, 2017 at 02:03:47AM +0200, H. Hirzel wrote: > >>> Dave > >>> > >>> Earlier today login worked. Currently it does not. > >>> > >>> --Hannes > >>> > >>> On 10/5/17, David T. Lewis wrote: > >>> > Hannes, > >>> > > >>> > You did not cause the problem. It may have been me, I saved the > >>> > squeaksource.com > >>> > image from a VNC session (because I wanted to make an up to date > >>> > backup > >>> > of > >>> > it), > >>> > and I am now unable to log in to squeaksource. Maybe I triggered a bug > >>> > :-/ > >>> > > >>> > Can you please tell me if you are able to log in to your > >>> > http://squeaksource.com > >>> > page? I am getting authorization errors, and I suspect it is a problem > >>> > that > >>> > affects > >>> > everyone. > >>> > > >>> > Thanks, > >>> > Dave > >>> > > >>> > On Thu, Oct 05, 2017 at 01:52:35AM +0200, H. Hirzel wrote: > >>> >> Dave, > >>> >> > >>> >> Yes, I encounter problems. They might be related to what I just tried > >>> >> to > >>> >> do: > >>> >> > >>> >> I wanted to save an updated version of Morphic to the ProjectEtoys > >>> >> repository but by mistake I tried to commit it to the trunk. As I do > >>> >> not have commit rights to trunk this prevented me from changing it > >>> >> inadvertently. Later on I wanted to commit that version to > >>> >> ProjectEtoys. It did not work. > >>> >> > >>> >> --Hannes > >>> >> > >>> >> > >>> >> > >>> >> On 10/5/17, David T. Lewis wrote: > >>> >> > I'm seeing problems with SqueakSource right now, trying to figure > >>> >> > out > >>> >> > what is wrong. So the project may not be accessible right now :-/ > >>> >> > > >>> >> > Dave > >>> >> > > >>> >> > > >>> >> > On Thu, Oct 05, 2017 at 01:17:58AM +0200, H. Hirzel wrote: > >>> >> >> Karl, > >>> >> >> > >>> >> >> So far entering and existing the Etoys project works smoothly. > >>> >> >> > >>> >> >> Load mcz from into current Squeak 6.0a > >>> >> >> > >>> >> >> MCHttpRepository > >>> >> >> location: 'http://www.squeaksource.com/EtoysProject' > >>> >> >> user: '' > >>> >> >> password: '' > >>> >> >> > >>> >> >> The issue is about providing more settings when entering. > >>> >> >> > >>> >> >> Karl, do you want to be added to the list of developers? > >>> >> >> > >>> >> >> --HH > >>> >> >> > >>> >> >> On 10/5/17, H. Hirzel wrote: > >>> >> >> > PasteUpMorph is useful and the functions have to be maintained. > >>> >> >> > > >>> >> >> > However adding more functions to Morph does not make sense. > >>> >> >> > > >>> >> >> > Squeak 6.0a > >>> >> >> > Morph selectors size 1345 > >>> >> >> > PasteUpMorph selectors size 530 > >>> >> >> > > >>> >> >> > --Hannes > >>> >> >> > > >>> >> >> > On 10/4/17, karl ramberg wrote: > >>> >> >> >> I'm not sure anybody uses Etoys anymore, but PasteUpMorph is > >>> >> >> >> very > >>> >> >> >> useful > >>> >> >> >> in > >>> >> >> >> direct manipulation because of it's various layout and event > >>> >> >> >> handling > >>> >> >> >> options. It also act as a container of other morphs, with > >>> >> >> >> automatic > >>> >> >> >> layout, enumeration etc. > >>> >> >> >> I'm sure most of this could be refactored into Morph class or > >>> >> >> >> another > >>> >> >> >> class. > >>> >> >> >> > >>> >> >> >> Best, > >>> >> >> >> Karl > >>> >> >> >> > >>> >> >> >> On Tue, Oct 3, 2017 at 3:03 PM, Marcel Taeumel > >>> >> >> >> > >>> >> >> >> wrote: > >>> >> >> >> > >>> >> >> >>> +1 :) > >>> >> >> >>> > >>> >> >> >>> And then later: Rename PasteUpMorph to WorldMorph, and keep an > >>> >> >> >>> empty > >>> >> >> >>> PasteUpMorph subclass around for compatibility reasons. So > >>> >> >> >>> many > >>> >> >> >>> ideas > >>> >> >> >>> have > >>> >> >> >>> been ported down to Morph class over the past years. New > >>> >> >> >>> applications > >>> >> >> >>> have > >>> >> >> >>> no reason to ever use other instances of PasteUpMorph. > >>> >> >> >>> > >>> >> >> >>> Best, > >>> >> >> >>> Marcel > >>> >> >> >>> > >>> >> >> >>> Am 03.10.2017 14:57:55 schrieb H. Hirzel : > >>> >> >> >>> On 10/3/17, H. Hirzel wrote: > >>> >> >> >>> > Dave > >>> >> >> >>> > > >>> >> >> >>> > your change set contains the class EtoysProject with > >>> >> >> >>> > > >>> >> >> >>> > EtoysProject selectors > >>> >> >> >>> > > >>> >> >> >>> > #(#finalEnterActions: #restoreGlobalPreferences > >>> >> >> >>> > #saveGlobalPreferences > >>> >> >> >>> > #initializeProjectPreferences #configureOnFirstEntry > >>> >> >> >>> > #finalExitActions:) > >>> >> >> >>> > > >>> >> >> >>> > For complete configuration of a EtoysProject it might be > >>> >> >> >>> > necessary > >>> >> >> >>> > to > >>> >> >> >>> > do > >>> >> >> >>> > > >>> >> >> >>> > PasteUpMorph subclass: EtoysPasteUpMorph > >>> >> >> >>> > > >>> >> >> >>> > as well. http://wiki.squeak.org/squeak/6461 > >>> >> >> >>> > > >>> >> >> >>> > Then Etoys related methods may be pushed down to > >>> >> >> >>> > EtoysPasteUpMorph. > >>> >> >> >>> > >>> >> >> >>> See screen shot attached. > >>> >> >> >>> > >>> >> >> >>> > And probably an Etoys specific subclass of WorldMenu would > >>> >> >> >>> > be > >>> >> >> >>> > fine > >>> >> >> >>> > as > >>> >> >> >>> well > >>> >> >> >>> > http://wiki.squeak.org/squeak/6461 > >>> >> >> >>> > > >>> >> >> >>> > > >>> >> >> >>> > there is a test project [2] and some more information about > >>> >> >> >>> > adaptions > >>> >> >> >>> > needed because of the UI changes in the thread 'Etoys in > >>> >> >> >>> > 2017?' - > >>> >> >> >>> > UI > >>> >> >> >>> > preferences [3]. And it would be good to have Etoys methods > >>> >> >> >>> > / > >>> >> >> >>> > configuration separate [4]. > >>> >> >> >>> > > >>> >> >> >>> > I suggest that you start go ahead and start implementing > >>> >> >> >>> > this > >>> >> >> >>> > while > >>> >> >> >>> > using a test Etoys project dropped onto the desktop. > >>> >> >> >>> > > >>> >> >> >>> > --Hannes > >>> >> >> >>> > > >>> >> >> >>> > > >>> >> >> >>> > [2] > You simply drop it in. E.g. download this project > >>> >> >> >>> >> http://etoys.laptop.org/src/Content/ExampleEtoys/CarAndPen.014.pr > >>> >> >> >>> > > >>> >> >> >>> > [3] Hannes Hirzel, 'Etoys in 2017?' mail, Wed, Feb 22, 2017 > >>> >> >> >>> > at > >>> >> >> >>> > 11:01 > >>> >> >> >>> > AM > >>> >> >> >>> > > >>> >> >> >>> > [4] David T. Lewis, Sep 4, 2016 at 3:34 PM > >>> >> >> >>> > "I think it would be great if both Etoys and Scratch were > >>> >> >> >>> > easily > >>> >> >> >>> > loadable and unloadable in trunk." > >>> >> >> >>> > > >>> >> >> >>> > On 10/2/17, David T. Lewis wrote: > >>> >> >> >>> >> An EtoysProject is a project that is configured for running > >>> >> >> >>> >> Etoys. > >>> >> >> >>> >> On > >>> >> >> >>> >> first entry to a new EtoysProject, the playground and > >>> >> >> >>> >> project > >>> >> >> >>> preferences > >>> >> >> >>> >> are initialized to provide an environment similar to that > >>> >> >> >>> >> of > >>> >> >> >>> >> a > >>> >> >> >>> >> traditional > >>> >> >> >>> >> standalone Etoys image. > >>> >> >> >>> >> > >>> >> >> >>> >> Certain preferences that are required for Etoys are > >>> >> >> >>> >> initialized > >>> >> >> >>> >> on > >>> >> >> >>> >> project > >>> >> >> >>> >> entry, overriding their global preference values while this > >>> >> >> >>> EtoysProject > >>> >> >> >>> >> is active. On leaving the project, these preferences are > >>> >> >> >>> >> restored > >>> >> >> >>> >> to > >>> >> >> >>> >> their > >>> >> >> >>> >> previous values. > >>> >> >> >>> >> > >>> >> >> >>> >> "ProjectViewMorph openOn: EtoysProject new" > >>> >> >> >>> >> > >>> >> >> >>> >> Change set attached for a minimal implementation. > >>> >> >> >>> >> > >>> >> >> >>> >> Anyone with Etoys knowledge care to help? I do not know > >>> >> >> >>> >> enough > >>> >> >> >>> >> about > >>> >> >> >>> >> Etoys > >>> >> >> >>> >> to fill in the rest of the initialization that will be > >>> >> >> >>> >> required, > >>> >> >> >>> >> but > >>> >> >> >>> >> it > >>> >> >> >>> >> should not be hard to do. > >>> >> >> >>> >> > >>> >> >> >>> >> Dave > >>> >> >> >>> >> > >>> >> >> >>> >> > >>> >> >> >>> > > >>> >> >> >>> > >>> >> >> >>> > >>> >> >> >>> > >>> >> >> >>> > >>> >> >> >>> > >>> >> >> >> > >>> >> >> > > >>> >> > > >>> >> > > >>> >> >> > >>> >> > > >>> >> > > >>> >> > > >>> >> > >>> > > >>> > > >>> > >> > >> > > > |
In reply to this post by Bert Freudenberg
On Fri, Oct 06, 2017 at 03:48:56PM +0200, Bert Freudenberg wrote:
> On Fri, Oct 6, 2017 at 2:44 PM, David T. Lewis <[hidden email]> wrote: > > > > > So we might have some kind of rule in project loading that says "if > > the current project is an EtoysProject, and if I am loading a *.pr for > > a MorphicProject, then make it an EtoysProject". And perhaps when saving > > a project, we could reverse the rule and always save a project as > > MorphicProject, because we know that a loader in EtoysProject will know > > how to do the right thing with it. > > > > ???Actually, projects saved from the Squeakland image store a class named > "Project???". Since this has been made abstract now, we instead load it as > MorphicProject. > > ???The logic is mostly in SmartRefStream, in this case, #initKnownRenames. Oh, that's good, I did not know about the renaming mechanism. Completely off topic for Etoys, but a similar issue, in UTCDateAndTime I implemented #storeDataOn: and #readDataFrom:size: in DateAndTime so that the serialized objects are always in the old format, and converted back to the new class structure when read back. I do like the idea of projects saved to an "old" serialized format for compatibility, and making anyone who invents a new format be responsible for implementing the conversion. This should work with Etoys projects too (I hope). > > It's all class-based. E.g. if the shape of a class changed (new / renamed > inst vars) that class can provide a "conversion method" that creates an > instance with the new layout from the old inst vars (that are loaded as a > dictionary). There still is a preference (conversionMethodsAtFileOut) that > used to prompt people to provide these conversion methods when they changed > a class. But it didn't survive the transition to Monticello, we now have to > remember to write conversion methods for instances that may be stored in a > project. To check my understanding, the "conversion method" might be something like #storeDataOn: and #readDataFrom:size: like what I described for DateAndTime, is that right? > > I can see now that I misunderstood one important thing. I was assuming that > > a new EtoysProject would open up with a playfield like the one I see when > > I first start a normal Etoys image. But I see now this is wrong, an Etoys > > project should initially have an empty playfield, but perhaps there is a > > one-time setup that happens the very first time that I enter a new > > EtoysProject > > from the world of "normal Squeak". So maybe if I enter a new EtoysProject > > from a MorphicProject or MVCProject, it will automatically load some > > initial project that sets up the welcoming playfield with a car driving > > around, but when I load or create new EtoysProjects from there, the new > > projects would just start with empty playfields. > > > > Am I guessing right? > > > > The only difference in an Etoys project is the initial screen layout, yes. > Basically, the menu bar should be replaced with the navigator bar. In > theory this should just flip a couple of preferences. I'm not sure why a > special "EtoysProject" class would be useful. It might not turn out to be useful at all, and if so we can throw it away. But it least it seems to be helping us talk about how to make it work. Or maybe it's just helping me, but I think I'm starting to understand how things work :-) > > This is different from the Etoys home screen (the clouds and drive-a-car) > which is simply a project that would be loaded by the deployment script > that creates an Etoys image. It does not have to ship with the general > Squeak image. I do not know if it will make sense, but I guess my mental image is an Etoys "deployed image" hosted inside my regular Squeak trunk image. So I guess that I am thinking of the "clouds and drive-a-car" project being loaded the first time that I create a new EtoysProject from normal Squeak, and that somehow the subsequent project navigation within that new "hosted" Etoys would behave is if I were in a stand-alone Etoys image. Finally, I would want to be able to escape back to my normal Squeak. Dave > > UI-wise I'd think in any kind of project there should just be a plain "new > project" menu item that would create the same kind of project > (MVC/Morphic/etc) as the current one. And only in addition to that would I > add items to create other kinds of projects. > > - Bert -??? > |
Free forum by Nabble | Edit this page |