com.vaadin.client.ui
Class VCalendar

java.lang.Object
  extended by Composite
      extended by com.vaadin.client.ui.VCalendar
All Implemented Interfaces:
VHasDropHandler

public class VCalendar
extends Composite
implements VHasDropHandler

Client side implementation for Calendar

Since:
7.1
Author:
Vaadin Ltd.

Nested Class Summary
static interface VCalendar.BackwardListener
          Listener interface for listening to backward events
static interface VCalendar.DateClickListener
          Listener interface for listening to event click events
static interface VCalendar.EventClickListener
          Listener interface for listening to click events
static interface VCalendar.EventMovedListener
          Listener interface for listening to event moved events.
static interface VCalendar.EventResizeListener
          Listener interface for when an event gets resized (its start or end date changes)
static interface VCalendar.ForwardListener
          Listener interface for listening to forward events
static interface VCalendar.MouseEventListener
          Listener interface for listening to mouse events.
static interface VCalendar.RangeSelectListener
          Listener interface for listening to selection events
static interface VCalendar.ScrollListener
          Listener interface for listening to scroll events.
static interface VCalendar.WeekClickListener
          Listener interface for listening to week number click events
 
Field Summary
static java.lang.String ATTR_FIRSTDAYOFWEEK
           
static java.lang.String ATTR_FIRSTHOUROFDAY
           
static java.lang.String ATTR_LASTDAYOFWEEK
           
static java.lang.String ATTR_LASTHOUROFDAY
           
protected  DateTimeFormat dateformat_date
           
protected  DateTimeFormat dateformat_datetime
           
protected  DateTimeFormat time12format_date
           
protected  DateTimeFormat time24format_date
           
 
Constructor Summary
VCalendar()
          Default constructor
 
Method Summary
static boolean areDatesEqualToSecond(java.util.Date date1, java.util.Date date2)
          Are the dates equal (uses second resolution)
static int[] distributeSize(int totalSize, int numberOfCells, int sizeModifier)
          Calculates correct size for all cells (size / amount of cells ) and distributes any overflow over all the cells.
 VCalendar.BackwardListener getBackwardListener()
          Set the listener which listens to backward events from the calendar
 VCalendar.DateClickListener getDateClickListener()
          Gets the listener for listening to event clicks
 DateTimeFormat getDateFormat()
          Get the date format used to format dates only (excludes time)
 DateTimeFormat getDateTimeFormat()
          Get the date and time format to format the dates (includes both date and time)
 java.lang.String[] getDayNames()
          Get the names of the week days
 CalendarDropHandler getDropHandler()
           
 VCalendar.EventClickListener getEventClickListener()
          Get the listener that listens to the user clicking on the events
static java.util.Comparator<CalendarEvent> getEventComparator()
          Returns a comparator which can compare calendar events.
 VCalendar.EventMovedListener getEventMovedListener()
          Get the listener that listens to when event is dragged to a new location
 VCalendar.EventResizeListener getEventResizeListener()
          Get the listener that listens to when an events time limits are being adjusted
 int getFirstDayNumber()
          Get the number when a week starts
 int getFirstHourOfTheDay()
          Get the number when a week starts
 VCalendar.ForwardListener getForwardListener()
          Get the listener which listens to forward events from the calendar
 int getLastDayNumber()
          Get the number when a week ends
 int getLastHourOfTheDay()
          Get the number when a week ends
 MonthGrid getMonthGrid()
          Get the month grid component
 java.lang.String[] getMonthNames()
          Get the month names
 VCalendar.MouseEventListener getMouseEventListener()
          Get the listener that listen to mouse events
 VCalendar.RangeSelectListener getRangeSelectListener()
          Get the listener that listens to the user highlighting a region in the calendar
 VCalendar.ScrollListener getScrollListener()
          Get the listener that listens to when the calendar widget is scrolled
 DateTimeFormat getTimeFormat()
          Get the time format used to format time only (excludes date)
 VCalendar.WeekClickListener getWeekClickListener()
          Get the listener that listens to user clicking on the week numbers
 WeekGrid getWeekGrid()
          Get he week grid component
 boolean is24HFormat()
          Is the 24h time format used
 boolean isBackwardNavigationEnabled()
           
 boolean isDisabled()
          Is the component disabled
 boolean isDisabledOrReadOnly()
          Is the calendar either disabled or readonly
 boolean isEventCaptionAsHtml()
          Checks whether event captions are rendered as HTML
 boolean isEventMoveAllowed()
          Is moving an event allowed
 boolean isEventResizeAllowed()
          Is resizing an event allowed
 boolean isForwardNavigationEnabled()
           
