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