我已经以编程方式从eclipse中分离了一个视图。 现在我想把它附回来。 什么是最有效的方法。
答案 0 :(得分: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 );
答案 1 :(得分:2)
detach(*)
的匹配操作为org.eclipse.e4.ui.workbench.modeling.EModelService.insert(MPartSashContainerElement, MPartSashContainerElement, int, float)
。
我发现的唯一工作示例是在DND支持SplitDropAgent中,但它并不容易阅读。我怀疑你需要找到你以前分离过的部分。