You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2010/11/25 05:11:20 UTC
svn commit: r1038911 -
/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadProgressBar.java
Author: ivaynberg
Date: Thu Nov 25 04:11:20 2010
New Revision: 1038911
URL: http://svn.apache.org/viewvc?rev=1038911&view=rev
Log:
Issue: WICKET-3181
Modified:
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadProgressBar.java
Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadProgressBar.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadProgressBar.java?rev=1038911&r1=1038910&r2=1038911&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadProgressBar.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadProgressBar.java Thu Nov 25 04:11:20 2010
@@ -17,13 +17,10 @@
package org.apache.wicket.extensions.ajax.markup.html.form.upload;
import org.apache.wicket.Application;
-import org.apache.wicket.Component;
import org.apache.wicket.IInitializer;
-import org.apache.wicket.behavior.AbstractBehavior;
-import org.apache.wicket.behavior.IBehavior;
-import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.IHeaderResponse;
import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.WicketEventReference;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.upload.FileUploadField;
import org.apache.wicket.markup.html.panel.Panel;
@@ -88,6 +85,12 @@ public class UploadProgressBar extends P
private final FileUploadField uploadField;
+ @Override
+ protected void onInitialize()
+ {
+ super.onInitialize();
+ form.getRootForm().setOutputMarkupId(true);
+ }
/**
* Constructor that will display the upload progress bar for every submit of the given form.
@@ -142,13 +145,6 @@ public class UploadProgressBar extends P
}
}
- @Override
- protected void onInitialize()
- {
- super.onInitialize();
- form.getRootForm().add(new FormEnabler(this, statusDiv, barDiv, uploadField));
- }
-
/**
* Override this to provide your own CSS, or return null to avoid including the default.
*
@@ -163,69 +159,24 @@ public class UploadProgressBar extends P
public void renderHead(IHeaderResponse response)
{
super.renderHead(response);
+ response.renderJavascriptReference(WicketEventReference.INSTANCE);
response.renderJavascriptReference(JS);
ResourceReference css = getCss();
if (css != null)
{
response.renderCSSReference(css);
}
- }
- /** {@inheritDoc} */
- @Override
- protected void onRemove()
- {
- // remove formenabler we added to the form
- for (IBehavior behavior : form.getBehaviors())
- {
- if (behavior instanceof FormEnabler)
- {
- if (((FormEnabler)behavior).getUploadProgressBar() == this)
- {
- form.remove(behavior);
- break;
- }
- }
- }
- super.onRemove();
- }
-
- /**
- * Hooks into form onsubmit and triggers the progress bar updates
- *
- * @author igor.vaynberg
- */
- private static class FormEnabler extends AbstractBehavior
- {
- private static final long serialVersionUID = 1L;
+ ResourceReference ref = new SharedResourceReference(RESOURCE_NAME);
- private final Component status, bar, uploadField;
- private final UploadProgressBar pbar;
+ final String uploadFieldId = (uploadField == null) ? "" : uploadField.getMarkupId();
- public FormEnabler(UploadProgressBar pbar, Component status, Component bar,
- Component uploadField)
- {
- this.pbar = pbar;
- this.bar = bar;
- this.status = status;
- this.uploadField = uploadField;
- }
-
- @Override
- public void onComponentTag(Component component, ComponentTag tag)
- {
- ResourceReference ref = new SharedResourceReference(RESOURCE_NAME);
- final String uploadFieldId = (uploadField == null) ? "" : uploadField.getMarkupId();
- tag.put("onsubmit", "var def=new Wicket.WUPB.Def('" + component.getMarkupId() + "', '" +
- status.getMarkupId() + "', '" + bar.getMarkupId() + "', '" +
- component.getPage().urlFor(ref, null) + "','" + uploadFieldId +
- "'); Wicket.WUPB.start(def);");
- }
-
- public UploadProgressBar getUploadProgressBar()
- {
- return pbar;
- }
+ response.renderOnDomReadyJavascript("Wicket.Event.add(document.getElementById('" +
+ form.getRootForm().getMarkupId() + "'), 'submit', function() {" +
+ "if (!document.getElementById('" + statusDiv.getMarkupId() + "')) return;" +
+ "var def=new Wicket.WUPB.Def('" + getMarkupId() + "', '" + statusDiv.getMarkupId() +
+ "', '" + barDiv.getMarkupId() + "', '" + urlFor(ref, null) + "','" + uploadFieldId +
+ "'); Wicket.WUPB.start(def);});");
}