ICEfaces
  1. ICEfaces
  2. ICE-3064

using ice:menuItems nested inside dataTable breaks component

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7
    • Fix Version/s: 1.7.1
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      any

      Description

      Using the ice:menuItems component nested inside a dataTable breaks the component in that only the last table row contains a static list of menu items.
      see attached source files for further information
      1. ContactData.java
        1.0 kB
        Michael Thiem
      2. CustomMenuModel.java
        2 kB
        Michael Thiem
      3. MenuHandler.java
        2 kB
        Michael Thiem
      4. newmenu2.jspx
        3 kB
        Michael Thiem
      1. js_error.jpg
        111 kB
      2. screenshot.jpg
        197 kB
      3. screenshot-1.jpg
        117 kB
      4. screenshot-2.jpg
        120 kB
      5. screenshot-3.jpg
        164 kB
      6. screenshot-4.jpg
        75 kB
      7. screenshot-5.jpg
        183 kB
      8. screenshot-6.jpg
        148 kB
      9. screenshot-7.jpg
        78 kB
      10. screenshot-8.jpg
        81 kB

        Activity

        Hide
        yip.ng added a comment -

        From Michael: (See screenshot-7)

        When you hover over a menuItem you can see the list of submenus. If you look at their contents you will see that the first menu item is empty and the second contains the label of menuItem one and two.

        Show
        yip.ng added a comment - From Michael: (See screenshot-7) When you hover over a menuItem you can see the list of submenus. If you look at their contents you will see that the first menu item is empty and the second contains the label of menuItem one and two.
        Hide
        yip.ng added a comment -

        This is yet another hidden bug (CSS?) exposed by the fix for ICE-3076.

        Show
        yip.ng added a comment - This is yet another hidden bug (CSS?) exposed by the fix for ICE-3076 .
        Hide
        yip.ng added a comment -

        Fixed. See screenshot-8.

        Show
        yip.ng added a comment - Fixed. See screenshot-8.
        Hide
        yip.ng added a comment -

        From Michael:

        I tested it with the latest branch and besides a javascript error I get, everything seems to work fine now. The javascript error doesn't seem to have any impact on the functionality and occurs sporadically after some time of unresponsiveness of the client. The firebug error log is attached. Also, there's one more thing which I'm not sure of if it should be regarded as a bug or not. You can simply reproduce it by following the steps below:

        1. hover over the first menuitem
        2. select the first subitem 'Test1'
        3. the sub menuitem's actionlistener will be called and executed as expected and
        4. right after that the focus is set to the next menubar component which causes its submenus to expand automatically

        This might be a bit confusing for the user. I would expect that after the action has been executed the submenus of another menuitem should only expand when
        a user explicitly clicks on a menuItem.

        Show
        yip.ng added a comment - From Michael: I tested it with the latest branch and besides a javascript error I get, everything seems to work fine now. The javascript error doesn't seem to have any impact on the functionality and occurs sporadically after some time of unresponsiveness of the client. The firebug error log is attached. Also, there's one more thing which I'm not sure of if it should be regarded as a bug or not. You can simply reproduce it by following the steps below: 1. hover over the first menuitem 2. select the first subitem 'Test1' 3. the sub menuitem's actionlistener will be called and executed as expected and 4. right after that the focus is set to the next menubar component which causes its submenus to expand automatically This might be a bit confusing for the user. I would expect that after the action has been executed the submenus of another menuitem should only expand when a user explicitly clicks on a menuItem.
        Hide
        yip.ng added a comment -

        About the JS error:

        nsSessionStore.js (C:\Program Files\Mozilla Firefox\components\nsSessionStore.js) is a Firefox JS program. If you google the error, you will find a lot of people have had the same error. So it's nothing to do with ICEfaces?

        "This Error is being generated in the Firefox components script that stores the session data for a window."

        "I had that sort of nonsense when upgrading versions of FF and TB until I started removing all of the program directory prior to deploying the new version."

        "I uninstalled Firefox. Deleted the directory and removed the references in the registry. I then reinstalled a fresh copy of firefox and all plugins. So far I have not had any more problems."

        About the on hover event:

        This is expected behavior with the current menu item event handling logic. It is caused by the overlapping of menu item div's. To change this behavior, we need to figure out how to distinguish between the two types of hover event: normal hover event and hover event as a result of clicking an overlapping menu item div. (There could also be more than two layers of overlap and this could complicate things further?) And then we need to change the renderer and/or JavaScript accordingly.

        Show
        yip.ng added a comment - About the JS error: nsSessionStore.js (C:\Program Files\Mozilla Firefox\components\nsSessionStore.js) is a Firefox JS program. If you google the error, you will find a lot of people have had the same error. So it's nothing to do with ICEfaces? "This Error is being generated in the Firefox components script that stores the session data for a window." "I had that sort of nonsense when upgrading versions of FF and TB until I started removing all of the program directory prior to deploying the new version." "I uninstalled Firefox. Deleted the directory and removed the references in the registry. I then reinstalled a fresh copy of firefox and all plugins. So far I have not had any more problems." About the on hover event: This is expected behavior with the current menu item event handling logic. It is caused by the overlapping of menu item div's. To change this behavior, we need to figure out how to distinguish between the two types of hover event: normal hover event and hover event as a result of clicking an overlapping menu item div. (There could also be more than two layers of overlap and this could complicate things further?) And then we need to change the renderer and/or JavaScript accordingly.

          People

          • Assignee:
            Unassigned
            Reporter:
            Michael Thiem
          • Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: