Forums : Template et RDF

Aller à la discussion :  Plus récente Plus ancienne

# [Resolu] Utilisation de getResourceAtIndex

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

# Re: utilisation de getResourceAtIndex

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(..)

# Re: utilisation de getResourceAtIndex

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.

# Re: utilisation de getResourceAtIndex

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.