2012-07-17 42 views
6

在我的RCP應用程序我使用此代碼切換視角:自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 

而且現在這個角度不再切換,在調試中沒有任何例外,也沒有任何可疑的跡象。

我沒有找到任何錯誤報告。

有沒有解釋?解決方法?

回答

6

我也遇到了這個問題。據我所知,這是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()是安全的。

+0

謝謝。這不是我爲我的程序選擇的解決方案,因爲Juno對於今天的生產來說太麻煩了,而且太醜了。但你的答案似乎很好,可能對別人有用,所以我最終接受它:) – 2012-09-14 07:33:32

+2

@dystroy感謝接受。我已經得出同樣的結論:4.x版本仍然太麻煩。 – WReach 2012-09-14 12:55:47

1

這裏有一個答案,其目的是澄清和解決我的問題:

使用Eclipse 4個IDE,構建Eclipse 4之前developped一個RCP應用,集成的Java 7的功能和兼容Windows 32位。當然可以切換視角。

此答案不能解決那些希望在RCP應用程序中切換透視圖並使用新的Eclipse 4平臺的功能或外觀(不要與Eclipse 4 IDE混淆)的問題。但我不會推薦它,至少在一箇舊的應用程序(即developped基於Eclipse 3),鑑於:

  • 說的那麼慢呈現勉強可用的應用程序
  • 有許多故障的圖形
  • 有蟲子,其中有涉及到視角切換一個

對於這3點,我不能說,如果它是由於Eclipse的4平臺或Eclipse 3兼容層。我希望專門爲新的Eclipse 4平臺開發的新應用程序能夠正確運行。

所以我的解決方案是定義一個Eclipse 3目標並將其用於構建。

下面是完整的程序:

  1. 已經安裝了JDK 7(32位版本)
  2. 安裝Eclipse 3.7(32位版本)
  3. 安裝Eclipse 4(32位版本)
  4. 啓動Eclipse 4並導入所需的項目
  5. 轉到窗口/首選項/插件開發/目標平臺
  6. 單擊「添加」,然後單擊「無」
  7. 單擊「添加」,然後單擊「安裝」並選擇您的Eclipse 3。7目錄
  8. 一旦你的目標創造,(在窗口/首選項仍然/插件開發/目標平臺)在.product,「月蝕產品導出嚮導」中選擇它

現在,將建立一個Eclipse 3可執行。

實用筆記:

  • 「清除所有」是不夠的,我不得不停止/啓動Eclipse得到它的目標選擇後工作
  • 安裝過程中刪除了一些對我.product領域。我不得不重置ID並檢查「該產品包括原生laucher文物」
2

這是錯誤https://bugs.eclipse.org/bugs/show_bug.cgi?id=395084,並且將在Eclipse 6月份發佈的Eclipse Luna中修復。

+0

+1謝謝。我不會改變接受,但這很有趣。 – 2014-02-06 13:41:46

+0

完全沒問題。我實際上使用了此處提供的解決方法,因爲Luna尚未正式發佈,並且使用它會帶來其他錯誤。 – 2014-02-06 13:57:53

相關問題