[英]Switch perspective in a RCP application since Eclipse Juno?
在我的RCP應用程序中,我使用此代碼切換透視圖:
IWorkbenchWindow window = getViewSite().getWorkbenchWindow();
window.getWorkbench().showPerspective(PRODUCT_PERSPECTIVE_ID, window);
我沒有更改我的代碼,但我改變了我的開發環境
java 6 64bits + windows + Eclipse Indigo
至
java 7 32bits + windows + Eclipse Juno
現在,透視圖不再切換,沒有異常,並且在調試中沒有任何可疑內容。
我沒有找到任何錯誤報告。
有解釋嗎? 解決方法?
我也遇到過這個問題。 據我所知,這是Juno(4.2.0)的回歸。 我使用調試器逐步調用showPerspective() 。 在任何時候都沒有任何明確的嘗試來實際改變觀點。 也許有一個內部事件監聽器丟失,或者新框架的showPerspective()端口可能不完整。
作為解決方案,以下代碼成功地改變了我的觀點:
IWorkbenchWindow window = getViewSite().getWorkbenchWindow();
IPerspectiveRegistry registry = workbench.getPerspectiveRegistry();
IWorkbenchPage page = window.getActivePage();
page.setPerspective(registry.findPerspectiveWithId(PRODUCT_PERSPECTIVE_ID));
根據進行這些調用的上下文,您可能希望對其中一些調用進行空值保護,或者檢查Workbench.isClosing()
是否安全。
這是錯誤https://bugs.eclipse.org/bugs/show_bug.cgi?id=395084並修復了Eclipse Luna,計划於6月發布。
這是一個旨在澄清和解決我的問題的答案:
使用Eclipse 4 IDE,構建在Eclipse 4之前開發的RCP應用程序,集成Java 7功能並與Windows 32位兼容。 當然能夠切換視角。
這個答案並沒有解決那些想要在RCP應用程序中切換透視圖並使用新Eclipse 4平台的功能或外觀(不要與Eclipse 4 IDE混淆)的人的問題。 但我不推薦它,至少對於一個舊的應用程序(在Eclipse 3上開發),給出:
對於這3點,我不能說它是由於Eclipse 4平台還是Eclipse 3兼容層。 我希望專門為新的Eclipse 4平台開發的新應用程序能夠正確運行。
所以我的解決方案是定義一個Eclipse 3目標並將其用於構建。
這是完整的程序:
現在,在您的.product
,“Eclipse Product Export Wizard”將構建一個Eclipse 3可執行文件。
實用說明:
.product
字段上刪除了一些。 我不得不重置ID並檢查“該產品包含原生的laucher工件”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.