On Mon, 2009-03-02 at 15:11 -0500, Brill Pappin wrote: > Ok, as suggested, here is the thread, and the first vote. > > +1 > for making the generic definition the same for all list type components.
Yes, you are right. All those list type components should have the same generic definition. But: Don't "fix" those components that have the correct definition. Please fix those that have the wrong (without wildcard) definition. I think the core problem is, that IModel has a setter. But it doesn't make any sense to offer a setter on a model providing a collection. If all those list type components accept "IReadOnlyModel", most of the discussed points will become obvious. I think I will create another post, explaining the problem with IModel and Collections... Regards, Johannes > > FYI - you can also "vote" in the issue I just created at (which might > actually be a better place to vote): > https://issues.apache.org/jira/browse/WICKET-2137 > > - Brill > > > > > On 28-Feb-09, at 5:18 PM, Jeremy Thomerson wrote: > > > Perhaps start a vote thread, with the subject something like: "VOTE: > > Remove > > ? extends from constructor of DropDownChoice". > > > > I'd be +1 non-binding > > > > > > -- > > Jeremy Thomerson > > http://www.wickettraining.com > > > > > > On Sat, Feb 28, 2009 at 3:33 PM, Brill Pappin <[email protected]> wrote: > > > >> I'm of the don't widen it camp anyway :) > >> > >> So how do I go about gathering support for having the > >> DropDownChoice work > >> with the models the way everything else does? > >> > >> - Brill > >> > >> > >> On 28-Feb-09, at 1:42 AM, Igor Vaynberg wrote: > >> > >> 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] > >>> > >>> > >> > >> --------------------------------------------------------------------- > >> 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]
