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

        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.
        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.
        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
        Hide
        Arturo Zambrano added a comment -

        This is failing on Wildfly12.

        Show
        Arturo Zambrano added a comment - This is failing on Wildfly12.
        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.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: