JSF/PrimeFaces - Approaches for creating reusable data table dialogs
===

I am using JSF 2.0 with Primefaces. I have a page with a data table containing a list of users in the system. Each user can have a collection of roles, so i would like to have a button to select a bunch of roles. I wanted this to be an ajax selector and reusable from other pages, so this is how i have laid it out. 

**User List page**
    
    <h:form prependId="false">
    <p:dataTable id="userList" var="user" value="#{userBean.users}">
        <p:column id="modelHeader">
            <f:facet name="header">
                    Name
            </f:facet>
            <h:outputText value="#{user.name}" />
        </p:column>

        <p:column>
            <f:facet name="header">
                    Select Roles
            </f:facet>
           <p:commandButton id="selectButton" oncomplete="roleDialog.show()" icon="ui-icon-search" title="Select Roles" />               
        </p:column>
       
    </p:dataTable>
    </h:form>

**Dialog defined inside user list page, but the contents will be moved to an include to promote reusability**

    <p:dialog header="Roles" widgetVar="roleDialog" resizable="true" id="roleDialog" modal="true">

		<h:form prependId="false">
		<h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">

        <p:dataTable id="roleList" var="user" value="#{roleBean.roles}">
        <p:column id="modelHeader">
            <f:facet name="header">
                    Name
            </f:facet>
            <h:outputText value="#{role.name}" />
        </p:column>

        
        <p:commandButton id="selectButton" actionListener="#{roleBean.selectRoles}" title="Select Roles" />               
       

        </h:panelGrid>
		</h:form>
    </p:dialog>

My question is, I am not sure how to achieve the following.

 - I would like to pass arguments to the role selector as criteria before rendering the content in the dialog.I can do this via <f:setPropertyActionListener.. correct?
 - After the role is selected, i would like to pass the selected id back to the user list page. I can do this via addCallbackParam, correct?
 - Then i would like to pass that value back into the userList bean to an action listener to associate this role(s) to the user

What is the best pattern to achieve this workflow in JSF. I do not want to duplicate my role selector in each page as i would like to re-use that. 
Thank you for your patience in reading through this long post. I appreciate your response and 
suggestions. 