static boolean isMidnight(java.util.Date date)
          Is the date at midnight
 boolean isRangeMoveAllowed()
          Is moving a range allowed
 boolean isRangeSelectAllowed()
          Is selecting a range allowed?
 boolean isReadOnly()
          Is the component read-only
static boolean isZeroLengthMidnightEvent(CalendarEvent event)
          Is the calendar event zero seconds long and is occurring at midnight
protected  void recalculateHeights()
          Recalculates the heights of the sub-components in the calendar
protected  void recalculateWidths()
          Recalculates the widths of the sub-components in the calendar
 void removeMonthEvent(CalendarEvent target, boolean repaintImmediately)
          Remove a month event from the view
 void set24HFormat(boolean format)
          Should the 24h time format be used
 void setBackwardNavigationEnabled(boolean enabled)
           
 void setDayNames(java.lang.String[] names)
          Set the names of the week days
 void setDisabled(boolean disabled)
          Is the component disabled
 void setDropHandler(CalendarDropHandler dropHandler)
          Set the drop handler
 void setEventCaptionAsHtml(boolean eventCaptionAsHtml)
          Sets whether the event captions are rendered as HTML.
 void setEventMoveAllowed(boolean eventMoveAllowed)
          Is moving an event allowed
 void setEventResizeAllowed(boolean eventResizeAllowed)
          Is resizing an event allowed
 void setFirstDayNumber(int dayNumber)
          Set the number when a week starts
 void setFirstHourOfTheDay(int hour)
          Set the number when a week starts
 void setForwardNavigationEnabled(boolean enabled)
           
 void setLastDayNumber(int dayNumber)
          Set the number when a week ends
 void setLastHourOfTheDay(int hour)
          Set the number when a week ends
 void setListener(VCalendar.BackwardListener listener)
          Set the listener which listens to backward events from the calendar
 void setListener(VCalendar.DateClickListener listener)
          Sets the listener for listening to event clicks
 void setListener(VCalendar.EventClickListener listener)
          Set the listener that listens to the user clicking on the events
 void setListener(VCalendar.EventMovedListener eventMovedListener)
          Set the listener that listens to when event is dragged to a new location
 void setListener(VCalendar.EventResizeListener eventResizeListener)
          Set the listener that listens to when an events time limits are being adjusted
 void setListener(VCalendar.ForwardListener listener)
          Set the listener which listens to forward events from the calendar
 void setListener(VCalendar.MouseEventListener mouseEventListener)
          Set the listener that listen to mouse events
 void setListener(VCalendar.RangeSelectListener listener)
          Set the listener that listens to the user highlighting a region in the calendar
 void setListener(VCalendar.ScrollListener scrollListener)
          Set the listener that listens to when the calendar widget is scrolled
 void setListener(VCalendar.WeekClickListener listener)
          Set the listener that listens to user clicking on the week numbers
 void setMonthNames(java.lang.String[] names)
          Set the names of the months
 void setRangeMoveAllowed(boolean rangeMoveAllowed)
          Is moving a range allowed
 void setRangeSelectAllowed(boolean rangeSelectAllowed)
          Set selecting a range allowed
 void setReadOnly(boolean readOnly)
          Is the component read-only
 void setSizeForChildren(int newWidth, int newHeight)
           
 CalendarEvent[] sortEventsByDuration(java.util.Collection<CalendarEvent> events)
          Sort the event by how long they are
 void updateEventsToMonthGrid(java.util.Collection<CalendarEvent> events, boolean drawImmediately)
          Adds events to the month grid
 void updateEventToMonthGrid(CalendarEvent changedEvent)
          Updates an event in the month grid
 void updateMonthGrid(int daysCount, java.util.List<CalendarDay> days, java.util.Date today)
          Updates the events in the Month view
 void updateMonthView(int firstDayOfWeek, java.util.Date today, int daysInMonth, java.util.Collection<CalendarEvent> events, java.util.List<CalendarDay> days)
          Re-renders the whole month view
 void updateWeekGrid(int daysCount, java.util.List<CalendarDay> days, java.util.Date today, java.lang.String[] realDayNames)
          Re-render the week grid
 void updateWeekView(int scroll, java.util.Date today, int daysInMonth, int firstDayOfWeek, java.util.Collection<CalendarEvent> events, java.util.List<CalendarDay> days)
          Re-renders the whole week view
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ATTR_FIRSTDAYOFWEEK

