Hm. Oh, I see how that _used_ to work, because makeChild used to
look first in global to see if there was a class that had the name
and only then in ConstructorMap to see if the name was actually a
tag. This really only worked by sheer chance, because makeChild was
looking in global for user classes, not built-in classes (i.e., what
basegridcolum is trying to do was not part of the contract).
BUT. All is not lost. Luckily each class that is the class that
implements a tag has a new property `tagname`, so what you want is
`v.constructor.tagname`.
Let me know, but I think that should work.
IWBNI you grepped through the rest of the components just to make
sure there are no other uses of classname.
Thanks!
On 2006-10-24, at 18:43 EDT, Philip Romanik wrote:
Hi Tucker,
The file, basegridcolumn.lzx, overrides determinePlacement(). I'm
not exactly sure of what it is trying to do, but it makes a new
object of the same type of the subnode (the first argument). Later,
the information is used to create children as a row is built.
<method name="determinePlacement" args="v , p, args">
...
var o = { name: v.classname, attrs: a };
...
this._contentsPackage.push( o );
</method>
Changing 'v.classname' to 'v.constructor.classname' doesn't quite
work. To build an object, it must be in ConstructorMap. In my app,
constructor.classname is 'LzView' and it needs to be 'view'.
Ah. classname is no longer in the instance. It needs to be replaced
with constructor.classname. I did this in the LFC, but I guess it
did not occur to me that this was used externally to the LFC. What
exactly is grid trying to do? (That is, perhaps there is a better
way than using classname.)
I think it is an error that there is a classname on the instance.
I'll remove that.