ICEfaces
  1. ICEfaces
  2. ICE-11277

remove dependency on UISeries for ace components, using UIData instead

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.2
    • Fix Version/s: 4.3
    • Labels:
      None
    • Environment:
      jsf2.2 ace mobi
    • Assignee Priority:
      P3

      Description

      The org.icefaces.impl.component.UISeriesBase class was ported from IF1.8.x and is very complex, manipulating the DOM directly...which causes issues in state saving of components. Since ace:dataTable has successfully been implemented using UIData and compliant with jsf 2.2 implementations, it should be the standard for all components.
      ace:List should be the first component to be migrated away from UISeriesBase. current source (rev 51373) ListMeta class :-
         extendsClass = "org.icefaces.impl.component.UISeriesBase",

      When extending (from Meta Class)
       extendsClass = "javax.faces.component.UIData",

       preliminary findings show that this component needs work to have children of UIInput and UICommand where the submit can be done using ace:ajax and listeners fired.
      <h:commandLink> and <h:commandButton> as children do submit a request with <f:ajax/>, but actionListeners do not fire when children of ace:list. ace:pushButton and <ace:linkButton> do not submit when using <ace:ajax/> when children of an <ace:list>
      Current QA tests do not have any tests for ace:list regarding children of UICommand and UIInput with ace:ajax or f:ajax. This also should be rectified.

        Activity

        Judy Guglielmin created issue -
        Judy Guglielmin made changes -
        Field Original Value New Value
        Assignee Ken Fyten [ ken.fyten ]
        Judy Guglielmin made changes -
        Description The org.icefaces.impl.component.UISeriesBase class was ported from IF1.8.x and is very complex, manipulating the DOM directly...which causes issues in state saving of components. Since ace:dataTable has successfully been implemented using UIData and compliant with jsf 2.2 implementations, it should be the standard for all components.
        ace:List should be the first component to be migrated away from UISeriesBase. preliminary findings show that this component needs work to have children of UIInput and UICommand where the submit can be done using ace:ajax and listeners fired.
        <h:commandLink> and <h:commandButton> as children do submit a request with <f:ajax/>, but actionListeners do not fire when children of ace:list. ace:pushButton and <ace:linkButton> do not submit when using <ace:ajax/> when children of an <ace:list>
        Current QA tests do not have any tests for ace:list regarding children of UICommand and UIInput with ace:ajax or f:ajax. This also should be rectified.
        The org.icefaces.impl.component.UISeriesBase class was ported from IF1.8.x and is very complex, manipulating the DOM directly...which causes issues in state saving of components. Since ace:dataTable has successfully been implemented using UIData and compliant with jsf 2.2 implementations, it should be the standard for all components.
        ace:List should be the first component to be migrated away from UISeriesBase. current source (rev 51373) ListMeta class :-
           extendsClass = "org.icefaces.impl.component.UISeriesBase",

        When extending (from Meta Class)
         extendsClass = "javax.faces.component.UIData",

         preliminary findings show that this component needs work to have children of UIInput and UICommand where the submit can be done using ace:ajax and listeners fired.
        <h:commandLink> and <h:commandButton> as children do submit a request with <f:ajax/>, but actionListeners do not fire when children of ace:list. ace:pushButton and <ace:linkButton> do not submit when using <ace:ajax/> when children of an <ace:list>
        Current QA tests do not have any tests for ace:list regarding children of UICommand and UIInput with ace:ajax or f:ajax. This also should be rectified.
        Ken Fyten made changes -
        Fix Version/s EE-4.2.0.GA [ 13071 ]
        Hide
        Ken Fyten added a comment -

        Let's complete a survey so we can see which other comps are using UISeries still as a first step.

        Show
        Ken Fyten added a comment - Let's complete a survey so we can see which other comps are using UISeries still as a first step.
        Ken Fyten made changes -
        Assignee Priority P3 [ 10012 ]
        Ken Fyten made changes -
        Fix Version/s 4.3 [ 13096 ]
        Fix Version/s EE-4.2.0.GA [ 13071 ]
        Ken Fyten made changes -
        Assignee Ken Fyten [ ken.fyten ] Arturo Zambrano [ artzambrano ]
        Hide
        Arturo Zambrano added a comment -

        r52136: modified ace:list MEta class to extend javax.faces.component.UIData instead of org.icefaces.impl.component.UISeriesBase

        ace:list was the only component that was extending UISeriesBase

        Preliminary testing using the showcase shows that the component continues to work normally. It's still necessary to run all regression tests.

        Show
        Arturo Zambrano added a comment - r52136: modified ace:list MEta class to extend javax.faces.component.UIData instead of org.icefaces.impl.component.UISeriesBase ace:list was the only component that was extending UISeriesBase Preliminary testing using the showcase shows that the component continues to work normally. It's still necessary to run all regression tests.
        Ken Fyten made changes -
        Security Private [ 10001 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52136 Thu Dec 07 15:52:49 MST 2017 art.zambrano ICE-11277 modified ace:list MEta class to extend javax.faces.component.UIData instead of org.icefaces.impl.component.UISeriesBase
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/list/ListMeta.java
        Hide
        Arturo Zambrano added a comment -

        r52142: fix to cause to re-calculate client ID to include naming container ID, so that child components include the index at which they are in the list, in their client ID's

        Before this fix, all client id's of the same component, repeated in each list item, had the exact same client ID. This fixes the issues with the buttons and links mentioned in the description.

        Show
        Arturo Zambrano added a comment - r52142: fix to cause to re-calculate client ID to include naming container ID, so that child components include the index at which they are in the list, in their client ID's Before this fix, all client id's of the same component, repeated in each list item, had the exact same client ID. This fixes the issues with the buttons and links mentioned in the description.
        Hide
        Arturo Zambrano added a comment -

        r48679: added test page to QA ace:list test app to test h:commandButton, h:commandLink, ace:pushButton and ace:linkButton inside ace:list

        Show
        Arturo Zambrano added a comment - r48679: added test page to QA ace:list test app to test h:commandButton, h:commandLink, ace:pushButton and ace:linkButton inside ace:list
        Arturo Zambrano made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52142 Tue Dec 12 09:40:14 MST 2017 art.zambrano ICE-11277 fix to cause to re-calculate client ID to include naming container ID, so that child components include the index at which they are in the list, in their client ID's
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/list/ListRenderer.java
        Hide
        Arturo Zambrano added a comment -

        This is failing on Wildfly12.

        Show
        Arturo Zambrano added a comment - This is failing on Wildfly12.
        Arturo Zambrano made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #52488 Thu Jun 21 13:57:02 MDT 2018 art.zambrano ICE-11277 implemented custom processDecodes(), processValidators(), processUpdates(), and iterate() methods, in order to actually be able to proceess child components, especially UICommand and UIInput components, since the UIData superclass implementation assumed the existence of UIColumn components containing other child components
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/list/ACEList.java
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/list/ListRenderer.java
        Hide
        Arturo Zambrano added a comment -

        r52488: implemented custom processDecodes(), processValidators(), processUpdates(), and iterate() methods, in order to actually be able to proceess child components, especially UICommand and UIInput components, since the UIData superclass implementation assumed the existence of UIColumn components containing other child components

        This issue was actually failing on Tomcat as well, on JSF 2.2 and 2.3.

        Show
        Arturo Zambrano added a comment - r52488: implemented custom processDecodes(), processValidators(), processUpdates(), and iterate() methods, in order to actually be able to proceess child components, especially UICommand and UIInput components, since the UIData superclass implementation assumed the existence of UIColumn components containing other child components This issue was actually failing on Tomcat as well, on JSF 2.2 and 2.3.
        Arturo Zambrano made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Arturo Zambrano
            Reporter:
            Judy Guglielmin
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: