EditTextCell : affichage différent en mode vue et édition
« 
 »

EditTextCell : affichage différent en mode vue et édition

GWT logo

Salut à  tous.

Aujourd’hui je vous propose une petite astuce pour ceux qui comme moi font du dév GWT.
Pour un projet, j’ai une CellTable qui affiche des données et qui peuvent être éditées directement dans la table. Pour cela j’utilise un objet EditTextCell.

Dans cette table, j’affiche des codes qui ne veulent trop rien dire, du coup le client voulait afficher le label qui était associé au code, mais ne garder que le code pour éditer la ligne. Alors comme ça, je me suis dit que ça allait être compliqué, mais en fait c’est bidon, Google avait relativement bien prévu le coup.

Voici le code :

class MatRenderer implements SafeHtmlRenderer{

@Override
public SafeHtml render(String arg0) {
SafeHtmlBuilder builder = new SafeHtmlBuilder();
builder.appendEscaped(transformer(arg0));
return builder.toSafeHtml();
}

@Override
public void render(String arg0, SafeHtmlBuilder arg1) {
arg1.appendEscaped(transformer(arg0));
arg1.toSafeHtml();
}

}

La technique c’est de créer un renderer personnalisé comme celui ci-dessus afin de le définir comme renderer pour chaque EditTextCell que vous allez créer de la manière suivante :

new EditTextCell(new MatRenderer())

Et voilà , il ne vous reste plus qu’à  définir votre méthode transformer() afin de transformer la chaîne de base (celle de la vue édition) en une chaîne différente pour la visualisation.

Si vous avez des question, n’hésitez pas à  les poster dans les commentaires.
Ciao les zamis geek et à  la prochaine 😉

 

A propos de l'auteur :

Passionné depuis toujours d'informatique au sens large, je m'intéresse í  tous les domaines allant de la programmation jusqu'au hardware. J'essaye de faire partager ma passion de ce domaine en rédigeant des articles traitant de l'actualité des jeux vidéos jusqu'aux nouveautés du web.

Laisser un commentaire

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Suivez nous sur Twitter Devenez fan de Place4Geek Suivez nous sur Google+ Abonnez-vous à la chaîne Place4Geek Abonnez-vous à notre flux RSS