Class AbstractCalendar

  extended by org.apache.wicket.Component
      extended by org.apache.wicket.markup.html.WebComponent
          extended by org.apache.wicket.extensions.yui.calendar.AbstractCalendar
All Implemented Interfaces:
Serializable, IClusterable, IConverterLocator

public abstract class AbstractCalendar
extends WebComponent

Abstract calendar component based on the YUI (Yahoo User Interface library) javascript widget.

Although this component by itself is fully functional, it doesn't do much other than just displaying the calendar. Hence, this class is abstract.

An easy way to build upon this component is to override appendToInit(String, String, String, StringBuffer) and add event handlers etc. in the YUI widget's initialization function.

See YUI's calendar documentation for more info.

See Also:
DatePicker, Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class org.apache.wicket.Component
Component.ComponentModelChange, Component.EnabledChange, Component.IVisitor<T extends Component>, Component.VisibilityChange
Field Summary
static DateFormat FORMAT_DATE
          Format to be used when configuring YUI calendar.
static DateFormat FORMAT_PAGEDATE
          For specifying which page (month/year) to show in the calendar, use this format for the date.
Fields inherited from class org.apache.wicket.Component
Constructor Summary
AbstractCalendar(String id)
AbstractCalendar(String id, boolean contributeDependencies)
Method Summary
protected  void appendToInit(String markupId, String javascriptId, String javascriptWidgetId, StringBuffer b)
          Append javascript to the initialization function for the YUI widget.
protected  void configureWidgetProperties(Map<Object,Object> widgetProperties)
          Gives overriding classes the option of adding (or even changing/ removing) configuration properties for the javascript widget.
 String getJavascriptId()
          Gets the id of the javascript widget.
 String getJavascriptWidgetId()
          The name spaced id of the widget.
Methods inherited from class org.apache.wicket.markup.html.WebComponent
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, callOnBeforeRenderIfNotVisible, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, configure, continueToOriginalDestination, debug, detach, detachBehaviors, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getApplication, getBehaviors, getBehaviors, getBehaviorsRawList, getClassRelativePath, getComponentBorder, getConverter, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessage, getFlag, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdImpl, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalAttach, internalDetach, internalOnAttach, internalOnDetach, internalOnModelChanged, isActionAuthorized, isAncestorOf, isAttached, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markAttached, markRendering, modelChanged, modelChanging, onAfterRender, onAttach, onBeforeRender, onBeginRequest, onComponentTag, onComponentTagBody, onConfigure, onDetach, onEndRequest, onInitialize, onModelChanged, onModelChanging, onRemove, prepareForRender, prepareForRender, redirectToInterceptPage, remove, remove, render, render, renderComponent, renderComponent, renderComponentTag, rendered, renderHead, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, setAuto, setComponentBorder, setDefaultModel, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setFlag, setIgnoreAttributeModifier, setMarkupId, setMarkupIdImpl, setMarkupStream, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setRedirect, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, toString, toString, urlFor, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, warn, wrap
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Field Detail


public static final DateFormat FORMAT_DATE
Format to be used when configuring YUI calendar. Can be used when using the "selected" property.


public static final DateFormat FORMAT_PAGEDATE
For specifying which page (month/year) to show in the calendar, use this format for the date. This is to be used together with the property "pagedate"

Constructor Detail


public AbstractCalendar(String id)
Construct. Contributes packaged dependencies.

id - The component id


public AbstractCalendar(String id,
                        boolean contributeDependencies)

id - The component id
contributeDependencies - Whether to contribute the packaged dependencies. Pass false in case you want to include the dependencies manually in your own page, e.g. when you want to keep them in your web application dir. To contribute yourself (in case you want to pass false), your page header should look like:
         <script type="text/javascript" src="yahoo.js"></script>
         <script type="text/javascript" src="dom.js"></script>
         <script type="text/javascript" src="event.js"></script>
         <script type="text/javascript" src="calendar.js"></script>
         <link rel="stylesheet" type="text/css" href="calendar.css" />
Method Detail


public final String getJavascriptId()
Gets the id of the javascript widget. Note that this is the non-namespaced id, so depending on what you want to do with it, you may need to prepend 'YAHOO.wicket.' to it. Or you can call getJavascriptWidgetId().

The javascript id
See Also:


public final String getJavascriptWidgetId()
The name spaced id of the widget.

The widget id
See Also:


protected void appendToInit(String markupId,
                            String javascriptId,
                            String javascriptWidgetId,
                            StringBuffer b)
Append javascript to the initialization function for the YUI widget. Can be used by subclasses to conveniently extend configuration without having to write a separate contribution.

markupId - The markup id of the calendar component
javascriptId - the non-name spaced javascript id of the widget
javascriptWidgetId - the name space id of the widget
b - the buffer to append the script to


protected void configureWidgetProperties(Map<Object,Object> widgetProperties)
Gives overriding classes the option of adding (or even changing/ removing) configuration properties for the javascript widget. See the widget's documentation for the available options. If you want to override/ remove properties, you obviously should call super.configureWidgetProperties(properties).

widgetProperties - the current widget properties

Copyright © 2004-2011 Apache Software Foundation. All Rights Reserved.