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.