ICEfaces
  1. ICEfaces
  2. ICE-10638

New ace:panelStack with custom tag-handler rendering optimization and client capabilities

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major 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

      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".
      1. ist3.png
        1023 kB
      2. list1.png
        1009 kB
      3. list2.png
        1008 kB

        Issue Links

          Activity

          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 -
          Attachment ist3.png [ 19187 ]
          Attachment list1.png [ 19188 ]
          Attachment list2.png [ 19189 ]
          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 ]
          Ken Fyten made changes -
          Link This issue blocks ICE-10747 [ ICE-10747 ]
          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 -
          Link This issue blocks ICE-10751 [ ICE-10751 ]
          Ken Fyten made changes -
          Status Resolved [ 5 ] Closed [ 6 ]

            People

            • Assignee:
              Mircea Toma
              Reporter:
              Judy Guglielmin
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: