Primefaces TabView по модели - удалить модель, связанную с вкладкой при закрытии

Я использую компонент Primefaces (версия 3.0.1) p:tabView, который отображает динамическое количество вкладок, поддерживаемых списком в модели. Вкладки внутри TabView закрываются. Я хотел бы удалить элемент списка, связанный с вкладкой, по событию закрытия.

Вот мой взгляд:

<p:tabView id="tabView" var="iterator" value="#{bean.list}">
    <p:ajax event="tabClose"
        listener="#{bean.removeElement(iterator)}" process="@this" />

        <p:tab id="tab" closable="true">
            <h:outputText value="#{iterator.text}" />
        </p:tab>
</p:tabView>

Мой обработчик бина:

public void removeElement(Element e) {
    this.list.remove(e);
}

Element e в этом случае равно null

Я также пытался использовать p:collector внутри элемента p:ajax. На витрине Primefaces.org есть пример. В соответствии с ним мой обработчик событий должен выглядеть так

public void removeElement(TabCloseEvent event) {
    // ...
}

Но я не знаю, как мне связать элемент списка вкладок.

Все ответы будут оценены. заранее спасибо


person nikagra    schedule 02.03.2012    source источник


Ответы (1)


public void removeElement(TabCloseEvent event) следует использовать, imo.

Согласно TabCloseEvent имеет метод getData(). Это должно дать вам доступ к вашему классу модели. Отказ от ответственности: я еще не использовал TabView так, как вы, но он работает таким образом для компонента Primeface Tree (то есть выбора узла). Не могли бы вы опубликовать свои выводы?

person MartinK    schedule 05.03.2012
comment
Хм, спасибо, проверю. Я не смог найти документацию о методе getData() - person nikagra; 08.03.2012