2011-06-27 82 views
0

我構建了一個具有selectBox和table的UIBinder。該表充滿了來自數據庫的數據。 當我改變選擇框的選擇,我應該去運行一個查詢來獲取新的數據。 我在屏幕視圖中使用Widget,並在演示者處啓動它。 在UIBinder我觸發事件時,我的選擇框被更改,但我無法抓住主持人。 我怎麼能成功地做到這一點。 我的事件在小部件:GWT處理UIBinder事件

@Override 
public void onChange(ChangeEvent event) 
{ 
    KPIOptionChangedEvent e = new KPIOptionChangedEvent(); 
    fireEvent(e); 
} 

追趕在主持人的事件:

eventBus.addHandler(KPIEvents.KPIOptionChangedEvent.TYPE, 
    new KPIHandlers.KPIOptionChangedHandler() 
    { 
     @Override 
     public void execute(KPIOptionChangedEvent event) 
     { 
      Window.alert(event.getKPI().getName()); 
     } 
    }); 

感謝

回答

0

fireEvent(e)定義上Widget和用於火上的小工具實例的事件。

如果你想發送通過EventBus事件然後調用:

eventBus.fire(e); 
+0

什麼我現在做的,它不工作: KPIOptionChangedEvent E =新KPIOptionChangedEvent(); \t \t \t \t \t \t HandlerManager eventBus = new HandlerManager(this); \t \t \t eventBus.fireEvent(e); \t \t \t \t \t \t} – Rami

+0

您應該創建每個應用程序只有一個EventBus - 沒有必要創建多個EventBuses,因爲它們彼此之間沒有和交流,它只是造成混亂。 在其中一個主要類中使用靜態字段。 –

+0

我明白,但我的對象不應該連接到主或其他邏輯類的東西。它應該採取相應的行動。 – Rami