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

Tapestry Java Discussion :

Nouveau Composant de formulaire


Sujet :

Tapestry Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Points : 23
    Points
    23
    Par défaut Nouveau Composant de formulaire
    Bonjour,

    J'essaye de créer un nouveau composant qui affiche un label en fonction d'une liste de champ d'un objet.

    Cela fonctionne bien comme ça. Cependant je voudrais rajouter des boutons avec une image après le champ pour effectuer diverses opérations.

    Je me suis inspiré du composant Palette qui possède un tml avec des boutons et des images, mais le tml de mon composant n'est jamais affiché.

    Pourtant si je met une erreur de balise, tapestry me le signale bien.

    Le tml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <div xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
     
    	<input id="${clientId}" disabled="disabled" name="${controlName}"/>
     
        <button id="select" disabled="disabled">
            <img src="${fetchButton}" alt="fetch"/>
        </button>
     
    </div>
     
    blavblma
    le java
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    package com.selenar.myapp.components;
     
    @SupportsInformalParameters
    @IncludeJavaScriptLibrary("fetch.js")
    public class Fetch extends AbstractField{
     
        @Parameter(value = "asset:fetch.png")
        @Property(write = false)
        private Asset fetchButton;
     
     
    	@Parameter(name = "object", required = true, allowNull = true, defaultPrefix = BindingConstants.PROP)
    	private Object object;
     
    	@Parameter(name = "label", required = true, allowNull = false, defaultPrefix = BindingConstants.LITERAL)
    	private String label;
     
    	@Parameter(name = "pk", required = true, allowNull = false, defaultPrefix = BindingConstants.LITERAL)
    	private String pk;
     
    	@Parameter(name = "class", required = true, allowNull = false, defaultPrefix = BindingConstants.LITERAL)
    	private String className;
     
    	@Property
    	private String clientLabel = null;
     
        protected void beginRender(MarkupWriter writer)
        {
     
        	//traitement pour avoir le label
    		//...
     
     
            writer.element("input",
                           "type", "hidden");
            writer.end();
        }
     
        @BeforeRenderBody
        boolean beforeRenderBody()
        {
            return false;
        }
     
        @BeforeRenderTemplate
        boolean beforeRenderTemplate()
        {
            return true;
        }
     
        void afterRender(MarkupWriter writer)
        {
            //writer.end(); // input
        }
     
        @Override
    	protected void processSubmission(String elementName) {
    		// TODO Auto-generated method stub
     
    	}
     
        static String[] splitLabel(String propertyNames)
        {
            String trimmed = propertyNames.trim();
     
            if (trimmed.length() == 0) return new String[0];
     
            return trimmed.split("\\s*,\\s*");
        }
     
     
    }
    L'appel du composant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <t:fetch t:id="res" object="usrDetail.res" class="Res" pk="resPk" label="resLastName,resFirstName"/>
    Je me sert de ce composant pour afficher la ressource liée à un utilisateur.

    Qu'ais je oublié ?

    Merci par avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    C'est bon, j'ai compris.

    Eclipse me copiait le fichier tml avec une minuscule comme première lettre du nom du fichier.

    Concrètement :
    Les bons noms: Fetch.java et Fetch.tml

    Ceux du repértoire de travail : Fetch.class et fetch.tml

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

Discussions similaires

  1. [visual Editor] ajouter à la palette un nouveau composant
    Par subzero82 dans le forum Eclipse Java
    Réponses: 9
    Dernier message: 09/02/2009, 12h50
  2. Nouveau composant basé sur TMainMenu
    Par zoubidaman dans le forum C++Builder
    Réponses: 1
    Dernier message: 27/07/2006, 15h48
  3. Installer un nouveau composant dans un paquet créé
    Par gmc dans le forum Composants VCL
    Réponses: 1
    Dernier message: 06/03/2006, 12h25
  4. [Conception] Créer un nouveau composant
    Par DamCalle dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 14/06/2005, 11h45
  5. Réponses: 5
    Dernier message: 08/12/2004, 08h52

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