IHKForm.javaplugins/org.projectforge.plugins.ihk/src/main/java/org/projectforge/plugins/ihk/IHKForm.java
Ruta: plugins/...ihk/src/main/java/.../IHKForm.java ·
Líneas: 248 ·
Tipo: Java Wicket Form — extiende AbstractStandardForm
248 líneas · 182 código · 27 comentarios · 39 en blanco
Formulario Wicket para la interfaz de usuario del plugin IHK — proporciona el selector de semana, el editor de configuración y el disparador de exportación. Extiende
AbstractStandardForm<Object, IHKPage>— la clase base de formularios Wicket de ProjectForge con diseño de cuadrícula Bootstrap. 248 líneas de Java.Controles del formulario
QuickSelectWeekPanel) — widget de calendario para elegir la semana del informe. Incluye navegación de semana anterior/siguiente y botón de selección rápida "esta semana"LocalDatePanel+LocalDateModel) — muestra el lunes y viernes de la semana seleccionada como campos de solo lectura
Vinculado aausbildungsbeginn— fecha de inicio del aprendizaje (con selector de fecha)ausbildungsjahr— anulación del año de formación (entrada numérica, valor predeterminado -1)teamname— nombre del equipo/departamento (entrada de texto)IHKCommentObjecta través dePropertyModelde WicketSingleButtonPanelconSubmitLink) — activaIHKExporter.export()y transmite el archivo Excel como descarga HTTPIHKCommentObjectde vuelta a JSON y lo escribe en el campo de comentario de la libreta de direcciones (AddressDO.comment) a través deAddressDaoFlujo de carga de datos
ThreadLocalUserContext.getLoggedInUser()AddressDaopara encontrar la entrada correspondiente en la libreta de direcciones (coincidencia por nombre/apellido)IHKCommentObjectmedianteJsonUtils.fromJson()Diseño Wicket
Utiliza el paquete
flowlayoutde ProjectForge para el diseño de formularios basado en cuadrícula Bootstrap:FieldsetPanel— agrupa campos relacionados con un encabezadoDivPanel/DivTextPanel— contenedores de cuadrícula BootstrapGridSize.COL50/COL100— anchos de columna responsivosWicketUtils.getImageIcon()— iconos para botones (descarga, guardar)CSSColor— constantes de estilo para mensajes de información/advertenciaValidación
ausbildungsbeginndebe ser una fecha válida — lanzaUserExceptioncon mensaje localizado si falta o es inválidaAddressDO— si no se encuentra coincidencia, muestra una advertenciaCiclo de solicitud
Envío del formulario Wicket →
onSubmit()→ llama aIHKExporter.export()→ devuelvebyte[]→ envuelve enIResourceStream→ activa la descarga en el navegador deBerichtsheft_KW{week}_{Name}.xlsx.