Details
-
Type:
Improvement
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.0
-
Fix Version/s: 2.1-Beta, 3.0, EE-2.0.0.GA_P01
-
Component/s: ACE-Components
-
Labels:None
-
Environment:JSF 2.0.3 ICEfaces 2
-
Assignee Priority:P1
Description
We have a client requirement that an iframe tab in a tabset not be reloaded as the user interacts with the component. The following clientSide="true" configuration is working fine until a new ace:tabPane is dynamically added, at that point the DOM update is returning ALL the existing tabSet content, when ideally it should just be returning the new tab.
I think this is undesirable under normal circumstances as a situation where the user has many tabs with say ice:dataTables holding many items could result in very sluggish performance when adding a new tab.
<ace:tabSet id="tabSet"
clientSide="true"
orientation="bottom"
selectedIndex="#{tabset.visibleTab}"
rendered="#{not empty tabset.tabs}" >
<c:forEach items="#{tabset.tabs}" var="tab">
<ace:tabPane label="#{tab.label}" >
<ui:include src="#{tab.include}" />
</ace:tabPane>
</c:forEach>
</ace:tabSet>
I think this is undesirable under normal circumstances as a situation where the user has many tabs with say ice:dataTables holding many items could result in very sluggish performance when adding a new tab.
<ace:tabSet id="tabSet"
clientSide="true"
orientation="bottom"
selectedIndex="#{tabset.visibleTab}"
rendered="#{not empty tabset.tabs}" >
<c:forEach items="#{tabset.tabs}" var="tab">
<ace:tabPane label="#{tab.label}" >
<ui:include src="#{tab.include}" />
</ace:tabPane>
</c:forEach>
</ace:tabSet>
Issue Links
- depends on
-
ICE-6728 Add client-side cache support for ace:tabPane within a 'clientSide=false'
-
- Closed
-
Care has to be taken to limit dom changes, so we don't want generated ids that can shift when tabs are added and removed.
<ice:tabSet id="tbset">
{dynamic.movies}<c:forEach id="cForEachId" items="#
" var="tab">
{tab.title}<ice:tabPane label="#
" id="tab_#
{tab.id}"><f:subview id="sub_#{tab.id}
">
{tab.plot}<h:panelGroup id="pnlGrp">
<h3>something on the pane</h3>
<h:outputText id="spn" value="#
"/>
</h:panelGroup>
<iframe src="http://www.intel.com/"/>
</f:subview>
</ice:tabPane>
</c:forEach>
</ice:tabSet>