TreeAction.java

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 }

Generated on Tue Feb 15 15:05:34 2005 for JOnAS by  doxygen 1.3.9.1