2011-08-08 66 views
1

場景:我的應用程序使用uibinder。我有一個分隔板:GWT:應用程序菜單和動態內容創建

  • 在屏幕左側有幾個超鏈接(歷史支持)的菜單;

  • 結合到這樣的事件historychanged中央SimplePanel:

    字符串historyToken = event.getValue(); content.setWidget(new Label(historyToken));

  • 不是很有用嗎?現在我想用動態創建的小部件填充我的中心面板。

  • 我知道在客戶端反射是不可能的。

  • 那麼,如何根據歷史記號決定創建/添加到我的內容面板的哪個類,並避免糟糕的if/else if/else if/...代碼塊?

  • 我在考慮以更優雅的「開關」方式使用常量,但它基本上是相同的解決方案。

回答

0

好的,解決方案是使用DeferredBinding併爲「工廠」類編寫代碼生成器。

0

在GWT的客戶端有反射的第三方支持。看看GWT Reflection

+0

不,謝謝,我現在不想要第三方的東西.​​.....沒有一個完整的標準解決方案嗎?什麼延遲綁定? –

+0

恐怕延遲綁定不是你在這種情況下尋找的。如果你不熟悉它,請閱讀它解釋... http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html – Xorty

+0

那麼呢? http://stackoverflow.com/questions/3034881/how-to-create-new-instance-from-class-name-in-gwt –