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:ICEfaces 2, ace:tabSet component
-
Assignee Priority:P2
-
Affects:Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration
Description
A useful enhancement for the ace:tabSet and ace:tabPane would be to support an optional "clientCache" configuration on the tabPane component that would be used when the tabSet was in 'clientSide=false' mode. In this mode, as each tab is selected its tabPane contents are normally rendered on the server and updated on the client, providing a fully dynamic tabSet with only a single tabPane actually being rendered to the client at one time.
By specifying the new 'clientCache=true' attribute on a particular tabPane, once that tabPane had initially been rendered (by being selected), it would remain rendered on the client and subsequent selections of the same tab would not result in its contents being updated by the server. However, tab selection events (and the selected index being updated) would still occur on the server as usual, allowing the application the opportunity to be notified of the tab's selection, etc.
Putting this attribute on the tabPane instead of the tabSet would provide additional flexibility in cases where this behaviour is only desired on specific tabs. As a convenience, the same attribute could be provided on the tabSet itself to enable setting for all tabs, subject to being overridden by the tabPane's own attribute setting if defined.
By specifying the new 'clientCache=true' attribute on a particular tabPane, once that tabPane had initially been rendered (by being selected), it would remain rendered on the client and subsequent selections of the same tab would not result in its contents being updated by the server. However, tab selection events (and the selected index being updated) would still occur on the server as usual, allowing the application the opportunity to be notified of the tab's selection, etc.
Putting this attribute on the tabPane instead of the tabSet would provide additional flexibility in cases where this behaviour is only desired on specific tabs. As a convenience, the same attribute could be provided on the tabSet itself to enable setting for all tabs, subject to being overridden by the tabPane's own attribute setting if defined.
Issue Links
- blocks
-
ICE-6850 Dynamic updating of the content in a tabPane causes the other tabs to show the content too in clientSide mode
- Closed
-
ICE-6527 Dynamically adding/removing ace:tabPane Results in ace:tabset Retrieving Entire Tabset Content
- Closed
-
ICE-6961 Re-enable animations for ace:tabSet
- Closed
- depends on
-
ICE-6849 @Field of type List not generating
- Closed
-
ICE-6859 ACE javascript conflict with compat in window.Ice namespace
- Closed
-
ICE-6884 When ACE component in iterative container, setting ace property during render affects all rows
- Closed
Show 1 more links (1 depends on)
A typical use-case for this feature would be a tabPane that includes an iframe that itself hosts an external application. Once the app. is loaded into the iframe, you don't want it disappearing and being reloaded, etc. as the tabs are selected or you will lose your state within the hosted app., etc.