public static final java.lang.String ATTR_FIRSTDAYOFWEEK
See Also:
Constant Field Values

ATTR_LASTDAYOFWEEK

public static final java.lang.String ATTR_LASTDAYOFWEEK
See Also:
Constant Field Values

ATTR_FIRSTHOUROFDAY

public static final java.lang.String ATTR_FIRSTHOUROFDAY
See Also:
Constant Field Values

ATTR_LASTHOUROFDAY

public static final java.lang.String ATTR_LASTHOUROFDAY
See Also:
Constant Field Values

dateformat_datetime

protected final DateTimeFormat dateformat_datetime

dateformat_date

protected final DateTimeFormat dateformat_date

time12format_date

protected final DateTimeFormat time12format_date

time24format_date

protected final DateTimeFormat time24format_date
Constructor Detail

VCalendar

public VCalendar()
Default constructor

Method Detail

updateEventsToMonthGrid

public void updateEventsToMonthGrid(java.util.Collection<CalendarEvent> events,
                                    boolean drawImmediately)
Adds events to the month grid

Parameters:
events - The events to add
drawImmediately - Should the grid be rendered immediately. (currently not in use)

removeMonthEvent

public void removeMonthEvent(CalendarEvent target,
                             boolean repaintImmediately)
Remove a month event from the view

Parameters:
target - The event to remove
repaintImmediately - Should we repaint after the event was removed?

updateEventToMonthGrid

public void updateEventToMonthGrid(CalendarEvent changedEvent)
Updates an event in the month grid

Parameters:
changedEvent - The event that has changed

sortEventsByDuration

public CalendarEvent[] sortEventsByDuration(java.util.Collection<CalendarEvent> events)
Sort the event by how long they are

Parameters:
events - The events to sort
Returns:
An array where the events has been sorted

updateWeekGrid

public void updateWeekGrid(int daysCount,
                           java.util.List<CalendarDay> days,
                           java.util.Date today,
                           java.lang.String[] realDayNames)
Re-render the week grid

Parameters:
daysCount - The amount of days to include in the week
days - The days
today - Todays date
realDayNames - The names of the dates

updateMonthGrid

public void updateMonthGrid(int daysCount,
                            java.util.List<CalendarDay> days,
                            java.util.Date today)
Updates the events in the Month view

Parameters:
daysCount - How many days there are
daysUidl -
today - Todays date

setSizeForChildren

public void setSizeForChildren(int newWidth,
                               int newHeight)

recalculateHeights

protected void recalculateHeights()
Recalculates the heights of the sub-components in the calendar


recalculateWidths

protected void recalculateWidths()
Recalculates the widths of the sub-components in the calendar


getDateFormat

public DateTimeFormat getDateFormat()
Get the date format used to format dates only (excludes time)

Returns:

getTimeFormat

public DateTimeFormat getTimeFormat()
Get the time format used to format time only (excludes date)

Returns:

getDateTimeFormat

public DateTimeFormat getDateTimeFormat()
Get the date and time format to format the dates (includes both date and time)

Returns:

isDisabledOrReadOnly

public boolean isDisabledOrReadOnly()
Is the calendar either disabled or readonly

Returns:

isDisabled

public boolean isDisabled()
Is the component disabled


setDisabled

public void setDisabled(boolean disabled)
Is the component disabled

Parameters:
disabled - True if disabled

isReadOnly

public boolean isReadOnly()
Is the component read-only


setReadOnly

public void setReadOnly(boolean readOnly)
Is the component read-only

Parameters:
readOnly - True if component is readonly

getMonthGrid

public MonthGrid getMonthGrid()
Get the month grid component

Returns:

getWeekGrid

public WeekGrid getWeekGrid()
Get he week grid component

Returns:

distributeSize

