Class Calendar
- java.lang.Object
-
- com.vaadin.server.AbstractClientConnector
-
- com.vaadin.ui.AbstractComponent
-
- com.vaadin.ui.Calendar
-
- All Implemented Interfaces:
Action.Container
,ConnectorEventListener
,ContextClickEvent.ContextClickNotifier
,DropTarget
,MethodEventSource
,ClientConnector
,Sizeable
,VariableOwner
,Connector
,Component
,CalendarComponentEvents.CalendarEventNotifier
,CalendarComponentEvents.EventMoveNotifier
,CalendarComponentEvents.EventResizeNotifier
,CalendarComponentEvents.NavigationNotifier
,CalendarComponentEvents.RangeSelectNotifier
,CalendarEditableEventProvider
,CalendarEventProvider
,CalendarEventProvider.EventSetChangeListener
,LegacyComponent
,Serializable
,EventListener
public class Calendar extends AbstractComponent implements CalendarComponentEvents.NavigationNotifier, CalendarComponentEvents.EventMoveNotifier, CalendarComponentEvents.RangeSelectNotifier, CalendarComponentEvents.EventResizeNotifier, CalendarEventProvider.EventSetChangeListener, DropTarget, CalendarEditableEventProvider, Action.Container, LegacyComponent
Vaadin Calendar is for visualizing events in a calendar. Calendar events can be visualized in the variable length view depending on the start and end dates.
- You can set the viewable date range with the
setStartDate(Date)
andsetEndDate(Date)
methods. Calendar has a default date range of one week - Calendar has two kind of views: monthly and weekly view
- If date range is seven days or shorter, the weekly view is used.
- Calendar queries its events by using a
CalendarEventProvider
. By default, aBasicEventProvider
is used.
- Since:
- 7.1
- Author:
- Vaadin Ltd.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Calendar.TimeFormat
Calendar can use either 12 hours clock or 24 hours clock.-
Nested classes/interfaces inherited from interface com.vaadin.ui.components.calendar.event.CalendarEventProvider
CalendarEventProvider.EventSetChangeEvent, CalendarEventProvider.EventSetChangeListener, CalendarEventProvider.EventSetChangeNotifier
-
Nested classes/interfaces inherited from interface com.vaadin.server.ClientConnector
ClientConnector.AttachEvent, ClientConnector.AttachListener, ClientConnector.ConnectorErrorEvent, ClientConnector.DetachEvent, ClientConnector.DetachListener
-
Nested classes/interfaces inherited from interface com.vaadin.ui.Component
Component.ErrorEvent, Component.Event, Component.Focusable, Component.Listener
-
Nested classes/interfaces inherited from interface com.vaadin.server.Sizeable
Sizeable.Unit
-
-
Field Summary
Fields Modifier and Type Field Description protected Calendar
currentCalendar
Internal calendar data source.protected Calendar.TimeFormat
currentTimeFormat
Defines currently active format for time.protected DateFormat
df_date
Date format that will be used in the UIDL for dates.protected DateFormat
df_date_time
Date format that will be used in the UIDL for both date and time.protected DateFormat
df_time
Time format that will be used in the UIDL for time.protected Date
endDate
Defines the calendar's date range ending point.protected List<CalendarEvent>
events
Internal buffer for the events that are retrieved from the event provider.protected Date
startDate
Defines the calendar's date range starting point.protected TimeZone
timezone
Defines the component's active time zone.-
Fields inherited from class com.vaadin.ui.AbstractComponent
DESIGN_ATTR_PLAIN_TEXT
-
Fields inherited from interface com.vaadin.server.Sizeable
SIZE_UNDEFINED, UNITS_CM, UNITS_EM, UNITS_EX, UNITS_INCH, UNITS_MM, UNITS_PERCENTAGE, UNITS_PICAS, UNITS_PIXELS, UNITS_POINTS
-
-
Constructor Summary
Constructors Constructor Description Calendar()
Construct a Vaadin Calendar with a BasicEventProvider and no caption.Calendar(CalendarEventProvider eventProvider)
Construct a Vaadin Calendar with event provider.Calendar(String caption)
Construct a Vaadin Calendar with a BasicEventProvider and the provided caption.Calendar(String caption, CalendarEventProvider eventProvider)
Construct a Vaadin Calendar with event provider and a caption.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addActionHandler(Action.Handler actionHandler)
Adds an action handler to the calender that handles event produced by the context menu.void
addEvent(CalendarEvent event)
Adds an event to the event providervoid
autoScaleVisibleHoursOfDay()
Sets the displayed start and end time to fit all current events that were retrieved from the last call to getEvents().void
beforeClientResponse(boolean initial)
Called before the shared state and RPC invocations are sent to the client.void
changeVariables(Object source, Map<String,Object> variables)
Called when one or more variables handled by the implementing class are changed.void
eventSetChange(CalendarEventProvider.EventSetChangeEvent changeEvent)
Called when the set of Events has changed.protected Date
expandEndDate(Date end, boolean expandToFullWeek)
Finds the last day of the week and returns a day representing the end of that dayprotected Date
expandStartDate(Date start, boolean expandToFullWeek)
Finds the first day of the week and returns a day representing the start of that dayprotected void
fireDateClick(Date date)
Fires event when a date was clicked in the calendar.protected void
fireEventClick(Integer index)
Fires event when a date was clicked in the calendar.protected void
fireEventMove(int index, Date newFromDatetime)
Fires an event move event to all server side move listernersprotected void
fireEventResize(int index, Date startTime, Date endTime)
Fires an event resize event.protected void
fireNavigationEvent(boolean forward)
Fires an event when the user selecing moving forward/backward in the calendar.protected void
fireRangeSelect(Date from, Date to, boolean monthlyMode)
Fires an event range selected event.protected void
fireWeekClick(int week, int year)
Fires event when a week was clicked in the calendar.protected Collection<String>
getCustomAttributes()
Returns a collection of attributes that should not be handled by the basic implementation of theAbstractComponent.readDesign(org.jsoup.nodes.Element,com.vaadin.ui.declarative.DesignContext)
andAbstractComponent.writeDesign(org.jsoup.nodes.Element,com.vaadin.ui.declarative.DesignContext)
methods.protected String[]
getDayNamesShort()
Localized display names for week days starting from sunday.DropHandler
getDropHandler()
Get the currently active drop handlerDate
getEndDate()
Gets the calendar's end date.CalendarEventProvider
getEventProvider()
List<CalendarEvent>
getEvents(Date startDate, Date endDate)
Gets all available events in the target date range between startDate and endDate.protected Date
getFirstDateForWeek(Date date)
Gets a date that is first day in the week that target given date belongs to.int
getFirstVisibleDayOfWeek()
Get the first visible day of the week.int
getFirstVisibleHourOfDay()
Returns the first visible hour in the week view.EventListener
getHandler(String eventId)
Get the assigned event handler for the given eventId.Calendar
getInternalCalendar()
Get the internally used Calendar instance.protected Date
getLastDateForWeek(Date date)
Gets a date that is last day in the week that target given date belongs to.int
getLastVisibleDayOfWeek()
Get the last visible day of the week.int
getLastVisibleHourOfDay()
Returns the last visible hour in the week view.protected Logger
getLogger()
Returns the logger for the calendarprotected String[]
getMonthNamesShort()
Localized display names for months starting from January.Date
getStartDate()
Gets the calendar's start date.CalendarState
getState()
Returns the shared state bean with information to be sent from the server to the client.protected CalendarState
getState(boolean markAsDirty)
Returns the shared state for this connector.Calendar.TimeFormat
getTimeFormat()
Gets currently active time format.TimeZone
getTimeZone()
Returns a time zone that is currently used by this component.String
getWeeklyCaptionFormat()
Gets the date caption format for the weekly view.protected boolean
isClientChangeAllowed()
Is the user allowed to trigger events which alters the eventsboolean
isEventCaptionAsHtml()
Checks whether event captions are rendered as HTMLprotected boolean
isEventClickAllowed()
Deprecated.As of 7.4, overridefireEventClick(Integer)
instead.boolean
isMonthlyMode()
Is the calendar in a mode where all days of the month is shownvoid
paintContent(PaintTarget target)
Paints the Paintable into a UIDL stream.void
readDesign(org.jsoup.nodes.Element design, DesignContext designContext)
Reads the component state from the given design.void
removeActionHandler(Action.Handler actionHandler)
Removes a previously registered action handler for the contents of this container.void
removeEvent(CalendarEvent event)
Removes an event from the event providervoid
resetVisibleHoursOfDay()
Resets thesetFirstVisibleHourOfDay(int)
andsetLastVisibleHourOfDay(int)
to the default values, 0 and 23 respectively.void
setContainerDataSource(Container.Indexed container)
Sets a container as a data source for the events in the calendar.void
setContainerDataSource(Container.Indexed container, Object captionProperty, Object descriptionProperty, Object startDateProperty, Object endDateProperty, Object styleNameProperty)
Sets a container as a data source for the events in the calendar.protected void
setDefaultHandlers()
Set all the wanted default handlers here.void
setDropHandler(DropHandler dropHandler)
Set the drop handler for the calendar SeeDropHandler
for implementation details.void
setEndDate(Date date)
Sets end date for the calendar.void
setEventCaptionAsHtml(boolean eventCaptionAsHtml)
Sets whether the event captions are rendered as HTML.void
setEventProvider(CalendarEventProvider calendarEventProvider)
Set theCalendarEventProvider
to be used with this calendar.void
setFirstDayOfWeek(Integer dayOfWeek)
Allow setting first day of week independent of Locale.void
setFirstVisibleDayOfWeek(int firstDay)
This method restricts the weekdays that are shown.void
setFirstVisibleHourOfDay(int firstHour)
This method restricts the hours that are shown per day.void
setHandler(CalendarComponentEvents.BackwardHandler listener)
Add a backward navigation listener.void
setHandler(CalendarComponentEvents.DateClickHandler listener)
Add a date click listener.void
setHandler(CalendarComponentEvents.EventClickHandler listener)
Add a event click listener.void
setHandler(CalendarComponentEvents.EventMoveHandler listener)
Set the EventMoveHandler.void
setHandler(CalendarComponentEvents.EventResizeHandler listener)
Set a EventResizeHandler.void
setHandler(CalendarComponentEvents.ForwardHandler listener)
Add a forward navigation listener.void
setHandler(CalendarComponentEvents.RangeSelectHandler listener)
Set the RangeSelectHandler that listens for drag-marking.void
setHandler(CalendarComponentEvents.WeekClickHandler listener)
Add a week click listener.protected void
setHandler(String eventId, Class<?> eventType, EventListener listener, Method listenerMethod)
Set the handler for the given type information.void
setLastVisibleDayOfWeek(int lastDay)
This method restricts the weekdays that are shown.void
setLastVisibleHourOfDay(int lastHour)
This method restricts the hours that are shown per day.void
setLocale(Locale newLocale)
Sets the locale to be used in the Calendar component.void
setStartDate(Date date)
Sets start date for the calendar.void
setTimeFormat(Calendar.TimeFormat format)
Example:setTimeFormat(TimeFormat.Format12H);
Set to null, if you want the format being defined by the locale.void
setTimeZone(TimeZone zone)
Set time zone that this component will use.void
setWeeklyCaptionFormat(String dateFormatPattern)
Sets custom date format for the weekly view.TargetDetails
translateDropTargetDetails(Map<String,Object> clientVariables)
Called before theDragAndDropEvent
is passed toDropHandler
.void
writeDesign(org.jsoup.nodes.Element design, DesignContext designContext)
Writes the component state to the given design.-
Methods inherited from class com.vaadin.ui.AbstractComponent
addContextClickListener, addListener, addShortcutListener, addStyleName, attach, detach, findAncestor, fireComponentErrorEvent, fireComponentEvent, focus, getActionManager, getCaption, getComponentError, getData, getDebugId, getDescription, getErrorMessage, getExplicitImmediateValue, getHeight, getHeightUnits, getIcon, getId, getLocale, getParent, getPrimaryStyleName, getStyleName, getWidth, getWidthUnits, isCaptionAsHtml, isConnectorEnabled, isEnabled, isImmediate, isOrHasAncestor, isReadOnly, isResponsive, isVisible, removeContextClickListener, removeListener, removeShortcutListener, removeStyleName, setCaption, setCaptionAsHtml, setComponentError, setData, setDebugId, setDescription, setEnabled, setHeight, setHeight, setHeightUndefined, setIcon, setId, setImmediate, setParent, setPrimaryStyleName, setReadOnly, setResponsive, setSizeFull, setSizeUndefined, setStyleName, setStyleName, setVisible, setWidth, setWidth, setWidthUndefined
-
Methods inherited from class com.vaadin.server.AbstractClientConnector
addAttachListener, addDetachListener, addExtension, addListener, addListener, addListener, addMethodInvocationToQueue, createState, encodeState, equals, fireEvent, getAllChildrenIterable, getConnectorId, getErrorHandler, getExtensions, getListeners, getResource, getRpcManager, getRpcProxy, getSession, getStateType, getUI, handleConnectorRequest, hashCode, hasListeners, isAttached, isThis, markAsDirty, markAsDirtyRecursive, registerRpc, registerRpc, removeAttachListener, removeDetachListener, removeExtension, removeListener, removeListener, removeListener, removeListener, requestRepaint, requestRepaintAll, retrievePendingRpcCalls, setErrorHandler, setResource
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.vaadin.server.ClientConnector
addAttachListener, addDetachListener, detach, encodeState, getErrorHandler, getExtensions, getRpcManager, getStateType, handleConnectorRequest, isAttached, isConnectorEnabled, markAsDirtyRecursive, removeAttachListener, removeDetachListener, removeExtension, requestRepaint, requestRepaintAll, retrievePendingRpcCalls, setErrorHandler
-
Methods inherited from interface com.vaadin.ui.Component
addListener, addStyleName, attach, getCaption, getDescription, getIcon, getId, getLocale, getParent, getPrimaryStyleName, getStyleName, getUI, isEnabled, isReadOnly, isVisible, removeListener, removeStyleName, setCaption, setEnabled, setIcon, setId, setParent, setPrimaryStyleName, setReadOnly, setStyleName, setVisible
-
Methods inherited from interface com.vaadin.shared.Connector
getConnectorId
-
Methods inherited from interface com.vaadin.ui.LegacyComponent
markAsDirty
-
Methods inherited from interface com.vaadin.server.Sizeable
getHeight, getHeightUnits, getWidth, getWidthUnits, setHeight, setHeight, setHeightUndefined, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthUndefined
-
Methods inherited from interface com.vaadin.server.VariableOwner
isEnabled, isImmediate
-
-
-
-
Field Detail
-
currentTimeFormat
protected Calendar.TimeFormat currentTimeFormat
Defines currently active format for time. 12H/24H.
-
currentCalendar
protected Calendar currentCalendar
Internal calendar data source.
-
timezone
protected TimeZone timezone
Defines the component's active time zone.
-
startDate
protected Date startDate
Defines the calendar's date range starting point.
-
endDate
protected Date endDate
Defines the calendar's date range ending point.
-
events
protected List<CalendarEvent> events
Internal buffer for the events that are retrieved from the event provider.
-
df_date
protected DateFormat df_date
Date format that will be used in the UIDL for dates.
-
df_time
protected DateFormat df_time
Time format that will be used in the UIDL for time.
-
df_date_time
protected DateFormat df_date_time
Date format that will be used in the UIDL for both date and time.
-
-
Constructor Detail
-
Calendar
public Calendar()
Construct a Vaadin Calendar with a BasicEventProvider and no caption. Default date range is one week.
-
Calendar
public Calendar(String caption)
Construct a Vaadin Calendar with a BasicEventProvider and the provided caption. Default date range is one week.- Parameters:
caption
-
-
Calendar
public Calendar(CalendarEventProvider eventProvider)
Construct a Vaadin Calendar with event provider. Event provider is obligatory, because calendar component will query active events through it.
By default, Vaadin Calendar will show dates from the start of the current week to the end of the current week. Use
setStartDate(Date)
andsetEndDate(Date)
to change this.- Parameters:
eventProvider
- Event provider, cannot be null.
-
Calendar
public Calendar(String caption, CalendarEventProvider eventProvider)
Construct a Vaadin Calendar with event provider and a caption. Event provider is obligatory, because calendar component will query active events through it.
By default, Vaadin Calendar will show dates from the start of the current week to the end of the current week. Use
setStartDate(Date)
andsetEndDate(Date)
to change this.- Parameters:
eventProvider
- Event provider, cannot be null.
-
-
Method Detail
-
getLogger
protected Logger getLogger()
Returns the logger for the calendar
-
getState
public CalendarState getState()
Description copied from class:AbstractComponent
Returns the shared state bean with information to be sent from the server to the client. Subclasses should override this method and set any relevant fields of the state returned by super.getState().- Overrides:
getState
in classAbstractComponent
- Returns:
- updated component shared state
-
getState
protected CalendarState getState(boolean markAsDirty)
Description copied from class:AbstractClientConnector
Returns the shared state for this connector.- Overrides:
getState
in classAbstractComponent
- Parameters:
markAsDirty
- true if the connector should automatically be marked dirty, false otherwise- Returns:
- The shared state for this connector. Never null.
- See Also:
AbstractClientConnector.getState()
-
beforeClientResponse
public void beforeClientResponse(boolean initial)
Description copied from interface:ClientConnector
Called before the shared state and RPC invocations are sent to the client. Gives the connector an opportunity to set computed/dynamic state values or to invoke last minute RPC methods depending on other component features.- Specified by:
beforeClientResponse
in interfaceClientConnector
- Overrides:
beforeClientResponse
in classAbstractComponent
- Parameters:
initial
-true
if the client-side connector will be created and initialized after this method has been invoked.false
if there is already an initialized client-side connector.
-
setDefaultHandlers
protected void setDefaultHandlers()
Set all the wanted default handlers here. This is always called after constructing this object. All other events have default handlers except range and event click.
-
getStartDate
public Date getStartDate()
Gets the calendar's start date.- Returns:
- First visible date.
-
setStartDate
public void setStartDate(Date date)
Sets start date for the calendar. This andsetEndDate(Date)
control the range of dates visible on the component. The default range is one week.- Parameters:
date
- First visible date to show.
-
getEndDate
public Date getEndDate()
Gets the calendar's end date.- Returns:
- Last visible date.
-
setEndDate
public void setEndDate(Date date)
Sets end date for the calendar. Starting from startDate, only six weeks will be shown if duration to endDate is longer than six weeks. This andsetStartDate(Date)
control the range of dates visible on the component. The default range is one week.- Parameters:
date
- Last visible date to show.
-
setLocale
public void setLocale(Locale newLocale)
Sets the locale to be used in the Calendar component.- Overrides:
setLocale
in classAbstractComponent
- Parameters:
newLocale
- the locale to become this component's locale.- See Also:
AbstractComponent.setLocale(java.util.Locale)
-
autoScaleVisibleHoursOfDay
public void autoScaleVisibleHoursOfDay()
Sets the displayed start and end time to fit all current events that were retrieved from the last call to getEvents().If no events exist, nothing happens.
NOTE: triggering this method only does this once for the current events - events that are not in the current visible range, are ignored!
-
resetVisibleHoursOfDay
public void resetVisibleHoursOfDay()
Resets thesetFirstVisibleHourOfDay(int)
andsetLastVisibleHourOfDay(int)
to the default values, 0 and 23 respectively.
-
getTimeFormat
public Calendar.TimeFormat getTimeFormat()
Gets currently active time format. Value is either TimeFormat.Format12H or TimeFormat.Format24H.- Returns:
- TimeFormat Format for the time.
-
setTimeFormat
public void setTimeFormat(Calendar.TimeFormat format)
Example:setTimeFormat(TimeFormat.Format12H);
Set to null, if you want the format being defined by the locale.- Parameters:
format
- Set 12h or 24h format. Default is defined by the locale.
-
getTimeZone
public TimeZone getTimeZone()
Returns a time zone that is currently used by this component.- Returns:
- Component's Time zone
-
setTimeZone
public void setTimeZone(TimeZone zone)
Set time zone that this component will use. Null value sets the default time zone.- Parameters:
zone
- Time zone to use
-
getInternalCalendar
public Calendar getInternalCalendar()
Get the internally used Calendar instance. This is the currently used instance ofCalendar
but is bound to change during the lifetime of the component.- Returns:
- the currently used java calendar
-
setFirstVisibleDayOfWeek
public void setFirstVisibleDayOfWeek(int firstDay)
This method restricts the weekdays that are shown. This affects both the monthly and the weekly view. The general contract is that firstDay < lastDay.
Note that this only affects the rendering process. Events are still requested by the dates set by
setStartDate(Date)
andsetEndDate(Date)
.- Parameters:
firstDay
- the first day of the week to show, between 1 and 7
-
getFirstVisibleDayOfWeek
public int getFirstVisibleDayOfWeek()
Get the first visible day of the week. Returns the weekdays as integers represented byCalendar.DAY_OF_WEEK
- Returns:
- An integer representing the week day according to
Calendar.DAY_OF_WEEK
-
setLastVisibleDayOfWeek
public void setLastVisibleDayOfWeek(int lastDay)
This method restricts the weekdays that are shown. This affects both the monthly and the weekly view. The general contract is that firstDay < lastDay.
Note that this only affects the rendering process. Events are still requested by the dates set by
setStartDate(Date)
andsetEndDate(Date)
.- Parameters:
lastDay
- the first day of the week to show, between 1 and 7
-
getLastVisibleDayOfWeek
public int getLastVisibleDayOfWeek()
Get the last visible day of the week. Returns the weekdays as integers represented byCalendar.DAY_OF_WEEK
- Returns:
- An integer representing the week day according to
Calendar.DAY_OF_WEEK
-
setFirstVisibleHourOfDay
public void setFirstVisibleHourOfDay(int firstHour)
This method restricts the hours that are shown per day. This affects the weekly view. The general contract is that firstHour < lastHour.Note that this only affects the rendering process. Events are still requested by the dates set by
setStartDate(Date)
andsetEndDate(Date)
.You can use
autoScaleVisibleHoursOfDay()
for automatic scaling of the visible hours based on current events.- Parameters:
firstHour
- the first hour of the day to show, between 0 and 23- See Also:
autoScaleVisibleHoursOfDay()
-
getFirstVisibleHourOfDay
public int getFirstVisibleHourOfDay()
Returns the first visible hour in the week view. Returns the hour using a 24h time format
-
setLastVisibleHourOfDay
public void setLastVisibleHourOfDay(int lastHour)
This method restricts the hours that are shown per day. This affects the weekly view. The general contract is that firstHour < lastHour.Note that this only affects the rendering process. Events are still requested by the dates set by
setStartDate(Date)
andsetEndDate(Date)
.You can use
autoScaleVisibleHoursOfDay()
for automatic scaling of the visible hours based on current events.- Parameters:
lastHour
- the first hour of the day to show, between 0 and 23- See Also:
autoScaleVisibleHoursOfDay()
-
getLastVisibleHourOfDay
public int getLastVisibleHourOfDay()
Returns the last visible hour in the week view. Returns the hour using a 24h time format
-
getWeeklyCaptionFormat
public String getWeeklyCaptionFormat()
Gets the date caption format for the weekly view.- Returns:
- The pattern used in caption of dates in weekly view.
-
setWeeklyCaptionFormat
public void setWeeklyCaptionFormat(String dateFormatPattern)
Sets custom date format for the weekly view. This is the caption of the date. Format could be like "mmm MM/dd".- Parameters:
dateFormatPattern
- The date caption pattern.
-
isClientChangeAllowed
protected boolean isClientChangeAllowed()
Is the user allowed to trigger events which alters the events- Returns:
- true if the client is allowed to send changes to server
- See Also:
isEventClickAllowed()
-
isEventClickAllowed
@Deprecated protected boolean isEventClickAllowed()
Deprecated.As of 7.4, overridefireEventClick(Integer)
instead.Is the user allowed to trigger click events. Returnstrue
by default. Subclass can override this method to disallow firing event clicks got from the client side.- Returns:
- true if the client is allowed to click events
- See Also:
isClientChangeAllowed()
-
fireNavigationEvent
protected void fireNavigationEvent(boolean forward)
Fires an event when the user selecing moving forward/backward in the calendar.- Parameters:
forward
- True if the calendar moved forward else backward is assumed.
-
fireEventMove
protected void fireEventMove(int index, Date newFromDatetime)
Fires an event move event to all server side move listerners- Parameters:
index
- The index of the event in the events listnewFromDatetime
- The changed from date time
-
fireWeekClick
protected void fireWeekClick(int week, int year)
Fires event when a week was clicked in the calendar.- Parameters:
week
- The week that was clickedyear
- The year of the week
-
fireEventClick
protected void fireEventClick(Integer index)
Fires event when a date was clicked in the calendar. Uses an existing event from the event cache.- Parameters:
index
- The index of the event in the event cache.
-
fireDateClick
protected void fireDateClick(Date date)
Fires event when a date was clicked in the calendar. Creates a new event for the date and passes it to the listener.- Parameters:
date
- The date and time that was clicked
-
fireRangeSelect
protected void fireRangeSelect(Date from, Date to, boolean monthlyMode)
Fires an event range selected event. The event is fired when a user highlights an area in the calendar. The highlighted areas start and end dates are returned as arguments.- Parameters:
from
- The start date and time of the highlighted areato
- The end date and time of the highlighted areamonthlyMode
- Is the calendar in monthly mode
-
fireEventResize
protected void fireEventResize(int index, Date startTime, Date endTime)
Fires an event resize event. The event is fired when a user resizes the event in the calendar causing the time range of the event to increase or decrease. The new start and end times are returned as arguments to this method.- Parameters:
index
- The index of the event in the event cachestartTime
- The new start date and time of the eventendTime
- The new end date and time of the event
-
getDayNamesShort
protected String[] getDayNamesShort()
Localized display names for week days starting from sunday. Returned array's length is always 7.- Returns:
- Array of localized weekday names.
-
getMonthNamesShort
protected String[] getMonthNamesShort()
Localized display names for months starting from January. Returned array's length is always 12.- Returns:
- Array of localized month names.
-
getFirstDateForWeek
protected Date getFirstDateForWeek(Date date)
Gets a date that is first day in the week that target given date belongs to.- Parameters:
date
- Target date- Returns:
- Date that is first date in same week that given date is.
-
getLastDateForWeek
protected Date getLastDateForWeek(Date date)
Gets a date that is last day in the week that target given date belongs to.- Parameters:
date
- Target date- Returns:
- Date that is last date in same week that given date is.
-
expandStartDate
protected Date expandStartDate(Date start, boolean expandToFullWeek)
Finds the first day of the week and returns a day representing the start of that day- Parameters:
start
- The actual dateexpandToFullWeek
- Should the returned date be moved to the start of the week- Returns:
- If expandToFullWeek is set then it returns the first day of the week, else it returns a clone of the actual date with the time set to the start of the day
-
expandEndDate
protected Date expandEndDate(Date end, boolean expandToFullWeek)
Finds the last day of the week and returns a day representing the end of that day- Parameters:
end
- The actual dateexpandToFullWeek
- Should the returned date be moved to the end of the week- Returns:
- If expandToFullWeek is set then it returns the last day of the week, else it returns a clone of the actual date with the time set to the end of the day
-
setEventProvider
public void setEventProvider(CalendarEventProvider calendarEventProvider)
Set theCalendarEventProvider
to be used with this calendar. The EventProvider is used to query for events to show, and must be non-null. By default aBasicEventProvider
is used.- Parameters:
calendarEventProvider
- the calendarEventProvider to set. Cannot be null.
-
getEventProvider
public CalendarEventProvider getEventProvider()
- Returns:
- the
CalendarEventProvider
currently used
-
eventSetChange
public void eventSetChange(CalendarEventProvider.EventSetChangeEvent changeEvent)
Description copied from interface:CalendarEventProvider.EventSetChangeListener
Called when the set of Events has changed.- Specified by:
eventSetChange
in interfaceCalendarEventProvider.EventSetChangeListener
-
setHandler
protected void setHandler(String eventId, Class<?> eventType, EventListener listener, Method listenerMethod)
Set the handler for the given type information. MirrorsaddListener
from AbstractComponent- Parameters:
eventId
- A unique id for the event. Usually one ofCalendarEventId
eventType
- The class of the event, most likely a subclass ofCalendarComponentEvent
listener
- A listener that listens to the given eventlistenerMethod
- The method on the lister to call when the event is triggered
-
setHandler
public void setHandler(CalendarComponentEvents.ForwardHandler listener)
Description copied from interface:CalendarComponentEvents.NavigationNotifier
Add a forward navigation listener.- Specified by:
setHandler
in interfaceCalendarComponentEvents.NavigationNotifier
- Parameters:
listener
- ForwardHandler to be added.
-
setHandler
public void setHandler(CalendarComponentEvents.BackwardHandler listener)
Description copied from interface:CalendarComponentEvents.NavigationNotifier
Add a backward navigation listener.- Specified by:
setHandler
in interfaceCalendarComponentEvents.NavigationNotifier
- Parameters:
listener
- BackwardHandler to be added.
-
setHandler
public void setHandler(CalendarComponentEvents.DateClickHandler listener)
Description copied from interface:CalendarComponentEvents.NavigationNotifier
Add a date click listener.- Specified by:
setHandler
in interfaceCalendarComponentEvents.NavigationNotifier
- Parameters:
listener
- DateClickHandler to be added.
-
setHandler
public void setHandler(CalendarComponentEvents.EventClickHandler listener)
Description copied from interface:CalendarComponentEvents.NavigationNotifier
Add a event click listener.- Specified by:
setHandler
in interfaceCalendarComponentEvents.NavigationNotifier
- Parameters:
listener
- EventClickHandler to be added.
-
setHandler
public void setHandler(CalendarComponentEvents.WeekClickHandler listener)
Description copied from interface:CalendarComponentEvents.NavigationNotifier
Add a week click listener.- Specified by:
setHandler
in interfaceCalendarComponentEvents.NavigationNotifier
- Parameters:
listener
- WeekClickHandler to be added.
-
setHandler
public void setHandler(CalendarComponentEvents.EventResizeHandler listener)
Description copied from interface:CalendarComponentEvents.EventResizeNotifier
Set a EventResizeHandler.- Specified by:
setHandler
in interfaceCalendarComponentEvents.EventResizeNotifier
- Parameters:
listener
- EventResizeHandler to be set
-
setHandler
public void setHandler(CalendarComponentEvents.RangeSelectHandler listener)
Description copied from interface:CalendarComponentEvents.RangeSelectNotifier
Set the RangeSelectHandler that listens for drag-marking.- Specified by:
setHandler
in interfaceCalendarComponentEvents.RangeSelectNotifier
- Parameters:
listener
- RangeSelectHandler to be added.
-
setHandler
public void setHandler(CalendarComponentEvents.EventMoveHandler listener)
Description copied from interface:CalendarComponentEvents.EventMoveNotifier
Set the EventMoveHandler.- Specified by:
setHandler
in interfaceCalendarComponentEvents.EventMoveNotifier
- Parameters:
listener
- EventMoveHandler to be added
-
getHandler
public EventListener getHandler(String eventId)
Description copied from interface:CalendarComponentEvents.CalendarEventNotifier
Get the assigned event handler for the given eventId.- Specified by:
getHandler
in interfaceCalendarComponentEvents.CalendarEventNotifier
- Returns:
- the assigned eventHandler, or null if no handler is assigned
-
getDropHandler
public DropHandler getDropHandler()
Get the currently active drop handler- Specified by:
getDropHandler
in interfaceDropTarget
- Returns:
- the drop hanler that will receive the dragged data or null if drops are not currently accepted
-
setDropHandler
public void setDropHandler(DropHandler dropHandler)
Set the drop handler for the calendar SeeDropHandler
for implementation details.- Parameters:
dropHandler
- The drop handler to set
-
translateDropTargetDetails
public TargetDetails translateDropTargetDetails(Map<String,Object> clientVariables)
Description copied from interface:DropTarget
Called before theDragAndDropEvent
is passed toDropHandler
. Implementation may for example translate the drop target details provided by the client side (drop target) to meaningful server side values. If null is returned the terminal implementation will automatically create aTargetDetails
with raw client side data.- Specified by:
translateDropTargetDetails
in interfaceDropTarget
- Parameters:
clientVariables
- data passed from the DropTargets client side counterpart.- Returns:
- A DropTargetDetails object with the translated data or null to use a default implementation.
- See Also:
DragSource.getTransferable(Map)
-
setContainerDataSource
public void setContainerDataSource(Container.Indexed container)
Sets a container as a data source for the events in the calendar. Equivalent for doingCalendar.setEventProvider(new ContainerEventProvider(container))
Use this method if you are adding a container which uses the default property ids likeBeanItemContainer
for instance. If you are using custom properties instead usesetContainerDataSource(Container.Indexed, Object, Object, Object, Object, Object)
Please note that the container must be sorted by date!- Parameters:
container
- The container to use as a datasource
-
setContainerDataSource
public void setContainerDataSource(Container.Indexed container, Object captionProperty, Object descriptionProperty, Object startDateProperty, Object endDateProperty, Object styleNameProperty)
Sets a container as a data source for the events in the calendar. Equivalent for doingCalendar.setEventProvider(new ContainerEventProvider(container))
Please note that the container must be sorted by date!- Parameters:
container
- The container to use as a data sourcecaptionProperty
- The property that has the caption, null if no caption property is presentdescriptionProperty
- The property that has the description, null if no description property is presentstartDateProperty
- The property that has the starting dateendDateProperty
- The property that has the ending datestyleNameProperty
- The property that has the stylename, null if no stylname property is present
-
getEvents
public List<CalendarEvent> getEvents(Date startDate, Date endDate)
Description copied from interface:CalendarEventProvider
Gets all available events in the target date range between startDate and endDate. The Vaadin Calendar queries the events from the range that is shown, which is not guaranteed to be the same as the date range that is set.
For example, if you set the date range to be monday 22.2.2010 - wednesday 24.2.2010, the used Event Provider will be queried for events between monday 22.2.2010 00:00 and sunday 28.2.2010 23:59. Generally you can expect the date range to be expanded to whole days and whole weeks.
- Specified by:
getEvents
in interfaceCalendarEventProvider
- Parameters:
startDate
- Start dateendDate
- End date- Returns:
- List of events
-
addEvent
public void addEvent(CalendarEvent event)
Description copied from interface:CalendarEditableEventProvider
Adds an event to the event provider- Specified by:
addEvent
in interfaceCalendarEditableEventProvider
- Parameters:
event
- The event to add
-
removeEvent
public void removeEvent(CalendarEvent event)
Description copied from interface:CalendarEditableEventProvider
Removes an event from the event provider- Specified by:
removeEvent
in interfaceCalendarEditableEventProvider
- Parameters:
event
- The event
-
addActionHandler
public void addActionHandler(Action.Handler actionHandler)
Adds an action handler to the calender that handles event produced by the context menu.The
Action.Handler.getActions(Object, Object)
parameters depend on what view the Calendar is in:- If the Calendar is in Day or Week View then the target
parameter will be a
CalendarDateRange
with a range of half-an-hour. TheAction.Handler.getActions(Object, Object)
method will be called once per half-hour slot. - If the Calendar is in Month View then the target parameter
will be a
CalendarDateRange
with a range of one day. TheAction.Handler.getActions(Object, Object)
will be called once for each day.
CalendarDateRange
are in the same timezone as the calendar is.The
Action.Handler.handleAction(Action, Object, Object)
parameters depend on what the context menu is called upon:- If the context menu is called upon an event then the target parameter
is the event, i.e. instanceof
CalendarEvent
- If the context menu is called upon an empty slot then the target is a
Date
representing that slot
- Specified by:
addActionHandler
in interfaceAction.Container
- Parameters:
actionHandler
- the new handler to be added.
- If the Calendar is in Day or Week View then the target
parameter will be a
-
isMonthlyMode
public boolean isMonthlyMode()
Is the calendar in a mode where all days of the month is shown- Returns:
- Returns true if calendar is in monthly mode and false if it is in weekly mode
-
removeActionHandler
public void removeActionHandler(Action.Handler actionHandler)
Description copied from interface:Action.Container
Removes a previously registered action handler for the contents of this container.- Specified by:
removeActionHandler
in interfaceAction.Container
- Parameters:
actionHandler
- the handler to be removed.
-
changeVariables
public void changeVariables(Object source, Map<String,Object> variables)
Description copied from interface:VariableOwner
Called when one or more variables handled by the implementing class are changed.- Specified by:
changeVariables
in interfaceVariableOwner
- Parameters:
source
- the Source of the variable change. This is the origin of the event. For example in Web Adapter this is the request.variables
- the Mapping from variable names to new variable values.
-
paintContent
public void paintContent(PaintTarget target) throws PaintException
Description copied from interface:LegacyComponent
Paints the Paintable into a UIDL stream. This method creates the UIDL sequence describing it and outputs it to the given UIDL stream.
It is called when the contents of the component should be painted in response to the component first being shown or having been altered so that its visual representation is changed.
- Specified by:
paintContent
in interfaceLegacyComponent
- Parameters:
target
- the target UIDL stream where the component should paint itself to.- Throws:
PaintException
- if the paint operation failed.
-
setEventCaptionAsHtml
public void setEventCaptionAsHtml(boolean eventCaptionAsHtml)
Sets whether the event captions are rendered as HTML.If set to true, the captions are rendered in the browser as HTML and the developer is responsible for ensuring no harmful HTML is used. If set to false, the caption is rendered in the browser as plain text.
The default is false, i.e. to render that caption as plain text.
- Parameters:
captionAsHtml
- true if the captions are rendered as HTML, false if rendered as plain text
-
isEventCaptionAsHtml
public boolean isEventCaptionAsHtml()
Checks whether event captions are rendered as HTMLThe default is false, i.e. to render that caption as plain text.
- Returns:
- true if the captions are rendered as HTML, false if rendered as plain text
-
readDesign
public void readDesign(org.jsoup.nodes.Element design, DesignContext designContext)
Description copied from interface:Component
Reads the component state from the given design.The component is responsible not only for updating its own state but also for ensuring that its children update their state based on the design.
It is assumed that the component is in its default state when this method is called. Reading should only take into consideration attributes specified in the design and not reset any unspecified attributes to their defaults.
This method must not modify the design.
- Specified by:
readDesign
in interfaceComponent
- Overrides:
readDesign
in classAbstractComponent
- Parameters:
design
- The element to obtain the state fromdesignContext
- The DesignContext instance used for parsing the design
-
writeDesign
public void writeDesign(org.jsoup.nodes.Element design, DesignContext designContext)
Description copied from interface:Component
Writes the component state to the given design.The component is responsible not only for writing its own state but also for ensuring that its children write their state to the design.
This method must not modify the component state.
- Specified by:
writeDesign
in interfaceComponent
- Overrides:
writeDesign
in classAbstractComponent
- Parameters:
design
- The element to write the component state to. Any previous attributes or child nodes are not cleared.designContext
- The DesignContext instance used for writing the design
-
getCustomAttributes
protected Collection<String> getCustomAttributes()
Description copied from class:AbstractComponent
Returns a collection of attributes that should not be handled by the basic implementation of theAbstractComponent.readDesign(org.jsoup.nodes.Element,com.vaadin.ui.declarative.DesignContext)
andAbstractComponent.writeDesign(org.jsoup.nodes.Element,com.vaadin.ui.declarative.DesignContext)
methods. Typically these are handled in a custom way in the overridden versions of the above methods- Overrides:
getCustomAttributes
in classAbstractComponent
- Returns:
- the collection of attributes that are not handled by the basic implementation
-
setFirstDayOfWeek
public void setFirstDayOfWeek(Integer dayOfWeek)
Allow setting first day of week independent of Locale. Set to null if you want first day of week being defined by the locale- Parameters:
dayOfWeek
- any of java.util.Calendar.SUNDAY..java.util.Calendar.SATURDAY or null to revert to default first day of week by locale- Since:
- 7.6
-
-