ICEfaces
  1. ICEfaces
  2. ICE-10457

ace:dataTable - Can't change comboBox cellEditor value with row selection

    Details

      Description

      An ace:dataTable is configured to allow row selection as well as it can be made editable via the ace:cellEditor. In the cellEditor it renders an ace:comboBox to change the value. Upon putting the row in editable mode, it is not possible to use the ace:comboBox to select a new value. When clicking the component to display its values, the row reverts to it's non-edit state. This looks to be caused by having a rowSelectListener set on the dataTable component.

        Activity

        Hide
        Arran Mccullough added a comment -

        Attached test case that shows this issue.

        Steps:

        • Load welcomeICEfaces.jsf
        • Click the pencil icon to put a row in it's editable state.
        • In the first column an ace:comboBox is rendered, clicking the drop down arrow for this component puts the row in it's non-editable state.
        • In the second column there is an h:selectOneMenu, this component does not cause the issue.
        Show
        Arran Mccullough added a comment - Attached test case that shows this issue. Steps: Load welcomeICEfaces.jsf Click the pencil icon to put a row in it's editable state. In the first column an ace:comboBox is rendered, clicking the drop down arrow for this component puts the row in it's non-editable state. In the second column there is an h:selectOneMenu, this component does not cause the issue.
        Hide
        Arturo Zambrano added a comment -

        Committed fix to 4.0 trunk at revision 43938 and to 3.3 EE maintenance branch at revision 43939.

        The problem wasn't exclusive to ace:combobox; the problem occurred with any component when clicking on any element that is not an input, button or select element. This was because when having selection enabled on the table and while being in editing mode in a row, the row selection event listener wasn't suppressed, so clicking pretty much anywhere on the row caused a selection request, and that request produced a response that updated the row in its original state. The fix consists in stopping the click event propagation while in editing mode, in order to prevent row/cell selection (or that specific cell/row). After returning to non-editable mode, the row is selectable again.

        Show
        Arturo Zambrano added a comment - Committed fix to 4.0 trunk at revision 43938 and to 3.3 EE maintenance branch at revision 43939. The problem wasn't exclusive to ace:combobox; the problem occurred with any component when clicking on any element that is not an input, button or select element. This was because when having selection enabled on the table and while being in editing mode in a row, the row selection event listener wasn't suppressed, so clicking pretty much anywhere on the row caused a selection request, and that request produced a response that updated the row in its original state. The fix consists in stopping the click event propagation while in editing mode, in order to prevent row/cell selection (or that specific cell/row). After returning to non-editable mode, the row is selectable again.
        Hide
        Liana Munroe added a comment -

        Verified ICEfaces 4 trunk, ee-3.3.0 maintenance branch r43950 using supplied test application. Tomcat 7, FF 34, Chrome 39, IE 11.

        Show
        Liana Munroe added a comment - Verified ICEfaces 4 trunk, ee-3.3.0 maintenance branch r43950 using supplied test application. Tomcat 7, FF 34, Chrome 39, IE 11.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: