Package org.jdesktop.swingx.plaf.basic
Class SpinningCalendarHeaderHandler
java.lang.Object
org.jdesktop.swingx.plaf.basic.CalendarHeaderHandler
org.jdesktop.swingx.plaf.basic.SpinningCalendarHeaderHandler
Custom CalendarHeaderHandler which supports year-wise navigation.
The custom component used as header component of this implementation contains month-navigation buttons, a label with localized month text and a spinner for .. well ... spinning the years. There is minimal configuration control via the UIManager:
- control the position of the nextMonth button: the default is at the
trailing edge of the header. Option is to insert it directly after the month
text, to enable set a Boolean.TRUE as value for key
ARROWS_SURROUNDS_MONTH
. - control the focusability of the spinner's text field: the default is
false. To enable set a Boolean.TRUE as value for key
FOCUSABLE_SPINNER_TEXT
.
UIManager.put(CalendarHeaderHandler.uiControllerID,
"org.jdesktop.swingx.plaf.basic.SpinningCalendarHeaderHandler");
PENDING JW: implement and bind actions for keyboard navigation. These are
potentially different from navigation by mouse: need to move the selection
along with the scrolling?-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static class
The custom header component controlled and configured by this handler. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Key for use in UIManager to control the position of the nextMonth arrow.static final String
Key for use in UIManager to control the focusable property of the year spinner.Fields inherited from class org.jdesktop.swingx.plaf.basic.CalendarHeaderHandler
monthDown, monthUp, monthView, uiControllerID
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionCreates and returns the component used as header in a zoomable monthView.protected void
Updates internal state to monthView's firstDisplayedDay.Returns a component to be used as header in a zoomable month view, guaranteed to be not null.void
install
(JXMonthView monthView) Installs this handler to the given month view.protected void
Creates and registered listeners on the monthView as appropriate.protected void
Updates internal state to monthView's locale.void
uninstall
(JXMonthView monthView) Uninstalls this handler from the given target month view.protected void
Unregisters listeners which had been installed to the monthView.protected void
Updates the formatter of the month text to the JXMonthView's Locale.Methods inherited from class org.jdesktop.swingx.plaf.basic.CalendarHeaderHandler
componentOrientationChanged, createDerivedFont, fontChanged, installNavigationActions, monthStringBackgroundChanged
-
Field Details
-
ARROWS_SURROUND_MONTH
Key for use in UIManager to control the position of the nextMonth arrow.- See Also:
-
FOCUSABLE_SPINNER_TEXT
Key for use in UIManager to control the focusable property of the year spinner.- See Also:
-
-
Constructor Details
-
SpinningCalendarHeaderHandler
public SpinningCalendarHeaderHandler()
-
-
Method Details
-
install
Installs this handler to the given month view.Overridden to configure header specifics component after calling super.
- Overrides:
install
in classCalendarHeaderHandler
- Parameters:
monthView
- the target month view to install to.
-
uninstall
Uninstalls this handler from the given target month view.Overridden to cleanup the specifics before calling super.
- Overrides:
uninstall
in classCalendarHeaderHandler
- Parameters:
monthView
- the target month view to install from.
-
getHeaderComponent
Returns a component to be used as header in a zoomable month view, guaranteed to be not null.Convenience override to the type created.
- Overrides:
getHeaderComponent
in classCalendarHeaderHandler
- Returns:
- a component to be used as header in a zoomable JXMonthView
-
createCalendarHeader
Creates and returns the component used as header in a zoomable monthView.Implemented to create and configure the custom header component.
- Specified by:
createCalendarHeader
in classCalendarHeaderHandler
- Returns:
- the component used as header in a zoomable monthView, guaranteed to be not null.
-
installListeners
protected void installListeners()Creates and registered listeners on the monthView as appropriate. This implementation registers a PropertyChangeListener which synchronizes internal state on changes of componentOrientation, font and monthStringBackground.- Overrides:
installListeners
in classCalendarHeaderHandler
-
uninstallListeners
protected void uninstallListeners()Unregisters listeners which had been installed to the monthView.- Overrides:
uninstallListeners
in classCalendarHeaderHandler
-
updateFormatters
protected void updateFormatters()Updates the formatter of the month text to the JXMonthView's Locale. -
firstDisplayedDayChanged
protected void firstDisplayedDayChanged()Updates internal state to monthView's firstDisplayedDay. -
localeChanged
protected void localeChanged()Updates internal state to monthView's locale.
-