1 package com.instantbank.collections.commonQueuing.web; 2 3 import javax.ejb.FinderException; 4 import java.io.IOException; 5 import java.io.OutputStreamWriter; 6 import java.io.PrintWriter; 7 import javax.servlet.RequestDispatcher; 8 import javax.servlet.ServletConfig; 9 import javax.servlet.ServletContext; 10 import javax.servlet.ServletException; 11 import javax.servlet.http.HttpServlet; 12 import javax.servlet.http.HttpServletRequest; 13 import javax.servlet.http.HttpServletResponse; 14 import javax.servlet.http.HttpSession; 15 import com.instantbank.collections.commonQueuing.ejb.QueueServices; 16 import com.instantbank.collections.commonQueuing.ejb.QueueServicesHome; 17 import com.instantbank.collections.util.FilterChain; 18 import com.instantbank.collections.util.InstantbankException; 19 import com.instantbank.collections.util.ServiceLocator; 20 import com.instantbank.collections.util.StringFormat; 21 22 public class SetUpQueuesController extends HttpServlet { 23 private String debug = ""; 24 private QueueServices services; 25 private HttpSession session; 26 27 28 public void init(ServletConfig config) throws ServletException { 29 super.init(config); 30 try { 31 QueueServicesHome home = (QueueServicesHome)ServiceLocator.instance().createEJB("QueueServicesHome", QueueServicesHome.class, false); 32 services = home.create(); 33 } 34 catch(Exception e) {} 35 } 36 37 38 public void dispatch(HttpServletRequest request, HttpServletResponse response, String action) throws ServletException, IOException, FinderException { 39 String useCase = ""; 40 41 if(action.equals("preview")) { 42 useCase = "PreviewWorkGenerated"; 43 } 44 else if(action.equals("generate")) { 45 useCase = "GenerateWorkAdHoc"; 46 } 47 else if(action.equals("distribute")) { 48 useCase = "DistributeWorkAdHoc"; 49 } 50 ServletContext sc = getServletConfig().getServletContext(); 51 RequestDispatcher rd = sc.getRequestDispatcher("/commonQueuing_web/CommonQueuingDispatcher.jsp?useCase=" + useCase); 52 rd.forward(request, response); 53 } 54 55 56 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 57 doPost(request, response); 58 } 59 60 61 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 62 String action = ""; 63 com.instantbank.collections.util.FilterChain chain; 64 65 try { 66 action = request.getParameter("action"); 67 session = request.getSession(false); 68 session.setAttribute("hasException", "0"); 69 try { 70 chain = new com.instantbank.collections.util.FilterChain(true, getServletConfig().getServletContext()); 71 if(chain.processFilter(request, response)) { 72 return; 73 } 74 if(action.equals("initialize")) { 75 initialize(request, response); 76 } 77 else if(action.equals("getQueueList")) { 78 getQueueList(request, response); 79 } 80 else if(action.equals("preview")) { 81 dispatch(request, response, action); 82 } 83 else if(action.equals("generate")) { 84 dispatch(request, response, action); 85 } 86 else if(action.equals("distribute")) { 87 dispatch(request, response, action); 88 } 89 else if(action.equals("openSelectQueue")) { 90 openSelectQueue(request, response); 91 } 92 else if(action.equals("save")) { 93 saveQueue(request, response); 94 } 95 else { 96 throw new InstantbankException("112001", "Action " + action + " not supported"); 97 } 98 } 99 catch(Exception e) { 100 throw new InstantbankException(e, "112002", "Failed to execute controller action " + action + " (" + debug + ")"); 101 } 102 } 103 catch(InstantbankException e) { 104 session.setAttribute("hasException", "1"); 105 session.setAttribute("Exception", e); 106 if(response.isCommitted()) { 107 return; 108 } 109 response.sendRedirect("../main_web/ControllerError.jsp?showTechnical=0"); 110 } 111 } 112 113 114 public void getQueueList(HttpServletRequest request, HttpServletResponse response) throws ServletException, InstantbankException, IOException, FinderException { 115 String responseXml = ""; 116 117 String category = request.getParameter("category"); 118 Long queueType = new Long(request.getParameter("typeId")); 119 String queueName = request.getParameter("name"); 120 Long rowNum = new Long(request.getParameter("rownum")); 121 Long companyId = (Long)session.getAttribute("companyId"); 122 String objectType = (String)request.getParameter("objectType"); 123 responseXml = StringFormat.cleanXml(services.getQueues(companyId, objectType, category, queueType, queueName, rowNum.longValue(), 10)); 124 response.setContentType("text/html"); 125 OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream()); 126 PrintWriter out = new PrintWriter(osw); 127 out.println("<script>"); 128 out.print("top.xml='"); 129 out.print(responseXml); 130 out.println("';"); 131 out.println("top.showQueues();"); 132 out.println("</script>"); 133 out.close(); 134 } 135 136 137 private void initialize(HttpServletRequest request, HttpServletResponse response) throws ServletException, InstantbankException, IOException, FinderException { 138 Long companyId = (Long)session.getAttribute("companyId"); 139 Long queueId; 140 String xml = null; 141 142 queueId = new Long(request.getParameter("queueId")); 143 if(queueId.longValue() == 0) { 144 xml = services.newQueue(); 145 } 146 else { 147 xml = services.getQueue(queueId, companyId); 148 } 149 request.setAttribute("data", xml); 150 151 ServletContext sc = getServletConfig().getServletContext(); 152 RequestDispatcher rd = sc.getRequestDispatcher("/commonQueuing_web/QueueView.jsp?useCase=SetUpQueues&title=Set Up Queues"); 153 rd.forward(request, response); 154 } 155 156 157 public void openSelectQueue(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, FinderException { 158 ServletContext sc = getServletConfig().getServletContext(); 159 RequestDispatcher rd = sc.getRequestDispatcher("/commonQueuing_web/SelectQueueListView.jsp?useCase=OpenSelectQueue&title=Select a Queue"); 160 rd.forward(request, response); 161 } 162 163 164 public void saveQueue(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, FinderException { 165 Long companyId = (Long)session.getAttribute("companyId"); 166 String data = request.getParameter("data"); 167 String objectType = (String)request.getParameter("objectType"); 168 Long queueId = new Long(0); 169 Long userId = (Long)session.getAttribute("userId"); 170 Long validQueueId = new Long(0); 171 String xml = ""; 172 173 try { 174 queueId = services.saveQueue(companyId, userId, data); 175 xml = services.getQueue(queueId, companyId); 176 request.setAttribute("data", xml); 177 validQueueId = queueId; 178 } 179 catch(Exception e) { 180 session.setAttribute("hasException", "1"); 181 session.setAttribute("Exception", e); 182 request.setAttribute("data", data); 183 } 184 finally { 185 ServletContext sc = getServletConfig().getServletContext(); 186 RequestDispatcher rd = sc.getRequestDispatcher("/commonQueuing_web/QueueView.jsp?useCase=SetUpQueues&title=Set Up Queues"); 187 request.setAttribute("Reset", "SetUpQueuesController?action=initialize&objectType=" + objectType + "&queueId=" + validQueueId); 188 rd.forward(request, response); 189 } 190 } 191 192 193 public String getServletInfo() { 194 return "com.instantbank.collections.commonQueuing.web.SetUpQueuesController Information"; 195 } 196 } 197 198