Envoyé par : papy
Date : 10/08/2006 16:21
Bonjour,
ca fait plusieurs heures que je me tire les cheveux à essayer de faire fonctionner correctement la méthode hasNextSibling qui est responsable de l'affichage des traits pour lier les différents items, mais sans trop de résultats. Enfin je suis un peu difficile, ca fonctionne presque dans tout les cas.
J'ai fini par dumper tout ce qui passait par cette fonction pour voir si c'était mon code qui posait un probleme, mais apparement non, c'est juste que la fonction n'est pas apellée à l'endroit des traits manquant...
Je colle ici tout ce qui concerne ce problème parce que je dois avouer que la je sèche complètement, je ne vois plus quoi essayer.
Voila ma fonction hasNextSibling. this.infos est un tableau d'objet contenant des informations pour simplifier les traitements dans la vue hierarchique. La propriété nextSibling de ces objets indique le prochain frère de ce noeud, -1 si il n'en a pas :
TreeHierarchicalView.prototype.hasNextSibling = function(rowIdx, afterIdx) { try { dumpln('ligne '+rowIdx+' ('+this.infos[rowIdx].elt.getName()+') hasNextSibling('+afterIdx+') = '+(this.infos[rowIdx].nextSibling >= afterIdx)); if(this.infos[rowIdx].nextSibling >= afterIdx) return true; else return false; } catch(e) { dumpException(e); return false; } }
ma structure représentée en arbre (ce qui devrait s'afficher):
- calanque |+ Groupe MSF |- Mini PC | | test groupe 1 | | encore un test |- prolibre | | test groupe 1 | | reggie |...
ce qui s'affiche :
- calanque |+ Groupe MSF |- Mini PC | test groupe 1 | encore un test |- prolibre | | test groupe 1 | | reggie |...
et enfin la sortie du dump :
ligne 1 (Groupe MSF) hasNextSibling(1) = true ligne 2 (Mini PC) hasNextSibling(2) = true ligne 3 (test groupe 1) hasNextSibling(3) = true ligne 4 (encore un test) hasNextSibling(3) = false ligne 4 (encore un test) hasNextSibling(4) = false ligne 4 (encore un test) hasNextSibling(4) = false ligne 5 (prolibre) hasNextSibling(5) = false ligne 6 (test groupe 1) hasNextSibling(6) = true ligne 5 (prolibre) hasNextSibling(6) = false ligne 7 (reggie) hasNextSibling(7) = false ligne 5 (prolibre) hasNextSibling(7) = false ligne 9 (Servers) hasNextSibling(9) = true ligne 10 (caraibe) hasNextSibling(10) = false ligne 12 (test groupe 1) hasNextSibling(12) = true ligne 13 (encore un test) hasNextSibling(13) = false ligne 15 (test groupe 1) hasNextSibling(15) = true ligne 16 (reggie) hasNextSibling(16) = false
J'ai vérifier plusieurs fois et dans plusieurs cas le dump, les informations contenues dans le tableau this.infos sont correctes. Sur le dump on peut voir que la ligne d'indice 2 (Mini PC) a bien un frère, mais il ne demande pas pour la suite, et c'est ici que se trouve mon problème. Pour quelle raison est ce que gecko ne fait pas les appels suivant pour savoir si elle a d'autre frère. Pour les autres noeud ceci est fait, pas ici...
Une petite précision qui peut avoir son importance aussi, quand j'ouvre le groupe Groupe MSF, les traits apparaissent bien à cotè des fils de Mini PC, quand je le referme ca ne remarche plus.
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.