yeah sir i have pasted the code used in the managed bean.it is the last second post i have posted.by the way what is code tagsandyba wrote:You have been asked, politely, to read the forum rules and use code tags to format the code you post. I am asking you, again politely, to do so.
Using code tags is not us being fussy, it makes your code much easier for us to read. Without this you will find people, like me, won't be prepared to make much effort to help you.
here is the xhtml part
-------------------------------------------------------
<code>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:form name="top_menu_form" styleClass="ui-form">
<p:menubar styleClass="uicolor" model="#{topMenuBean.model}">
</p:menubar>
</h:form>
</ui:composition>
</code>
------------------------------------------------------
here is the mangaed bean part
------------------------------------------------------
<code>
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.component.UIComponent;
import org.primefaces.component.menuitem.UIMenuItem;
import org.primefaces.model.menu.DefaultMenuItem;
import org.primefaces.model.menu.DefaultMenuModel;
import org.primefaces.model.menu.DefaultSubMenu;
import org.primefaces.model.menu.MenuColumn;
import org.primefaces.model.menu.MenuElement;
import org.primefaces.model.menu.MenuModel;
@ManagedBean(name = "topmenu1")
@RequestScoped
public class TopMenuBean1 {
private MenuModel model;
private String current_module = "No module chosen ...";
private ArrayList<UserMenus> um_list;
@SuppressWarnings("unchecked")
public TopMenuBean1() {
this.um_list = new ArrayList<UserMenus>();
this.um_list.addAll((ArrayList<UserMenus>) utils.execute_VE("#{loginBean.ua.user_menus}", ArrayList.class));
this.current_module = (String) utils.execute_VE("#{loginBean.ua.current_module}", String.class);
this.model = new DefaultMenuModel();
}
@PostConstruct
public void construct_top_menu() {
String menu_item_id_prefix;
String base_path = utils.get_base_path();
System.out.println("About to construct top menu and Base path is ---> " + base_path);
Collections.sort(this.um_list, new Comparator<UserMenus>() {
@Override
public int compare(UserMenus u1, UserMenus u2) {
return (u1.getMenu_id() * 100 + u1.getParent_menu_id()) - (u2.getMenu_id() * 100 + u2.getParent_menu_id());
}
});
UserMenus user_menu_item;
DefaultSubMenu submenu = null;
DefaultMenuItem dmf = null;
DefaultMenuItem dmf1 = null;
DefaultSubMenu dsm = null;
for (int i = 0 ; i < this.um_list.size() ; i++) {
System.out.println("hey");
user_menu_item = this.um_list.get(i);
menu_item_id_prefix = "Top_" + Integer.toString(user_menu_item.getMenu_id()) + "_";
System.out.println(hasChildren(user_menu_item) + "-----------------");
if (hasChildren(user_menu_item)) {
submenu = new DefaultSubMenu();
submenu.setLabel(user_menu_item.getMenu_display_name());
submenu.setId(menu_item_id_prefix + user_menu_item.getMenu_display_name().replace(' ', '_'));
DefaultSubMenu parent = this.parentItem(user_menu_item);
if (parent == null) {
this.model.addElement(submenu);
} else {
parent.getElements().add(submenu);
submenu.addElement(parent);
}
} else {
DefaultMenuItem item = new DefaultMenuItem();
item.setId(menu_item_id_prefix + user_menu_item.getMenu_display_name().replace(' ', '_'));
item.setValue(user_menu_item.getMenu_display_name());
item.setTitle(user_menu_item.getMenu_display_name());
item.setUrl(base_path + "/" + user_menu_item.getUrl() + "?mn=" + user_menu_item.getMenu_id());
DefaultSubMenu parent = this.parentItem(user_menu_item);
if (parent == null) {
this.model.addElement(item);
} else {
parent.getElements().add(item);
}
}
}
}
private Boolean hasChildren(UserMenus um) {
int i;
for (i = 0 ; i < this.um_list.size() && !(um_list.get(i).getParent_menu_id() == um.getMenu_id()) ; i++)
;
return (i < this.um_list.size());
}
public MenuModel getModel() {
return model;
}
public void setModel(MenuModel model) {
this.model = model;
}
public String getCurrent_module() {
return current_module;
}
public void setCurrent_module(String current_module) {
this.current_module = current_module;
}
public ArrayList<UserMenus> getUm_list() {
return um_list;
}
public void setUm_list(ArrayList<UserMenus> um_list) {
this.um_list = um_list;
}
public DefaultSubMenu parentItem(UserMenus user_menu_item) {
DefaultSubMenu uic = null;
ArrayList<DefaultSubMenu> all_components = new ArrayList<DefaultSubMenu>();
String search_string = null;
int i;
for (i = 0 ; i < this.um_list.size() && !(this.um_list.get(i).getMenu_id() == user_menu_item.getParent_menu_id()) ; i++)
;
if (i < this.um_list.size()) {
String menu_item_id_prefix = "Top_" + Integer.toString(um_list.get(i).getMenu_id()) + "_";
search_string = menu_item_id_prefix + um_list.get(i).getMenu_display_name().replace(" ", "_");
all_components.addAll((Collection<? extends DefaultSubMenu>) this.model.getElements());
for (int j = 0 ; j < all_components.size() ; j++) { // this were i'm getting error for the file (i.e., defaultsubmenu can't be cast to defaultmenuitem..).If any one have any idea about this .please help me
if (!search_string.equals(all_components.get(i).getId())) {
all_components.addAll((Collection<? extends DefaultSubMenu>) all_components.get(i).getElements());
} else {
System.out.println("hey 2");
System.out.println("false else in allcomponents");
}
System.out.println(i + " hey");
}
System.out.println(all_components.get(i).getLabel() + "------------------------");
System.out.println(all_components.size() + "--------hey");
System.out.println(search_string.equals(all_components.get(i).getId()) + "------------hey there");
if (i < all_components.size()) {
uic = all_components.get(i);
} else {
System.out.println("hey ");
}
}
return uic;
}
}
</code>
------------------------------------------------------