edu.wisc.ssec.mcidasv.data.dateChooser
Class JCalendar

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by edu.wisc.ssec.mcidasv.data.dateChooser.JCalendar
All Implemented Interfaces:
ImageObserver, MenuContainer, PropertyChangeListener, Serializable, EventListener, Accessible

public class JCalendar
extends JPanel
implements PropertyChangeListener

JCalendar is a bean for entering a date by choosing the year, month and day.

Version:
$LastChangedRevision: 95 $, $LastChangedDate: 2006-05-05 18:43:15 +0200 (Fr, 05 Mai 2006) $
Author:
Kai Toedter
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private  Calendar calendar
           
protected  JDayChooser dayChooser
          the day chooser
private  boolean initialized
           
protected  Locale locale
          the locale
protected  Date maxSelectableDate
           
protected  Date minSelectableDate
           
protected  JMonthChooser monthChooser
          the month chooser
private  JPanel monthYearPanel
           
private static long serialVersionUID
           
protected  boolean weekOfYearVisible
          indicates if weeks of year shall be visible
protected  JYearChooser yearChooser
          the year chhoser
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, 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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JCalendar()
          Default JCalendar constructor.
JCalendar(boolean monthSpinner)
          JCalendar constructor specifying the month spinner type.
JCalendar(Calendar calendar)
          JCalendar constructor which allows the initial calendar to be set.
JCalendar(Date date)
          JCalendar constructor which allows the initial date to be set.
JCalendar(Date date, boolean monthSpinner)
          JCalendar constructor specifying both the initial date and the month spinner type.
JCalendar(Date date, Locale locale)
          JCalendar constructor specifying both the initial date and locale.
JCalendar(Date date, Locale locale, boolean monthSpinner, boolean weekOfYearVisible)
          JCalendar constructor with month spinner parameter.
JCalendar(Locale locale)
          JCalendar constructor allowing the initial locale to be set.
JCalendar(Locale locale, boolean monthSpinner)
          JCalendar constructor specifying both the locale and the month spinner.
 
Method Summary
 Calendar getCalendar()
          Returns the calendar property.
 Date getDate()
          Returns a Date object.
 JDayChooser getDayChooser()
          Gets the dayChooser attribute of the JCalendar object
 Color getDecorationBackgroundColor()
          Returns the color of the decoration (day names and weeks).
 Locale getLocale()
          Returns the locale.
 int getMaxDayCharacters()
          Gets the maximum number of characters of a day name or 0.
 Date getMaxSelectableDate()
          Gets the minimum selectable date.
 Date getMinSelectableDate()
          Gets the maximum selectable date.
 JMonthChooser getMonthChooser()
          Gets the monthChooser attribute of the JCalendar object
 Color getSundayForeground()
          Returns the Sunday foreground.
 Color getWeekdayForeground()
          Returns the weekday foreground.
 JYearChooser getYearChooser()
          Gets the yearChooser attribute of the JCalendar object
 boolean isDecorationBackgroundVisible()
          Gets the visibility of the decoration background.
 boolean isDecorationBordersVisible()
          Gets the visibility of the decoration border.
 boolean isEnabled()
          Returns true, if enabled.
 boolean isWeekOfYearVisible()
          Indicates if the weeks of year are visible..
static void main(String[] s)
          Creates a JFrame with a JCalendar inside and can be used for testing.
 void propertyChange(PropertyChangeEvent evt)
          JCalendar is a PropertyChangeListener, for its day, month and year chooser.
 void setBackground(Color bg)
          Sets the background color.
 void setCalendar(Calendar c)
          Sets the calendar property.
private  void setCalendar(Calendar c, boolean update)
          Sets the calendar attribute of the JCalendar object
 void setDate(Date date)
          Sets the date.
 void setDecorationBackgroundColor(Color decorationBackgroundColor)
          Sets the background of days and weeks of year buttons.
 void setDecorationBackgroundVisible(boolean decorationBackgroundVisible)
          Sets the decoration background visible.
 void setDecorationBordersVisible(boolean decorationBordersVisible)
          Sets the decoration borders visible.
 void setEnabled(boolean enabled)
          Enable or disable the JCalendar.
 void setFont(Font font)
          Sets the font property.
 void setForeground(Color fg)
          Sets the foreground color.
 void setLocale(Locale l)
          Sets the locale property.
 void setMaxDayCharacters(int maxDayCharacters)
          Sets the maximum number of characters per day in the day bar.
 void setMaxSelectableDate(Date max)
          Sets the maximum selectable date.
 void setMinSelectableDate(Date min)
          Sets the minimum selectable date.
 void setSelectableDateRange(Date min, Date max)
          Sets a valid date range for selectable dates.
 void setSundayForeground(Color sundayForeground)
          Sets the Sunday foreground.
 void setWeekdayForeground(Color weekdayForeground)
          Sets the weekday foreground.
 void setWeekOfYearVisible(boolean weekOfYearVisible)
          Sets the week of year visible.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, 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, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, 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, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

