使用SWTbot API从eclipse中获取复合文本

时间:2013-02-05 13:21:38

标签: eclipse swt swtbot

我正在尝试使用SWTbot API从Eclipse中的Composite获取Text。 我有复合材料,其中包含主要组和主要组包含子组 我面临的问题是我无法获得复合内的文本,是否有一种方法可以在Eclipse中获取该文本。
我附上了我的复合图像,我希望得到所有的文字,如名字,最小版本等 请帮助,它是我的项目的阻止。 enter image description here

1 个答案:

答案 0 :(得分:1)

不是直接的,但你可以这样做:

public getContainedText(Control c) {
    return getContainedText(c, new ArrayList<String>());
}

private getContainedText(Control c, List<String> strings) {
    if (c instanceof Label) {
        strings.add(((Label) c).getText();
    } else if (c instanceof Text) {
        strings.add(((Text) c).getText();
    }
    // and so on for other control types you want to handle
    // and for text you are interested in.
    // Or as an approximation, use reflection to check if
    // c has getText method and call it, but this will miss
    // List, Combo, etc.

    if (c instanceof Composite) {
        for (Control child : ((Composite) c).getChildren()) {
            getContainedText(child, strings);
        }
    }
}