ICEfaces
  1. ICEfaces
  2. ICE-10723

ace:tree - setAllExpanded(true) doesn't expand all rows

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-4.0.0.GA, EE-3.3.0.GA_P03
    • Fix Version/s: 4.1, EE-3.3.0.GA_P04
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      All

      Description

      When using the ace:tree stateMap to programmatically expand all nodes, the initial call to this only expands one level of nodes. Executing the action again shows the second level of nodes. After this, all nodes will show up expanded but not the first call.

        Activity

        Hide
        Arran Mccullough added a comment -

        Attached test case that shows this issue.

        Steps:

        • Load welcomeICEfaces.jsf
        • Click on the Expand Nodes button, only the Countries (root) node is expanded.
        • Click on the Expand nodes button again, the Provinces nodes are now expanded.
        • Click on the Contract nodes button. All nodes are contracted.
        • Click on the Expand nodes button, all nodes are expanded.
        Show
        Arran Mccullough added a comment - Attached test case that shows this issue. Steps: Load welcomeICEfaces.jsf Click on the Expand Nodes button, only the Countries (root) node is expanded. Click on the Expand nodes button again, the Provinces nodes are now expanded. Click on the Contract nodes button. All nodes are contracted. Click on the Expand nodes button, all nodes are expanded.
        Hide
        Arturo Zambrano added a comment -

        Committed fix to the 4.1 trunk at revision 45015 and to the 3.3 EE maintenance branch at revision 45016.

        The NodeStateMap only got entries of nodes that have been displayed. So. I added a utility function to populate the entire NodeStateMap before expanding/contracting all the nodes in the tree.

        Show
        Arturo Zambrano added a comment - Committed fix to the 4.1 trunk at revision 45015 and to the 3.3 EE maintenance branch at revision 45016. The NodeStateMap only got entries of nodes that have been displayed. So. I added a utility function to populate the entire NodeStateMap before expanding/contracting all the nodes in the tree.
        Hide
        Carmen Cristurean added a comment - - edited

        Verified using attached test case on 4.1 trunk r45025 / 3.3 EE maintenance branch r45025 in IE11/10/9/8, Firefox34, Chrome43.
        Note: in order to use attached test case, the commons-collections.jar should be added to the .war file.

        Test case has been added to the QA regressions suite for ace:tree:
        http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Nightly/tree (IF 4.1 trunk)
        http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces2/Sparkle/Nightly/tree (EE 3.3 maintenance)

        Show
        Carmen Cristurean added a comment - - edited Verified using attached test case on 4.1 trunk r45025 / 3.3 EE maintenance branch r45025 in IE11/10/9/8, Firefox34, Chrome43. Note: in order to use attached test case, the commons-collections.jar should be added to the .war file. Test case has been added to the QA regressions suite for ace:tree: http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Nightly/tree (IF 4.1 trunk) http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces2/Sparkle/Nightly/tree (EE 3.3 maintenance)
        Hide
        Arturo Zambrano added a comment -

        r45235: modified original fix to create a static key set first, when populating the NodeStateMap, in order to avoid ConcurrentModificationException exceptions when invoking callbacks
        r45236: committed fix to the 3.3 EE maintenance branch

        Show
        Arturo Zambrano added a comment - r45235: modified original fix to create a static key set first, when populating the NodeStateMap, in order to avoid ConcurrentModificationException exceptions when invoking callbacks r45236: committed fix to the 3.3 EE maintenance branch
        Hide
        Carmen Cristurean added a comment - - edited

        Ran the QA ace:tree regressions on ICEfaces4 trunk/ EE-3.3.0-maintenance branch r 46236:
        On ICEfaces4 trunk, the Ajax "reorder" event tests fail, as clicking on the + fails to drag a node, dragging the entire tree.
        On EE-3.3.0-maintenance branch, most of the demos fail to render the nodes (+ signs), see as example /treeOnly.jsf. There are a few demos rendering correctly the tree nodes, as example, /ICE-10723.jsf and /ICE-10723-lazy.jsf.

        Noticed also the province nodes are already expanded on first load of /ICE-10723-lazy.jsf, while all nodes are found contracted when first accessing /ICE-10723.jsf. Is this an issue?

        Show
        Carmen Cristurean added a comment - - edited Ran the QA ace:tree regressions on ICEfaces4 trunk/ EE-3.3.0-maintenance branch r 46236: On ICEfaces4 trunk, the Ajax "reorder" event tests fail, as clicking on the + fails to drag a node, dragging the entire tree. On EE-3.3.0-maintenance branch, most of the demos fail to render the nodes (+ signs), see as example /treeOnly.jsf. There are a few demos rendering correctly the tree nodes, as example, / ICE-10723 .jsf and / ICE-10723 -lazy.jsf. Noticed also the province nodes are already expanded on first load of / ICE-10723 -lazy.jsf, while all nodes are found contracted when first accessing / ICE-10723 .jsf. Is this an issue?
        Hide
        Arturo Zambrano added a comment -

        r46240: fix to ensure that the id rendered to call ice.ace.instance and to re-apply the reordering behaviour is the client id of the root container and not the client if of individual nodes.

        This fix was committed to the 4.0 trunk and solves the issue above. The issue was actually caused by the widgetVar removal changes (ICE-10733).

        The difference between ICE-10723-lazy.jsf and ICE-10723.jsf is not an issue. The former has a callback specified (stateCreationCallback="#

        {treeLazyBean.initState}

        "), which, as you can see in the bean code, expands the root node when the state map is created.

        Show
        Arturo Zambrano added a comment - r46240: fix to ensure that the id rendered to call ice.ace.instance and to re-apply the reordering behaviour is the client id of the root container and not the client if of individual nodes. This fix was committed to the 4.0 trunk and solves the issue above. The issue was actually caused by the widgetVar removal changes ( ICE-10733 ). The difference between ICE-10723 -lazy.jsf and ICE-10723 .jsf is not an issue. The former has a callback specified (stateCreationCallback="# {treeLazyBean.initState} "), which, as you can see in the bean code, expands the root node when the state map is created.
        Hide
        Arturo Zambrano added a comment -

        r46244: added jQuery UI CSS resources as a resource dependency for ace:tree (3.3 EE maintenance branch).

        This solves the issue in 3.3 with the icons not displaying. It wasn't related to previous fixes of this JIRA.

        Show
        Arturo Zambrano added a comment - r46244: added jQuery UI CSS resources as a resource dependency for ace:tree (3.3 EE maintenance branch). This solves the issue in 3.3 with the icons not displaying. It wasn't related to previous fixes of this JIRA.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: