X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fnetwork%2Fnavigation%2FNavigationItem.java;h=57a7649df57ab33458ab99125d3efa922f7eae02;hb=835e4e7c1c7313e609a958b5f685506ecace76f4;hp=2a27c5d4ac26238dbede7f5879549ba14fc6ef47;hpb=869bf9eeef97f5364d46b76f64c94cec67846c28;p=svjatoslav_commons.git diff --git a/src/main/java/eu/svjatoslav/commons/network/navigation/NavigationItem.java b/src/main/java/eu/svjatoslav/commons/network/navigation/NavigationItem.java index 2a27c5d..57a7649 100755 --- a/src/main/java/eu/svjatoslav/commons/network/navigation/NavigationItem.java +++ b/src/main/java/eu/svjatoslav/commons/network/navigation/NavigationItem.java @@ -20,40 +20,38 @@ import eu.svjatoslav.commons.string.WildCardMatcher; public class NavigationItem { private String matchingPattern; + private final Map localeToTitle = new HashMap(); - final ArrayList subElements = new ArrayList(); - final private NavigationItem parent; - final private Navigation navigation; + private final ArrayList subElements = new ArrayList(); + private final NavigationItem parent; + private final Navigation navigation; private final String linkUrl; - /** * CSS prefix is inherited to child menu items. */ private String cssPrefix; - public NavigationItem(final Navigation navigation) { + public NavigationItem(final Navigation navigation) { this.navigation = navigation; parent = null; matchingPattern = null; linkUrl = null; } - private NavigationItem(final Navigation navigation, - final NavigationItem parent, final String linkUrl, + public NavigationItem(final NavigationItem parent, final String linkUrl, final String... titles) { - this.navigation = navigation; + navigation = parent.getNavigation(); this.parent = parent; this.linkUrl = linkUrl; matchingPattern = linkUrl; initializeLocalizedTitles(titles); + + parent.addNavigationItem(this); } - public NavigationItem addChild(final String linkUrl, final String... titles) { - final NavigationItem item = new NavigationItem(navigation, this, - linkUrl, titles); - subElements.add(item); - return item; + public void addNavigationItem(final NavigationItem navigationItem) { + subElements.add(navigationItem); } protected String getCssPrefix() { @@ -84,6 +82,10 @@ public class NavigationItem { return null; } + public Navigation getNavigation() { + return navigation; + } + public List getSubElements() { return subElements; } @@ -93,7 +95,7 @@ public class NavigationItem { } private void initializeLocalizedTitles(final String... titles) { - final List locales = navigation.getLocaleConfiguration() + final List locales = getNavigation().getLocaleConfiguration() .getAllowedLocales(); if (locales.size() != titles.length) throw new RuntimeException("There should be exactly " @@ -116,4 +118,12 @@ public class NavigationItem { return this; } + @Override + public String toString() { + return "NavigationItem [matchingPattern=" + matchingPattern + + ", localeToTitle=" + localeToTitle + ", subElements count=" + + subElements.size() + ", linkUrl=" + linkUrl + ", cssPrefix=" + + cssPrefix + "]"; + } + }