Understood, the classes have a tagname field. But the instances don't have one, which doesn't give the ability to search the subviews/ subnodes of a view for instances of a specific class. At least I don't know how to do that.

Take this code:
<canvas debug="true">
    <view name="myView" width="100" height="100" bgcolor="red">
    </view>
</canvas>

How could I search the canvas for a list of subviews based on the lz.view class? canvas.searchSubnodes("tagname", "view") doesn't work, since canvas.myView.tagname is undefined. Of course I could write my own method to do that, but I thought it's handy to be able to search the subnodes for specific instances of a class.

On Nov 15, 2009, at 3:58 PM, P T Withington wrote:

All 4.0 classes have a `tagname` field. Anywhere you used `classname` in 3.x you should use `constructor.tagname` in 4.x. We did this because LFC class names are different from the tag they represent and we wanted a uniform API for both LZX and core classes. Using `constructor.tagname` will be forward compatible.

On 2009-11-15, at 09:38, Raju Bitter wrote:

Thanks, Tucker. But that would only work for 4.1, I guess. 4.0.x didn't use the lz. namespace. I found a workaround using a bit more of initialization code.

- Raju

On Nov 15, 2009, at 2:49 PM, P T Withington wrote:

On 2009-11-15, at 06:19, Raju Bitter wrote:

In an old app OL 3.4 app I used the following code:

var tabs = parent.searchSubnodes('classname', 'CustomTabs');

But in 4.0.18 (Webtop) that doesn't work any more. What happened to the concept of being able to access the name of the class through nodeObject.classname? That worked in 3.3, and in 4.0.18 (Webtop) it returns "Object", which is not very helpful. By looking at the source code for LzNode I saw that it's possible to access the real classname through object.constructor.classname.

Is that a bug, or a feature?

You want to update your code to use 'tagname' instead of 'classname'. This was part of the attempt to make the LFC and user classes uniformly accessible. For all tags `t` in LZX:

lz[t].tagname === t





Reply via email to