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

Flex Discussion :

mx:Tree, cacher les noeuds terminaux


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Développeur multimédia
    Inscrit en
    Mai 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Mai 2010
    Messages : 9
    Par défaut mx:Tree, cacher les noeuds terminaux
    Bonjour à tous,

    J'ai un petit problème à résoudre, et je ne trouve pas de solution
    J'ai importé dans mon mon code un fichier XML dont voilà un extrait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <cursus>
    	<formation id="0001" num="1" title="Formation Cisco CCNA">
    		<module num="1" title="Présentation générale des réseaux" >
    			<partie num="1" title="Introduction" >
    				<chapitre num="1" title="Chapitre Exemple 1" >
    					<media num="1" template="1">
    						<title label="Présentation texte" />
    						<commentaire label="Ceci est le commentaire correspondant au 1er media ! Template n°1, 1 zone de texte" />
    						<texte label="[texte media 1]" />
    					</media>
    ...
    Je l'affiche ensuite dans un Tree, pas de problème, mais je cherche à ce que les noeuds terminaux (donc : title, commentaire, texte) ne s'affichent jamais.

    pour remplir l'arbre : "tree.labelfunction = mySommaireLabelFunction":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    private function mySommaireLabelFunction(node:Object):String
    { 
    	switch(node.localName().toString())
    	{
    		case "formation":
    			tree.expandItem(node, true);
    			return "Formation " + Number(node.childIndex() + 1 ).toString() + " : " + node.@title;
    			break;
    		case "module" :
    			tree.expandItem(node, true);
    			return "Module " + Number(node.childIndex() + 1 ).toString() + " : " + node.@title;
    			break;
    		case "partie" :
    			tree.expandItem(node, true);
    			return "Partie " + Number(node.childIndex() + 1 ).toString() + " : " + node.@title;
    			break;
    		case "chapitre":
    			return "Chapitre " + Number(node.childIndex() + 1 ).toString() + " : " + node.@title;
    			break;
    		case "media" :
    			return (node.child('title')).@label;
    			break;
    	}
    	return node.localName().toString();
    }
    Quelqu'un pourrait-il m'aider ?

    Merci beaucoup !

  2. #2
    Membre éprouvé Avatar de greatalain
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2007
    Messages : 124
    Par défaut
    Fait ton itemRenderer qui hérite treeItemRenderer, override UpdateDisplayList(...) et si les enfants du node sont des feuilles ( donc n'on pas d'enfant ), tu mets le disclosureIcon.visible à false

  3. #3
    Membre éprouvé Avatar de greatalain
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2007
    Messages : 124
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
    	super.updateDisplayList(unscaledWidth, unscaledHeight );
    	if ( disclosureIcon ) {
    		if (data && XML(data).children().lenght > 0 && ... )
    			disclosureIcon.visible = false;

  4. #4
    Membre habitué
    Profil pro
    Développeur multimédia
    Inscrit en
    Mai 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Mai 2010
    Messages : 9
    Par défaut
    Merci beaucoup pour votre réponse.
    J'essaye immédiatement de faire cela !

    edit : cette solution marche parfaitement !
    voici le code que j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
    			super.updateDisplayList(unscaledWidth, unscaledHeight );
    			if (disclosureIcon) {
    				if (XML(data).localName().toString()=="media")
    					disclosureIcon.visible = false;
    			}
    		}
    Merci beaucoup pour votre aide et votre temps !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/08/2012, 12h18
  2. [Dojo] dijit.tree étendre tous les noeuds
    Par Ho(c)ine. dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 17/06/2011, 14h02
  3. [JTree] Suppresion de tous les noeuds sauf la racine
    Par nicolaskarp dans le forum Composants
    Réponses: 3
    Dernier message: 29/04/2005, 12h53
  4. Réponses: 3
    Dernier message: 27/07/2004, 12h01
  5. XSL ne parvient pas à lire les noeuds XML ??
    Par yahn dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 27/06/2004, 19h29

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