In my case I do want to subclass and handle the EventListener interface
because I care about single/double/right clicks in Tree objects.  However
how can I convert the Event returned via onBrowserEvent() into a TreeItem?

The interface is quite useless unless it is possible to convert the thing
returned (event) into something users care about i.e. TreeItem in this
case.  How can this be done?

-Dave

On Mon, Dec 22, 2008 at 5:20 AM, David H. Cook
<[email protected]>wrote:

>
> Jason -
>
> You wrote:
> "The problem with the standard DOM EventListeners is that only one
> listener can be attached to an
> Element. The other problem is that a custom Widget may be required to
> listen for a sequence of
> low-level events in order to trigger a single high-level event (think
> MOUSEDOWN/UP/MOVE in relation
> to itemDraggedAndDropped())"
>
> Yes!   I agree totatlly! There are nothing BUT problems with the event
> model.
> So, with those shortcomings, why did they implement it that way?
>
> Like the 'roughian' man said so succinctly:
> "You can't addEventListener() to anything I'm aware of."
>
> That's my criticism in a nutshell!  So, why didn't they implement it
> that way?
> Then they wouldn't have even NEEDED all those other (foolish) Listener-
> APIs
> with all their shortcomings!
>
> You wrote:
>  "If you are extending the classes over and over again..."
>
> NO, I'm NOT!  I don't like it that I need to!  So, I refuse.
>
> In fact, what I found myself doing was to change my whole design (from
> what I had when I first implemented it in the old javascript-model) so
> that
> I am NOT implementing DBL-CLICK,  because of the need to sub-class.
>
> [I found a thread a week ago or so, where someone found that in the
> soon-to-be
> released GWT 1.60, there was some refactoring of event-stuff, and I am
> hoping
> against hope that they were ripping out ALL the event-routines, and
> simplifying,
> but of course, they aren't.  The community would be in an uproar.
> (Except for me.!)
> I'd welcome it with open-arms, as I have just one small app written in
> GWT, and
> would be more than happy to re-write all the event-stuff, if they were
> to redesign
> it totally.]
>
>
>
> On Dec 22, 3:04 am, Jason Morris <[email protected]> wrote:
> > The GWT event model is a close relation of the standard Java event model.
> >
> > The problem with the standard DOM EventListeners is that only one
> listener can be attached to an
> > Element. The other problem is that a custom Widget may be required to
> listen for a sequence of
> > low-level events in order to trigger a single high-level event (think
> MOUSEDOWN/UP/MOVE in relation
> > to itemDraggedAndDropped()).
> >
> > So you hide the low-level events within Widget classes, which when they
> receive the event can
> > trigger the collection of ClickListeners / MouseListeners /
> MyFancyListenerNumber3.
> >
> > adding your "double-click" behavior to each
> > one in it's onBrowserEvent method, you're doing it wrong. The correct way
> is to extend once, and
> > allow for adding any additional listeners (double-click, keyboard, etc.)
> to the extended class
> > (which should trigger them in it's onBrowserEvent method). This way the
> event handling logic remains
> > separated from the Widget itself.
> >
> > Also bare in mind Composite style classes (like a TabPanel) that want to
> turn a Click event on a tab
> > into onBeforeTabSelected and onTabSelected for it's TabListeners.
> >
> > Hope that helps a bit.
> >
> > David H. Cook wrote:
> >
> > > The more code I implement and the more event-related APIs
> > > I look at in GWT, the more confused I get.  After
> > > looking at complete examples about 'listeners' on website such as:
> > >http://examples.roughian.com/index.htm#Listeners~Summary<http://examples.roughian.com/index.htm#Listeners%7ESummary>
> > > or posts in this group, I conclude that the most general
> > > is an 'EventListener', because then I can get at ANY/ALL events
> > > that I might be interested in, as it's method gets 'Event e'
> > > as an input param.  But, what seems to me like
> > > a real NEGATIVE is that I must 'extend' (sub-class) an object
> > > to use EventListener, right?
> >
> > > Now, if I only care about a 'click', then I do NOT need to extend,
> > > because there are 'clicklisteners', which listen for just ONE event
> > > type...'click'.  But, if I want, say, 'double-click', well, there
> > > are NOT any 'double-click' listeners, so it seems that I'll need
> > > to use the more general EventListener.
> >
> > > That would be reasonable/acceptable if there was just
> > > ONE object that I wanted/needed to extend in a given app.
> > > But, let's say, I care about 'doubleclicks' from 3 different
> > > objects in the same app...anchors, tabs, and images.
> > > (Maybe not the best examples, but bear with me.)
> > > So, it seems that now I need to extend three objects, so I'll
> > > need 3 java classes (and thus, ...3 FILES...one class per file).
> > > [Some posts/examples mention 'widget builders'  as a separate
> > > class of developer.  But, I don't want to build new 'widgets'...
> > > I just want a write a simple app.
> >
> > > Somehow, the APIs seem to be making things unnecessarily 'complex',
> > > when I compare this to how easy it was to implement events
> > > in javascript language (before I started using GWT).  And, its
> > > beginning to seem like the designers of the event-model/event-apis in
> > > GWT
> > > might have miss-designed the APIs?!  (I wasn't around at the
> > > beginning, so I don't know how the event-APIs looked in version 1.00.)
> >
> > > Both the author of roughian website and other posters all seem to
> > > bemoan
> > > this need to extend, but all say it is necessary.  For example,
> > > roughian
> > > says:
> >
> > > [Notes:
> > > This is something you should only use if you are subclassing a widget
> > > - it's not much use otherwise,
> > > you can't addEventListener() to anything I'm aware of.
> > > So, as a builder of widgets, you'd use this to pick up events and use
> > > them in ways
> > > that you can't do with the ordinarily supported event interfaces]
> >
> > > Clearly, I (and others?) must all be missing something.  Where have I
> > > gone wrong?
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to