You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2007/11/01 19:48:30 UTC
svn commit: r591118 - in /wicket/trunk/jdk-1.4/wicket/src:
main/java/org/apache/wicket/markup/html/link/
test/java/org/apache/wicket/markup/html/link/
Author: jcompagner
Date: Thu Nov 1 11:48:29 2007
New Revision: 591118
URL: http://svn.apache.org/viewvc?rev=591118&view=rev
Log:
delete after download patch
WICKET-1113
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadLinkTest.java
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadPage.html
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadPage.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=591118&r1=591117&r2=591118&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 Thu Nov 1 11:48:29 2007
@@ -18,6 +18,7 @@
import java.io.File;
+import org.apache.wicket.RequestCycle;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.target.resource.ResourceStreamRequestTarget;
@@ -49,6 +50,8 @@
*/
private String fileName;
+ private boolean deleteAfter;
+
/**
* Constructor. File name used will be the result of <code>file.getName()</code>
@@ -146,6 +149,32 @@
{
return fn;
}
+
+ public void respond(RequestCycle requestCycle)
+ {
+ super.respond(requestCycle);
+
+ if (deleteAfter)
+ file.delete();
+ }
});
+ }
+
+ /**
+ * USE THIS METHOD WITH CAUTION!
+ *
+ * If true, the file will be deleted! The recommended way to use this setting, is to set this
+ * DownloadLink object's model with a LoadableDetachableModel instance and the resulting file
+ * being generated in a temporary folder.
+ *
+ * @param deleteAfter
+ * true to delete file after download succeeds
+ * @return component
+ */
+ public final DownloadLink setDeleteAfterDownload(boolean deleteAfter)
+ {
+ this.deleteAfter = deleteAfter;
+
+ return this;
}
}
Modified: wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadLinkTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadLinkTest.java?rev=591118&r1=591117&r2=591118&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadLinkTest.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadLinkTest.java Thu Nov 1 11:48:29 2007
@@ -16,6 +16,9 @@
*/
package org.apache.wicket.markup.html.link;
+import java.io.File;
+import java.io.IOException;
+
import org.apache.wicket.WicketTestCase;
import org.apache.wicket.protocol.http.MockServletContext;
import org.slf4j.Logger;
@@ -77,5 +80,27 @@
assertTrue(tester.getContentDispositionFromResponseHeader().startsWith(
"attachment; filename="));
assertEquals(0, tester.getContentLengthFromResponseHeader());
+ }
+
+ /**
+ * Tests file removal after download
+ */
+ public void testDeleteAfterLink()
+ {
+ DownloadPage page;
+
+ try
+ {
+ page = new DownloadPage();
+ }
+ catch (IOException e)
+ {
+ throw new RuntimeException(e);
+ }
+
+ tester.startPage(page);
+ File temporary = page.getTemporaryFile();
+ tester.clickLink(DownloadPage.DELETE_DOWNLOAD_LINK);
+ assertFalse(temporary.exists());
}
}
Modified: wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadPage.html
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadPage.html?rev=591118&r1=591117&r2=591118&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadPage.html (original)
+++ wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadPage.html Thu Nov 1 11:48:29 2007
@@ -3,5 +3,6 @@
<span wicket:id="textDownload"></span>
<span wicket:id="pdfDownload"></span>
<span wicket:id="customDownload"></span>
+ <span wicket:id="deleteDownload"></span>
</body>
</html>
Modified: wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadPage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadPage.java?rev=591118&r1=591117&r2=591118&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadPage.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/markup/html/link/DownloadPage.java Thu Nov 1 11:48:29 2007
@@ -33,9 +33,11 @@
static final String HELLO_WORLD = "Hello, World!";
static final String TEXT_DOWNLOAD_LINK = "textDownload";
static final String PDF_DOWNLOAD_LINK = "pdfDownload";
-
+ static final String DELETE_DOWNLOAD_LINK = "deleteDownload";
static final String CUSTOM_DOWNLOAD_LINK = "customDownload";
+ private final File temporaryFile;
+
/**
* Construct.
*
@@ -54,5 +56,17 @@
File customFile = File.createTempFile("Download", ".custom");
add(new DownloadLink(CUSTOM_DOWNLOAD_LINK, customFile));
+
+ temporaryFile = File.createTempFile("Download", ".delete");
+ add(new DownloadLink(DELETE_DOWNLOAD_LINK, temporaryFile).setDeleteAfterDownload(true));
+ }
+
+ /**
+ *
+ * @return temporary file
+ */
+ public File getTemporaryFile()
+ {
+ return temporaryFile;
}
}