org.beanfabrics.swing.goodies.calendar
Class MonthPanel

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 org.beanfabrics.swing.goodies.calendar.MonthPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class MonthPanel
extends javax.swing.JPanel

See Also:
Serialized Form

Nested Class Summary
static class MonthPanel.Configuration
           
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
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
static java.lang.String SELECTEDDATE_PROPERTYNAME
           
 
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
MonthPanel()
          Creates a new instance of MonthPanel displaying the current month using the default locale.
MonthPanel(javax.swing.ButtonGroup buttonGroup)
          Creates a new instance of MonthPanel displaying the current month using the default locale.
MonthPanel(java.util.Date date, java.util.Locale locale)
          Creates a new instance of MonthPanel displaying the given month and using the given locale.
MonthPanel(java.util.Date date, java.util.Locale locale, javax.swing.ButtonGroup buttonGroup)
          Creates a new instance of MonthPanel displaying the given month and using the given locale.
 
Method Summary
 void addActionListener(java.awt.event.ActionListener l)
          Adds the given action listnener to this component.
protected  void fireActionPerformed(java.awt.event.ActionEvent e)
          Fires the given action event to all listeners that are added to this component.
protected  java.lang.String formatDate(java.util.Date date)
          Returns the formatted string of the given date, using the internal DateFormat as it was passed to the constructor of this class.
 javax.swing.ButtonGroup getButtonGroup()
          Returns the button group.
protected  int[][] getDatesForButtons(java.util.Calendar month)
          Returns an two dimensional array of int, each containing the date of the given months day as they will appear on the toggle buttons on the calendar panel.
protected  java.lang.String[] getDayNames()
          Returns the human readable shortages for the week days beginning with the weeks first day at index 0.
 java.util.Date getMonth()
          Returns the visible month's date.
 java.util.Date getSelectedDate()
          Returns the selected date as an Date instance.
 void initGui()
          Builds or Rebuilds the graphical user interface of the calendar.
protected  boolean isWeekend(int dayOfMonth)
           
 void rebuildGui()
          Rebuilds the GUI.
protected  void refresh()
          Displays the currently set month on the calendar panel.
 void removeActionListener(java.awt.event.ActionListener l)
          Removes the given action listener from this component.
 void rollOneMonthBack()
          Rolls the calendar one month backwards and displays the new month.
 void rollOneMonthForward()
          Rolls the calendar one month forward and displays the new month.
 void setButtonGroup(javax.swing.ButtonGroup group)
          Adds all 'day' buttons to the given button group.
 void setConfiguration(MonthPanel.Configuration config)
          Sets the graphical configuration of this panel
 void setDates(java.util.Date month, java.util.Date selectedDate)
          Sets the displayed month and the selected date.
 void setLeftUpperCornerComponent(javax.swing.JComponent comp)
          Sets the component to be displayed in the left upper corner of this panel
 void setMonth(java.util.Calendar month)
          Sets the given month to display on the panel.
 void setMonth(java.util.Date month)
          Sets the given month to display on the panel.
 void setRightUpperCornerComponent(javax.swing.JComponent comp)
          Sets the component to be displayed in the right upper corner of this panel
 void setSelectedDate(java.util.Date date)
          Selects the given date and displays the month containing that date.
 void setSelectedDate(java.util.Date date, boolean rollToMonth)
          Selects the given date and displays the month containing that date.
 void setSelectedDay(int dayInMonth)
          Sets the selected day of the visible month.
 
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, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, 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, 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, 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, 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, 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

SELECTEDDATE_PROPERTYNAME

public static final java.lang.String SELECTEDDATE_PROPERTYNAME
See Also:
Constant Field Values
Constructor Detail

MonthPanel

public MonthPanel()
Creates a new instance of MonthPanel displaying the current month using the default locale.


MonthPanel

public MonthPanel(java.util.Date date,
                  java.util.Locale locale)
Creates a new instance of MonthPanel displaying the given month and using the given locale.

Parameters:
date - the date that initially should be selected
locale - the locale that should be used for the calendar

MonthPanel

public MonthPanel(javax.swing.ButtonGroup buttonGroup)
Creates a new instance of MonthPanel displaying the current month using the default locale.


MonthPanel

