IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Tree : affichage et alimentation à partir d'un jsonStore


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 122
    Points : 82
    Points
    82
    Par défaut Tree : affichage et alimentation à partir d'un jsonStore
    Salut,

    Après les Datagrid, je suis passé au dijit.Tree : je commence à être un peu plus productif que les premiers jours, mais il y a encore beaucoup de chemin à faire .
    Le contexte :
    Dans 2 sections <div> consécutives d'une page, j'affiche soit un Datagrid dans la 1-ère soit un Tree dans la seconde : ( une seule section est affichée à la fois, ce qui fait qu'il y a affichage au même emplacement dans la page )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        <!-- Affichage des visuels de l'application -->
        <div dojoType="dojox.grid.DataGrid" class="nihilo" id="listeVisuelsSel" style="width: 1000px; height: 260px;" >
        </div>
        <!-- Affichage du répertoire des visuels -->
        <div dojoType="dijit.Tree" class="nihilo" id="repertoireVisuels" style="width: 600px; height: 260px;" >
        </div>
    la commutation entre l'un ou l'autre affichage se fait avec une action de l'utilisateur du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function commute(){
        if (grid == 1) { // le Datagrid est affiché, on le masque et on affiche le Tree
           	dojo.style(dojo.byId('listeVisuelsSel'), {display: 'none', visibility: 'hidden'});
        	dojo.style(dojo.byId('repertoireVisuels'), {display: 'block', visibility: 'visible'});
            grid = 0;
        }
        else { // le Tree est affiché, on le masque et on affiche le Datagrid
           	dojo.style(dojo.byId('repertoireVisuels'), {display: 'none', visibility: 'hidden'});
        	dojo.style(dojo.byId('listeVisuelsSel'), {display: 'block', visibility: 'visible'});
            grid = 1;
        }
    }
    et le code pour le Tree :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function arborescence() {
        var arbo = new dijit.Tree({
            store: jsonRep,
            labelAttr: 'name',
            label: 'Répertoire des visuels',
            query: {},
            autoWidth: true,
            rowSelector: '20px'
        }, document.createElement('div'));
        dojo.byId("repertoireVisuels").appendChild(arbo.domNode);
    }
    1-ère question : affichage du Tree :
    Si mon Datagrid est borné en hauteur ( apparition d'un ascenseur si le nbre de lignes est important ) par la propriété style="width: 1000px; height: 260px;" , il n'en n'est pas de même pour le Tree qui affiche tous les éléments en débordant sur d'autres sections de la page? Je n'ai pas vu d'élément/propriété dans l'API Tree qui me permette de résoudre ce pb.

    2-ème question : alimentation du Tree :
    Le Tree est destiné à afficher une arborescence de fichiers ( pour l'instant je l'alimente à partir d'un jsonStore statique ) qui vont avoir 2 origines : une arbo en provenance du serveur ( là, c'est du java, à moi de me débrouiller .... ) et une arbo à partir du poste client ( l'admin de l'appli ). Y a t'il des fonctions Dojo ou javascript permettant de générer le jsonStore correspondant en lui fournissant seulement la racine de l'arborescence?

    question annexe : référence sur un objet Dojo ( hors sujet ) : Ben, pour faciliter les recherches des utilisateurs du forum, on ne va pas tout mélanger, donc je lance un autre post.

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    1-ère question : affichage du Tree :
    Si mon Datagrid est borné en hauteur ( apparition d'un ascenseur si le nbre de lignes est important ) par la propriété style="width: 1000px; height: 260px;" , il n'en n'est pas de même pour le Tree qui affiche tous les éléments en débordant sur d'autres sections de la page? Je n'ai pas vu d'élément/propriété dans l'API Tree qui me permette de résoudre ce pb.
    Mets ton Tree dans un ContentPane.

    2-ème question : alimentation du Tree :
    (...) Y a t'il des fonctions Dojo ou javascript permettant de générer le jsonStore correspondant en lui fournissant seulement la racine de l'arborescence?
    Non ... et c'est bien dommage. Mais pour info, quand tu modifies le tree (copier-coller d'élément, insertion, suppression, ...) c'est le store associé qui est modifié, et le tree n'est que la représentation de ce nouvel état. Donc ton problème se reformule ainsi: "Y a t'il une fonction Dojo permettant de générer la structure JSON relative à un Store existant ?" Et la réponse est toujours non... et c'est toujours autant dommage. Mais cela me donne une idée...

    ERE

Discussions similaires

  1. Affichage menubar a partir d'un bouton
    Par fripon dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 21/11/2007, 18h33
  2. Réponses: 5
    Dernier message: 08/08/2007, 16h44
  3. Réponses: 16
    Dernier message: 05/07/2007, 10h14
  4. Réponses: 6
    Dernier message: 09/02/2007, 17h24
  5. Affichage de rencontre à partir d'une base
    Par leloup84 dans le forum Requêtes
    Réponses: 7
    Dernier message: 30/01/2006, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo