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 classSpinningCalendarHeaderHandler.SpinningCalendarHeaderThe custom header component controlled and configured by this handler.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringARROWS_SURROUND_MONTHKey for use in UIManager to control the position of the nextMonth arrow.static java.lang.StringFOCUSABLE_SPINNER_TEXTKey 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.SpinningCalendarHeadercreateCalendarHeader()Creates and returns the component used as header in a zoomable monthView.protected voidfirstDisplayedDayChanged()Updates internal state to monthView's firstDisplayedDay.SpinningCalendarHeaderHandler.SpinningCalendarHeadergetHeaderComponent()Returns a component to be used as header in a zoomable month view, guaranteed to be not null.voidinstall(JXMonthView monthView)Installs this handler to the given month view.protected voidinstallListeners()Creates and registered listeners on the monthView as appropriate.protected voidlocaleChanged()Updates internal state to monthView's locale.voiduninstall(JXMonthView monthView)Uninstalls this handler from the given target month view.protected voiduninstallListeners()Unregisters listeners which had been installed to the monthView.protected voidupdateFormatters()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 java.lang.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 java.lang.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:
installin 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:
uninstallin 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:
getHeaderComponentin 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:
createCalendarHeaderin 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:
installListenersin classCalendarHeaderHandler
-
uninstallListeners
protected void uninstallListeners()
Unregisters listeners which had been installed to the monthView.- Overrides:
uninstallListenersin 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.
-
-