what seems to be this problem; the setter function (setNodename) for the "nodeName" attribute does not seem to be getting called
on LzDataElement
In the test case this line of code
nen.setAttribute( 'nodeName' , "bar" );
doesn't call the setNodeName setter on LzDataElement. It does directly set the nodeName property though.
But if I replace the call above with this line which calls the setter directly, then everything works (i.e., some other
important events are sent by the setter function)
nen.setNodeName( "bar" );
So, the question is why isn't this setter getting dispatched to by setAttribute. I haven't gotten that far yet, but
I wonder if it has something to do with LzDataElement being defined by a trait.
The trait is defined in LzDataElement.lzs with an initializer like this
LzDataElementTrait = Trait.make(
"LzDataElementTrait",
null,
// N.B.: LzDataElementTrait may or may not be an LzNode, so
// _if_ it were to have an initialize method, it would have to
// match LzNode.initialize's signature.
null,
function LzDataElementTraitInitialize (prototype) {
// There will be no setters property in the trait prototype,
// (and you don't want one there! as it would shadow the one
// from LzNode) but it will be there after LzNode.initialize
// runs
if (prototype.hasOwnProperty('setters')) {
// since you can't assign directly to these slots...
// until LzNode.initialize has run
prototype.setters.attributes = "setAttrs";
prototype.setters.childNodes = "setChildNodes";
prototype.setters.nodeName = "setNodeName";
// Shouldn't be directliy settable
prototype.setters.ownerDocument = "setOwnerDocument";
}
}
);
"LzDataElementTrait",
null,
// N.B.: LzDataElementTrait may or may not be an LzNode, so
// _if_ it were to have an initialize method, it would have to
// match LzNode.initialize's signature.
null,
function LzDataElementTraitInitialize (prototype) {
// There will be no setters property in the trait prototype,
// (and you don't want one there! as it would shadow the one
// from LzNode) but it will be there after LzNode.initialize
// runs
if (prototype.hasOwnProperty('setters')) {
// since you can't assign directly to these slots...
// until LzNode.initialize has run
prototype.setters.attributes = "setAttrs";
prototype.setters.childNodes = "setChildNodes";
prototype.setters.nodeName = "setNodeName";
// Shouldn't be directliy settable
prototype.setters.ownerDocument = "setOwnerDocument";
}
}
);
Maybe there's something wrong with the way this is trying to add setters?
--
Henry Minsky
Software Architect
[EMAIL PROTECTED]
_______________________________________________ Laszlo-dev mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-dev
