2012-05-28 24 views
1

我試圖用GAE和GWT開放層庫創建一個帶有地圖的網站。我試圖通過在SiteNameWidget.ui.xml文件中使用MapWidget來實現它,但我得到下面的錯誤。我已經設法通過使用RootPanel.get()。add(MapWidget)方法來實現它,但我希望能夠使用XML文件方法,因爲似乎更容易操作這種方式佈局。使用GWT開放層錯誤MapWidget

有人嗎?

org.gwtopenmaps.openlayers.client.MapWidget沒有默認(零args)構造函數。爲了解決這個問題,你可以在UiBinder的所有者上定義一個@UiFactory方法,或者使用@UiConstructor來註釋MapWidget的構造函數。

回答

0

這意味着,因爲MapWidget只能用參數實例化,所以不能在視圖中聲明它爲@UiField,並依靠GWT使用默認構造函數實例化它。您必須提供一個構造函數(如果您正在專門製作一個窗口小部件)或者將提供一個工廠方法來適當地實例化您的MapWidget(在這種情況下,將MapOptions作爲參數),您將不得不提供這些方法。

例如,添加:

@UiFactory MapWidget createMapWidget() { // The method name is irrelevant 
    MapOptions opts = MapOptions.newInstance(); 
    options.setScrollWheel(false);   // Some sample customization. You may use fields initialized in your actual view constructor (which is called before) to do so. 
    return new MapWidget(opts); 
} 

http://developers.google.com/web-toolkit/doc/latest/DevGuideUiBinder?#Using_a_widget