diff --git a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/MessagesBean.java b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/MessagesBean.java index 5f4bd1a5ca1ffbc8caa331d504934931d83534a0..632f35e2e55ac3b0b1e73e6be38f634549b75ae6 100644 --- a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/MessagesBean.java +++ b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/MessagesBean.java @@ -28,6 +28,7 @@ import org.jboss.seam.annotations.Destroy; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; +import org.jboss.seam.faces.Redirect; @Name("messagesBean") @Scope(ScopeType.PAGE) @@ -178,6 +179,32 @@ public class MessagesBean { return null; } + public void redirectToMessageFromURL() { + FacesContext fc = FacesContext.getCurrentInstance(); + String id = (String) fc.getExternalContext().getRequestParameterMap().get("id"); + AbstractMessage message = ProxyDAO.getMessageByID(Integer.parseInt(id), entityManager); + + Redirect redirect = Redirect.instance(); + redirect.setParameter("id", id); + + String viewId = ""; + if (message instanceof HL7Message) { + viewId = "/messages/hl7.xhtml"; + } + if (message instanceof DicomMessage) { + viewId = "/messages/dicom.xhtml"; + } + if (message instanceof SyslogMessage) { + viewId = "/messages/syslog.xhtml"; + } + if (message instanceof HTTPMessage) { + viewId = "/messages/http.xhtml"; + } + + redirect.setViewId(viewId); + redirect.execute(); + } + public String redirectToMessage(AbstractMessage message) { if (message.getId() == null) { return null; @@ -213,7 +240,6 @@ public class MessagesBean { messageFilterStep.setFilterDates(filterDates); } - public void setFilterPathFrom(boolean filterPathFrom) { messageFilterStep.setFilterPathFrom(filterPathFrom); } diff --git a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/dao/ProxyDAO.java b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/dao/ProxyDAO.java index e28a09ef035d4fa21037821da33d5deb16858f2e..8bc774d9d0efa17434dd46e8b5e9d1c925a2bf4c 100644 --- a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/dao/ProxyDAO.java +++ b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/dao/ProxyDAO.java @@ -12,6 +12,7 @@ import org.hibernate.criterion.Restrictions; import net.ihe.gazelle.proxy.dao.ChannelDAO; import net.ihe.gazelle.proxy.model.Channel; +import net.ihe.gazelle.proxy.model.message.AbstractMessage; import net.ihe.gazelle.proxy.model.tm.Step; import net.ihe.gazelle.proxy.util.HibernateUtilPKI; import net.ihe.gazelle.proxy.util.HibernateUtilProxy; @@ -73,4 +74,12 @@ public class ProxyDAO { return steps; } + public static AbstractMessage getMessageByID(int id, EntityManager entityManager) { + Session session = HibernateUtilProxy.getSession(entityManager); + Criteria criteria = session.createCriteria(AbstractMessage.class); + criteria.add(Restrictions.eq("id", new Integer(id))); + AbstractMessage message = (AbstractMessage) criteria.uniqueResult(); + return message; + } + } diff --git a/gazelle-proxy-war/src/main/webapp/message.xhtml b/gazelle-proxy-war/src/main/webapp/message.xhtml new file mode 100644 index 0000000000000000000000000000000000000000..d5f01c9756aaf28069cf23136629a69fa2a8fa2c --- /dev/null +++ b/gazelle-proxy-war/src/main/webapp/message.xhtml @@ -0,0 +1,19 @@ +<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<ui:composition xmlns="http://www.w3.org/1999/xhtml" + xmlns:s="http://jboss.com/products/seam/taglib" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:rich="http://richfaces.ajax4jsf.org/rich" + xmlns:gazelle="http://www.ihe.net/gazelle" + xmlns:a4j="http://richfaces.org/a4j" template="/layout/template.xhtml"> + + <ui:param name="pageNameUrl" value="testInstance.seam" /> + + <ui:define name="body"> + <h:form> + #{messagesBean.redirectToMessageFromURL()} + </h:form> + </ui:define> +</ui:composition> \ No newline at end of file