1 package eu.svjatoslav.commons.network.navigation;
3 import java.net.MalformedURLException;
6 import javax.servlet.http.HttpServletRequest;
8 public class Navigation {
10 private NavigationItem rootNavigationItem;
12 private NavigationItem defaultNavigationItem;
14 public NavigationItem getDefaultNavigationItem() {
15 return defaultNavigationItem;
18 public NavigationItem getRootNavigationItem() {
19 return rootNavigationItem;
22 public NavigationItem getSelectedItem(final HttpServletRequest request) {
23 final String requestUrl = request.getRequestURL().toString();
26 final String requestPath = new URL(requestUrl).getPath();
28 for (final NavigationItem item : rootNavigationItem.subElements)
29 if (item.matchesUrl(requestPath))
31 } catch (final MalformedURLException e) {
32 System.out.println("Cannot handle URL: " + requestUrl);
36 return getDefaultNavigationItem();
39 public String getTopMenu(final HttpServletRequest request) {
41 final NavigationItem selectedItem = getSelectedItem(request);
42 final StringBuffer result = new StringBuffer();
44 result.append("<div class=\"navigationMenu\">");
46 for (final NavigationItem item : getRootNavigationItem()
49 if (item == selectedItem)
50 result.append("<a class=\"menuItemSelected\" href=\""
51 + item.getLinkUrl() + "\">");
53 result.append("<a class=\"menuItem\" href=\""
54 + item.getLinkUrl() + "\">");
56 result.append("<div>" + item.getTitle() + "</div>");
57 result.append("</a>");
60 result.append("</div>");
62 return result.toString();
65 public void setDefaultNavigationItem(
66 final NavigationItem defaultNavigationItem) {
67 this.defaultNavigationItem = defaultNavigationItem;
70 public void setRootNavigationItem(final NavigationItem rootNavigationItem) {
71 this.rootNavigationItem = rootNavigationItem;