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 final NavigationItem match = rootNavigationItem
29 .getMatchingNavigationItem(requestPath);
33 } catch (final MalformedURLException e) {
34 System.out.println("Cannot handle URL: " + requestUrl);
38 return getDefaultNavigationItem();
41 public String getTopMenu(final HttpServletRequest request) {
43 final NavigationItem selectedItem = getSelectedItem(request);
44 final StringBuffer result = new StringBuffer();
46 result.append("<div class=\"navigationMenu\">");
48 for (final NavigationItem item : getRootNavigationItem()
51 if (item == selectedItem)
52 result.append("<a class=\"menuItemSelected\" href=\""
53 + item.getLinkUrl() + "\">");
55 result.append("<a class=\"menuItem\" href=\""
56 + item.getLinkUrl() + "\">");
58 result.append("<div>" + item.getTitle() + "</div>");
59 result.append("</a>");
62 result.append("</div>");
64 return result.toString();
67 public void setDefaultNavigationItem(
68 final NavigationItem defaultNavigationItem) {
69 this.defaultNavigationItem = defaultNavigationItem;
72 public void setRootNavigationItem(final NavigationItem rootNavigationItem) {
73 this.rootNavigationItem = rootNavigationItem;