ICEfaces
  1. ICEfaces
  2. ICE-732

Support for custom popups/tooltips on components (new ice:panelTooltip component)

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.5
    • Fix Version/s: 1.7DR#3, 1.7
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      Operating System: All
      Platform: All
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial

      Description

      We'd like to support the ability to associate a panelPopup component (that could contain virtually anything) with another component in such a way that when the user hovers the mouse over the target component for a configurable period of time (ex. 30ms) the panelPopup would display at a location based on the current mouse coordinates. When the user moved the mouse off the target component, the panelPopup would hide/close.

      We should consider supporting the following configuration attributes:
      - hoverDelay - # of millis that mouse must be continuously hovered over the component before the popup is displayed.
      - autoHide - Different value settings for:
         - "onClick" - Hide the popup if any area outside of the popup itself is clicked.
         - "onExit" - Hide the popup when the user moves the mouse out of the triggering component.
         - "none/false" - Don't autohide the popup (expects the app. to add a close button or some other device to hide the popup).

      This should work like the popupMenu where you associate a popupMenu on the page to one or more panelGroups via the popupMenu attribute. We do the same for this, have a popupPanel attribute on the panelGroup that you use to associate a popupPanel to the panelGroup, then wrap any components or regions that you want to have the popupPanel capability with a panelGroup. Eventually would could consider adding the "popupPanel" attribute to all components, but maybe having it on the panelGroup is enough?

      The other issue is whether this just displays a static panelPopup or if there is a roundtrip and the application can receive an event that can be used to populate the panelPopup or set it's state based on the component that is triggering the popup. This would be desirable if it's technically feasible.

      Also should work in UIData components, of course.

      Seems to be very similar in nature to the popupMenu.

        Activity

        Ken Fyten created issue -
        Icefaces Administrator made changes -
        Field Original Value New Value
        issue.field.bugzillaimportkey 745 12001
        Ken Fyten made changes -
        Affects Version/s 1.5 [ 10027 ]
        Affects Version/s 1.0.1 [ 10025 ]
        Ken Fyten made changes -
        Priority Minor [ 4 ] Major [ 3 ]
        Ken Fyten made changes -
        Fix Version/s 2.0 [ 10032 ]
        Ken Fyten made changes -
        Assignee Rob Mayhew [ rob.mayhew ]
        Ken Fyten made changes -
        Fix Version/s 1.6 [ 10031 ]
        Ken Fyten made changes -
        Assignee Priority P2
        Assignee Rob Mayhew [ rob.mayhew ]
        Ken Fyten made changes -
        Fix Version/s 1.6 [ 10031 ]
        Assignee Priority P2
        Assignee Rob Mayhew [ rob.mayhew ]
        Ken Fyten made changes -
        Fix Version/s 1.7 [ 10080 ]
        Ken Fyten made changes -
        Summary Support for fancy tooltips on components Support for custom popups/tooltips on components
        Affects [Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial]
        Assignee Adnan Durrani [ adnan.durrani ]
        Ken Fyten made changes -
        Description We'd like to support the ability to associate a popupPanel component (that could
        contain virtually anything) with another component in such a way that when the
        user hovers the mouse over the target component for a configurable period of
        time (ex. 30ms) the popupPanel would display at a location based on the current
        mouse coordinates. When the user moved the mouse off the target component, the
        panelPopup would hide/close.

        Here's a working example from BackBase:
        http://www.backbase.com/demos/explorer/#examples/s-tooltip.xml[2]

        Not sure if this is a new component, or maybe a new event type that all the
        components can fire so the application can display the panelPopup when required.

        For performance/responsiveness reasons we may want to deploy all the logic into
        the client.

        Rob, please scope this further to determine possible approaches to
        implementation along with ballpark effort estimates, etc.
        We'd like to support the ability to associate a popupPanel component (that could
        contain virtually anything) with another component in such a way that when the
        user hovers the mouse over the target component for a configurable period of
        time (ex. 30ms) the popupPanel would display at a location based on the current
        mouse coordinates. When the user moved the mouse off the target component, the
        panelPopup would hide/close.

        We should consider supporting the following configuration attributes:
        - hoverDelay - # of millis that mouse must be continuously hovered over the component before the popup is displayed.
        - autoHide - Different value settings for:
           - "onClick" - Hide the popup if any area outside of the popup itself is clicked.
           - "onExit" - Hide the popup when the user moves the mouse out of the triggering component.
           - "none/false" - Don't autohide the popup (expects the app. to add a close button or some other device to hide the popup).

        This should work like the popupMenu where you associate a popupMenu on the page to one or more panelGroups via the popupMenu attribute. We do the same for this, have a popupPanel attribute on the panelGroup that you use to associate a popupPanel to the panelGroup, then wrap any components or regions that you want to have the popupPanel capability with a panelGroup. Eventually would could consider adding the "popupPanel" attribute to all components, but maybe having it on the panelGroup is enough?

        The other issues is whether this just displays a static panelPopup or if there is a roundtrip adn the application can receive an event that can be used to populate the panelPopup or set it's state based on the component that is triggering the popup. This would be desirable if it's technically feasible.

        Also should work in UIData components, of course.

        Seems to be very similar in nature to the popupMenu.
        Ken Fyten made changes -
        Description We'd like to support the ability to associate a popupPanel component (that could
        contain virtually anything) with another component in such a way that when the
        user hovers the mouse over the target component for a configurable period of
        time (ex. 30ms) the popupPanel would display at a location based on the current
        mouse coordinates. When the user moved the mouse off the target component, the
        panelPopup would hide/close.

        We should consider supporting the following configuration attributes:
        - hoverDelay - # of millis that mouse must be continuously hovered over the component before the popup is displayed.
        - autoHide - Different value settings for:
           - "onClick" - Hide the popup if any area outside of the popup itself is clicked.
           - "onExit" - Hide the popup when the user moves the mouse out of the triggering component.
           - "none/false" - Don't autohide the popup (expects the app. to add a close button or some other device to hide the popup).

        This should work like the popupMenu where you associate a popupMenu on the page to one or more panelGroups via the popupMenu attribute. We do the same for this, have a popupPanel attribute on the panelGroup that you use to associate a popupPanel to the panelGroup, then wrap any components or regions that you want to have the popupPanel capability with a panelGroup. Eventually would could consider adding the "popupPanel" attribute to all components, but maybe having it on the panelGroup is enough?

        The other issues is whether this just displays a static panelPopup or if there is a roundtrip adn the application can receive an event that can be used to populate the panelPopup or set it's state based on the component that is triggering the popup. This would be desirable if it's technically feasible.

        Also should work in UIData components, of course.

        Seems to be very similar in nature to the popupMenu.
        We'd like to support the ability to associate a panelPopup component (that could contain virtually anything) with another component in such a way that when the user hovers the mouse over the target component for a configurable period of time (ex. 30ms) the panelPopup would display at a location based on the current mouse coordinates. When the user moved the mouse off the target component, the panelPopup would hide/close.

        We should consider supporting the following configuration attributes:
        - hoverDelay - # of millis that mouse must be continuously hovered over the component before the popup is displayed.
        - autoHide - Different value settings for:
           - "onClick" - Hide the popup if any area outside of the popup itself is clicked.
           - "onExit" - Hide the popup when the user moves the mouse out of the triggering component.
           - "none/false" - Don't autohide the popup (expects the app. to add a close button or some other device to hide the popup).

        This should work like the popupMenu where you associate a popupMenu on the page to one or more panelGroups via the popupMenu attribute. We do the same for this, have a popupPanel attribute on the panelGroup that you use to associate a popupPanel to the panelGroup, then wrap any components or regions that you want to have the popupPanel capability with a panelGroup. Eventually would could consider adding the "popupPanel" attribute to all components, but maybe having it on the panelGroup is enough?

        The other issue is whether this just displays a static panelPopup or if there is a roundtrip and the application can receive an event that can be used to populate the panelPopup or set it's state based on the component that is triggering the popup. This would be desirable if it's technically feasible.

        Also should work in UIData components, of course.

        Seems to be very similar in nature to the popupMenu.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #15318 Sat Dec 08 09:28:44 MST 2007 adnan.durrani tooltip_panelpopup.js created for ICE-732
        Files Changed
        Commit graph ADD /icefaces/trunk/icefaces/bridge/lib/extras/tooltip_panelpopup.js
        Ken Fyten made changes -
        Comment [ Lower priority, out of scope for v1.1. release. ]
        Ken Fyten made changes -
        Comment [ There have been more requests for this type of feature. Might be possible to use
        a context menu or popup menu component to do this if it was sufficiently flexible.
        ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #15376 Fri Dec 14 14:38:08 MST 2007 adnan.durrani Fix for ICE-732 (new ice:panelTooltip component added)
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/util/CoreUtils.java
        Commit graph MODIFY /icefaces/trunk/icefaces/bridge/lib/extras/tooltip_panelpopup.js
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/HtmlPanelGroup.java
        Commit graph MODIFY /icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/ice_properties/ice-panelGroup-props.xml
        Commit graph ADD /icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/custom/paneltooltip-component.xml
        Commit graph MODIFY /icefaces/trunk/icefaces/bridge/build.xml
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/renderkit/GroupRenderer.java
        Commit graph ADD /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/paneltooltip
        Commit graph ADD /icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/ice_cust_properties/cust-paneltooltip-props.xml
        Commit graph ADD /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/paneltooltip/PanelTooltip.java
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/panelpopup/PanelPopupRenderer.java
        Commit graph MODIFY /icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/extended-faces-config.xml
        Commit graph ADD /icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/custom/paneltooltip-renderer.xml
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/panelpopup/PanelPopup.java
        Commit graph MODIFY /icefaces/trunk/icefaces/component/conf/META-INF/faces-config.xml
        Commit graph ADD /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/paneltooltip/PanelTooltipRenderer.java
        Hide
        Adnan Durrani added a comment -

        The ice:panelTooltip component added to the repository. revision 15376:

        Show
        Adnan Durrani added a comment - The ice:panelTooltip component added to the repository. revision 15376:
        Hide
        Adnan Durrani added a comment -

        revision 15385: If the panelTooltip is draggable, its mean its dynamic as well

        Show
        Adnan Durrani added a comment - revision 15385: If the panelTooltip is draggable, its mean its dynamic as well
        Adnan Durrani made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Hide
        Adnan Durrani added a comment -

        revision 15386. The component is fulfilling all requirements mentioned above.

        Show
        Adnan Durrani added a comment - revision 15386. The component is fulfilling all requirements mentioned above.
        Adnan Durrani made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Adnan Durrani added a comment -

        Note: The draggable panelTooltip are always dynamic can't be static
        Note: The autoHide="false" will automatically make the panelTooltip dynamic, it can't be static

        Show
        Adnan Durrani added a comment - Note: The draggable panelTooltip are always dynamic can't be static Note: The autoHide="false" will automatically make the panelTooltip dynamic, it can't be static
        Ken Fyten made changes -
        Fix Version/s 1.7Beta 1 [ 10112 ]
        Fix Version/s 1.7 [ 10080 ]
        Ken Fyten made changes -
        Summary Support for custom popups/tooltips on components Support for custom popups/tooltips on components (new ice:panelTooltip component)
        Issue Type Improvement [ 4 ] New Feature [ 2 ]
        Hide
        Adnan Durrani added a comment -

        displayListener added to the MetadataGenerator. revision 15674

        Show
        Adnan Durrani added a comment - displayListener added to the MetadataGenerator. revision 15674
        Hide
        Adnan Durrani added a comment -

        displayListener added to the tooltip component and other changes has been made. revision 15681

        Show
        Adnan Durrani added a comment - displayListener added to the tooltip component and other changes has been made. revision 15681
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #15689 Wed Jan 30 12:20:42 MST 2008 adnan.durrani contextValue integrated. related to ICE-732
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/util/CoreUtils.java
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/paneltooltip/PanelTooltip.java
        Commit graph MODIFY /icefaces/trunk/icefaces/bridge/lib/extras/tooltip_panelpopup.js
        Hide
        Adnan Durrani added a comment -

        contextValue integrated revision: 15689

        Show
        Adnan Durrani added a comment - contextValue integrated revision: 15689
        Ken Fyten made changes -
        Fix Version/s 1.7 [ 10080 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Assignee Adnan Durrani [ adnan.durrani ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Ken Fyten
          • Votes:
            9 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: