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 :

Référence Tree dans un ItemRenderer


Sujet :

Flex

  1. #1
    Membre chevronné Avatar de supernova
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 447
    Par défaut Référence Tree dans un ItemRenderer
    Bonsoir le forum,

    Ben.. voila mon soucis..

    Mon application contient entre autre : deux composants, un Tree et un AdvancedDataGrid. Tree contient une hierarchie de données que je souhaiterai filtrer en fixant une restriction dans une des lignes de données de mon AdvancedDataGrid. Pour positionnez une zone de saisie j'ai mis en place un itemrenderer sur une des colonnes de la DataGrid.

    Jusque là tout va bien.. mais comment faire une référence de mon Tree dans le code de mon ItemRenderer pour mettre à jour la hierarchie de données affichée. J'espère avoir été clair.

    Je sais l'efficacité de la communauté, je me permet donc de faire appel à vous..

  2. #2
    Membre expérimenté Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Par défaut
    Bonjour, ton Tree et dans ton DataGrid, ou ...., j'avoue je ne comprends pas ce que tu veux faire, un peu de code ça serait simple et efficace

    Bon courage

    samy

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Salut,

    Je n'ai pas vraiment compris ton problème de renderer. Mais as tu regardé la doc sur l'AdvancedDataGrid ? Il fournit pas mal d'informations sur des renderers pour personnaliser ta datagrid, il doit il y en avoir une pour configurer ton composant comme tu le souhaites. Pourrais tu nous donner un exemple de ce que tu as fait pour l'instant ?

  4. #4
    Membre chevronné Avatar de supernova
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 447
    Par défaut
    Bonsoir Samy2525 et merci pour ta réponse

    Le tree et l'advanceddatagrid sont dans une même view mais dans des Canvas séparés, je n'ai donc pas de référence du Tree dans mon composant qui gère le renderer de l'avanceddatagrid.

    la vue s'appelle console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <mx:Canvas id ="cv1">
    <mx:VBox id="box1">
    <v:console width="1000" height="600"/>
    </mx:VBox>
    </mx:Canvas>
    le tree :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Canvas 
    xmlns:mx="http://www.adobe.com/2006/mxml"
    width="400"
    height="300"
    >
    <mx:Tree id="tree"/>
    </mx:Canvas>
    AdvancedDataGrid avec sa référence sur l'itemRenderer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     <mx:AdvancedDataGrid id="filtreProprietes"
    width="650"
    height="430"
    dataProvider="{__model.listeLibelleTable}" 
    >
    <mx:columns>
    <mx:AdvancedDataGridColumn dataField="libelle"/>
    <mx:AdvancedDataGridColumn dataField="filtrage" itemRenderer="FiltreRenderer"/>
    </mx:columns>
    </mx:AdvancedDataGrid>
    l'itemrenderer FiltreRenderer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <mx:TextInput id="text_filtre"/>
    <mx:Image source="{filtreIcon}" click="filtre(text_filtre.text)" />
    C'est dans le code de la fonction filtre que je restreins le tree avec la valeur saisie..

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Il te faut donc remonter un évènement vers le composant parent. Je crois qu'il y a des sujets sur le forum concernant cela.

  6. #6
    Membre chevronné Avatar de supernova
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 447
    Par défaut
    Bonsoir Ellene et merci pour tes réponses,

    Sans vouloir abuser pourrais tu me donner un lien vers un sujet similaire..

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    J'ai cherché rapidement je crois que celui la correspond à ton problème :
    http://www.developpez.net/forums/d79...on-dispatcher/

  8. #8
    Membre expérimenté Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Par défaut
    Bonjour la réponse d'Ellene est super il faut remonter un évent vers le parent ou bien ce que je fais d'habitude, j'utilise un système de Notification, je t'explique

    je créer un singleton qui hérite de EventDispatcher comme ça il peut dispatcher des évents, comme c'est un singleton tu as un et je dis bien une seule référence dans toute ton applications maintenant la prochaine étape et d'avoir une instance de ce singleton dans ta classe d'itemRendrer et dans ta classe Tree (au passage tu dois creer ta propre classe qui hérite de Tree), bien sure ici aussi tu fais la meme chose (instance de singleton) ce qui reste à faire c'est de dipatcher un évent depuis l'itemRenderer et de le catcher dans ta Tree en Gros :
    un peu de code mieux que de gros discrours mais c'est juste pour t'eclairssir ce que je fais :

    ça c'est le singleton

    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
    public class Notifieur extends EventDispatcher
    	{
     
    		private static var instance : Notifieur  
     
    		public function Notifieur()
    		{
    			super();
    		}
     
    		 /** 
              * Singleton EventHandler 
              */  
             public static function getInstance() : Notifieur {  
                 if ( instance == null ) instance = new Notifieur( );  
                 return instance as Notifieur;  
             }  
     
    	}
    dans ton itemRenderer tu rajoute de truc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /** notifieur **/
    private var notifieur : Notifieur = Notifieur.getInstance();

    et dans ta fonction que tu veux qu'elle dispatche l'evenement tu fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var event : TonEvent = new TonEvent(TonEvent.FILTER_DATA)			notifieur.dispatchEvent(event);
    tel que TonEvent : c'est une class qui herite d'Event dans la quelle tu définit la constante FILTER_DATA et des variable que tu veux transporter

    maintenant coté Tree :

    tu cree une classe qui herite de Tree

    du type

    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
    public class MyTree extends Tree
    {
    /** notifieur **/
    private var notifieur : Notifieur = Notifieur.getInstance();
     
    public MyTree()
    {
      // cette ligne t'assure la capture de l'evenment dispatcher par ton itemRenderer
      notifieur.addEventListner(TonEvent.FILTER_DATA, taFunction)
    }
     
    private function taFunction(event : TonEvent):void
    {
     
      // ton traitement 
    }
    }


    voila j'espere que ça va t'aider (le principe que j'ai décrit est poussé super loin avec le frameWork cairgornm)

    Bon courage

    Samy

  9. #9
    Membre chevronné Avatar de supernova
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 447
    Par défaut


    Merci Samy2525, ta solution est super ingénieuse, en effet cela fonctionne correctement..

    Merci à Ellene également pour son aide.

    Cela prouve encore une fois que la communauté Flex est réactive.

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

Discussions similaires

  1. [W2K] Références croisées dans l'unité d'allocation
    Par carjo dans le forum Windows XP
    Réponses: 2
    Dernier message: 12/06/2007, 17h53
  2. Faire un tree dans delphi
    Par Morfus dans le forum Delphi
    Réponses: 16
    Dernier message: 02/04/2007, 16h31
  3. Tri Références communes dans 2 colonnes differentes
    Par crouz dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2007, 12h06
  4. [liste] référence unique dans une liste
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 3
    Dernier message: 29/03/2005, 09h57
  5. problème de références _ptr dans une map STL
    Par Mr_Tyu dans le forum CORBA
    Réponses: 1
    Dernier message: 10/08/2004, 10h39

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