Class AbstractCalendar

java.lang.Object
org.apache.wicket.Component
org.apache.wicket.markup.html.WebComponent
org.wicketstuff.datetime.extensions.yui.calendar.AbstractCalendar
All Implemented Interfaces:
Serializable, IEventSink, IEventSource, IFeedbackContributor, IConverterLocator, IMetadataContext<Serializable,Component>, IHeaderContributor, IRequestableComponent, IHierarchical<Component>, IClusterable

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, StringBuilder) and add event handlers etc. in the YUI widget's initialization function.

See YUI's calendar documentation for more info.
Author:
eelcohillenius
See Also:
  • Constructor Details

    • AbstractCalendar

      public AbstractCalendar(String id)
      Construct. Contributes packaged dependencies.
      Parameters:
      id - The component id
    • AbstractCalendar

      public AbstractCalendar(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 Details

    • getJavaScriptId

      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().
      Returns:
      The javascript id
      See Also:
    • getJavaScriptWidgetId

      public final String getJavaScriptWidgetId()
      The name spaced id of the widget.
      Returns:
      The widget id
      See Also:
    • appendToInit

      protected void appendToInit(String markupId, String javascriptId, String javascriptWidgetId, 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(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).
      Parameters:
      widgetProperties - the current widget properties
    • renderHead

      public void renderHead(IHeaderResponse response)
      Specified by:
      renderHead in interface IHeaderContributor
      Overrides:
      renderHead in class Component