diff --git a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java index 108fe172779e6b5bb519b173359c4c2602ef6cc9..a44c2b9ba2bebcfacdadaabad700e2ed79c9dd01 100644 --- a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java +++ b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java @@ -2,7 +2,10 @@ package net.ihe.gazelle.proxy.gui; import java.util.ArrayList; import java.util.Arrays; +import java.util.Calendar; import java.util.Collections; +import java.util.Date; +import java.util.GregorianCalendar; import java.util.List; import java.util.Map; @@ -32,11 +35,15 @@ import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import org.jboss.seam.faces.Redirect; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @Name("messagesStepBean") @Scope(ScopeType.PAGE) public class MessagesStepBean { + private static Logger log = LoggerFactory.getLogger(MessagesStepBean.class); + private transient HibernateMessageDataModel<AbstractMessage> messageDataModel; private MessageFilterStep messageFilterStep; @@ -198,5 +205,157 @@ public class MessagesStepBean { public void setFilterPathReceiver(boolean filterPathReceiver) { messageFilterStep.setFilterPathReceiver(filterPathReceiver); } + + public boolean isFilterPersoDate() { + return messageFilterStep.isFilterPersoDate(); + } + + public void setFilterPersoDate(boolean filterPersoDate) { + messageFilterStep.setFilterPersoDate(filterPersoDate); + } + + public Date getStartDate() { + return messageFilterStep.startDate; + } + + public Date getEndDate() { + return messageFilterStep.endDate; + } + + public void setStartDate(Date startDate) { + messageFilterStep.setStartDate(startDate); + } + + public void setEndDate(Date endDate) { + messageFilterStep.setEndDate(endDate); + } + public void dateSelection(String value) { + if (value.equals("1")) { + setFilterPersoDate(false); + } else { + setFilterDates(false); + } + } + + private String currentSelectDate; + + public String getCurrentSelectDate() { + return currentSelectDate; + } + + public void setCurrentSelectDate(String currentSelectDate) { + this.currentSelectDate = currentSelectDate; + } + + public void selectDate(String date) { + if (!(date.equals("--")) && !(date.isEmpty()) && date != null) { + Date startDate, endDate = null; + startDate = new Date(); + Calendar cal = new GregorianCalendar(); + + if (date.equals("today")) { + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + } + if (date.equals("yesterday")) { + if (cal.get(Calendar.DAY_OF_YEAR) == 1) { + cal.set(Calendar.YEAR, (cal.get(Calendar.YEAR) - 1)); + cal.set(Calendar.MONTH, cal.get(Calendar.DECEMBER)); + cal.set(Calendar.DAY_OF_MONTH, 31); + } else { + cal.set(Calendar.DAY_OF_YEAR, (cal.get(Calendar.DAY_OF_YEAR) - 1)); + } + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + } + if (date.equals("this week")) { + if (cal.get(Calendar.DAY_OF_YEAR) < 7) { + cal.set(Calendar.YEAR, (cal.get(Calendar.YEAR) - 1)); + cal.set(Calendar.MONTH, cal.get(Calendar.DECEMBER)); + cal.set(Calendar.DAY_OF_MONTH, 31 - (7 - cal.get(Calendar.DAY_OF_YEAR))); + } + cal.set(Calendar.DAY_OF_WEEK, 2); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + } + if (date.equals("this month")) { + cal.set(Calendar.DAY_OF_MONTH, 1); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + } + if (date.equals("last week")) { + if (cal.get(Calendar.WEEK_OF_YEAR) == 1) { + cal.set(Calendar.YEAR, (cal.get(Calendar.YEAR) - 1)); + cal.set(Calendar.WEEK_OF_YEAR, 52); + } else { + cal.set(Calendar.WEEK_OF_YEAR, (cal.get(Calendar.WEEK_OF_YEAR) - 1)); + } + cal.set(Calendar.DAY_OF_WEEK, 2); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + } + if (date.equals("last month")) { + if (cal.get(Calendar.MONTH) == 0) { + cal.set(Calendar.YEAR, (cal.get(Calendar.YEAR) - 1)); + cal.set(Calendar.MONTH, cal.get(Calendar.DECEMBER)); + } else { + cal.set(Calendar.MONTH, (cal.get(Calendar.MONTH) - 1)); + } + cal.set(Calendar.DAY_OF_MONTH, 1); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + } + if (date.equals("last hour")) { + cal.set(Calendar.HOUR, (cal.get(Calendar.HOUR) - 1)); + } + startDate = cal.getTime(); + endDate = new Date(); + + cal = new GregorianCalendar(); + if (date.equals("yesterday")) { + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + endDate = cal.getTime(); + } + if (date.equals("last week")) { + cal.set(Calendar.WEEK_OF_YEAR, cal.get(Calendar.WEEK_OF_YEAR)); + cal.set(Calendar.DAY_OF_WEEK, 2); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + endDate = cal.getTime(); + } + if (date.equals("last month")) { + cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)); + cal.set(Calendar.DAY_OF_MONTH, 1); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + endDate = cal.getTime(); + } + messageFilterStep.setStartDate(startDate); + messageFilterStep.setEndDate(endDate); + + } else { + log.error("Date problem"); + } + + } }