X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fnetwork%2Fnavigation%2FNavigationItem.java;h=0152c26048acb267367412d3f23f4305191415db;hb=acde4973ab5eb9f8d7ec5ef2cba2d5f3dc6cdb1c;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..0152c26 100755 --- a/src/main/java/eu/svjatoslav/commons/network/navigation/NavigationItem.java +++ b/src/main/java/eu/svjatoslav/commons/network/navigation/NavigationItem.java @@ -14,46 +14,43 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import eu.svjatoslav.commons.network.Locale; 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 String linkUrl; + private final Map localeToTitle = new HashMap(); + 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,16 +81,20 @@ public class NavigationItem { return null; } + public Navigation getNavigation() { + return navigation; + } + public List getSubElements() { return subElements; } - public String getTitle(final Locale locale) { + public String getTitle(final String locale) { return localeToTitle.get(locale); } 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 +117,12 @@ public class NavigationItem { return this; } + @Override + public String toString() { + return "NavigationItem [matchingPattern=" + matchingPattern + + ", localeToTitle=" + localeToTitle + ", subElements count=" + + subElements.size() + ", linkUrl=" + linkUrl + ", cssPrefix=" + + cssPrefix + "]"; + } + }