EN · DE · RU · FR · ES

#2776: AbstractFullCalendar.java

projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/AbstractFullCalendar.java Componente Wicket abstracto (Base FullCalendar) · projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/AbstractFullCalendar.java 118 líneas · 65 código · 34 comentarios · 19 en blanco
La clase base abstracta para el componente Wicket FullCalendar, responsable de la contribución al encabezado (carga de dependencias CSS/JS) y la serialización JSON de tipos de fecha Joda-Time. Esta clase sirve como fundamento para FullCalendar (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.

Arquitectura

Contribución al encabezado

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.

Estrategia de serialización JSON

Dos clases estáticas internas extienden StdSerializer de Jackson para manejar tipos Joda-Time que Jackson no soporta de forma nativa:

Estos 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.

Jerarquía de clases

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.

Historial Git

CommitQué cambió
868d6abb7 hasta ceb63e8a1Seis 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.