[squeak-dev] MorphicProject subclass: #EtoysProject

H. Hirzel hannes.hirzel at gmail.com
Thu Oct 5 18:09:01 UTC 2017


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 <hannes.hirzel at gmail.com> 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 <hannes.hirzel at gmail.com> 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 <marcel.taeumel at hpi.de> wrote:
>>> Done. :)
>>>
>>> Best,
>>> Marcel
>>> Am 05.10.2017 06:21:44 schrieb David T. Lewis <lewis at mail.msen.com>:
>>> 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
>>>> >> >> >>> >>
>>>> >> >> >>> >>
>>>> >> >> >>> >
>>>> >> >> >>>
>>>> >> >> >>>
>>>> >> >> >>>
>>>> >> >> >>>
>>>> >> >> >>>
>>>> >> >> >>
>>>> >> >> >
>>>> >> >
>>>> >> >
>>>> >> >>
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >>
>>>> >
>>>> >
>>>>
>>>
>>>
>>
>


More information about the Squeak-dev mailing list