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);

参数
queryObjectQuery对象
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);

参数
queryObjectQuery对象
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 公司的商标。所有其他商标均为其各自所有者的财产。