yes, the choice was intentional. personally i do not care if it is <T> all the way, some users complained so we widened it on the choices model, we cannot widen it on the main model.
-igor On Fri, Feb 27, 2009 at 8:51 PM, Brill Pappin <[email protected]> wrote: > I see... but this would i think because Bar "is a" Foo: > > class Bar exends Foo {} > List<? extends Foo> list = ... > list.add(new Bar()); > > Anyway, what your saying is that the generics choice was intentional? > > - Brill > > > > On 27-Feb-09, at 3:19 PM, Igor Vaynberg wrote: > >> list<? extends string> stings=... >> strings.add("asd"); <== wont compile >> >> -igor >> >> On Fri, Feb 27, 2009 at 11:13 AM, Adriano dos Santos Fernandes >> <[email protected]> wrote: >>> >>> What do you mean with "read only" here? >>> >>> >>> Adriano >>> >>> >>> Igor Vaynberg escreveu: >>>> >>>> <? extends Foo> collections are read only, it would be too >>>> inconvenient to make the model collection read only :) >>>> >>>> -igor >>>> >>>> On Thu, Feb 26, 2009 at 8:34 PM, Jeremy Thomerson >>>> <[email protected]> wrote: >>>> >>>>> >>>>> This is what I was commenting on last week on the list (or earlier this >>>>> week). One expects List<? extends Foo> while the other expects >>>>> List<Foo>. >>>>> I'm not fully convinced yet that the "? extends" is the better option. >>>>> Either way, I think they should be the same. >>>>> >>>>> -- >>>>> Jeremy Thomerson >>>>> http://www.wickettraining.com >>>>> >>>>> On Thu, Feb 26, 2009 at 8:27 PM, Brill Pappin <[email protected]> wrote: >>>>> >>>>> >>>>>> >>>>>> Roughly what I'm doing is: >>>>>> >>>>>> class TypeA{} >>>>>> >>>>>> class TypeAModel extends LoadableDetachableModel< List<TypeA>> { >>>>>> public List<TypeA> load(){ >>>>>> ... do the load ... >>>>>> return ... >>>>>> } >>>>>> } >>>>>> >>>>>> TypeAModel model = new TypeAModel(); >>>>>> DropDownChoice< TypeA> ddc = new DropDownChoice<TypeA>("id", model ); >>>>>> >>>>>> which gets complained about... in this case the generic def is >>>>>> DropDownChoice<List<? extends T>> >>>>>> >>>>>> I think the problem is that the generic def of the class should >>>>>> actually >>>>>> be >>>>>> DropDownChoice<List<T>> because you are already identifying the type >>>>>> when >>>>>> you create a new instance. >>>>>> >>>>>> Now... my generics are a bit hazy at this level, because I can >>>>>> understand >>>>>> why it was done that way... does anyone with more generics experience >>>>>> know >>>>>> what it should be? Is this a bug that needs filing? >>>>>> >>>>>> - Brill >>>>>> >>>>>> >>>>>> >>>>>> On 26-Feb-09, at 6:03 PM, Kaspar Fischer wrote: >>>>>> >>>>>> On 26.02.2009, at 22:52, Brill Pappin wrote: >>>>>> >>>>>>> >>>>>>> For some reason the DropDownChoice component doesn't have the same >>>>>>> >>>>>>>> >>>>>>>> generics as ListView and it will not accept a model that listview >>>>>>>> will, >>>>>>>> despite its saying that it will accept an IModel. >>>>>>>> >>>>>>>> Is anyone else having that sort of trouble with DropDownChoice? >>>>>>>> >>>>>>>> - Brill >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> Can you give us more information on what exactly is not working for >>>>>>> you? >>>>>>> >>>>>>> DropDownChoice indeed does accept a model, see for instance the >>>>>>> example >>>>>>> in >>>>>>> the class description at >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> http://wicket.apache.org/docs/1.4/org/apache/wicket/markup/html/form/DropDownChoice.html >>>>>>> >>>>>>> This works for me. >>>>>>> >>>>>>> Kaspar >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> <!-- HTML: --> >>>>>>> <select wicket:id="site"> >>>>>>> <option>site 1</option> >>>>>>> <option>site 2</option> >>>>>>> </select> >>>>>>> <ul> >>>>>>> <li wicket:id="site2"><wicket:container wicket:id="sitename"/></li> >>>>>>> </ul> >>>>>>> >>>>>>> // Code >>>>>>> List SITES = Arrays.asList(new String[] { >>>>>>> "The Server Side", "Java Lobby", "Java.Net" >>>>>>> }); >>>>>>> form.add(new DropDownChoice("site", SITES)); >>>>>>> form.add(new ListView("site2", SITES) >>>>>>> { >>>>>>> @Override >>>>>>> protected void populateItem(ListItem item) >>>>>>> { >>>>>>> item.add(new Label("sitename", item.getModel())); >>>>>>> } >>>>>>> }); >>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: [email protected] >>>>>>> For additional commands, e-mail: [email protected] >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: [email protected] >>>>>> For additional commands, e-mail: [email protected] >>>>>> >>>>>> >>>>>> >>>> >>>> ? extends >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > es, the choice --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
