Class BasicMonthViewUI
- java.lang.Object
-
- javax.swing.plaf.ComponentUI
-
- org.jdesktop.swingx.plaf.MonthViewUI
-
- org.jdesktop.swingx.plaf.basic.BasicMonthViewUI
-
public class BasicMonthViewUI extends MonthViewUI
Base implementation of theJXMonthView
UI.Note: The api changed considerably between releases 0.9.1 and 0.9.2. Most of the old methods are still available but deprecated. It's strongly recommended to update subclasses soon, because those methods will be removed before 0.9.3.
The general drift of the change was
- replace all methods which take/return a date in millis with equivalents taking/returning a Date object
- streamline the painting (to make it understandable for me ;-) See below.
- pass-around a calendar object to all painting methods. The general contract is that methods which receive the calendar must not change it in any way. It's up to the calling method to loop through the dates if appropriate.
- Screen coordinates of months/days, accessible via the getXXBounds() methods. These coordinates are absolute in the system of the monthView.
- The grid of visible months with logical row/column coordinates. The logical coordinates are adjusted to ComponentOrientation.
- The grid of days in a month with logical row/column coordinates. The logical coordinates are adjusted to ComponentOrientation. The columns are the days of the week, the rows are the weeks in a month. The column header shows the localized names of the days and has the row coordinate -1. It is shown always. The row header shows the week number in the year and has the column coordinate -1. It is shown only if the showingWeekNumber property is true.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.awt.Rectangle
calendarGrid
The bounding box of the grid of visible months.protected java.text.SimpleDateFormat
dayOfMonthFormatter
Formatter used to format the day of the week to a numerical value.protected java.awt.Font
derivedFont
Used as the font for flagged days.protected boolean
isLeftToRight
static int
MONTH_DOWN
Return value used to identify when the month down button is pressed.static int
MONTH_UP
Return value used to identify when the month up button is pressed.protected javax.swing.Icon
monthDownImage
protected java.lang.String[]
monthsOfTheYear
localized names of all months.protected javax.swing.Icon
monthUpImage
protected JXMonthView
monthView
the component we are installed for.
-
Constructor Summary
Constructors Constructor Description BasicMonthViewUI()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.awt.Font
createDerivedFont()
Create a derived font used to when painting various pieces of the month view component.protected java.awt.LayoutManager
createLayoutManager()
protected java.awt.event.MouseListener
createMouseListener()
protected java.awt.event.MouseMotionListener
createMouseMotionListener()
protected java.beans.PropertyChangeListener
createPropertyChangeListener()
static javax.swing.plaf.ComponentUI
createUI(javax.swing.JComponent c)
protected java.util.Calendar
getCalendar()
Returns the monthViews calendar configured to the firstDisplayedDate.protected java.util.Calendar
getCalendar(java.util.Date date)
Returns the monthViews calendar configured to the given time.java.util.Date
getDayAtLocation(int x, int y)
Returns the Date at the given location.protected java.awt.Rectangle
getDayBounds(java.util.Date date)
Returns the bounds of the given day.protected java.awt.Rectangle
getDayBoundsAtLocation(int x, int y)
Returns the bounds of the day in the grid of days which contains the given location.protected java.awt.Point
getDayGridPosition(java.util.Date date)
Returns the given date's position in the grid of the month it is contained in.protected java.awt.Point
getDayGridPositionAtLocation(int x, int y)
Returns the logical coordinates of the day which contains the given location.protected java.util.Date
getDayInMonth(java.util.Date month, int row, int column)
Returns the Date defined by the logical grid coordinates relative to the given month.protected java.awt.Dimension
getDaySize()
Returns the size of a day including the padding.java.lang.String[]
getDaysOfTheWeek()
Returns an array of String to use as names for the days of the week.protected java.util.Date
getFirstDisplayedDay()
protected int
getFirstDisplayedMonth()
protected int
getFirstDisplayedYear()
java.util.Date
getLastDisplayedDay()
Returns the last possible date that can be displayed.protected java.util.Date
getMonth(int row, int column)
Returns the Date representing the start of the month at the given logical position in the grid of months.protected java.util.Date
getMonthAtLocation(int x, int y)
Returns the Date representing the start of the month which contains the given location.protected java.awt.Rectangle
getMonthBounds(int row, int column)
Returns the bounds of the month at the given logical coordinates in the grid of visible months.protected java.awt.Rectangle
getMonthBounds(java.util.Date date)
Returns the bounds of the month containing the given date.protected java.awt.Rectangle
getMonthBoundsAtLocation(int x, int y)
Returns the bounds of the month which contains the given location.protected java.awt.Point
getMonthGridPosition(java.util.Date date)
Returns the logical grid position of the month containing the given date.protected java.awt.Point
getMonthGridPositionAtLocation(int x, int y)
Returns the logical coordinates of the month which contains the given location.protected java.awt.Rectangle
getMonthHeaderBoundsAtLocation(int x, int y)
Returns the bounds of the month header which contains the given location.protected int
getMonthHeaderHeight()
Returns the height of the month header.protected java.awt.Dimension
getMonthSize()
Returns the size of a month.protected java.util.SortedSet<java.util.Date>
getSelection()
protected java.util.Date
getToday()
protected int
getTraversableGridPositionAtLocation(int x, int y)
Mapping pixel to bounds.protected int
getWeeks(java.util.Calendar month)
Returns the number of weeks to paint in the current month, as represented by the given calendar.protected void
installComponents()
protected void
installDefaults()
protected void
installKeyboardActions()
protected void
installListeners()
void
installUI(javax.swing.JComponent c)
protected boolean
isToday(java.util.Date date)
Returns true if the date passed in is the same as today.boolean
isUsingKeyboard()
void
paint(java.awt.Graphics g, javax.swing.JComponent c)
protected void
paintBackground(java.awt.Rectangle clip, java.awt.Graphics g)
protected void
paintDay(java.awt.Graphics g, int left, int top, java.util.Calendar calendar)
Paints a day the current month, represented by the calendar in a day-box located at left/top.protected void
paintDayBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the background for the day specified by the given calendar.protected void
paintDayForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the foreground for the specified day.protected void
paintDayForeground(java.awt.Graphics g, java.lang.String numericDay, int x, int y, java.util.Calendar cal)
Paints string of the day.protected void
paintDayOfTheWeekBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
protected void
paintDays(java.awt.Graphics g, int left, int top, int width, java.util.Calendar cal)
Paints all days in the days' grid, that is the month area below the daysOfWeek and to the right/left (depending on the monthView's componentOrientation) of the weekOfYears.protected void
paintFlaggedDayBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the background for the specified flagged day.protected void
paintFlaggedDayForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the foreground for the specified flagged day.protected void
paintLeadingDay(java.awt.Graphics g, int left, int top, java.util.Calendar calendar)
Paints a leading day of the current month, represented by the calendar, in a day-box located at left/top.protected void
paintLeadingDayBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the background for the specified leading day.protected void
paintLeadingDayForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the foreground for the specified leading day.protected void
paintMonth(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar calendar)
Paints a month.protected void
paintMonthStringBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paints the background of the month string.protected void
paintMonthStringForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Note: the given calendar must not be changed.protected void
paintMonthStringForeground(java.awt.Graphics g, java.lang.String monthName, int monthX, int monthY, java.lang.String yearName, int yearX, int yearY, java.util.Calendar cal)
Paints only text for month and year.protected void
paintTrailingDay(java.awt.Graphics g, int left, int top, java.util.Calendar calendar)
Paints a trailing day of the current month, represented by the calendar, in a day-box located at left/top.protected void
paintTrailingDayBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the background for the specified trailing day.protected void
paintTrailingDayForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the foreground for the specified trailing day.protected void
paintUnselectableDayBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the foreground for the specified unselectable day.protected void
paintUnselectableDayForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the foreground for the specified unselectable day.protected void
paintWeekOfYearBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
protected void
paintWeekOfYearForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paints the week of the year of the week of the year represented by the given calendar.protected void
paintWeeksOfYear(java.awt.Graphics g, int x, int initialY, int width, java.util.Calendar cal)
Paints the weeks of year if the showingWeek property is true.protected void
setFirstDisplayedDay(java.util.Date firstDisplayedDate)
Sets the firstDisplayedDate property to the given value.void
setUsingKeyboard(boolean val)
protected void
uninstallComponents()
protected void
uninstallDefaults()
protected void
uninstallKeyboardActions()
protected void
uninstallListeners()
void
uninstallUI(javax.swing.JComponent c)
protected void
updateComponentInputMap()
Binds/clears the keystrokes in the component input map, based on the monthView's componentInputMap enabled property.protected void
updateLocale()
Updates month and day names according to specified locale.
-
-
-
Field Detail
-
MONTH_DOWN
public static final int MONTH_DOWN
Return value used to identify when the month down button is pressed.- See Also:
- Constant Field Values
-
MONTH_UP
public static final int MONTH_UP
Return value used to identify when the month up button is pressed.- See Also:
- Constant Field Values
-
dayOfMonthFormatter
protected final java.text.SimpleDateFormat dayOfMonthFormatter
Formatter used to format the day of the week to a numerical value.
-
monthsOfTheYear
protected java.lang.String[] monthsOfTheYear
localized names of all months. protected for testing only! PENDING: JW - should be property on JXMonthView, for symmetry with daysOfTheWeek?
-
monthView
protected JXMonthView monthView
the component we are installed for.
-
derivedFont
protected java.awt.Font derivedFont
Used as the font for flagged days.
-
isLeftToRight
protected boolean isLeftToRight
-
monthUpImage
protected javax.swing.Icon monthUpImage
-
monthDownImage
protected javax.swing.Icon monthDownImage
-
calendarGrid
protected java.awt.Rectangle calendarGrid
The bounding box of the grid of visible months.
-
-
Method Detail
-
createUI
public static javax.swing.plaf.ComponentUI createUI(javax.swing.JComponent c)
-
installUI
public void installUI(javax.swing.JComponent c)
- Overrides:
installUI
in classjavax.swing.plaf.ComponentUI
-
uninstallUI
public void uninstallUI(javax.swing.JComponent c)
- Overrides:
uninstallUI
in classjavax.swing.plaf.ComponentUI
-
installComponents
protected void installComponents()
-
uninstallComponents
protected void uninstallComponents()
-
installDefaults
protected void installDefaults()
-
uninstallDefaults
protected void uninstallDefaults()
-
installKeyboardActions
protected void installKeyboardActions()
-
uninstallKeyboardActions
protected void uninstallKeyboardActions()
-
installListeners
protected void installListeners()
-
uninstallListeners
protected void uninstallListeners()
-
updateComponentInputMap
protected void updateComponentInputMap()
Binds/clears the keystrokes in the component input map, based on the monthView's componentInputMap enabled property.- See Also:
JXMonthView.isComponentInputMapEnabled()
-
updateLocale
protected void updateLocale()
Updates month and day names according to specified locale.
-
getDaysOfTheWeek
public java.lang.String[] getDaysOfTheWeek()
Description copied from class:MonthViewUI
Returns an array of String to use as names for the days of the week.- Specified by:
getDaysOfTheWeek
in classMonthViewUI
- Returns:
- array of names for the days of the week.
-
createDerivedFont
protected java.awt.Font createDerivedFont()
Create a derived font used to when painting various pieces of the month view component. This method will be called whenever the font on the component is set so a new derived font can be created.
-
createPropertyChangeListener
protected java.beans.PropertyChangeListener createPropertyChangeListener()
-
createLayoutManager
protected java.awt.LayoutManager createLayoutManager()
-
createMouseListener
protected java.awt.event.MouseListener createMouseListener()
-
createMouseMotionListener
protected java.awt.event.MouseMotionListener createMouseMotionListener()
-
isUsingKeyboard
public boolean isUsingKeyboard()
-
setUsingKeyboard
public void setUsingKeyboard(boolean val)
-
getDayBoundsAtLocation
protected java.awt.Rectangle getDayBoundsAtLocation(int x, int y)
Returns the bounds of the day in the grid of days which contains the given location. The bounds are in monthView screen coordinate system.Note: this is a pure geometric mapping. The returned rectangle need not necessarily map to a date in the month which contains the location, it can represent a week-number/column header or a leading/trailing date.
- Parameters:
x
- the x position of the location in pixely
- the y position of the location in pixel- Returns:
- the bounds of the day which contains the location, or null if outside
-
getDayGridPositionAtLocation
protected java.awt.Point getDayGridPositionAtLocation(int x, int y)
Returns the logical coordinates of the day which contains the given location. The p.x of the returned value represents the day of week, the p.y represents the week of the month. The transformation takes care of ComponentOrientation.Note: this is a pure geometric mapping. The returned grid position need not necessarily map to a date in the month which contains the location, it can represent a week-number/column header or a leading/trailing date.
- Parameters:
x
- the x position of the location in pixely
- the y position of the location in pixel- Returns:
- the logical coordinates of the day in the grid of days in a month or null if outside.
-
getDayGridPosition
protected java.awt.Point getDayGridPosition(java.util.Date date)
Returns the given date's position in the grid of the month it is contained in.- Parameters:
date
- the Date to get the logical position for, must not be null.- Returns:
- the logical coordinates of the day in the grid of days in a month or null if the Date is not visible.
-
getDayAtLocation
public java.util.Date getDayAtLocation(int x, int y)
Returns the Date at the given location. May be null if the coordinates don't map to a day in the month which contains the coordinates. Specifically: hitting leading/trailing dates returns null. Mapping pixel to calendar day.- Specified by:
getDayAtLocation
in classMonthViewUI
- Parameters:
x
- the x position of the location in pixely
- the y position of the location in pixel- Returns:
- the day at the given location or null if the location doesn't map to a day in the month which contains the coordinates.
-
getDayBounds
protected java.awt.Rectangle getDayBounds(java.util.Date date)
Returns the bounds of the given day. The bounds are in monthView coordinate system.PENDING JW: this most probably should be public as it is the logical reverse of getDayAtLocation
- Parameters:
date
- the Date to return the bounds for. Must not be null.- Returns:
- the bounds of the given date or null if not visible.
-
getDayInMonth
protected java.util.Date getDayInMonth(java.util.Date month, int row, int column)
Returns the Date defined by the logical grid coordinates relative to the given month. May be null if the logical coordinates represent a header in the day grid or is outside of the given month. Mapping logical day grid coordinates to Date.PENDING JW: relax the startOfMonth pre? Why did I require it?
- Parameters:
month
- a calendar representing the first day of the month, must not be null.row
- the logical row index in the day grid of the monthcolumn
- the logical column index in the day grid of the month- Returns:
- the day at the logical grid coordinates in the given month or null if the coordinates
- Throws:
java.lang.IllegalStateException
- if the month is not the start of the month.
-
getTraversableGridPositionAtLocation
protected int getTraversableGridPositionAtLocation(int x, int y)
Mapping pixel to bounds.PENDING JW: define the "action grid". Currently this replaces the old version to remove all internal usage of deprecated methods.
- Parameters:
x
- the x position of the location in pixely
- the y position of the location in pixel- Returns:
- the bounds of the active header area in containing the location or null if outside.
-
getMonthHeaderBoundsAtLocation
protected java.awt.Rectangle getMonthHeaderBoundsAtLocation(int x, int y)
Returns the bounds of the month header which contains the given location. The bounds are in monthView coordinate system.- Parameters:
x
- the x position of the location in pixely
- the y position of the location in pixel- Returns:
- the bounds of the month which contains the location, or null if outside
-
getMonthBoundsAtLocation
protected java.awt.Rectangle getMonthBoundsAtLocation(int x, int y)
Returns the bounds of the month which contains the given location. The bounds are in monthView coordinate system.Mapping pixel to bounds.
- Parameters:
x
- the x position of the location in pixely
- the y position of the location in pixel- Returns:
- the bounds of the month which contains the location, or null if outside
-
getMonthGridPositionAtLocation
protected java.awt.Point getMonthGridPositionAtLocation(int x, int y)
Returns the logical coordinates of the month which contains the given location. The p.x of the returned value represents the column, the p.y represents the row the month is shown in. The transformation takes care of ComponentOrientation.Mapping pixel to logical grid coordinates.
- Parameters:
x
- the x position of the location in pixely
- the y position of the location in pixel- Returns:
- the logical coordinates of the month in the grid of month shown by this monthView or null if outside.
-
getMonthAtLocation
protected java.util.Date getMonthAtLocation(int x, int y)
Returns the Date representing the start of the month which contains the given location.Mapping pixel to calendar day.
- Parameters:
x
- the x position of the location in pixely
- the y position of the location in pixel- Returns:
- the start of the month which contains the given location or null if the location is outside the grid of months.
-
getMonth
protected java.util.Date getMonth(int row, int column)
Returns the Date representing the start of the month at the given logical position in the grid of months.Mapping logical grid coordinates to Calendar.
- Parameters:
row
- the rowIndex in the grid of months.column
- the columnIndex in the grid months.- Returns:
- a Date representing the start of the month at the given logical coordinates.
- See Also:
getMonthGridPosition(Date)
-
getMonthGridPosition
protected java.awt.Point getMonthGridPosition(java.util.Date date)
Returns the logical grid position of the month containing the given date. The Point's x value is the column in the grid of months, the y value is the row in the grid of months. Mapping Date to logical grid position, this is the reverse of getMonth(int, int).- Parameters:
date
- the Date to return the bounds for. Must not be null.- Returns:
- the postion of the month that contains the given date or null if not visible.
- See Also:
getMonth(int, int)
,getMonthBounds(int, int)
-
getMonthBounds
protected java.awt.Rectangle getMonthBounds(int row, int column)
Returns the bounds of the month at the given logical coordinates in the grid of visible months.Mapping logical grip position to pixel.
- Parameters:
row
- the rowIndex in the grid of months.column
- the columnIndex in the grid months.- Returns:
- the bounds of the month at the given logical logical position.
- See Also:
getMonthGridPositionAtLocation(int, int)
,getMonthBoundsAtLocation(int, int)
-
getMonthBounds
protected java.awt.Rectangle getMonthBounds(java.util.Date date)
Returns the bounds of the month containing the given date. The bounds are in monthView coordinate system.Mapping Date to pixel.
- Parameters:
date
- the Date to return the bounds for. Must not be null.- Returns:
- the bounds of the month that contains the given date or null if not visible.
- See Also:
getMonthAtLocation(int, int)
-
getMonthSize
protected java.awt.Dimension getMonthSize()
Returns the size of a month.- Returns:
- the size of a month.
-
getDaySize
protected java.awt.Dimension getDaySize()
Returns the size of a day including the padding.- Returns:
- the size of a month.
-
getMonthHeaderHeight
protected int getMonthHeaderHeight()
Returns the height of the month header.- Returns:
- the height of the month header.
-
paint
public void paint(java.awt.Graphics g, javax.swing.JComponent c)
- Overrides:
paint
in classjavax.swing.plaf.ComponentUI
-
paintMonth
protected void paintMonth(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar calendar)
Paints a month. It is assumed the given calendar is already set to the first day of the month to be painted.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics object.x
- x location of monthy
- y location of monthwidth
- width of monthheight
- height of monthcalendar
- the calendar specifying the the first day of the month to paint, must not be null
-
paintDays
protected void paintDays(java.awt.Graphics g, int left, int top, int width, java.util.Calendar cal)
Paints all days in the days' grid, that is the month area below the daysOfWeek and to the right/left (depending on the monthView's componentOrientation) of the weekOfYears. The calendar represents the first day of the month to paint.Note: the calendar must not be changed.
- Parameters:
g
- Graphics object.left
- the left boundary of the day grid.top
- the upper boundary of the day gridwidth
- the width of the day grid.cal
- the calendar specifying the the first day of the month to paint, must not be null
-
paintDay
protected void paintDay(java.awt.Graphics g, int left, int top, java.util.Calendar calendar)
Paints a day the current month, represented by the calendar in a day-box located at left/top. The size of the day-box is defined by fullBoxWidth/Height. The appearance of the day depends on its state (like unselectable, flagged, selected)Note: the given calendar must not be changed.
- Parameters:
g
- the Graphics to paint into.left
- the left boundary of the day-box to paint.top
- the upper boundary of the day-box to paint.calendar
- the calendar specifying the the day to paint, must not be null
-
paintTrailingDay
protected void paintTrailingDay(java.awt.Graphics g, int left, int top, java.util.Calendar calendar)
Paints a trailing day of the current month, represented by the calendar, in a day-box located at left/top. The size of the day-box is defined by fullBoxWidth/Height. Does nothing if the monthView's isShowingTrailingDates is false.Note: the given calendar must not be changed.
- Parameters:
g
- the Graphics to paint into.left
- the left boundary of the day-box to paint.top
- the upper boundary of the day-box to paint.calendar
- the calendar specifying the the day to paint, must not be null
-
paintLeadingDay
protected void paintLeadingDay(java.awt.Graphics g, int left, int top, java.util.Calendar calendar)
Paints a leading day of the current month, represented by the calendar, in a day-box located at left/top. The size of the day-box is defined by fullBoxWidth/Height. Does nothing if the monthView's isShowingLeadingDates is false.Note: the given calendar must not be changed.
- Parameters:
g
- the Graphics to paint into.left
- the left boundary of the day-box to paint.top
- the upper boundary of the day-box to paint.calendar
- the calendar specifying the the day to paint, must not be null
-
getWeeks
protected int getWeeks(java.util.Calendar month)
Returns the number of weeks to paint in the current month, as represented by the given calendar. Note: the given calendar must not be changed.- Parameters:
month
- the calendar specifying the the first day of the month to paint, must not be null- Returns:
- the number of weeks of this month.
-
paintWeeksOfYear
protected void paintWeeksOfYear(java.awt.Graphics g, int x, int initialY, int width, java.util.Calendar cal)
Paints the weeks of year if the showingWeek property is true. Does nothing otherwise. It is assumed the given calendar is already set to the first day of the month. The calendar is unchanged when leaving this method. Note: the given calendar must not be changed. PENDING JW: this implementation doesn't need the height - should it be given anyway for symetry in case subclasses need it?- Parameters:
g
- Graphics object.x
- x location of monthinitialY
- y the upper bound of the "weekNumbers-box"width
- width of monthcal
- the calendar specifying the the first day of the month to paint, must not be null
-
paintDayOfTheWeekBackground
protected void paintDayOfTheWeekBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
-
paintWeekOfYearBackground
protected void paintWeekOfYearBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
-
paintWeekOfYearForeground
protected void paintWeekOfYearForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paints the week of the year of the week of the year represented by the given calendar.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics objectx
- x-coordinate of upper left corner.y
- y-coordinate of upper left corner.width
- width of bounding boxheight
- height of bounding box
-
paintMonthStringBackground
protected void paintMonthStringBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paints the background of the month string. The bounding box for this background can be modified by setting its insets via setMonthStringInsets. The color of the background can be set via setMonthStringBackground. Note: the given calendar must not be changed.- Parameters:
g
- Graphics object to paint to.x
- x-coordinate of upper left corner.y
- y-coordinate of upper left corner.width
- width of the bounding box.height
- height of the bounding box.- See Also:
JXMonthView.setMonthStringBackground(java.awt.Color)
,JXMonthView.setMonthStringInsets(java.awt.Insets)
-
paintMonthStringForeground
protected void paintMonthStringForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Note: the given calendar must not be changed.- Parameters:
g
- Graphics object to paint to.x
- x-coordinate of upper left corner.y
- y-coordinate of upper left corner.width
- width of the bounding box.height
- height of the bounding box.cal
- the calendar specifying the day to use, must not be null
-
paintMonthStringForeground
protected void paintMonthStringForeground(java.awt.Graphics g, java.lang.String monthName, int monthX, int monthY, java.lang.String yearName, int yearX, int yearY, java.util.Calendar cal)
Paints only text for month and year. No calculations made. Used by custom LAFs.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics to paint into.monthName
- Name of the month.monthX
- Month string x coordinate.monthY
- Month string y coordinate.yearName
- Name (number) of the year.yearX
- Year string x coordinate.yearY
- Year string y coordinate.
-
paintDayBackground
protected void paintDayBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the background for the day specified by the given calendar.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics object to paint tox
- x-coordinate of upper left cornery
- y-coordinate of upper left cornerwidth
- width of bounding box for the dayheight
- height of bounding box for the daycal
- the calendar specifying the day to paint, must not be null- See Also:
org.jdesktop.swingx.JXMonthView#isSelectedDate
,isToday(java.util.Date)
-
paintDayForeground
protected void paintDayForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the foreground for the specified day.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics object to paint tox
- x-coordinate of upper left cornery
- y-coordinate of upper left cornerwidth
- width of bounding box for the dayheight
- height of bounding box for the daycal
- the calendar specifying the day to paint, must not be null
-
paintDayForeground
protected void paintDayForeground(java.awt.Graphics g, java.lang.String numericDay, int x, int y, java.util.Calendar cal)
Paints string of the day. No calculations made. Used by LAFs.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics to paint on.numericDay
- Text representation of the day.x
- X coordinate of the upper right corner.y
- Y coordinate of the upper right corner.
-
paintFlaggedDayBackground
protected void paintFlaggedDayBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the background for the specified flagged day. The default implementation just callspaintDayBackground
.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics object to paint tox
- x-coordinate of upper left cornery
- y-coordinate of upper left cornerwidth
- width of bounding box for the dayheight
- height of bounding box for the daycal
- the calendar specifying the day to paint, must not be null
-
paintFlaggedDayForeground
protected void paintFlaggedDayForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the foreground for the specified flagged day.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics object to paint tox
- x-coordinate of upper left cornery
- y-coordinate of upper left cornerwidth
- width of bounding box for the dayheight
- height of bounding box for the daycal
- the calendar specifying the day to paint, must not be null
-
paintUnselectableDayBackground
protected void paintUnselectableDayBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the foreground for the specified unselectable day.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics object to paint tox
- x-coordinate of upper left cornery
- y-coordinate of upper left cornerwidth
- width of bounding box for the dayheight
- height of bounding box for the daycal
- the calendar specifying the day to paint, must not be null
-
paintUnselectableDayForeground
protected void paintUnselectableDayForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the foreground for the specified unselectable day.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics object to paint tox
- x-coordinate of upper left cornery
- y-coordinate of upper left cornerwidth
- width of bounding box for the dayheight
- height of bounding box for the daycal
- the calendar specifying the day to paint, must not be null
-
paintLeadingDayBackground
protected void paintLeadingDayBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the background for the specified leading day.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics object to paint tox
- x-coordinate of upper left cornery
- y-coordinate of upper left cornerwidth
- width of bounding box for the dayheight
- height of bounding box for the daycal
- the calendar specifying the day to paint, must not be null
-
paintLeadingDayForeground
protected void paintLeadingDayForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the foreground for the specified leading day.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics object to paint tox
- x-coordinate of upper left cornery
- y-coordinate of upper left cornerwidth
- width of bounding box for the dayheight
- height of bounding box for the daycal
- the calendar specifying the day to paint, must not be null
-
paintTrailingDayBackground
protected void paintTrailingDayBackground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the background for the specified trailing day.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics object to paint tox
- x-coordinate of upper left cornery
- y-coordinate of upper left cornerwidth
- width of bounding box for the dayheight
- height of bounding box for the daycal
- the calendar specifying the day to paint, must not be null
-
paintTrailingDayForeground
protected void paintTrailingDayForeground(java.awt.Graphics g, int x, int y, int width, int height, java.util.Calendar cal)
Paint the foreground for the specified trailing day.Note: the given calendar must not be changed.
- Parameters:
g
- Graphics object to paint tox
- x-coordinate of upper left cornery
- y-coordinate of upper left cornerwidth
- width of bounding box for the dayheight
- height of bounding box for the daycal
- the calendar specifying the day to paint, must not be null
-
paintBackground
protected void paintBackground(java.awt.Rectangle clip, java.awt.Graphics g)
-
getCalendar
protected java.util.Calendar getCalendar()
Returns the monthViews calendar configured to the firstDisplayedDate. NOTE: it's safe to change the calendar state without resetting because it's JXMonthView's responsibility to protect itself.- Returns:
- the monthView's calendar, configured with the firstDisplayedDate.
-
getCalendar
protected java.util.Calendar getCalendar(java.util.Date date)
Returns the monthViews calendar configured to the given time. NOTE: it's safe to change the calendar state without resetting because it's JXMonthView's responsibility to protect itself.- Parameters:
date
- the date to configure the calendar with- Returns:
- the monthView's calendar, configured with the given date.
-
getLastDisplayedDay
public java.util.Date getLastDisplayedDay()
Returns the last possible date that can be displayed. This is implemented by the UI since it is in control of layout and may possibly yeild different results based on implementation.It's up to the UI to keep this property, based on internal state and the firstDisplayed as controlled by the JXMonthView.
- Specified by:
getLastDisplayedDay
in classMonthViewUI
- Returns:
- Date The date.
-
setFirstDisplayedDay
protected void setFirstDisplayedDay(java.util.Date firstDisplayedDate)
Sets the firstDisplayedDate property to the given value. Must update dependent state as well. Here: updated lastDisplayedDatefirstDisplayedMonth/Year accordingly.- Parameters:
firstDisplayedDate
- the firstDisplayedDate to set
-
getFirstDisplayedDay
protected java.util.Date getFirstDisplayedDay()
- Returns:
- the firstDisplayedDate
-
getFirstDisplayedMonth
protected int getFirstDisplayedMonth()
- Returns:
- the firstDisplayedMonth
-
getFirstDisplayedYear
protected int getFirstDisplayedYear()
- Returns:
- the firstDisplayedYear
-
getSelection
protected java.util.SortedSet<java.util.Date> getSelection()
- Returns:
- the selection
-
getToday
protected java.util.Date getToday()
- Returns:
- the start of today.
-
isToday
protected boolean isToday(java.util.Date date)
Returns true if the date passed in is the same as today. PENDING JW: really want the exact test?- Parameters:
date
- long representing the date you want to compare to today.- Returns:
- true if the date passed is the same as today.
-
-