EN · DE · RU · FR · ES

#2778: CalendarResponse.java

projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/CalendarResponse.java Constructor de respuestas Java (Comandos Ajax de FullCalendar) · projectforge-wicket/src/main/java/net/ftlines/wicket/fullcalendar/CalendarResponse.java 110 líneas · 48 código · 43 comentarios · 19 en blanco
Una API fluida para enviar comandos desde el servidor Wicket al cliente JavaScript de FullCalendar en respuesta a callbacks Ajax. Cada método compone una invocación JavaScript basada en jQuery dirigida al elemento DOM del calendario ($('#calendarId').fullCalendarExt("comando", args...)) y la añade al AjaxRequestTarget de Wicket. Este es el canal de comandos servidor-a-cliente para la manipulación del calendario: refrescar eventos, alternar la visibilidad de fuentes de eventos, eliminar eventos, navegar a fechas y limpiar selecciones — todo impulsado desde manejadores de eventos del lado del servidor que reaccionan a interacciones del usuario.

Arquitectura

Patrón Constructor de Comandos

Cada método público devuelve CalendarResponse para encadenamiento. El patrón permite componer múltiples comandos de calendario en un único manejador de callback:

response.clearSelection().gotoDate(fecha).refetchEvents();

El mecanismo subyacente genera cadenas JavaScript mediante execute(args...), que usa String.format para producir un selector jQuery dirigido al ID de marcado Wicket del calendario, y añade el JavaScript al AjaxRequestTarget. El helper q() envuelve los argumentos entre comillas simples (o genera null para valores nulos).

Comandos Disponibles

Nota de Arquitectura: Optimización de Evento Único

El método refetchEvent contiene un comentario TODO que reconoce la implementación actual no optimizada (recuperación completa de la fuente). El comentario esboza la optimización planificada: buscar el evento afectado en el búfer del lado del cliente y recuperar solo ese evento. Este es un TODO de rendimiento reconocido para calendarios con muchos eventos.

Historial Git

CommitQué cambió
868d6abb7 hasta ceb63e8a1Seis actualizaciones anuales del encabezado de derechos de autor. El conjunto de comandos y la API fluida se han mantenido estables — el vocabulario de comandos del script de extensión de FullCalendar cubre las necesidades de la integración del calendario, y no se han requerido nuevos comandos servidor-a-cliente.