componentControl inside contextMenu
sambolino Aug 29, 2008 12:05 PMgreetings!
i have the following code which is working properly except for the part which should open modal panel
<rich:panel> <f:facet name="header"> <h:outputText value="#{messages['ManageClassifications']}" /> </f:facet> <rich:modalPanel id="mpClassification" minHeight="300" minWidth="650" zindex="2000" autosized="true"> <f:facet name="header"> <h:outputText value="#{messages['NewClassification']}" /> </f:facet> <f:facet name="controls"> <h:graphicImage value="img/16x16/actions/cancel.png" style="cursor:pointer" onclick="Richfaces.hideModalPanel('mpClassification')" /> </f:facet> </rich:modalPanel> <rich:contextMenu attached="false" id="menu"> <rich:menuItem action="#{classificationLinker.createNode}" onselect="javascript:Richfaces.showModalPanel('mpClassification',{width:650, top:200})"> <f:param value="{clasid}" name="siblingId" /> <b>option1</b> </rich:menuItem> <rich:menuItem action="#{classificationLinker.createNode}" onclick="javascript:Richfaces.showModalPanel('mpClassification',{width:650, top:200})"> <f:param value="{clasid}" name="siblingId" /> <b>option2</b> </rich:menuItem> <rich:menuItem action="#{classificationLinker.createLeaf}"> <f:param value="{clasid}" name="parentId" /> <b>option3</b> <rich:componentControl disableDefault="true" event="onselect" for="mpClassification" operation="show" /> </rich:menuItem> <rich:menuItem action="#{classificationLinker.createLeaf}"> <f:param value="{clasid}" name="parentId" /> <b>option4</b> <rich:componentControl disableDefault="true" event="onclick" for="mpClassification" operation="show" /> </rich:menuItem> </rich:contextMenu> <rich:tree id="treeClassification" switchType="ajax" icon="img/CasePics/book_yellow.png" iconLeaf="img/CasePics/book_yellow.png" preserveModel="true"> <rich:recursiveTreeNodesAdaptor included="true" roots="#{caseService.classificationRootNodes}" nodes="#{classification.childClassifications}" var="classification"> <rich:treeNode>#{classification.name} <rich:componentControl event="oncontextmenu" for="menu" operation="show"> <f:param value="#{classification.id}" name="clasid" /> </rich:componentControl> </rich:treeNode> </rich:recursiveTreeNodesAdaptor> </rich:tree> </rich:panel>
essentially, user should be shown a tree and then on right-click get a context menu, select an option which should first trigger an action and then show modal panel. i put four options to illustrate the behavior:
option1 - shows modal panel for less than a second, then triggers the action and closes modal panel
option2 - triggers action only
option3 - does nothing!
option4 - triggers action only
and my second question is: how do i trigger action first and then show modal panel, in other words i'd like to achieve same behavior as with pageflow "trigger action, and then from action redirect etc."
thanks a lot