2

我以编程方式从 Eclipse 中分离了一个视图。现在我想把它附回去。什么是最有效的方法。

4

2 回答 2

2

您必须进行一些强制转换有效性和空有效性检查,但这是交易:

PartSite partSite = (PartSite)yourDetachedView.getViewSite();
PartPane partPane = partSite.getPane();
ViewStack viewStack = (ViewStack)partPane.getContainer();
ViewPane viewPane = (ViewPane)viewStack.getSelection();
viewPane.doAttach();

编辑:这是另一种方式。

PartSite site = (PartSite)yourDetachedView.getSite();
WorkbenchPage workbenchPage = (WorkbenchPage)site.getPage();
String viewId = site.getId();
String secondaryId = yourDetachedView.getViewSite().getSecondaryId();
IViewReference viewReference = workbenchPage.findViewReference( viewId, secondaryId );
Perspective activePerspective = workbenchPage.getActivePerspective();
PerspectiveHelper presentation = activePerspective.getPresentation();
presentation.attachPart( viewReference );
于 2013-06-27T13:43:52.033 回答
2

的匹配操作detach(*)org.eclipse.e4.ui.workbench.modeling.EModelService.insert(MPartSashContainerElement, MPartSashContainerElement, int, float)

我发现的唯一工作示例是在 DND 支持SplitDropAgent中,但它不容易阅读。我怀疑您需要找到之前分离的部分。

于 2013-06-28T18:14:21.303 回答