Integrating the RegisteringFileList
Stephan Rudlof
sr at evolgo.de
Mon Jan 21 16:14:08 UTC 2002
"Stephan B. Wessels" wrote:
>
> On 1/17/02 2:54 PM, "danielv at netvision.net.il" <danielv at netvision.net.il>
> wrote:
>
> > Here's a survey of a refactoring Stef's sent to the list, in the hope
> > this will lead to accepting this change into the base image, or someone
> > else doing it better. Also it's a pretty good example of the sort of
> > changes
> > that clean up dependencies and make Squeak more modular.
> >
> > I haven't yet surveyed everything, but it's not that complicated, so
> > here're my initial findings:
> >
> > 1. Stef's purpose is to remove mentions to other classes from the
> > FileList, which basically know every file-format Squeak can do anything
> > to and every tool to do it. These dependencies currently make the system
> > much less modular. These tools should be optional, but not having them
> > in the system currently breaks the FileList.
> >
> > 2. The mechanism is pretty simple.
> > * When a class for a new tool is filed in, it's initialize method tells
> > FileList that it too can handle files.
> > * When a FileList menu is raised, it asks each file handling class what
> > services it can provide for this file ending.
> > * Each file handler returns a collection of ServiceEntries. Currently,
> > just SimpleServiceEntries.
> > * An SSE knows a reciever, a selector and a label.
> > * When the user clicks the menu item with the label in the SSE, the
> > right message is sent to the appropriate reciever. Voila.
> > * When the class is removed, it is deregistered.
> >
> <SNIP>
>
> When I first read this I thought, that's a great idea. That was days ago.
>
> Then I awoke this morning and remembered that I'd solved this "problem"
> about a year or more ago and published to the list. I didn¹t create a
> registry but instead used the method category feature of Squeak code. The
> technique was that the menu was built by looking for methods in a specific
> category.
>
> When a class was installed it simply made sure it's menu additions were
> located in the proper method category and then the tool would integrate
> them.
>
> I'm pretty sure the code I published handled FileList, the World open menu
> and one other menu.
>
> There's nothing wrong with the idea you are working on here. It looks fine.
Without seeing the discussion before (my domain was down): I think it is
more flexible than just using the category feature. And (de-)registering is
performed actively from the 'ServiceProvider' here.
Greetings,
Stephan
> But I just wanted to remind people there was a solution published a pretty
> long time ago. I know of at least one person that was using too because I
> had gotten a thank you email.
>
> I published the code more than once under a couple of different names. One
> was ConfigurableMenus, the other was Re-factoring of menus. There's a copy
> of he change set for V2.8a here:
> http://w3.one.net/~swessels/pages/steve/squeak/mine/refactor-menus.11mar1810
> .cs
--
Stephan Rudlof (sr at evolgo.de)
"Genius doesn't work on an assembly line basis.
You can't simply say, 'Today I will be brilliant.'"
-- Kirk, "The Ultimate Computer", stardate 4731.3
More information about the Squeak-dev
mailing list
|