簡體   English   中英

在純e4應用程序中以編程方式重置透視圖

[英]Reset perspective programmatically in a pure e4 application

我們想以編程方式在Eclipse RCP 4應用程序中重置透視圖。 我一直在研究如何完成此操作的示例,但似乎沒有整齊的方法可以做到這一點。

這是我們看過的一些例子:

1 https://www.eclipse.org/forums/index.php/t/210165/
將所有觀點復制到Snippets 這意味着在Perspective StackSnippets維護重復項,這不適合大型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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM