it has nothing to do with us wanting to "lock" something down. i am simply stating that the read-only nature is a side-effect of a widened type declaration. it is something we should all be aware of.
-igor On Tue, Mar 3, 2009 at 1:02 PM, Brill Pappin <[email protected]> wrote: > I usually think of them as read only as well, however why would you presume > read only? > > they are pretty much exactly the same semantically and if I thought of some > cool trick I could do modifying the list, I'd hate to be prevented from > doing so simply because someone wanted to lock down an API that didn't > really need locking down. > I think the syntax doesn't really mean read only, and if the wicket > developers really want it to be read only, wrapping the list would be the > way to go. > > I'm for the plain old <List<T>> because its simple and explicit... <List<? > extends T>> would be my next choice because it widens the scope. > > - Brill > > On 2-Mar-09, at 3:44 PM, James Carman wrote: > >> Aren't both the "choices" model in DDC and the actual model of >> ListView supposed to be considered read-only (as far as the component >> is concerned)? The DDC and ListView don't need to be able to alter >> those models anyway, right? Perhaps my experience is just too >> limited, but I don't think I've ever tried to do either one of your >> usecases (I always consider them read-only). >> >> >> On Mon, Mar 2, 2009 at 3:24 PM, Igor Vaynberg <[email protected]> >> wrote: >>> >>> see WICKET-2126 >>> >>> -igor >>> >>> On Mon, Mar 2, 2009 at 12:19 PM, James Carman >>> <[email protected]> wrote: >>>> >>>> I vote -0.99 on this (non-binding of course). I'd vote +1 to making >>>> ListView accept List<? extends T> rather than making DDC less >>>> flexible. >>>> >>>> On Mon, Mar 2, 2009 at 3:11 PM, Brill Pappin <[email protected]> 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. >>>>> >>>>> 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] >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> 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]
