我有一個RCP應用程序,我需要在模式對話框中顯示GEF編輯器。但是由於編輯框架似乎與使用工作臺窗口等緊密結合,我需要找到爲什麼要打開一個新的工作臺窗口(使用自己的WorkbenchWindowAdvisor等),以便我可以在此工作臺窗口中打開我的GEF編輯器。一旦我得到這個workbenchWindow打開,我將設置WorkbenchWindow的shell的樣式爲應用程序模式。如何從現有工作臺窗口打開新的工作臺窗口(帶有自己的WorkbenchWindowAdvisor)?
1
A
回答
0
使用命令「org.eclipse.ui.window.newWindow」打開一個新窗口。在WorkbenchWindowAdvisor.preWindowOpen()中,將IWorkbenchWindowConfigurer上的shell樣式設置爲應用程序模式。你也可以隱藏coolbar,菜單和狀態欄,所以它看起來更像是一個對話框而不是窗口。
2
我有一個客戶項目使用以下組件做到了這一點:
- 靜態類的方法
openNewWindow(String type, ...)
。這是您打開一個新窗口的方法。 type參數指定所需的窗口類型。 - 該類通過新的擴展點查找指定類型以獲得
ILocalWorkbenchWindowAdvisor
和初始透視ID。 - 它然後保存在全局變量中的信息,並調用
IWorkbench.openWorkbenchWindow(perspectiveID, ...)
- 在
ApplicationWorkbenchAdvisor.createWorkbenchWindowAdvisor(...)
一個新的顧問是基於上創建保存ILocalWorkbenchWindowAdvisor
- 返回的顧問基本上代表所有postWindowCreate(...)
等在ILocalWorkbenchWindowAdvisor
同樣的方法... - 如果沒有
ILocalWorkbenchWindowAdvisor
保存 - 這是要打開的第一個窗口的情況下 - 類型「主窗口」中擡起頭來,用...
它工作得很好,讓的所有部件項目根據需要添加新窗口。
相關問題
- 1. WPF窗口的後臺工作組件
- 2. JS:打開新窗口,工作與它
- 3. 窗口仍然在後臺工作
- 4. 在後臺打開窗口
- 5. 打開的窗口沒有工具欄
- 6. 創建新窗口,同時來自後臺工作人員
- 7. 有沒有辦法在後臺打開一個新窗口?
- 8. 如何用IronPython打開現有窗口
- 9. exe無需控制檯窗口,沒有視覺工作室
- 10. 新的eclipse工作臺窗口總是在頂部
- 11. 有沒有辦法設置窗口讓控制檯窗口打開?
- 12. 在自己的窗口中打開視頻的原始窗口
- 13. 如何從現有窗口創建新的PyQt4窗口?
- 14. 後臺工作人員窗口控件未呈現
- 15. TortoiseHg工作臺:清單窗口,彈出的而不是主窗口
- 16. 如何從Qt的主窗口打開一個新窗口?
- 17. 如何將舊的彈出窗口帶到前臺而不是打開新的窗口?
- 18. 有打開的窗口
- 19. 如何打開新窗口
- 20. 如何從窗口到工作簿
- 21. IE9,如何從開啓者打開的彈出窗口中引用窗口,開罐器後自己刷新
- 22. 如何導入沒有窗口屏幕更新的工作表?
- 23. 無法獲得fancybox的工作 - 在新窗口中打開
- 24. jQuery打開新窗口中的鏈接不工作
- 25. 在新窗口中打開網頁的工作方法?
- 26. 未打開窗口的工作表打開
- 27. Tkinter用窗口打開控制檯窗口
- 28. 有沒有辦法從AppleScript創建或打開一個Excel工作簿,而不會成爲前臺窗口?
- 29. 控制檯應用程序爲後臺工作人員啓動的每個線程打開一個新窗口
- 30. 如何打開新窗口時打開父窗口
謝謝,但我怎麼給這個新打開的窗口自己的WorkbenchWindowAdvisor,因爲我真的不希望它使用主應用程序使用的WorkbenchWindowAdvisor。我希望這個新窗口不會有其父窗口(主應用程序的窗口)存在的其他絨毛 – Craig
實際上,使用此命令的問題在於它(從調試中看到)會打開一個具有活動工作臺窗口透視圖的新窗口。這不是我想要的......我希望它用自己的WorkbenchWindowAdvisor打開一個新窗口,並用一個單獨的編輯器完全不同的視角。方法:final IWorkbenchWindow window = PlatformUI.getWorkbench()。openWorkbenchWindow(「NewPerspectiveID」,null);將會稍微好一些......但使用「自定義」工作臺窗口顧問時仍然有問題,因此我可以配置其外殼樣式 – Craig