00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062 package org.objectweb.jonas.webapp.jonasadmin;
00063
00064 import java.io.IOException;
00065 import java.util.ArrayList;
00066 import java.util.StringTokenizer;
00067
00068 import javax.servlet.ServletException;
00069 import javax.servlet.http.HttpServletRequest;
00070 import javax.servlet.http.HttpServletResponse;
00071 import javax.servlet.http.HttpSession;
00072
00073 import org.apache.struts.action.Action;
00074 import org.apache.struts.action.ActionForm;
00075 import org.apache.struts.action.ActionForward;
00076 import org.apache.struts.action.ActionMapping;
00077 import org.apache.struts.action.ActionServlet;
00078 import org.objectweb.jonas.webapp.taglib.TreeBuilder;
00079 import org.objectweb.jonas.webapp.taglib.TreeControl;
00080 import org.objectweb.jonas.webapp.taglib.TreeControlNode;
00081
00092 public class SetUpTreeAction extends Action {
00093
00094 public static final int INIT_PLUGIN_MAX = 10;
00095 public static final String TREEBUILDER_KEY = "treebuilders";
00096 public static final String ROOTNODENAME_KEY = "rootnodename";
00097
00098
00099
00115 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request
00116 , HttpServletResponse response)
00117 throws IOException, ServletException {
00118
00119
00120 ActionServlet servlet = (ActionServlet) getServlet();
00121
00122
00123
00124
00125 String rootnodeName = (String) servlet.getServletConfig().getInitParameter(ROOTNODENAME_KEY);
00126
00127 String treeBuildersStr = (String) servlet.getServletConfig().getInitParameter(
00128 TREEBUILDER_KEY);
00129
00130
00131
00132
00133
00134
00135 TreeControlNode root = new TreeControlNode("ROOT-NODE", null, rootnodeName
00136 , "setUpTree.do?select=ROOT-NODE", "content", true);
00137
00138 TreeControl control = new TreeControl(root);
00139
00140 if (treeBuildersStr != null) {
00141 Class treeBuilderImpl;
00142 TreeBuilder treeBuilderBase;
00143
00144 ArrayList treeBuilders = new ArrayList(INIT_PLUGIN_MAX);
00145 int i = 0;
00146 StringTokenizer st = new StringTokenizer(treeBuildersStr, ",");
00147 while (st.hasMoreTokens()) {
00148 treeBuilders.add(st.nextToken().trim());
00149 }
00150
00151 if (treeBuilders.size() == 0) {
00152 treeBuilders.add(treeBuildersStr.trim());
00153 }
00154 for (i = 0; i < treeBuilders.size(); i++) {
00155 try {
00156 treeBuilderImpl = Class.forName((String) treeBuilders.get(i));
00157 treeBuilderBase = (TreeBuilder) treeBuilderImpl.newInstance();
00158 treeBuilderBase.buildTree(control, servlet, request);
00159 }
00160 catch (Throwable t) {
00161 t.printStackTrace(System.out);
00162 }
00163 }
00164 }
00165
00166 HttpSession session = request.getSession();
00167 session.setAttribute("treeControl", control);
00168
00169 WhereAreYou oWhere = (WhereAreYou) session.getAttribute(WhereAreYou.SESSION_NAME);
00170 oWhere.setTreeControl(control);
00171
00172 String name = request.getParameter("select");
00173 if (name != null) {
00174 control.selectNode(name);
00175
00176 return (mapping.findForward("Blank"));
00177 }
00178
00179 return (mapping.findForward("Tree"));
00180
00181 }
00182 }