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 :

DataGrid via AS3 comment l'implémenter


Sujet :

Flex

  1. #1
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 514
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 514
    Par défaut DataGrid via AS3 comment l'implémenter
    bonjour,

    je débute vraiment avec Flex 3 et Actionscript.
    Je voudrais créer un module qui est une Datagrid qui va toujours appeler la même source de données mais il sera utilisé dans beaucoup d'endroit.
    Je voudrais passer par une classe Actionscript plutôt que part MXML parce que je pense que j'aurais quelques interactions.

    Mais, j'arrive pas à récupérer la classe DataGrid. Alors est-ce le faite que j'ai une version d'évaluation ?
    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Salut

    Tu n'arrives pas à créer une classe qui étend les datagrids ?
    Le package relatif aux Datagrid est : mx.controls.DataGrid , et il te suffit ainsi de créer une classe avec en super classe "Datagrid".

    Sinon tu peux très bien créer ta DG dans un mxml, au titre de composant, et écrire l'AS (et tout le code associé voulu) relatif à ce composant. Tu pourras utiliser ce nouveau composant partout où tu voudras.

    Si jamais tu as beaucoup d'interaction avec cette DG, il peut t'être utile d'utiliser des AdvencedDataGrid (sorties avec Flex 3) également, que tu peux un peu plus customiser.

    Cele m'étonnerait beaucoup que les AdvancedDatagrids ne soient disponibles qu'en version complète, et pour les Datagrids, cela me paraît quasi improbable.... mais je peux me tromper

  3. #3
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 514
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 514
    Par défaut
    Citation Envoyé par Krazymins Voir le message
    Salut

    Tu n'arrives pas à créer une classe qui étend les datagrids ?
    Le package relatif aux Datagrid est : mx.controls.DataGrid , et il te suffit ainsi de créer une classe avec en super classe "Datagrid".

    Sinon tu peux très bien créer ta DG dans un mxml, au titre de composant, et écrire l'AS (et tout le code associé voulu) relatif à ce composant. Tu pourras utiliser ce nouveau composant partout où tu voudras.

    Si jamais tu as beaucoup d'interaction avec cette DG, il peut t'être utile d'utiliser des AdvencedDataGrid (sorties avec Flex 3) également, que tu peux un peu plus customiser.

    Cele m'étonnerait beaucoup que les AdvancedDatagrids ne soient disponibles qu'en version complète, et pour les Datagrids, cela me paraît quasi improbable.... mais je peux me tromper
    Ben justement, j'arrive pas à étendre la Classe DataGrid. Et j'ai pas dans les package mx.controls.

    Pourtant dans la Doc j'ai bien ce que tu dis mais Flex Builder ne voit rien. Via MXML j'arrive à en créer. Je me demande si c'est pas le faite que j'utilise une version d'évaluation que je ne le vois pas.

  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
    Je ne comprends pas très bien ...
    Tu veux instancier une datagrid en AS3 ?

  5. #5
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    ça plante à la compile ou c'est simplement dans le menu déroulant d'Eclipse, à la création de la classe, que tu ne la vois pas apparaître ?

  6. #6
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 514
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 514
    Par défaut
    Citation Envoyé par ellene Voir le message
    Je ne comprends pas très bien ...
    Tu veux instancier une datagrid en AS3 ?
    Ce que je souhaite c'est faire c'est un tas de module de type datagrid dont chacun possède une liste bien précis. Dans mon cas, par exemple je voudrais une Datagrid de Categorie, Projet, Produit.
    Comme j'aurais besoin assez souvent de ce module, je voulais le faire générer via l'AS3 parce qu'un d'un coté il faut que je fasse des appelles au serveur qui va répondre par du XML.

    Au finale, je voudrais juste que dans le MXML je puisse appeler le module ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    <Local:DataGridProduct id="DGProduct"/>
    <Local:DataGridCategory id="DGCategory"/>
    <Local:DataGridProject id="DGProject"/>
    ...

  7. #7
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 514
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 514
    Par défaut
    Citation Envoyé par Krazymins Voir le message
    ça plante à la compile ou c'est simplement dans le menu déroulant d'Eclipse, à la création de la classe, que tu ne la vois pas apparaître ?
    Je le vois pas d'autocomplétion, je ne le vois pas dans le fenêtre ou il y a une liste de classe qu'ont pourrait étendre. Je ne le vois même pas lors que je souhaite l'instancier.

    Comme je débute peut être que j'ai loupé un épisode.

  8. #8
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 514
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 514
    Par défaut
    Ok, je viens de comprendre.

    En faite, j'ai fais cela dans un projet de type "Actionscript project". De cette manière, il semblerait qu'il soit pas possible d'importer des controls. Par contre, si je créé la classe dans une projet Flex basique. Je peux utiliser cette classe.
    Je pense que ça me parait un peut logique. Il faut que je m'y habitue un peu à l'organisation dans Flex Builder.
    Merci de vos intervention

  9. #9
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    A priori non

    essaye en forçant avec le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    package
    {
    	import mx.controls.DataGrid;
     
    	public class TestDatagrid extends DataGrid
    	{
    		public function TestDatagrid()
    		{
    			super();
    		}
     
    	}
    }
    Voit si à la compile tu as une erreur .. (si jamais c'était dû à cause de ta version d'évaluation, tu aurais des problèmes pour le mxml, donc je ne pense vraiment pas que ça vienne de là)


    -----------
    Au finale, je voudrais juste que dans le MXML je puisse appeler le module ainsi

    Code :

    ...
    <LocalataGridProduct id="DGProduct"/>
    <LocalataGridCategory id="DGCategory"/>
    <LocalataGridProject id="DGProject"/>
    ...
    Je pense qu'il faudrait que tu créer un composant MXML, de cette manière tu pourras l'appeler sans aucun problème et de la manière dont tu le souhaites.
    Code à placer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xmlns:Local="component.local.*"
    Tu importes un script .as dans ce mxml et tu pourras lui affecter toutes les fonctions que tu veux.


    [Edit : Ce message arrive après la bataille ! Désolé]

  10. #10
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 514
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 514
    Par défaut
    Citation Envoyé par Krazymins Voir le message
    A priori non

    essaye en forçant avec le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    package
    {
    	import mx.controls.DataGrid;
     
    	public class TestDatagrid extends DataGrid
    	{
    		public function TestDatagrid()
    		{
    			super();
    		}
     
    	}
    }
    Voit si à la compile tu as une erreur .. (si jamais c'était dû à cause de ta version d'évaluation, tu aurais des problèmes pour le mxml, donc je ne pense vraiment pas que ça vienne de là)


    -----------


    Je pense qu'il faudrait que tu créer un composant MXML, de cette manière tu pourras l'appeler sans aucun problème et de la manière dont tu le souhaites.
    Code à placer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xmlns:Local="component.local.*"
    Tu importes un script .as dans ce mxml et tu pourras lui affecter toutes les fonctions que tu veux.
    Ok, je vais suivre tes conseils
    Merci.

  11. #11
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 514
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 514
    Par défaut
    J'ai deux questions.
    Est-il possible de passer des paramètres à un composant MXML ?
    En gros, comme dans ce que je souhaite faire, je puisse charger mon DataGrid via mon XML envoyé par le serveur qui lui a ressue un paramètre.

    Est ce qu'un composant peut appeler un autre composant ?

    Merci

  12. #12
    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
    Est-il possible de passer des paramètres à un composant MXML ?
    Oui il suffit de définir un getter et un setter et tu peux ensuite l'utiliser comme attribut de ton composant MXML.

    Est ce qu'un composant peut appeler un autre composant ?
    Oui aussi si c'est un enfant aucun soucis tu appelles le composant. Sinon le plus simple je pense c'est de mettre en place des évènements.

  13. #13
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 514
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 514
    Par défaut
    Citation Envoyé par ellene Voir le message
    Oui il suffit de définir un getter et un setter et tu peux ensuite l'utiliser comme attribut de ton composant MXML.


    Oui aussi si c'est un enfant aucun soucis tu appelles le composant. Sinon le plus simple je pense c'est de mettre en place des évènements.
    Haa ça fait plaisir les mecs (et les filles ) ont pensé à tout.
    Je vais faire mes objets métier et travailler sur un module.
    Effectivement, tu as raison. Il est plus simple que je créé un module MXML qui appelle un script qui lui se chargera de donner à manger à mon DataGrid.
    Actuellement, ma plus grande difficulté c'est de pouvoir organisé mes scripts sans que ça fasse usine à gaz Russe. Mais là, je vois la lumière blanche.

    Merci à toi

  14. #14
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Pour ograniser tes scripts tu peux faire quelquechose dans le style :
    (grossièrement ça donne ça)

    dans ton dossier src:
    - main.mxml
    - main.as
    - com (folder)


    ensuite dans com :
    com ->com1; com->com2 etc
    et pour chaque composant (com1, com2, com3) tu mets tout ton code relatif à ce composant :

    - Com1.mxml
    - Com1.as

    Tu peux avoir aussi par exemple

    - Com1Event.as
    - Com1Model.as
    - ICom1Model.as
    - Com1Controller.as
    - Com1DataGridItemRenderer.as

    enfin quelquechose comme ça , te permettant d'avoir des composants vraiment robustes et indépendants

    Ce n'est pas une vérité absolue, c'est une sorte de petite piste de bonne pratique

  15. #15
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Salut,

    Tu n'aurais pas créé un projet ActionScript depuis Flex Builder par hasard?

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  16. #16
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 514
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 514
    Par défaut
    Citation Envoyé par Jim_Nastiq Voir le message
    Salut,

    Tu n'aurais pas créé un projet ActionScript depuis Flex Builder par hasard?
    Si tu parles de la non visibilité de la classe DataGrid dans ma classe. Oui c'était dans le cas ou j'avais créé un projet ActionScript depuis Flex Builder.
    Pourquoi ?

  17. #17
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 514
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 514
    Par défaut
    Citation Envoyé par Krazymins Voir le message
    Pour ograniser tes scripts tu peux faire quelquechose dans le style :
    (grossièrement ça donne ça)

    dans ton dossier src:
    - main.mxml
    - main.as
    - com (folder)


    ensuite dans com :
    com ->com1; com->com2 etc
    et pour chaque composant (com1, com2, com3) tu mets tout ton code relatif à ce composant :

    - Com1.mxml
    - Com1.as

    Tu peux avoir aussi par exemple

    - Com1Event.as
    - Com1Model.as
    - ICom1Model.as
    - Com1Controller.as
    - Com1DataGridItemRenderer.as

    enfin quelquechose comme ça , te permettant d'avoir des composants vraiment robustes et indépendants

    Ce n'est pas une vérité absolue, c'est une sorte de petite piste de bonne pratique
    Ok je vais m'inspirer de ton exemple. Après, il est claire qu'il y aura peut être un réajustement.

  18. #18
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Citation Envoyé par berceker united Voir le message
    Si tu parles de la non visibilité de la classe DataGrid dans ma classe. Oui c'était dans le cas ou j'avais créé un projet ActionScript depuis Flex Builder.
    Pourquoi ?
    Parce qu'il suffit d'ajouter le framework à ton projet pour résoudre le problème :

    click droit sur ton projet -> Properties -> ActionScript Build Path

    onglet Library Path: click sur add SWC et tu vas chercher dans le répertoire d'install le framework (par défaut C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\framework\libs\framework.swc) puis de même avec le framework localisé si besoin (ici exemple avec la langue anglais-américain):

    C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\locale\en_US\framework_rb.swc

    et normalement tu peux ajouter tes composants DataGrid, Canvas et cie

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  19. #19
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 514
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 514
    Par défaut
    Citation Envoyé par Jim_Nastiq Voir le message
    Parce qu'il suffit d'ajouter le framework à ton projet pour résoudre le problème :

    click droit sur ton projet -> Properties -> ActionScript Build Path

    onglet Library Path: click sur add SWC et tu vas chercher dans le répertoire d'install le framework (par défaut C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\framework\libs\framework.swc) puis de même avec le framework localisé si besoin (ici exemple avec la langue anglais-américain):

    C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\locale\en_US\framework_rb.swc

    et normalement tu peux ajouter tes composants DataGrid, Canvas et cie
    Haaa ok, c'est pour ça !.... En faite le projet était vide de chez vide donc.
    Merci pour l'information .
    En tout cas j'en apprend beaucoup en ce moment
    Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/06/2007, 09h31
  2. [SDK] Comment l'implémenter via .Net ?
    Par aina0073 dans le forum SDK
    Réponses: 3
    Dernier message: 18/08/2006, 16h52
  3. Euler/Runge-Kunta: Comment les implémenter
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 27/02/2006, 22h52
  4. [CR] Où l'obtenir et comment l'implémenter ?
    Par marvelromy dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 04/08/2004, 14h52
  5. Moteur physique : comment l'implémenter ?
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 17/12/2003, 12h56

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