J'essaie de définir l'état d'un widget personnalisé Vaadin à partir d'un clic généré par l'utilisateur. Dans le connecteur du composant après l'instanciation du serveur rpc, j'obtiens le bouton GWT et j'ajoute une méthode onclick. Dans la méthode, je définis l'état (getState.text = "new text";) mais lorsque j'essaie de l'obtenir du côté serveur, j'obtiens le texte d'état d'origine. La méthode onStateChange n'est pas déclenchée.Modifier l'état d'un widget personnalisé Vaadin dans le connecteur via un clic GWT et le faire côté serveur
code dans le connecteur:
getWidget().getSaveButton().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
alert("does it work without jquery?");
getState().text = "text changed from connector";
getWidget().getTextBox().setText(getState().text);
}
});
après avoir cliqué sur le bouton GWT la zone de texte contient le texte "texte modifié du connecteur"
Dans l'état:
public String text = "original state text";
La mise en œuvre de l'interface utilisateur pour obtenir l'état:
vaadinButton.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
Notification.show(sig.getState().text);
}
});
Lorsque vous cliquez sur le bouton vaadin après avoir cliqué sur le bouton GWT, la notification affiche toujours le "texte d'état d'origine". Comment puis-je changer l'état du connecteur afin qu'il déclenche la méthode onStateChange et que le texte change côté serveur?
Merci beaucoup Henri. Cela fait un petit moment que je t'ai vu. Je suis le cracheur de café de la classe de New York – FCoffee
@FCoffee, hah, j'espère que tout va bien là-bas. –
Les choses vont bien. Le problème que je veux résoudre, c'est que j'essaie d'obtenir une chaîne JSON à partir du widget côté client. Selon votre réponse, je ne peux pas le faire à travers l'état. Est-ce la seule façon de faire ces composants Vaadin préexistants? Comme en prendre la chaîne json et placez-le dans un TextArea Vaadin, puis obtenez le texte côté serveur. Je placerais probablement le widget personnalisé dans un composant composite avec une TextArea. – FCoffee