jsf - Different Context menu on each node of tree -


in jsf project want display different context menu on every node of tree based on conditions (to precise permissions)

present according xhtml, have binded context menu tree getting same menu on every node of tree. here code:

<p:contextmenu for="treeid">     <p:menuitem value="create" update=":centerpanel" actionlistener="#{somebean.createprivilege}" onstart="statusdialog.show();"         oncomplete="statusdialog.hide();" />     <p:menuitem value="edit" update=":commondialog :centerpanel" actionlistener="#{somebean.editprivilege}"         onstart="statusdialog.show();" oncomplete="statusdialog.hide();" />     <p:menuitem value="delete" onstart="delprivilegeconfirmdialog.show();" /> </p:contextmenu> <p:scrollpanel mode="native" styleclass="scroll-panel">     <p:tree id="treeid" value="root" var="node" selectionmode="single"         selection="#{somebean.selectednode}" dynamic="true">         <p:ajax listener="#{somebean.onnodeselect}" update=":centerpanel" event="select" onstart="statusdialog.show();"             oncomplete="statusdialog.hide();" />         <p:treenode id="someid">             <h:outputtext value="#{node}" id="lblnode" />         </p:treenode>     </p:tree> </p:scrollpanel> 

but according requirement want different context menu on every node, have 3 options in context menu create, edit , delete.. need hide 1 or 2 option on every node based on conditions.

how that?

thanks in advance.

assuming using primefaces, recent versions provide option set different context menus different node types using "nodetype" attribute:

<p:contextmenu for="treeid" nodetype="type1">     <p:menuitem value="create" update=":centerpanel" actionlistener="#{somebean.createprivilege}" onstart="statusdialog.show();"         oncomplete="statusdialog.hide();" />     <p:menuitem value="edit" update=":commondialog :centerpanel" actionlistener="#{somebean.editprivilege}"         onstart="statusdialog.show();" oncomplete="statusdialog.hide();" />     <p:menuitem value="delete" onstart="delprivilegeconfirmdialog.show();" /> </p:contextmenu> <p:contextmenu for="treeid" nodetype="type2">     <!-- other menu items --> </p:contextmenu> <p:scrollpanel mode="native" styleclass="scroll-panel">     <p:tree id="treeid" value="root" var="node" selectionmode="single"         selection="#{somebean.selectednode}" dynamic="true">         <p:ajax listener="#{somebean.onnodeselect}" update=":centerpanel" event="select" onstart="statusdialog.show();"             oncomplete="statusdialog.hide();" />         <p:treenode id="someid" type="type1">             <h:outputtext value="#{node}" id="lblnode" />         </p:treenode>         <p:treenode id="someid" type="type2">             <h:outputtext value="#{node}" id="lblnode" />         </p:treenode>     </p:tree> </p:scrollpanel> 

just keep in mind need set node type nodes generated model:

treenode x = new defaulttreenode("type1", data, parent); 

Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -