kiwi.ui
Class DateChooser

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended bykiwi.ui.KPanel
                      extended bykiwi.ui.DateChooser
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class DateChooser
extends KPanel
implements java.awt.event.ActionListener

This class represents a date chooser. The chooser allows an arbitrary date to be selected by presenting a calendar with day, month and year selectors. The range of selectable dates may be constrained by supplying a minimum and/or maximum selectable date. The date chooser is fully locale-aware.


An example DateChooser.

Author:
Mark Lindner, PING Software Group
See Also:
Serialized Form

Nested Class Summary
private  class DateChooser.CalendarPane
           
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  ActionSupport asupport
           
private  KButton b_lmonth
           
private  KButton b_lyear
           
private  KButton b_rmonth
           
private  KButton b_ryear
           
private  DateChooser.CalendarPane cal
           
private static int cellSize
           
private  boolean clipAllMax
           
private  boolean clipAllMin
           
private  boolean clipMax
           
private  boolean clipMin
           
static java.lang.String DATE_CHANGE_CMD
          Date changed event command.
private  java.text.SimpleDateFormat datefmt
           
private static int[] daysInMonth
           
private static int[] daysInMonthLeap
           
private  java.awt.Color disabledColor
           
private  int firstDay
           
private  java.awt.Color highlightColor
           
private  KLabel l_date
           
private  KLabel l_month
           
private  KLabel l_year
           
private  java.lang.String[] labels
           
private  java.util.Calendar maxDate
           
private  int maxDay
           
private  java.util.Calendar minDate
           
private  int minDay
           
static java.lang.String MONTH_CHANGE_CMD
          Month changed event command.
private  java.lang.String[] months
           
private  java.util.Calendar selectedDate
           
private  int selectedDay
           
private static java.awt.Color weekendColor
           
private  int[] weekendCols
           
static java.lang.String YEAR_CHANGE_CMD
          Year changed event command.
 
Fields inherited from class kiwi.ui.KPanel
 
Fields inherited from class javax.swing.JPanel
 
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.Container
 
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
DateChooser()
          Construct a new DateChooser.
DateChooser(java.util.Calendar date)
          Construct a new DateChooser with the specified selected date.
 
Method Summary
private  void _computeFirstDay()
           
private  void _refresh()
           
 void actionPerformed(java.awt.event.ActionEvent evt)
          Handle events.
 void addActionListener(java.awt.event.ActionListener listener)
          Add a ActionListener to this component's list of listeners.
private  java.util.Calendar copyDate(java.util.Calendar source, java.util.Calendar dest)
           
 java.awt.Color getHighlightColor()
          Get the highlight color for this component.
 java.util.Calendar getMaximumDate()
          Get the latest selectable date for the chooser.
 java.util.Calendar getMinimumDate()
          Get the earliest selectable date for the chooser.
 java.util.Calendar getSelectedDate()
          Get a copy of the Calendar object that represents the currently selected date.
static boolean isLeapYear(int year)
          Determine if a year is a leap year.
 void removeActionListener(java.awt.event.ActionListener listener)
          Remove a ActionListener from this component's list of listeners.
 void setDateFormat(java.text.SimpleDateFormat format)
          Set the format for the textual date display at the bottom of the component.
 void setHighlightColor(java.awt.Color color)
          Set the highlight color for this component.
 void setMaximumDate(java.util.Calendar date)
          Set the latest selectable date for the chooser.
 void setMinimumDate(java.util.Calendar date)
          Set the earliest selectable date for the chooser.
 void setSelectedDate(java.util.Calendar date)
          Set the selected date for the chooser.
 
Methods inherited from class kiwi.ui.KPanel
getComponentByName, paintComponent, setFocusOrder, setTexture
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, 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

l_date

private KLabel l_date

l_year

private KLabel l_year

l_month

private KLabel l_month

b_lyear

private KButton b_lyear

b_ryear

private KButton b_ryear

b_lmonth

private KButton b_lmonth

b_rmonth

private KButton b_rmonth

cal