calendar

private Calendar calendar

dayChooser

protected JDayChooser dayChooser
the day chooser


initialized

private boolean initialized

weekOfYearVisible

protected boolean weekOfYearVisible
indicates if weeks of year shall be visible


locale

protected Locale locale
the locale


monthChooser

protected JMonthChooser monthChooser
the month chooser


monthYearPanel

private JPanel monthYearPanel

yearChooser

protected JYearChooser yearChooser
the year chhoser


minSelectableDate

protected Date minSelectableDate

maxSelectableDate

protected Date maxSelectableDate
Constructor Detail

JCalendar

public JCalendar()
Default JCalendar constructor.


JCalendar

public JCalendar(Date date)
JCalendar constructor which allows the initial date to be set.

Parameters:
date - the date

JCalendar

public JCalendar(Calendar calendar)
JCalendar constructor which allows the initial calendar to be set.

Parameters:
calendar - the calendar

JCalendar

public JCalendar(Locale locale)
JCalendar constructor allowing the initial locale to be set.

Parameters:
locale - the new locale

JCalendar

public JCalendar(Date date,
                 Locale locale)
JCalendar constructor specifying both the initial date and locale.

Parameters:
date - the date
locale - the new locale

JCalendar

public JCalendar(Date date,
                 boolean monthSpinner)
JCalendar constructor specifying both the initial date and the month spinner type.

Parameters:
date - the date
monthSpinner - false, if no month spinner should be used

JCalendar

public JCalendar(Locale locale,
                 boolean monthSpinner)
JCalendar constructor specifying both the locale and the month spinner.

Parameters:
locale - the locale
monthSpinner - false, if no month spinner should be used

JCalendar

public JCalendar(boolean monthSpinner)
JCalendar constructor specifying the month spinner type.

Parameters:
monthSpinner - false, if no month spinner should be used

JCalendar

public JCalendar(Date date,
                 Locale locale,
                 boolean monthSpinner,
                 boolean weekOfYearVisible)
JCalendar constructor with month spinner parameter.

Parameters:
date - the date
locale - the locale
monthSpinner - false, if no month spinner should be used
weekOfYearVisible - true, if weeks of year shall be visible
Method Detail

main

public static void main(String[] s)
Creates a JFrame with a JCalendar inside and can be used for testing.

Parameters:
s - The command line arguments

getCalendar

public Calendar getCalendar()
Returns the calendar property.

Returns:
the value of the calendar property.

getDayChooser

public JDayChooser getDayChooser()
Gets the dayChooser attribute of the JCalendar object

Returns:
the dayChooser value

getLocale

public Locale getLocale()
Returns the locale.

Overrides:
getLocale in class Component
Returns:
the value of the locale property.
See Also:
setLocale(java.util.Locale)

getMonthChooser

public JMonthChooser getMonthChooser()
Gets the monthChooser attribute of the JCalendar object

Returns:
the monthChooser value

getYearChooser

public JYearChooser getYearChooser()
Gets the yearChooser attribute of the JCalendar object

Returns:
the yearChooser value

isWeekOfYearVisible

public boolean isWeekOfYearVisible()
Indicates if the weeks of year are visible..

Returns:
boolean true, if weeks of year are visible

propertyChange

public void propertyChange(PropertyChangeEvent evt)
JCalendar is a PropertyChangeListener, for its day, month and year chooser.

Specified by:
propertyChange in interface PropertyChangeListener
Parameters:
evt - the property change event

setBackground

public void setBackground(Color bg)
Sets the background color.

Overrides:
setBackground in class JComponent
Parameters:
bg - the new background

setCalendar

public void setCalendar(Calendar c)
Sets the calendar property. This is a bound property.

Parameters:
c - the new calendar
Throws:
NullPointerException - - if c is null;
See Also:
getCalendar()

setCalendar

private void setCalendar(Calendar c,
                         boolean update)
Sets the calendar attribute of the JCalendar object

Parameters:
c - the new calendar value
update - the new calendar value
Throws:
NullPointerException - - if c is null;

