X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fnetwork%2Fnavigation%2FNavigation.java;h=408372a21e89e97e9cc4407fd697aa5647f04619;hb=a2b2acd6d8c6a73c0897a2002a313266b1b74872;hp=7a1f71118d995ad75c329c864e6406aa3c31d091;hpb=a2d7f6f310a1c44e15574b4acf056894b4ed4b33;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 7a1f711..408372a 100755 --- a/src/main/java/eu/svjatoslav/commons/network/navigation/Navigation.java +++ b/src/main/java/eu/svjatoslav/commons/network/navigation/Navigation.java @@ -3,48 +3,59 @@ package eu.svjatoslav.commons.network.navigation; import java.net.MalformedURLException; import java.net.URL; +import javax.servlet.http.HttpServletRequest; + public class Navigation { private NavigationItem rootNavigationItem; private NavigationItem defaultNavigationItem; + public NavigationItem getDefaultNavigationItem() { + return defaultNavigationItem; + } + public NavigationItem getRootNavigationItem() { return rootNavigationItem; } - public NavigationItem getSelectedItem(final String requestUrl) { + public NavigationItem getSelectedItem(final HttpServletRequest request) { + final String requestUrl = request.getRequestURL().toString(); try { final String requestPath = new URL(requestUrl).getPath(); - for (final NavigationItem item : rootNavigationItem.subElements) - if (item.matchesUrl(requestPath)) - return item; + final NavigationItem match = rootNavigationItem + .getMatchingNavigationItem(requestPath); + + if (match != null) + return match; } catch (final MalformedURLException e) { System.out.println("Cannot handle URL: " + requestUrl); e.printStackTrace(); } - return defaultNavigationItem; + return getDefaultNavigationItem(); } - public String getTopMenu(final String requestUrl) { + public String getTopMenu(final HttpServletRequest request) { - final NavigationItem selectedItem = getSelectedItem(requestUrl); + final NavigationItem selectedItem = getSelectedItem(request); final StringBuffer result = new StringBuffer(); - result.append("
"); + result.append("
"); - for (final NavigationItem item : rootNavigationItem.getSubElements()) { + for (final NavigationItem item : getRootNavigationItem() + .getSubElements()) { if (item == selectedItem) - result.append(""); + result.append(""); else - result.append(""); + result.append(""); - result.append(item.getTitle()); + result.append("
" + item.getTitle() + "
"); result.append("
"); } @@ -53,6 +64,11 @@ public class Navigation { return result.toString(); } + public void setDefaultNavigationItem( + final NavigationItem defaultNavigationItem) { + this.defaultNavigationItem = defaultNavigationItem; + } + public void setRootNavigationItem(final NavigationItem rootNavigationItem) { this.rootNavigationItem = rootNavigationItem; }