Envoyé par : mmai
Date : 06/11/2006 21:16
Bonjour,
J'essaie déséspérément d'utiliser la fonction getResourceAtIndex, mais j'obtiens invariablement l'erreur tree.view.getResourceAtIndex is not a function
En fait je n'arrive pas à obtenir l'interface nsIXULTreeBuilder pour laquelle est définie la fonction getResourceAtIndex. Merci pour votre aide.
Voici mon fichier xul :
<?xml version="1.0"?> <window orient="vertical" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml"> <script language="javascript"> function getSelectedItem(tree){ okTreeView = tree.view instanceof Components.interfaces.nsITreeView; alert('nsITreeView ok : '+okTreeView); if (okTreeView) { try { desc_item = tree.view.getResourceAtIndex(tree.currentIndex); alert('getResourceAtIndex ok pour nsITreeView'); } catch (err){ alert(err.message); } } okXULTreeBuilder = tree.view instanceof Components.interfaces.nsIXULTreeBuilder; alert('nsIXULTreeBuilder ok : '+okXULTreeBuilder); if (okXULTreeBuilder) { try { desc_item = tree.view.getResourceAtIndex(tree.currentIndex); alert('getResourceAtIndex ok pour nsIXULTreeBuilder'); } catch (err){ alert(err.message); } } } </script> <groupbox flex="1"> <tree onselect="getSelectedItem(this)" id="listeItems" flex="1" hidecolumnpicker="true" datasources="listeItems.rdf" ref="urn:exemple:tests"> <treecols> <treecol id="Name" label="Items" flex="1" primary="true" /> </treecols> <template> <rule> <treechildren> <treeitem uri="rdf:*" > <treerow> <treecell label="rdf:urn:exemple:rdf#nom" /> </treerow> </treeitem> </treechildren> </rule> </template> </tree> </groupbox> </window>
Et mon fichier RDF (listeItems.rdf):
<?xml version="1.0"?> <RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:exemple="urn:exemple:rdf#"> <RDF:Seq about="urn:exemple:tests"> <RDF:li RDF:resource="urn:exemple:chiffres" /> <RDF:li RDF:resource="urn:exemple:lettres" /> </RDF:Seq> <RDF:Description about="urn:exemple:chiffres"> <exemple:nom>Chiffres</exemple:nom> </RDF:Description> <RDF:Seq about="urn:exemple:chiffres"> <RDF:li> <RDF:Description about="urn:exemple:test:item1"> <exemple:nom>1</exemple:nom> </RDF:Description> </RDF:li> <RDF:li> <RDF:Description about="urn:exemple:test:item2"> <exemple:nom>2</exemple:nom> </RDF:Description> </RDF:li> </RDF:Seq> <RDF:Description about="urn:exemple:lettres"> <exemple:nom>Lettres</exemple:nom> </RDF:Description> <RDF:Seq about="urn:exemple:lettres"> <RDF:li> <RDF:Description about="urn:exemple:test:itema"> <exemple:nom>A</exemple:nom> </RDF:Description> </RDF:li> <RDF:li> <RDF:Description about="urn:exemple:test:itemb"> <exemple:nom>B</exemple:nom> </RDF:Description> </RDF:li> </RDF:Seq> </RDF:RDF>
Ce qui me donne comme résultat, quand je clique sur l'un des items :
nsITreeView ok : true
tree.view.getResourceAtIndex is not a function
nsIXULTreeBuilder ok : false
Envoyé par : thefab
Date : 07/11/2006 11:19
Sauf erreur getResourceAtIndex() est accessible uniquement depuis une application enregistrée dans le chrome. Si il s'agit d'une application Web regarde http://xulfr.org/wiki/ApplisWeb/ExempleP(..)
Envoyé par : mmai
Date : 07/11/2006 17:42
L'application est bien enregistrée dans le chrome. C'est une extension Firefox. J'ai tenté de rajouter l'option xpcnativewrappers=no
dans mon chrome.manifest mais ça ne change rien.
Envoyé par : mmai
Date : 07/11/2006 18:18
J'ai résolu mon problème : il faut ajouter flags="dont-build-content"
dans la balise <tree ...
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.