KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > webapp > admin > users > UsersTreeBuilder


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.users;
18
19
20 import java.net.URLEncoder JavaDoc;
21 import java.io.UnsupportedEncodingException JavaDoc;
22 import java.util.Locale JavaDoc;
23 import javax.servlet.http.HttpServletRequest JavaDoc;
24 import javax.servlet.http.HttpSession JavaDoc;
25 import org.apache.struts.Globals;
26 import org.apache.struts.util.MessageResources;
27 import org.apache.webapp.admin.ApplicationServlet;
28 import org.apache.webapp.admin.TreeBuilder;
29 import org.apache.webapp.admin.TreeControl;
30 import org.apache.webapp.admin.TreeControlNode;
31 import org.apache.webapp.admin.TomcatTreeBuilder;
32
33 /**
34  * Implementation of <code>TreeBuilder</code> that adds the nodes required
35  * for administering the user database.
36  *
37  * @author Craig R. McClanahan
38  * @version $Revision: 1.6 $ $Date: 2004/10/18 06:37:55 $
39  * @since 4.1
40  */

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

47
48     // ---------------------------------------------------- TreeBuilder Methods
49

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

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

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

83     protected void addSubtree(TreeControlNode root,
84                               MessageResources resources, Locale JavaDoc locale) {
85
86         try {
87             String JavaDoc databaseName = URLEncoder.encode
88                 ("Users:type=UserDatabase,database=UserDatabase",TomcatTreeBuilder.URL_ENCODING);
89
90             TreeControlNode subtree = new TreeControlNode
91                 ("Global User and Group Administration",
92                  "folder_16_pad.gif",
93                  resources.getMessage(locale, "users.treeBuilder.subtreeNode"),
94                  null,
95                  "content",
96                  true, "Users");
97             TreeControlNode groups = new TreeControlNode
98                 ("Global Administer Groups",
99                  "Groups.gif",
100                  resources.getMessage(locale, "users.treeBuilder.groupsNode"),
101                  "users/listGroups.do?databaseName=" +
102                  URLEncoder.encode(databaseName,TomcatTreeBuilder.URL_ENCODING) +
103                  "&forward=" +
104                  URLEncoder.encode("Groups List Setup",TomcatTreeBuilder.URL_ENCODING),
105                  "content",
106                  false, "Users");
107             TreeControlNode roles = new TreeControlNode
108                 ("Global Administer Roles",
109                  "Roles.gif",
110                  resources.getMessage(locale, "users.treeBuilder.rolesNode"),
111                  "users/listRoles.do?databaseName=" +
112                  URLEncoder.encode(databaseName,TomcatTreeBuilder.URL_ENCODING) +
113                  "&forward=" +
114                  URLEncoder.encode("Roles List Setup",TomcatTreeBuilder.URL_ENCODING),
115                  "content",
116                  false, "Users");
117             TreeControlNode users = new TreeControlNode
118                 ("Global Administer Users",
119                  "Users.gif",
120                  resources.getMessage(locale, "users.treeBuilder.usersNode"),
121                  "users/listUsers.do?databaseName=" +
122                  URLEncoder.encode(databaseName,TomcatTreeBuilder.URL_ENCODING) +
123                  "&forward=" +
124                  URLEncoder.encode("Users List Setup",TomcatTreeBuilder.URL_ENCODING),
125                  "content",
126                  false, "Users");
127
128             root.addChild(subtree);
129             subtree.addChild(users);
130             subtree.addChild(groups);
131             subtree.addChild(roles);
132         } catch(UnsupportedEncodingException JavaDoc ueex) {
133             // can't happen
134
}
135
136     }
137
138
139 }
140
Popular Tags