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 } |