localized navigation menu
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Wed, 20 Aug 2014 15:56:56 +0000 (18:56 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Wed, 20 Aug 2014 15:56:56 +0000 (18:56 +0300)
src/main/java/eu/svjatoslav/commons/network/navigation/Navigation.java
src/main/java/eu/svjatoslav/commons/network/navigation/NavigationItem.java

index 3a2877f..8b049bb 100755 (executable)
@@ -14,6 +14,9 @@ import java.net.URL;
 
 import javax.servlet.http.HttpServletRequest;
 
 
 import javax.servlet.http.HttpServletRequest;
 
+import eu.svjatoslav.commons.network.Locale;
+import eu.svjatoslav.commons.network.LocaleHelper;
+
 public class Navigation {
 
        private NavigationItem rootNavigationItem;
 public class Navigation {
 
        private NavigationItem rootNavigationItem;
@@ -56,6 +59,8 @@ public class Navigation {
 
        public String getTopMenu(final HttpServletRequest request) {
 
 
        public String getTopMenu(final HttpServletRequest request) {
 
+               final Locale currentLocale = LocaleHelper.detectLocale(request);
+
                final NavigationItem selectedItem = getSelectedItem(request);
                final StringBuffer result = new StringBuffer();
 
                final NavigationItem selectedItem = getSelectedItem(request);
                final StringBuffer result = new StringBuffer();
 
@@ -76,7 +81,7 @@ public class Navigation {
                                                + getGetNotNullString(item.getCssPrefix())
                                                + "menuItem\" href=\"" + item.getLinkUrl() + "\">");
 
                                                + getGetNotNullString(item.getCssPrefix())
                                                + "menuItem\" href=\"" + item.getLinkUrl() + "\">");
 
-                       result.append("<div>" + item.getTitle() + "</div>");
+                       result.append("<div>" + item.getTitle(currentLocale) + "</div>");
                        result.append("</a>");
                }
 
                        result.append("</a>");
                }
 
index 22ba6b0..14c8b0a 100755 (executable)
@@ -99,7 +99,8 @@ public class NavigationItem {
 
        public String getTitle() {
                if (localeToTitle.size() != 1)
 
        public String getTitle() {
                if (localeToTitle.size() != 1)
-                       throw new RuntimeException("there shall be exactly one title");
+                       throw new RuntimeException(
+                                       "NavigationItem.getTitle() was called without locale parameter, but there there are multiple titles in diffirent locales available.");
 
                return localeToTitle.values().iterator().next();
        }
 
                return localeToTitle.values().iterator().next();
        }