2011-03-22 118 views
1

我在我的UI端有3個小部件(1列表框,2個文本框)。我想創造出能勝任值改變事件的處理程序,如果任何的三個部件值的變化,也對是否爲模糊的ListBox.The代碼框架會是這樣的GWT多個事件處理

registerHandler(new multiWidgetHandler()); 
private class multiWidgetHandler{ 
    //code for handling onValueChange for 3 widgets and also onBlur for listBox 
} 

我不知道怎麼樣實施這個乾淨。需要幫忙。一些示例代碼將不勝感激。

回答

5

您可以在同一個處理程序中實現多個Handler接口,然後多次添加該處理程序。

private class MultiWidgetHandler implements ValueChangeHandler<String>, BlurHandler, ChangeHandler 
{ 
    protected void handleIt() { Window.alert("These events are so handled right now!"); } 

    public void onBlur(BlurEvent e) { handleIt(); } 
    public void onValueChange(ValueChangeEvent<String> e) { handleIt(); } 
    public void onChange(ChangeEvent e) { handleIt(); } 
} 

...

MultiWidgetHandler handler = new MultiWidgetHandler(); 

listBox.addChangeHandler(handler); 
listBox.addBlurHandler(handler); 
textArea1.addValueChangeHandler(handler); 
textArea2.addValueChangeHandler(handler); 
0

你爲什麼計劃這樣的行爲?通常在一個事件的處理程序上。如果你想把所有3個事件傳送給一個處理程序,你可以讓3個不同的處理程序調用一個「全局」方法:HandleAllEvents()。如果所有事件屬於同一類型,則可以註冊相同的處理程序3次。

+0

好一個複雜的UI,一羣35個UI字段中,我有一個5-6準則的依賴於這三個UI fields.So的變化我想它最好有一個自定義處理程序來處理這三個小部件上的任何變化或模糊事件。您可以對此設計發表評論 – Barry 2011-03-22 16:21:10