【发布时间】:2018-04-22 10:59:31
【问题描述】:
我正在使用 SWTBot 测试一个非 e4 RCP 应用程序,我需要更改视图的大小。 (移动窗框)
我没有成功
- 使用 SWTBot 调整我的视图大小(没有这样的 api)
- 使用 Eclipse 3 API 调整视图大小(不支持)
- 使用底层 e4 模型调整我的视图大小(调整大小不起作用)
e4 模型接缝很有希望,但我错过了一些东西,所以它不起作用。
我可以
- 获取我的观点的 MPart:
view = ePartService.findPart(ID) - 获取 MTrimmedWindow:
window = (view as EObject).eContainer as MTrimmedWindow
我不能
- 语言环境正确的 MPartSashContainer
- 用
setContainerData()移动窗框
我想知道
- 如何从 MPart 移动到其直接父级(例如 MPartStack)
- 为什么像 eContainer() 这样的常见 EObject 方法在 M... 对象上不存在?
【问题讨论】:
-
MPart(以及所有其他MUIElement对象)有一个getParent()方法,它可以为您提供直接父级。 -
不幸的是,它为我的“视图”MPart 返回 null :(
-
那么它还没有被添加到容器中。这总是返回正在显示的部件的父级。
-
@greg-449 我做
page.showView(ID,...),然后等待5秒,然后ePartService.findPart(ID).getParent()仍然是null。有什么想法吗? -
我不知道在 3.x 兼容模式下零件 ID 会发生什么。我不确定
IWorkbenchPage.showPage使用的 id 是否与应用程序模型 MPart id 相同。
标签: eclipse eclipse-rcp e4 swtbot