package com.tap5.hotelbooking.pages; import org.apache.tapestry5.EventConstants; import org.apache.tapestry5.annotations.OnEvent; import org.apache.tapestry5.annotations.PageActivationContext; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.annotations.SessionState; import org.apache.tapestry5.ioc.annotations.Inject; import com.tap5.hotelbooking.dal.CrudServiceDAO; import com.tap5.hotelbooking.data.UserWorkspace; import com.tap5.hotelbooking.entities.Hotel; import com.tap5.hotelbooking.entities.User; import com.tap5.hotelbooking.services.Authenticator; /** * This page displays hotel details, and provide access to booking. * * @author ccordenier */ public class View { @SessionState @Property private UserWorkspace userWorkspace; @SuppressWarnings("unused") @Property @PageActivationContext private Hotel hotel; @Inject private Authenticator authenticator; @Inject private CrudServiceDAO dao; /** * Start booking process. * * @param hotel * @return link to the current hotel booking */ @OnEvent(value = EventConstants.SUCCESS, component = "startBookingForm") Object startBooking(Hotel hotel) { User user = (User) dao.find(User.class, authenticator.getLoggedUser().getId()); userWorkspace.startBooking(hotel, user); return Book.class; } }