00001 /* 00002 * $Header: /cvsroot/jonas/jonas/src/org/objectweb/jonas/webapp/jonasadmin/TreeAction.java,v 1.4 2004/09/15 12:19:50 benoitf Exp $ 00003 * $Revision: 1.4 $ 00004 * $Date: 2004/09/15 12:19:50 $ 00005 * 00006 * ==================================================================== 00007 * 00008 * The Apache Software License, Version 1.1 00009 * 00010 * Copyright (c) 2001 The Apache Software Foundation. All rights 00011 * reserved. 00012 * 00013 * Redistribution and use in source and binary forms, with or without 00014 * modification, are permitted provided that the following conditions 00015 * are met: 00016 * 00017 * 1. Redistributions of source code must retain the above copyright 00018 * notice, this list of conditions and the following disclaimer. 00019 * 00020 * 2. Redistributions in binary form must reproduce the above copyright 00021 * notice, this list of conditions and the following disclaimer in 00022 * the documentation and/or other materials provided with the 00023 * distribution. 00024 * 00025 * 3. The end-user documentation included with the redistribution, if 00026 * any, must include the following acknowlegement: 00027 * "This product includes software developed by the 00028 * Apache Software Foundation (http://www.apache.org/)." 00029 * Alternately, this acknowlegement may appear in the software itself, 00030 * if and wherever such third-party acknowlegements normally appear. 00031 * 00032 * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software 00033 * Foundation" must not be used to endorse or promote products derived 00034 * from this software without prior written permission. For written 00035 * permission, please contact apache@apache.org. 00036 * 00037 * 5. Products derived from this software may not be called "Apache" 00038 * nor may "Apache" appear in their names without prior written 00039 * permission of the Apache Group. 00040 * 00041 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 00042 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00043 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00044 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 00045 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00046 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00047 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 00048 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00049 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00050 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00051 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00052 * SUCH DAMAGE. 00053 * ==================================================================== 00054 * 00055 * This software consists of voluntary contributions made by many 00056 * individuals on behalf of the Apache Software Foundation. For more 00057 * information on the Apache Software Foundation, please see 00058 * <http://www.apache.org/>. 00059 * 00060 */ 00061 00062 package org.objectweb.jonas.webapp.jonasadmin; 00063 00064 import java.io.IOException; 00065 import java.net.URLEncoder; 00066 00067 import javax.servlet.ServletException; 00068 import javax.servlet.http.HttpServletRequest; 00069 import javax.servlet.http.HttpServletResponse; 00070 import javax.servlet.http.HttpSession; 00071 00072 import org.apache.struts.action.Action; 00073 import org.apache.struts.action.ActionForm; 00074 import org.apache.struts.action.ActionForward; 00075 import org.apache.struts.action.ActionMapping; 00076 import org.objectweb.jonas.webapp.taglib.TreeControl; 00077 import org.objectweb.jonas.webapp.taglib.TreeControlNode; 00078 00087 public class TreeAction extends Action { 00088 00089 // --------------------------------------------------------- Public Methods 00090 00106 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request 00107 , HttpServletResponse response) 00108 throws IOException, ServletException { 00109 00110 String name = null; 00111 HttpSession session = request.getSession(); 00112 WhereAreYou oWhere = (WhereAreYou) session.getAttribute(WhereAreYou.SESSION_NAME); 00113 // Detect if a WhereAreYou instance is present 00114 if (oWhere == null) { 00115 // Re-init 00116 getServlet().log("Instance WhereAreYou not found in session : re-init"); 00117 return (mapping.findForward("Main Index")); 00118 } 00119 // Get the tree 00120 TreeControl control = oWhere.getTreeControl(); 00121 // Handle a tree expand/contract event 00122 name = request.getParameter("tree"); 00123 if (name != null) { 00124 getServlet().log("Tree expand/contract on " + name); 00125 TreeControlNode node = control.findNode(name); 00126 if (node != null) { 00127 getServlet().log("Found Node: " + name + "[" + node.getLabel() + "]"); 00128 node.setExpanded(!node.isExpanded()); 00129 // Add the anchor 00130 request.setAttribute("anchorToGo", URLEncoder.encode(name, "UTF-8")); 00131 } 00132 } 00133 else { 00134 getServlet().log("tree param is null"); 00135 } 00136 00137 // Handle a select item event 00138 name = request.getParameter("select"); 00139 if (name != null) { 00140 getServlet().log("Select event on " + name); 00141 control.selectNode(name); 00142 // Add the anchor 00143 request.setAttribute("anchorToGo", URLEncoder.encode(name, "UTF-8")); 00144 } 00145 00146 // Forward back to the test page 00147 return (mapping.findForward("Tree")); 00148 } 00149 }