2015-09-16 2 views
2

Je veux donner à mes utilisateurs la possibilité d'ouvrir un onglet dans sa propre fenêtre plutôt que de simplement basculer l'affichage de la fenêtre en cours vers cet onglet. J'ai beaucoup d'onglets dans mon application, et l'utilisateur veut souvent étudier quelques-uns de ceux-ci sur de longues périodes de temps. Par exemple, l'utilisateur peut voir les graphiques mis à jour au fil du temps via Push.Ouvrir un onglet Vaadin `TabSheet` dans une fenêtre séparée

Actuellement, j'ajoute un bouton «Ouvrir une fenêtre» à la disposition d'un onglet. Cela ouvre une nouvelle fenêtre de navigateur avec la disposition de l'onglet en cours.

Existe-t-il un autre moyen de le faire? Un menu contextuel sur l'onglet lui-même? L'utilisateur détenant un modificateur de clavier (touche Contrôle, touche Commande, touche Option/Alt) tout en cliquant sur l'onglet?

+0

Non, la fenêtre ouverte est la seule façon d'ouvrir une nouvelle fenêtre –

Répondre

1

En fait, il y a une astuce:

tabSheet.setCloseHandler((tabsheet, tabContent) -> {/** make new window **/}); 

Bien sûr, il fonctionne si tabSheet est closeable. Donc, si quelqu'un clique sur le bouton de fermeture, alors vous pouvez faire votre propre logique - dans cet exemple, ouvrir une nouvelle fenêtre.

Mais cela pourrait être trompeur. Pour gérer ce problème, vous pouvez remplacer le sous-titre x par un autre signe plus significatif.

Par exemple, regardez Valo TabSheet demo. Si vous regardez dans le code HTML, que vous remarquez quelque chose comme ceci:

<span class="v-tabsheet-caption-close" aria-hidden="true" aria-disabled="true">×</span> 

Je pense que vous êtes en mesure de changer cette x en utilisant par exemple JavaScript.