Commit 28a3b885 by Tuomas Riihimäki

Top menu changin changes also lower level menus

1 parent 521247ce
...@@ -84,6 +84,7 @@ public class MenuView extends GenericCDIView { ...@@ -84,6 +84,7 @@ public class MenuView extends GenericCDIView {
} }
public void menuChangeEvent() { public void menuChangeEvent() {
layoutview.setPageName(menuChange);
navihandler.forward(menuChange); navihandler.forward(menuChange);
// super.navihandler.forward(menuChange); // super.navihandler.forward(menuChange);
} }
...@@ -233,6 +234,9 @@ public class MenuView extends GenericCDIView { ...@@ -233,6 +234,9 @@ public class MenuView extends GenericCDIView {
} }
public String getMenuChange() { public String getMenuChange() {
if (menuChange == null || menuChange.isEmpty()) {
menuChange = layoutview.getPagepath();
}
return menuChange; return menuChange;
} }
......
package fi.codecrew.moya.web.cdiview.menu; package fi.codecrew.moya.web.cdiview.menu;
import java.util.HashSet;
import java.util.List;
import java.util.Set; import java.util.Set;
import javax.ejb.EJB; import javax.ejb.EJB;
...@@ -77,19 +75,7 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -77,19 +75,7 @@ public class PrimeMenuView extends GenericCDIView {
if (menuModel == null) if (menuModel == null)
{ {
menuModel = new DefaultMenuModel(); menuModel = new DefaultMenuModel();
Set<MenuNavigation> selectedSet = new HashSet<>(); MenuNavigation selectedTop = layoutview.getSelectedTopmenu();
final MenuNavigation thisPage = menubean.findNavigation(layoutview.getPagepath());
MenuNavigation selectedTop = thisPage;
while (selectedTop != null && selectedTop.getParent() != null) {
selectedTop = selectedTop.getParent();
selectedSet.add(selectedTop);
}
List<MenuNavigation> tops = menubean.getTopmenus();
if (!tops.contains(selectedTop) && !tops.isEmpty()) {
selectedTop = tops.get(0);
}
for (MenuNavigation m : selectedTop.getChildren()) { for (MenuNavigation m : selectedTop.getChildren()) {
if (m.getItem() != null && m.getChildren().isEmpty()) { if (m.getItem() != null && m.getChildren().isEmpty()) {
...@@ -99,8 +85,7 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -99,8 +85,7 @@ public class PrimeMenuView extends GenericCDIView {
menuModel.addElement(menuitem); menuModel.addElement(menuitem);
} }
} else { } else {
Submenu subm = addSubmenu(m, layoutview.getSelectedSet());
Submenu subm = addSubmenu(m, selectedSet);
if (subm != null) { if (subm != null) {
menuModel.addElement(subm); menuModel.addElement(subm);
......
package fi.codecrew.moya.web.helper; package fi.codecrew.moya.web.helper;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.MissingResourceException; import java.util.MissingResourceException;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import java.util.Set;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped; import javax.enterprise.context.RequestScoped;
...@@ -17,10 +21,12 @@ import org.slf4j.Logger; ...@@ -17,10 +21,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.EventBeanLocal; import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.MenuBeanLocal;
import fi.codecrew.moya.beans.PermissionBeanLocal; import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.enums.apps.ContentPermission; import fi.codecrew.moya.enums.apps.ContentPermission;
import fi.codecrew.moya.model.LanEventProperty; import fi.codecrew.moya.model.LanEventProperty;
import fi.codecrew.moya.model.LanEventPropertyKey; import fi.codecrew.moya.model.LanEventPropertyKey;
import fi.codecrew.moya.model.MenuNavigation;
@Named @Named
@RequestScoped @RequestScoped
...@@ -37,6 +43,9 @@ public class LayoutView { ...@@ -37,6 +43,9 @@ public class LayoutView {
private StreamedContent headerimage; private StreamedContent headerimage;
private String headertext; private String headertext;
@EJB
private transient MenuBeanLocal menubean;
private static final Logger logger = LoggerFactory.getLogger(LayoutView.class); private static final Logger logger = LoggerFactory.getLogger(LayoutView.class);
public void init() { public void init() {
...@@ -48,6 +57,38 @@ public class LayoutView { ...@@ -48,6 +57,38 @@ public class LayoutView {
return permbean.hasPermission(ContentPermission.MANAGE_PAGES); return permbean.hasPermission(ContentPermission.MANAGE_PAGES);
} }
private Set<MenuNavigation> selectedSet;
public Set<MenuNavigation> getSelectedSet()
{
if (selectedSet == null) {
getSelectedTopmenu();
}
return selectedSet;
}
private MenuNavigation selectedTop;
public MenuNavigation getSelectedTopmenu()
{
if (selectedTop == null)
{
selectedSet = new HashSet<>();
selectedTop = menubean.findNavigation(getPagepath());
while (selectedTop != null && selectedTop.getParent() != null) {
selectedTop = selectedTop.getParent();
selectedSet.add(selectedTop);
}
List<MenuNavigation> tops = menubean.getTopmenus();
if (!tops.contains(selectedTop) && !tops.isEmpty()) {
selectedTop = tops.get(0);
}
selectedSet = Collections.unmodifiableSet(selectedSet);
}
return selectedTop;
}
public String getPagepath() { public String getPagepath() {
if (pagename == null) { if (pagename == null) {
HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getRequest(); HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getRequest();
...@@ -137,4 +178,9 @@ public class LayoutView { ...@@ -137,4 +178,9 @@ public class LayoutView {
public void setHeadertext(String headertext) { public void setHeadertext(String headertext) {
this.headertext = headertext; this.headertext = headertext;
} }
public void setPageName(String menuChange) {
this.pagename = menuChange;
selectedTop = null;
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!