Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.6.2
-
Fix Version/s: 1.8.1
-
Component/s: ICE-Components
-
Labels:None
-
Environment:All
-
ICEsoft Forum Reference:
-
Support Case References:
Description
1. Drag the red draggable square to the yellow div area.
Console output will show:
14:01:07,564 INFO [STDOUT] TestBean.dragListener: eventType=3, dropValue=0, dragValue=null
2. Scroll yellow div down the bottom
3. Drag the red draggable square to this new area of the yellow div.
Console output will now show:
14:01:13,911 INFO [STDOUT] TestBean.dragListener: eventType=3, dropValue=1, dragValue=null
Notice that the drop values differ depending on where we drag the item to in the div.
-
- JIRA_2614_src.zip
- 129 kB
- Tyler Johnson
-
Hide
- JIRA_2614.war
- 6.12 MB
- Sam Xiao
-
- META-INF/MANIFEST.MF 0.1 kB
- Test.jspx 1.0 kB
- WEB-INF/.faces-config.mex 0.1 kB
- WEB-INF/classes/TestBean.class 1 kB
- WEB-INF/classes/TestBean.java 0.6 kB
- WEB-INF/classes/TestBeanList.class 2 kB
- WEB-INF/classes/TestBeanList.java 1 kB
- WEB-INF/faces-config.xml 0.7 kB
- WEB-INF/faces-config.xml.orig 0.3 kB
- WEB-INF/lib/backport-util-concurrent.jar 319 kB
- WEB-INF/lib/commons-beanutils.jar 184 kB
- WEB-INF/lib/commons-collections.jar 558 kB
- WEB-INF/lib/commons-digester.jar 140 kB
- WEB-INF/lib/commons-discovery.jar 70 kB
- WEB-INF/lib/commons-el.jar 110 kB
- WEB-INF/lib/commons-fileupload.jar 87 kB
- WEB-INF/lib/commons-logging.jar 52 kB
- WEB-INF/lib/el-api.jar 24 kB
- WEB-INF/lib/jsf-api.jar 356 kB
- WEB-INF/lib/jsf-impl.jar 778 kB
- WEB-INF/lib/jstl.jar 17 kB
- WEB-INF/lib/xercesImpl.jar 1.15 MB
- WEB-INF/lib/xml-apis.jar 190 kB
- WEB-INF/web.xml.orig 0.8 kB
- index.jsp 0.2 kB
- xmlhttp/css/royale/css-images/add.gif 0.1 kB
- xmlhttp/css/.../css-images/arrow-ff-dis.gif 0.9 kB
- xmlhttp/css/.../css-images/arrow-ff.gif 0.2 kB
- xmlhttp/css/.../arrow-first-dis.gif 0.9 kB
- xmlhttp/css/.../css-images/arrow-first.gif 0.2 kB
-
Hide
- JIRA_2614.war
- 2.51 MB
- Tyler Johnson
-
- META-INF/MANIFEST.MF 0.0 kB
- Test.jspx 0.9 kB
- WEB-INF/classes/TestBean.class 1 kB
- WEB-INF/classes/TestBeanList.class 2 kB
- WEB-INF/faces-config.xml 0.7 kB
- WEB-INF/faces-config.xml.orig 0.3 kB
- WEB-INF/lib/backport-util-concurrent.jar 343 kB
- WEB-INF/lib/commons-beanutils.jar 184 kB
- WEB-INF/lib/commons-collections.jar 558 kB
- WEB-INF/lib/commons-digester.jar 107 kB
- WEB-INF/lib/commons-fileupload.jar 52 kB
- WEB-INF/lib/commons-logging.jar 52 kB
- WEB-INF/lib/icefaces-comps.jar 621 kB
- WEB-INF/lib/icefaces.jar 687 kB
- WEB-INF/.../krysalis-jCharts-1.0.0-alpha-1.jar 151 kB
- WEB-INF/web.xml 3 kB
- WEB-INF/web.xml.orig 0.8 kB
- index.jsp 0.2 kB
- xmlhttp/css/royale/css-images/add.gif 0.1 kB
- xmlhttp/css/.../css-images/arrow-ff-dis.gif 0.9 kB
- xmlhttp/css/.../css-images/arrow-ff.gif 0.2 kB
- xmlhttp/css/.../arrow-first-dis.gif 0.9 kB
- xmlhttp/css/.../css-images/arrow-first.gif 0.2 kB
- xmlhttp/css/.../css-images/arrow-fr.gif 0.3 kB
- xmlhttp/css/.../arrow-last-dis.gif 0.9 kB
- xmlhttp/css/.../css-images/arrow-last.gif 0.3 kB
- xmlhttp/css/.../arrow-next-dis.gif 0.9 kB
- xmlhttp/css/.../css-images/arrow-next.gif 0.2 kB
- xmlhttp/css/.../arrow-previous-dis.gif 0.9 kB
- xmlhttp/css/.../arrow-previous.gif 0.2 kB
-
- ScreenHunter_03.jpg
- 72 kB
-
- ScreenHunter_04.jpg
- 73 kB
-
- ScreenHunter_05.jpg
- 71 kB
-
- ScreenHunter_06.jpg
- 73 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
To make the test case clearer, I adjusted the style as follows:
<ice:panelGroup dropTarget="true" dropValue="#
{bean.id}"
style="background:yellow;height:100px;width:100px;border:2px; border-style:dotted; border-color:black">
The source of the bug lies with Drag and Drop collision detection in the browser. It can be observed that if the red div is dropped outside the scrollable region where the yellow div is clipped, the drop event will still occur.
This is also worth looking at after 1.7beta if other Drag and Drop JavaScript changes are being considered.
Source code for test case
This issue has been fixed in version 1.8.2 of Scriptaculous:
https://prototype.lighthouseapp.com/projects/8887/tickets/59-drag-drop-problem-in-scroll-div
A patch is also available. The fix is mainly in Droppables.isAffected().
Replaced Droppables.isAffected() with 1.8.2 version. Didn't work. Did a diff. There is no change at all from our version.
Applied patch as provided by Thomas Fuchs (author of Scriptaculous). Still doesn't work.
The patch works with the test case made for it. (See attached screenshot ScreenHunter_02 Apr. 30 16.28.jpg.) Yet it doesn't work with our test case.
The patch requires the id of the scrollable div, but even with the addition of the scroller id (hardcoded for now, may require addition of scroller id attribute later), it still doesn't work. Now if you scroll down to the bottom yellow div's to do the drag and drop, no event seems to happen at all. See screenshots ScreenHunter_03.jpg and ScreenHunter_04.jpg.
Seems we have introduced some bug(s) when overriding the Droppables.show() function in Scriptaculous. If we go back to the original Droppables.show() function (not involved in the patch), the event firing seems to work fine.
Fixed our overriding show() function. This together with the patched isAffected() function from Scriptaculous fixed the issue. See screenshots ScreenHunter_05.jpg and ScreenHunter_06.jpg.
The new isAffected() function needs to know the id of the scroller. It's been hardcoded so far.
Next, we need to add a scroller id attribute and pass it to Scriptaculous.
Done. Note that you need to use the new attribute (dropTargetScrollerId) for the fix to work:
<div id="scrolling_div" ...>
<ice:panelSeries ...>
<ice:panelGroup dropTarget="true" dropTargetScrollerId="scrolling_div" ...>
...
</ice:panelGroup>
</ice:panelSeries>
</div>
Application created with MyEclipse and tested on Jboss 4.2.0.