Envoyé par : alien7
Date : 20/05/2007 14:41
Bonjour, je cherche à faire un explorateur de dossier avec un tree, j'ai déjà commencé mais ce n'est pas parait, j'ai qu'un seul niveau pour chaque dossier et je n'arrive pas à les rangés par ordre alphabétique.
Je cherche donc toutes infos, pistes pour m'aider. Merci
Envoyé par : Paul Rouget
Date : 20/05/2007 21:19
http://xulfr.org/wiki/Reference/Rdf/File(..)
tu utilises ça ?
Envoyé par : alien7
Date : 24/05/2007 14:54
Non je le faisais manuellement :
function listFolder(dir) { var listfolder = []; files.initWithPath(dir); var entries = files.directoryEntries; while(entries.hasMoreElements()) { var entry = entries.getNext(); entry.QueryInterface(Components.interfaces.nsIFile); if (entry.isDirectory()) { listfolder.push(entry); } } return listfolder; }
Je veins d'essayer avec le lien donné mais y'a un problème ce n'est pas trier par ordre alphabétique, y'a une solution à ca ?
Merci
Envoyé par : thefab
Date : 24/05/2007 15:32
Comme il s'agit d'une source RDF tu tries ça de la même manière que toute autre source RDF, voir tri des résultats.
Envoyé par : alien7
Date : 24/05/2007 16:04
Ah ok aussi simple que ca, d'accord merci bcp :)
Envoyé par : alien7
Date : 04/06/2007 13:10
Est ce qu'il y'a un moyen d'afficher que les dossier ? Là j'ai aussi les fichiers qui apparraissent dna mon tree
Merci
Envoyé par : thefab
Date : 04/06/2007 15:38
Il suffit d'ajouter une règle dans les conditions du template pour filtrer uniquement les éléments qui sont des dossiers (IsDirectory = true)
<conditions> <content uri="?folders"/> <member container="?folders" child="?folder"/> <triple subject="?folder" predicate="http://home.netscape.com/NC-rdf#IsDirectory" object="true"/> </conditions>
Envoyé par : alien7
Date : 04/06/2007 23:49
thefab -> Je place ca entre la balise template ? Je demande ca parce que je devrais coder ca en javascript et non dans le fichier xul. Je dois le faire dynamiquement.
D'ailleurs y'a t il un moyen d'alleger ca, de l'ecrire autrement :
//creation du tree var tree = document.createElement("tree"); tree.setAttribute("id", nameF); tree.setAttribute("name", "folder"); tree.setAttribute("hidecolumnpicker", "true"); tree.setAttribute("flex","1"); tree.setAttribute("datasources", "rdf:files"); tree.setAttribute("ref", "file://"+pathF); tree.setAttribute("flags","dont-test-empty");
var treecols = document.createElement("treecols");
var treecol = document.createElement("treecol"); treecol.setAttribute("id","filename"); treecol.setAttribute("primary","true"); treecol.setAttribute("flex","1"); treecol.setAttribute("hideheader","true"); treecol.setAttribute("sort","?filename"); treecols.appendChild(treecol); ..............
comme un document.weiteln() ?
En fait j'aimerais crée plusieurs tree dynamiquement.
Merci
Envoyé par : thefab
Date : 05/06/2007 01:57
Je place ca entre la balise template ?
Oui
<tree datasources="rdf:files" ref="file:///C|/" flags="dont-test-empty" flex="1"> <treecols> <treecol id="filename-treecol" label="Filename" primary="true" flex="1"/> </treecols> <template> <rule> <conditions> <content uri="?folders"/> <member container="?folders" child="?folder"/> <triple subject="?folder" predicate="http://home.netscape.com/NC-rdf#Name" object="?name"/> <triple subject="?folder" predicate="http://home.netscape.com/NC-rdf#IsDirectory" object="true"/> </conditions> <action> <treechildren> <treeitem uri="?folder"> <treerow> <treecell label="?name"/> </treerow> </treeitem> </treechildren> </action> </rule> </template> </tree>
Edit: Tu peux utiliser ref="NC:FilesRoot" pour avoir tous les lecteurs
Envoyé par : alien7
Date : 05/06/2007 12:10
Ca marche, seul souci je n'ai plus ça qui marche :
treecell.setAttribute("src","rdf:http://home.netscape.com/NC-rdf#Icon"); treecell.setAttribute("value","rdf:http://home.netscape.com/NC-rdf#URL");
Envoyé par : Christophe Charron
Date : 05/06/2007 14:03
Bonjour,
tout en base de la page http://xulfr.org/wiki/Reference/Rdf/FilesRoot il est indiqué
... l ne faut pas utiliser « src="rdf:http://home.netscape.com/NC-rdf#Icon" » dans un élément <treecell> ...
Vos problèmes viennent peut-être de là ?
Envoyé par : alien7
Date : 05/06/2007 14:46
Non non je l'ai déjà lu ça, d'après la page du bug, il a été corrigé cf : http://bugzilla.mozilla.org/show_bug.cgi(..)
Status: RESOLVED FIXED
Il faut peut etre mettre à jour le wiki : http://xulfr.org/wiki/Reference/Rdf/File(..)
De plus chez moi ca a marché aucun bug, j'ai bien réussi a afficher les icon de ma ubuntu, mais lorsque j'ai mis les conditions, ca ne marche plus.
Envoyé par : thefab
Date : 05/06/2007 15:25
Je crois qu'il faut ajouter listcell-iconic pour avoir des icônes dans une cellule.
Envoyé par : alien7
Date : 05/06/2007 15:39
Les icones, ce n'est pas le plus important. Ce qui m'embete là ce que je n'arrive pas à mettre une valeur à une cellule, là j'aimerais mettre le chemin du dossier en valeur à la cellule, pou rensuite le récuperer.
treecell.setAttribute("value","rdf:http://home.netscape.com/NC-rdf#URL");
me retourne rien
Envoyé par : thefab
Date : 05/06/2007 15:56
Si tu as suivi la méthode que je t'ai indiqué il te suffit de rajouter un triple:
<triple subject="?folder" predicate="http://home.netscape.com/NC-rdf#URL" object="?url"/>
Que tu peux ensuite utiliser simplement:
<treecell label="?name" value="?url"/>
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.