package com.tap5.hotelbooking.components;
import org.apache.tapestry5.BindingConstants;
import org.apache.tapestry5.Block;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.Log;
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.ioc.annotations.Inject;
import com.tap5.hotelbooking.entities.User;
import com.tap5.hotelbooking.pages.Index;
import com.tap5.hotelbooking.services.Authenticator;
/**
* Layout component for pages of application tapestry5-hotel-booking.
*/
@Import(stylesheet =
{ "context:/static/style.css" }, library =
{ "context:/static/hotel-booking.js" })
public class Layout
{
@Property
private String pageName;
@SuppressWarnings("unused")
@Property
@Parameter(required = true, defaultPrefix = BindingConstants.LITERAL)
private String pageTitle;
@SuppressWarnings("unused")
@Property
@Parameter(defaultPrefix = BindingConstants.LITERAL)
private Block sidebar;
@Inject
private ComponentResources resources;
@Inject
private Authenticator authenticator;
public String getClassForPageName()
{
return resources.getPageName().equalsIgnoreCase(pageName) ? "current_page_item" : null;
}
public User getUser()
{
return authenticator.isLoggedIn() ? authenticator.getLoggedUser() : null;
}
@Log
public Object onActionFromLogout()
{
authenticator.logout();
return Index.class;
}
}