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; |
|
33 import org.slf4j.Logger; |
32 import org.slf4j.Logger; |
34 import org.slf4j.LoggerFactory; |
33 import org.slf4j.LoggerFactory; |
35 |
34 |
36 import javax.servlet.ServletException; |
35 import javax.servlet.ServletException; |
37 import javax.servlet.annotation.WebServlet; |
36 import javax.servlet.annotation.WebServlet; |
84 super.destroy(); |
83 super.destroy(); |
85 languages.clear(); |
84 languages.clear(); |
86 } |
85 } |
87 |
86 |
88 @RequestMapping(method = HttpMethod.GET) |
87 @RequestMapping(method = HttpMethod.GET) |
89 public ResponseType handle(HttpServletRequest req, HttpServletResponse resp, DataAccessObjects dao) { |
88 public ResponseType handle(HttpServletRequest req) { |
90 |
89 |
91 req.setAttribute("languages", languages); |
90 req.setAttribute("languages", languages); |
92 req.setAttribute("browserLanguage", req.getLocale()); |
91 req.setAttribute("browserLanguage", req.getLocale()); |
93 |
92 |
94 setStylesheet(req, "language"); |
93 setStylesheet(req, "language"); |
95 setDynamicFragment(req, "language"); |
94 setDynamicFragment(req, "language"); |
96 return ResponseType.HTML_FULL; |
95 return ResponseType.HTML_FULL; |
97 } |
96 } |
98 |
97 |
99 @RequestMapping(method = HttpMethod.POST) |
98 @RequestMapping(method = HttpMethod.POST) |
100 public ResponseType switchLanguage(HttpServletRequest req, HttpServletResponse resp, DataAccessObjects dao) { |
99 public ResponseType switchLanguage(HttpServletRequest req, HttpServletResponse resp) { |
101 |
100 |
102 Optional<Locale> chosenLanguage = Optional.ofNullable(req.getParameter("language")) |
101 Optional<Locale> chosenLanguage = Optional.ofNullable(req.getParameter("language")) |
103 .map(Locale::forLanguageTag) |
102 .map(Locale::forLanguageTag) |
104 .filter((l) -> !l.getLanguage().isEmpty()); |
103 .filter((l) -> !l.getLanguage().isEmpty()); |
105 |
104 |
106 chosenLanguage.ifPresent((l) -> req.getSession().setAttribute(Constants.SESSION_ATTR_LANGUAGE, l)); |
105 chosenLanguage.ifPresent((l) -> req.getSession().setAttribute(Constants.SESSION_ATTR_LANGUAGE, l)); |
107 chosenLanguage.ifPresent(resp::setLocale); |
106 chosenLanguage.ifPresent(resp::setLocale); |
108 |
107 |
109 return handle(req, resp, dao); |
108 return handle(req); |
110 } |
109 } |
111 } |
110 } |