2012-06-27 32 views
0

我正在開發一個SmartGWT應用程序,允許從外部瓶子動態加載插件。SmartGWT在插件中?

我希望這些罐子能夠提供自己的畫布作爲Web UI。當插件被加載時,它會告訴主應用程序,「這是我的名字,這裏是我的UI畫布......」或其他。

這可以用SmartGWT來完成嗎?或者我應該回到一些更簡單的基於JS的用戶界面(JQuery?)

+0

如何允許動態加載插件?你可以定義插件的含義嗎?給我們更多的上下文信息,因爲你的回答不是微不足道的。 –

+0

該應用程序掃描文件夾中包含的對象是特定界面的實例。 然後加載並實例化該對象。 然後應用程序可以調用它們以實現明確的目的,包括將服務對象傳遞給動態加載的類,以便它可以使用應用程序中的方法。該應用程序提供了網頁的一般框架,並將在其中顯示該罐子的畫布。 – Evvo

+0

那麼,你的問題是什麼呢?請更具體地說 –

回答

0

SmartGWT只是一個與GWT協作的框架。要回答你的問題,你應該看看GWT模塊的定義。

爲了更好地理解,閱讀本:https://developers.google.com/web-toolkit/doc/latest/DevGuideOrganizingProjects

如果你在你的應用程序的多個GWT模塊,有兩種 方式接近加載它們。

  1. 單獨編譯每個模塊,包括在你的HTML主頁的獨立 標籤中的每個模塊。
  2. 創建頂級模塊XML 定義,該定義包含要包含的所有模塊。編譯 頂級模塊創建一組JavaScript輸出。

第一種方法看起來最簡單也最明顯。但是,第二種方法將導致更好的最終用戶性能。加載多個模塊的 問題是每個模塊必須由最終用戶的瀏覽器單獨下載 。此外,每個 模塊將包含GWT庫代碼的冗餘副本,並且在事件處理期間可能會彼此衝突。強烈建議採用第二種 方法。

+0

不幸的是,我不認爲這些方法中的第二種方法確實是解決我的問題的方法,因爲插件(以及GWT/SmartGWT模塊)直到運行時纔會知道。 對於每個插件的用戶界面,使用ViewLoader看起來可能是正確的做法。然後每個插件需要提供一個shell html和.js文件。不過,我不確定插件的js是否能夠使用應用程序的支持庫。你是對的,它可能會以重複的方式結束。 – Evvo

+0

這是來自提供的鏈接的報價。 –