> > > Thought your problem was you did not get the changed signal in the > MediaFragments builder when an AudioFragment changed, so you > want to add this new code. My objection is that you already should get the > signal without the adding of your new code. If you have an AudioFragment > builder extending the MediaFragment builder then the current code calls > AudioFragmnet.nodeXXXchanged. Without adding of your new code this > already should pass through the MediaFragment builder. Two possible > routes: > If the AudioPart builder overrides the changed methods then it is > responsible > for calling the MediaFragment nodeChanged methods. If the AudioFragment > builder does not overide it, then the current code calls the inherited > method of > the MediaFragments base class, either way, in the current setup > without the adding > of the new code, the MediaBuilder should already recieve the signal. > If it does > not something else might be wrong? > I am speaking about extending builders (the configuration files), not about extending MMObecjtBuilder (the java files).
Lets start simple: We have two builders, the fist one is the objects builder, and the other one is a people builder. Both are not using java classes, thus both are plain MMObjectBuilders. In this example the builder people extends builder objects (the MMBase1.6 way). Now I add an observer that is listning to the objects builder. This builder should get nodeChanges when a people object is changing, because a people is an object. This is not the case in the current situation. That is why the MMObjectBuilder implementation of nodeXXXChanged should also trigger the parentBUILDER (i am not talking about java files, but builders). Now your case. If I have a mediafragment.java that extends mmobjectbuilder.java and a audiofragment.java that extends mediafragment.java. If I add an observer to the mediafragment builder i also want to receive changes when an audiofragment is changing, this because an audiofragment is a mediafragment. Regardless if the java files are extending the nodeXXXXChanged, as long as they invoke they super.nodeXXXXCanged this will work. Calling the super is already needed otherwise the caching system will not work good. So when the AudioFragment.nodeXXXXChanged (builder=audiofragment) is invoked this will invoke the MediaFragment.nodeXXXCanged (builder=audiofragment), this will invoke the MMObjectBuilder.nodeXXXXChanged (builder=audiofragment). The MMObjectBuilder will check if it is extending another builder, and that is the case the audiofragment builder is extending the mediafragment builder, and thus the MediaFragment.nodeXXXChanged (builder=mediabuilder) will be invoked etc.etc. So the problem is not in extending java files, but in extending the builders (NodeManagers). I hope this makes things more clean, greetings Rob