private DateChooser.CalendarPane cal

datefmt

private java.text.SimpleDateFormat datefmt

selectedDate

private java.util.Calendar selectedDate

minDate

private java.util.Calendar minDate

maxDate

private java.util.Calendar maxDate

selectedDay

private int selectedDay

firstDay

private int firstDay

minDay

private int minDay

maxDay

private int maxDay

cellSize

private static final int cellSize
See Also:
Constant Field Values

daysInMonth

private static final int[] daysInMonth

daysInMonthLeap

private static final int[] daysInMonthLeap

months

private java.lang.String[] months

labels

private java.lang.String[] labels

weekendColor

private static final java.awt.Color weekendColor

highlightColor

private java.awt.Color highlightColor

disabledColor

private java.awt.Color disabledColor

clipMin

private boolean clipMin

clipMax

private boolean clipMax

clipAllMin

private boolean clipAllMin

clipAllMax

private boolean clipAllMax

weekendCols

private int[] weekendCols

asupport

private ActionSupport asupport

DATE_CHANGE_CMD

public static final java.lang.String DATE_CHANGE_CMD
Date changed event command.

See Also:
Constant Field Values

MONTH_CHANGE_CMD

public static final java.lang.String MONTH_CHANGE_CMD
Month changed event command.

See Also:
Constant Field Values

YEAR_CHANGE_CMD

public static final java.lang.String YEAR_CHANGE_CMD
Year changed event command.

See Also:
Constant Field Values
Constructor Detail

DateChooser

public DateChooser()
Construct a new DateChooser. The selection will be initialized to the current date.


DateChooser

public DateChooser(java.util.Calendar date)
Construct a new DateChooser with the specified selected date.

Method Detail

getSelectedDate

public java.util.Calendar getSelectedDate()
Get a copy of the Calendar object that represents the currently selected date.

Returns:
The currently selected date.

setSelectedDate

public void setSelectedDate(java.util.Calendar date)
Set the selected date for the chooser.

Parameters:
date - The date to select.

setMinimumDate

public void setMinimumDate(java.util.Calendar date)
Set the earliest selectable date for the chooser.

Parameters:
date - The (possibly null) minimum selectable date.

getMinimumDate

public java.util.Calendar getMinimumDate()
Get the earliest selectable date for the chooser.

Returns:
The minimum selectable date, or null if there is no minimum date currently set.

setMaximumDate

public void setMaximumDate(java.util.Calendar date)
Set the latest selectable date for the chooser.

Parameters:
date - The (possibly null) maximum selectable date.

getMaximumDate

public java.util.Calendar getMaximumDate()
Get the latest selectable date for the chooser.

Returns:
The maximum selectable date, or null if there is no maximum date currently set.

setDateFormat

public void setDateFormat(java.text.SimpleDateFormat format)
Set the format for the textual date display at the bottom of the component.


actionPerformed

public void actionPerformed(java.awt.event.ActionEvent evt)
Handle events. This method is public as an implementation side-effect.

Specified by:
actionPerformed in interface java.awt.event.ActionListener

_computeFirstDay

private void _computeFirstDay()

_refresh

private void _refresh()

isLeapYear

public static boolean isLeapYear(int year)
Determine if a year is a leap year.

Parameters:
year - The year to check.
Returns:
true if the year is a leap year, and false otherwise.

copyDate

private java.util.Calendar copyDate(java.util.Calendar source,
                                    java.util.Calendar dest)

addActionListener

public void addActionListener(java.awt.event.ActionListener listener)
Add a ActionListener to this component's list of listeners.

Parameters:
listener - The listener to add.

removeActionListener

public void removeActionListener(java.awt.event.ActionListener listener)
Remove a ActionListener from this component's list of listeners.

Parameters:
listener - The listener to remove.

setHighlightColor

public void setHighlightColor(java.awt.Color color)
Set the highlight color for this component.

Parameters:
color - The new highlight color.

getHighlightColor

public java.awt.Color getHighlightColor()
Get the highlight color for this component.

Returns:
The current highlight color.