Package org.jdesktop.swingx.plaf.basic
Class SpinningCalendarHeaderHandler
- java.lang.Object
-
- org.jdesktop.swingx.plaf.basic.CalendarHeaderHandler
-
- org.jdesktop.swingx.plaf.basic.SpinningCalendarHeaderHandler
-
public class SpinningCalendarHeaderHandler extends CalendarHeaderHandler
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
.
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?UIManager.put(CalendarHeaderHandler.uiControllerID, "org.jdesktop.swingx.plaf.basic.SpinningCalendarHeaderHandler");
- 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
SpinningCalendarHeaderHandler.SpinningCalendarHeader
The custom header component controlled and configured by this handler.
-
Field Summary
Fields Modifier and Type Field Description static String
ARROWS_SURROUND_MONTH
Key for use in UIManager to control the position of the nextMonth arrow.static String
FOCUSABLE_SPINNER_TEXT
Key for use in UIManager to control the focusable property of the year spinner.-
Fields inherited from class org.jdesktop.swingx.plaf.basic.CalendarHeaderHandler
monthDownImage, monthUpImage, monthView, uiControllerID
-
-
Constructor Summary
Constructors Constructor Description SpinningCalendarHeaderHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected SpinningCalendarHeaderHandler.SpinningCalendarHeader
createCalendarHeader()
Creates and returns the component used as header in a zoomable monthView.protected void
firstDisplayedDayChanged()
Updates internal state to monthView's firstDisplayedDay.SpinningCalendarHeaderHandler.SpinningCalendarHeader
getHeaderComponent()
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
installListeners()
Creates and registered listeners on the monthView as appropriate.protected void
localeChanged()
Updates internal state to monthView's locale.void
uninstall(JXMonthView monthView)
Uninstalls this handler from the given target month view.protected void
uninstallListeners()
Unregisters listeners which had been installed to the monthView.protected void
updateFormatters()
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 Detail
-
ARROWS_SURROUND_MONTH
public static final String ARROWS_SURROUND_MONTH
Key for use in UIManager to control the position of the nextMonth arrow.- See Also:
- Constant Field Values
-
FOCUSABLE_SPINNER_TEXT
public static final String FOCUSABLE_SPINNER_TEXT
Key for use in UIManager to control the focusable property of the year spinner.- See Also:
- Constant Field Values
-
-
Method Detail
-
install
public void install(JXMonthView monthView)
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
public void uninstall(JXMonthView monthView)
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
public SpinningCalendarHeaderHandler.SpinningCalendarHeader 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
protected SpinningCalendarHeaderHandler.SpinningCalendarHeader 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.
-
-