[squeak-dev] MorphicProject subclass: #EtoysProject

Marcel Taeumel marcel.taeumel at hpi.de
Tue Oct 3 17:18:38 UTC 2017


@Tobias: In the future, we should get the project-specific parts of PasteUpMorph extracted into sth. called WorldMorph to be used only as the global "desktop thingy" for Morphic projects. The currently mixed state is really confusing. If there is other left-over stuff not yet ready for the Morph base class (gridding?), we could add an additional "Playfield", too. Not sure about the name, though. :)

I do not think that it is worth supporting existing code that relies on "PasteUpMorph allInstances" to work in its current form. Same for "ContextPart allInstances".


Best,
Marcel
Am 03.10.2017 15:34:25 schrieb H. Hirzel <hannes.hirzel at gmail.com>:
What Marcel refers to

Morph
BorderedMorph
PasteUpMorph "maintains the current tasks of Background
images, gridding,
drag-and-drop helpers"
EtoysMorph "keeps Etoys specific messages"


And then

Morph
BorderedMorph
WorldMorph (PasteUpMorph renamed, methods such as gridding maintained)
PasteUpMorph "empty PasteUpMorph class for compatibility"
EtoysPasteUpMorph "keeps Etoys specific messages"


Another issue not discussed here is that PasteUpMorph includes
WorldMorph functions.

Pharo has separated this. This is an issue which comes up from time to
time. [5] The advantage of keeping them together is that you may have
worlds in worlds. But this discussion is not related to the issue
Etoys refactoring issue.

--Hannes

[5] http://forum.world.st/WorldMorph-subclass-PasteUpMorph-tp4946461p4946465.html

On 10/3/17, H. Hirzel wrote:
> On 10/3/17, Tobias Pape wrote:
>>
>>> On 03.10.2017, at 15:03, 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.
>>
>> -1
>> Except for Background images, gridding, drag-and-drop helpers, etc.
>> It should rather be a PlayField (as it comment already states).
>
> PlayField? I do not find a class named 'PlayField' in a current Trunk
> image.
> Which class do you mean?
>
>>
>> Also, be wary of the "rename then subclass" deprecation, because if
>> certain
>> projects extend the deprecated subclass (And a lot do for PasteUpMorph),
>> those extensions will never be used in typical circumstances.
>>
>> (This also bit me with the ContextPart depercation… Certain tools that
>> hook
>> into debugging stuff via ContextPart extensions no longer work as no
>> ContextParts will ever be around. Oh well..)
>>
>> Best regards
>> -Tobias
>>
>>>
>>> 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
>>>> >>
>>>> >>
>>>> >
>>>>
>>>
>>
>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20171003/807f01ab/attachment.html>


More information about the Squeak-dev mailing list