1 package fr.improve.struts.taglib.layout.treeview; 2 3 import java.io.IOException ; 4 5 import javax.servlet.ServletException ; 6 import javax.servlet.http.HttpServletRequest ; 7 import javax.servlet.http.HttpServletResponse ; 8 import javax.servlet.jsp.JspException ; 9 10 import org.apache.struts.action.Action; 11 import org.apache.struts.action.ActionForm; 12 import org.apache.struts.action.ActionForward; 13 import org.apache.struts.action.ActionMapping; 14 15 import fr.improve.struts.taglib.layout.menu.MenuComponent; 16 import fr.improve.struts.taglib.layout.menu.MenuRepository; 17 18 23 public class TreeviewAction extends Action { 24 public ActionForward execute(ActionMapping mapping, 25 ActionForm form, 26 HttpServletRequest request, 27 HttpServletResponse response) 28 throws IOException , ServletException { 29 30 if (request.getParameter("iframe")!=null) { 31 response.getOutputStream().print("<html><boby></body></html>"); 32 return null; 33 } 34 35 String lc_name = request.getParameter("name"); 36 StringBuffer lc_buffer = new StringBuffer (); 37 String lc_path = request.getParameter("open"); 38 String lc_bundle = request.getParameter("bundle"); 39 String lc_styleClass = request.getParameter("class"); 40 41 MenuRepository lc_repository = (MenuRepository) request.getSession().getAttribute(MenuRepository.MENU_REPOSITORY_KEY); 43 MenuComponent lc_menu = null; 44 45 if (lc_repository!=null) { 46 lc_menu = lc_repository.getMenu(lc_name); 47 } 48 if (lc_menu==null) { 49 lc_repository = (MenuRepository) getServlet().getServletContext().getAttribute(MenuRepository.MENU_REPOSITORY_KEY); 50 lc_menu = lc_repository.getMenu(lc_name); 51 } 52 53 String lc_childPath = lc_path.substring(lc_path.indexOf('*')+1); 55 MenuComponent lc_childMenu = TreeViewReconciler.getComponentWithPath(lc_menu, lc_childPath); 56 64 try { 66 TreeViewTag.doPrintMenu(lc_buffer, lc_childMenu.getMenuComponents(), request, getServlet().getServletContext(), lc_bundle, lc_path, lc_name, lc_styleClass==null ? "" : lc_styleClass); 67 } catch (JspException e) { 68 throw new ServletException (e.getMessage()); 69 } 70 71 72 for (int i = 0; i < lc_buffer.length(); i++) { 74 if (lc_buffer.charAt(i)=='"') { 75 lc_buffer.insert(i, "\\"); 76 i += 1; 77 } 78 } 79 80 response.getOutputStream().println("<script type=\"text/javascript\">"); 82 response.getOutputStream().print("window.parent.loadTree(\""); 83 response.getOutputStream().print(lc_path); 84 response.getOutputStream().print("\", \""); 85 response.getOutputStream().print("<table border=\\\"0\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\">"); 86 response.getOutputStream().print(lc_buffer.toString()); 87 response.getOutputStream().print("</table>"); 88 response.getOutputStream().print("\");"); 89 response.getOutputStream().println("</script>"); 90 return null; 91 } 92 93 } 94 | Popular Tags |