SessionStore.java 1.48 KB
package fi.codecrew.moyamgmt.handler;

import java.io.Serializable;
import java.util.Locale;

import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.context.FacesContext;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.codecrew.moya.beans.EventBeanLocal;

@SessionScoped
public class SessionStore implements Serializable {

	private static final long serialVersionUID = 594517648650107916L;
	private static final Locale DEFAULT_LOCALE = new Locale("fi");

	@EJB
	private EventBeanLocal eventbean;
	private Locale locale;
	private boolean manageContentLinks = false;

	private static final Logger logger = LoggerFactory.getLogger(SessionStore.class);

	public Locale getLocale() {
		Locale ret = locale;
		if (ret == null)
		{
			String retStr = eventbean.getCurrentEvent().getOrganiser().getBundleCountry();

			if (retStr != null && !retStr.isEmpty()) {
				try {
					ret = Locale.forLanguageTag(retStr);
				} catch (Throwable t) {
					logger.warn("Error setting locale from current event for {}", retStr);
					ret = null;
				}
			}

			if (ret == null) {
				ret = DEFAULT_LOCALE;
			}
			locale = ret;
		}
		return ret;
	}

	public void setLocale(Locale locale)
	{
		this.locale = locale;
		FacesContext.getCurrentInstance().getViewRoot().setLocale(locale);
	}

	public boolean isManageContentLinks() {
		return manageContentLinks;
	}

	public void setManageContentLinks(boolean manageContentLinks) {
		this.manageContentLinks = manageContentLinks;
	}

}