Author: ymartel Date: 2012-06-01 19:38:34 +0200 (Fri, 01 Jun 2012) New Revision: 170 Url: http://chorem.org/repositories/revision/chorem/170 Log: Prepare download of binary fields Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/GenericAction.java trunk/chorem-webmotion/src/main/java/org/wikitty/web/jsptag/WikittyDisplay.java trunk/chorem-webmotion/src/main/resources/mapping Modified: trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/GenericAction.java =================================================================== --- trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/GenericAction.java 2012-06-01 16:16:37 UTC (rev 169) +++ trunk/chorem-webmotion/src/main/java/org/chorem/webmotion/actions/GenericAction.java 2012-06-01 17:38:34 UTC (rev 170) @@ -6,21 +6,23 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.ChoremClient; +import org.chorem.ChoremConfigOption; import org.debux.webmotion.server.WebMotionController; import org.debux.webmotion.server.call.Call; import org.debux.webmotion.server.call.UploadFile; import org.debux.webmotion.server.render.Render; import org.nuiton.wikitty.entities.Element; +import org.nuiton.wikitty.entities.ElementField; import org.nuiton.wikitty.entities.Wikitty; import org.nuiton.wikitty.entities.WikittyExtension; import org.nuiton.wikitty.entities.WikittyImpl; import org.nuiton.wikitty.entities.WikittyTypes; -import org.nuiton.wikitty.generator.WikittyTagValue; import org.nuiton.wikitty.query.WikittyQuery; import org.nuiton.wikitty.query.WikittyQueryMaker; import org.nuiton.wikitty.query.WikittyQueryParser; import org.nuiton.wikitty.query.WikittyQueryResult; +import java.io.ByteArrayInputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -29,9 +31,6 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; -import org.chorem.ChoremConfig; -import org.chorem.ChoremConfigOption; -import org.nuiton.wikitty.entities.ElementField; /** * @@ -456,7 +455,7 @@ /** * Search the objects in relation with one given. - * The method {@link this#searchAsMap(org.chorem.ChoremClient, String[], String)} + * The method {@link this#searchAsMap(org.chorem.ChoremClient, String[], String, Integer)} * is called with a query created from the given id. * * @param client objet injecte par le framework webmotion/chorem @@ -467,4 +466,14 @@ LinkedHashMultimap<String, Wikitty> map = searchAsMap(client, null, query, 0); return renderView("search.jsp", "result", map); } + + public Render download(ChoremClient client, String id, String extension, String field) { + Wikitty wikitty = client.restore(id); + byte[] fieldValue = wikitty.getFieldAsBytes(extension, field); + ByteArrayInputStream stream = new ByteArrayInputStream(fieldValue); + //TODO ymartel + String name = wikitty.getFieldAsString(extension, "name"); + return renderDownload(stream, name, "application/octet-stream"); + } + } Modified: trunk/chorem-webmotion/src/main/java/org/wikitty/web/jsptag/WikittyDisplay.java =================================================================== --- trunk/chorem-webmotion/src/main/java/org/wikitty/web/jsptag/WikittyDisplay.java 2012-06-01 16:16:37 UTC (rev 169) +++ trunk/chorem-webmotion/src/main/java/org/wikitty/web/jsptag/WikittyDisplay.java 2012-06-01 17:38:34 UTC (rev 170) @@ -102,8 +102,8 @@ protected void viewBinary(JspWriter output, String contextPath, String name, Wikitty wikitty, FieldType field, String extName , String fieldName) throws JspException, IOException { - String value = wikitty.getFieldAsString(extName, fieldName); - /*{<%=name%> : <%=value%>}*/ + String url = contextPath + "/wikitty/view/" + wikitty.getId() + "/" + extName + "/" + fieldName; + /*{<%=name%> : <a href="<%=url%>">Download</a>}*/ } protected void viewBoolean(JspWriter output, String contextPath, String name, Modified: trunk/chorem-webmotion/src/main/resources/mapping =================================================================== --- trunk/chorem-webmotion/src/main/resources/mapping 2012-06-01 16:16:37 UTC (rev 169) +++ trunk/chorem-webmotion/src/main/resources/mapping 2012-06-01 17:38:34 UTC (rev 170) @@ -22,6 +22,7 @@ * /wikitty/edit/{id} action:GenericAction.edit * /wikitty/delete/{id} action:GenericAction.delete * /wikitty/save action:GenericAction.save +* /wikitty/view/{id}/{extension}/{field} action:GenericAction.download * /wikitty-json/searchField?q={query} action:GenericAction.searchFieldJson * /wikitty-json/search?q={query} action:GenericAction.searchJson * /wikitty-json/search?term={query} action:GenericAction.searchJson
participants (1)
-
ymartel@users.chorem.org