Je suis en train de créer un cadre de bordure intitulé GWT, qui se traduit par ceci:panneau cadre Intitulée pour GWT (en utilisant les balises html FIELDSET et LEGEND)
Cela peut être fait en utilisant HTML fieldset et les balises de légende, telles que
<fieldset>
<legend>Connection parameters</legend>
... the rest ...
</fieldset>
Je souhaite créer un widget personnalisé dans GWT qui l'implémente. J'ai réussi à le faire, mais le problème est que les événements qui se produisent à l'intérieur du widget (bouton, etc.) ne sont pas déclenchés bien que j'aie ajouté le gestionnaire.
Ma mise en œuvre du widget est la suivante:
public class TitledPanel extends Widget {
private Element legend;
private Widget content = null;
public TitledPanel() {
Element fieldset = DOM.createFieldSet();
legend = DOM.createLegend();
DOM.appendChild(fieldset, legend);
setElement(fieldset);
}
public TitledPanel(String title) {
this();
setTitle(title);
}
@Override
public String getTitle() {
return DOM.getInnerHTML(legend);
}
@Override
public void setTitle(String html) {
DOM.setInnerHTML(legend, html);
}
public Widget getContent() {
return content;
}
public void setContent(Widget content) {
if (this.content != null) {
DOM.removeChild(getElement(), this.content.getElement());
}
this.content = content;
DOM.appendChild(getElement(), content.getElement());
}
}
Ai-je besoin d'étendre Composite, ou besoin de rediriger manuellement les événements, ou est-il d'autres moyens?