It is not always good practice to do "deep" examination... each level can be a facade...

(e.g. "Smalltalk tools browser" might be better as "SmalltalkTools browser")...

Regards, Gary.

----- Original Message ----- From: "Igor Stasenko" <[EMAIL PROTECTED]>
To: "Pharo Development" <[email protected]>
Sent: Tuesday, October 28, 2008 7:26 PM
Subject: Re: [Pharo-project] ToolSet


2008/10/28 Pavel Krivanek <[EMAIL PROTECTED]>:
Hi,

we should decide how we will manipulate with tools. A lot of tools
classes are referenced directly - that is wrong because you cannot
then use different set of tools (for example a dummy toolset for no
tools at all).
In the KernelImage I added a registration mechanism for tools so they
were called for example ToolSet default browser. There were no ToolSet
subclasses and there was only a test if the default ToolSet is not
nil. That was not optimal solution.

The current philosophy of ToolSet class supposess that you will send
messages directly to ToolSet class and you will not get real tools
classes at all. However the set of this messages would be very long
and Squeak wants sometimes directly the class (for comparison etc.)


I think, it would be nicer, instead of use a predefined methods, use a
dictionary in a form 'tool name'->class and DNU pattern which
then can respond with proper class when you send message like:

Smalltalk tools browser

here , a 'Smalltalk tools' should return a registry , and then
registry in #doesNotUnderstand: should lookup a dictionary by #browser key.

Also, if you want to add new, or replace old tool you just write:

Smalltalk tools register: Workspace name: #workspace
Smalltalk tools register: Transcript name: #transcriptWindow
...etc...

as well as remove:
Smalltalk tools remove: #workspace

With this approach, the number/kinds of tools is arbitrary. They can
be freely replaced at any moment without subclassing or writing
methods.
In vanilla image, we need only a single method, which can populate a
default tool set.
Also note, i'm not using a ToolSet class, i think 'Smalltalk tools' or
'SmalltalkImage tools' is much more elegant.

--
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to