Author: ldywicki Date: Fri Dec 28 17:36:56 2012 New Revision: 1426589 URL: http://svn.apache.org/viewvc?rev=1426589&view=rev Log: KARAF-2090 Mark module tab as active when needed
Signed-off-by: Lukasz Dywicki <[email protected]> Modified: karaf/webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/ModuleTabPanel.java karaf/webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/NavigationTopPanel.java karaf/webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/navigation/markup/NavigationTopPanel.html Modified: karaf/webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/ModuleTabPanel.java URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/ModuleTabPanel.java?rev=1426589&r1=1426588&r2=1426589&view=diff ============================================================================== --- karaf/webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/ModuleTabPanel.java (original) +++ karaf/webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/ModuleTabPanel.java Fri Dec 28 17:36:56 2012 @@ -16,7 +16,6 @@ */ package org.apache.karaf.webconsole.core.navigation.markup; -import java.util.ArrayList; import java.util.List; import org.apache.karaf.webconsole.core.navigation.ConsoleTabProvider; @@ -49,16 +48,7 @@ public class ModuleTabPanel extends Pane IModel<List<Link<Page>>> links = new LoadableDetachableModel<List<Link<Page>>>() { @Override protected List<Link<Page>> load() { - if (tabs == null) { - return new ArrayList<Link<Page>>(); - } - for (ConsoleTabProvider provider : tabs) { - Link<Page> moduleLink = provider.getModuleLink("moduleLink", "moduleLabel"); - if (LinkUtils.isActiveTrail(moduleLink)) { - return provider.getItems("link", "label"); - } - } - return new ArrayList<Link<Page>>(); + return findActiveModuleLinks(); } }; @@ -68,10 +58,26 @@ public class ModuleTabPanel extends Pane Link<Page> link = item.getModelObject(); item.add(link); if (LinkUtils.isActiveTrail(link)) { - item.add(new AttributeModifier("class", "active")); + item.getParent().add(new AttributeModifier("class", "active")); } } }); } + private List<Link<Page>> findActiveModuleLinks() { + for (ConsoleTabProvider provider : tabs) { + Link<Page> moduleLink = provider.getModuleLink("moduleLink", "moduleLabel"); + if (LinkUtils.isActiveTrail(moduleLink)) { + return provider.getItems("link", "label"); + } + } + return null; + } + + @Override + public boolean isVisible() { + List<Link<Page>> activeModuleLinks = findActiveModuleLinks(); + return activeModuleLinks != null && activeModuleLinks.size() > 0; + } + } Modified: karaf/webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/NavigationTopPanel.java URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/NavigationTopPanel.java?rev=1426589&r1=1426588&r2=1426589&view=diff ============================================================================== --- karaf/webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/NavigationTopPanel.java (original) +++ karaf/webconsole/trunk/core/src/main/java/org/apache/karaf/webconsole/core/navigation/markup/NavigationTopPanel.java Fri Dec 28 17:36:56 2012 @@ -28,14 +28,11 @@ import org.apache.karaf.webconsole.core. import org.apache.wicket.AttributeModifier; import org.apache.wicket.Component; import org.apache.wicket.Page; -import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; -import org.apache.wicket.markup.repeater.RepeatingView; import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; import org.ops4j.pax.wicket.api.PaxWicketBean; import org.osgi.service.prefs.PreferencesService; @@ -73,35 +70,15 @@ public class NavigationTopPanel extends @Override protected void populateItem(ListItem<ConsoleTabProvider> item) { - populateTabItem(item, item.getModelObject()); + Link<Page> link = item.getModelObject().getModuleLink("moduleLink", "moduleLabel"); + item.add(link); + + if (LinkUtils.isActiveTrail(link)) { + item.add(AttributeModifier.append("class", "active")); + } } }; } - protected void populateTabItem(ListItem<ConsoleTabProvider> item, ConsoleTabProvider provider) { - Link<Page> link = provider.getModuleLink("moduleLink", "moduleLabel"); - item.add(link); - - if (LinkUtils.isActiveTrail(link)) { - item.add(new AttributeAppender("class", Model.of("active"), " ")); - } - } - - protected void populateSingleTabItem(ListItem<ConsoleTabProvider> item, ConsoleTabProvider provider) { - Link<Page> moduleLink = provider.getModuleLink("moduleLink", "moduleLabel"); - - // remove dropdown stuff - item.add(new AttributeModifier("class", "")); - moduleLink.add(new AttributeModifier("data-toggle", "")); - moduleLink.add(new AttributeModifier("class", "")); - - if (LinkUtils.isActiveTrail(moduleLink)) { - item.add(new AttributeAppender("class", Model.of("active"), " ")); - } - - item.add(moduleLink); - item.add(new RepeatingView("moduleLinks")); - } - } Modified: karaf/webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/navigation/markup/NavigationTopPanel.html URL: http://svn.apache.org/viewvc/karaf/webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/navigation/markup/NavigationTopPanel.html?rev=1426589&r1=1426588&r2=1426589&view=diff ============================================================================== --- karaf/webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/navigation/markup/NavigationTopPanel.html (original) +++ karaf/webconsole/trunk/core/src/main/resources/org/apache/karaf/webconsole/core/navigation/markup/NavigationTopPanel.html Fri Dec 28 17:36:56 2012 @@ -18,14 +18,12 @@ <wicket:extend xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> <ul class="nav"> - <wicket:container wicket:id="tabs"> - <li> - <a wicket:id="moduleLink"> - <span wicket:id="moduleLabel"></span> - </a> - </li> - <li class="divider-vertical"></li> - </wicket:container> + <li wicket:id="tabs"> + <a wicket:id="moduleLink"> + <span wicket:id="moduleLabel"></span> + </a> + </li> + <li class="divider-vertical"></li> </ul> <wicket:child />
