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 :

quel est le role de la fonction markupFactory() de la class dojox.grid.cells.cell. [Dojo]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier Avatar de moukit233
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Points : 123
    Points
    123
    Par défaut quel est le role de la fonction markupFactory() de la class dojox.grid.cells.cell.
    Salut,
    j'ai une fonction js :
    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
    26
     
    function markup()
    {   
        dojox.grid.cells.Cell.markupFactory = function(node, cell) {
            //dgc.Cell.markupFactory(node, cell);
            var d=dojo;
            var options = dojo.trim(dojo.attr(node, "options")||"");
           if (options) {
               //alert('je suis dedons');
                    var liste = options.split(',');
                    if(liste[0] != options) {
                            cell.options = liste;
                           // return cell.options;
                    }
            }
            var values = dojo.trim(dojo.attr(node, "values")||"");
            if (values) {
                    var v = values.split(',');
                    if(v[0] != values){
                            cell.values = v;
                           // return cell.values;
                    }
           }
        }
     
    }
    j'ai 2 question :
    - je veux avoir quel est le role de la fonction markupFactory() de dojox.grid.cells.cell
    - comment je vais appliquer cette fonction sur dojox.grid.cells.cell.
    merci de m'aider
    «En théorie, la théorie et la pratique sont les mêmes. En pratique, ils le sont pas."
    Albert Einstein.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 63
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    J'image que les infos que l'on peut lire sur http://www.dojotoolkit.org/book/dojo...eclaring-class ne te sont pas étrangères :

    Basically, markupFactory is like a constructor - it creates objects. It just lets you define how: you can choose the class you want to instantiate, or you can prepare and reorder the parameters as the constructor expects them. [] When creating widget instances by parsing markup, if markup factory exists, it is used instead of constructor
    Les "factory" ont l'air d'être une notion très "dojo", et un peu trop sophitiqué pour ma petite tête (ça existe ailleurs ?).
    Pour ma culture personnelle, qu'est ce que tu essayes de faire avec ?

    Eric

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Concrètement, quand dojo parse la grille et rencontre une colonne d'un type particulier (par exemple dojox.grid.cells.Bool) alors il va appeler la fonction markupFactory de la class associée (donc ici: dojox.grid.cells.BoolBool.markupFactory) en lui passant comme paramètres les fameux attributs associés (value, options, ...) pour qu'ils puissent être eux aussi parsés et intégrés dans les paramètres de la cellule.

    @moukit233: d'après ton code il semble que tu souhaites redéfinir la façon dont est parsé le select. Si tel est le cas, ce serait plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dojox.grid.cells.Select.markupFactory = function(node, cell){
         dojox.grid.cells.Cell.markupFactory(node, cell);
         ...
    };
    @Eric Pasquier:
    Les "factory" ont l'air d'être une notion très "dojo", et un peu trop sophitiqué pour ma petite tête (ça existe ailleurs ?).
    Techniquement c'est une notion très utilisée en objet: on la trouve sous la dénomination de design pattern Factory, mis en avant par le célèbre GangOfFour (GOF). Plus de renseignements ici http://gfx.developpez.com/tutoriel/c...tern/fabrique/ et encore plus complet ici http://rpouiller.developpez.com/tuto...r/?page=page_2

    Bon dev,

    ERE
    Quand une tête pense seule, elle devient folle.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 63
    Points : 63
    Points
    63
    Par défaut
    @emmanuel
    Merci !
    Dans un des article, je viens de lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    La fabrique qui instancie des objets depuis une classe particulière. Ce motif s'emploie souvent lorsque les constructeurs ne sont pas publics.
    et je ne voyais justement pas pourquoi on ne pourrait pas appeler le constructeur de la classe. Je ne sais plus dans quel langage ou ça ne marche pas si le constructeur est déclaré privé; donc j'ai pris l'habitude de les déclarer public.
    Eric.

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Pour simplifier, si tu prends l'exemple d'une class de type calendrier, alors plutôt que de fournir un constructeur avec le fuseau horaire, la prise en charge de l'heure d'été, etc... on préfère mettre une méthode statique qui fait office d'instanciation et qui prend à sa charge la création de l'objet, par exemple en fonction des paramètres du poste utilisateur. Comme cette méthode statique est dans la class, elle "voit" le constructeur, qu'il soit privé ou pas. C'est donc une façon d'aider l'utilisateur et/ou de verrouiller le mode de création de la class. Note d'ailleurs que le pattern le plus connu dans ce type de création est celui du singleton. Quelque chose comme (en java, simplifié):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class MaClass {
      private static MaClass maClass=null;
     
      //visible par la fonction getInstance
      private MaClass(XXX, XXXX) {
         ...
      }
     
      public static MaClass getInstance(YYY) {
          if (maClass==null) maClass = new MaClass(pp,ppp);
          return maClass;
      }
    }
    ERE
    Quand une tête pense seule, elle devient folle.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 63
    Points : 63
    Points
    63
    Par défaut
    Oui, le singleton est implémenté de cette façon dans les classes Zend. A ce propos, ils sont en train de les éliminer pour la version 2.0.
    Concernant la création du "calendrier", je place souvent une fonction "init(paramètres)" pour ce genre de configuration, pour bien séparer la "construction" de la classe, réservé à l'initialisation interne de la classe.
    Eric.

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

Discussions similaires

  1. CTO quel est son role?
    Par xian21 dans le forum Emploi
    Réponses: 7
    Dernier message: 11/12/2008, 10h16
  2. Réponses: 2
    Dernier message: 07/05/2008, 12h15
  3. [JAX-WS] quel est le role des classes générée avec WSGen
    Par solawe dans le forum Services Web
    Réponses: 2
    Dernier message: 05/05/2008, 11h44
  4. Quel est le role de Visual basic?
    Par bahabaha64 dans le forum VB 6 et antérieur
    Réponses: 20
    Dernier message: 27/01/2006, 11h32
  5. [Débutant(e)] [ClassPath] Quel est son rôle ?
    Par slate dans le forum Général Java
    Réponses: 5
    Dernier message: 06/07/2005, 08h32

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