Igor, thanks you've helped me a lot...but now i repaint the whole table and
on every onComponentTag i update the class if the item is selected or not. I
see in the debugger that onComponentTag and the tag.put("class", "selected")
but it is not rendered.
What do i do wrong??
Thanks!!
This is my code:
public class HomePage extends BasePage {
private KlantContact selected = new KlantContact();
private Panel detailPanel = new DetailPanel("details", selected);
private PageableListView<KlantContact> listView = null;
private List<KlantContact> klantContacten = null;
@SpringBean
private KlantContactDAO dao;
public HomePage(PageParameters parameters) {
String bsn = parameters.getString("bsn");
InjectorHolder.getInjector().inject(this);
final WebMarkupContainer tabel = new WebMarkupContainer("tabel");
klantContacten = dao.geefKlantContactenVanDeLaatste2Maanden(bsn,
new LocalDateTime());
listView = new PageableListView<KlantContact>("zoekresultaat",
klantContacten, 5) {
private static final long serialVersionUID = 1L;
@Override
protected ListItem<KlantContact> newItem(int index) {
ListItem<KlantContact> item = new
ListItem<KlantContact>(index,
getListItemModel(getModel(),
index)) {
private static final long
serialVersionUID = 1L;
@Override
protected void
onComponentTag(ComponentTag tag) {
super.onComponentTag(tag);
if (getModelObject() ==
selected) {
tag.put("class",
"welselected");
} else {
tag.put("class",
"notselected");
}
}
};
item.setOutputMarkupId(true);
return item;
}
@Override
protected void populateItem(final
ListItem<KlantContact> item) {
KlantContact contact = item.getModelObject();
final AjaxFallbackLink<KlantContact>
contactDatumLink = new
AjaxFallbackLink<KlantContact>(
"contactdatumlink") {
private static final long
serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget
target) {
// het geselecteerde
KlantContact bepalen
selected = (KlantContact)
getParent()
.getDefaultModelObject();
// het detailpanel vervangen
met een nieuw detailpanel
// waar de gelecteerde
klantcontact details op komen.
DetailPanel replacement = new
DetailPanel("details",
selected);
replacement.setOutputMarkupId(true);
detailPanel.replaceWith(replacement);
detailPanel = replacement;
if (target != null) {
target.addComponent(detailPanel);
// render de listview
opnieuw om de selected css te zetten
target.addComponent(tabel);
}
}
};
contactDatumLink.add(new
Label("contactdatumlinklabel",
new
PropertyModel<KlantContact>(contact,
"getContactDatumTijdDDMMYYHHMM")));
item.add(contactDatumLink);
item.add(new Label("soort",
contact.getContactWijze()));
item.add(new Label("omschrijving", contact
.getOmschrijving()));
}
};
tabel.setOutputMarkupId(true);
listView.setOutputMarkupId(true);
tabel.add(listView);
add(tabel);
add(new AjaxPagingNavigator("navigator", listView));
detailPanel.setOutputMarkupId(true);
add(detailPanel);
}
--
View this message in context:
http://apache-wicket.1842946.n4.nabble.com/ListView-highlight-selected-row-tp2197486p2222348.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]