[英]Reset perspective programmatically in a pure e4 application
我們想以編程方式在Eclipse RCP 4應用程序中重置透視圖。 我一直在研究如何完成此操作的示例,但似乎沒有整齊的方法可以做到這一點。
這是我們看過的一些例子:
1 https://www.eclipse.org/forums/index.php/t/210165/
將所有觀點復制到Snippets
。 這意味着在Perspective Stack
和Snippets
維護重復項,這不適合大型RCP應用程序。
2 如何在Eclipse RCP E4中而非E3中以編程方式重置透視圖
調用resetPerspectiveModel
。 這似乎沒有任何作用。 另一位用戶也提到了這一點。
3 如何重置Eclipse e4 RCP應用程序的透視圖?
第一個答案提到使用RCP 3代碼。
第二個答案將刪除當前視角,將其添加,然后調用切換到當前視角。 這什么也沒做。
我們一直在嘗試每種方法的變體,但無法重置。
在純e4應用程序中重置透視圖的正確方法是什么?
設置首選項,重新啟動應用程序,在啟動時檢測到首選項並添加clearPersistedState系統屬性是我發現以棘手的方式執行此操作的唯一方法。 它可以工作,但是希望在不重新啟動的情況下進行重置。 不好的是,它將重置整個模型。
在“重置視角”處理程序中使用以下代碼:
@Execute
public void restart(IWorkbench application, @Preference IEclipsePreferences preferences) {
preferences.putBoolean("PLEASE_RESET_ON_STARTUP", true);
preferences.flush();
application.restart();
}
在您的生命周期管理器類中是這樣的:
@PostContextCreate
public void doTheTrick(@Preference IEclipsePreferences preferences) {
if (preferences.get("PLEASE_RESET_ON_STARTUP", "false").equals("true") {
System.setProperty(IWorkbench.CLEAR_PERSISTED_STATE, "true");
preferences.remove("PLEASE_RESET_ON_STARTUP");
preferences.flush();
}
}
也許您還需要添加一些異常處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.