KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > contineo > actions > documan > util > DeleteItemAction


1 /*
2  * DeleteItemAction.java
3  *
4  * Created on 27. August 2003, 15:33
5  */

6
7 package org.contineo.actions.documan.util;
8
9 import java.util.ArrayList JavaDoc;
10 import java.util.Collection JavaDoc;
11 import java.util.Iterator JavaDoc;
12
13 import javax.servlet.http.HttpServletRequest JavaDoc;
14 import javax.servlet.http.HttpServletResponse JavaDoc;
15 import javax.servlet.http.HttpSession JavaDoc;
16
17 import org.apache.log4j.Level;
18 import org.apache.log4j.Logger;
19 import org.apache.struts.action.Action;
20 import org.apache.struts.action.ActionError;
21 import org.apache.struts.action.ActionErrors;
22 import org.apache.struts.action.ActionForm;
23 import org.apache.struts.action.ActionForward;
24 import org.apache.struts.action.ActionMapping;
25 import org.apache.struts.action.ActionMessage;
26 import org.apache.struts.action.ActionMessages;
27 import org.contineo.admin.ExtMenu;
28 import org.contineo.admin.Menu;
29 import org.contineo.admin.dao.MenuDAO;
30 import org.contineo.core.FileBean;
31 import org.contineo.core.LoggingManager;
32 import org.contineo.core.SessionManagement;
33 import org.contineo.core.config.SettingConfigurator;
34 import org.contineo.documan.DeleteItemUtil;
35 import org.contineo.documan.Document;
36 import org.contineo.documan.dao.DocumentDAO;
37 /**
38  *
39  * @author Michael Scholz
40  */

41 public class DeleteItemAction extends Action{
42
43     /**
44      * @uml.property name="logger"
45      * @uml.associationEnd
46      */

47     private Logger logger;
48
49     
50     /** Creates a new instance of DeleteItemAction */
51     public DeleteItemAction() {
52         logger = LoggingManager.getLogger(this.getClass());
53     }
54  
55     /**
56      * This method performs the action.
57      */

58     public ActionForward execute(ActionMapping mapping,
59                     ActionForm form, HttpServletRequest JavaDoc request,
60                     HttpServletResponse JavaDoc response) {
61         ActionForward actionForward = new ActionForward();
62         ActionErrors errors = new ActionErrors();
63         ActionMessages messages = new ActionMessages();
64         HttpSession JavaDoc session = request.getSession();
65         if (SessionManagement.isValid(session)) {
66             String JavaDoc menuid = request.getParameter("menuid");
67             MenuDAO mdao = new MenuDAO();
68             String JavaDoc userName = (String JavaDoc)session.getAttribute("authuser");
69             int parentid = -1;
70             try {
71                 boolean sqlop = true;
72                 int id = Integer.parseInt(menuid);
73                 if (mdao.isWriteEnable(id, userName)) {
74                     // delete the menu recursively
75
Menu menu = mdao.findByPrimaryKey(id);
76                     parentid = menu.getMenuParent();
77                     sqlop = DeleteItemUtil.deleteMenu(id, userName);
78
79                     
80                     Collection JavaDoc<ExtMenu> coll2 = new ArrayList JavaDoc<ExtMenu>();
81                     Collection JavaDoc coll = mdao.findByUserName(userName, parentid);
82                     Iterator JavaDoc iter = coll.iterator();
83                     SettingConfigurator settings = new SettingConfigurator();
84                     String JavaDoc docpath = settings.getValue("docdir");
85                     MenuDAO menuDao = new MenuDAO();
86                     while (iter.hasNext()) {
87                         Menu m = (Menu)iter.next();
88                         ExtMenu xmenu = new ExtMenu(m);
89
90                         // calculate size of menu
91
int size = 0;
92                         if (m.getMenuType() == 5) {
93                             long sz = FileBean.getSize(docpath + "/" + m.getMenuPath() + "/" + m.getMenuId() + "/" + m.getMenuRef());
94                             sz = sz/1024;
95                             size = (int)sz;
96                         } else {
97                             size = menuDao.findByUserName(userName, m.getMenuId()).size();
98                         }
99                         xmenu.setSize(size);
100
101                         // check if menu is writable
102
boolean writable = false;
103                         if (menuDao.isWriteEnable(m.getMenuId(), userName)) {
104                             writable = true;
105                         } else {
106                             writable = false;
107                         }
108                         xmenu.setWritable(writable);
109                         
110                         // only done on documents
111
// set the checkout/checkin status of the document
112
// set the checkout user, if the document is checked out
113
if (m.getMenuType() == 5) {
114                             DocumentDAO ddao = new DocumentDAO();
115                             Document doc = ddao.findByMenuId(m.getMenuId());
116                             
117                             if (doc != null) {
118                                 xmenu.setDocStatus(doc.getDocStatus());
119                                 xmenu.setCheckoutUser(doc.getCheckoutUser());
120                             }
121                         }
122                                                                         
123                         coll2.add(xmenu);
124                     }
125                     request.setAttribute("menus", coll2);
126                     boolean right = mdao.isWriteEnable(parentid, userName);
127                     int iright = 0;
128                     if (right)
129                         iright = 1;
130                     request.setAttribute("right", new Integer JavaDoc(iright));
131                     Menu parent = mdao.findMenuByMenuId(parentid);
132                     request.setAttribute("parent", parent);
133                     Collection JavaDoc parents = parent.getParents();
134                     request.setAttribute("parents", parents);
135                     if (!sqlop)
136                         errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.deleteitem"));
137                     else
138                         messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("msg.action.deleteitem"));
139                     actionForward = mapping.findForward("foldercontent");
140                 } else
141                     actionForward = mapping.findForward("noaccess");
142             } catch (Exception JavaDoc e) {
143                 if (logger.isEnabledFor(Level.ERROR))
144                     logger.error(e.getMessage());
145                 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.deleteitem"));
146                 actionForward = mapping.findForward("foldercontent");
147             }
148             saveErrors(request, errors);
149             saveMessages(request, messages);
150         } else
151             actionForward = mapping.findForward("invalid");
152         return actionForward;
153     }
154 }
Popular Tags