2016-04-15 90 views
0

我正在使用Eclipse-RCP-應用程序,其中有兩個不同文件夾的透視圖。左側文件夾中的視圖顯示用戶可以單擊以獲取更多信息的信息。因此,詳細信息顯示在正確的文件夾中。
當右側文件夾中只有一個視圖時,沒有問題。然而,當我向正確的文件夾添加另一個視圖時,事情變得混亂。由於視圖必須以某種方式進行交流,因此我爲此編寫了一些代碼。在createPartControl(Composite)期間,視圖註冊用戶選擇的更改。但是該文件夾的第二個視圖在用戶點擊它之前不會被加載,所以當用戶選擇表格行或其他內容時它不會自動更新。總是打開(創建)Eclipse RCP視圖

這可能很難理解,所以這裏有一個例子:用戶打開應用程序並看到兩個標籤頁。然後他在表格中選擇X行。右側文件夾的前視圖現在包含有關X行的信息。該文件夾的第二個視圖尚未加載,因此尚未註冊選擇更改。如果用戶現在打開此視圖,則它將處於默認狀態,因爲它沒有獲得有關選擇更改的信息。
只有在用戶打開視圖後才能顯示信息。有沒有辦法創建一個視圖,一旦加載透視圖就會自動加載(被創建)?

與此一起,如果用戶選擇X行並且最小化右側選項卡文件夾,我想打開正確的選項卡文件夾。爲此,我使用了IWorkbenchPage.showView(String)。打開選項卡文件夾的第一個視圖。但是,每當我打開另一個視圖並選擇Y行時,「打開」第一個視圖將導致將其置於前面。有沒有辦法來防止這種情況?

回答

1

您可以打開一個視圖,而不將其激活使用:

IWorkbenchPage page = ... 

page.showView("view id", null, IWorkbenchPage.VIEW_VISIBLE); 

您還可以使用

IViewPart part = page.findView("view id"); 

找到看法,如果它已經打開。

+0

感謝您的回答,您將在哪裏放置代碼的第一部分以便在應用程序啓動時(或加載透視圖時)打開視圖? – AidenPearce

+0

這是一個不同的問題。如果這是您的觀點,您只需將視圖包含在您的視角設計中。如果它是一個現有的透視圖,使用'org.eclipse.ui.perspectiveExtensions'擴展點爲視角提供一個視圖。 –