[squeak-dev] Finding a UIManager

Frank Shearar frank.shearar at gmail.com
Sat Dec 7 19:23:12 UTC 2013


At the moment, "UIManager default" delegates to Project current
uiManager, which looks like this:

Project >> uiManager
    "Answer the manager that provides user interface services for this project "
    ^ uiManager
        ifNil: [uiManager := Smalltalk
            at: #UIManager
            ifPresent: [:mgr | uiManager := mgr getDefault]]

I'm not sure why we do this. I guess it's to let different Projects
use their own UIManager. What I don't like is that this makes
ToolBuilder-Kernel depend on System (which depends on
ToolBuilder-Kernel). If I made UIManager default _not_ delegate to
Project, I could break this dependency. (ToolBuilder would then be
conceptually lower level than System.)

For instance,

UIManager class >> #default
    ^ Default ifNil: [Default := self getDefault].

Another option would be to push Project into Kernel, but I'm reluctant
to do that.

Thoughts? Alternatives?

frank


More information about the Squeak-dev mailing list