树(Tree)
针对树控件以及树中的节点,CukeTest提供了 Tree 和 TreeItem 两个控件。Tree
控件代表整棵树,而TreeItem
代表树中的各个节点。
除下面列出的树控件特有的方法,您还可以使用通用控件方法对树控件进行更灵活的操作。
树状视图控件: Tree
树控件主要通过传入itemPath
来操作相关节点。由于节点的名称并不唯一,因此将节点名称作为识别属性是不可靠的,模型管理器提供了一个描述节点位置的识别属性——itemPath
,可以点击itemPath属性查看具体介绍。
方法名 | 描述 |
---|---|
columnHeaders | 获取树的列标题。 |
getItem | 获取指定路径的树节点对象。 |
rowData | 获取指定路径节点的数据。 |
childCount | 获取树的子节点数量。 |
children | 获取树的所有子节点。 |
columnCount | 获取树的总列数。 |
scrollToTop | 滚动到树的顶部。 |
scrollToBottom | 滚动到树的底部。 |
类型定义
export interface IAtTree extends IAtControl {
columnHeaders(): Promise<string[]>;
getItem(itemPath: ItemPath): IAtTreeItem;
rowData(itemPath: ItemPath): Promise<string[]>;
childCount(): Promise<number>;
children(): Promise<IAtTreeItem[]>;
columnCount(): Promise<number>;
scrollToTop(): Promise<void>;
scrollToBottom(): Promise<void>;
}
export type ItemPath = (number | string | [number, number])[];
class AtTree(AtControl):
def columnHeaders() -> List[str]
def getItem(itemPath: ItemPath) -> AtTreeItem
def rowData(itemPath: ItemPath) -> List[str]
def childCount() -> int
def children() -> List[AtTreeItem]
def columnCount() -> int
def scrollToTop() -> None
def scrollToBottom() -> None
columnHeaders()
获取树的列标题。
返回值:
Promise<string[]>
类型,异步返回树的列标题数组。
示例代码
获取树的列标题:
let headers = await model.getTree("tree").columnHeaders();
console.log(`列标题: ${headers.join(", ")}`);
headers = model.getTree("tree").columnHeaders()
print(f"列标题: {', '.join(headers)}")
getItem(itemPath)
获取指定路径的树节点对象。
参数:
- itemPath:
ItemPath
类型,表示树节点路径的数组,支持数字、字符串或者[数字, 数字]形式。
返回值:
IAtTreeItem
类型,返回指定路径的树节点对象。
示例代码
获取指定路径的树节点对象:
let item = model.getTree("tree").getItem([0, "节点名", [2, 3]]);
item = model.getTree("tree").getItem([0, "节点名", [2, 3]])
rowData(itemPath)
获取指定路径节点的数据。
参数:
- itemPath:
ItemPath
类型,表示树节点路径的数组,支持数字、字符串或者[数字, 数字]形式。
返回值:
Promise<string[]>
类型,异步返回指定路径节点的数据数组。
示例代码
获取指定路径节点的数据:
let data = await model.getTree("tree").rowData([0, "节点名"]);
console.log(`节点数据: ${data.join(", ")}`);
data = model.getTree("tree").rowData([0, "节点名"])
print(f"节点数据: {', '.join(data)}")
childCount()
获取树的子节点数量。
返回值:
Promise<number>
类型,异步返回树的子节点数量。
示例代码
获取树的子节点数量:
let count = await model.getTree("tree").childCount();
console.log(`子节点数量: ${count}`);
count = model.getTree("tree").childCount()
print(f"子节点数量: {count}")
children()
获取树的所有子节点。
返回值:
Promise<IAtTreeItem[]>
类型,异步返回树的所有子节点对象数组。
示例代码
获取树的所有子节点:
let children = await model.getTree("tree").children();
children = model.getTree("tree").children()
columnCount()
获取树的总列数。
返回值:
Promise<number>
类型,异步返回树的总列数。
示例代码
获取树的总列数:
let count = await model.getTree("tree").columnCount();
console.log(`总列数: ${count}`);
count = model.getTree("tree").columnCount()
print(f"总列数: {count}")
scrollToTop()
滚动到树的顶部。
返回值:
Promise<void>
类型。
示例代码
滚动到树的顶部:
await model.getTree("tree").scrollToTop();
model.getTree("tree").scrollToTop()
scrollToBottom()
滚动到树的底部。
返回值:
Promise<void>
类型。
示例代码
滚动到树的底部:
await model.getTree("tree").scrollToBottom();
model.getTree("tree").scrollToBottom()
树节点控件: TreeItem
TreeItem
控件代表树中的各个节点,可以对其进行展开、折叠、选中等操作,此外,还可以获取其子节点、数据等信息。以下是TreeItem
控件的详细方法和属性介绍。
方法名 | 描述 |
---|---|
expand | 展开树节点。 |
collapse | 折叠树节点。 |
data | 获取树节点的数据。 |
set | 设置树节点的数据。 |
expandable | 判断树节点是否可展开。 |
expanded | 判断树节点是否已展开。 |
childCount | 获取树节点的子节点数量。 |
children | 获取树节点的所有子节点。 |
类型定义
export interface IAtTreeItem extends IAtControl {
expand(): Promise<void>;
collapse(): Promise<void>;
data(roleId?: number): Promise<string>;
set(value: string): Promise<void>;
expandable(): Promise<boolean>;
expanded(): Promise<boolean>;
childCount(): Promise<number>;
children(): Promise<IAtTreeItem[]>;
}
export enum ExpandCollapseState {
collapsed = 0,
expanded = 1,
partiallyExpanded = 2,
leafNode = 3,
unknown = -1
}
class AtTreeItem(AtControl):
def expand() -> None
def collapse() -> None
def data(roleId: Optional[int]=None) -> str
def set(value: str) -> None
def expandable() -> bool
def expanded() -> bool
def childCount() -> int
def children() -> List[AtTreeItem]
expand()
展开当前树节点。
返回值:
Promise<void>
类型,异步操作。
示例代码
展开树节点:
await model.getTreeItem("treeitem").expand();
model.getTreeItem("treeitem").expand()
collapse()
折叠当前树节点。
返回值:
Promise<void>
类型,异步操作。
示例代码
折叠树节点:
await model.getTreeItem("treeitem").collapse();
model.getTreeItem("treeitem").collapse()
data(roleId?: number)
获取当前树节点的数据。
参数:
- roleId:
number
类型,(可选) 数据角色ID,用于获取特定类型的数据。
返回值:
Promise<string>
类型,异步返回树节点的数据。
示例代码
获取树节点的数据:
let nodeData = await model.getTreeItem("treeitem").data();
console.log(`节点数据: ${nodeData}`);
nodeData = model.getTreeItem("treeitem").data()
print(f"节点数据: {nodeData}")
set(value: string)
设置当前树节点的数据。
参数:
- value:
string
类型,设置的值。
返回值:
Promise<void>
类型,异步操作。
示例代码
设置树节点的数据:
await model.getTreeItem("treeitem").set("新值");
model.getTreeItem("treeitem").set("新值")
expandable()
判断当前树节点是否可展开。
返回值:
Promise<boolean>
类型,异步返回true
表示可以展开,false
表示不能展开。
示例代码
判断树节点是否可展开:
let isExpandable = await model.getTreeItem("treeitem").expandable();
console.log(`可展开: ${isExpandable}`);
isExpandable = model.getTreeItem("treeitem").expandable()
print(f"可展开: {isExpandable}")
expanded()
判断当前树节点是否已展开。
返回值:
Promise<boolean>
类型,异步返回true
表示已展开,false
表示未展开。
示例代码
判断树节点是否已展开:
let isExpanded = await model.getTreeItem("treeitem").expanded();
console.log(`已展开: ${isExpanded}`);
isExpanded = model.getTreeItem("treeitem").expanded()
print(f"已展开: {isExpanded}")
childCount()
获取当前树节点的子节点数量。
返回值:
Promise<number>
类型,异步返回子节点的数量。
示例代码
获取树节点的子节点数量:
let count = await model.getTreeItem("treeitem").childCount();
console.log(`子节点数量: ${count}`);
count = model.getTreeItem("treeitem").childCount()
print(f"子节点数量: {count}")
children()
获取当前树节点的所有子节点。
返回值:
Promise<IAtTreeItem[]>
类型,异步返回子节点的数组。
示例代码
获取树节点的所有子节点:
let childrenItems = await model.getTreeItem("treeitem").children();
childrenItems = model.getTreeItem("treeitem").children()