You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "David Paterson (JIRA)" <de...@myfaces.apache.org> on 2006/11/09 23:30:41 UTC

[jira] Updated: (TOMAHAWK-51) Popup windows: bad position on screen ( and components)

     [ http://issues.apache.org/jira/browse/TOMAHAWK-51?page=all ]

David Paterson updated TOMAHAWK-51:
-----------------------------------

    Status: Patch Available  (was: Open)

> Popup windows: bad position on screen (<t:popup> and <x:inputSuggest> components)
> ---------------------------------------------------------------------------------
>
>                 Key: TOMAHAWK-51
>                 URL: http://issues.apache.org/jira/browse/TOMAHAWK-51
>             Project: MyFaces Tomahawk
>          Issue Type: Bug
>          Components: Popup
>         Environment: Windows XP Pro SP2, Tomcat 4.1.30, JDK 1.4.2_09
>            Reporter: Javier Alperte
>         Assigned To: Werner Punz
>         Attachments: HtmlPopupRenderer.diff, JSPopup.diff
>
>
> Error positioning the popup windows shown by the components: <t:popup> and <x:inputSuggest>
> They don't have in consideration the relative position of the component in the page, and it's a problem if you place the component inside a DIV, where the positions must be relatives and not globals. 
> Solution: calculate the popup position based on component relative positions. For do that we need to assign an ID to the component in order to get the Document Element associated with it, and then we can use the HTML Object Position to calculate where to show the popup.
> Ej: Our component must generate a function like this:
>    function showMenu_<COMPONENT_ID>(event) {
>            var menuDiv = document.getElementById(<MENU_DIV_ID>);
>            var componentElement = document.getElementById(<COMPONENT_ID>);
>            if (menudiv.style.visibility == 'hidden' && event) { //Show menu
>                 menudiv.style.visibility = 'visible';
>                 menudiv.style.display = 'block';
>                 menudiv.style.zIndex = 3000;
>                 menudiv.style.top = componentElement.offsetTop + 10;
>                 var left = componentElement.offsetLeft + componentElement.offsetWidth - menudiv.offsetWidth;
>                 if (left < 0) //Move menu to the right side if it is too close to the left
>                     left += menudiv.offsetWidth;
>                 menudiv.style.left = left;
>             } else {
>                 menudiv.style.visibility = 'hidden';
>             }
>         }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira