Obtenir widgetVar avec JavaScript ou cochez/décochez toutes les autres cases PrimeFaces

J'ai plusieurs PrimeFaces cases à cocher sur une page. Si vous cliquez sur la case à cocher maître, toutes les autres options doivent être activées ou désactivées. Avec HTML cases à cocher ce serait une question facile. Mais parce que PrimeFaces ne montre pas de la case elle-même, mais une image, le code JavaScript suivant ne fonctionne pas:

<script type="text/javascript">
$(document).ready(function() {
    var masterCheckbox = $(".ui-chkbox.master :checkbox");
    var slaveCheckboxes = $(".ui-chkbox:not(.master) :checkbox");

    updateMaster();
    masterCheckbox.change(updateSlaves);
    slaveCheckboxes.change(updateMaster);

    function updateMaster() {
        var allSlavesChecked = true;
        slaveCheckboxes.each(function() {
            if (!$(this).is(':checked')) {
                allSlavesChecked = false;
            }
        });
        masterCheckbox.attr("checked", allSlavesChecked);
    }

    function updateSlaves() {
        var masterChecked = masterCheckbox.is(":checked");
        slaveCheckboxes.each(function() {
            $(this).attr("checked", masterChecked);
        });
    }
});
</script>

Je sais que je pourrais utiliser le PrimeFaces widgetVar pour basculer les cases à cocher, mais je ne sais pas comment pour obtenir le PrimeFaces widget objets avec JavaScript. Je pense que RichFaces ajoute la propriété d'un composant de l'élément du DOM, mais PrimeFaces ne le fait pas. Ne quelqu'un connais une solution pour ce problème?

OriginalL'auteur Joel Richard | 2012-07-11