> > MMObjectBuilder being the base class of all objects does in the current
> > situation already get a signal for all node changes. If a people node is
> > changed, MMObjectBuilder, being the parent of the People builder,
> > does already gets a notification. Your proposal would mean it would get
> > it twice, once with builder param People and once with builder Param
> > MMObject?
> >
> Nope, this is not the problem.
> If an audiofragment changes the MMObjectBuilder of the audiofragment
> builder gets a signal. That is how it is currently working and that is
> good. But if the an audiofragment builder is extending a mediafragment
> builder the mediafragment builder should also get a signal.
Now I see your problem. If you look at the code of MMBase.addLocalObserver
then you are added to the observer vector of the MediaFragments Builder, but not
to the vector of the VideoFragment en AudioFragment builders.
> e.g. If you use an addObserver("mediafragment", this), you want to
> receive signals if audiofragments are changing, because an audiofragment
> is a mediafragment. This also counts for listings, if you create a list
> for all mediafragments you also want to see all audiofragments. The
> builder that is receiving the signal (what is currently working
> correctly) should pass the signal also to its parentBuilders
> (parentBuilder is MMBase1.6).
That's clear, but you agree that this second call to the parent builder will
finally end up for the second time in MMObjectBuilder.nodeXXXChanged
with only a different builder param? Idem voor de MediaFragments builder
it will see the changed signal twice or more. Is it very difficult to let
addXXXObserver add the observer to all relevant builders, so one signal
can do the job?
Wilbert.