Author: mfortun Date: 2011-05-24 11:43:17 +0200 (Tue, 24 May 2011) New Revision: 915 Url: http://nuiton.org/repositories/revision/wikitty/915 Log: * upload rework Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-24 00:12:31 UTC (rev 914) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-24 09:43:17 UTC (rev 915) @@ -1,6 +1,7 @@ package org.nuiton.wikitty.publication.action; import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -8,6 +9,7 @@ import java.util.Map; import java.util.Map.Entry; +import org.nuiton.util.FileUtil; import org.nuiton.util.StringUtil; import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.WikittyUtil; @@ -21,11 +23,9 @@ import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.operators.Element; - - import com.opensymphony.xwork2.ActionContext; -public class PublicationActionEdit extends PublicationBaseAction{ +public class PublicationActionEdit extends PublicationBaseAction { /** * @@ -33,44 +33,34 @@ private static final long serialVersionUID = -590087371230933701L; protected String newExtension; - + protected Wikitty wikitty; private HashMap<String, Object> wikittyFieldMap; - - - protected File upload;//The actual file - - + protected File upload;// The actual file + static public PublicationActionEdit getAction() { return (PublicationActionEdit) ActionContext.getContext().get( CONTEXT_ACTION_KEY); } - + @Override public String execute() throws Exception { - System.out.println(upload); - doAction(); - - - + doAction(); + return SUCCESS; } - - - - - public void doAction(){ - + + public void doAction() { + WikittyProxy proxy = getWikittyPublicationProxy(); Object context; - + Map<String, Object> param = ActionContext.getContext().getParameters(); - - + if (param.containsKey("delete")) { // on nous demande supprimer le wikitty, on l'efface et on // affichera un wikitty vide @@ -81,8 +71,8 @@ wikitty = new WikittyImpl(); } else { List<String> argsString = new ArrayList<String>(); - String args = ActionContext.getContext().getParameters().get(ARGS_KEY) - .toString(); + String args = ActionContext.getContext().getParameters() + .get(ARGS_KEY).toString(); String[] argsTab = StringUtil.split(args, SEPARATOR); for (String arg : argsTab) { @@ -94,7 +84,7 @@ if (criteria == null) { wikitty = new WikittyImpl(); ActionContext.getContext().getParameters() - .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId()); + .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId()); } else { wikitty = proxy.findByCriteria(criteria); @@ -102,14 +92,14 @@ // si on ne retrouve pas le wikitty, mais qu'il vient d'etre cree // pour l'edition, on recree un wikitty avec ce meme identifiant - if (wikitty == null - && "0.0".equals( getArgument("version", ""))) { + if (wikitty == null && "0.0".equals(getArgument("version", ""))) { // c'est un nouvel objet, il n'a pas encore ete sauve, mais on // veut le faire - String id = getArgument("id", "");; + String id = getArgument("id", ""); + ; wikitty = new WikittyImpl(id); ActionContext.getContext().getParameters() - .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId()); + .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId()); } @@ -119,7 +109,7 @@ // on creer un nouveau wikitty vide que l'on editera wikitty = new WikittyImpl(); ActionContext.getContext().getParameters() - .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId()); + .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId()); } else { // on met a jour le wikitty avec les infos trouvees dans les @@ -160,8 +150,8 @@ .extractFieldName(key); if (wikitty.hasField(ext, fieldName)) { - if (!"true".equals(getArgument("isNull-" - + key, "false"))) { + if (!"true".equals(getArgument("isNull-" + key, + "false"))) { value = field.getValue(); } @@ -196,13 +186,15 @@ if (ext.equals(WikittyPubData.EXT_WIKITTYPUBDATA) && fieldName .equals(WikittyPubData.FIELD_WIKITTYPUBDATA_CONTENT)) { - if (null == WikittyPubDataHelper.getName(wikitty)) { + if (null == WikittyPubDataHelper + .getName(wikitty)) { WikittyPubDataHelper.setName( wikitty, String.valueOf(args1.get(key + "-filename"))); } - if (null == WikittyPubDataHelper.getMimeType(wikitty)) { + if (null == WikittyPubDataHelper + .getMimeType(wikitty)) { WikittyPubDataHelper.setMimeType( wikitty, String.valueOf(args1.get(key @@ -220,23 +212,18 @@ } } } - - - - - public File getUpload() { + + public File getUpload() { return upload; - } - - public void setFile(File upload){ - this.upload = upload; - } - - public void setUpload(File upload) { + } + + public void setFile(File upload) { this.upload = upload; - } + } - + public void setUpload(File upload) { + this.upload = upload; + } public Wikitty getWikitty() { return wikitty; @@ -245,13 +232,12 @@ public void setWikitty(Wikitty wikitty) { this.wikitty = wikitty; } - - - public List<String> getWikittyExtentionAviable(){ + + public List<String> getWikittyExtentionAviable() { List<String> result = new ArrayList<String>(); result.add("ponay"); result.add("machin"); - + return result; } @@ -260,42 +246,51 @@ } /* - * <s:combobox list="wikittyExtentionAviable" label="test" name="newExtension" /> + * <s:combobox list="wikittyExtentionAviable" label="test" + * name="newExtension" /> */ public void setNewExtension(String newExtension) { this.newExtension = newExtension; } - - - public String getPostUrl(){ - + + public String getPostUrl() { + return this.getArgument(ARGS_KEY, "") + ".action"; } - - + protected Map<String, Object> getFieldArguments() { - wikittyFieldMap = new HashMap<String, Object>(); - for (Entry<String, Object> en : ActionContext.getContext() - .getParameters().entrySet()) { + wikittyFieldMap = new HashMap<String, Object>(); + for (Entry<String, Object> en : ActionContext.getContext() + .getParameters().entrySet()) { - if (en.getKey().startsWith("Wikitty")) { + if (en.getKey().startsWith("Wikitty")) { - String value = ""; + String value = ""; - if (en.getValue() instanceof String[]) { - for (String occu : (String[]) en.getValue()) { - value += occu; - } - } else { - value = String.valueOf(en.getValue()); - } + if (en.getValue() instanceof String[]) { + for (String occu : (String[]) en.getValue()) { + value += occu; + } + } else { + value = String.valueOf(en.getValue()); + } - wikittyFieldMap.put(en.getKey(), value); - } + if ("BINARY".equals(value) && upload != null) { + try { + wikittyFieldMap.put(en.getKey(), + FileUtil.fileToByte(upload)); + upload.deleteOnExit(); + } catch (IOException e) { + // TODO mfortun-2011-05-24 really handle exception + e.printStackTrace(); + } + } else { + wikittyFieldMap.put(en.getKey(), value); + } - } - return wikittyFieldMap; -} -} + } - + } + return wikittyFieldMap; + } +} Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp =================================================================== --- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-24 00:12:31 UTC (rev 914) +++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-24 09:43:17 UTC (rev 915) @@ -48,9 +48,8 @@ <h1>Edit <%=wikitty.getId()%></h1> <pre><%=StringEscapeUtils.escapeHtml(String.valueOf(wikitty))%></pre> -<s:set var="urlPost"><%=action.getPostUrl()%></s:set> -<s:form action="%{#urlPost}" method="POST" enctype="multipart/form-data"> -<!-- <form class="edit" action="" method="post" enctype="multipart/form-data" > --> + + <form class="edit" action="<%=action.getPostUrl()%>" method="post" enctype="multipart/form-data" > <input type="hidden" name="id" value="<%=wikitty.getId()%>" /> <input type="hidden" name="version" value="<%=wikitty.getVersion()%>" /> <input type="hidden" name="extensions" value="<%=wikitty.getExtensionNames()%>"/> @@ -99,9 +98,9 @@ case BINARY: %> - <input type="hidden" name="<%=extName%>.<%=fieldName%>" value="file" /> + <input type="hidden" name="<%=extName%>.<%=fieldName%>" value="BINARY" /> <input type="file" name="File" label ="File"/> - <!-- <s:file name="file" label="File"/> --> + <% break; @@ -148,5 +147,5 @@ %> <input type="submit" name="store" value="Store" /> <input type="submit" name="delete" value="Delete" /> - </s:form> -<!-- </form> --> \ No newline at end of file + + </form> \ No newline at end of file