Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# équivalent à getItemAtIndex pour menulist

Envoyé par : thierry

Date : 01/12/2006 03:21

bonjour,

je débute avec xul et j'ai un souci avec une menulist pour accèder à ces éléments. je précise aussi que je travail à partir du chrome.

je n'arrive pas à trouver de solutions via le dom car les menuitems sont générés via rdf, donc apparemment inexistants. du coup quelle est la logique à adopter avec xul pour manipuler des éléments générés par template ? Le tree semble avoir ce qu'il faut, mais les autres ?

je n'ai pas réussi non plus à trouver les bonnes méthodes/propriétés via l'inspecteur dom qui me permettraient de me ballader dans les menuitems, soit ça m'a échapper soit il y en a que pour les selections.

donc j'aimerais trouver un équivalent de la méthode getItemAtIndex() qui existe pour la liste simple, des méthodes pour connaitre le nombre d'éléments, mais surtout une logique global qui me permettrais de savoir où chercher pour les prochains blocages.

+

# Re: équivalent à getItemAtIndex pour menulist

Envoyé par : thierry

Date : 01/12/2006 16:41

re,

je devais être fatigué hier, les items du menulist sont accessibles via le dom si je passe par un objMenuListe.menupopup.getElementsByTagName('menuitem').

sinon j'ai vu ici que les menulist héritent du listBoxObject (via leurs propriétés).

comment faire pour y acceder ?

# Re: équivalent à getItemAtIndex pour menulist

Envoyé par : thierry

Date : 09/12/2006 11:48

re,

vu le nombre de réponses je vais essayé de mieux m'expliquer.

je cherche toujours à comprendre comment accéder à "listBoxObject" à partir d'un objet menulist, pas tellement pour le problème qui m'a fait ouvrir ce thread mais surtout pour comprendre comment interpréter la doc.

dans la partie propriété de la doc je vois que "listBoxObject" est listé dans "Inherited from XUL element". est ce que j'interprète mal la possibilité d'y accéder ?

si ce n'est pas possible, pourquoi est ce listé ?

si c'est possible comment faire pour y accéder (pour l'instant je n'ai que des erreurs du type interface non accessible ou maMenuList.listBoxObject n'a pas de méthode-propriété) ?

si je pose mal la question ou autres, ne pas hésiter à me le dire.

+

# Re: équivalent à getItemAtIndex pour menulist

Envoyé par : Raphael

Date : 09/12/2006 12:21

Je ne comprends pas trop... Personnellement, je ferais un :

objMenuListe.selectedIndex = tonindex;
var tavaleur = objMenuListe.selectedItem.getAttribute('value');

Tu veux bien récupérer la valeur ou un attribut de ton item dont tu connais l'index non ? A priori comme ça, ça devrait marcher je pense.

Ou du moins quelque chose dans le genre avec les fonctions disponibles ici : http://www.xulplanet.com/references/elem(..)

# Re: équivalent à getItemAtIndex pour menulist

Envoyé par : thierry

Date : 09/12/2006 13:15

merci de répondre

tu veux bien récupérer la valeur ou un attribut de ton item dont tu connais l'index non ?

non, mais je suis conscient d'avoir un peu mélanger les questions dans ce thread...

au départ je voulais rendre un element selected en connaissant sa value et je ne trouvais pas les bonnes méthodes-propriétés pour y parvenir à partir d'une menulist. ensuite j'y suis parvenu en passant par le dom.

en visualisant la doc j'ai vu que l'objet menulist héritait, via ses propriétés, d'un objet listBoxObject qui possède en natif des propriétés-méthodes plus abouties qu'une menulist pour naviguer dans les différents items.

donc bien que j'ai résolu mon problème initial je me demande maintenant pourquoi je n'arrive pas à accéder au listBoxObject à partir d'une menulist vu que la doc à l'air de dire que c'est possible (et c'est peut-être là mon erreur). je me dis que je risque de retomber un jour sur ce cas de figure en voyant dans la doc un objet x qui hérite d'un objet y et je pourrais pas accéder à l'objet y même s'il m'intéresse.

du coup c'est ce point que je ne comprend pas.

comme je débute avec xul j'essaie d'en comprendre la logique...

+

# Re: équivalent à getItemAtIndex pour menulist

Envoyé par : Raphael

Date : 09/12/2006 13:55

Ok, au temps pour moi... Là, je ne puis t'aider, étant moi-même débutant en XUL... ^^"

# Re: équivalent à getItemAtIndex pour menulist

Envoyé par : Paul Rouget

Date : 09/12/2006 16:24

listBoxObject n'est que la propriété boxObject sur lequel il te suffit de faire un queryInterface de nsIListBoxObject.

listBoxObject n'est directement accessible que via une listbox.

En soit, je ne comprends pas pourquoi tu as besoin d'un listboxobject.

# Re: équivalent à getItemAtIndex pour menulist

Envoyé par : thierry

Date : 09/12/2006 18:04

listBoxObject n'est que la propriété boxObject sur lequel il te suffit de faire un queryInterface de nsIListBoxObject.

voilà ce que je fais :

var objList=objMenuList.boxObject;
objList.QueryInterface(Components.interfaces.nsIListBoxObject);

et j'ai droit à une erreur NS_NOINTERFACE (ff 1.5 et 2.0).

En soit, je ne comprends pas pourquoi tu as besoin d'un listboxobject.

au départ pour avoir des méthodes comme getItemAtIndex() et getRowCount(). maintenant par curiosité et pour pouvoir me resservir de la façon de procéder ^^

ps : quand tu dis "directement accessible" je comprend via objList.listboxobject sans avoir à passer par un queryInterface.

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.