Class CalendarPane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- com.michaelbaranov.microba.common.MicrobaComponent
-
- com.michaelbaranov.microba.calendar.CalendarPane
-
- All Implemented Interfaces:
CalendarColors
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
- Direct Known Subclasses:
DatePicker
public class CalendarPane extends MicrobaComponent implements CalendarColors
A concrete implementation of JComponent. Capable of displaying and selecting dates, much like a real-world calendar.- Author:
- Michael Baranov
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
PROPERTY_NAME_DATE
The name of a "date" property.static java.lang.String
PROPERTY_NAME_FOCUS_LOST_BEHAVIOR
The name of a "focusLocatBehavior" property.static java.lang.String
PROPERTY_NAME_HOLIDAY_POLICY
The name of a "holidayPolicy" property.static java.lang.String
PROPERTY_NAME_LOCALE
The name of a "locale" property.static java.lang.String
PROPERTY_NAME_RESOURCES
The name of a "resources" property.static java.lang.String
PROPERTY_NAME_SHOW_NONE_BTN
The name of a "showNoneButton" property.static java.lang.String
PROPERTY_NAME_SHOW_NUMBER_WEEK
The name of a "resources" property.static java.lang.String
PROPERTY_NAME_SHOW_TODAY_BTN
The name of a "showTodayButton" property.static java.lang.String
PROPERTY_NAME_STRIP_TIME
The name of a "stripTime" property.static java.lang.String
PROPERTY_NAME_STYLE
The name of a "style" property.static java.lang.String
PROPERTY_NAME_VETO_POLICY
The name of a "vetoPolicy" property.static java.lang.String
PROPERTY_NAME_ZONE
The name of a "zone" property.static int
STYLE_CLASSIC
A constant for the "style" property.static int
STYLE_MODERN
A constant for the "style" property.-
Fields inherited from class com.michaelbaranov.microba.common.MicrobaComponent
PROPERTY_NAME_COLOR_OVERRIDE_MAP
-
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface com.michaelbaranov.microba.calendar.CalendarColors
COLOR_CALENDAR_GRID_BACKGROUND_DISABLED, COLOR_CALENDAR_GRID_BACKGROUND_ENABLED, COLOR_CALENDAR_GRID_FOCUS, COLOR_CALENDAR_GRID_FOREGROUND_DISABLED, COLOR_CALENDAR_GRID_FOREGROUND_ENABLED, COLOR_CALENDAR_GRID_HOLIDAY_FOREGROUND_DISABLED, COLOR_CALENDAR_GRID_HOLIDAY_FOREGROUND_ENABLED, COLOR_CALENDAR_GRID_RESTRICTED, COLOR_CALENDAR_GRID_SELECTION_BACKGROUND_DISABLED, COLOR_CALENDAR_GRID_SELECTION_BACKGROUND_ENABLED, COLOR_CALENDAR_GRID_WEEKEND_FOREGROUND_DISABLED, COLOR_CALENDAR_GRID_WEEKEND_FOREGROUND_ENABLED, COLOR_CALENDAR_HEADER_BACKGROUND_DISABLED, COLOR_CALENDAR_HEADER_BACKGROUND_ENABLED, COLOR_CALENDAR_HEADER_FOREGROUND_DISABLED, COLOR_CALENDAR_HEADER_FOREGROUND_ENABLED, COLOR_CALENDAR_HEADER_FOREGROUND_WEEKEND_DISABLED, COLOR_CALENDAR_HEADER_FOREGROUND_WEEKEND_ENABLED
-
-
Constructor Summary
Constructors Constructor Description CalendarPane()
Constructor.CalendarPane(int style)
Constructor.CalendarPane(java.util.Date initialDate)
Constructor.CalendarPane(java.util.Date initialDate, int style)
Constructor.CalendarPane(java.util.Date initialDate, int style, java.util.Locale locale)
Constructor.CalendarPane(java.util.Date initialDate, int style, java.util.Locale locale, java.util.TimeZone zone)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addActionListener(java.awt.event.ActionListener listener)
Adds anActionListener
listener.void
addCommitListener(CommitListener listener)
Adds anCommitListener
listener.boolean
commitEdit()
Forces the control to commit current user's edit.void
commitOrRevert()
Forces the control to commit or revert user's edit depending on the current focus lost behavior as if the focus would be lost.void
fireActionEvent()
Fires aActionEvent
to all registered listeners.void
fireCommitEvent(boolean commit)
Fires aCommitEvent
to all registered listeners.java.util.Date
getDate()
Returns currently selected date in the control.int
getFocusLostBehavior()
Returns the focus lost behavior.HolidayPolicy
getHolidayPolicy()
Returns current holliday policy (model).java.util.Locale
getLocale()
Returns current locale.CalendarResources
getResources()
Resurns current calendar resources model.int
getStyle()
Returns current visual style of the control.java.lang.String
getUIClassID()
VetoPolicy
getVetoPolicy()
Returns the current veto policy (model).java.util.TimeZone
getZone()
Returns current time zone.boolean
isShowNoneButton()
Is the none-button visible?boolean
isShowNumberOfWeek()
Is the number of every week visible?boolean
isShowTodayButton()
Is today button visible?boolean
isStripTime()
Is time protion of the date automatically striped, based on current locale and ime zone?void
observeMonth(int year, int month)
Makes the widget display given month within given year without actually changing selected date.void
removeActionListener(java.awt.event.ActionListener listener)
Removes anActionListener
listener.void
removeCommitListener(CommitListener listener)
Removes anCommitListener
listener.void
revertEdit()
Forces the control to revert current user's edit to reflect current control's date.void
setDate(java.util.Date date)
Sets currently selected date to the control.void
setFocusLostBehavior(int behavior)
Sets the focus lost behaviour.void
setHolidayPolicy(HolidayPolicy holidayPolicy)
Sets current holliday policy (model) then updates the control to reflect the policy set.void
setLocale(java.util.Locale locale)
Sets current locale.void
setResources(CalendarResources resources)
Sets current calendar resources model.void
setShowNoneButton(boolean visible)
Shows or hides the none-button.void
setShowNumberOfWeek(boolean visible)
Shows or hides the the number of every week.void
setShowTodayButton(boolean visible)
Shows or hides the today-button.void
setStripTime(boolean stripTime)
MakesgetDate()
either strip the time portion of the date, or keep it.void
setStyle(int style)
Sets the current visual style of the control.void
setVetoPolicy(VetoPolicy vetoModel)
Sets the current veto policy (model).void
setZone(java.util.TimeZone zone)
Sets current time zone.static java.util.Date
stripTime(java.util.Date date, java.util.TimeZone zone, java.util.Locale locale)
Returns same date as given, but time portion (hours, minutes, seconds, fraction of second) set to zero, based on given locale and time zone.-
Methods inherited from class com.michaelbaranov.microba.common.MicrobaComponent
getColorOverrideMap, getUI, setColorOverrideMap, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
PROPERTY_NAME_DATE
public static final java.lang.String PROPERTY_NAME_DATE
The name of a "date" property.- See Also:
- Constant Field Values
-
PROPERTY_NAME_LOCALE
public static final java.lang.String PROPERTY_NAME_LOCALE
The name of a "locale" property.- See Also:
- Constant Field Values
-
PROPERTY_NAME_ZONE
public static final java.lang.String PROPERTY_NAME_ZONE
The name of a "zone" property.- See Also:
- Constant Field Values
-
PROPERTY_NAME_STYLE
public static final java.lang.String PROPERTY_NAME_STYLE
The name of a "style" property.- See Also:
- Constant Field Values
-
PROPERTY_NAME_SHOW_TODAY_BTN
public static final java.lang.String PROPERTY_NAME_SHOW_TODAY_BTN
The name of a "showTodayButton" property.- See Also:
- Constant Field Values
-
PROPERTY_NAME_SHOW_NONE_BTN
public static final java.lang.String PROPERTY_NAME_SHOW_NONE_BTN
The name of a "showNoneButton" property.- See Also:
- Constant Field Values
-
PROPERTY_NAME_FOCUS_LOST_BEHAVIOR
public static final java.lang.String PROPERTY_NAME_FOCUS_LOST_BEHAVIOR
The name of a "focusLocatBehavior" property.- See Also:
- Constant Field Values
-
PROPERTY_NAME_VETO_POLICY
public static final java.lang.String PROPERTY_NAME_VETO_POLICY
The name of a "vetoPolicy" property.- See Also:
- Constant Field Values
-
PROPERTY_NAME_HOLIDAY_POLICY
public static final java.lang.String PROPERTY_NAME_HOLIDAY_POLICY
The name of a "holidayPolicy" property.- See Also:
- Constant Field Values
-
PROPERTY_NAME_RESOURCES
public static final java.lang.String PROPERTY_NAME_RESOURCES
The name of a "resources" property.- See Also:
- Constant Field Values
-
PROPERTY_NAME_SHOW_NUMBER_WEEK
public static final java.lang.String PROPERTY_NAME_SHOW_NUMBER_WEEK
The name of a "resources" property.- See Also:
- Constant Field Values
-
PROPERTY_NAME_STRIP_TIME
public static final java.lang.String PROPERTY_NAME_STRIP_TIME
The name of a "stripTime" property.- See Also:
- Constant Field Values
-
STYLE_MODERN
public static final int STYLE_MODERN
A constant for the "style" property.- See Also:
- Constant Field Values
-
STYLE_CLASSIC
public static final int STYLE_CLASSIC
A constant for the "style" property.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CalendarPane
public CalendarPane()
Constructor.
-
CalendarPane
public CalendarPane(int style)
Constructor.
-
CalendarPane
public CalendarPane(java.util.Date initialDate)
Constructor.
-
CalendarPane
public CalendarPane(java.util.Date initialDate, int style)
Constructor.
-
CalendarPane
public CalendarPane(java.util.Date initialDate, int style, java.util.Locale locale)
Constructor.
-
CalendarPane
public CalendarPane(java.util.Date initialDate, int style, java.util.Locale locale, java.util.TimeZone zone)
Constructor.
-
-
Method Detail
-
getUIClassID
public java.lang.String getUIClassID()
- Overrides:
getUIClassID
in classjavax.swing.JComponent
-
getDate
public java.util.Date getDate()
Returns currently selected date in the control.The returned date is guaranteed to pass the restriction check by the current
VetoPolicy
. Based on the value ofstripTime
property, the returned date may be automatically stripped.- Returns:
- currently selected date
- See Also:
stripTime
,stripTime(Date, TimeZone, Locale)
-
setDate
public void setDate(java.util.Date date) throws java.beans.PropertyVetoException
Sets currently selected date to the control.The given date is checked against the current
VetoPolicy
. If the check is passed, the date is transferred to the control and the control is updated to display the date.A
PropertyChangeEvent
may be fired, anActionEvent
may be fired.- Parameters:
date
- the date to set- Throws:
java.beans.PropertyVetoException
- if the date is restricted by the currentVetoPolicy
.- See Also:
getVetoPolicy()
,setVetoPolicy(VetoPolicy)
,addActionListener(ActionListener)
-
getLocale
public java.util.Locale getLocale()
Returns current locale.- Overrides:
getLocale
in classjava.awt.Component
- Returns:
- current locale
-
setLocale
public void setLocale(java.util.Locale locale)
Sets current locale.The locale is used to construct internal
Calendar
instances and affects visual representation of the control.- Overrides:
setLocale
in classjava.awt.Component
- Parameters:
locale
- the locale to set
-
getZone
public java.util.TimeZone getZone()
Returns current time zone.- Returns:
- current time zone
-
setZone
public void setZone(java.util.TimeZone zone)
Sets current time zone.The time zone is used to construct internal
Calendar
instances and affects visual representation of the control. The dates returned bygetDate()
will have all time components set to zero considering the current locale.- Parameters:
zone
- the time zone to set
-
getStyle
public int getStyle()
Returns current visual style of the control.- Returns:
- current visual style constant.
-
setStyle
public void setStyle(int style)
Sets the current visual style of the control.The control is then updated to reflect the new style.
- Parameters:
style
- the style to set- See Also:
STYLE_CLASSIC
,STYLE_MODERN
-
isShowTodayButton
public boolean isShowTodayButton()
Is today button visible?The today button allows the user to quickly select current date.
- Returns:
true
if the today button is visible,false
otherwise
-
setShowTodayButton
public void setShowTodayButton(boolean visible)
Shows or hides the today-button.The today-button allows the user to quickly select current date.
- Parameters:
visible
-true
to show the today-buttonfalse
to hide
-
isShowNoneButton
public boolean isShowNoneButton()
Is the none-button visible?The none-button allows the user to select empty date (null-date, no date).
- Returns:
true
if the none-button is visible,false
otherwise
-
setShowNoneButton
public void setShowNoneButton(boolean visible)
Shows or hides the none-button.The none-button allows the user to select empty date (null-date, no date).
- Parameters:
visible
-true
to show the none-buttonfalse
to hide
-
getFocusLostBehavior
public int getFocusLostBehavior()
Returns the focus lost behavior. Possible values are:JFormattedTextField.COMMIT
JFormattedTextField.COMMIT_OR_REVERT
JFormattedTextField.REVERT
JFormattedTextField.PERSIST
- Returns:
- the focus lost behavior constant
- See Also:
JFormattedTextField
-
setFocusLostBehavior
public void setFocusLostBehavior(int behavior)
Sets the focus lost behaviour. Possible values are:JFormattedTextField.COMMIT
JFormattedTextField.COMMIT_OR_REVERT
JFormattedTextField.REVERT
JFormattedTextField.PERSIST
- Parameters:
behavior
- the focus lost behavior constant- See Also:
JFormattedTextField
-
getResources
public CalendarResources getResources()
Resurns current calendar resources model.The model is used to query localized resources for the control.
- Returns:
- current calendar resources model
- See Also:
CalendarResources
-
setResources
public void setResources(CalendarResources resources)
Sets current calendar resources model.The model is used to query localized resources for the control.
- Parameters:
resources
- a calendar resources model to set. Should not benull
- See Also:
CalendarResources
-
getHolidayPolicy
public HolidayPolicy getHolidayPolicy()
Returns current holliday policy (model).The policy is used to query holliday dates and holliday descriptions.
- Returns:
- current holliday policy or
null
if none set - See Also:
HolidayPolicy
-
setHolidayPolicy
public void setHolidayPolicy(HolidayPolicy holidayPolicy)
Sets current holliday policy (model) then updates the control to reflect the policy set.The policy is used to query holliday dates and holiday descriptions.
- Parameters:
holidayPolicy
- a holliday policy to set. May benull
- See Also:
VetoPolicy
-
getVetoPolicy
public VetoPolicy getVetoPolicy()
Returns the current veto policy (model).The policy is used to veto dates in the control.
- Returns:
- current veto policy or
null
if none set - See Also:
VetoPolicy
-
setVetoPolicy
public void setVetoPolicy(VetoPolicy vetoModel)
Sets the current veto policy (model).The policy is used to veto dates in the control.
- Parameters:
vetoModel
- a veto policy to set. May benull
-
isShowNumberOfWeek
public boolean isShowNumberOfWeek()
Is the number of every week visible?- Returns:
true
if the number of every week is visible,false
otherwise
-
isStripTime
public boolean isStripTime()
Is time protion of the date automatically striped, based on current locale and ime zone?- Returns:
true
ifgetDate()
returns a stripped date,false
otherwise- See Also:
setStripTime(boolean)
,stripTime(Date, TimeZone, Locale)
-
setStripTime
public void setStripTime(boolean stripTime)
MakesgetDate()
either strip the time portion of the date, or keep it.- Parameters:
stripTime
-true
to strip time,false
to keep time
-
setShowNumberOfWeek
public void setShowNumberOfWeek(boolean visible)
Shows or hides the the number of every week.The number of week is based on the current locale for the component.
- Parameters:
visible
-true
to show the the number of every weekfalse
to hide
-
addActionListener
public void addActionListener(java.awt.event.ActionListener listener)
Adds anActionListener
listener.- Parameters:
listener
- a listener to add- See Also:
ActionListener
-
removeActionListener
public void removeActionListener(java.awt.event.ActionListener listener)
Removes anActionListener
listener.- Parameters:
listener
- a listener to remove- See Also:
ActionListener
-
addCommitListener
public void addCommitListener(CommitListener listener)
Adds anCommitListener
listener.- Parameters:
listener
- a listener to add- See Also:
CommitListener
-
removeCommitListener
public void removeCommitListener(CommitListener listener)
Removes anCommitListener
listener.- Parameters:
listener
- a listener to remove- See Also:
CommitListener
-
commitEdit
public boolean commitEdit()
Forces the control to commit current user's edit. The opertaion may fail because the date in the control may be restricted by current veto policy. If successfull, the current date of the control may change, aCommitEvent
is fired.- Returns:
true
if successful,false
otherwise- See Also:
revertEdit()
,getFocusLostBehavior()
,setFocusLostBehavior(int)
-
revertEdit
public void revertEdit()
Forces the control to revert current user's edit to reflect current control's date. The current date of the control may change, aCommitEvent
is fired.
-
commitOrRevert
public void commitOrRevert()
Forces the control to commit or revert user's edit depending on the current focus lost behavior as if the focus would be lost.
-
fireCommitEvent
public void fireCommitEvent(boolean commit)
Fires aCommitEvent
to all registered listeners.- Parameters:
commit
-true
to indicate commit,false
to indicate revert- See Also:
CommitEvent
,CommitListener
-
fireActionEvent
public void fireActionEvent()
Fires aActionEvent
to all registered listeners.- See Also:
ActionEvent
,ActionListener
-
stripTime
public static java.util.Date stripTime(java.util.Date date, java.util.TimeZone zone, java.util.Locale locale)
Returns same date as given, but time portion (hours, minutes, seconds, fraction of second) set to zero, based on given locale and time zone. Utility method.Examle:
Fri Sep 29 15:57:23 EEST 2006 -> Fri Sep 29 00:00:00 EEST 2006- Parameters:
date
- date to strip time fromzone
- time zone to get zero fields inlocale
- locale to base the calendar on- Returns:
- stripped date
-
observeMonth
public void observeMonth(int year, int month)
Makes the widget display given month within given year without actually changing selected date.- Parameters:
year
- year to showmonth
- month within the year to show
-
-