ICEfaces
  1. ICEfaces
  2. ICE-4803

Can't nest draggable panelGroup in panelSeries

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.8.1
    • Fix Version/s: 1.8.2-RC1, 1.8.2
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      All

      Description

      If you take the component-showcase drag and drop example, which puts a draggable panelGroup within a panelSeries, and then turn off dragGhost, so that dragging the panelGroup results in it actually moving, you'll see that all of the virtual panelGroups move, since the style is being updated, which is not saved per row in the panelSeries.

        Activity

        Hide
        Mark Collette added a comment -

        Investigation of the bug started with inspecting the browser DOM with the YUI code versus the non-YUI code. At first I thought it migt be a CSS flow issue where when one DIV is moved, the others might naturally flow from there too. But inspection showed that all of the DIVs were getting the same x,y coordinated. Them flowing is what made them show up in a row, instead of all on top of each otyher. The cssUpdate mechanism looked different between the two. Then I noticed that dragGhost was set in the non-YUI code, which might account for it acting differently. Sure enough, when using the same mode, they both exhibited the same bug. I investigated the decode method on the panelGroup to see if the cssUpdate was somehow being mis-applied to all of the rows, which is when I found that we don't do row state saving of the style properties, and that's why it was being applied to all rows. So I added all the style related properties to the row state saving, and that fixed it.

        Subversion 19155
        icefaces\component\src\com\icesoft\faces\component\ext\HtmlPanelGroup.java

        Show
        Mark Collette added a comment - Investigation of the bug started with inspecting the browser DOM with the YUI code versus the non-YUI code. At first I thought it migt be a CSS flow issue where when one DIV is moved, the others might naturally flow from there too. But inspection showed that all of the DIVs were getting the same x,y coordinated. Them flowing is what made them show up in a row, instead of all on top of each otyher. The cssUpdate mechanism looked different between the two. Then I noticed that dragGhost was set in the non-YUI code, which might account for it acting differently. Sure enough, when using the same mode, they both exhibited the same bug. I investigated the decode method on the panelGroup to see if the cssUpdate was somehow being mis-applied to all of the rows, which is when I found that we don't do row state saving of the style properties, and that's why it was being applied to all rows. So I added all the style related properties to the row state saving, and that fixed it. Subversion 19155 icefaces\component\src\com\icesoft\faces\component\ext\HtmlPanelGroup.java
        Hide
        Mark Collette added a comment -

        To duplicate this, just take the component-showcase drag & drop example, and remove the dragGhost attribute, or turn it to false. If all of the panelGroups move, when you drag and drop one, then that's the bug. For automated testing, you can drag and drop one panelGroup, and test the style attribute of one of the non-dragged panelGroups to see if the x,y are being set.

        Show
        Mark Collette added a comment - To duplicate this, just take the component-showcase drag & drop example, and remove the dragGhost attribute, or turn it to false. If all of the panelGroups move, when you drag and drop one, then that's the bug. For automated testing, you can drag and drop one panelGroup, and test the style attribute of one of the non-dragged panelGroups to see if the x,y are being set.
        Hide
        Mark Collette added a comment -

        Sorry, the attribute to remove is: dragOptions="dragGhost"

        Show
        Mark Collette added a comment - Sorry, the attribute to remove is: dragOptions="dragGhost"
        Hide
        Joanne Bai added a comment -

        Mark confirmed that "item images stay at the dropping target area" is something expected without the dragGhost. Mark it as pass.

        Show
        Joanne Bai added a comment - Mark confirmed that "item images stay at the dropping target area" is something expected without the dragGhost. Mark it as pass.

          People

          • Assignee:
            Unassigned
            Reporter:
            Mark Collette
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: