package lt.inventi.wicket;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import lt.inventi.wicket.component.breadcrumb.PreviousPageLink;
public class PersonPage extends BaseAuthenticatedPage {
public PersonPage(IModel<Person> person) {
super(new CompoundPropertyModel<Person>(person));
add(new Label("name"), new Label("age").setOutputMarkupId(true), new Label("bestFriend"));
add(new Link<Void>("edit") {
@SuppressWarnings("unchecked")
@Override
public void onClick() {
setNextResponsePage(new FormPage((IModel<Person>) PersonPage.this.getDefaultModel()));
}
});
add(new AjaxLink<Void>("addAge") {
@Override
public void onClick(AjaxRequestTarget target) {
((Person) PersonPage.this.getDefaultModelObject()).age += 10;
target.add(PersonPage.this.get("age"));
}
});
add(new BookmarkablePageLink<FirstPage>("firstPage", FirstPage.class));
add(new PreviousPageLink("back"));
}
@Override
public IModel<String> getBreadcrumbTitleModel() {
return Model.of("PersonPage " + getDefaultModelObjectAsString());
}
}