ICEfaces
  1. ICEfaces
  2. ICE-996

TabChangeListeners/TabChangeEvents proliferate

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.5
    • Fix Version/s: 1.6DR#1, 1.6
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      Operating System: Windows XP
      Platform: PC

      Description

      TabChangeListener is doing strange things. The TabChangeEvents seem to be
      proliferating as tabSetChanged() method calls are doubling on every tab change, e.g:

      11:01:53,015 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:55,437 INFO [STDOUT] TabChangeEvent: new tab index=0
      11:01:55,437 INFO [STDOUT] TabChangeEvent: new tab index=0
      11:01:56,546 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:56,546 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:56,546 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:56,546 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:57,218 INFO [STDOUT] TabChangeEvent: new tab index=0
      11:01:57,218 INFO [STDOUT] TabChangeEvent: new tab index=0
      11:01:57,218 INFO [STDOUT] TabChangeEvent: new tab index=0
      11:01:57,218 INFO [STDOUT] TabChangeEvent: new tab index=0
      11:01:57,218 INFO [STDOUT] TabChangeEvent: new tab index=0
      11:01:57,218 INFO [STDOUT] TabChangeEvent: new tab index=0
      11:01:57,218 INFO [STDOUT] TabChangeEvent: new tab index=0
      11:01:57,218 INFO [STDOUT] TabChangeEvent: new tab index=0
      11:01:58,156 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,156 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,156 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,156 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,171 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,171 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,171 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,171 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,171 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,171 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,171 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,171 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,171 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,187 INFO [STDOUT] TabChangeEvent: new tab index=1
      11:01:58,187 INFO [STDOUT] TabChangeEvent: new tab index=1

        Activity

        Hide
        Philip Breau added a comment -

        Created an attachment (id=112)
        test case

        Show
        Philip Breau added a comment - Created an attachment (id=112) test case
        Hide
        Greg McCleary added a comment -

        This bug goes away when the panelTabSet is placed in a panelGrid ... bizarre

        --------------------------------------------------------------------
        <ice:form partialSubmit="true">

        <ice:panelGrid columns="1">

        <ice:panelTabSet binding="#

        {bean.tabSet}

        "
        selectedIndex="1">
        <ice:panelTab label="Tab 1">
        </ice:panelTab>
        <ice:panelTab label="Tab 2">
        </ice:panelTab>
        <ice:panelTab label="Tab 3">
        </ice:panelTab>
        </ice:panelTabSet>

        </ice:panelGrid>

        </ice:form>

        --------------------------------------------------------------

        It's a work around but I'll keep working on a fix for this one.

        Show
        Greg McCleary added a comment - This bug goes away when the panelTabSet is placed in a panelGrid ... bizarre -------------------------------------------------------------------- <ice:form partialSubmit="true"> <ice:panelGrid columns="1"> <ice:panelTabSet binding="# {bean.tabSet} " selectedIndex="1"> <ice:panelTab label="Tab 1"> </ice:panelTab> <ice:panelTab label="Tab 2"> </ice:panelTab> <ice:panelTab label="Tab 3"> </ice:panelTab> </ice:panelTabSet> </ice:panelGrid> </ice:form> -------------------------------------------------------------- It's a work around but I'll keep working on a fix for this one.
        Hide
        Greg McCleary added a comment -

        Placing a panelTabset in a panelGrid or panelGroup eliminates the
        tabChangeListener propagation.

        When the propagation occurs a new tabChangeListener (the Backing Bean) instance
        is created. These new Bean instances are doubled with each tabChange click.

        Modifying the output of the panelTabSet has no effect. For example wrapping the
        panelTabSet TABLE in a DIV does not prevent event propagation.

        Show
        Greg McCleary added a comment - Placing a panelTabset in a panelGrid or panelGroup eliminates the tabChangeListener propagation. When the propagation occurs a new tabChangeListener (the Backing Bean) instance is created. These new Bean instances are doubled with each tabChange click. Modifying the output of the panelTabSet has no effect. For example wrapping the panelTabSet TABLE in a DIV does not prevent event propagation.
        Hide
        Greg McCleary added a comment -

        Another workaround: Use a methodBinding to set the tabChangeListener in the TAG.

        <ice:panelTabSet binding="#

        {bean.tabSet}

        "
        selectedIndex="1"
        tabChangeListener="#

        {bean.processTabChange}

        ">
        <ice:panelTab label="Tab 1">
        </ice:panelTab>
        <ice:panelTab label="Tab 2">
        </ice:panelTab>
        <ice:panelTab label="Tab 3">
        </ice:panelTab>
        </ice:panelTabSet>

        Show
        Greg McCleary added a comment - Another workaround: Use a methodBinding to set the tabChangeListener in the TAG. <ice:panelTabSet binding="# {bean.tabSet} " selectedIndex="1" tabChangeListener="# {bean.processTabChange} "> <ice:panelTab label="Tab 1"> </ice:panelTab> <ice:panelTab label="Tab 2"> </ice:panelTab> <ice:panelTab label="Tab 3"> </ice:panelTab> </ice:panelTabSet>
        Hide
        Adnan Durrani added a comment -

        Fixed -r13071 Some how the TabChangelistener is getting doubled on each
        tabChangeEvent. We have added a reconcile method in requestApplyPhase to see if
        there is any duplication then fix it.

        The attached test case has been added under the following location for easy
        installation.
        svn\repo\support\iraptor\1000\1016 -r 13070

        Show
        Adnan Durrani added a comment - Fixed -r13071 Some how the TabChangelistener is getting doubled on each tabChangeEvent. We have added a reconcile method in requestApplyPhase to see if there is any duplication then fix it. The attached test case has been added under the following location for easy installation. svn\repo\support\iraptor\1000\1016 -r 13070

          People

          • Assignee:
            Unassigned
            Reporter:
            Philip Breau
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: