Subversion Repositories SmartDukaan

Rev

Rev 1713 | Rev 2907 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.serving.controllers;

import in.shop2020.serving.interceptors.UserAware;
import in.shop2020.serving.services.PageLoaderHandler;
import in.shop2020.serving.services.UserSessionInfo;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

import com.opensymphony.xwork2.ValidationAwareSupport;

/**
 * Base class for all user action handlers i.e. controllers
 * 
 * @author rajveer
 */
public abstract class BaseController extends ValidationAwareSupport implements
                ServletResponseAware, ServletRequestAware, UserAware {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        protected Map<String, Cookie> cookiesMap = null;
        protected HttpServletResponse response;
        protected HttpServletRequest request;
        protected HttpSession session;
        protected String domainName;
        protected UserSessionInfo userinfo = null;
        private static Logger log = Logger.getLogger(Class.class);

        protected Cookie userCookie = null;

        protected Map<String, String> htmlSnippets;

        PageLoaderHandler pageLoader = null;
    
        public BaseController() {
                pageLoader = new PageLoaderHandler();
                htmlSnippets = new HashMap<String, String>();
        }

        @Override
        public void setCookiesMap(Map<String, Cookie> cookiesMap) {
                log.info("Received cookiesMap and it is " + cookiesMap);
                this.cookiesMap = cookiesMap;
        }

        @Override
        public void setServletResponse(HttpServletResponse response) {
                this.response = response;
        }

        @Override
        public void setServletRequest(HttpServletRequest request) {
                this.request = request;
        }

        @Override
        public void setSession(HttpSession session) {
                this.session = session;
        }

        @Override
        public void setUserSessionInfo(UserSessionInfo userInfo) {
                this.userinfo = userInfo;
        }

        @Override
        public void setUserCookie(Cookie userCookie) {
                if(userCookie != null){
                        log.info("cookie name is:" +  userCookie.getName() + "   value is:"+ userCookie.getValue() + " path : " + userCookie.getPath());
                }
                this.userCookie = userCookie;
        }

        @Override
    public void setCookieDomainName(String domainName) {
        this.domainName = domainName;
    }
        
        public String getHeaderSnippet() {
                String url = request.getQueryString();
                log.info("Query String is: " + url);
                if (url == null) {
                        url = "";
                } else {
                        url = "?" + url;
                }
                url = request.getRequestURI() + url;
                return pageLoader.getHeaderHtml(userinfo.isLoggedIn(),
                                userinfo.getNameOfUser(), url);
        }

        public String getMainMenuSnippet() {
                return pageLoader.getMainMenuHtml();
        }

        public String getSearchBarSnippet() {
                //FIXME From where it is called, need to pass category
                return pageLoader.getSearchBarHtml(userinfo.getTotalItems(), 10000);
        }

        public String getCustomerServiceSnippet() {
                return pageLoader.getCustomerServiceHtml();
        }

        public String getMyResearchSnippet() {
                return pageLoader.getMyResearchHtml();
        }

        public String getBrowseHistorySnippet() {
                return pageLoader.getBrowseHistoryHtml();
        }

        public String getFooterSnippet() {
                return pageLoader.getFooterHtml();
        }

        public UserSessionInfo getUserInfo(){
                return this.userinfo;
        }
         
}