J'ai un problème avec accent sur Vaadin. Le problème se produit lorsque j'ouvre une nouvelle fenêtre (boîte de dialogue) par exemple. cliquez sur le bouton:Vaadin obtiennent l'élément concentré
new Window(caption, component);
Lorsque la fenêtre est fermée, la méthode close() est exécutée. Sa mise en œuvre de la classe de fenêtre:
public void close() {
UI uI = getUI();
// Don't do anything if not attached to a UI
if (uI != null) {
// focus is restored to the parent window
uI.focus();
// window is removed from the UI
uI.removeWindow(this);
}
}
Comme le montre, l'accent est mis à l'interface utilisateur au lieu de composant qui a provoqué une fenêtre ouverte. Existe-t-il un moyen de définir le focus du composant sur, par exemple, bouton qui a causé la fenêtre ouverte? Je suis à la recherche d'une solution générique. J'ai une solution de contournement dans laquelle j'étend la classe de fenêtre et crée le champ pour le composant. Après la création de la fenêtre, je définis le champ du composant sur celui qui a provoqué l'ouverture de la fenêtre. Mais comme je l'ai dit - je le vois comme une solution de contournement.
Je l'ai mis en œuvre de la même manière que vous l'avez décrit au 1er point. Mais ce n'est malheureusement pas générique et nécessite beaucoup de changements dans les composants qui utilisent Windows. – Adam