public static int[] distributeSize(int totalSize,
                                   int numberOfCells,
                                   int sizeModifier)
Calculates correct size for all cells (size / amount of cells ) and distributes any overflow over all the cells.

Parameters:
totalSize - the total amount of size reserved for all cells
numberOfCells - the number of cells
sizeModifier - a modifier which is applied to all cells before distributing the overflow
Returns:
an integer array that contains the correct size for each cell

getEventComparator

public static java.util.Comparator<CalendarEvent> getEventComparator()
Returns a comparator which can compare calendar events.

Returns:

isMidnight

public static boolean isMidnight(java.util.Date date)
Is the date at midnight

Parameters:
date - The date to check
Returns:

areDatesEqualToSecond

public static boolean areDatesEqualToSecond(java.util.Date date1,
                                            java.util.Date date2)
Are the dates equal (uses second resolution)

Parameters:
date1 - The first the to compare
date2 - The second date to compare
Returns:

isZeroLengthMidnightEvent

public static boolean isZeroLengthMidnightEvent(CalendarEvent event)
Is the calendar event zero seconds long and is occurring at midnight

Parameters:
event - The event to check
Returns:

set24HFormat

public void set24HFormat(boolean format)
Should the 24h time format be used

Parameters:
format - True if the 24h format should be used else the 12h format is used

is24HFormat

public boolean is24HFormat()
Is the 24h time format used


setDayNames

public void setDayNames(java.lang.String[] names)
Set the names of the week days

Parameters:
names - The names of the days (Monday, Thursday,...)

getDayNames

public java.lang.String[] getDayNames()
Get the names of the week days


setMonthNames

public void setMonthNames(java.lang.String[] names)
Set the names of the months

Parameters:
names - The names of the months (January, February,...)

getMonthNames

public java.lang.String[] getMonthNames()
Get the month names


setFirstDayNumber

public void setFirstDayNumber(int dayNumber)
Set the number when a week starts

Parameters:
dayNumber - The number of the day

getFirstDayNumber

public int getFirstDayNumber()
Get the number when a week starts


setLastDayNumber

public void setLastDayNumber(int dayNumber)
Set the number when a week ends

Parameters:
dayNumber - The number of the day

getLastDayNumber

public int getLastDayNumber()
Get the number when a week ends


setFirstHourOfTheDay

public void setFirstHourOfTheDay(int hour)
Set the number when a week starts

Parameters:
dayNumber - The number of the day

getFirstHourOfTheDay

public int getFirstHourOfTheDay()
Get the number when a week starts


setLastHourOfTheDay

public void setLastHourOfTheDay(int hour)
Set the number when a week ends

Parameters:
dayNumber - The number of the day

getLastHourOfTheDay

public int getLastHourOfTheDay()
Get the number when a week ends


updateWeekView

public void updateWeekView(int scroll,
                           java.util.Date today,
                           int daysInMonth,
                           int firstDayOfWeek,
                           java.util.Collection<CalendarEvent> events,
                           java.util.List<CalendarDay> days)
Re-renders the whole week view

Parameters:
scroll - The amount of pixels to scroll the week view
today - Todays date
daysInMonth - How many days are there in the month
firstDayOfWeek - The first day of the week
events - The events to render

updateMonthView

public void updateMonthView(int firstDayOfWeek,
                            java.util.Date today,
                            int daysInMonth,
                            java.util.Collection<CalendarEvent> events,
                            java.util.List<CalendarDay> days)
Re-renders the whole month view

Parameters:
firstDayOfWeek - The first day of the week
today - Todays date
daysInMonth - Amount of days in the month
events - The events to render
days - The day information

setListener

public void setListener(VCalendar.DateClickListener listener)
Sets the listener for listening to event clicks

Parameters:
listener - The listener to use

getDateClickListener

public VCalendar.DateClickListener getDateClickListener()
Gets the listener for listening to event clicks

Returns:

setListener

public void setListener(VCalendar.ForwardListener listener)
Set the listener which listens to forward events from the calendar

Parameters:
listener - The listener to use

getForwardListener

public VCalendar.ForwardListener getForwardListener()
Get the listener which listens to forward events from the calendar

Returns:

setListener

public void setListener(VCalendar.BackwardListener listener)
Set the listener which listens to backward events from the calendar

