2010-04-02 57 views
1

我有一個需要移植到GWT的AWT applet應用程序。小程序屏幕在元數據中進行了描述,小程序使用反射動態呈現每個屏幕。使用元數據動態創建GWT屏幕?

我們想要GWT/ExtGWT中的同樣的東西。

我已經構建了此ExtJS的工作版本,從而將元數據轉換爲JSON格式的ExtJS屏幕配置。這種方法的缺點是數據控件的「佈線」需要用Javascript編寫。

GWT是首選,因爲它將是所有的Java代碼,沒有JS。在挖掘時,可以使用GWT.create()將GWT的屏幕渲染爲元數據。

我遇到的問題是將動態創建的按鈕掛接到事件處理程序的接線需要GWT中不支持的反射。

這個結論是否正確?如果有的話,還有其他方法可以使用ExtGWT來實現這種動態UI嗎?

+0

你能舉一個例子說明元數據是怎樣的嗎?如果你已經掌握了元數據,你爲什麼還需要反思? – Fabian 2010-04-06 10:22:35

+0

元數據描述屏幕的小部件,窗口,面板,按鈕,網格。我需要將觸發這些對象的「clicked」事件連接到用java編寫的事件處理程序。 類似於 myButton.addActionListener( (ActionListener)EventHandler.create(ActionListener.class,frame,「HandleClicked」)); 其中「HandleClicked」來自元數據並引用其他地方定義的函數。 – 2010-04-06 14:30:43

回答

0

對於extGWT,我們沒有聲明性UI,最簡單的解決方案可能是在java中添加一個映射/配置處理程序,它指向實例化的類。如:

Map<String, ActionListener> mapping = new HashMap<String, ActionListener>(); 
mapping.put("HandleClicked", new HandleClickedActionListener()); 

然後你可以嘗試爲你的元數據找到一個實現類。

對於純粹的GWT 2,你可以看看http://code.google.com/intl/de-DE/webtoolkit/doc/latest/DevGuideUiBinder.html#Simple_binding關於它是如何完成的。有可能創建一個類似的解決方案,爲您擁有像gwt中的那樣的extgwt解決方案。