1 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 ; 23 import java.util.List ; 24 import java.util.Set ; 25 26 import javax.servlet.jsp.JspWriter ; 27 import javax.servlet.jsp.PageContext ; 28 import javax.servlet.jsp.tagext.SimpleTagSupport ; 29 30 public class MultiSelect extends SimpleTagSupport { 31 32 private Set <ItemUser> selected; 33 private List <UserSpaceRole> list; 34 private String name; 35 36 public void setName(String name) { 37 this.name = name; 38 } 39 public void setList(List <UserSpaceRole> list) { 40 this.list = list; 41 } 42 public void setSelected(Set <ItemUser> selected) { 43 this.selected = selected; 44 } 45 46 @Override 47 public void doTag() { 48 try { 49 PageContext pageContext = (PageContext ) getJspContext(); 50 JspWriter out = pageContext.getOut(); 51 if (list != null) { 52 out.println("<div class='multiselect'>"); 53 StringBuffer sb = new StringBuffer (); 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 ioe) { 75 throw new RuntimeException (ioe); 76 } 77 } 78 79 } | Popular Tags |