ICEfaces
  1. ICEfaces
  2. ICE-11097

ace:dataTable - tooltip not displayed after editing table cell values

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: EE-3.3.0.GA_P03, EE-4.1.0.GA
    • Fix Version/s: 4.2, EE-3.3.0.GA_P05
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      All
    • Assignee Priority:
      P1
    • Support Case References:
    • Workaround Exists:
      Yes
    • Workaround Description:
      Hide
      The first scenario is easily fixed by wrapping the text in an h:panelGroup and setting the value of the 'for' attribute in ace:tooltip to the ID of this h:panelGroup, so that the text inside will be updated/replaced, but the tooltip listener will remain on the wrapper throughout updates.

      As for the second scenario, what works best is using the delegate mode of the ace:tooltip. The delegate demo in the showcase is a very clear example of how to use the tooltip in this mode to maintain the tooltip triggers throughout dynamic updates, while still being able to access row-specific data.
      Show
      The first scenario is easily fixed by wrapping the text in an h:panelGroup and setting the value of the 'for' attribute in ace:tooltip to the ID of this h:panelGroup, so that the text inside will be updated/replaced, but the tooltip listener will remain on the wrapper throughout updates. As for the second scenario, what works best is using the delegate mode of the ace:tooltip. The delegate demo in the showcase is a very clear example of how to use the tooltip in this mode to maintain the tooltip triggers throughout dynamic updates, while still being able to access row-specific data.

      Description

      An ace:tooltip is set in an ace:column of a dataTable. When the contents of this column/cell are modified, the tooltip no longer is displayed.

        Activity

        Arran Mccullough created issue -
        Hide
        Arran Mccullough added a comment -

        Attached test case that shows a few scenarios of this issue.

        Scenario #1 Steps:

        • Load welcomeICEfaces.jsf
        • Hover over the Column two values, a tooltip is shown.
        • Click the button to increase the values of this column by 10.
        • Hover over the values, the tooltip is no longer shown.

        Scenario #2 Steps:

        • Load welcomeICEfaces.jsf
        • Hover over the column two values, a tooltip is shown.
        • Edit the row by clicking the pencil icon.
        • Save or Cancel the editing
        • Hover of the column two value of this row, the tooltip is no longer shown. It does still show for the other rows.
        Show
        Arran Mccullough added a comment - Attached test case that shows a few scenarios of this issue. Scenario #1 Steps: Load welcomeICEfaces.jsf Hover over the Column two values, a tooltip is shown. Click the button to increase the values of this column by 10. Hover over the values, the tooltip is no longer shown. Scenario #2 Steps: Load welcomeICEfaces.jsf Hover over the column two values, a tooltip is shown. Edit the row by clicking the pencil icon. Save or Cancel the editing Hover of the column two value of this row, the tooltip is no longer shown. It does still show for the other rows.
        Arran Mccullough made changes -
        Field Original Value New Value
        Attachment Case13820Example.war [ 22239 ]
        Attachment Case13820Example.zip [ 22240 ]
        Ken Fyten made changes -
        Assignee Ken Fyten [ ken.fyten ]
        Hide
        Arran Mccullough added a comment -

        Setting alwaysExecuteContents="true" on the dataTable doesn't change the reported behavior.

        Show
        Arran Mccullough added a comment - Setting alwaysExecuteContents="true" on the dataTable doesn't change the reported behavior.
        Hide
        Ken Fyten added a comment -

        Sounds like the tooltip's association with the datatable cell isn't surviving the cell update.

        Show
        Ken Fyten added a comment - Sounds like the tooltip's association with the datatable cell isn't surviving the cell update.
        Ken Fyten made changes -
        Assignee Ken Fyten [ ken.fyten ] Arturo Zambrano [ artzambrano ]
        Fix Version/s 4.2 [ 12870 ]
        Fix Version/s EE-3.3.0.GA_P05 [ 13082 ]
        Assignee Priority P1 [ 10010 ]
        Hide
        Arturo Zambrano added a comment -

        This is the expected behaviour, and it's not exclusive to the ace:dataTable. Any element, acting as a trigger for a tooltip, that is dynamically updated (i.e. the original node is replaced) won't have the tooltip listener applied to the new node, unless the tooltip component is updated as well.

        The first scenario is easily fixed by wrapping the text in an h:panelGroup and setting the value of the 'for' attribute in ace:tooltip to the ID of this h:panelGroup, so that the text inside will be updated/replaced, but the tooltip listener will remain on the wrapper throughout updates.

        As for the second scenario, because of the nature of the cell editor component, the cells will be dynamically updated with the input and output facets, when entering/exiting the edit mode, respectively. It is not possible to simply add a wrapper to the cell editor component, as it has to be a first-level child of the column. For this scenario, what works best is using the delegate mode of the ace:tooltip. The delegate demo in the showcase is a very clear example of how to use the tooltip in this mode to maintain the tooltip triggers throughout dynamic updates, while still being able to access row-specific data.

        Show
        Arturo Zambrano added a comment - This is the expected behaviour, and it's not exclusive to the ace:dataTable. Any element, acting as a trigger for a tooltip, that is dynamically updated (i.e. the original node is replaced) won't have the tooltip listener applied to the new node, unless the tooltip component is updated as well. The first scenario is easily fixed by wrapping the text in an h:panelGroup and setting the value of the 'for' attribute in ace:tooltip to the ID of this h:panelGroup, so that the text inside will be updated/replaced, but the tooltip listener will remain on the wrapper throughout updates. As for the second scenario, because of the nature of the cell editor component, the cells will be dynamically updated with the input and output facets, when entering/exiting the edit mode, respectively. It is not possible to simply add a wrapper to the cell editor component, as it has to be a first-level child of the column. For this scenario, what works best is using the delegate mode of the ace:tooltip. The delegate demo in the showcase is a very clear example of how to use the tooltip in this mode to maintain the tooltip triggers throughout dynamic updates, while still being able to access row-specific data.
        Arturo Zambrano made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Won't Fix [ 2 ]
        Arturo Zambrano made changes -
        Workaround Description The first scenario is easily fixed by wrapping the text in an h:panelGroup and setting the value of the 'for' attribute in ace:tooltip to the ID of this h:panelGroup, so that the text inside will be updated/replaced, but the tooltip listener will remain on the wrapper throughout updates.

        As for the second scenario, what works best is using the delegate mode of the ace:tooltip. The delegate demo in the showcase is a very clear example of how to use the tooltip in this mode to maintain the tooltip triggers throughout dynamic updates, while still being able to access row-specific data.
        Workaround Exists Yes [ 10007 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

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

            Dates

            • Created:
              Updated:
              Resolved: