1 6 7 package org.contineo.actions.admin.menu; 8 9 import java.util.Collection ; 10 import javax.servlet.http.HttpServletRequest ; 11 import javax.servlet.http.HttpServletResponse ; 12 import javax.servlet.http.HttpSession ; 13 import org.apache.log4j.Level; 14 import org.apache.log4j.Logger; 15 import org.apache.struts.action.Action; 16 import org.apache.struts.action.ActionError; 17 import org.apache.struts.action.ActionErrors; 18 import org.apache.struts.action.ActionForm; 19 import org.apache.struts.action.ActionForward; 20 import org.apache.struts.action.ActionMapping; 21 import org.apache.struts.action.ActionMessage; 22 import org.apache.struts.action.ActionMessages; 23 import org.contineo.admin.Menu; 24 import org.contineo.admin.dao.GroupDAO; 25 import org.contineo.admin.dao.MenuDAO; 26 import org.contineo.core.LoggingManager; 27 import org.contineo.core.SessionManagement; 28 import org.contineo.forms.MenuForm; 29 33 public class SaveMenuAction extends Action{ 34 35 39 private Logger logger; 40 41 42 43 public SaveMenuAction() { 44 logger = LoggingManager.getLogger(this.getClass()); 45 } 46 47 public ActionForward execute(ActionMapping mapping, 48 ActionForm form, HttpServletRequest request, 49 HttpServletResponse response) { 50 ActionForward actionForward = new ActionForward(); 51 ActionErrors errors = new ActionErrors(); 52 ActionMessages messages = new ActionMessages(); 53 HttpSession session = request.getSession(); 54 if (SessionManagement.isValid(session)) { 55 MenuForm menuform = (MenuForm)form; 56 MenuDAO dao = new MenuDAO(); 57 Menu parent = new Menu(); 58 Menu menu = new Menu(); 59 try { 60 String parentname = ""; 61 int menutype = 0; 62 if (menuform.getMenuText() == null || menuform.getMenuText().equals("") || menuform.getMenuGroup() == null || menuform.getMenuGroup().length == 0) { 63 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.required")); 64 } else { 65 parent = dao.findByPrimaryKey(Integer.parseInt(menuform.getMenuParent())); 66 menutype = parent.getMenuType(); 67 parentname = parent.getMenuText(); 68 69 menu.setMenuPath(parent.getMenuPath() + "/" + parent.getMenuId()); 70 menuform.setMenuHier(String.valueOf(parent.getMenuHier())); 71 menu.setMenuText(menuform.getMenuText()); 72 menu.setMenuParent(Integer.parseInt(menuform.getMenuParent())); 73 menu.setMenuSort(Integer.parseInt(menuform.getMenuSort())); 74 menu.setMenuIcon(menuform.getMenuIcon()); 75 menu.setMenuType(Integer.parseInt(menuform.getMenuType())); 76 menu.setMenuRef(menuform.getMenuRef()); 77 78 String [] menuGroup = menuform.getMenuGroup(); 80 boolean hasAdmin = false; 81 for (int i = 0; i < menuGroup.length; i++) { 82 if (menuGroup[i].equals("admin")) { 83 hasAdmin = true; 84 break; 85 } 86 } 87 if (!hasAdmin) { 88 String [] menuGroupAdmin = new String [menuGroup.length + 1]; 89 menuGroupAdmin[0] = "admin"; 90 for (int i = 0; i < menuGroup.length; i++) { 91 menuGroupAdmin[i + 1] = menuGroup[i]; 92 } 93 menu.setMenuGroup(menuGroupAdmin); 94 } else { 95 menu.setMenuGroup(menuGroup); 96 } 97 98 boolean stored = dao.store(menu); 99 if (!stored) 100 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.savemenu.notstored")); 101 else 102 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("msg.action.savemenu")); 103 } 104 MenuForm mf = new MenuForm(); 105 mf.setMenuParent(menuform.getMenuParent()); 106 request.setAttribute("menu", mf); 107 request.setAttribute("parentname", parentname); 108 request.setAttribute("menutype", String.valueOf(menutype)); 109 GroupDAO gdao = new GroupDAO(); 110 Collection coll = gdao.findAll(); 111 request.setAttribute("groups", coll); 112 actionForward = mapping.findForward("addmenu"); 113 } catch (Exception e) { 114 if (logger.isEnabledFor(Level.ERROR)) 115 logger.error(e.getMessage()); 116 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.savemenu.notstored")); 117 actionForward = mapping.findForward("error"); 118 } 119 saveErrors(request, errors); 120 saveMessages(request, messages); 121 menuform.reset(mapping, request); 122 } else 123 actionForward = mapping.findForward("invalid"); 124 return actionForward; 125 } 126 } 127 | Popular Tags |