1    package com.instantbank.collections.collectionsActivities.web;
2    
3    import javax.servlet.RequestDispatcher;
4    import javax.servlet.ServletConfig;
5    import javax.servlet.ServletContext;
6    import javax.servlet.ServletException;
7    import javax.servlet.http.HttpServlet;
8    import javax.servlet.http.HttpServletRequest;
9    import javax.servlet.http.HttpServletResponse;
10   import javax.servlet.http.HttpSession;
11   import java.io.IOException;
12   import java.io.OutputStreamWriter;
13   import java.io.PrintWriter;
14   import com.instantbank.collections.collectionsActivities.ejb.ActionResultServices;
15   import com.instantbank.collections.collectionsActivities.ejb.ActionResultServicesHome;
16   import com.instantbank.collections.util.FilterChain;
17   import com.instantbank.collections.util.InstantbankException;
18   import com.instantbank.collections.util.ServiceLocator;
19   import com.instantbank.collections.util.StringFormat;
20   
21   
22   public class ActionMaintenanceController extends HttpServlet {
23     private OutputStreamWriter osw;
24     private HttpSession session;
25     private ActionResultServices services;
26   
27   
28     /**
29      * Initialize global variables
30      *
31      * @param config Description of the Parameter
32      * @throws ServletException Description of the Exception
33      */
34     public void init(ServletConfig config) throws ServletException {
35       super.init(config);
36       try {
37         ActionResultServicesHome home = (ActionResultServicesHome)
38           ServiceLocator.instance().createEJB("ActionResultServicesHome", ActionResultServicesHome.class, false);
39         services = home.create();
40       }
41       catch(Exception e) {
42         throw new ServletException(e);
43       }
44     }
45   
46   
47     /**
48      * Process the HTTP Get request
49      *
50      * @param request Description of the Parameter
51      * @param response Description of the Parameter
52      * @throws ServletException Description of the Exception
53      * @throws IOException Description of the Exception
54      */
55     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
56       doPost(request, response);
57     }
58   
59   
60     /**
61      * Process the HTTP Post request
62      *
63      * @param request Description of the Parameter
64      * @param response Description of the Parameter
65      * @throws ServletException Description of the Exception
66      * @throws IOException Description of the Exception
67      */
68     public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
69       String action;
70       com.instantbank.collections.util.FilterChain chain;
71   
72       try {
73         action = request.getParameter("action");
74         session = request.getSession(false);
75         session.setAttribute("hasException", "0");
76         try {
77           chain = new com.instantbank.collections.util.FilterChain(true, getServletConfig().getServletContext());
78           if(chain.processFilter(request, response)) {
79             return;
80           }
81           if(action.equals("initialize")) {
82             initialize(request, response);
83           }
84           else if(action.equals("getAction")) {
85             getAction(request, response);
86           }
87           else if(action.equals("saveAction")) {
88             saveAction(request, response);
89           }
90           else {
91             throw new InstantbankException("522001", "Action " + action + " not supported");
92           }
93         }
94         catch(Exception e) {
95           throw new InstantbankException(e, "522001", "Failed to execute controller action " + action);
96         }
97       }
98       catch(InstantbankException e) {
99         session.setAttribute("hasException", "1");
100        session.setAttribute("Exception", e);
101        if(response.isCommitted()) {
102          return;
103        }
104        response.sendRedirect("../main_web/ControllerError.jsp?showTechnical=0");
105      }
106    }
107  
108  
109    private void initialize(HttpServletRequest request, HttpServletResponse response) throws InstantbankException, IOException, ServletException {
110      ServletContext sc = getServletConfig().getServletContext();
111      RequestDispatcher rd = sc.getRequestDispatcher("/collectionsActivities_web/ActionMaintenanceView.jsp");
112      rd.forward(request, response);
113    }
114  
115  
116    private void getAction(HttpServletRequest request, HttpServletResponse response) throws InstantbankException, ServletException, IOException {
117      String xml;
118      Long companyId;
119      Long actionId = new Long(request.getParameter("actionId"));
120      companyId = (Long)session.getAttribute("companyId");
121      xml = services.getAction(actionId, companyId);
122      OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream());
123      PrintWriter out = new PrintWriter(osw);
124      out.println("<script>");
125      out.print("parent.actionXml='");
126      out.print(StringFormat.cleanXml(xml));
127      out.println("';");
128      out.print("parent.selectedAction='");
129      out.print(actionId);
130      out.println("';");
131      out.println("parent.screenFormat();");
132      out.println("</script>");
133      out.close();
134    }
135  
136  
137    public String getServletInfo() {
138      return "ActionMaintenanceController Information";
139    }
140  
141  
142    private void saveAction(HttpServletRequest request, HttpServletResponse response) throws InstantbankException, ServletException, IOException {
143      Long companyId;
144      Long userId;
145      String data;
146      data = request.getParameter("data");
147      companyId = (Long)session.getAttribute("companyId");
148      userId = (Long)session.getAttribute("userId");
149      services.saveAction(data, companyId, userId);
150      initialize(request, response);
151    }
152  
153  }
154