Parameters:
listener - The listener to use

getBackwardListener

public VCalendar.BackwardListener getBackwardListener()
Set the listener which listens to backward events from the calendar

Returns:

setListener

public void setListener(VCalendar.WeekClickListener listener)
Set the listener that listens to user clicking on the week numbers

Parameters:
listener - The listener to use

getWeekClickListener

public VCalendar.WeekClickListener getWeekClickListener()
Get the listener that listens to user clicking on the week numbers

Returns:

setListener

public void setListener(VCalendar.RangeSelectListener listener)
Set the listener that listens to the user highlighting a region in the calendar

Parameters:
listener - The listener to use

getRangeSelectListener

public VCalendar.RangeSelectListener getRangeSelectListener()
Get the listener that listens to the user highlighting a region in the calendar

Returns:

getEventClickListener

public VCalendar.EventClickListener getEventClickListener()
Get the listener that listens to the user clicking on the events


setListener

public void setListener(VCalendar.EventClickListener listener)
Set the listener that listens to the user clicking on the events

Parameters:
listener - The listener to use

getEventMovedListener

public VCalendar.EventMovedListener getEventMovedListener()
Get the listener that listens to when event is dragged to a new location

Returns:

setListener

public void setListener(VCalendar.EventMovedListener eventMovedListener)
Set the listener that listens to when event is dragged to a new location

Parameters:
eventMovedListener - The listener to use

getScrollListener

public VCalendar.ScrollListener getScrollListener()
Get the listener that listens to when the calendar widget is scrolled

Returns:

setListener

public void setListener(VCalendar.ScrollListener scrollListener)
Set the listener that listens to when the calendar widget is scrolled

Parameters:
scrollListener - The listener to use

getEventResizeListener

public VCalendar.EventResizeListener getEventResizeListener()
Get the listener that listens to when an events time limits are being adjusted

Returns:

setListener

public void setListener(VCalendar.EventResizeListener eventResizeListener)
Set the listener that listens to when an events time limits are being adjusted

Parameters:
eventResizeListener - The listener to use

getMouseEventListener

public VCalendar.MouseEventListener getMouseEventListener()
Get the listener that listen to mouse events

Returns:

setListener

public void setListener(VCalendar.MouseEventListener mouseEventListener)
Set the listener that listen to mouse events

Parameters:
mouseEventListener - The listener to use

isRangeSelectAllowed

public boolean isRangeSelectAllowed()
Is selecting a range allowed?


setRangeSelectAllowed

public void setRangeSelectAllowed(boolean rangeSelectAllowed)
Set selecting a range allowed

Parameters:
rangeSelectAllowed - Should selecting a range be allowed

isRangeMoveAllowed

public boolean isRangeMoveAllowed()
Is moving a range allowed

Returns:

setRangeMoveAllowed

public void setRangeMoveAllowed(boolean rangeMoveAllowed)
Is moving a range allowed

Parameters:
rangeMoveAllowed - Is it allowed

isEventResizeAllowed

public boolean isEventResizeAllowed()
Is resizing an event allowed


setEventResizeAllowed

public void setEventResizeAllowed(boolean eventResizeAllowed)
Is resizing an event allowed

Parameters:
eventResizeAllowed - True if allowed false if not

isEventMoveAllowed

public boolean isEventMoveAllowed()
Is moving an event allowed


setEventMoveAllowed

public void setEventMoveAllowed(boolean eventMoveAllowed)
Is moving an event allowed

Parameters:
eventMoveAllowed - True if moving is allowed, false if not

isBackwardNavigationEnabled

public boolean isBackwardNavigationEnabled()

setBackwardNavigationEnabled

public void setBackwardNavigationEnabled(boolean enabled)

isForwardNavigationEnabled

public boolean isForwardNavigationEnabled()

setForwardNavigationEnabled

public void setForwardNavigationEnabled(boolean enabled)

getDropHandler

public CalendarDropHandler getDropHandler()
Specified by:
getDropHandler in interface VHasDropHandler

setDropHandler

public void setDropHandler(CalendarDropHandler dropHandler)
Set the drop handler

Parameters:
dropHandler - The drophandler to use

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 HTML

The 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


Copyright © 2000-2014 Vaadin Ltd. All Rights Reserved.