Excellent reference, http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf

On Tue, Sep 29, 2009 at 12:46 PM, John V Denley
<johnvden...@googlemail.com>wrote:

>
> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to