私はこの問題を抱えているので、私は夢中になります
私はこのメニューコンポーネントを持っています
<rich:panelMenuItem label="Users" name="Users" action="#{tabsBean.createTabs('tab Users')}" render="tabs" />
<rich:panel>
<h:panelGrid id="tabs" binding="#{tabsBean.panelGrid}"/>
</rich:panel>
ユーザー項目メニューをクリックすると、新しいタブが追加されます
@ManagedBean
@SessionScoped
public class TabsBean {
private HtmlPanelGrid panelGrid;
private UITabPanel tabPanel;
private List<UITab> tabsList;
private Application application;
public TabsBean() {
tabsList = new LinkedList<UITab>();
FacesContext context = FacesContext.getCurrentInstance();
application = context.getApplication();
tabPanel = (UITabPanel)application.createComponent(UITabPanel.COMPONENT_TYPE);
tabPanel.setSwitchType(SwitchType.ajax);
}
public void createTabs (String name){
UITab tab = new UITab();
tab = (UITab)application.createComponent(UITab.COMPONENT_TYPE);
tab.setName(name);
tabPanel.getChildren().add(tab);
//I would add here a component to my new tab
panelGrid.getChildren().add(tabPanel);
}
すべて問題ありませんが、次の表のように、新しいタブにコンポーネントを追加したいと思います
<rich:extendedDataTable id="UsersTable" value="#{userController.allUsers}" var="user" />
<rich:column>
<f:facet name="header">Id</f:facet>
<h:outputText value="#{user.id}" />
</rich:column>
<rich:column>
<f:facet name="header">Name</f:facet>
<h:outputText value="#{users.name}" />
</rich:column>
</rich:extendedDataTable>
どのようにできるのか?