AbstractFullCalendar.javaFullCalendar (archivo #2787), separando la infraestructura de renderizado del comportamiento del componente. Registra los CSS, JavaScript (versiones minificadas o de desarrollo) y un script de extensión personalizado de FullCalendar necesarios, y proporciona serializadores Jackson personalizados que convierten DateTime al formato ISO-8601 y LocalTime al formato de 12 horas (h:mmaa) para su incrustación en JSON.El método renderHead(IHeaderResponse) contribuye con cuatro recursos en orden: jQuery (a través de la referencia jQuery Ajax integrada de Wicket), CSS de FullCalendar, JS de FullCalendar (usando la versión minificada en modo de despliegue, versión de desarrollo en caso contrario para facilitar la depuración) y un script de extensión personalizado (fullcalendar.ext.js) que añade métodos FullCalendar específicos de Wicket. La verificación del modo de despliegue (getApplication().usesDeploymentConfig()) sigue el patrón estándar de Wicket para alternar entre activos optimizados y depurables.
Dos clases estáticas internas extienden StdSerializer de Jackson para manejar tipos Joda-Time que Jackson no soporta de forma nativa:
DateTimeSerializer — formatea usando ISODateTimeFormat.dateTime() de Joda, que produce cadenas ISO-8601 estándar como 2024-03-15T14:30:00.000+01:00LocalTimeSerializer — formatea usando el patrón h:mmaa de Joda, produciendo cadenas como 2:30PM — este es el formato que el cliente JavaScript de FullCalendar espera para las opciones de configuración relacionadas con la horaEstos serializadores se registran con la clase de utilidad JSON de ProjectForge (ToStringUtil) y son utilizados por la serialización de Config en el método renderHead de FullCalendar.
AbstractFullCalendar extends MarkupContainer implements IHeaderContributor. Extender MarkupContainer (en lugar de un componente Wicket más específico) brinda flexibilidad para adjuntar comportamientos y paneles hijos, mientras contribuye a la sección <head> de la página. La clase concreta FullCalendar añade cableado de callbacks y gestión de eventos sobre esta base.
| Commit | Qué cambió |
|---|---|
868d6abb7 hasta ceb63e8a1 | Seis actualizaciones anuales del encabezado de derechos de autor. La contribución al encabezado del componente y la lógica de serialización se han mantenido estables a través de todas las actualizaciones de Wicket — el patrón de carga de recursos de la biblioteca JavaScript FullCalendar y los requisitos de serialización Joda-Time no han cambiado. |