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