如何以编程方式获取qooxdoo子类列表

时间:2016-06-06 00:29:00

标签: qooxdoo

我正在为qx.mobile编写一个ClojureScript包装器,并希望以编程方式构建一个镜像qx类层次结构的cljs类型层次结构。

有没有办法获取qooxdoo类的所有子类?

如何以编程方式查询类的超类?

我已经很好地使用了qx.Class.getProperties。

Thx,kt

2 个答案:

答案 0 :(得分:4)

获取给定类的超类的编程方法记录在http://demo.qooxdoo.org/current/apiviewer/#qx.Class

<classname>.superclass

或将超类的名称作为字符串

<classname>.superclass.classname

这意味着例如

qx.ui.core.Widget.superclass.classname

将返回字符串“qx.ui.core.LayoutItem”。

关于检索类的所有子类的编程方法: 如果不迭代整个类层次结构/树并测试对象不是给定类的子类,那么这是不可能的。

我们在https://gitter.im/qooxdoo/qooxdoo讨论过,为每个持有子类的类创建一个数组可能会很有用。这可以添加到qx.Class中的私有方法__createClass的代码中。

我们希望鼓励每个需要此(或其他)功能的人加入https://github.com/qooxdoo/qooxdoo/并通过创建拉取请求来帮助扩展qooxdoo。谢谢。

答案 1 :(得分:2)

在qx.Class中挖掘了一下之后,我们决定实现一个方法qx.Class.getSubclasses,它返回一个包含给定类的所有子类的哈希对象。

var subclasses = qx.Class.getSubclasses(qx.ui.core.Widget);

获取qx.ui.core.Widget的所有子类。

使用提交https://github.com/qooxdoo/qooxdoo/pull/9037

登陆qooxdoo master