in myfaces-html5-core/src/main/resources/META-INF/resources/org.apache.myfaces.html5/dnd.js [96:151]
myfaces.html5.dnd.drop = function(event, source, rerender, acceptedMimeTypes){
//cancel the event. this is necessary for DnD execution
if (event.preventDefault)
event.preventDefault();
//CALL jsf.ajax.request with constructing parameters
//this call should will the dropListener and make the rerender operation
//also, will send event mime types and values too!
var options = {};
//set execute
options.execute = "@this"; //XXX: do we need to parametrize this option too?
//set render
if(rerender)
options.render = rerender;
else
options.render = "@none";
//set param
var paramsToSend = event.dataTransfer.getData(myfaces.html5.dnd.PARAM_MIME_TYPE);
if(paramsToSend)
options[myfaces.html5.dnd.PARAM_MIME_TYPE] = paramsToSend;
//set the data according to acceptedMimeTypes
if(acceptedMimeTypes){
var foundMimeTypes;
if(acceptedMimeTypes.length==1 && acceptedMimeTypes[0]==myfaces.html5.dnd.ACCEPT_ALL_MIME_TYPES){
foundMimeTypes = new Array(event.dataTransfer.types.length);
for(var i=0; i<event.dataTransfer.types.length; i++){
foundMimeTypes[i] = event.dataTransfer.types.item(i);
}
}
else {
foundMimeTypes = acceptedMimeTypes.filter(function (mimeType) {return event.dataTransfer.types.contains(mimeType)});
}
if(foundMimeTypes.length > 0){
options["org.apache.myfaces.dnd.foundMimeTypes"] = myfaces.html5.common.getArrayAsString(foundMimeTypes);
for(var i=0; i< foundMimeTypes.length; i++){
var mimeType = foundMimeTypes[i];
var data = event.dataTransfer.getData(mimeType);
if(data){
options[mimeType] = data;
}
}
}
}
//set event
options["javax.faces.behavior.event"] = "drop"
jsf.ajax.request(source, event, options);
return false;
}