KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > contineo > actions > documan > folder > SaveFolderAction


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

6
7 package org.contineo.actions.documan.folder;
8
9 import javax.servlet.http.HttpServletRequest JavaDoc;
10 import javax.servlet.http.HttpServletResponse JavaDoc;
11 import javax.servlet.http.HttpSession JavaDoc;
12 import org.apache.log4j.Level;
13 import org.apache.log4j.Logger;
14 import org.apache.struts.action.Action;
15 import org.apache.struts.action.ActionError;
16 import org.apache.struts.action.ActionErrors;
17 import org.apache.struts.action.ActionForm;
18 import org.apache.struts.action.ActionForward;
19 import org.apache.struts.action.ActionMapping;
20 import org.apache.struts.action.ActionMessage;
21 import org.apache.struts.action.ActionMessages;
22 import org.contineo.admin.Menu;
23 import org.contineo.admin.dao.MenuDAO;
24 import org.contineo.core.LoggingManager;
25 import org.contineo.core.SessionManagement;
26 import org.contineo.forms.MenuForm;
27 /**
28  *
29  * @author Michael Scholz
30  */

31 public class SaveFolderAction extends Action{
32
33     /**
34      * @uml.property name="logger"
35      * @uml.associationEnd
36      */

37     private Logger logger;
38
39     
40     /** Creates a new instance of SaveFolderAction */
41     public SaveFolderAction() {
42         logger = LoggingManager.getLogger(this.getClass());
43     }
44  
45     public ActionForward execute(ActionMapping mapping,
46                     ActionForm form, HttpServletRequest JavaDoc request,
47                     HttpServletResponse JavaDoc response) {
48         ActionForward actionForward = new ActionForward();
49         ActionErrors errors = new ActionErrors();
50         ActionMessages messages = new ActionMessages();
51         HttpSession JavaDoc session = request.getSession();
52         if (SessionManagement.isValid(session)) {
53             MenuForm menuform = (MenuForm)form;
54             MenuDAO dao = new MenuDAO();
55             Menu menu = new Menu();
56             try {
57                 int parentid = Integer.parseInt(menuform.getMenuParent());
58                 Menu parent = dao.findByPrimaryKey(parentid);
59                 if (menuform.getMenuText() == null || menuform.getMenuText().equals("") || menuform.getMenuGroup() == null || menuform.getMenuGroup().length == 0) {
60                     errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.required"));
61                 } else {
62                     menu = dao.findByPrimaryKey(Integer.parseInt(menuform.getMenuParent()));
63                     menuform.setMenuPath(menu.getMenuPath() + "/" + menu.getMenuId());
64                     menuform.setMenuHier(String.valueOf(menu.getMenuHier()));
65                     menu = new Menu();
66                     menu.setMenuText(menuform.getMenuText());
67                     menu.setMenuParent(Integer.parseInt(menuform.getMenuParent()));
68                     menu.setMenuSort(Integer.parseInt(menuform.getMenuSort()));
69                     menu.setMenuIcon(menuform.getMenuIcon());
70                     menu.setMenuPath(menuform.getMenuPath());
71                     menu.setMenuType(Integer.parseInt(menuform.getMenuType()));
72                     menu.setMenuHier(Integer.parseInt(menuform.getMenuHier()));
73                     menu.setMenuRef(menuform.getMenuRef());
74                     
75                     // by default add read and write privileges to admin group
76
String JavaDoc[] menuGroup = menuform.getMenuGroup();
77                     boolean hasAdmin = false;
78                     for (int i = 0; i < menuGroup.length; i++) {
79                         if (menuGroup[i].equals("admin")) {
80                             hasAdmin = true;
81                             break;
82                         }
83                     }
84                     if (!hasAdmin) {
85                         String JavaDoc[] menuGroupAdmin = new String JavaDoc[menuGroup.length + 1];
86                         menuGroupAdmin[0] = "admin";
87                         for (int i = 0; i < menuGroup.length; i++) {
88                             menuGroupAdmin[i + 1] = menuGroup[i];
89                         }
90                         menu.setMenuGroup(menuGroupAdmin);
91                     } else {
92                         menu.setMenuGroup(menuGroup);
93                     }
94
95                     boolean stored = dao.store(menu);
96                     if (!stored)
97                         errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.savefolder.notstored"));
98                     else
99                         messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("msg.action.savefolder"));
100                 }
101                 MenuForm mf = new MenuForm();
102                 mf.setMenuParent(menuform.getMenuParent());
103                 actionForward.setPath("/AddFolder.do?menuid=" + String.valueOf(parentid) + "&menutext=" + parent.getMenuText() + "&menutype=" + String.valueOf(parent.getMenuType()));
104             }
105             catch (Exception JavaDoc e) {
106                 if (logger.isEnabledFor(Level.ERROR))
107                     logger.error(e.getMessage());
108                 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.savefolder.notstored"));
109                 actionForward = mapping.findForward("addfolder");
110             }
111             saveErrors(request, errors);
112             saveMessages(request, messages);
113         } else
114             actionForward = mapping.findForward("invalid");
115         return actionForward;
116     }
117 }
118
Popular Tags