setEnabled

public void setEnabled(boolean enabled)
Enable or disable the JCalendar.

Overrides:
setEnabled in class JComponent
Parameters:
enabled - the new enabled value

isEnabled

public boolean isEnabled()
Returns true, if enabled.

Overrides:
isEnabled in class Component
Returns:
true, if enabled.

setFont

public void setFont(Font font)
Sets the font property.

Overrides:
setFont in class JComponent
Parameters:
font - the new font

setForeground

public void setForeground(Color fg)
Sets the foreground color.

Overrides:
setForeground in class JComponent
Parameters:
fg - the new foreground

setLocale

public void setLocale(Locale l)
Sets the locale property. This is a bound property.

Overrides:
setLocale in class Component
Parameters:
l - the new locale value
See Also:
getLocale()

setWeekOfYearVisible

public void setWeekOfYearVisible(boolean weekOfYearVisible)
Sets the week of year visible.

Parameters:
weekOfYearVisible - true, if weeks of year shall be visible

isDecorationBackgroundVisible

public boolean isDecorationBackgroundVisible()
Gets the visibility of the decoration background.

Returns:
true, if the decoration background is visible.

setDecorationBackgroundVisible

public void setDecorationBackgroundVisible(boolean decorationBackgroundVisible)
Sets the decoration background visible.

Parameters:
decorationBackgroundVisible - true, if the decoration background should be visible.

isDecorationBordersVisible

public boolean isDecorationBordersVisible()
Gets the visibility of the decoration border.

Returns:
true, if the decoration border is visible.

setDecorationBordersVisible

public void setDecorationBordersVisible(boolean decorationBordersVisible)
Sets the decoration borders visible.

Parameters:
decorationBordersVisible - true, if the decoration borders should be visible.

getDecorationBackgroundColor

public Color getDecorationBackgroundColor()
Returns the color of the decoration (day names and weeks).

Returns:
the color of the decoration (day names and weeks).

setDecorationBackgroundColor

public void setDecorationBackgroundColor(Color decorationBackgroundColor)
Sets the background of days and weeks of year buttons.

Parameters:
decorationBackgroundColor - the background color

getSundayForeground

public Color getSundayForeground()
Returns the Sunday foreground.

Returns:
Color the Sunday foreground.

getWeekdayForeground

public Color getWeekdayForeground()
Returns the weekday foreground.

Returns:
Color the weekday foreground.

setSundayForeground

public void setSundayForeground(Color sundayForeground)
Sets the Sunday foreground.

Parameters:
sundayForeground - the sundayForeground to set

setWeekdayForeground

public void setWeekdayForeground(Color weekdayForeground)
Sets the weekday foreground.

Parameters:
weekdayForeground - the weekdayForeground to set

getDate

public Date getDate()
Returns a Date object.

Returns:
a date object constructed from the calendar property.

setDate

public void setDate(Date date)
Sets the date. Fires the property change "date".

Parameters:
date - the new date.
Throws:
NullPointerException - - if tha date is null

setSelectableDateRange

public void setSelectableDateRange(Date min,
                                   Date max)
Sets a valid date range for selectable dates. If max is before min, the default range with no limitation is set.

Parameters:
min - the minimum selectable date or null (then the minimum date is set to 01\01\0001)
max - the maximum selectable date or null (then the maximum date is set to 01\01\9999)

getMaxSelectableDate

public Date getMaxSelectableDate()
Gets the minimum selectable date.

Returns:
the minimum selectable date

getMinSelectableDate

public Date getMinSelectableDate()
Gets the maximum selectable date.

Returns:
the maximum selectable date

setMaxSelectableDate

public void setMaxSelectableDate(Date max)
Sets the maximum selectable date.

Parameters:
max - maximum selectable date

setMinSelectableDate

public void setMinSelectableDate(Date min)
Sets the minimum selectable date.

Parameters:
min - minimum selectable date

getMaxDayCharacters

public int getMaxDayCharacters()
Gets the maximum number of characters of a day name or 0. If 0 is returned, dateFormatSymbols.getShortWeekdays() will be used.

Returns:
the maximum number of characters of a day name or 0.

setMaxDayCharacters

public void setMaxDayCharacters(int maxDayCharacters)
Sets the maximum number of characters per day in the day bar. Valid values are 0-4. If set to 0, dateFormatSymbols.getShortWeekdays() will be used, otherwise theses strings will be reduced to the maximum number of characters.

Parameters:
maxDayCharacters - the maximum number of characters of a day name.