KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > cowsultants > itracker > web > actions > OrderConfigurationItemAction


1 /*
2  * This software was designed and created by Jason Carroll.
3  * Copyright (c) 2002, 2003, 2004 Jason Carroll.
4  * The author can be reached at jcarroll@cowsultants.com
5  * ITracker website: http://www.cowsultants.com
6  * ITracker forums: http://www.cowsultants.com/phpBB/index.php
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it only under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  */

18
19 package cowsultants.itracker.web.actions;
20
21 import java.io.*;
22 import java.rmi.*;
23 import java.util.*;
24 import javax.ejb.*;
25 import javax.rmi.*;
26 import javax.naming.*;
27 import javax.servlet.*;
28 import javax.servlet.http.*;
29
30 import org.apache.commons.beanutils.*;
31 import org.apache.struts.action.*;
32 import org.apache.struts.util.*;
33
34 import cowsultants.itracker.ejb.client.exceptions.*;
35 import cowsultants.itracker.ejb.client.interfaces.*;
36 import cowsultants.itracker.ejb.client.models.*;
37 import cowsultants.itracker.ejb.client.util.*;
38 import cowsultants.itracker.web.scheduler.*;
39 import cowsultants.itracker.web.util.*;
40
41
42 public class OrderConfigurationItemAction extends ITrackerAction {
43
44     public OrderConfigurationItemAction() {
45     }
46
47     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
48         ActionErrors errors = new ActionErrors();
49
50         if(! isLoggedIn(request, response)) {
51             return mapping.findForward("login");
52         }
53
54         if(! hasPermission(UserUtilities.PERMISSION_USER_ADMIN, request, response)) {
55             return mapping.findForward("unauthorized");
56         }
57
58         try {
59             InitialContext ic = new InitialContext();
60
61             Object JavaDoc scRef = ic.lookup("java:comp/env/" + SystemConfiguration.JNDI_NAME);
62             SystemConfigurationHome scHome = (SystemConfigurationHome) PortableRemoteObject.narrow(scRef, SystemConfigurationHome.class);
63             SystemConfiguration sc = scHome.create();
64
65             Integer JavaDoc configId = (Integer JavaDoc) PropertyUtils.getSimpleProperty(form, "id");
66             String JavaDoc action = (String JavaDoc) PropertyUtils.getSimpleProperty(form, "action");
67             if(configId == null || configId.intValue() <= 0) {
68                 throw new SystemConfigurationException("Invalid configuration id.");
69             }
70
71             ConfigurationModel configItem = sc.getConfigurationItem(configId);
72             if(configItem == null) {
73                 throw new SystemConfigurationException("Invalid configuration id.");
74             }
75
76             int configType = configItem.getType();
77             ConfigurationModel[] configItems = sc.getConfigurationItemsByType(configType);
78             for(int i = 0; i < configItems.length; i++) {
79                 if(configItems[i] != null && configId.equals(configItems[i].getId())) {
80                     if("up".equalsIgnoreCase(action) && i > 0) {
81                         int tempOrder = configItems[i].getOrder();
82                         configItems[i].setOrder(configItems[i - 1].getOrder());
83                         configItems[i - 1].setOrder(tempOrder);
84                         configItems = sc.updateConfigurationItems(configItems, configType);
85                     } else if("down".equalsIgnoreCase(action) && i < (configItems.length - 1)) {
86                         int tempOrder = configItems[i].getOrder();
87                         configItems[i].setOrder(configItems[i + 1].getOrder());
88                         configItems[i + 1].setOrder(tempOrder);
89                         configItems = sc.updateConfigurationItems(configItems, configType);
90                     }
91                     break;
92                 }
93             }
94
95             // Only resolutions and severities can be reordered at this point. Statuses
96
// and some basic workflow depend on the actual value of the status, so
97
// the order must equal the value of the status for it to work correctly.
98
if(configType == SystemConfigurationUtilities.TYPE_RESOLUTION) {
99                 sc.resetConfigurationCache(SystemConfigurationUtilities.TYPE_RESOLUTION);
100             } else if(configType == SystemConfigurationUtilities.TYPE_SEVERITY) {
101                 sc.resetConfigurationCache(SystemConfigurationUtilities.TYPE_SEVERITY);
102             }
103
104             return mapping.findForward("listconfiguration");
105         } catch(SystemConfigurationException nfe) {
106             errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.invalidconfiguration"));
107             Logger.logDebug("Invalid configuration item id " + request.getParameter("id") + " specified.");
108         } catch(NumberFormatException JavaDoc nfe) {
109             errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.invalidconfiguration"));
110             Logger.logDebug("Invalid configuration item id " + request.getParameter("id") + " specified.");
111         } catch(Exception JavaDoc e) {
112             errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.system"));
113             Logger.logError("System Error.", e);
114         }
115         if(! errors.isEmpty()) {
116             saveErrors(request, errors);
117         }
118         return mapping.findForward("error");
119     }
120
121 }
122   
Popular Tags