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.