class BasicCalendarRenderingHandler extends Object implements CalendarRenderingHandler
Note: exposing the createXXStringValue methods is an emergency workaround for Issue #1062-swingx (core doesn't use arabic digits where appropriate) to allow subclasses to do better than core. So beware of future changes!
Modifier and Type | Field and Description |
---|---|
private CalendarAdapter |
calendarAdapter |
private CalendarCellContext |
cellContext
The CellContext for content and default visual config.
|
private CompoundHighlighter |
highlighter |
private Map<CalendarState,ComponentProvider<?>> |
providers
The providers to use per DayState.
|
private TextCrossingPainter<?> |
textCross
The Painter used for highlighting unselectable dates.
|
private Color |
unselectableDayForeground
The foreground color for unselectable date highlight.
|
Constructor and Description |
---|
BasicCalendarRenderingHandler()
Instantiates a RenderingHandler and installs default state.
|
Modifier and Type | Method and Description |
---|---|
protected StringValue |
createDayStringValue(Locale locale)
Creates and returns a StringValue used for rendering days in a month.
|
protected StringValue |
createMonthHeaderStringValue(Locale locale)
Creates and returns a StringValue used for rendering the title of a month box.
|
protected StringValue |
createWeekOfYearStringValue(Locale locale)
Creates and returns a StringValue used for rendering the week of year.
|
private CalendarAdapter |
getCalendarAdapter(JXMonthView monthView,
Calendar calendar,
CalendarState dayState) |
private Font |
getDerivedFont(Font font) |
private Highlighter |
getHighlighter() |
private JComponent |
highlight(JComponent comp,
JXMonthView monthView,
Calendar calendar,
CalendarState dayState)
NOTE: it's the responsibility of the CalendarCellContext to detangle
all "default" (that is: which could be queried from the comp and/or UIManager)
foreground/background colors based on the given state!
|
private void |
install() |
private void |
installHighlighters() |
private void |
installProviders()
Creates and stores ComponentProviders for all DayStates.
|
private boolean |
isFocused(JXMonthView monthView,
Calendar calendar,
CalendarState dayState) |
private boolean |
isSelectable(CalendarState dayState) |
private boolean |
isSelected(JXMonthView monthView,
Calendar calendar,
CalendarState dayState) |
JComponent |
prepareRenderingComponent(JXMonthView monthView,
Calendar calendar,
CalendarState dayState)
Configures and returns a component for rendering of the given monthView cell.
|
void |
setLocale(Locale locale)
Updates internal state to the given Locale.
|
private CalendarCellContext cellContext
private Map<CalendarState,ComponentProvider<?>> providers
private TextCrossingPainter<?> textCross
private Color unselectableDayForeground
private CalendarAdapter calendarAdapter
private CompoundHighlighter highlighter
public BasicCalendarRenderingHandler()
private void install()
private void installProviders()
protected StringValue createMonthHeaderStringValue(Locale locale)
locale
- the Locale to use, might be null to indicate usage of the default
Localeprotected StringValue createWeekOfYearStringValue(Locale locale)
locale
- the Locale to use, might be null to indicate usage of the default
Localeprotected StringValue createDayStringValue(Locale locale)
locale
- the Locale to use, might be null to indicate usage of the default
Localepublic void setLocale(Locale locale)
setLocale
in interface CalendarRenderingHandler
locale
- the new Locale.public JComponent prepareRenderingComponent(JXMonthView monthView, Calendar calendar, CalendarState dayState)
prepareRenderingComponent
in interface CalendarRenderingHandler
monthView
- the JXMonthView to render ontocalendar
- the cell valuedayState
- the DayState of the cellprivate JComponent highlight(JComponent comp, JXMonthView monthView, Calendar calendar, CalendarState dayState)
PENDING JW: replace hard-coded logic by giving over to highlighters.
monthView
- the JXMonthView to render ontocalendar
- the cell valuedayState
- the DayState of the celldayState
- private Highlighter getHighlighter()
private void installHighlighters()
private CalendarAdapter getCalendarAdapter(JXMonthView monthView, Calendar calendar, CalendarState dayState)
monthView
- calendar
- dayState
- private Font getDerivedFont(Font font)
font
- private boolean isFocused(JXMonthView monthView, Calendar calendar, CalendarState dayState)
monthView
- calendar
- dayState
- private boolean isSelected(JXMonthView monthView, Calendar calendar, CalendarState dayState)
monthView
- the JXMonthView to render ontocalendar
- the cell valuedayState
- the DayState of the cellprivate boolean isSelectable(CalendarState dayState)
dayState
- WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses