Author: nbelaevski
Date: 2011-02-03 15:24:17 -0500 (Thu, 03 Feb 2011)
New Revision: 21435
Modified:
trunk/ui/dnd/ui/src/main/java/org/richfaces/renderkit/DropTargetRenderer.java
trunk/ui/dnd/ui/src/main/resources/META-INF/resources/org.richfaces/dnd-droppable.js
Log:
https://issues.jboss.org/browse/RF-10106
Modified: trunk/ui/dnd/ui/src/main/java/org/richfaces/renderkit/DropTargetRenderer.java
===================================================================
---
trunk/ui/dnd/ui/src/main/java/org/richfaces/renderkit/DropTargetRenderer.java 2011-02-03
20:13:51 UTC (rev 21434)
+++
trunk/ui/dnd/ui/src/main/java/org/richfaces/renderkit/DropTargetRenderer.java 2011-02-03
20:24:17 UTC (rev 21435)
@@ -22,8 +22,10 @@
package org.richfaces.renderkit;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
import javax.faces.component.ContextCallback;
import javax.faces.component.UIComponent;
@@ -51,6 +53,15 @@
@JsfRenderer(type = "org.richfaces.DropTargetRenderer", family =
AbstractDropTarget.COMPONENT_FAMILY)
public class DropTargetRenderer extends DnDRenderBase {
+ /**
+ *
+ */
+ private static final Set<String> ALL_SET =
Collections.singleton("@all");
+ /**
+ *
+ */
+ private static final Set<String> NONE_SET =
Collections.singleton("@none");
+
@Override
protected void doDecode(FacesContext facesContext, UIComponent component) {
Map<String, String> requestParamMap =
facesContext.getExternalContext().getRequestParameterMap();
@@ -121,7 +132,15 @@
function.addToBody(ajaxFunction);
AbstractDropTarget dropTarget = (AbstractDropTarget)component;
- options.put("acceptedTypes",
CoreAjaxRendererUtils.asSimpleSet(dropTarget.getAcceptedTypes()));
+ Set<String> acceptedTypes =
CoreAjaxRendererUtils.asSimpleSet(dropTarget.getAcceptedTypes());
+
+ if (acceptedTypes.contains("@none")) {
+ acceptedTypes = NONE_SET;
+ } else if (acceptedTypes.contains("@all")) {
+ acceptedTypes = ALL_SET;
+ }
+
+ options.put("acceptedTypes", acceptedTypes);
options.put("ajaxFunction", function);
options.put("parentId", getParentClientId(facesContext,
component));
}
Modified:
trunk/ui/dnd/ui/src/main/resources/META-INF/resources/org.richfaces/dnd-droppable.js
===================================================================
---
trunk/ui/dnd/ui/src/main/resources/META-INF/resources/org.richfaces/dnd-droppable.js 2011-02-03
20:13:51 UTC (rev 21434)
+++
trunk/ui/dnd/ui/src/main/resources/META-INF/resources/org.richfaces/dnd-droppable.js 2011-02-03
20:24:17 UTC (rev 21435)
@@ -105,17 +105,18 @@
},
accept : function(draggable) {
- // since acceptedTypes is optional it could be null.
- // In this case all types are accepted
- if (!this.options.acceptedTypes)
- return true;
-
- var accept;
+ var accept = false;
var acceptType = draggable.data("type");
if (acceptType) {
$.each(this.options.acceptedTypes, function() {
- accept = (acceptType == this);
- return !(accept);
+ if (this == "@none") {
+ return false;
+ }
+
+ if (this == acceptType || this == "@all") {
+ accept = true;
+ return false;
+ }
});
}
return accept;