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 :

Communication entre application et vue/viewstack


Sujet :

Flex

  1. #1
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut Communication entre application et vue/viewstack
    Bonjour,

    J'ai une application complète qui centralise tous mes composants utiles, soit formulaire, datagrid ou List, et qui fonctionne sans probleme.

    Fichier principal de l'application : V1.mxml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <mx:HTTPService id="userRequest".....
    
    <mx:DataGrid id="dgUserRequest" dataProvider="{userRequest...........}">
    //....etc
    Pour alléger l'application de base et pour en faciliter la navigation, je l'ai complété d'un viewstack :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <mx:LinkBar dataProvider="V1Content"/>
    <mx:ViewStack id="V1Content" resizeToContent="true">
    	<views:vue_1 id="vue1" label="VUE 1"/>
    	<views:vue_2 id="vue2" label="VUE 2"/>
    	<views:vue_3 id="vue3" label="VUE 3"/>
    </mx:ViewStack>
    Le souci rencontré :
    Si je déplace le datagrid dans la vue "vue_1.mxml", l'accés à la propriété userRequest n'est plus accessible.
    Erreur :
    Accés à la propriété userRequest non définie.

    Ma question, existe-il une méthode qui permette d'indiquer dans la vue, le chemin où est référencée cette propriété ?
    Comme en php par exemple, avec un require_once ().

    Merci pour vos réponses.

  2. #2
    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,

    En fait tu peux utiliser les évènements tu appelles dans ta vue un évènement qui remonte vers ton application principale. Et cette dernière, va ensuite faire le traitement, voici un exemple :
    http://blog.xebia.fr/2009/01/09/les-...reutilisables/

    Sinon tu peux utiliser la méthode getParent() de ta vue pour récupèrer la propriété de request puisque celle si est présente dans ta vue parente. Mais ce n'est pas très propre comme solution.

    Il y a peut être d'autres solutions mais je ne connais que ces deux là.

    ++

  3. #3
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Merci Ellene

    J'avais déjà visité ce lien avant de déposer ma requete, mais celà me semble lourd à implémenter dans mon cas de figure.
    Mais c'est vrai que l'exemple est interessant.

    Ce que je trouve dommage, c'est que lorsqu'un viewstack est intégré dans l'application principale, qu'il ne soit pas capable nativement, d'associer les différentes propriétés existantes aux différentes vues.

  4. #4
    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
    Depuis le composant parent tu as accès à toutes les propriétés des composants enfants mais l'inverse peut se faire à ma connaissance uniquement en utilisant la propriété parent.

    Effectivement, ça n'a pas l'air très pratique mais comment aurais tu fait dans un autre langage pour remonter vers un composant parent ? En Swing par exemple ? Je crois que c'est le même souci non ?

    En fait tu dois choisir entre utiliser des composants réutilisables pour ne pas avoir tout dans le même fichier. Ou alors tout dans le même fichier et dans ce cas tu n'as plus cette question à te poser. Mais après bonjour la maintenance ... (Idem si tu utilises la propriété parent).

    A toi de voir selon tes besoins.

    ++

  5. #5
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Effectivement, ça n'a pas l'air très pratique mais comment aurais tu fait dans un autre langage pour remonter vers un composant parent ? En Swing par exemple ? Je crois que c'est le même souci non ?
    En php et pour d'autres applicatifs, j'utilise classiquement les pseudo-frames, qui me permettent de gérer les différents contenus, pour affichage où je le souhaite, et en remplacement d'un autre contenu au même endroit.

    ...Ou alors tout dans le même fichier et dans ce cas tu n'as plus cette question à te poser...
    Effectivement, c'est la solution que je vais retenir, en utilisant des boutons indépendants.
    Je travaille dessus, je mettrai l'objet de ma réflexion en copie.
    Dans l'immédiat, je dois m'absenter.
    Merci Ellene et bonne fin de soirée.

  6. #6
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    <mx:HBox>
    <mx:Button label="Vue 1"
    click="vue.selectedIndex=0" />
    <mx:Button label="Vue 2"
    click="vue.selectedIndex=1" />
    <mx:Button label="Vue 3"
    click="vue.selectedIndex=2" />
    </mx:HBox>
    <mx:ViewStack id="vue" selectedIndex="0">

    <mx:Canvas>
    //mon datagrid 1
    </mx:Canvas>

    <mx:Canvas>
    // Ce que je veux 2
    </mx:Canvas>

    <mx:Canvas>
    // Ce que je veux 3
    </mx:Canvas>
    </mx:ViewStack>
    Ca me permet d'exploiter dans la même application les différents contenus.
    Sobre, mais fonctionnel.

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

Discussions similaires

  1. Communication entre applications
    Par StormimOn dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 04/06/2007, 14h27
  2. [C#] Communication entre applications ?
    Par fmichael dans le forum C#
    Réponses: 10
    Dernier message: 02/03/2007, 08h30
  3. communication entre application.
    Par clucky dans le forum Langage
    Réponses: 1
    Dernier message: 10/10/2006, 10h10
  4. Réponses: 7
    Dernier message: 12/05/2006, 08h36
  5. [COM | VB] communication entre application hétérogène
    Par zlavock dans le forum Général Java
    Réponses: 8
    Dernier message: 21/11/2004, 10h51

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