2

プログラムで日食からビューを切り離しました。今、私はそれを元に戻したいと思っています。それを行うための最も効率的な方法は何ですか。

4

2 に答える 2

2

キャストの有効性と null の有効性のチェックをいくつか行う必要がありますが、次のようになります。

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 に答える