styleOverrides - This is a comma-separated list of the style
selectors you will supply yourself. If this attribute is not present, or
is an empty string, or is the value "none", then all the built-in
style selectors will be rendered on the page. In other words, there will be
no way for you to style the calendar yourself. You can override any subset
of the style selectors, or all of them. To override all of them, set this
attribute to "all". To override a subset of them, set this attribute to
a comma-separated list of the selectors you will override, taken from the
following list:
- cssCalendarOuter - This styles the outer border.
- cssCalendarMain - This styles the main background portion of the
calendar.
- cssCalendarButton - This styles the two buttons.
- cssCalendarDropdown - This styles the two dropdowns.
- cssCalendarDay - This styles days of the week (not weekends).
- cssCalendarWeekend - This styles weekend days (not weekdays).
- cssCalendarHover - This styles any day of the week when the mouse is
hovering over it.
Because when you override a selector you must supply the entire selector,
i.e., you cannot override just the background-color attribute of the
buttons, you must instead supply the entire cssCalendarButton selector,
here are the default styles which you should probably modify and/or build
off of:
.cssCalendarOuter { background-color:#efefef; color:#000000;
border:1px solid #000000; font-family:arial; font-size:11pt;
font-weight:bold; font-style:normal; font-variant:normal;
text-decoration:none; }
.cssCalendarMain { position:absolute; width:auto; height:auto; left:0px;
top:0px; z-index:1000; display:none; color:#000000; font-family:arial;
font-size:11pt; font-weight:bold; font-style:normal; font-variant:normal;
text-decoration:none; cursor:default; }
.cssCalendarButton { color:#000000; font-family:arial; font-size:11pt;
font-weight:bold; font-style:normal; font-variant:normal;
text-decoration:none; cursor:pointer; }
.cssCalendarDropdown { color:#000000; font-family:arial; font-size:11pt;
font-weight:bold; font-style:normal; font-variant:normal;
text-decoration:none; cursor:pointer; }
.cssCalendarDay { color:#ffffff; background-color:#990033;
font-family:arial; font-size:11pt; font-weight:bold; font-style:normal;
font-variant:normal; text-decoration:none; cursor:pointer; width:20px; }
.cssCalendarWeekend { color:#c0c0b0; background-color:#990033;
font-family:arial; font-size:11pt; font-weight:bold; font-style:normal;
font-variant:normal; text-decoration:none; cursor:pointer; width:20px; }
.cssCalendarHover { color:#ffffff; background-color:#ccb433;
font-family:arial; font-size:11pt; font-weight:bold; font-style:normal;
font-variant:normal; text-decoration:none; width:20px; cursor:pointer; }
Required: No. Default: Same as "none".
To use the Calendar widget, perform the following steps:
- Place a <uiwidgets:calendar/> tag on the page. You only need to
place one, regardless of how many calendar you actually will have, and you
should be able to place it anywhere on the page. Here is an example taken
from the JWP sample app:
<uiwidgets:calendar minYear="1990" maxYear="2010"
styleOverrides="cssCalendarButton,cssCalendarDropdown" />
This will make the calendar have years listed from 1990 through 2010
(inclusive) and the cssCalendarButton and cssCalendarDropdown style
selectors will NOT be rendered, so you must provide them.
- Add the following Javascript event handler to whatever element will
cause the calendar to be shown:
onClick="showCalendar(calendarForm1.myDate1);"
The parameter you pass to this method is the form.element that will receive
the date. This should be a form text input element. This lets you give the
user the opportunity to still manually enter a date, or you can disable the
textbox to only allow input via the calendar.
The date returned is always in the form MM/DD/YYYY. Single-digit values
are zero=padded out to two places (i.e., you will get 01/05/2006 instead
of 1/5/2006).
- If you have <select> elements on your page, for each, call the
JWPCalendarAddDropdown() function like so:
JWPCalendarAddDropdown("AjaxPartsTestForm.selbox2");
JWPCalendarAddDropdown("testSelect");
Note that these calls MUST execute AFTER the page loads, or after the
widget tag appears on the page! So, either call some function onLoad
to execute these statements, or make sure the tag comes before them
physically on the page.
The calendar will first try and access the dropdown using DOM ID, and if it
is not found it will then try and eval the value you passed to this
function. If the element is part of a form, you should prefix the element
name with the form name, as shown above. If it isn't part of a form, it
should be found by the eval branch, but you would be better off to give it
a real ID to find to avoid any cross-browser problems.
- OPTIONAL: If you are overridding styles, make sure they are on the page
either literally or imported.
- Author:
- Frank W. Zammetti.
- See Also:
- Serialized Form
Field Summary |
private static org.apache.commons.logging.Log |
log
Log instance. |
private java.lang.String |
maxYear
The maximum year to show in the dropdown. |
private java.lang.String |
minYear
The minimum year to show in the dropdown. |
private java.lang.String |
styleOverrides
The style selectors that will be overridden. |
Fields inherited from class javax.servlet.jsp.tagext.BodyTagSupport |
bodyContent |
Fields inherited from class javax.servlet.jsp.tagext.TagSupport |
id, pageContext |
Fields inherited from interface javax.servlet.jsp.tagext.BodyTag |
EVAL_BODY_BUFFERED, EVAL_BODY_TAG |
Fields inherited from interface javax.servlet.jsp.tagext.IterationTag |
EVAL_BODY_AGAIN |
Fields inherited from interface javax.servlet.jsp.tagext.Tag |
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE |
Method Summary |
int |
doStartTag()
Render widget code. |
private void |
renderMarkup(java.lang.StringBuffer sb,
java.lang.String inMinYear,
java.lang.String inMaxYear)
Renders the makrup for the calendar. |
private void |
renderScript(java.lang.StringBuffer sb)
Renders the script block for the calendar. |
private void |
renderStyles(java.lang.StringBuffer sb,
boolean anyStyleOverrides,
java.util.HashMap overriddenStyles)
Renders the style block for the calendar. |
void |
setMaxYear(java.lang.String inMaxYear)
Set the maxYear field. |
void |
setMinYear(java.lang.String inMinYear)
Set the minYear field. |
void |
setStyleOverrides(java.lang.String inStyleOverrides)
Set the styleOverrides field. |
Methods inherited from class javax.servlet.jsp.tagext.BodyTagSupport |
doAfterBody, doEndTag, doInitBody, getBodyContent, getPreviousOut, release, setBodyContent |
Methods inherited from class javax.servlet.jsp.tagext.TagSupport |
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.servlet.jsp.tagext.Tag |
getParent, setPageContext, setParent |
log
private static org.apache.commons.logging.Log log
- Log instance.
minYear
private java.lang.String minYear
- The minimum year to show in the dropdown.
maxYear
private java.lang.String maxYear
- The maximum year to show in the dropdown.
styleOverrides
private java.lang.String styleOverrides
- The style selectors that will be overridden.
CalendarTag
public CalendarTag()
setMinYear
public void setMinYear(java.lang.String inMinYear)
- Set the minYear field.
- Parameters:
inMinYear
- The value of the minYear tag attribute.
setMaxYear
public void setMaxYear(java.lang.String inMaxYear)
- Set the maxYear field.
- Parameters:
inMaxYear
- The value of the maxYear tag attribute.
setStyleOverrides
public void setStyleOverrides(java.lang.String inStyleOverrides)
- Set the styleOverrides field.
- Parameters:
inStyleOverrides
- The value of the styleOverrides tag attribute.
doStartTag
public int doStartTag()
throws javax.servlet.jsp.JspException
- Render widget code.
- Specified by:
doStartTag
in interface javax.servlet.jsp.tagext.Tag
- Overrides:
doStartTag
in class javax.servlet.jsp.tagext.BodyTagSupport
- Returns:
- Return code.
- Throws:
javax.servlet.jsp.JspException
- If anything goes wrong
renderStyles
private void renderStyles(java.lang.StringBuffer sb,
boolean anyStyleOverrides,
java.util.HashMap overriddenStyles)
- Renders the style block for the calendar.
- Parameters:
sb
- StringBuffer the output is being built up in.anyStyleOverrides
- True if the developer wants to override any of
the styles, false if not.overriddenStyles
- A Map of styles the developer wants to override.
renderScript
private void renderScript(java.lang.StringBuffer sb)
- Renders the script block for the calendar.
- Parameters:
sb
- StringBuffer the output is being built up in.
renderMarkup
private void renderMarkup(java.lang.StringBuffer sb,
java.lang.String inMinYear,
java.lang.String inMaxYear)
- Renders the makrup for the calendar.
- Parameters:
sb
- StringBuffer the output is being built up in.inMinYear
- The start of the range for the year dropdown.inMaxYear
- The end of the range for the year dropdown.
Copyright © 2005 Frank W. Zammetti