EN · DE · RU · FR · ES

#2780: Event.java

projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/Event.java Modelo Java (Evento FullCalendar) · projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/Event.java 186 líneas · 108 código · 33 comentarios · 45 en blanco
La clase modelo canónica que representa un evento de calendario individual en la integración Wicket FullCalendar. Se asigna directamente a los campos del Objeto Evento JavaScript de FullCalendar: identificador único, título, indicador de día completo, fechas de inicio/fin (como DateTime de Joda-Time), enlace URL opcional, nombre de clase CSS, indicador de editabilidad, cuatro propiedades de color (texto, fondo, borde y un color general), y un campo opaco payload para adjuntar datos de dominio serializables arbitrarios. Cada método setter devuelve this para una construcción fluida. Este objeto se serializa a JSON mediante Jackson y se envía al cliente como parte de la respuesta de una fuente de eventos.

Arquitectura

Identidad del Evento

El campo id sirve como identificador único y es utilizado por FullCalendar para el seguimiento de eventos (persistencia de arrastrar y soltar, eliminación de eventos). Los eventos sin ID son tratados como efímeros por el cliente. El ID corresponde típicamente a una clave primaria de base de datos (por ejemplo, el ID de fila de base de datos de un evento de calendario).

Propiedades de Color

Cuatro campos de color proporcionan control visual granular: color (texto y borde), backgroundColor, borderColor y textColor. Si solo se establece color, FullCalendar lo utiliza para todos los aspectos visuales. Las propiedades separadas permiten sobrescribir aspectos específicos mientras se heredan otros. Estas son cadenas de color CSS (hex, rgb o colores nombrados).

Patrón de Carga Útil (Payload)

El campo payload (tipo Serializable) es un punto de extensión para adjuntar datos específicos de la aplicación a los eventos del calendario. Por ejemplo, un evento de calendario de ProjectForge podría llevar una referencia a la entidad de base de datos (entrada de hoja de horas, solicitud de vacaciones, hito del proyecto) que el evento representa. La carga útil recorre el viaje completo de ida y vuelta: servidor → JSON → cliente → callback → servidor, permitiendo a los manejadores del lado del servidor recuperar el objeto de dominio asociado con un evento clickeado o arrastrado.

Uso de Joda-Time

Las horas de inicio y fin utilizan DateTime de Joda-Time (no java.util.Date), proporcionando conocimiento de zona horaria del que carece java.util.Date. Los serializadores personalizados en AbstractFullCalendar convierten estos a cadenas ISO-8601 que el cliente JavaScript de FullCalendar entiende de forma nativa.

Historial Git

CommitQué cambió
868d6abb7 hasta ceb63e8a1Seis actualizaciones anuales del encabezado de derechos de autor. El modelo de eventos se ha mantenido estable, reflejando la madurez de la especificación del Objeto Evento de FullCalendar — todas las propiedades estándar están cubiertas, y el punto de extensión payload maneja datos personalizados.