org.apache.wicket.extensions.yui.calendar
Class AbstractCalendar

java.lang.Object
  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:
java.io.Serializable, IEventSink, IEventSource, IClusterable, IConverterLocator, IHeaderContributor, IRequestableComponent, IHierarchical<Component>

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.

Author:
eelcohillenius
See Also:
DatePicker, Serialized Form

Field Summary
 
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_INITIALIZED, FLAG_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER
 
Constructor Summary
AbstractCalendar(java.lang.String id)
          Construct.
AbstractCalendar(java.lang.String id, boolean contributeDependencies)
          Construct.
 
Method Summary
protected  void appendToInit(java.lang.String markupId, java.lang.String javascriptId, java.lang.String javascriptWidgetId, java.lang.StringBuilder b)
          Append javascript to the initialization function for the YUI widget.
protected  void configureWidgetProperties(java.util.Map<java.lang.Object,java.lang.Object> widgetProperties)
          Gives overriding classes the option of adding (or even changing/ removing) configuration properties for the javascript widget.
 java.lang.String getJavaScriptId()
          Gets the id of the javascript widget.
 java.lang.String getJavaScriptWidgetId()
          The name spaced id of the widget.
 void renderHead(IHeaderResponse response)
          Render to the web response whatever the component wants to contribute to the head section.
 
Methods inherited from class org.apache.wicket.markup.html.WebComponent
onRender
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, canCallListenerInterface, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, configure, continueToOriginalDestination, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, get, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessage, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalInitialize, internalOnModelChanged, internalPrepareForRender, internalRenderComponent, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markRendering, modelChanged, modelChanging, newMarkupSourcingStrategy, onAfterRender, onAfterRenderChildren, onBeforeRender, onComponentTag, onComponentTagBody, onConfigure, onDetach, onEvent, onInitialize, onMarkupAttached, onModelChanged, onModelChanging, onRemove, prepareForRender, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderHead, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModel, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setRequestFlag, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, toString, toString, 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
 

Constructor Detail

AbstractCalendar

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

Parameters:
id - The component id

AbstractCalendar

public AbstractCalendar(java.lang.String id,
                        boolean contributeDependencies)
Construct.

Parameters:
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

getJavaScriptId

public final java.lang.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().

Returns:
The javascript id
See Also:
getJavaScriptWidgetId()

getJavaScriptWidgetId

public final java.lang.String getJavaScriptWidgetId()
The name spaced id of the widget.

Returns:
The widget id
See Also:
getJavaScriptId()

appendToInit

protected void appendToInit(java.lang.String markupId,
                            java.lang.String javascriptId,
                            java.lang.String javascriptWidgetId,
                            java.lang.StringBuilder 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.

Parameters:
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

configureWidgetProperties

protected void configureWidgetProperties(java.util.Map<java.lang.Object,java.lang.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).

Parameters:
widgetProperties - the current widget properties

renderHead

public void renderHead(IHeaderResponse response)
Description copied from class: Component
Render to the web response whatever the component wants to contribute to the head section.

Specified by:
renderHead in interface IHeaderContributor
Overrides:
renderHead in class Component
Parameters:
response - Response object


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