diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessageBean.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessageBean.java index f76a1abade9414f1a5b385b1c8334d688fd4c8d5..224b0bfc5ec745ae3ec38f24ee89384c99c18b6a 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessageBean.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessageBean.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; import java.sql.Timestamp; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -34,6 +35,7 @@ import org.apache.commons.httpclient.methods.multipart.PartSource; import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; +import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; @@ -63,6 +65,8 @@ public class MessageBean { private AbstractMessage message; + private String permanentLink; + public AbstractMessage getMessage() { return message; } @@ -179,14 +183,14 @@ public class MessageBean { } return messageIndex; } - + public Integer getMessageIndexMax() { AbstractMessage message = getMessage(); if (message != null && message.getConnection() != null && message.getConnection().getMessages() != null) { List<AbstractMessage> messages = message.getConnection().getSortedMessages(); int i = 1; for (AbstractMessage abstractMessage : messages) { - messageIndexMax=i++; + messageIndexMax = i++; } } return messageIndexMax; @@ -257,7 +261,8 @@ public class MessageBean { return "<pre>" + result + "</pre>"; } - public void validate() { + public void validate(String proxyId) { + // First send the file to EVSClient HttpClient client = new HttpClient(); PostMethod filePost = new PostMethod(Preferences.getProperty("evsclient.url") + "upload"); @@ -282,7 +287,9 @@ public class MessageBean { String encodedKey = URLEncoder.encode(key, "UTF-8"); HttpServletResponse response = (HttpServletResponse) extCtx.getResponse(); - String url = Preferences.getProperty("evsclient.url") + "validate.seam?file=" + encodedKey; + // String url = Preferences.getProperty("evsclient.url") + "validate.seam?file=" + encodedKey; + String url = Preferences.getProperty("evsclient.url") + "validate.seam?file=" + encodedKey + + "&proxyId=" + (getMessage().getId() + 1); response.sendRedirect(url); } catch (IOException e) { @@ -291,6 +298,36 @@ public class MessageBean { } } + public void intResult() { + Map<String, String> urlParams = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); + permanentLink = null; + message = getMessage(); + + if (urlParams != null && !urlParams.isEmpty()) { + if (urlParams.containsKey("permanentLink")) { + String url = urlParams.get("permanentLink"); + if (urlParams.containsKey("oid")) { + String oid = urlParams.get("oid"); + permanentLink = url + "&oid=" + oid; + ArrayList<String> pLinkList = new ArrayList<String>(); + if (message.getPermanentLink() != null) { + pLinkList = message.getPermanentLink(); + } + if (!(pLinkList.contains(permanentLink))) { + pLinkList.add(new String(permanentLink)); + message.setPermanentLink(pLinkList); + + EntityManager entityManager = (EntityManager) Component.getInstance("entityManager"); + message = entityManager.merge(message); + entityManager.flush(); + } else { + log.error("This permanentLink is already saved !"); + } + } + } + } + } + public String redirectToMessage(AbstractMessage message) { if (message.getId() == null) { return null;