Do you mean that I should do something to make the list read only or that it should have the same generic definition?

IMO they should all work the same way... so I'm +1 for the List<Foo>. syntax.

Also, I'm not sure that they mean "read only". AFAIK it just means that the unknown object must be assignable to Foo (although I could be wrong about that).

- Brill Pappin


On 26-Feb-09, at 11:50 PM, Igor Vaynberg wrote:

<? 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
<jer...@wickettraining.com> 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 <br...@pappin.ca> 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: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org




? extends

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to