Author: ivaynberg Date: Sun Feb 28 19:30:24 2010 New Revision: 917266 URL: http://svn.apache.org/viewvc?rev=917266&view=rev Log: improved content disposition api and handling
Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ContentDisposition.java (with props) Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/AbstractResource.java wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestHandler.java wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java?rev=917266&r1=917265&r2=917266&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/link/DownloadLink.java Sun Feb 28 19:30:24 2010 @@ -21,13 +21,13 @@ import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.apache.wicket.ng.request.cycle.RequestCycle; +import org.apache.wicket.ng.resource.ContentDisposition; import org.apache.wicket.protocol.http.WicketURLEncoder; import org.apache.wicket.request.target.resource.ResourceStreamRequestHandler; import org.apache.wicket.util.resource.FileResourceStream; import org.apache.wicket.util.resource.IResourceStream; import org.apache.wicket.util.string.Strings; - /** * A link that streams a file to the client. When clicked this link will prompt the save as dialog * in the browser. @@ -151,12 +151,6 @@ new ResourceStreamRequestHandler(resourceStream) { @Override - public String getFileName() - { - return fn; - } - - @Override public void respond(RequestCycle requestCycle) { super.respond(requestCycle); @@ -166,7 +160,7 @@ file.delete(); } } - }); + }.setFileName(fn).setContentDisposition(ContentDisposition.ATTACHMENT)); } /** Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/AbstractResource.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/AbstractResource.java?rev=917266&r1=917265&r2=917266&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/AbstractResource.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/AbstractResource.java Sun Feb 28 19:30:24 2010 @@ -58,23 +58,6 @@ protected abstract ResourceResponse newResourceResponse(Attributes attributes); /** - * Represents content disposition of a resource - * - * @author Matej Knopp - */ - public enum ContentDisposition { - /** - * Inline resources are usually displayed within the browser window - */ - INLINE, - - /** - * For attachment resources the browser should display a save dialog - */ - ATTACHMENT; - }; - - /** * Represents data used to configure response and write resource data. * * @author Matej Knopp Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ContentDisposition.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ContentDisposition.java?rev=917266&view=auto ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ContentDisposition.java (added) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ContentDisposition.java Sun Feb 28 19:30:24 2010 @@ -0,0 +1,18 @@ +package org.apache.wicket.ng.resource; + +/** + * Represents content disposition of a resource + * + * @author Matej Knopp + */ +public enum ContentDisposition { + /** + * Inline resources are usually displayed within the browser window + */ + INLINE, + + /** + * For attachment resources the browser should display a save dialog + */ + ATTACHMENT; +} \ No newline at end of file Propchange: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ContentDisposition.java ------------------------------------------------------------------------------ svn:executable = * Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestHandler.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestHandler.java?rev=917266&r1=917265&r2=917266&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestHandler.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/resource/ResourceStreamRequestHandler.java Sun Feb 28 19:30:24 2010 @@ -18,13 +18,13 @@ import org.apache.wicket.IRequestHandler; import org.apache.wicket.ng.request.cycle.RequestCycle; +import org.apache.wicket.ng.resource.ContentDisposition; import org.apache.wicket.ng.resource.ResourceStreamResource; import org.apache.wicket.ng.resource.IResource.Attributes; import org.apache.wicket.util.resource.IResourceStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - /** * Request target that responds by sending its resource stream. * @@ -40,6 +40,7 @@ * with web requests. */ private String fileName; + private ContentDisposition contentDisposition; /** the resource stream for the response. */ private final IResourceStream resourceStream; @@ -95,7 +96,7 @@ * @return Optional filename, used to set the content disposition header. Only meaningful when * using with web requests. */ - public String getFileName() + public final String getFileName() { return fileName; } @@ -134,7 +135,7 @@ ResourceStreamResource resource = new ResourceStreamResource(resourceStream); resource.setFileName(fileName); - + resource.setContentDisposition(contentDisposition); resource.respond(attributes); } @@ -145,7 +146,7 @@ * * @return The this. */ - public ResourceStreamRequestHandler setFileName(String fileName) + public final ResourceStreamRequestHandler setFileName(String fileName) { this.fileName = fileName; return this; @@ -158,7 +159,20 @@ public String toString() { return "[ResourceStreamRequestTarget[resourceStream=" + resourceStream + ",fileName=" + - fileName + "]"; + fileName + ", contentDisposition=" + contentDisposition + "]"; + } + + public final ContentDisposition getContentDisposition() + { + return contentDisposition; } + public final ResourceStreamRequestHandler setContentDisposition( + ContentDisposition contentDisposition) + { + this.contentDisposition = contentDisposition; + return this; + } + + } Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?rev=917266&r1=917265&r2=917266&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java Sun Feb 28 19:30:24 2010 @@ -1517,7 +1517,7 @@ */ public String getContentTypeFromResponseHeader() { - String contentType = getLastResponse().getHeader("Content-Type"); + String contentType = getLastResponse().getContentType(); if (contentType == null) { throw new WicketRuntimeException("No Content-Type header found");