public MonthPanel(java.util.Date date,
                  java.util.Locale locale,
                  javax.swing.ButtonGroup buttonGroup)
Creates a new instance of MonthPanel displaying the given month and using the given locale.

Parameters:
date - the date that initially should be selected
locale - the locale that should be used for the calendar
buttonGroup - ButtonGroup
Method Detail

getButtonGroup

public javax.swing.ButtonGroup getButtonGroup()
Returns the button group.

Returns:
ButtonGroup

setButtonGroup

public void setButtonGroup(javax.swing.ButtonGroup group)
Adds all 'day' buttons to the given button group.

Parameters:
group - ButtonGroup

setConfiguration

public void setConfiguration(MonthPanel.Configuration config)
Sets the graphical configuration of this panel

Parameters:
config - Configuration

setLeftUpperCornerComponent

public void setLeftUpperCornerComponent(javax.swing.JComponent comp)
Sets the component to be displayed in the left upper corner of this panel

Parameters:
comp - JComponent

setRightUpperCornerComponent

public void setRightUpperCornerComponent(javax.swing.JComponent comp)
Sets the component to be displayed in the right upper corner of this panel

Parameters:
comp - JComponent

initGui

public void initGui()
Builds or Rebuilds the graphical user interface of the calendar. This method is called by the constructor or whenever properties like font colors or font sizes are changed.


rollOneMonthForward

public void rollOneMonthForward()
Rolls the calendar one month forward and displays the new month.


rollOneMonthBack

public void rollOneMonthBack()
Rolls the calendar one month backwards and displays the new month.


setSelectedDay

public void setSelectedDay(int dayInMonth)
Sets the selected day of the visible month.

Parameters:
dayInMonth - int

setSelectedDate

public void setSelectedDate(java.util.Date date)
Selects the given date and displays the month containing that date.

Parameters:
date - the date to select

setDates

public void setDates(java.util.Date month,
                     java.util.Date selectedDate)
Sets the displayed month and the selected date.

Parameters:
month - the month to show
selectedDate - the date to select

setSelectedDate

public void setSelectedDate(java.util.Date date,
                            boolean rollToMonth)
Selects the given date and displays the month containing that date.

Parameters:
date - the date to select
rollToMonth - boolean if true the panel scrolls to the respective month

getSelectedDate

public java.util.Date getSelectedDate()
Returns the selected date as an Date instance.

Returns:
the selected date

getMonth

public java.util.Date getMonth()
Returns the visible month's date.

Returns:
Date

setMonth

public void setMonth(java.util.Date month)
Sets the given month to display on the panel.

Parameters:
month - Date

setMonth

public void setMonth(java.util.Calendar month)
Sets the given month to display on the panel.

Parameters:
month - the month to display

refresh

protected void refresh()
Displays the currently set month on the calendar panel.


getDayNames

protected java.lang.String[] getDayNames()
Returns the human readable shortages for the week days beginning with the weeks first day at index 0.

Returns:
an array of String containing the short names of the days of the week

isWeekend

protected boolean isWeekend(int dayOfMonth)

rebuildGui

public void rebuildGui()
Rebuilds the GUI.


getDatesForButtons

protected int[][] getDatesForButtons(java.util.Calendar month)
Returns an two dimensional array of int, each containing the date of the given months day as they will appear on the toggle buttons on the calendar panel.

Parameters:
month - the month the array should be calculated for
Returns:
an array of the dates of the days of the given month

formatDate

protected java.lang.String formatDate(java.util.Date date)
Returns the formatted string of the given date, using the internal DateFormat as it was passed to the constructor of this class. This method is called by the routine that displays the title of the currently displayed month.

Parameters:
date - the dat to format
Returns:
the fromatted string

removeActionListener

public void removeActionListener(java.awt.event.ActionListener l)
Removes the given action listener from this component.


addActionListener

public void addActionListener(java.awt.event.ActionListener l)
Adds the given action listnener to this component. All action listeners will be informed about changes that are made to the selected date of this calendar.

Parameters:
l - the listener to add to this component

fireActionPerformed

protected void fireActionPerformed(java.awt.event.ActionEvent e)
Fires the given action event to all listeners that are added to this component.

Parameters:
e - the event to fire