Nope, doesn't work either. I've created a new class MySquare implementing IModel but the getObject() never get called either.
I'm stumped. In populateItem I do: for (int col=0; col<10; col++) { MySquare mySquare = new MySquare(); Link link = new Link("cols"+col, mySquare) { public void onClick() { System.out.println("clicked"); } }; link.add(new Image("icon"+col,Square.emptyResource)); item.add(link); /Axel >>-----Ursprüngliche Nachricht----- >>Von: Michael Sparer [mailto:[EMAIL PROTECTED] >>Gesendet: Mittwoch, 19. November 2008 12:37 >>An: users@wicket.apache.org >>Betreff: Re: Model never called >> >> >> >>you should rather add an IModel to the link e.g. new >>Link("foobar", myModel); >>than letting a component implement IModel. the way you did >>it, the model is >>never recognised as a model, as it wasn't set as a model of a >>component. >>hope that makes sense >> >>regards, >>Michael >> >> >>Leucht, Axel wrote: >>> >>> Hi, >>> >>> I do have a link class which should render different icons >>when clicked. >>> >>> So I decided to implement IModel and return different icons >>depending on >>> the state of the object. But to my surprise getObject() >>never get called! >>> >>> Does anyone give me a clue where to look next or give me a >>hint as to how >>> to render the object with a different icon? >>> >>> The object is used in a 10x10 board game where a player can >>"shoot" at >>> different squares which are rendered as links in the >>output. The board is >>> constructed as: >>> ListView listview = new ListView("rows", list) { >>> private static final long serialVersionUID = 1L; >>> >>> protected void populateItem(ListItem item) { >>> Row row = (Row) item.getModelObject(); >>> final Square[] squares = new Square[10]; >>> for (int col=0; col<10; col++) { >>> squares[col] = >>row.getCells(col); >>> } >>> Square square = row.getCells(0); >>> item.add(new Label("row",new >>Model(square.getRow()))); >>> for (int col=0; col<10; col++) { >>> final Square aSquare = >>row.getCells(col); >>> item.add(aSquare); >>> } >>> } >>> }; >>> And the Square-Object is: >>> public class Square extends Link implements IModel { >>> @Override >>> public void onClick() { >>> System.out.println("Click:" + ident); >>> } >>> >>> @Override >>> public Object getObject() { >>> System.out.println("GetObject"); >>> if (someState) >>> return icon1; >>> return icon2; >>> >>> } >>> } >>> >>> /Axel >>> >>> >>--------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >> >> >>----- >>Michael Sparer >>http://talk-on-tech.blogspot.com >>-- >>View this message in context: http://www.nabble.com/Model-never-called-tp20577931p20578051.html Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- 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]