Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.1-Beta, 3.0
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      ICEfaces 2.1, Advanced Component Environment (ace:)
    • Assignee Priority:
      P2
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial

      Description

      Add a new ace:tooltip component with various customization options such as position, delay, and effect. It should also be possible to attach ajax listeners and to embed arbitrary contents in it.
      1. AttributeBean.java
        4 kB
        Arturo Zambrano
      2. include.xhtml
        0.3 kB
        Arturo Zambrano
      3. tooltipSparkleTabset1.xhtml
        2 kB
        Arturo Zambrano
      4. tooltipSparkleTabset2.xhtml
        2 kB
        Arturo Zambrano
      1. 1.PNG
        54 kB

        Activity

        Hide
        Ken Fyten added a comment -

        The current jquery-based ace:tooltip is lacking some important features vs. the existing ice:panelTooltip component. The goal of the new ace:component is to provide equal or (ideally) better feature coverage as the existing ice: component.

        Features lacking include:

        • displayListener - used to update the tooltip panel contents immediately prior to display (requires round-trip)
        • ability to update content dynamically (see displayListener)
        • mousetracking (moveWithMouse)
        • Draggable tooltip panel
        • Built in (optional) header/body facets
        • Robust tooltip positioning (vs. numerous reported issues with qtip/jquery component).

        Having noted the deficiencies, the jquery tooltip has the following desirable features that the ice:panelTooltip lacks:

        • Use any event type to trigger display/hide of tooltip
        • effects/transitions support for showing/hiding tooltip
        • Custom positioning modes (top-left, bottom-right, etc.)
        • Ability to use with any parent component (ice:panelTooltip is limited to ice:panelGroup)
        • Simple text mode (use value attribute to display simple text tooltip
        • global mode, which uses parent components title attribute for tooltip text.
        Show
        Ken Fyten added a comment - The current jquery-based ace:tooltip is lacking some important features vs. the existing ice:panelTooltip component. The goal of the new ace:component is to provide equal or (ideally) better feature coverage as the existing ice: component. Features lacking include: displayListener - used to update the tooltip panel contents immediately prior to display (requires round-trip) ability to update content dynamically (see displayListener) mousetracking (moveWithMouse) Draggable tooltip panel Built in (optional) header/body facets Robust tooltip positioning (vs. numerous reported issues with qtip/jquery component). Having noted the deficiencies, the jquery tooltip has the following desirable features that the ice:panelTooltip lacks: Use any event type to trigger display/hide of tooltip effects/transitions support for showing/hiding tooltip Custom positioning modes (top-left, bottom-right, etc.) Ability to use with any parent component (ice:panelTooltip is limited to ice:panelGroup) Simple text mode (use value attribute to display simple text tooltip global mode, which uses parent components title attribute for tooltip text.
        Hide
        Ken Fyten added a comment -

        We need to assess if the jquery tooltip can be extended to support the missing features feasibly, or if we should instead re-implement this component ourselves to provide both sets of desirable features.

        Show
        Ken Fyten added a comment - We need to assess if the jquery tooltip can be extended to support the missing features feasibly, or if we should instead re-implement this component ourselves to provide both sets of desirable features.
        Hide
        Ken Fyten added a comment -

        Also note another reported JS error issue with the jquery tooltip: ICE-7220

        Show
        Ken Fyten added a comment - Also note another reported JS error issue with the jquery tooltip: ICE-7220
        Hide
        Arturo Zambrano added a comment -

        It seems feasible to extend the existing jquery tooltip to support most fesatures, but for some of them we might need to modify the qtip code. More details below:

        • Draggable tooltip panel
          Making things draggable in jquery is very common and straight-forward.
        • Built in (optional) header/body facets
          The existing component already supports including HTML and other components inside a tooltip. Adding header/body facets has been done with other components and should present no problems.
        • displayListener - used to update the tooltip panel contents immediately prior to display (requires round-trip)
        • ability to update content dynamically (see displayListener)
          The qtip website ( http://craigsworks.com/projects/qtip/demos/ ) shows ways to update content dynamically. So the qtip api would support these features.
        • mousetracking (moveWithMouse)
        • Robust tooltip positioning (vs. numerous reported issues with qtip/jquery component).
          These features seem to be the most challenging. Most likely it would require to modify the qtip code.
        Show
        Arturo Zambrano added a comment - It seems feasible to extend the existing jquery tooltip to support most fesatures, but for some of them we might need to modify the qtip code. More details below: Draggable tooltip panel Making things draggable in jquery is very common and straight-forward. Built in (optional) header/body facets The existing component already supports including HTML and other components inside a tooltip. Adding header/body facets has been done with other components and should present no problems. displayListener - used to update the tooltip panel contents immediately prior to display (requires round-trip) ability to update content dynamically (see displayListener) The qtip website ( http://craigsworks.com/projects/qtip/demos/ ) shows ways to update content dynamically. So the qtip api would support these features. mousetracking (moveWithMouse) Robust tooltip positioning (vs. numerous reported issues with qtip/jquery component). These features seem to be the most challenging. Most likely it would require to modify the qtip code.
        Hide
        Cruz Miraback added a comment -

        This component has been tested using grimlock rev# 25582 on tomcat6 server using the browsers: IE7, Firefox 3.6.7, Gchrome14.
        Test pages are located at: repo\qa\trunk\Regression-Icefaces2\Sparkle\tooltip

        ISSUES:

        All browsers

        1. The only effect that seems to work is 'fade'.

        2. Tooltip inside SparkleTabSet: The Tooltip renders outside of the tabSet (See attached screenshot).

        Show
        Cruz Miraback added a comment - This component has been tested using grimlock rev# 25582 on tomcat6 server using the browsers: IE7, Firefox 3.6.7, Gchrome14. Test pages are located at: repo\qa\trunk\Regression-Icefaces2\Sparkle\tooltip ISSUES: All browsers 1. The only effect that seems to work is 'fade'. 2. Tooltip inside SparkleTabSet: The Tooltip renders outside of the tabSet (See attached screenshot).
        Hide
        Ken Fyten added a comment -

        Target missing effect support and positioning issues for 2.1.

        Show
        Ken Fyten added a comment - Target missing effect support and positioning issues for 2.1.
        Hide
        Arturo Zambrano added a comment -

        attached test files for displayListener feature

        Show
        Arturo Zambrano added a comment - attached test files for displayListener feature
        Hide
        Arturo Zambrano added a comment -

        While working on ICE-7254, I realized that when using displayListener of a tooltip inside a tabset, the whole content of the content pane was updated, which resulting in re-initializing the tooltip widget and firing again the ajax request to trigger the display listener. This provoked an infinite loop. I added some code to only allow one tooltip with the same client id to be displayed on the page at a time.

        Show
        Arturo Zambrano added a comment - While working on ICE-7254 , I realized that when using displayListener of a tooltip inside a tabset, the whole content of the content pane was updated, which resulting in re-initializing the tooltip widget and firing again the ajax request to trigger the display listener. This provoked an infinite loop. I added some code to only allow one tooltip with the same client id to be displayed on the page at a time.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: