com.alee.extended.date
Class WebDateField

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.text.JTextComponent
                  extended by javax.swing.JTextField
                      extended by javax.swing.JFormattedTextField
                          extended by com.alee.laf.text.WebFormattedTextField
                              extended by com.alee.extended.date.WebDateField
All Implemented Interfaces:
LanguageMethods, SettingsMethods, ShapeProvider, FontMethods<WebFormattedTextField>, SizeMethods<WebFormattedTextField>, SwingMethods, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.Scrollable, javax.swing.SwingConstants

public class WebDateField
extends WebFormattedTextField
implements ShapeProvider, SettingsMethods, SizeMethods<WebFormattedTextField>

This is a custom component that allows date selection.

Author:
Mikle Garin
See Also:
WebCalendar, Serialized Form

Nested Class Summary
protected static class WebDateField.UpdateSource
          This enumeration represents the type of source that caused view update.
 
Nested classes/interfaces inherited from class javax.swing.JFormattedTextField
javax.swing.JFormattedTextField.AbstractFormatter, javax.swing.JFormattedTextField.AbstractFormatterFactory
 
Nested classes/interfaces inherited from class javax.swing.JTextField
javax.swing.JTextField.AccessibleJTextField
 
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.DropLocation, javax.swing.text.JTextComponent.KeyBinding
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  WebCalendar calendar
           
protected  java.util.Date date
          Currently selected date.
protected  java.text.SimpleDateFormat dateFormat
          Date display format.
protected  DateSelectionListener dateSelectionListener
           
protected  java.util.List<DateSelectionListener> dateSelectionListeners
          Date selection listeners.
protected  WebWindow popup
           
protected  WebButton popupButton
          UI components.
static javax.swing.ImageIcon selectDateIcon
          Used icons.
 
Fields inherited from class javax.swing.JFormattedTextField
COMMIT, COMMIT_OR_REVERT, PERSIST, REVERT
 
Fields inherited from class javax.swing.JTextField
notifyAction
 
Fields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
 
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 javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
WebDateField()
          Constructs new date field.
WebDateField(boolean drawBorder)
          Constructs new date field.
WebDateField(java.util.Date date)
          Constructs new date field with the specified selected date.
WebDateField(java.util.Date date, boolean drawBorder)
          Constructs new date field with the specified selected date.
 
Method Summary
 void addDateSelectionListener(DateSelectionListener listener)
          Adds date selection listener.
protected  void customizePopup(WebWindow popup)
           
 void fireDateSelected(java.util.Date date)
          Notifies about date selection change.
 java.util.Date getDate()
          Returns currently selected date.
 java.text.SimpleDateFormat getDateFormat()
          Returns date format.
protected  java.util.Date getDateFromField()
          Returns date specified in text field.
 int getMinimumHeight()
          Returns component minimum height.
 int getMinimumWidth()
          Returns component minimum width.
 int getPreferredHeight()
          Returns component preferred height.
 java.awt.Dimension getPreferredSize()
          Returns component preferred size.
 int getPreferredWidth()
          Returns component preferred width.
protected  java.lang.String getTextDate()
          Returns text date representation according to date format.
protected  void hideCalendarPopup()
          Hides calendar popup.
 void removeDateSelectionListener(DateSelectionListener listener)
          Removes date selection listener.
 void setDate(java.util.Date date)
          Sets currently selected date.
 void setDateFormat(java.text.SimpleDateFormat dateFormat)
          Sets date format.
protected  void setDateFromCalendar()
          Updates date using the value from calendar.
protected  void setDateFromField()
          Updates date using the value from field.
protected  void setDateImpl(java.util.Date date, WebDateField.UpdateSource source)
          Sets currently selected date and updates component depending on update source.
 void setDrawBorder(boolean drawBorder)
          
 void setEnabled(boolean enabled)
          
 WebDateField setMinimumHeight(int minimumHeight)
          Sets component minimum height.
 WebDateField setMinimumWidth(int minimumWidth)
          Sets component minimum width.
 WebDateField setPreferredHeight(int preferredHeight)
          Sets component preferred height.
 WebDateField setPreferredWidth(int preferredWidth)
          Sets component preferred width.
 void setRound(int round)
          
protected  void showCalendarPopup()
          Displays calendar popup.
protected  void updateCalendarFromDate(java.util.Date date)
          Updates date displayed in calendar.
protected  void updateFieldFromDate()
          Updates text field with currently selected date.
protected  void updateMargin()
          Updates field margin.
protected  void updatePopupLocation()
          Updates calendar popup location.
 
Methods inherited from class com.alee.laf.text.WebFormattedTextField
changeFontSize, clear, getFieldMargin, getFontName, getFontSize, getInputPrompt, getInputPromptFont, getInputPromptForeground, getInputPromptPosition, getLeadingComponent, getPainter, getRound, getShadeWidth, getTrailingComponent, getWebUI, isBoldFont, isDrawBackground, isDrawBorder, isDrawFocus, isDrawShade, isHideInputPromptOnFocus, isItalicFont, isLanguageSet, isPlainFont, isWebColored, loadSettings, provideShape, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, removeLanguage, removeLanguageUpdater, saveSettings, setBoldFont, setBoldFont, setDrawBackground, setDrawFocus, setDrawShade, setFieldMargin, setFieldMargin, setFieldMargin, setFontName, setFontSize, setFontSizeAndStyle, setFontSizeAndStyle, setFontStyle, setFontStyle, setHideInputPromptOnFocus, setInputPrompt, setInputPromptFont, setInputPromptForeground, setInputPromptPosition, setItalicFont, setItalicFont, setLanguage, setLanguageUpdater, setLeadingComponent, setMargin, setMargin, setPainter, setPlainFont, setPlainFont, setShadeWidth, setTrailingComponent, setWebColored, unregisterSettings, updateLanguage, updateLanguage, updateUI
 
Methods inherited from class javax.swing.JFormattedTextField
commitEdit, getActions, getFocusLostBehavior, getFormatter, getFormatterFactory, getUIClassID, getValue, invalidEdit, isEditValid, processFocusEvent, processInputMethodEvent, setDocument, setFocusLostBehavior, setFormatter, setFormatterFactory, setValue
 
Methods inherited from class javax.swing.JTextField
actionPropertyChanged, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getScrollOffset, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setFont, setHorizontalAlignment, setScrollOffset
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, print, print, print, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, viewToModel, write
 
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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setForeground, 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, 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, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, 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
 
Methods inherited from interface com.alee.utils.laf.ShapeProvider
provideShape
 
Methods inherited from interface com.alee.managers.settings.SettingsMethods
loadSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, saveSettings, unregisterSettings
 

Field Detail

selectDateIcon

public static final javax.swing.ImageIcon selectDateIcon
Used icons.


dateSelectionListeners

protected java.util.List<DateSelectionListener> dateSelectionListeners
Date selection listeners.


dateFormat

protected java.text.SimpleDateFormat dateFormat
Date display format.


date

protected java.util.Date date
Currently selected date.


popupButton

protected WebButton popupButton
UI components.


popup

protected WebWindow popup

calendar

protected WebCalendar calendar

dateSelectionListener

protected DateSelectionListener dateSelectionListener
Constructor Detail

WebDateField

public WebDateField()
Constructs new date field.


WebDateField

public WebDateField(boolean drawBorder)
Constructs new date field.

Parameters:
drawBorder - whether should draw border or not

WebDateField

public WebDateField(java.util.Date date)
Constructs new date field with the specified selected date.

Parameters:
date - selected date

WebDateField

public WebDateField(java.util.Date date,
                    boolean drawBorder)
Constructs new date field with the specified selected date.

Parameters:
drawBorder - whether should draw border or not
date - selected date
Method Detail

setRound

public void setRound(int round)

Overrides:
setRound in class WebFormattedTextField

setDrawBorder

public void setDrawBorder(boolean drawBorder)

Overrides:
setDrawBorder in class WebFormattedTextField

updateMargin

protected void updateMargin()
Updates field margin.


showCalendarPopup

protected void showCalendarPopup()
Displays calendar popup.


customizePopup

protected void customizePopup(WebWindow popup)

hideCalendarPopup

protected void hideCalendarPopup()
Hides calendar popup.


updatePopupLocation

protected void updatePopupLocation()
Updates calendar popup location.


getDateFromField

protected java.util.Date getDateFromField()
Returns date specified in text field.

Returns:
date specified in text field

getTextDate

protected java.lang.String getTextDate()
Returns text date representation according to date format.

Returns:
text date representation according to date format

getDate

public java.util.Date getDate()
Returns currently selected date.

Returns:
currently selected date

