Package org.jdesktop.swingx.plaf.basic
Class CalendarHeaderHandler
- java.lang.Object
-
- org.jdesktop.swingx.plaf.basic.CalendarHeaderHandler
-
- Direct Known Subclasses:
BasicCalendarHeaderHandler
,SpinningCalendarHeaderHandler
public abstract class CalendarHeaderHandler extends Object
Provides and wires a component appropriate as a calendar navigation header. The design idea is to support a pluggable header for a zoomable (PENDING JW: naming!) JXMonthView. Then custom implementations can be tailored to exactly fit their needs.To install a custom implementation, register the class name of the custom header handler with the key
CalendarHeaderHandler.uiControllerID
, example:UIManager.put(CalendarHeaderHandler.uiControllerID, "com.foo.bar.MagicHeaderHandler")
PENDING JW: those icons ... who's responsible? Shouldn't we use any of the default arrows as defined in the laf anyway (are there any?)
Note: this is work-in-progress, be prepared to change if subclassing for custom requirements!
- Author:
- Jeanette Winzenburg
-
-
Field Summary
Fields Modifier and Type Field Description protected Icon
monthDownImage
protected Icon
monthUpImage
protected JXMonthView
monthView
static String
uiControllerID
-
Constructor Summary
Constructors Constructor Description CalendarHeaderHandler()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
componentOrientationChanged()
Synchronizes internal state which depends on the month view's componentOrientation.protected abstract JComponent
createCalendarHeader()
Creates and returns the component used as header in a zoomable monthView.protected Font
createDerivedFont()
Create a derived font used to when painting various pieces of the month view component.protected void
fontChanged()
Synchronizes internal state which depends on the month view's font.JComponent
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
installNavigationActions()
Installs and configures navigational actions.protected void
monthStringBackgroundChanged()
Synchronizes internal state which depends on the month view's monthStringBackground.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.
-
-
-
Field Detail
-
uiControllerID
public static final String uiControllerID
- See Also:
- Constant Field Values
-
monthView
protected JXMonthView monthView
-
monthDownImage
protected Icon monthDownImage
-
monthUpImage
protected Icon monthUpImage
-
-
Method Detail
-
install
public void install(JXMonthView monthView)
Installs this handler to the given month view.- Parameters:
monthView
- the target month view to install to.
-
uninstall
public void uninstall(JXMonthView monthView)
Uninstalls this handler from the given target month view.- Parameters:
monthView
- the target month view to install from.
-
getHeaderComponent
public JComponent getHeaderComponent()
Returns a component to be used as header in a zoomable month view, guaranteed to be not null.- Returns:
- a component to be used as header in a zoomable JXMonthView
-
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.
-
uninstallListeners
protected void uninstallListeners()
Unregisters listeners which had been installed to the monthView.
-
monthStringBackgroundChanged
protected void monthStringBackgroundChanged()
Synchronizes internal state which depends on the month view's monthStringBackground.
-
fontChanged
protected void fontChanged()
Synchronizes internal state which depends on the month view's font.
-
componentOrientationChanged
protected void componentOrientationChanged()
Synchronizes internal state which depends on the month view's componentOrientation. This implementation updates the month navigation icons and the header component's orientation.
-
createCalendarHeader
protected abstract JComponent createCalendarHeader()
Creates and returns the component used as header in a zoomable monthView.- Returns:
- the component used as header in a zoomable monthView, guaranteed to be not null.
-
installNavigationActions
protected void installNavigationActions()
Installs and configures navigational actions.This implementation creates and installs wrappers around the scrollToPrevious/-NextMonth actions installed by the ui and configures them with the appropriate next/previous icons.
-
createDerivedFont
protected Font createDerivedFont()
Create a derived font used to when painting various pieces of the month view component. This method will be called whenever the font on the component is set so a new derived font can be created.
-
-