Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Problème avec selectedIndex

Envoyé par : Christophe Charron

Date : 11/12/2006 18:38

Bonsoir, j'ai un problème "navrant" que j'ai beau tourner dans plusieurs sens et que je n'arrive pas à solutionner. Au départ, la demande paraît simple : sélectionner une ligne particuliere parmi les menuitems d'une menu popup !! J'y arrive, mais uniquement en cliquant sur un bouton. Les mêmes fonctions, appelées consécutivement au changement du datasource ne fonctionnent pas !! Je tourne carrément fou mais peut-être est-ce un bug ?

Je fais mes essais sur WXP SP2 FF2.0 et l'on peut voir et récupérer la fenêtre et le fichier rdf ici :

D'avance, merci pour vos lumières

# Re: Problème avec selectedIndex

Envoyé par : thierry

Date : 12/12/2006 00:18

salut,

à mon sens le problème vient du fait que tu ne laisses pas à xul le temps de faire sa cuisine. peut-être que tu souhaites manipuler une liste qui n'a pas encore été générer.

en remplaçant :

pf_alim_01();pf_sel_ligne(1);alert(pf_recup_01());

par :

pf_alim_01();alert('aspet');pf_sel_ligne(1);alert(pf_recup_01());

... ça marche !

il doit surement y avoir un moyen de savoir lorsque la liste est prête (si c'est bien ça le problème), mais je ne peux pas t'en dire plus...

# Re: Problème avec selectedIndex

Envoyé par : Christophe Charron

Date : 12/12/2006 08:03

Bonjour et merci, Arghh, j'avais essayé de temporiser avec un alert et cela ne fonctionnait pas ... mais en fait je viens de refaire l'essai et cela fonctionne bien !!! Je ne comprends toujours comment fonctionne le cache de FF pour javascript ni celui du serveur pour xml et php ... Bref ca marche, j'ai donc un peu réorganisé les procédures en incluant un

setTimeout

et cela fonctionne. Mais comment fixer de manière efficiente la durée du timeout et faut-il systématiquement le supprimer via

clearTimeout

? Et en fait , je préférerais avoir un évènement qui me dise que la liste est totalement remplie. La nouvelle mouture du code est ici

# Re: Problème avec selectedIndex

Envoyé par : laurentj

Date : 12/12/2006 13:00

y a rien à comprendre au niveau du cache..

Gecko charge ta ressource RDF, la met dans un cache, et est donc disponible de suite au rechargement de la page.

Pour être informer du chargement d'un rdf, il faut utiliser un listener sur nsIRDFXMLSinkObserver sur la datasource distante (qui implemente nsIRDFRemoteDataSource et nsIRDFXMLSink). Par contre, pas sûr que cela soit utilisable en remote xul.

# Re: Problème avec selectedIndex

Envoyé par : Eric

Date : 13/12/2006 13:08

La solution ne serait-elle pas d'attendre que le template soit reconstruit en ajoutant un listener sur le builder

# Re: Problème avec selectedIndex

Envoyé par : Christophe Charron

Date : 13/12/2006 15:41

Bonjour, oui je pense que c'est la bonne piste à suivre, mais cela dépasse pour l'instant mes compétences.

# Re: [Résolu] Problème avec selectedIndex

Envoyé par : Eric

Date : 26/12/2006 11:35

Voici un exemple :

var tree = document.getElementById("myTree");
var lstn = {
    willRebuild : function(event){onWillRebuild(event);},
    didRebuild  : function(event){onDidRebuild(event);}
};
tree.builder.addListener(lstn);

et les fonctions :

function onDidRebuild(aEvnt){	
    alert("did rebulid");
}
function onWillRebuild(aEvnt){	
    alert("will rebulid");
}

enfin, la construction du template

 var tree = document.getElementById("myTree");
 tree.setAttribute("ref", "myRef");
 tree.database.AddDataSource(myDatasource);
 //éventuellement
 //tree.builder.rebuild();

les fonctions onWillRebuild et onDidRebuild vont être appelées par la builder avant et après reconstruction du template

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.