package fi.otavanopisto.muikku;
import java.util.ResourceBundle;
import javax.enterprise.event.Event;
import javax.inject.Inject;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import javax.transaction.Transactional;
import org.apache.commons.lang3.LocaleUtils;
import fi.otavanopisto.muikku.events.ContextDestroyedEvent;
import fi.otavanopisto.muikku.events.ContextInitializedEvent;
import fi.otavanopisto.muikku.i18n.LocaleController;
import fi.otavanopisto.muikku.i18n.LocaleLocation;
import fi.otavanopisto.muikku.plugins.Plugins;
@WebListener
@Transactional
public class ContextListener implements ServletContextListener {
@Inject
private Plugins plugins;
@Inject
private LocaleController localeController;
@Inject
private Event<ContextInitializedEvent> contextInitializedEvent;
@Inject
private Event<ContextDestroyedEvent> contextDestroyedEvent;
@Override
public void contextInitialized(ServletContextEvent sce) {
plugins.initialize();
// TODO Incorrect place or just a misleading listener name?
localeController.add(LocaleLocation.JAVASCRIPT, ResourceBundle.getBundle("fi.otavanopisto.muikku.i18n.JavaScriptMessages", LocaleUtils.toLocale("fi")));
localeController.add(LocaleLocation.JAVASCRIPT, ResourceBundle.getBundle("fi.otavanopisto.muikku.i18n.JavaScriptMessages", LocaleUtils.toLocale("en")));
localeController.add(LocaleLocation.APPLICATION, ResourceBundle.getBundle("fi.otavanopisto.muikku.i18n.ApplicationMessages", LocaleUtils.toLocale("fi")));
localeController.add(LocaleLocation.APPLICATION, ResourceBundle.getBundle("fi.otavanopisto.muikku.i18n.ApplicationMessages", LocaleUtils.toLocale("en")));
contextInitializedEvent.fire(new ContextInitializedEvent());
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
contextDestroyedEvent.fire(new ContextDestroyedEvent());
}
}