1 votes

Widget GWT à partir de HTML

J'ai un bloc de HTML que je voudrais utiliser comme base d'un widget GWT, mais je ne suis pas tout à fait sûr de la meilleure façon de le faire. A titre d'exemple, mon bloc HTML ressemble à quelque chose comme ceci :

<div class="my-widget">
    <div class="header">
        <span class="title">Title Text</span>
    </div>
    <div class="body">
        <span class="content">Content Text</span>
    </div>
</div>

Je peux bien sûr coller cette chaîne statique dans un widget HTML, mais dans ce cas, je dois pouvoir définir le texte des éléments "title" et "content" à la volée. Cela tue (ou du moins rend nettement plus difficile) l'option du texte statique.

La première chose qui vient à l'esprit dans ce cas est de construire manuellement les éléments dans GWT et de maintenir des références à ceux que je dois modifier, comme ceci :

DivElement container = document.createDivElement();
setStyleName(container, "my-widget");
setElement(container);

DivElement header = document.createDivElement();
setStyleName(header, "header");
container.appendChild(header);

// Hold onto this element for later manipulation
DivElement title = document.createDivElement();
setStyleName(title, "title");
header.appendChild(title);

Mais cela devient vite ingérable, sauf pour les mises en page les plus simples (ce qui n'est pas le cas de la mienne).

Ce que j'aimerais, c'est pouvoir envoyer le HTML sous forme de texte statique, puis utiliser une sorte de sélecteur, comme jQuery, pour interroger les éléments que je veux manipuler. Je connais GWT-Query mais je n'ai pas réussi à le faire fonctionner sans erreur, et il me semble qu'il est un peu trop tôt dans sa vie pour que je sois à l'aise pour l'intégrer dans un produit professionnel.

Je suis également conscient que Google UiBinder ce qui ressemble exactement à ce que je veux. Le problème est que, pour autant que je puisse dire, cette fonctionnalité n'est disponible que dans GWT 2.0, qui est toujours dans un état de candidat à la libération et donc inutilisable pour moi.

Compte tenu de tout cela (désolé pour cette longue question !), avez-vous des suggestions sur la meilleure façon de réaliser un tel projet ?

0voto

Le code suivant me convient :

HorizontalPanel divContainer = new HorizontalPanel ();
Element div = DOM.createDiv();
div.appendChild(...); // whatever element it could fit inside
divContainer.getElement().appendChild(div);

Modifier

L'idée derrière tout cela est de manipuler le DOM avec les autres widgets que vous avez déjà programmés.

PS : j'utilise GWT 2.4

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X