2009-10-27 3 views
1

J'ai créé un panneau d'onglets dans lequel des onglets supplémentaires peuvent être ajoutés en cliquant sur un bouton.Comment tuer un onglet dans un panneau d'onglets

Ce que je n'arrive pas à comprendre, c'est comment supprimer un onglet qui n'est pas celui qui a été ajouté en dernier.

est ici où je suis ....

TabPanel tp = new TabPanel(); HorizontalPanel tabPanel = new HorizontalPanel(); Libellé textLabel = new Label ("Some Filename"); Bouton killButton = nouveau Bouton ("x");

tabPanel.add (textLabel); tabPanel.add (killButton);

tp.add (nouveau HTML ("Some Content"), TabPanel); // Corps et tête

killButton.addClickHandler (nouveau clickHandler() { public void onClick (événement ClickEvent) {

//Decide the Tab index that contains this button 
    //Remove this tab based on index 

}} ); // Fin de la méthode addClickHandler

Lorsque je tente d'utiliser la méthode getWidgetIndex() pour retourner l'index d'un onglet particulier, je reçois -1 à chaque fois.

Comment renvoyer correctement un index d'un onglet? S'il vous plaît, aidez comme je vais fou !!! !!!

:-(

Répondre

0

getWidgetIndex a besoin le widget de contenu à la place du widget onglet comme argument. Ainsi, par exemple dans votre cas, ce serait le widget créé avec new HTML("Some Content").

3

pour supprimer un onglet dont vous avez besoin soit une référence au Widget vous a ajouté que le contenu de l'onglet, ou si vous devez l'index de tabulation pour l'onglet vous devez supprimer. une partie de votre exemple ci-dessus serait comme

 
final TabPanel tp = new TabPanel(); 
final HTML someContent1 = new HTML("Page A"); 
... 
public void onClick(ClickEvent event){ 
    tp.remove(someContent1); 
    // or just remove the tab it self 
    //tp.getTabBar().removeTab(0); 
} 

NingZhang.info