1 package net.sf.uitags.tag.calendar; 2 3 import javax.servlet.jsp.JspException ; 4 5 import net.sf.uitags.tag.AbstractUiTag; 6 import net.sf.uitags.tagutil.TaglibProperties; 7 import net.sf.uitags.tagutil.validation.RuntimeValidator; 8 import net.sf.uitags.util.Template; 9 10 public class ListYearsTag extends AbstractUiTag { 11 15 18 private static final long serialVersionUID = 100L; 19 20 21 25 private static final String PROP_LISTING_STRATEGY = 26 "calendar.listYears.yearListObtainer"; 27 28 29 33 36 private String injectTo; 37 40 private String injectToName; 41 44 private String yearListObtainer; 45 46 47 51 public void setInjectTo(String val) { 52 this.injectTo = val; 53 } 54 55 public void setInjectToName(String val) { 56 this.injectToName = val; 57 } 58 59 public void setYearListObtainer(String val) { 60 this.yearListObtainer = val; 61 } 62 63 64 68 public int doStartTag() throws JspException { 69 return SKIP_BODY; 70 } 71 72 public int doEndTag() throws JspException { 73 RuntimeValidator.assertAttributeExclusive( 74 "injectTo", this.injectTo, "injectToName", this.injectToName); 75 RuntimeValidator.assertEitherSpecified( 76 "injectTo", this.injectTo, "injectToName", this.injectToName); 77 78 TaglibProperties props = TaglibProperties.getInstance(); 79 props.setRuntimeProperty(PROP_LISTING_STRATEGY, this.yearListObtainer); 80 81 Template tpl = Template.forName(Template.CALENDAR_LIST_YEARS); 82 tpl.map("listerId", this.injectTo); 83 tpl.map("listerName", this.injectToName); 84 tpl.map("yearListObtainer", props.get(PROP_LISTING_STRATEGY)); 85 86 CalendarTag parent = (CalendarTag) findParent(CalendarTag.class); 87 parent.addChildJsCode(tpl.evalToString()); 88 89 return EVAL_PAGE; 90 } 91 } | Popular Tags |