MDateSelector

mseries.Calendar
Class CalendarPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by mseries.Calendar.CalendarPanel
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable

public class CalendarPanel
extends JComponent

This is the component that forms the Calendar Grid. The pluggable look and feel demands a separate UI Delegate, an implementation is provided in the laf package. The actual class is determined dynamically by the actual look and feel used. This class therefore is the controller in the MVC model for the calenar grid. It implements TableModelListener because the Model is a TableModel. (the first generation of MDateSelector had the calendar grid as a JTable)

Author:
M Newstead
See Also:
Serialized Form

Nested Class Summary
 
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
protected  Color[] background
           
 Dimension cellSize
          The size of one cell in the calendar grid
static int DAYS
          The number of cells across the calendar
 Point firstCell
          The cell containing the first day of the month
protected  Color[] foreground
           
 Point lastCell
          The cell containing the last day of the month
 int month
          The month that the calendar is displaying
protected  Color outOfRangeBG
           
protected  Color outOfRangeFG
           
protected  Color todayBG
           
protected  Color todayFG
           
static int WEEKS
          The number of rows in the calendar
 
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
CalendarPanel()
           
 
Method Summary
 void addGridSelectionListener(GridSelectionListener l)
           
 Color getBackground(int day)
           
 Color getBackground(int w, int d)
           
 Dimension getCellSize()
          Gets the cell size
 int getDOW(int row, int col)
          Gets the day of the week for the cell passed in
 Color getForeground(int day)
           
 Color getForeground(int w, int d)
           
 int getLegendFor(int row, int col)
          Gets the text (number) of the cell passed in
 Color getOutOfRangeBackground()
           
 Point getSelectedCell()
           
 String getUIClassID()
          This method gives the UI Manager a constant to use to look up in the UI Defaults table to find the class name of the UI Delegate for the installed L&F.
 boolean hasImage()
           
 boolean isFocusable()
           
 boolean isInMonth(int row, int col)
          Returns true if the point passed in is in the month that the Calendar is currently is displaying.
 boolean isInRange(int row, int col)
           
 boolean isManagingFocus()
          The component manages the focus by TABBING across cells
 void notifyListeners()
           
 void notifyListeners(GridSelectionEvent event)
           
protected  ComponentUI registerUIDelegate()
           
 void removeGridSelectionListener(GridSelectionListener l)
           
 void setBackground(Color[] colors)
          Sets the all the background colors for each day element 0 - SUNDAY, 6 - SATURDAY
 void setBackground(int day, Color color)
          Sets the background color for the column representing the day given.
 void setCellSize(Dimension cellSize)
          Sets the size of one cell in the calendar panel
 void setCurrentDate(Point pnt)
          Makes the point passed the current point in the calendar
 void setFirstCell(Point cell)
          Sets the passed cell as the one displaying the first day of the month (used by L&F)
 void setForeground(Color[] colors)
          Sets the all the foreground colors for each day element 0 - SUNDAY, 6 - SATURDAY
 void setForeground(int day, Color color)
          Sets the foreground color for the column representing the day given.
 void setHasImage(boolean hasImage)
           
 void setLastCell(Point cell)
          Sets the passed cell as the one displaying the last day of the month (used by L&F)
 void setModel(MMonth model)
           
 void setOutOfRangeBackground(Color outOfRangeBG)
           
 void setOutOfRangeForeground(Color colour)
          Sets the foreground colour of out of range dates
 void setSelectedCell(int x, int y)
          Makes the point passed the current point in the calendar
 void setSelectedCell(Point cell)
          Makes the point passed the current point in the calendar
protected  void setSpecialModel(SpecialDayModel sdm)
           
 void setTodayBackground(Color colour)
          Sets the background colour of the current date
 void setTodayForeground(Color colour)
          Sets the foreground colour of the current date
 void tableChanged()
          Recieves changes from the data model
 void updateUI()
           
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, 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, 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

background

protected Color[] background

foreground

protected Color[] foreground

todayBG

protected Color todayBG

todayFG

protected Color todayFG

outOfRangeFG

protected Color outOfRangeFG

outOfRangeBG

protected Color outOfRangeBG

month

public int month
The month that the calendar is displaying


firstCell

public Point firstCell
The cell containing the first day of the month


lastCell

public Point lastCell
The cell containing the last day of the month


DAYS

public static int DAYS
The number of cells across the calendar


WEEKS

public static int WEEKS
The number of rows in the calendar


cellSize

public Dimension cellSize
The size of one cell in the calendar grid

Constructor Detail

CalendarPanel

public CalendarPanel()
Method Detail

updateUI

public void updateUI()
Overrides:
updateUI in class JComponent

registerUIDelegate

protected ComponentUI registerUIDelegate()

isManagingFocus

public boolean isManagingFocus()
The component manages the focus by TABBING across cells

Overrides:
isManagingFocus in class JComponent

