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.i18n.MessageFinder; 8 import net.sf.uitags.tagutil.i18n.MessageFinderFactory; 9 import net.sf.uitags.tagutil.validation.RuntimeValidator; 10 import net.sf.uitags.util.ArrayUtils; 11 import net.sf.uitags.util.Template; 12 13 public class ListMonthsTag extends AbstractUiTag { 14 18 21 private static final long serialVersionUID = 100L; 22 23 24 28 private static final String PROP_MONTH_LABELS = 29 "calendar.listMonths.monthLabels"; 30 31 32 36 39 private String injectTo; 40 43 private String injectToName; 44 47 private String [] monthLabels; 48 49 50 54 public void setInjectTo(String val) { 55 this.injectTo = val; 56 } 57 58 public void setInjectToName(String val) { 59 this.injectToName = val; 60 } 61 62 public void setMonthLabels(String [] val) { 63 this.monthLabels = val; 64 } 65 66 67 71 public int doStartTag() throws JspException { 72 return SKIP_BODY; 73 } 74 75 public int doEndTag() throws JspException { 76 RuntimeValidator.assertAttributeExclusive( 77 "injectTo", this.injectTo, "injectToName", this.injectToName); 78 RuntimeValidator.assertEitherSpecified( 79 "injectTo", this.injectTo, "injectToName", this.injectToName); 80 81 if (this.monthLabels == null) { 82 TaglibProperties props = TaglibProperties.getInstance(); 83 MessageFinder messageFinder = 84 MessageFinderFactory.getInstance(this.pageContext); 85 this.monthLabels = 86 ArrayUtils.toArray(messageFinder.get(props.get(PROP_MONTH_LABELS))); 87 } 88 89 Template tpl = Template.forName(Template.CALENDAR_LIST_MONTHS); 90 tpl.map("listerId", this.injectTo); 91 tpl.map("listerName", this.injectToName); 92 tpl.map("monthLabels", this.monthLabels); 93 94 CalendarTag parent = (CalendarTag) findParent(CalendarTag.class); 95 parent.addChildJsCode(tpl.evalToString()); 96 97 return EVAL_PAGE; 98 } 99 } 100 | Popular Tags |