X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fnetwork%2Fnavigation%2FNavigation.java;h=7047587e816daf8bbb52efc60eb5ffded8429b5b;hb=443c6a564efa9f5868fd81c0db23a480cbe3cab4;hp=5e605ab56b1157d70ef178f159c9b62f3b18dae1;hpb=869bf9eeef97f5364d46b76f64c94cec67846c28;p=svjatoslav_commons.git 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 5e605ab..7047587 100755 --- a/src/main/java/eu/svjatoslav/commons/network/navigation/Navigation.java +++ b/src/main/java/eu/svjatoslav/commons/network/navigation/Navigation.java @@ -1,6 +1,6 @@ /* * Svjatoslav Commons - shared library of common functionality. - * Copyright ©2012-2014, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * Copyright ©2012-2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu * * This program is free software; you can redistribute it and/or * modify it under the terms of version 3 of the GNU Lesser General Public License @@ -9,108 +9,60 @@ package eu.svjatoslav.commons.network.navigation; +import javax.servlet.http.HttpServletRequest; import java.net.MalformedURLException; import java.net.URL; -import javax.servlet.http.HttpServletRequest; - -import eu.svjatoslav.commons.network.Locale; -import eu.svjatoslav.commons.network.LocaleConfiguration; - public class Navigation { - private NavigationItem rootNavigationItem; - - private NavigationItem defaultNavigationItem; - - private final LocaleConfiguration localeConfiguration; - - public Navigation(final LocaleConfiguration localeConfiguration) { - this.localeConfiguration = localeConfiguration; - } - - public NavigationItem getDefaultNavigationItem() { - return defaultNavigationItem; - } - - private String getGetNotNullString(final String string) { - if (string != null) - return string; - - return ""; - } - - public LocaleConfiguration getLocaleConfiguration() { - return localeConfiguration; - } - - public NavigationItem getRootNavigationItem() { - return rootNavigationItem; - } - - public NavigationItem getSelectedItem(final HttpServletRequest request) { - final String requestUrl = request.getRequestURL().toString(); - - try { - final String requestPath = new URL(requestUrl).getPath(); + private NavigationItem root = new NavigationItem(null, null, null); - final NavigationItem match = rootNavigationItem - .getMatchingNavigationItem(requestPath); + public NavigationItem getRoot(){ + return root; + } - if (match != null) - return match; - } catch (final MalformedURLException e) { - System.out.println("Cannot handle URL: " + requestUrl); - e.printStackTrace(); - } + public NavigationItem getSelectedItem(final HttpServletRequest request) { + final String requestUrl = request.getRequestURL().toString(); - return getDefaultNavigationItem(); - } + final String requestPath; + try { + requestPath = new URL(requestUrl).getPath(); + } catch (MalformedURLException e) { + throw new IllegalArgumentException("Illegal request URL provided." , e); + } - public String getTopMenu(final HttpServletRequest request) { + @SuppressWarnings("unchecked") final NavigationItem match = root.getMatch(requestPath); - final Locale currentLocale = localeConfiguration - .detectCurrentLocale(request); + if (match != null) + return match; - final NavigationItem selectedItem = getSelectedItem(request); - final StringBuffer result = new StringBuffer(); + return root.getDefaultNavigationItem(); + } - result.append("
"); + @SuppressWarnings("unchecked") + public String getTopMenu(final HttpServletRequest request) { - for (final NavigationItem item : getRootNavigationItem() - .getSubElements()) { + final NavigationItem selectedItem = getSelectedItem(request); + final StringBuilder result = new StringBuilder(); - if (item == selectedItem) - result.append(""); - else - result.append(""); + result.append("
"); - result.append("
" + item.getTitle(currentLocale) + "
"); - result.append("
"); - } + for (final NavigationItem item : root.getChildren()) { - result.append("
"); + if (item == selectedItem) + result.append(""); + else + result.append(""); - return result.toString(); - } + result.append("
" + item.getTitle() + "
"); + result.append("
"); + } - public NavigationItem setDefaultNavigationItem( - final NavigationItem defaultNavigationItem) { - this.defaultNavigationItem = defaultNavigationItem; - return defaultNavigationItem; - } + result.append("
"); - public NavigationItem setRootNavigationItem( - final NavigationItem rootNavigationItem) { - this.rootNavigationItem = rootNavigationItem; - return rootNavigationItem; - } + return result.toString(); + } }