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.


Reply via email to