ICEfaces
  1. ICEfaces
  2. ICE-10453

ace:selectMenu - add "showListOnInput" attribute

    Details

      Description

      According to the original JIRA (ICE-2191) from when the ace:selectMenu was initially implemented, the showListOnInput attribute should work as follows:

      "...the showListOnInput=true behavior to only show the list if the user types to edit the input field, not on focus or click."

      However, as of 4.0, the component shows the list on click anywhere in the component (which is seems fine actually), BUT doesn't show the list if the component is tabbed into and them a key is pressed, which should present the list.

        Activity

        Hide
        Mircea Toma added a comment -

        Added 'showListOnInput' property to component. Modified selectmenu.js to render drop down when 'showListOnInput=true' and key is pressed when component is in focus.

        Show
        Mircea Toma added a comment - Added 'showListOnInput' property to component. Modified selectmenu.js to render drop down when 'showListOnInput=true' and key is pressed when component is in focus.
        Hide
        Liana Munroe added a comment -

        Verified ICEfaces4 trunk r43935. Tomcat 7, FF34 and Chrome 39.
        When tabbing into the component in IE browsers, the first time focus is received via tab the list is presented. The second time tabbing through, the list is not presented until a key is pressed. This occurs in IE 8, 9, 10 and 11.

        Show
        Liana Munroe added a comment - Verified ICEfaces4 trunk r43935. Tomcat 7, FF34 and Chrome 39. When tabbing into the component in IE browsers, the first time focus is received via tab the list is presented. The second time tabbing through, the list is not presented until a key is pressed. This occurs in IE 8, 9, 10 and 11.
        Hide
        Carmen Cristurean added a comment -

        The 'showListOnInput' attribute test was added to the ace:selectMenu QA test application:
        http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Nightly/selectMenu
        Test page: //selectMenuDynAttribute.jsf

        The list opens up when the 'showListOnInput' attribute is set to either true or false, and clicking/typing in the selectMenu.
        When tabbing through, the list is not displayed when using 'showListOnInput' = true or false.
        Tested with ICEfaces4 trunk r46164/ Chrome46, IE11, FF34.

        Show
        Carmen Cristurean added a comment - The 'showListOnInput' attribute test was added to the ace:selectMenu QA test application: http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Nightly/selectMenu Test page: //selectMenuDynAttribute.jsf The list opens up when the 'showListOnInput' attribute is set to either true or false, and clicking/typing in the selectMenu. When tabbing through, the list is not displayed when using 'showListOnInput' = true or false. Tested with ICEfaces4 trunk r46164/ Chrome46, IE11, FF34.
        Hide
        Mircea Toma added a comment -

        Changed 'showListOnInput' behaviour to only show the list if the user types to edit the input field, not on focus or click. Reuse 'focus' event that initializes the component to also show the options when showListOnInput=false. When focus is gained due to a click on the component the 'click' callback is temporarily disabled to avoid having it hide the options back.

        Tested with Chrome, Firefox, IE11 and IE9.

        Show
        Mircea Toma added a comment - Changed 'showListOnInput' behaviour to only show the list if the user types to edit the input field, not on focus or click. Reuse 'focus' event that initializes the component to also show the options when showListOnInput=false. When focus is gained due to a click on the component the 'click' callback is temporarily disabled to avoid having it hide the options back. Tested with Chrome, Firefox, IE11 and IE9.
        Hide
        Ken Fyten added a comment -

        Okay, things seems a little messed up right now.

        Using the showcase, without specifying 'showListOnInput=true', the list only displays once the user types into the input field. Clicking on the input field, or even the arrow, doesn't display the list.

        What should be happening when 'showListOnInput=true" is:

        • User clicks on input field - no list display.
        • User clicks on arrow next to input field - list displays.
        • User types into input field - list displays.

        When "showListOnInput=false" / default:

        • User clicks on input field - list displays.
        • User clicks on arrow next to input field - list displays.
        • User types in to input field - list displays.
        Show
        Ken Fyten added a comment - Okay, things seems a little messed up right now. Using the showcase, without specifying 'showListOnInput=true', the list only displays once the user types into the input field. Clicking on the input field, or even the arrow, doesn't display the list. What should be happening when 'showListOnInput=true" is: User clicks on input field - no list display. User clicks on arrow next to input field - list displays. User types into input field - list displays. When "showListOnInput=false" / default: User clicks on input field - list displays. User clicks on arrow next to input field - list displays. User types in to input field - list displays.
        Hide
        Mircea Toma added a comment -

        Modified selectMenu client code to always respond to clicks on the down arrow regardless of 'showListOnInput' state.

        Show
        Mircea Toma added a comment - Modified selectMenu client code to always respond to clicks on the down arrow regardless of 'showListOnInput' state.
        Hide
        Ken Fyten added a comment - - edited

        Sorry Mircea, I've completely messed this one up!

        Here's what we want:

        No matter what showListOnInput is set to:

        1. User clicks on input field with mouse - list displays.
        2. User clicks on arrow next to input field - list displays/toggles.

        This is all working except for #1.

        What else should be happening when 'showListOnInput=true" / default:

        User tabs into input field, types something - list displays. (Working)

        When "showListOnInput=false":
        #User tabs into input field types something - matching element (if one) is selected, no list displays.

        1. User tabs into input field and then presses Space - list displays.

        Also, I noticed right now that if you Shift-Tab out of the component the list displays and shouldn't.

        Show
        Ken Fyten added a comment - - edited Sorry Mircea, I've completely messed this one up! Here's what we want: No matter what showListOnInput is set to: User clicks on input field with mouse - list displays. User clicks on arrow next to input field - list displays/toggles. This is all working except for #1. What else should be happening when 'showListOnInput=true" / default: User tabs into input field, types something - list displays. (Working) When "showListOnInput=false": #User tabs into input field types something - matching element (if one) is selected, no list displays. User tabs into input field and then presses Space - list displays. Also, I noticed right now that if you Shift-Tab out of the component the list displays and shouldn't.
        Hide
        Mircea Toma added a comment -

        Changed client code to follow the latest behaviour specs.

        Show
        Mircea Toma added a comment - Changed client code to follow the latest behaviour specs.
        Hide
        Liana Munroe added a comment -

        Verified ICEfaces 4 trunk r47570. Tomcat 8, IE 11, 10, 9, 8, FF 43, Chrome 47.

        Show
        Liana Munroe added a comment - Verified ICEfaces 4 trunk r47570. Tomcat 8, IE 11, 10, 9, 8, FF 43, Chrome 47.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Ken Fyten
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: