KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > webapp > admin > resources > ResourcesTreeBuilder


1 /*
2  * Copyright 2002,2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.apache.webapp.admin.resources;
18
19 import java.net.URLEncoder JavaDoc;
20 import java.util.Locale JavaDoc;
21 import java.io.UnsupportedEncodingException JavaDoc;
22 import javax.servlet.http.HttpServletRequest JavaDoc;
23 import javax.servlet.http.HttpSession JavaDoc;
24 import org.apache.struts.Globals;
25 import org.apache.struts.util.MessageResources;
26 import org.apache.webapp.admin.ApplicationServlet;
27 import org.apache.webapp.admin.TreeBuilder;
28 import org.apache.webapp.admin.TreeControl;
29 import org.apache.webapp.admin.TreeControlNode;
30 import org.apache.webapp.admin.TomcatTreeBuilder;
31
32 /**
33  * Implementation of <code>TreeBuilder</code> that adds the nodes required
34  * for administering the resources (data sources).
35  *
36  * @author Manveen Kaur
37  * @author Amy Roh
38  * @version $Revision: 1.6 $ $Date: 2004/10/18 06:37:54 $
39  * @since 4.1
40  */

41
42 public class ResourcesTreeBuilder implements TreeBuilder {
43
44     // ----------------------------------------------------- Instance Variables
45

46
47     // ---------------------------------------------------- TreeBuilder Methods
48

49
50     /**
51      * Add the required nodes to the specified <code>treeControl</code>
52      * instance.
53      *
54      * @param treeControl The <code>TreeControl</code> to which we should
55      * add our nodes
56      * @param servlet The controller servlet for the admin application
57      * @param request The servlet request we are processing
58      */

59     public void buildTree(TreeControl treeControl,
60                           ApplicationServlet servlet,
61                           HttpServletRequest JavaDoc request) {
62
63         MessageResources resources = (MessageResources)
64             servlet.getServletContext().getAttribute(Globals.MESSAGES_KEY);
65         HttpSession JavaDoc session = request.getSession();
66         Locale JavaDoc locale = (Locale JavaDoc) session.getAttribute(Globals.LOCALE_KEY);
67         addSubtree(treeControl.getRoot(), resources, locale);
68
69     }
70
71
72     // ------------------------------------------------------ Protected Methods
73

74
75     /**
76      * Add the subtree of nodes required for user administration.
77      *
78      * @param root The root node of our tree control
79      * @param resources The MessageResources for our localized messages
80      * messages
81      */

82     protected void addSubtree(TreeControlNode root, MessageResources resources,
83                               Locale JavaDoc locale) {
84         try {
85             String JavaDoc domain = root.getDomain();
86             TreeControlNode subtree = new TreeControlNode
87                 ("Global Resource Administration",
88                  "folder_16_pad.gif",
89                  resources.getMessage(locale, "resources.treeBuilder.subtreeNode"),
90                  null,
91                  "content",
92                  true, domain);
93             TreeControlNode datasources = new TreeControlNode
94                 ("Globally Administer Data Sources",
95                  "Datasource.gif",
96                  resources.getMessage(locale, "resources.treeBuilder.datasources"),
97                  "resources/listDataSources.do?resourcetype=Global&domain=" +
98                  domain + "&forward=" +
99                  URLEncoder.encode("DataSources List Setup",TomcatTreeBuilder.URL_ENCODING),
100                  "content",
101                  false, domain);
102             TreeControlNode mailsessions = new TreeControlNode
103                 ("Globally Administer Mail Sessions ",
104                  "Mailsession.gif",
105                  resources.getMessage(locale, "resources.treeBuilder.mailsessions"),
106                  "resources/listMailSessions.do?resourcetype=Global&domain=" +
107                  domain + "&forward=" +
108                  URLEncoder.encode("MailSessions List Setup",TomcatTreeBuilder.URL_ENCODING),
109                  "content",
110                  false, domain);
111             TreeControlNode userdbs = new TreeControlNode
112                 ("Globally Administer UserDatabase Entries",
113                  "Realm.gif",
114                  resources.getMessage(locale, "resources.treeBuilder.databases"),
115                  "resources/listUserDatabases.do?domain=" + domain +
116                  "&forward=" +
117                  URLEncoder.encode("UserDatabases List Setup",TomcatTreeBuilder.URL_ENCODING),
118                  "content",
119                  false, domain);
120             TreeControlNode envs = new TreeControlNode
121                 ("Globally Administer Environment Entries",
122                  "EnvironmentEntries.gif",
123                  resources.getMessage(locale, "resources.env.entries"),
124                  "resources/listEnvEntries.do?resourcetype=Global&domain=" +
125                  domain+"&forward="+
126                  URLEncoder.encode("EnvEntries List Setup",TomcatTreeBuilder.URL_ENCODING),
127                  "content",
128                  false, domain);
129             root.addChild(subtree);
130             subtree.addChild(datasources);
131             subtree.addChild(mailsessions);
132             subtree.addChild(envs);
133             subtree.addChild(userdbs);
134         } catch(UnsupportedEncodingException JavaDoc ex) {
135             // can't happen
136
}
137     }
138
139 }
140
Popular Tags