public void saveAssociatedUsers(ActionEvent e) {
   User selectedUser = (User) dataTable.getRowData();
   selectedUser = userDAO.get(selectedUser).get(0);
   UserRole entity;
   Collection<UserRole> matchedRoles = new ArrayList<UserRole>();
   for (String roleGroup : getAssociatedRoleGroupRoleNames()) {
     entity = new UserRole();
     String roleName = roleGroup.split("\\|")[0];
     String groupName = roleGroup.split("\\|")[1];
     entity.setRole(roleName);
     entity.setRoleGroup(groupName);
     matchedRoles.add(roleDAO.get(entity).get(0));
   }
   selectedUser.setUserRoles(matchedRoles);
   userDAO.update(selectedUser);
   // Toggle edit mode and reload data.
   actionSave();
   usersAssociatedRoleGroupEditable = false;
   if (!e.getPhaseId().equals(PhaseId.INVOKE_APPLICATION)) {
     e.setPhaseId(PhaseId.INVOKE_APPLICATION);
     e.queue();
     return;
   }
 }