Bom dia pessoal,
Estou com uma dificuldade para descobrir o seguinte problema.
Quando eu vou fechar uma tab, esse dispara um evento e esse evento.getTab().getTitle() retorna vazio “”.
Segue o meu código:
<p:tabView value="#{tabViewController.tabList}"
activeIndex="#{tabViewController.activeIndex}" var="tabItem"
dynamic="true" closeable="true">
<p:ajax event="tabClose" listener="#{tabViewController.onTabClose}"/>
<p:ajax event="tabChange" listener="#{tabViewController.onTabChange}"/>
<p:tab title="#{tabItem.name}" closable="true">
</p:tab>
</p:tabView>
Na tabview aparece o título da tab, mas quando tento pegar o título da tab pelo evento para poder remover da minha lista, esse aparece vazio.
Segue o mb:
[code]@SessionScoped
@ManagedBean
public class TabViewController
{
private List tabList;
private int activeIndex = 0;
public TabViewController()
{
tabList = new ArrayList<TabItem>();
tabList.add(new TabItem("tab1", "teste.xhtml", 0));
tabList.add(new TabItem("tab2", "teste.xhtml", 1));
}
public void addTab()
{
int newActiveIndex = tabList.size();
this.tabList.add(new TabItem("tab" + (newActiveIndex + 1), "teste.xhtml", newActiveIndex));
//define activeIndex com -1 porque inicia em 0
this.setActiveIndex(newActiveIndex);
}
public List<TabItem> getTabList()
{
return tabList;
}
public void setTabList(List<TabItem> tabList)
{
this.tabList = tabList;
}
public int getActiveIndex()
{
return activeIndex;
}
public void setActiveIndex(int activeIndex)
{
this.activeIndex = activeIndex;
}
public void onTabClose(TabCloseEvent event)
{
System.out.println(event.getTab().getTitle());
}
public void onTabChange(TabChangeEvent event)
{
System.out.println(event.getTab().getTitle());
}
public class TabItem
{
private String name;
private String url;
private int tabIndex;
//TODO assim que necessário colocar mais atributos nessa tab
public TabItem(String name, String url, int tabIndex)
{
this.setName(name);
this.setUrl(url);
this.setTabIndex(tabIndex);
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getUrl()
{
return url;
}
public void setUrl(String url)
{
this.url = url;
}
public int getTabIndex()
{
return tabIndex;
}
public void setTabIndex(int tabIndex)
{
this.tabIndex = tabIndex;
}
}
}[/code]
Alguém pode me ajudar?