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 2007/08/21 16:15:04 UTC
svn commit: r568140 -
/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java
Author: ivaynberg
Date: Tue Aug 21 07:15:04 2007
New Revision: 568140
URL: http://svn.apache.org/viewvc?rev=568140&view=rev
Log:
better model support
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java
Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java?rev=568140&r1=568139&r2=568140&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java Tue Aug 21 07:15:04 2007
@@ -18,6 +18,8 @@
import java.io.File;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
import org.apache.wicket.request.target.resource.ResourceStreamRequestTarget;
import org.apache.wicket.util.resource.FileResourceStream;
import org.apache.wicket.util.resource.IResourceStream;
@@ -38,14 +40,9 @@
private static final long serialVersionUID = 1L;
/**
- * File to stream
- */
- private final File file;
-
- /**
* File name to stream
*/
- private final String fileName;
+ private String fileName;
/**
@@ -64,10 +61,41 @@
{
throw new IllegalArgumentException("file cannot be null");
}
- this.file = file;
- this.fileName = file.getName();
+ setModel(new Model(file));
+ }
+
+ /**
+ * Constructor. File name used will be the result of
+ * <code>file.getName()</code>
+ *
+ * @param id
+ * component id
+ * @param model
+ * model that contains the file object
+ */
+ public DownloadLink(String id, IModel model)
+ {
+ super(id, model);
+ }
+
+ /**
+ * Constructor. File name used will be the result of
+ * <code>file.getName()</code>
+ *
+ * @param id
+ * component id
+ * @param model
+ * model that contains the file object
+ * @param fileName
+ * name of the file
+ */
+ public DownloadLink(String id, IModel model, String fileName)
+ {
+ super(id, model);
+ this.fileName = fileName;
}
+
/**
* Constructor
*
@@ -89,7 +117,7 @@
{
throw new IllegalArgumentException("fileName cannot be an empty string");
}
- this.file = file;
+ setModel(new Model(file));
this.fileName = fileName;
}
@@ -100,11 +128,21 @@
*/
public void onClick()
{
- IResourceStream resourceStream = new FileResourceStream(new org.apache.wicket.util.file.File(file));
- getRequestCycle().setRequestTarget(new ResourceStreamRequestTarget(resourceStream) {
+ final File file = (File)getModelObject();
+ if (file == null)
+ {
+ throw new IllegalStateException(getClass().getName() +
+ " failed to retrieve a File object from model");
+ }
+ final String fn = (fileName != null) ? fileName : file.getName();
+
+ IResourceStream resourceStream = new FileResourceStream(
+ new org.apache.wicket.util.file.File(file));
+ getRequestCycle().setRequestTarget(new ResourceStreamRequestTarget(resourceStream)
+ {
public String getFileName()
{
- return fileName;
+ return fn;
}
});
}