Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

Aller à la page :  1 2

# [Résolu] Explorateur de dossier en tree

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

# Re: Explorateur de dossier en tree

Envoyé par : Paul Rouget

Date : 20/05/2007 21:19

# Re: Explorateur de dossier en tree

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

# Re: Explorateur de dossier en tree

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.

# Re: Explorateur de dossier en tree

Envoyé par : alien7

Date : 24/05/2007 16:04

Ah ok aussi simple que ca, d'accord merci bcp :)

# Re: Explorateur de dossier en tree

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

# Re: Explorateur de dossier en tree

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>

# Re: Explorateur de dossier en tree

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

# Re: Explorateur de dossier en tree

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

# Re: Explorateur de dossier en tree

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");	

# Re: Explorateur de dossier en tree

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à ?

# Re: Explorateur de dossier en tree

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.

# Re: Explorateur de dossier en tree

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.

# Re: Explorateur de dossier en tree

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

# Re: Explorateur de dossier en tree

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"/>

Aller à la page :  1 2

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.