Bulat, can you direct me to any documentation anywhere which explains the use of the <?> and <I> constructs?
Thanks, J On Sep 21, 4:03 am, Bulat Sirazetdinov <bula...@gmail.com> wrote: > You should do it this way: > At first you'll need to create a class that implements > HasValueChangeHandlers interface. It is because of the fact that > ValueChangeEvent.fire() method requires a class that implements > HasValueChangeHandlers interface passed in a first parameter. > So let name that class MyHandlers (see below). > > Then you should get an instance of MyHandlers class: > ----------------------- > MyHandlers<String> exampleHandlers = new Handlers<String>(); > ----------------------- > > and register ValueChangeHandler objects in that instance: > ----------------------- > exampleHandlers.addValueChangeHandler(someHandler1); > exampleHandlers.addValueChangeHandler(someHandler2); > exampleHandlers.addValueChangeHandler(someHandler3); > ----------------------- > > Now you can fire ValueChangeEvent to all handlers that you've > registered in exampleHandlers object: > ----------------------- > ValueChangeEvent.fire(exampleHandlers, "text"); > ----------------------- > > MyHandlers class declaration: > ------------------------------------- > public class MyHandlers<I> implements HasValueChangeHandlers<I> { > > private final List<ValueChangeHandler<I>> list = new > ArrayList<ValueChangeHandler<I>>(); > > public void fireEvent(GwtEvent<?> event) { > if (event instanceof ValueChangeEvent) { > for (ValueChangeHandler<I> handler : list) { > handler.onValueChange((ValueChangeEvent<I>) event); > } > } > } > > public HandlerRegistration addValueChangeHandler(final > ValueChangeHandler<I> handler) { > list.add(handler); > return new HandlerRegistration() { > > public void removeHandler() { > list.remove(handler); > } > }; > }} > > ------------------------------------- > > Hope that helps. > Best wishes! > > On Aug 20, 4:33 am, jscheller <jschel...@csoftware.com> wrote: > > > Hello - > > > So, I've got a composite that has something like this inside it... > > > private HandlerManager changeHandlers = new HandlerManager( null ); > > > public HandlerRegistration addValueChangeHandler(ValueChangeHandler > > handler) > > { return changeHandlers.addHandler(ValueChangeEvent.getType(), > > handler); } > > > ...and somewhere down the pipeline, I want to actually fire off an > > event to anyone who registered a handler when the composite decides > > it's represented value has changed and wants the rest of the world to > > know. However, the syntax for actually constructing and firing the > > event off has got me pulling my hair out. > > > I've tried variants of sending the event through the change > > handlers... > > > changeHandlers.fireEvent( new ValueChangeEvent("foo") ); > > changeHandlers.fireEvent( new ValueChangeEvent<String>("foo") ); > > > ...and using the static fire() method in the event class itself... > > > ValueChangeEvent<String>.fire( changeHandlers, "foo"); > > > ...and Eclipse complains loudly about all of these constructions. I > > mean, I know this can't be that hard, but I can't find any good > > examples of things like this using the new (GWT 1.6 or later) event > > handlers, and reading the code sends me down a DOM event/Java generics > > rabbit hole that I'm frankly not experienced enough to deal with > > yet... > > > Any help appreciated! > > > Jim --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en -~----------~----~----~----~------~----~------~--~---