2011-03-22 5 views
1

J'ai 3 widgets sur mon côté de l'interface utilisateur (1 ListBox, 2 TextBoxes). Je voudrais créer un gestionnaire qui pourrait gérer l'événement de changement de valeur si l'une des trois valeurs de widgets changements et aussi si le flou pour le squelette ListBox.The de code serait quelque chose comme çaGestion des événements multiples GWT

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

Je ne sais pas comment pour mettre en œuvre cela proprement. Besoin d'aide pour. Un exemple de code serait apprécié.

Répondre

5

Vous pouvez implémenter plusieurs interfaces Handler dans le même gestionnaire, puis ajouter ce gestionnaire plusieurs fois.

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

Pourquoi planifiez-vous un tel comportement? Habituellement sur gestionnaire pour un événement. Si vous souhaitez canaliser les 3 événements vers un seul gestionnaire, vous pouvez demander à vos 3 gestionnaires différents d'appeler une méthode "globale": HandleAllEvents(). Si tous les événements sont du même type, vous pouvez enregistrer le même gestionnaire 3 fois.

+0

bien sur une interface complexe, entre groupe de 35 champs de l'interface utilisateur, j'ai comme 5-6 critères de qui dépendent de changement de ces trois UI fields.So i pensé son préférable d'avoir un gestionnaire personnalisé qui pourrait gérer tout événement de changement ou de flou sur ces trois widgets.Vous pouvez commenter cette conception – Barry