package org.jboss.seam.example.wicket; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Locale; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.Link; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.RaiseEvent; import org.jboss.seam.annotations.security.Restrict; import org.jboss.seam.example.wicket.action.Booking; import org.jboss.seam.example.wicket.action.HotelBooking; import org.jboss.seam.wicket.annotations.NoConversationPage; @Restrict("#{identity.loggedIn}") @NoConversationPage(Main.class) public class Confirm extends WebPage { @In private Booking booking; @In(create=true) private HotelBooking hotelBooking; public Confirm(final PageParameters parameters) { super(parameters); Template body = new Template("body"); body.add(new HotelViewPanel("hotel", booking.getHotel())); body.add(new OutputBorder("totalBorder", "Total Payment", new Label("total", DecimalFormat.getCurrencyInstance(Locale.US).format(booking.getTotal())))); body.add(new OutputBorder("checkinDateBorder", "Check in", new Label("checkinDate", new SimpleDateFormat().format(booking.getCheckinDate())))); body.add(new OutputBorder("checkoutDateBorder", "Check out", new Label("checkoutDate", new SimpleDateFormat().format(booking.getCheckoutDate())))); body.add(new OutputBorder("creditCardNumberBorder", "Credit Card #", new Label("creditCardNumber", booking.getCreditCard()))); body.add(new Link("revise") { @Override public void onClick() { setResponsePage(new Book(new PageParameters())); } }); body.add(new Link("confirm") { @Override @RaiseEvent("bookingConfirmed") public void onClick() { hotelBooking.confirm(); setResponsePage(Main.class); } }); body.add(new Link("cancel") { @Override public void onClick() { hotelBooking.cancel(); setResponsePage(Main.class); } }); add(body); } }