src/main/java/de/uapcore/lightpit/modules/LanguageModule.java

changeset 40
276ef00a336d
parent 39
e722861558bb
child 42
f962ff9dd44e
equal deleted inserted replaced
39:e722861558bb 40:276ef00a336d
27 * 27 *
28 */ 28 */
29 package de.uapcore.lightpit.modules; 29 package de.uapcore.lightpit.modules;
30 30
31 import de.uapcore.lightpit.*; 31 import de.uapcore.lightpit.*;
32 import de.uapcore.lightpit.dao.DataAccessObjects;
32 import org.slf4j.Logger; 33 import org.slf4j.Logger;
33 import org.slf4j.LoggerFactory; 34 import org.slf4j.LoggerFactory;
34 35
35 import javax.servlet.ServletException; 36 import javax.servlet.ServletException;
36 import javax.servlet.annotation.WebServlet; 37 import javax.servlet.annotation.WebServlet;
83 super.destroy(); 84 super.destroy();
84 languages.clear(); 85 languages.clear();
85 } 86 }
86 87
87 @RequestMapping(method = HttpMethod.GET) 88 @RequestMapping(method = HttpMethod.GET)
88 public ResponseType handle(HttpServletRequest req, HttpServletResponse resp) { 89 public ResponseType handle(HttpServletRequest req, HttpServletResponse resp, DataAccessObjects dao) {
89 90
90 req.setAttribute("languages", languages); 91 req.setAttribute("languages", languages);
91 req.setAttribute("browserLanguage", req.getLocale()); 92 req.setAttribute("browserLanguage", req.getLocale());
92 93
93 setStylesheet(req, "language"); 94 setStylesheet(req, "language");
94 setDynamicFragment(req, "language"); 95 setDynamicFragment(req, "language");
95 return ResponseType.HTML_FULL; 96 return ResponseType.HTML_FULL;
96 } 97 }
97 98
98 @RequestMapping(method = HttpMethod.POST) 99 @RequestMapping(method = HttpMethod.POST)
99 public ResponseType switchLanguage(HttpServletRequest req, HttpServletResponse resp) { 100 public ResponseType switchLanguage(HttpServletRequest req, HttpServletResponse resp, DataAccessObjects dao) {
100 101
101 Optional<Locale> chosenLanguage = Optional.ofNullable(req.getParameter("language")) 102 Optional<Locale> chosenLanguage = Optional.ofNullable(req.getParameter("language"))
102 .map(Locale::forLanguageTag) 103 .map(Locale::forLanguageTag)
103 .filter((l) -> !l.getLanguage().isEmpty()); 104 .filter((l) -> !l.getLanguage().isEmpty());
104 105
105 chosenLanguage.ifPresent((l) -> req.getSession().setAttribute(Constants.SESSION_ATTR_LANGUAGE, l)); 106 chosenLanguage.ifPresent((l) -> req.getSession().setAttribute(Constants.SESSION_ATTR_LANGUAGE, l));
106 chosenLanguage.ifPresent(resp::setLocale); 107 chosenLanguage.ifPresent(resp::setLocale);
107 108
108 return handle(req, resp); 109 return handle(req, resp, dao);
109 } 110 }
110 } 111 }

mercurial