setDate

public void setDate(java.util.Date date)
Sets currently selected date.

Parameters:
date - new selected date

setDateFromField

protected void setDateFromField()
Updates date using the value from field.


setDateFromCalendar

protected void setDateFromCalendar()
Updates date using the value from calendar.


setDateImpl

protected void setDateImpl(java.util.Date date,
                           WebDateField.UpdateSource source)
Sets currently selected date and updates component depending on update source.

Parameters:
date - new selected date

updateFieldFromDate

protected void updateFieldFromDate()
Updates text field with currently selected date.


updateCalendarFromDate

protected void updateCalendarFromDate(java.util.Date date)
Updates date displayed in calendar.

Parameters:
date - new displayed date

getDateFormat

public java.text.SimpleDateFormat getDateFormat()
Returns date format.

Returns:
date format

setDateFormat

public void setDateFormat(java.text.SimpleDateFormat dateFormat)
Sets date format.

Parameters:
dateFormat - date format

setEnabled

public void setEnabled(boolean enabled)

Overrides:
setEnabled in class javax.swing.JComponent

addDateSelectionListener

public void addDateSelectionListener(DateSelectionListener listener)
Adds date selection listener.

Parameters:
listener - date selection listener to add

removeDateSelectionListener

public void removeDateSelectionListener(DateSelectionListener listener)
Removes date selection listener.

Parameters:
listener - date selection listener to remove

fireDateSelected

public void fireDateSelected(java.util.Date date)
Notifies about date selection change.

Parameters:
date - new selected date

getPreferredWidth

public int getPreferredWidth()
Returns component preferred width.

Specified by:
getPreferredWidth in interface SizeMethods<WebFormattedTextField>
Overrides:
getPreferredWidth in class WebFormattedTextField
Returns:
component preferred width

setPreferredWidth

public WebDateField setPreferredWidth(int preferredWidth)
Sets component preferred width. Pass -1 to let component choose preferred width on its own.

Specified by:
setPreferredWidth in interface SizeMethods<WebFormattedTextField>
Overrides:
setPreferredWidth in class WebFormattedTextField
Parameters:
preferredWidth - new component preferred width
Returns:
modified component

getPreferredHeight

public int getPreferredHeight()
Returns component preferred height.

Specified by:
getPreferredHeight in interface SizeMethods<WebFormattedTextField>
Overrides:
getPreferredHeight in class WebFormattedTextField
Returns:
component preferred height

setPreferredHeight

public WebDateField setPreferredHeight(int preferredHeight)
Sets component preferred height. Pass -1 to let component choose preferred height on its own.

Specified by:
setPreferredHeight in interface SizeMethods<WebFormattedTextField>
Overrides:
setPreferredHeight in class WebFormattedTextField
Parameters:
preferredHeight - new component preferred height
Returns:
modified component

getMinimumWidth

public int getMinimumWidth()
Returns component minimum width.

Specified by:
getMinimumWidth in interface SizeMethods<WebFormattedTextField>
Overrides:
getMinimumWidth in class WebFormattedTextField
Returns:
component minimum width

setMinimumWidth

public WebDateField setMinimumWidth(int minimumWidth)
Sets component minimum width. Pass -1 to let component choose minimum width on its own.

Specified by:
setMinimumWidth in interface SizeMethods<WebFormattedTextField>
Overrides:
setMinimumWidth in class WebFormattedTextField
Parameters:
minimumWidth - new component minimum width
Returns:
modified component

getMinimumHeight

public int getMinimumHeight()
Returns component minimum height.

Specified by:
getMinimumHeight in interface SizeMethods<WebFormattedTextField>
Overrides:
getMinimumHeight in class WebFormattedTextField
Returns:
component minimum height

setMinimumHeight

public WebDateField setMinimumHeight(int minimumHeight)
Sets component minimum height. Pass -1 to let component choose minimum height on its own.

Specified by:
setMinimumHeight in interface SizeMethods<WebFormattedTextField>
Overrides:
setMinimumHeight in class WebFormattedTextField
Parameters:
minimumHeight - new component minimum height
Returns:
modified component

getPreferredSize

public java.awt.Dimension getPreferredSize()
Returns component preferred size.

Specified by:
getPreferredSize in interface SizeMethods<WebFormattedTextField>
Overrides:
getPreferredSize in class WebFormattedTextField
Returns:
component preferred size