Comment afficher un menu dynamique et leurs sous-menu selon mon profile
Comment faire menu et sous menu selon deux liste différente et ouvrire selon le profile a ouvrire leurs compte
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
@ManagedBean
@SessionScoped
public class MenuBean extends AbstractBean implements Serializable{
private static final long serialVersionUID = 1L;
UserProfileMenuTreeService service;
private MenuModel menu = new DefaultMenuModel();
@SuppressWarnings("unused")
public MenuBean(){
sessionBean = getSessionBean();
session = sessionBean.getSession();
List<ProfilMenuTree> profilMenus = new ArrayList<>();
profilMenus = service.getListProfileMenutree(sessionBean.getUser().getUtil());
List<ProfilMenuTree> profilMenusNull = new ArrayList<>();
profilMenusNull = service.getListProfileMenutreeNull(sessionBean.getUser().getUtil());
} |
Code:
1 2 3 4 5 6 7 8
|
public interface UserProfileMenuTreeService {
List<ProfilMenuTree> getListProfileMenutree(String aa); liste des menus item
List<ProfilMenuTree> getListProfileMenutreeNull(String bb); liste des menu submenu
} |
Code:
1 2 3 4 5 6 7 8 9
|
public List<ProfilMenuTree> getListProfileMenutree(String aa) {
// TODO Auto-generated method stub
String hql = "select a.menu_id,util,MENU_NAME,PARENT_MENU_ID,TASKFLOW,MENU_TYPE from usr_men_tree a,menu_tree b where UTIL=('aa') and PARENT_MENU_ID is not null and a.menu_id = b.menu_id union select a.menu_id,b.util,MENU_NAME,PARENT_MENU_ID,TASKFLOW,MENU_TYPE from PROFIL_MENU_TREE a,USR_PROFIL_UTIL b and PARENT_MENU_ID is not null, menu_tree c where A.CODE_PROFIL=b.CODE_PROFIL and b.UTIL=('aa') and a.menu_id = c.menu_id";
Query q = session.createQuery(hql);
return q.list();
} |
Code:
1 2 3 4 5 6 7 8
|
@Override
public List<ProfilMenuTree> getListProfileMenutreeNull(String bb) {
String hql = "select a.menu_id,util,MENU_NAME,PARENT_MENU_ID,TASKFLOW,MENU_TYPE from usr_men_tree a,menu_tree b where UTIL=('aa') and PARENT_MENU_ID is null and a.menu_id = b.menu_id union select a.menu_id,b.util,MENU_NAME,PARENT_MENU_ID,TASKFLOW,MENU_TYPE from PROFIL_MENU_TREE a,USR_PROFIL_UTIL b, menu_tree c where A.CODE_PROFIL=b.CODE_PROFIL and b.UTIL=('aa') and PARENT_MENU_ID is null and a.menu_id = c.menu_id";
Query q = session.createQuery(hql);
return q.list();
} |
Code:
1 2
| <p:menu overlay="true" trigger="triggerButton" my="left top" at="right top" model="#{MenuBean.menu}">
</p:menu> |
Par défaut Afficher un menu dynamique et leurs sous-menu selon user connecter
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
|
package com.menudynamic.bean;
import com.menudynamic.dto.MenuTree;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.primefaces.component.menu.Menu;
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.MenuModel;
/**
*
*
*
* @author darkdkiller
*
*/
public class MenuBean {
private MenuModel dMenuModel;
private String anything;
private MenuModel model;
/**
*
* Creates a new instance of MenuBean
*
*/
public MenuBean() {
anything = "yoyo";
dMenuModel = new DefaultMenuModel();
UIMenuItem menuItem = new UIMenuItem();
menuItem.setTitle("Menu1");
menuItem.setValue("Menu1");
menuItem.setIcon("ui-icon-home");
menuItem.setUrl("http://www.google.com");
dMenuModel.addElement(menuItem);
System.out.println("test");
Configuration conf = new AnnotationConfiguration();
conf.configure("hibernate.cfg.xml");
org.hibernate.SessionFactory sessionFactory = conf.buildSessionFactory();
Session sess = sessionFactory.openSession();
sess.beginTransaction();
Query query = sess.createSQLQuery(
"select MENU_ID, MENU_NAME, DEFINITION, PARENT_MENU_ID, MENU_TYPE, DISPLAY_SEQ, INDIC_MENU, UTIL_TRAC, PAGE_TRAC, TASKFLOW, NUM_SERIE from menu_tree start with menu_id=982 connect by prior menu_id=parent_menu_id order siblings by display_seq");
List<MenuTree> list = query.list();
// Collections
System.out.println("list size " + list.size());
System.out.println("***********************test**************************************");
System.out.println("***********************testmmm**************************************");
Iterator dMenu = query.list().iterator();
model = new DefaultMenuModel();
DefaultSubMenu firstSubmenu = null;
while (dMenu.hasNext()) {
Object[] tuple = (Object[]) dMenu.next();
// MenuTree tuple = (MenuTree) kittensAndMothers.next();
System.out.println(tuple[4]);
System.out.println(tuple[0]);
System.out.println(tuple[4]);
if ("1".equals(tuple[4].toString())) {
System.out.println(tuple[1].toString());
firstSubmenu = new DefaultSubMenu(tuple[1].toString());
firstSubmenu.setId(tuple[0].toString());
}
else {
DefaultMenuItem item = new DefaultMenuItem(tuple[1].toString());
item.setUrl(tuple[2].toString());
item.setId(tuple[0].toString());
firstSubmenu.addElement(item);
System.out.println("zadddddddddddd");
}
}
model.addElement(firstSubmenu);
}
public MenuModel getdMenuModel() {
return dMenuModel;
}
public void setdMenuModel(MenuModel dMenuModel) {
this.dMenuModel = dMenuModel;
}
public String getAnything() {
return anything;
}
public void setAnything(String anything) {
this.anything = anything;
}
public MenuModel getModel() {
return model;
}
public void setModel(MenuModel model) {
this.model = model;
}
} |
cette partie je test si menutype égale 1 alors submenu sinon item mais mon problème maintenant comment faire le boucle sécurises avec paramétrage et mon requette juste pour tester sur 1er submenu egale 982 et leur children
select MENU_ID, MENU_NAME, DEFINITION, PARENT_MENU_ID, MENU_TYPE, DISPLAY_SEQ, INDIC_MENU, UTIL_TRAC, PAGE_TRAC, TASKFLOW, NUM_SERIE from menu_tree start with menu_id=982 connect by prior menu_id=parent_menu_id order siblings by display_seq
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| while (dMenu.hasNext()) {
Object[] tuple = (Object[]) dMenu.next();
// MenuTree tuple = (MenuTree) kittensAndMothers.next();
System.out.println(tuple[4]);
System.out.println(tuple[0]);
System.out.println(tuple[4]);
if ("1".equals(tuple[4].toString())) {
System.out.println(tuple[1].toString());
firstSubmenu = new DefaultSubMenu(tuple[1].toString());
firstSubmenu.setId(tuple[0].toString());
}
else {
DefaultMenuItem item = new DefaultMenuItem(tuple[1].toString());
item.setUrl(tuple[2].toString());
item.setId(tuple[0].toString());
firstSubmenu.addElement(item);
System.out.println("zadddddddddddd");
}
}
model.addElement(firstSubmenu);
} |
Pièce jointe 380418