1 6 7 package org.contineo.actions.documan.folder; 8 9 import javax.servlet.http.HttpServletRequest ; 10 import javax.servlet.http.HttpServletResponse ; 11 import javax.servlet.http.HttpSession ; 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 31 public class SaveFolderAction extends Action{ 32 33 37 private Logger logger; 38 39 40 41 public SaveFolderAction() { 42 logger = LoggingManager.getLogger(this.getClass()); 43 } 44 45 public ActionForward execute(ActionMapping mapping, 46 ActionForm form, HttpServletRequest request, 47 HttpServletResponse response) { 48 ActionForward actionForward = new ActionForward(); 49 ActionErrors errors = new ActionErrors(); 50 ActionMessages messages = new ActionMessages(); 51 HttpSession 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 String [] 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 [] menuGroupAdmin = new String [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 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 |