Envoyé par : lionel
Date : 15/12/2005 08:54
Bonjour, voici une contribution plutôt qu'une question. L'objectif étant de faire une recherche dans un Tree et d'afficher le resultat dans ce même tree.
En gros:
1-On parcours l'ensemble des sujets de la ressource RDF 2-Si on trouve une valeur correspondant à ce que l'on recherche, on met dans un tableau les valeurs 3-On reconstruit le Tree.
Donc voici le code qui marche chez moi:
function search(){ var listCoursName = new Array(); var listCoursId = new Array(); var searchString = String(document.getElementById("chp-search").value); if (searchString.length!=0){ var tree = document.getElementById('courstree'); var datasource = RDF.GetDataSource(tree.getAttribute('datasources')); // var resources = datasource.GetAllResources(); var nameRS = RDF.GetResource("http://moodle/rdf/courses#name"); var idRS = RDF.GetResource("http://moodle/rdf/courses#id"); var recherche = ""; searchString = searchString.toLowerCase(); // while (resources.hasMoreElements()) { var resource = resources.getNext(); resource.QueryInterface(Components.interfaces.nsIRDFResource); //on recherche que dans les sujets qui ne sont pas container if (!rdfContainerUtils.IsContainer(datasource, resource)){ //on recherche la valeur de #name var targetName = datasource.GetTarget(resource, nameRS, true); if (targetName instanceof Components.interfaces.nsIRDFLiteral){ recherche = targetName.Value.toLowerCase(); if (recherche.indexOf(searchString)>-1){ //on recherche la valeur de #id var targetId = datasource.GetTarget(resource, idRS, true); if (targetId instanceof Components.interfaces.nsIRDFLiteral){ //dump(targetid.Value + "\n"); listCoursName.push(targetName.Value); listCoursId.push(targetId.Value); } } } } } if (listCoursId){ buildCustomTree(listCoursId, listCoursName); } } } //construction du Tree après recherche function buildCustomTree(listCoursId, listCoursName){ // var treeView = { rowCount : listCoursId.length, getCellText : function(row,column){ if (column.id == "coursname") return listCoursName[row]; else return listCoursId[row]; }, setTree: function(treebox){ this.treebox = treebox; }, isContainer: function(row){ return false; }, isSeparator: function(row){ return false; }, isSorted: function(){ return false; }, getLevel: function(row){ return 0; }, getImageSrc: function(row,col){ return null; }, getRowProperties: function(row,props){}, getCellProperties: function(row,col,props){}, getColumnProperties: function(colid,col,props){} }; document.getElementById('courstree').view=treeView; }
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.