Author: andrei_exadel
Date: 2008-04-03 08:13:44 -0400 (Thu, 03 Apr 2008)
New Revision: 7583
Modified:
trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java
trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js
trunk/ui/fileUpload/src/main/templates/org/richfaces/fileUpload.jspx
Log:
RF-2925
Modified:
trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java
===================================================================
---
trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java 2008-04-02
16:24:16 UTC (rev 7582)
+++
trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java 2008-04-03
12:13:44 UTC (rev 7583)
@@ -5,6 +5,7 @@
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
@@ -12,8 +13,10 @@
import javax.el.ValueExpression;
import javax.faces.FactoryFinder;
import javax.faces.component.UIComponent;
+import javax.faces.component.UIParameter;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
+import javax.faces.event.ActionEvent;
import javax.faces.render.RenderKit;
import javax.faces.render.RenderKitFactory;
import javax.servlet.ServletRequest;
@@ -21,6 +24,7 @@
import javax.servlet.http.HttpSession;
import org.ajax4jsf.Filter;
+import org.ajax4jsf.component.UIActionParameter;
import org.ajax4jsf.context.AjaxContext;
import org.ajax4jsf.context.AjaxContextImpl;
import org.ajax4jsf.event.AjaxEvent;
@@ -128,7 +132,7 @@
}
}
-
+
/**
* Put max file count into session scope
*
@@ -651,6 +655,25 @@
progressBar.setTransient(false);
return progressBar;
}
+
+
+ /**
+ * Returns set of children UIParameters
+ * @param context
+ * @param component
+ * @return
+ */
+ public Object getChildrenParams(FacesContext context, UIComponent component) {
+ Map<String, Object> parameters = new HashMap<String, Object>();
+ for (Iterator<UIComponent> iterator = component.getChildren().iterator();
iterator.hasNext();) {
+ UIComponent child = iterator.next();
+ if (child instanceof UIParameter) {
+ UIParameter p = (UIParameter)child;
+ parameters.put(p.getName(), p.getValue());
+ }
+ }
+ return ((parameters.size() > 0) ? ScriptUtils.toScript(parameters) :
JSReference.NULL);
+ }
/*
* (non-Javadoc)
Modified:
trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js
===================================================================
---
trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js 2008-04-02
16:24:16 UTC (rev 7582)
+++
trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js 2008-04-03
12:13:44 UTC (rev 7583)
@@ -377,7 +377,7 @@
uploadedCount: 0,
- initialize: function(id, formId, stopScript, getFileSizeScript, progressBarId, classes,
label, maxFiles, events, disabled, acceptedTypes, options, labels) {
+ initialize: function(id, formId, stopScript, getFileSizeScript, progressBarId, classes,
label, maxFiles, events, disabled, acceptedTypes, options, labels, parameters) {
this.id = id;
this.element = $(this.id);
if (formId != '') {
@@ -404,6 +404,7 @@
this.items = $(this.id + ":fileItems");
this.classes = classes;
this.events = events;
+ this.parameters = parameters;
this.maxFileBatchSize = maxFiles;
this.currentInput = $(this.id + ":file");
@@ -952,7 +953,12 @@
function (state) {
this.updateViewState(state);
}.bind(this));
- parentForm.submit();
+ if (this.parameters) {
+ _JSFFormSubmit(null, parentForm.id, null, this.parameters);
+ //parentForm.submit();
+ }else {
+ parentForm.submit();
+ }
}
for (var i = 0; i < l; i++) {
Modified: trunk/ui/fileUpload/src/main/templates/org/richfaces/fileUpload.jspx
===================================================================
--- trunk/ui/fileUpload/src/main/templates/org/richfaces/fileUpload.jspx 2008-04-02
16:24:16 UTC (rev 7582)
+++ trunk/ui/fileUpload/src/main/templates/org/richfaces/fileUpload.jspx 2008-04-03
12:13:44 UTC (rev 7583)
@@ -181,7 +181,7 @@
onsizerejected : #{this:getAsEventHandler(context, component,
"onsizerejected")}
};
- new FileUpload('#{clientId}','#{formId}',#{this:getStopScript(context,
component)}, #{this:getFileSizeScript(context, component)}
,'#{this:getProgressBarId(context, component)}', FileUpload.CLASSES,
#{this:getLabelMarkup(context, component)}, #{maxCount}, events,
#{component.attributes["disabled"]}, #{this:getAcceptedTypes(context,
component)},
{'autoclear':#{component.attributes["autoclear"]},'autoUpload':#{component.attributes["immediateUpload"]}},#{this:_getLabels(labels)});
+ new FileUpload('#{clientId}','#{formId}',#{this:getStopScript(context,
component)}, #{this:getFileSizeScript(context, component)}
,'#{this:getProgressBarId(context, component)}', FileUpload.CLASSES,
#{this:getLabelMarkup(context, component)}, #{maxCount}, events,
#{component.attributes["disabled"]}, #{this:getAcceptedTypes(context,
component)},
{'autoclear':#{component.attributes["autoclear"]},'autoUpload':#{component.attributes["immediateUpload"]}},#{this:_getLabels(labels)},#{this:getChildrenParams(context,
component)});
</script>
</span>
<f:call name="utils.encodeEndFormIfNessesary" />