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

Grails Java Discussion :

Creer des composants graphiques réutilisables


Sujet :

Grails Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 70
    Par défaut Creer des composants graphiques réutilisables
    Bonjour,
    Je cherche à créer des composants graphiques réutilisables avec Grails.
    Quelles sont toutes les solutions pour cela ?

    Un de mes besoins en la matière corresponderait à un tag qui formate (de manière complexe) une valeur passée en paramètre.
    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <g:monTagFormatNumbre>${leNombreAFormater}</g:monTagFormatNumbre>
    D'avance merci à tou(te)s pour vos réponses.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 70
    Par défaut
    Des templates ou des tags d'après mes recherches mais je ne maîtrise pas tout pour le paramétrage de ces derniers.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 218
    Par défaut
    Il suffit de créer un TagLib :

    Pour cela il te suffit d'appeler le script grails :
    Ca te crée une classe MesTagsTagLib dans l'arborescence Taglib.

    - puis tu crées tous tes tags
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class MesTagsTagLib {
    def monTagFormatNumbre= { attrs, body ->
    		out << body() << geFormatNombre()
    		}
    def monTagFormatDate= { attrs, body ->
    		out << body() << geFormatDate()
    		}
     
    String getFormatNombre(""){
    		return "class=montant"	} /* enfin ce que tu as besoin de faire */
    puis dans ton gsp tu peux utiliser ta balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <g:monTagFormatNumbre>${leNombreAFormater}</g:monTagFormatNumbre>
    Voilà grosso modo le principe.

    Sinon tu peux faire des layout, c'est à dire des bouts de code gsp :
    il faut alors créer un fichier dans un répertoire composant par exemple de ton arborescence views préfixer par un underscore _ : par exemple _moncomposant.gsp
    Tu utilises ce layout dasn les autres gsp par la balise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <g:render template="/composant/moncomposant" />
    Attention ! dasn le gsp invoquant pas de _.

    Pour plus d'infos consulter la doc grails .
    A+

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 218
    Par défaut
    poor un passage de parametre, il vaut mieux faire un truc comme ca pour le taglib coté gsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <g:monTagFormatNumbre monnombre=${leNombreAFormater}>
    </g:monTagFormatNumbre>
    tu le recuperes comme ca dans le taglib :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def monTagFormatNumbre= { attrs, body ->
    		out << body() << geFormatNombre(attrs.monnombre)
    		}

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 70
    Par défaut
    Bonjour,
    Ce que tu m'as proposé fonctionne très bien. Merci.
    Mais ça ne rend pas visuellement le formatage que je désire.
    Ce que j'ai écrit :
    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
        String getFormateNombre(Double inNombre, Integer inNombreDecimales, Double inDefautNombre)
        {
            Double nombre = inNombre
            if(nombre)
            {   // ex : pour arrondir nombre au centieme, on le multiplie par 100,
                // on arrondie a l'entier superieur (ceil) puis on redivise par 100
                if(!inNombreDecimales)
                {   inNombreDecimales = 2 }
                Double deca = Math.pow(10, inNombreDecimales)
                nombre = (Double) Math.ceil(nombre * deca) / deca
            }
            else if(inDefautNombre)
            {   nombre = inDefautNombre }
            return nombre
        }
     
        def formateNombre =
        { attrs, body ->
            out << body() << getFormateNombre(attrs.nombre, attrs.decimales, attrs.defaut)
        }
    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <g:formateNombre nombre="${partInstance.weight}" decimales="${3}" defaut="${0}"></g:formateNombre>

    Je voudrais m'approcher de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <g:formatNumber number="${(partInstance.weight)? partInstance.weight : 0}" format="#,##0.00" />
    Ce que j'ai fait et qui ne fonctionne pas (il doit me manquer une connaissance conceptuelle ou quelque chose comme ça et ça me rend folle) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        def formateNombre2 =
        {attrs, body ->
            def valeur = attrs.remove('val')
            valeur = (valeur)? valeur : 0
            String debut = "<g:formatNumber number=\""
            String fin = "\" format=\"#,##0.00\" />"
            out << debut + valeur + fin
        }
    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <g:formateNombre2 val="${partInstance.weight}" ></g:formateNombre2>
    Tu vois l'erreur ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 218
    Par défaut
    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <g:formateNombre nombre="${partInstance.weight}" decimales="${3}" defaut="${0}"></g:formateNombre>
    Je ne comprends pas decimales="${3}", tu as un composant dont id=3 où tu saisis ton nombre de décimales?
    Perso j'aurai plus vu decimales="3"...

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

Discussions similaires

  1. librairie/langage pour creer des composants graphiques ?
    Par Tymk dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 03/07/2008, 07h32
  2. Réponses: 4
    Dernier message: 03/07/2007, 09h42
  3. Sérialisation des composants graphiques
    Par sironimo dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 23/01/2007, 11h35
  4. Réponses: 4
    Dernier message: 15/12/2005, 22h36
  5. Activer et désactiver des composant graphiques?
    Par redabadache3 dans le forum Débuter
    Réponses: 1
    Dernier message: 16/08/2005, 17h50

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