I thought that I had to create Items on newItem method. Anyway, I tried this but it doesn't work. Perhaps I'm doing something wrong, this is my test:
@Override protected void populateItem(Item<Dedication> item) { DateFormat formatter = new SimpleDateFormat("hh:mm"); final Dedication dedication = item.getModelObject(); Item<Dedication> contentRow = new OddEvenItem<Dedication>("content", item.getIndex(), item.getModel()); Item<Dedication> detailsRow = new OddEvenItem<Dedication>("details", item.getIndex(), item.getModel()); contentRow.add(new Label("timeFrom", formatter.format(dedication.getTimeFrom()))); contentRow.add(new Label("timeTo", formatter.format(dedication.getTimeTo()))); contentRow.add(new Label("hours", dedication.getHours().toString())); contentRow.add(new Label("task", dedication.getTask().getName())); contentRow.add(new Label("accounts", getAccounts(dedication))); detailsRow.add(new TextArea<String>("serviceStatus", new PropertyModel<String>(item.getModel(), "serviceStatus"))); } @Override protected Item<Dedication> newItem(String id, int index, IModel<Dedication> model) { return new Item<Dedication>(id, index, model); } And html: <wicket:container wicket:id="dedications"> <tr wicket:id="content"> <td><span wicket:id="hours">[horas]</span></td> <td><span wicket:id="timeFrom">[hora desde]</span>]</td> <td><span wicket:id="timeTo">[hora hasta]</span>]</td> <td><span wicket:id="task">[tarea]</span></td> <td><span wicket:id="accounts">[cuentas]</span></td> </tr> <tr wicket:id="details"> <td colspan="5"> <input wicket:id="serviceStatus" /> </td> </tr> </wicket:container> 2011/10/25 Igor Vaynberg <igor.vaynb...@gmail.com> > populateitem(item) { > OddEvenItem tr1=new OddEvenItem("tr1", item.getindex(), item.getmodel()); > OddEvenItem tr2=new OddEvenItem("tr1", item.getindex(), item.getmodel()); > item.add(tr1, tr2); > > tr1.add(...); > tr2.add(...); > } > > -igor > > > On Tue, Oct 25, 2011 at 7:37 AM, Tito <njyt...@gmail.com> wrote: > > Yes I tried but the problem is I can't get MarkupContainer to add the > > AttributeModifierBehavior. > > I don't know how to get a container that represents <tr> tag. > > > > 2011/10/25 Josh Kamau <joshnet2...@gmail.com> > > > >> Have you tried using attributeModifiers or attributeAppenders to add or > >> modify a css class? > >> > >> Josh > >> > >> > >> On Tue, Oct 25, 2011 at 4:21 PM, Tito <njyt...@gmail.com> wrote: > >> > >> > Yes, but I think this is not the problem. > >> > I have not problems with wicket:container, my problem is that I can't > >> > modify > >> > class attribute of <tr> to add Odd or Even. > >> > > >> > Tito > >> > > >> > 2011/10/25 Josh Kamau <joshnet2...@gmail.com> > >> > > >> > > You can always use component#renderBodyOnly(true) method to ensure > that > >> > the > >> > > containers markup is not rendered. > >> > > > >> > > Josh. > >> > > > >> > > On Tue, Oct 25, 2011 at 2:33 PM, Tito <njyt...@gmail.com> wrote: > >> > > > >> > > > Hi, > >> > > > > >> > > > Wicket container works ok! > >> > > > But making trs webmarkupcontainers doesn't allow me to populate > items > >> > of > >> > > > the > >> > > > table because it change hierarchy of components, and I can't get > >> > > > WebMarkupContainers from Item. > >> > > > > >> > > > I mean, before I had: > >> > > > > >> > > > <wicket:container wicket:id="dedications"> > >> > > > <tr> > >> > > > <td><span wicket:id="hours">[horas]</span></td> > >> > > > <td><span wicket:id="timeFrom">[hora desde]</span>]</td> > >> > > > <td><span wicket:id="timeTo">[hora hasta]</span>]</td> > >> > > > <td><span wicket:id="task">[tarea]</span></td> > >> > > > <td><span wicket:id="accounts">[cuentas]</span></td> > >> > > > </tr> > >> > > > <tr> > >> > > > <td colspan="5"> > >> > > > <input wicket:id="serviceStatus" /> > >> > > > </td> > >> > > > </tr> > >> > > > </wicket:container> > >> > > > > >> > > > And I populated items in this way: > >> > > > > >> > > > @Override > >> > > > protected void populateItem(Item<Dedication> item) { > >> > > > DateFormat formatter = new SimpleDateFormat("hh:mm"); > >> > > > final Dedication dedication = item.getModelObject(); > >> > > > item.add(new Label("timeFrom", > >> > > > formatter.format(dedication.getTimeFrom()))); > >> > > > item.add(new Label("timeTo", > >> > formatter.format(dedication.getTimeTo()))); > >> > > > item.add(new Label("hours", dedication.getHours().toString())); > >> > > > item.add(new Label("task", dedication.getTask().getName())); > >> > > > item.add(new Label("accounts", getAccounts(dedication))); > >> > > > item.add(new TextArea<String>("serviceStatus", new > >> > > > PropertyModel<String>(item.getModel(), "serviceStatus"))); > >> > > > } > >> > > > > >> > > > > >> > > > But now if I do this in order to add Odd, Even classes: > >> > > > > >> > > > <wicket:container wicket:id="dedications"> > >> > > > <tr wicket:id="content"> > >> > > > <td><span wicket:id="hours">[horas]</span></td> > >> > > > <td><span wicket:id="timeFrom">[hora desde]</span>]</td> > >> > > > <td><span wicket:id="timeTo">[hora hasta]</span>]</td> > >> > > > <td><span wicket:id="task">[tarea]</span></td> > >> > > > <td><span wicket:id="accounts">[cuentas]</span></td> > >> > > > </tr> > >> > > > <tr wicket:id="details"> > >> > > > <td colspan="5"> > >> > > > <input wicket:id="serviceStatus" /> > >> > > > </td> > >> > > > </tr> > >> > > > </wicket:container> > >> > > > > >> > > > I don't know how to populate items. > >> > > > > >> > > > Thanks for helping! > >> > > > > >> > > > Tito > >> > > > > >> > > > 2011/10/24 Igor Vaynberg <igor.vaynb...@gmail.com> > >> > > > > >> > > > > On Mon, Oct 24, 2011 at 9:31 AM, Tito <njyt...@gmail.com> > wrote: > >> > > > > > I'm sorry, you are right! > >> > > > > > I said columns but I meant Rows! > >> > > > > > > >> > > > > > What is the java component for wicket container? > >> > > > > > >> > > > > no need for a java component, wicket:container is an auto tag > like > >> > > > > wicket:message > >> > > > > > >> > > > > > How do you suggest to add Odd, Even classes? > >> > > > > > >> > > > > you can make trs webmarkupcontainers that add the correct class > >> > > > > > >> > > > > -igor > >> > > > > > >> > > > > > > >> > > > > > Thank you! > >> > > > > > > >> > > > > > 2011/10/24 Igor Vaynberg <igor.vaynb...@gmail.com> > >> > > > > > > >> > > > > >> ahhh..... > >> > > > > >> > >> > > > > >> so you want two *rows* not two *columns* per item, attach the > >> > > repeater > >> > > > > >> to a wicket:container tag like so: > >> > > > > >> > >> > > > > >> <wicket:container wicket:id="repeater"> > >> > > > > >> <tr><td>...</tr> > >> > > > > >> <tr><td>....</tr> > >> > > > > >> </wicket:container> > >> > > > > >> > >> > > > > >> you will have to rig up odd/even yourself.... > >> > > > > >> > >> > > > > >> -igor > >> > > > > >> > >> > > > > >> On Mon, Oct 24, 2011 at 9:10 AM, Tito <njyt...@gmail.com> > >> wrote: > >> > > > > >> > Hi Igor this is what i'm doing: > >> > > > > >> > > >> > > > > >> > .java > >> > > > > >> > > >> > > > > >> > public DedicationsReportPanel(String id, IModel<Users> > user, > >> > final > >> > > > > >> > IModel<Date> dayOfReport) { > >> > > > > >> > super(id); > >> > > > > >> > > >> > > > > >> > add(new DataView<Dedication>("dedications", new > >> > > > > >> > DedicationDataProvider(dedicationService, > >> > > > > >> user.getObject().getUserName())) { > >> > > > > >> > > >> > > > > >> > @Override > >> > > > > >> > protected void populateItem(Item<Dedication> item) { > >> > > > > >> > DateFormat formatter = new SimpleDateFormat("hh:mm"); > >> > > > > >> > final Dedication dedication = item.getModelObject(); > >> > > > > >> > item.add(new Label("timeFrom", > >> > > > > >> > formatter.format(dedication.getTimeFrom()))); > >> > > > > >> > item.add(new Label("timeTo", > >> > > > > formatter.format(dedication.getTimeTo()))); > >> > > > > >> > item.add(new Label("hours", > >> dedication.getHours().toString())); > >> > > > > >> > item.add(new Label("task", > dedication.getTask().getName())); > >> > > > > >> > item.add(new Label("accounts", getAccounts(dedication))); > >> > > > > >> > item.add(new TextArea<String>("serviceStatus", new > >> > > > > >> > PropertyModel<String>(item.getModel(), "serviceStatus"))); > >> > > > > >> > } > >> > > > > >> > > >> > > > > >> > @Override > >> > > > > >> > protected Item<Dedication> newItem(String id, int index, > >> > > > > >> IModel<Dedication> > >> > > > > >> > model) { > >> > > > > >> > OddEvenItem<Dedication> item = new > >> OddEvenItem<Dedication>(id, > >> > > > index, > >> > > > > >> > model); > >> > > > > >> > return item; > >> > > > > >> > } > >> > > > > >> > }); > >> > > > > >> > } > >> > > > > >> > > >> > > > > >> > .html > >> > > > > >> > > >> > > > > >> > <html > >> > > > > >> > xmlns:wicket=" > >> > > > > >> > http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd > >> > > > > >> > "> > >> > > > > >> > <head></head> > >> > > > > >> > <body> > >> > > > > >> > <wicket:panel> > >> > > > > >> > <table cellspacing="0" class="listado"> > >> > > > > >> > <tr> > >> > > > > >> > <th>Fecha</th> > >> > > > > >> > <th>Horas</th> > >> > > > > >> > <th>Tarea</th> > >> > > > > >> > <th>Servicios</th> > >> > > > > >> > <th>Acciones</th> > >> > > > > >> > </tr> > >> > > > > >> > <div wicket:id="dedications"> > >> > > > > >> > <tr> > >> > > > > >> > <td><span wicket:id="hours">[horas]</span></td> > >> > > > > >> > <td><span wicket:id="timeFrom">[hora desde]</span>]</td> > >> > > > > >> > <td><span wicket:id="timeTo">[hora hasta]</span>]</td> > >> > > > > >> > <td><span wicket:id="task">[tarea]</span></td> > >> > > > > >> > <td><span wicket:id="accounts">[cuentas]</span></td> > >> > > > > >> > </tr> > >> > > > > >> > <tr> > >> > > > > >> > <td colspan="5"> > >> > > > > >> > <input wicket:id="serviceStatus" /> > >> > > > > >> > </td> > >> > > > > >> > </tr> > >> > > > > >> > </div> > >> > > > > >> > </table> > >> > > > > >> > </wicket:panel> > >> > > > > >> > </body> > >> > > > > >> > </html> > >> > > > > >> > > >> > > > > >> > I'm using a div to group two columns. The problem is that > this > >> > not > >> > > a > >> > > > > >> valid > >> > > > > >> > html, and I can't get Odd, Even class in rows. I think it > is > >> > > because > >> > > > > div > >> > > > > >> is > >> > > > > >> > repeated instead of tr. > >> > > > > >> > > >> > > > > >> > What i'm expecting in the final html is something like > this: > >> > > > > >> > > >> > > > > >> > <table cellspacing="0" class="listado"> > >> > > > > >> > <tr> > >> > > > > >> > <th>Fecha</th> > >> > > > > >> > <th>Horas</th> > >> > > > > >> > <th>Tarea</th> > >> > > > > >> > <th>Servicios</th> > >> > > > > >> > <th>Acciones</th> > >> > > > > >> > </tr> > >> > > > > >> > <tr class="Even"> > >> > > > > >> > <td><span>hours 1</span></td> > >> > > > > >> > <td><span>time from 1</span>]</td> > >> > > > > >> > <td><span>time to 1</span>]</td> > >> > > > > >> > <td><span>task 1</span></td> > >> > > > > >> > <td><span>accounts 1</span></td> > >> > > > > >> > </tr> > >> > > > > >> > <tr class="Even"> > >> > > > > >> > <td colspan="5"> > >> > > > > >> > <input wicket:id="serviceStatus" /> > >> > > > > >> > </td> > >> > > > > >> > </tr> > >> > > > > >> > <tr class="Odd"> > >> > > > > >> > <td><span>hours 2</span></td> > >> > > > > >> > <td><span>time from 2</span>]</td> > >> > > > > >> > <td><span>time to 2</span>]</td> > >> > > > > >> > <td><span>task 2</span></td> > >> > > > > >> > <td><span>accounts 2</span></td> > >> > > > > >> > </tr> > >> > > > > >> > <tr class="Odd"> > >> > > > > >> > <td colspan="5"> > >> > > > > >> > <input wicket:id="serviceStatus" /> > >> > > > > >> > </td> > >> > > > > >> > </tr> > >> > > > > >> > </table> > >> > > > > >> > > >> > > > > >> > > >> > > > > >> > Thanks! > >> > > > > >> > > >> > > > > >> > > >> > > > > >> > 2011/10/24 Igor Vaynberg <igor.vaynb...@gmail.com> > >> > > > > >> > > >> > > > > >> >> dataview/listview/datatable should all work just fine, > post > >> > your > >> > > > > code. > >> > > > > >> >> > >> > > > > >> >> -igor > >> > > > > >> >> > >> > > > > >> >> On Mon, Oct 24, 2011 at 5:06 AM, Tito <njyt...@gmail.com> > >> > wrote: > >> > > > > >> >> > Hi, > >> > > > > >> >> > > >> > > > > >> >> > I'm trying to make a table with two columns by item. I > >> mean, > >> > my > >> > > > > item > >> > > > > >> have > >> > > > > >> >> to > >> > > > > >> >> > generate two columns. > >> > > > > >> >> > The first have attributes of the object, the second have > >> > > another > >> > > > > >> >> attribute > >> > > > > >> >> > with details. > >> > > > > >> >> > > >> > > > > >> >> > I can't do this. I made tests with DataView and > GridView. I > >> > > don't > >> > > > > know > >> > > > > >> >> what > >> > > > > >> >> > is the best component. Could you give me an idea of how > to > >> do > >> > > > > >> something > >> > > > > >> >> like > >> > > > > >> >> > this? > >> > > > > >> >> > > >> > > > > >> >> > Thanks in advance. > >> > > > > >> >> > > >> > > > > >> >> > Tito > >> > > > > >> >> > > >> > > > > >> >> > >> > > > > >> >> > >> > > > > --------------------------------------------------------------------- > >> > > > > >> >> 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 > >> > > > > >> > >> > > > > >> > >> > > > > > > >> > > > > > >> > > > > > >> --------------------------------------------------------------------- > >> > > > > 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 > >