[Zope3-dev] Re: browser:page's for="" can be class browser:menuItem can't

Stephan Richter srichter at cosmos.phy.tufts.edu
Wed Aug 22 10:39:50 EDT 2007

On Wednesday 22 August 2007 10:03, Philipp von Weitershausen wrote:
> Stephan Richter wrote:
> > On Monday 20 August 2007 09:45, Christian Zagrodnick wrote:
> >> Should we fix that?
> >
> > Yes, or just deprecate the menu stuff. ;-)
> I take that smiley as an indicator that you were joking.

I was joking in the sense that I know it will never happen. If I would be a 
dictator, it would be gone already.

Many APIs in Zope 3 have undergone 2-3 iterations. The browser menu stuff has 
undergone 1 with one additional refactoring to better use the CA and allow 
for sub-menu items.

> > The default menu framework was
> > insufficient in every real-world project I have worked on. Menu items
> > based on the context just do not work.
> This is again a recurring theme where a package defines an abstract
> concepts with an interface (named IBrowserMenu utilities) and also ships
> an implementation with it (context-sensitive menu items based on adapters).

It turns out that IBrowserMenu and IBrowserMenuItem are just too heavy. I can 
do much better with a viewlet manager as the menu and a viewlet as a menu 

> You condemn that one implementation, but the whole point of the
> component architecture is that you can happily create your own
> IBrowserMenu implementation (which I trust you have). So no need to
> throw away that existing context-sensitive implementation.

Yes, I do condemn the implementation, but I also condemn the interfaces. What 
I am not condemning is the development/UI pattern of menus. In my projects I 
found that the requirements vary widely among menu requirements, which are 
not easily modelled in a generic set of interfaces.

> Now, we might think about *separating* the two perhaps, in order to
> reduce dependencies (if you just want the IBrowserMenu concept, you
> might get away with less dependencies)...

I just want to get to the point, where I do not have a dependency on Rotterdam 
and all the default browser request registrations, because I am not using 
them at all. Generic default browser layer registrations are evil, evil, 

Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training

More information about the Zope3-dev mailing list