[
https://issues.jboss.org/browse/RF-12789?page=com.atlassian.jira.plugin.s...
]
Lutz Ulrich edited comment on RF-12789 at 2/18/13 9:56 AM:
-----------------------------------------------------------
Here you are:
dynamicTab.xhtml contains an initial static rich:tabPanel with an initial rich:tab.
Via the binding attribute, the tabPanel UIComponent is bound to my dynamicTabBean's
'staticTabPanel' property.
dynamicTabBean is an instance of my Java class test.DynamicTabBean.
The commandButton 'Add tab' invokes DynamicTabBean.addTab().
This adds a UITab to the staticTabPanel.
The staticTabPanel is re-rendered due to <f:ajax
render="staticTabPanel">.
The new tab shows up.
But the <script> element at the end of <body>, which is supposed to contain
RichFaces script code for all tabPanels and tabs is NOT re-rendered. Thus, one cannot
switch from the initial static tab to the dynamically added new tab.
The commandButton 'Add tabPanel' invokes DynamicTabBean.addTabPanel().
A new tabPanel with 2 tabs is added to the staticTabPanel's parent UIComponent (the
HtmlForm).
The new tabPanel shows up. But one cannot switch its tabs due to similar problems as with
the new single tab above.
was (Author: lutzulrich):
Here you are:
dynamicTab.xhtml contains an initial static rich:tabPanel with an initial rich:tab.
Via the binding attribute, the tabPanel UIComponent is bound to my dynamicTabBean's
'staticTabPanel' property.
dynamicTabBean is an instance of my Java class test.DynamicTabBean.
The commandButton 'Add tab' invokes DynamicTabBean.addTab().
This adds a UITab to the staticTabPanel.
The staticTabPanel is re-rendered due to <f:ajax
render="staticTabPanel">.
The new tab shows up.
But the <script> element at the end of <body>, which is supposed to contain
RichFaces script code for all tabPanels and tabs is NOT re-rendered. Thus, one cannot
switch from the initial static tab to the dynamically added new tab.
The commandButton 'Add tabPanel' invokes DynamicTabBean.addTabPanel().
A new tabPanel with 2 tabs is added.
The new tabPanel shows up. But one cannot switch its tabs due to similar problems as with
the new single tab above.
TabPanel error after partial update with new tab
------------------------------------------------
Key: RF-12789
URL:
https://issues.jboss.org/browse/RF-12789
Project: RichFaces
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: component-panels-layout-themes
Affects Versions: 4.3.0.CR2
Environment: Mojarra 2.1.17, Tomcat 7.0.22, Java 1.7, Windows 7
Reporter: Lutz Ulrich
Assignee: Lukáš Fryč
Labels: Tab, TabPanel, dynamical-add
Fix For: 4.3.1
Attachments: dynamicTab.xhtml, DynamicTabBean.java
Original Estimate: 2 hours
Remaining Estimate: 2 hours
Adding tabs dynamically (programatically) in partial requests results in errors.
The JavaScript code for all TabPanels and their child Tabs is added to HTML <body>
using JavaScriptService.addScript(FacesContext, S), see
DivPanelRenderer.writeJavaScript(), TabRenderer.doEncodeItemEnd() and
TabRenderer.doEncodeEnd().
The top-level <script> element in <body> won't be updated if a new Tab is
added dynamically in a partial request. Thus, the script, new RichFaces.ui.Tab(...), for
the new Tab is missing.
Similar problems arise if a TabPanel is added in a partial request.
All scripts, RichFaces.ui.Tab(...) and RichFaces.ui.TabPanel(...) should be rendered
inline for partial update to work with new TabPanels and new Tabs.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira