KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > info > jtrac > web > tag > MultiSelect


1 /*
2  * Copyright 2002-2005 the original author or authors.
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 info.jtrac.web.tag;
18
19 import info.jtrac.domain.ItemUser;
20 import info.jtrac.domain.User;
21 import info.jtrac.domain.UserSpaceRole;
22 import java.io.IOException JavaDoc;
23 import java.util.List JavaDoc;
24 import java.util.Set JavaDoc;
25
26 import javax.servlet.jsp.JspWriter JavaDoc;
27 import javax.servlet.jsp.PageContext JavaDoc;
28 import javax.servlet.jsp.tagext.SimpleTagSupport JavaDoc;
29
30 public class MultiSelect extends SimpleTagSupport JavaDoc {
31     
32     private Set JavaDoc<ItemUser> selected;
33     private List JavaDoc<UserSpaceRole> list;
34     private String JavaDoc name;
35     
36     public void setName(String JavaDoc name) {
37         this.name = name;
38     }
39     public void setList(List JavaDoc<UserSpaceRole> list) {
40         this.list = list;
41     }
42     public void setSelected(Set JavaDoc<ItemUser> selected) {
43         this.selected = selected;
44     }
45     
46     @Override JavaDoc
47     public void doTag() {
48         try {
49             PageContext JavaDoc pageContext = (PageContext JavaDoc) getJspContext();
50             JspWriter JavaDoc out = pageContext.getOut();
51             if (list != null) {
52                 out.println("<div class='multiselect'>");
53                 StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
54                 boolean hasSelected = false;
55
56                 for(UserSpaceRole usr : list) {
57                     User user = usr.getUser();
58                     if (selected != null && selected.contains(new ItemUser(user))) {
59                         hasSelected = true;
60                         out.print("<input type='checkbox' name='" + name + "' value='" + user.getId() + "'");
61                         out.println(" checked='true'/>" + user.getName() + "<br/>");
62                     } else {
63                         sb.append("<input type='checkbox' name='" + name + "' value='" + user.getId() + "'");
64                         sb.append("/>" + user.getName() + "<br/>\n");
65                     }
66                 }
67                 
68                 if (hasSelected) {
69                     out.println("<hr/>");
70                 }
71                 out.print(sb);
72                 sb.append("</div>");
73             }
74         } catch (IOException JavaDoc ioe) {
75             throw new RuntimeException JavaDoc(ioe);
76         }
77     }
78     
79 }
Popular Tags