Inspectable
com.froglogic.squish.extension.Inspectable可检查接口——此接口需要实现以在 Squish 中提供自定义 Java 支持。
概要
public interface com.froglogic.squish.extension.Inspectable { // Public Methods public abstract boolean findObjects(com.froglogic.squish.extension.ObjectQuery query, int n, java.util.AbstractList matches); public abstract boolean findObjects(com.froglogic.squish.extension.ObjectQuery query, java.lang.Object obj, java.util.AbstractList matches); public abstract java.lang.Object getChildAt(com.froglogic.squish.extension.Point pos); public abstract java.lang.Object[] getChildren(); public abstract com.froglogic.squish.extension.Rect getGlobalBounds(); public abstract java.lang.String getName(); public abstract java.lang.Object getObject(); public abstract java.lang.Object getParent(); public abstract java.lang.Object getPropertyValue(java.lang.String prop); public abstract boolean isObjectReady(); public abstract com.froglogic.squish.extension.Point mapFromGlobal(com.froglogic.squish.extension.Point pos); public abstract com.froglogic.squish.extension.Point mapToGlobal(com.froglogic.squish.extension.Point pos); }
描述
本接口需要实现以支持Squish中的自定义Java功能。当完全实现时,将确保自定义类/小部件在间谍中正确显示,在拾取时显示正确的突出显示矩形,并且可以用于记录/回放事件。对于每个需要Squish了解的自定义类,必须实现一个可检查的接口。这些类可以存储在AUT jar中,也可以存储在外部jar中。以下是一个虚构的画布示例中类的样子
class MyCanvasItemExtension extends InspectableAdapter { MyCanvasItem itm; public Rect getGlobalBounds() { .... } class MyCanvasExtension extends InspectableAdapter { MyCanvas can; public Rect getGlobalBounds() { .... }
为每个需要公开的自定义对象定义此类之后,需要将它们注册到Squish中。完成此操作的方法是创建一个工厂,该工厂为给定的对象返回正确的可检查接口
class MyCanvasFactory implements InspectableFactory { public Inspectable query( Object object ) { if ( object instanceof MyCanvas ) { return new MyCanvasExtension( object ); } else { .... }
现在我们已经有了工厂,我们需要一个初始化钩子,将工厂注册到注册表中
public static void init( InspectableRegistry registry ) { registry.register( new MyCanvasFactory() ); } }
此外,在存储上述扩展程序的jar的清单文件中,需要有一个额外的条目,以便Squish可以找到初始化方法
Extension: MyCanvasFactory
最后,我们通过.ini文件让Squish了解新的包装类。请参阅参考指南中的包装自定义Java类。应使用同一.ini文件让Squish了解上述生成的扩展jar位置。一个条目可能如下所示:JavaExtensionDir="/home/squish/extensions/", "/home/squish/mycanvas"
另请参阅: com.froglogic.squish.extension.InspectableAdapter, com.froglogic.squish.extension.InspectableFactory, com.froglogic.squish.extension.InspectableRegistry
方法
findObjects(ObjectQuery, int, AbstractList)
public abstract boolean findObjects(com.froglogic.squish.extension.ObjectQuery query, int n, java.util.AbstractList matches);
参数 | |
---|---|
query | ObjectQuery对象 |
n | 不超过n个对象需要找到 |
matches | 按找到的顺序匹配查询的列表 |
返回 | 如果列表中存在n个对象则为true |
在一个列表中找到并添加与查询匹配的对象。搜索应在列表中包含n个对象时终止。此函数用于找到对象的第n次重复出现。
重要:此函数可能会随时更改。除非有充分的理由,否则请使用InspectableAdapter默认实现。
findObjects(ObjectQuery, Object, AbstractList)
public abstract boolean findObjects(com.froglogic.squish.extension.ObjectQuery query, java.lang.Object obj, java.util.AbstractList matches);
参数 | |
---|---|
query | ObjectQuery对象 |
obj | 直到找到obj为止停止搜索 |
matches | 匹配查询的顺序找到的对象 |
返回 | 如果在列表中则返回true |
在一个列表中找到并添加与查询匹配的对象。搜索应在找到obj后结束。此函数用于找到对象的 occurrence 属性。
重要:此函数可能会随时更改。除非有充分的理由,否则请使用InspectableAdapter默认实现。
getChildAt(Point)
public abstract java.lang.Object getChildAt(com.froglogic.squish.extension.Point pos);
参数 | |
---|---|
pos | 用于击打的点 |
返回 | 被击打的对象 |
返回在位置pos被击打的子对象。容器应返回支持在该详细级别记录的精确子对象(例如画布)。被击打的子对象也可以是间接子对象,例如容器子子的子对象。坐标是相对于包装对象的。如果没有子对象在pos,应返回null。
getChildren()
public abstract java.lang.Object[] getChildren();
参数 | |
---|---|
返回 | 所有子对象的数组 |
返回包装对象的所有子对象。如果没有子对象,应返回空数组(而不是'null',而是'new Object[]{}')
getGlobalBounds()
public abstract com.froglogic.squish.extension.Rect getGlobalBounds();
参数 | |
---|---|
返回 | 边界作为一个 Rect |
以 Rect 对象的形式获取此组件的边界。边界指定此组件的宽度、高度以及相对于其容器的位置,所有这些都在容器的坐标系中。
getName()
public abstract java.lang.String getName();
参数 | |
---|---|
返回 | 名称 |
返回此对象的名称。
getObject()
public abstract java.lang.Object getObject();
参数 | |
---|---|
返回 | 对象 |
返回此 Inspectable 检查的对象。
getParent()
public abstract java.lang.Object getParent();
参数 | |
---|---|
返回 | 父对象 |
返回此对象的父对象。
getPropertyValue(String)
public abstract java.lang.Object getPropertyValue(java.lang.String prop);
参数 | |
---|---|
prop | 属性名称 |
返回 | 此属性的值或 null |
返回字符串属性的值。此函数用于为对象映射创建对象名称。在 descriptors xml 文件中,如果对象类为 Squish 所知,则可以从 getter 函数 "getAbc()" 中添加任何属性名 "abc"。对于 Squish 未知或不具有 getter 函数的对象类,此函数应返回值。在 descriptor xml 中标记为对象的属性必须有匹配的 Inspectable。
isObjectReady()
public abstract boolean isObjectReady();
当包装对象准备好接收用户输入(如文本框的文本或按钮的点击)时返回 true,否则返回 false。
mapFromGlobal(Point)
public abstract com.froglogic.squish.extension.Point mapFromGlobal(com.froglogic.squish.extension.Point pos);
参数 | |
---|---|
pos | 全局坐标 |
返回 | 转换后的点 |
将全局/屏幕坐标 x,y 转换为包装对象的局部坐标,并将结果作为 Point 返回。
mapToGlobal(Point)
public abstract com.froglogic.squish.extension.Point mapToGlobal(com.froglogic.squish.extension.Point pos);
参数 | |
---|---|
pos | 局部坐标 |
返回 | 转换后的点 |
将局部坐标 x,y 转换为绝对屏幕坐标,并将结果作为 Point 返回。
©2024 Qt 公司版权所有。本文件所述的文档贡献均属其各自所有者的版权所有。
本文件提供的文档遵循自由软件基金会发布的 GNU 自由文档许可协议版本 1.3 的条款。
Qt 及其 respective 标志为芬兰及/或其他国家的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。