1 package org.apache.commons.monitoring.servlet.jsp;
2
3 import javax.servlet.jsp.JspException;
4 import javax.servlet.jsp.tagext.BodyTagSupport;
5 import javax.servlet.jsp.tagext.TagSupport;
6
7 import org.apache.commons.monitoring.Counter;
8 import org.apache.commons.monitoring.Role;
9
10 public class StatValueTag
11 extends TagSupport
12 {
13 private String roleAttrName;
14
15 @Override
16 public int doStartTag()
17 throws JspException
18 {
19 Role role = (Role) pageContext.getAttribute( roleAttrName );
20
21 String name = role.getName();
22 StringBuffer stb = new StringBuffer();
23 if ( role.getType() == Counter.class )
24 {
25 checkbox( name, "hits", stb );
26 checkbox( name, "total", stb );
27 }
28 checkbox( name, "value", stb );
29 checkbox( name, "min", stb );
30 checkbox( name, "max", stb );
31 checkbox( name, "mean", stb );
32 checkbox( name, "deviation", stb );
33
34 return EVAL_PAGE;
35 }
36
37 private void checkbox( String name, String property, StringBuffer stb )
38 {
39 stb.append( "<li>" );
40 stb.append( "<input type='checkbox' name='" );
41 stb.append( property );
42 stb.append( "' id='" );
43 stb.append( name );
44 stb.append( "." );
45 stb.append( property );
46 stb.append( "'/>" );
47 stb.append( "<label for='" );
48 stb.append( "'>" );
49 stb.append( name );
50 stb.append( "." );
51 stb.append( property );
52 stb.append( "</label>" );
53 stb.append( "</li>" );
54 }
55
56 public void setRole( String role )
57 {
58 this.roleAttrName = role;
59 }
60
61 }