Details
-
Type: New Feature
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: EE-3.3.0.GA_P02, EE-4.0.0.GA
-
Fix Version/s: 4.1, EE-3.3.0.GA_P04
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ace tagHandler
-
Assignee Priority:P1
-
Support Case References:Support Case #13374 - https://icesoft.my.salesforce.com/50070000016KZZU
-
Affects:Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial
Description
create a custom component to incorporate old features of ice:panelStack but to also include performance optimizations with ability of children to not be included in the server-side component tree and to not continually update a child if content is static. Each panelStack would only show the selected panel, but each child would determine whether it would be included in the server-side tree (facelet="false" would be default so same as regular jsf managed content) for example:-
<ace:panelStack selectedId="pane2">
<ace:stackPane id="pane1" client="true">
<!-- some content here-->
</ace:stackPane>
<ace:stackPane id="pane2" >
<!-- some content here but this content would be regular
jsf handled content and managed by domdiff algorithm
and rendered flag to either show the content or not-->
</ace:stackPane>
<ace:stackPane id="pane3" facelet="true">
<!-- some content here but this would NOT be part of the server side
component tree unless it were the selectedId of the parent-->
</ace:stackPane>
</ace:panelStack>
........
The panelStack would require a proxy so that each child could contain it's own form and the panelStack would always be updated as to which child is selected.
facelet="true" would act same as ui:include, but these components can be nested without worrying about the issues regarding ui:include and jstl tags since the div is always rendered, it's just the content of the divs which would be either included in the component tree (or not if facelet="true").
if you want other content to be rendered, you would nest your panelStacks:-
Modification to this could be having a list of selectedId's instead of a single selectedId, but easiest to implement a singleId to be included than a list of them. (take longer to implement).
for example:-
<ace:panelStack id="stack1" selectedId="pane1">
<ace:stackPane id="pane1" client="true">
<!-- some content here-->
</ace:stackPane>
<ace:stackPane id="pane2" >
<!-- some content here but this content would be regular
jsf handled content and managed by domdiff algorithm
and rendered flag to either show the content or not-->
</ace:stackPane>
<ace:stackPane id="pane3" facelet="true">
<ace:panelStack id="stack2" seletedId="pane5">
<ace:stackPane id="pane4" facelet="true">
<!-- note this panes content is not in the tree unless pane 3 and
pane4 are both selected -->
</ace:stackPane>
<ace:stackPane id="pane5" facelet="true">
<!-- note this panes content is not in the tree unless pane 3 and
pane5 are both selected -->
</ace:stackPane>
<ace:stackPane id="pane6">
<!-- note this panes content is not in the tree unless pane 3 and
is selected even if pane6 is not selected-->
</ace:stackPane>
</ace:panelStack>
</ace:stackPane>
</ace:panelStack>
The client="true" does not have to immediately be part of this component, but might be something to consider down the road....(?). Main difference between this component and ice:panelStack is that child pane's content can be removed from component tree unless it is "selected".
<ace:panelStack selectedId="pane2">
<ace:stackPane id="pane1" client="true">
<!-- some content here-->
</ace:stackPane>
<ace:stackPane id="pane2" >
<!-- some content here but this content would be regular
jsf handled content and managed by domdiff algorithm
and rendered flag to either show the content or not-->
</ace:stackPane>
<ace:stackPane id="pane3" facelet="true">
<!-- some content here but this would NOT be part of the server side
component tree unless it were the selectedId of the parent-->
</ace:stackPane>
</ace:panelStack>
........
The panelStack would require a proxy so that each child could contain it's own form and the panelStack would always be updated as to which child is selected.
facelet="true" would act same as ui:include, but these components can be nested without worrying about the issues regarding ui:include and jstl tags since the div is always rendered, it's just the content of the divs which would be either included in the component tree (or not if facelet="true").
if you want other content to be rendered, you would nest your panelStacks:-
Modification to this could be having a list of selectedId's instead of a single selectedId, but easiest to implement a singleId to be included than a list of them. (take longer to implement).
for example:-
<ace:panelStack id="stack1" selectedId="pane1">
<ace:stackPane id="pane1" client="true">
<!-- some content here-->
</ace:stackPane>
<ace:stackPane id="pane2" >
<!-- some content here but this content would be regular
jsf handled content and managed by domdiff algorithm
and rendered flag to either show the content or not-->
</ace:stackPane>
<ace:stackPane id="pane3" facelet="true">
<ace:panelStack id="stack2" seletedId="pane5">
<ace:stackPane id="pane4" facelet="true">
<!-- note this panes content is not in the tree unless pane 3 and
pane4 are both selected -->
</ace:stackPane>
<ace:stackPane id="pane5" facelet="true">
<!-- note this panes content is not in the tree unless pane 3 and
pane5 are both selected -->
</ace:stackPane>
<ace:stackPane id="pane6">
<!-- note this panes content is not in the tree unless pane 3 and
is selected even if pane6 is not selected-->
</ace:stackPane>
</ace:panelStack>
</ace:stackPane>
</ace:panelStack>
The client="true" does not have to immediately be part of this component, but might be something to consider down the road....(?). Main difference between this component and ice:panelStack is that child pane's content can be removed from component tree unless it is "selected".
Issue Links
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Judy Guglielmin
created issue -
Judy Guglielmin
made changes -
Field | Original Value | New Value |
---|---|---|
Assignee | Judy Guglielmin [ judy.guglielmin ] |
Ken Fyten
made changes -
Summary | create ace:panelStack with custom taghandler and client capability features | New ace:panelStack with custom tag-handler rendering optimization and client capabilities |
Arran Mccullough
made changes -
Support Case References | Support Case #13374 - https://icesoft.my.salesforce.com/50070000016KZZU |
Judy Guglielmin
made changes -
Attachment | panelStack.zip [ 19186 ] |
Judy Guglielmin
made changes -
Ken Fyten
made changes -
Fix Version/s | 4.1 [ 11375 ] | |
Affects | Documentation (User Guide, Ref. Guide, etc.),Sample App./Tutorial [ 10003, 10001 ] | |
Assignee Priority | P1 [ 10010 ] |
Judy Guglielmin
made changes -
Attachment | panelStack.zip [ 19780 ] |
Judy Guglielmin
made changes -
Attachment | panelStack.zip [ 19186 ] |
Ken Fyten
made changes -
Fix Version/s | EE-3.3.0.GA_P03 [ 11572 ] |
Judy Guglielmin
made changes -
Attachment | panelStack3.zip [ 19781 ] |
Ken Fyten
made changes -
Fix Version/s | EE-3.3.0.GA_P04 [ 12270 ] | |
Fix Version/s | EE-3.3.0.GA_P03 [ 11572 ] |
Ken Fyten
made changes -
Assignee | Judy Guglielmin [ judy.guglielmin ] | Ken Fyten [ ken.fyten ] |
Ken Fyten
made changes -
Assignee | Ken Fyten [ ken.fyten ] | Mircea Toma [ mircea.toma ] |
Ken Fyten
made changes -
Assignee | Mircea Toma [ mircea.toma ] | Judy Guglielmin [ judy.guglielmin ] |
Judy Guglielmin
made changes -
Attachment | panelStack3.zip [ 19781 ] |
Judy Guglielmin
made changes -
Attachment | panelStack3.zip [ 19984 ] |
Judy Guglielmin
made changes -
Attachment | panelStack3.zip [ 19984 ] |
Judy Guglielmin
made changes -
Attachment | panelStack3.zip [ 19985 ] |
Judy Guglielmin
made changes -
Attachment | panelStack.zip [ 19780 ] |
Mircea Toma
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Resolution | Fixed [ 1 ] | |
Status | Resolved [ 5 ] | Reopened [ 4 ] |
Assignee | Judy Guglielmin [ judy.guglielmin ] | Mircea Toma [ mircea.toma ] |
Judy Guglielmin
made changes -
Assignee | Mircea Toma [ mircea.toma ] | Judy Guglielmin [ judy.guglielmin ] |
Judy Guglielmin
made changes -
Assignee | Judy Guglielmin [ judy.guglielmin ] | Arturo Zambrano [ artzambrano ] |
Arturo Zambrano
made changes -
Assignee | Arturo Zambrano [ artzambrano ] | Judy Guglielmin [ judy.guglielmin ] |
Ken Fyten
made changes -
Comment | [ A comment with security level 'icesoft-internal-developers' was removed. ] |
Ken Fyten
made changes -
Comment | [ A comment with security level 'icesoft-internal-developers' was removed. ] |
Ken Fyten
made changes -
Assignee | Judy Guglielmin [ judy.guglielmin ] | Mircea Toma [ mircea.toma ] |
Mircea Toma
made changes -
Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Judy Guglielmin
made changes -
Resolution | Fixed [ 1 ] | |
Status | Resolved [ 5 ] | Reopened [ 4 ] |
Judy Guglielmin
made changes -
Attachment | iceMock2.zip [ 20280 ] |
Mircea Toma
made changes -
Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Judy Guglielmin
made changes -
Resolution | Fixed [ 1 ] | |
Status | Resolved [ 5 ] | Reopened [ 4 ] |
Mircea Toma
made changes -
Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Judy Guglielmin
made changes -
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |