X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=svjatoslav_commons.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fnetwork%2Fnavigation%2FNavigation.java;h=2c23e1d142ef02a402fc451fdac85c7c23138410;hp=e6ed8ef2cea330b6a85e9f62b18c373eca022641;hb=f7500732a4ba759bebc5680d0027ae903312a7c9;hpb=3fea835d27c37142574f6640fca663522b2162c0 diff --git a/src/main/java/eu/svjatoslav/commons/network/navigation/Navigation.java b/src/main/java/eu/svjatoslav/commons/network/navigation/Navigation.java index e6ed8ef..2c23e1d 100755 --- a/src/main/java/eu/svjatoslav/commons/network/navigation/Navigation.java +++ b/src/main/java/eu/svjatoslav/commons/network/navigation/Navigation.java @@ -9,80 +9,54 @@ package eu.svjatoslav.commons.network.navigation; -import eu.svjatoslav.commons.network.LocaleConfiguration; - import javax.servlet.http.HttpServletRequest; import java.net.MalformedURLException; import java.net.URL; -import java.util.List; - -public class Navigation { - protected final LocaleConfiguration localeConfiguration; - private NI rootNavigationItem; - private NI defaultNavigationItem; +public class Navigation { - public Navigation(final LocaleConfiguration localeConfiguration) { - this.localeConfiguration = localeConfiguration; - } + private NavigationItem root = new NavigationItem(null, null, null); - public NI getDefaultNavigationItem() { - return defaultNavigationItem; + public NavigationItem getRoot(){ + return root; } - private String getGetNotNullString(final String string) { - if (string != null) - return string; - - return ""; - } - - public LocaleConfiguration getLocaleConfiguration() { - return localeConfiguration; - } - - public NI getRootNavigationItem() { - return rootNavigationItem; - } - - public NI getSelectedItem(final HttpServletRequest request) { + public NavigationItem getSelectedItem(final HttpServletRequest request) { final String requestUrl = request.getRequestURL().toString(); + final String requestPath; try { - final String requestPath = new URL(requestUrl).getPath(); + requestPath = new URL(requestUrl).getPath(); + } catch (MalformedURLException e) { + throw new IllegalArgumentException("Illegal request URL provided." , e); + } - @SuppressWarnings("unchecked") final NI match = (NI) rootNavigationItem.getMatchingNavigationItem(requestPath); + @SuppressWarnings("unchecked") final NavigationItem match = root.getMatch(requestPath); - if (match != null) - return match; - } catch (final MalformedURLException e) { - System.out.println("Cannot handle URL: " + requestUrl); - e.printStackTrace(); - } + if (match != null) + return match; - return getDefaultNavigationItem(); + return root.getDefaultNavigationItem(); } @SuppressWarnings("unchecked") public String getTopMenu(final HttpServletRequest request) { - final String currentLocale = localeConfiguration.detectCurrentLocale(request); - - final NI selectedItem = getSelectedItem(request); + final NavigationItem selectedItem = getSelectedItem(request); final StringBuilder result = new StringBuilder(); - result.append("
"); + result.append("
"); - for (final NI item : (List) getRootNavigationItem().getSubElements()) { + for (final NavigationItem item : root.getChildren()) { if (item == selectedItem) - result.append(""); + result.append(""); else - result.append(""); + result.append(""); - result.append("
" + item.getTitle(currentLocale) + "
"); + result.append("
" + item.getTitle() + "
"); result.append("
"); } @@ -91,14 +65,4 @@ public class Navigation { return result.toString(); } - public NI setDefaultNavigationItem(final NI defaultNavigationItem) { - this.defaultNavigationItem = defaultNavigationItem; - return defaultNavigationItem; - } - - public NI setRootNavigationItem(final NI rootNavigationItem) { - this.rootNavigationItem = rootNavigationItem; - return rootNavigationItem; - } - }