isInMonth

public boolean isInMonth(int row,
                         int col)
Returns true if the point passed in is in the month that the Calendar is currently is displaying. [The user could click on a cell that is at the end of the preceeding month or start of the next month]

Parameters:
row - the row
col - the column
Returns:
true if the point is in the month

isInRange

public boolean isInRange(int row,
                         int col)

getLegendFor

public int getLegendFor(int row,
                        int col)
Gets the text (number) of the cell passed in

Parameters:
row - the row
col - the column
Returns:
the number of the cell

getDOW

public int getDOW(int row,
                  int col)
Gets the day of the week for the cell passed in

Parameters:
row - the row
col - the column
Returns:
the day of the week as a java.util.Calendar constant

setSpecialModel

protected void setSpecialModel(SpecialDayModel sdm)

setModel

public void setModel(MMonth model)

tableChanged

public void tableChanged()
Recieves changes from the data model


setCurrentDate

public void setCurrentDate(Point pnt)
Makes the point passed the current point in the calendar

Parameters:
pnt - the point to make the selected date

setSelectedCell

public void setSelectedCell(Point cell)
Makes the point passed the current point in the calendar

Parameters:
cell - the point to make the selected date

setSelectedCell

public void setSelectedCell(int x,
                            int y)
Makes the point passed the current point in the calendar

Parameters:
x - the column
y - the row

setLastCell

public void setLastCell(Point cell)
Sets the passed cell as the one displaying the last day of the month (used by L&F)

Parameters:
cell - the cell for last day of the month

setFirstCell

public void setFirstCell(Point cell)
Sets the passed cell as the one displaying the first day of the month (used by L&F)

Parameters:
cell - the cell for first day of the month

getSelectedCell

public Point getSelectedCell()

addGridSelectionListener

public void addGridSelectionListener(GridSelectionListener l)

removeGridSelectionListener

public void removeGridSelectionListener(GridSelectionListener l)

notifyListeners

public void notifyListeners()

notifyListeners

public void notifyListeners(GridSelectionEvent event)

isFocusable

public boolean isFocusable()
Overrides:
isFocusable in class Component

getUIClassID

public String getUIClassID()
This method gives the UI Manager a constant to use to look up in the UI Defaults table to find the class name of the UI Delegate for the installed L&F.

Overrides:
getUIClassID in class JComponent
Returns:
string "CalendarPanelUI"

setForeground

public void setForeground(int day,
                          Color color)
Sets the foreground color for the column representing the day given.

Parameters:
day - a number in the range 1 - 7 from SUNDAY - SATURDAY, days not set will assume the default foreground color
color - the color to set

setBackground

public void setBackground(int day,
                          Color color)
Sets the background color for the column representing the day given.

Parameters:
day - a number in the range 1 - 7 from SUNDAY - SATURDAY, days not set will assume the default background color
color - the color to set

setBackground

public void setBackground(Color[] colors)
Sets the all the background colors for each day element 0 - SUNDAY, 6 - SATURDAY

Parameters:
colors - the colors to set

setForeground

public void setForeground(Color[] colors)
Sets the all the foreground colors for each day element 0 - SUNDAY, 6 - SATURDAY

Parameters:
colors - the colors to set

setOutOfRangeForeground

public void setOutOfRangeForeground(Color colour)
Sets the foreground colour of out of range dates


getOutOfRangeBackground

public Color getOutOfRangeBackground()

setOutOfRangeBackground

public void setOutOfRangeBackground(Color outOfRangeBG)

setTodayForeground

public void setTodayForeground(Color colour)
Sets the foreground colour of the current date


setTodayBackground

public void setTodayBackground(Color colour)
Sets the background colour of the current date


getBackground

public Color getBackground(int day)
Parameters:
day - in the range 1 (SUNDAY) to 6 (SATURDAY)
Returns:
the background color for the day passed

getBackground

public Color getBackground(int w,
                           int d)
Returns:
the background of cell at column d, row w. If the specified cell represents the current date (today) the current date background colour will be returned if specified other wise the colour for the day of week is returned.

getForeground

public Color getForeground(int day)
Parameters:
day - in the range 1 (SUNDAY) to 6 (SATURDAY)
Returns:
the foreground color for the day passed

getForeground

public Color getForeground(int w,
                           int d)
Returns:
the foreground of cell at column d, row w. If the specified cell represents the current date (today) the current date foreground colour will be returned if specified other wise the colour for the day of week is returned.

setCellSize

public void setCellSize(Dimension cellSize)
Sets the size of one cell in the calendar panel

Parameters:
cellSize - the cell size

getCellSize

public Dimension getCellSize()
Gets the cell size

Returns:
the the cellSize attribute

setHasImage

public void setHasImage(boolean hasImage)

hasImage

public boolean hasImage()

MDateSelector

Copyright © 2001-2007 M Newstead. All Rights Reserved.