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

        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.
        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.
        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.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: