2012-09-20 39 views
0

我在RCP應用程序中打開多個編輯器時遇到了問題。據我所知,繪製GUI只有一個UI-ThreadRCP並行編輯器

在我的使用案例中,我必須同時打開約50個編輯器,這需要一些時間,因爲在所有編輯器打開之前阻塞了UI線程。在我的編輯器中加載數據是通過Jobs完成的。

我嘗試搜索是否有一些機制來平行開放,以阻止UI線程,但沒有找到任何東西。有沒有可能做到這一點?如果每個編輯器都在自己的UI-Thread中進行opend /繪製,這樣用戶就可以使用opended編輯器,這將非常有幫助。

+0

@ Floradu88請停止隨機「代碼高亮」對於不是碼字的編輯。我正在刪除這些修改,並拒絕了我看到的新修改。 –

回答

0

我想你已經回答了你的問題 - Eclipse-RCP應用程序中只有一個UI線程。您可能希望重新考慮應用程序設計,並儘可能使用延遲加載機制(組合框,查看器等),或嘗試找到一些地方,數據加載需要更多時間並可以優化,但編輯器的可視化初始化仍然需要一些時間,特別是如果你同時打開多個編輯器。

+0

謝謝。然後必須調整用例,但這應該是可能的。 – AnarchoEnte

0

你可以做的一件事是在IDE產品中使用org.eclipse.ui.ide.IDE.openEditors(IWorkbenchPage, IFile[])或在RCP產品中使用'org.eclipse.ui.IWorkbenchPage.openEditors(IEditorInput [],String [],int)'來推遲打開編輯。從Eclipse 3.5開始,這兩種方法都可用。

它根據請求創建編輯器的所有選項卡,但它僅實現最終處於活動狀態的編輯器。它提供了與用戶關閉並重新打開eclipse並打開多個編輯器(僅實現可見編輯器)相同的行爲。

見IWorkbenchPage的Javadoc的更多信息,http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fui%2FIWorkbenchPage.html

PW

+0

聽起來很有用。這個方法在Eclipse 3.6中可用嗎?我沒有找到任何API。你能提供一些鏈接嗎? – AnarchoEnte

相關問題