How about extracting a parameterized super class: AbstractSuggestionBox<T extends Suggestion> SuggestionBox extends AbstractSuggestionBox<Suggestion>
rjrjr On Mon, Feb 23, 2009 at 7:15 PM, Emily Crutcher <[email protected]> wrote: > > > On Mon, Feb 23, 2009 at 7:04 PM, Isaac Truett <[email protected]> wrote: > >> >> The API documentation has this to say on the subject: >> >> "[...] To send back a DTO with each suggestion, extend the Suggestion >> interface and define a getter method that has a return value of the >> DTO's type. Define a class that implements this subinterface and use >> it to encapsulate each suggestion. >> >> To access a suggestion's DTO when the suggestion is selected, add a >> SuggestionHandler to the SuggestBox (see SuggestBox's documentation >> for more information). In the >> SuggestionHandler.onSuggestionSelected(SuggestionEvent event) method, >> obtain the selected Suggestion object from the SuggestionEvent object, >> and downcast the Suggestion object to the subinterface. Then, acces >> the DTO using the DTO getter method that was defined on the >> subinterface." >> >> See >> http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/ui/SuggestOracle.Suggestion.html >> >> (the 1.6 version is similar, but with the new event model) >> >> So the endorsed solution is to extend and cast. Fair enough. This >> probably dates from pre-1.5, and it was good enough for then. But is >> there a reason not to parameterize SuggestBox with <T extends >> Suggestion> (and SuggestOracle<T>, SelectionEvent<T>, etc.) now that >> that's an option? Or perhaps make Suggestion implement HasValue<T>? I >> have an application that uses many SuggestBoxes and many different >> Suggestion subclasses and this would simplify things (and eliminate >> much type-casting). > > > I'm not sure parameterizing SuggestBox itself would be worth it, as most > people use it without creating new types of suggestions: so the > parameterization would add clutter for the many and prevent casts for the > few. Though, I completely agree it is annoying to have to cast. Perhaps we > could create a composite-based CustomSuggestBox that is parameterized? > > > >> >> >> Any thoughts on this? Horrible side effects that I'm missing? >> >> - Isaac >> >> >> > > > -- > "There are only 10 types of people in the world: Those who understand > binary, and those who don't" > > > > > --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---
