IHKForm.javaplugins/org.projectforge.plugins.ihk/src/main/java/org/projectforge/plugins/ihk/IHKForm.java
Pfad: plugins/...ihk/src/main/java/.../IHKForm.java ·
Zeilen: 248 ·
Typ: Java Wicket Form — erweitert AbstractStandardForm
248 Zeilen · 182 Code · 27 Kommentare · 39 leer
Wicket-Formular für die IHK-Plugin-Oberfläche — bietet den Wochenauswähler, Konfigurationseditor und Export-Trigger. Erweitert
AbstractStandardForm<Object, IHKPage>— ProjectForge's Wicket-Formular-Basisklasse mit Bootstrap-Grid-Layout. 248 Zeilen Java.Formularsteuerelemente
QuickSelectWeekPanel) — Kalender-Widget zur Auswahl der Berichtswoche. Beinhaltet Vorherige/Nächste-Woche-Navigation und „Diese Woche“-Schnellauswahl-ButtonLocalDatePanel+LocalDateModel) — zeigt den Montag und Freitag der ausgewählten Woche als schreibgeschützte Felder an
Gebunden anausbildungsbeginn— Ausbildungsstartdatum (mit Datumsauswahl)ausbildungsjahr— Ausbildungsjahr-Überschreibung (numerische Eingabe, Standard -1)teamname— Team-/Abteilungsname (Texteingabe)IHKCommentObjectüber WicketsPropertyModelSingleButtonPanelmitSubmitLink) — löstIHKExporter.export()aus und streamt die Excel-Datei als HTTP-DownloadIHKCommentObjectzurück zu JSON und schreibt es in das Adressbuch-Kommentarfeld (AddressDO.comment) überAddressDaoDatenladeprozess
ThreadLocalUserContext.getLoggedInUser()ausgelesenAddressDaoab, um den passenden Adressbucheintrag zu finden (Abgleich nach Vor-/Nachname)IHKCommentObjectüberJsonUtils.fromJson()deserialisiertWicket-Layout
Verwendet ProjectForge's
flowlayout-Paket für Bootstrap-Grid-basiertes Formular-Layout:FieldsetPanel— gruppiert verwandte Felder mit einer ÜberschriftDivPanel/DivTextPanel— Bootstrap-Grid-ContainerGridSize.COL50/COL100— responsive SpaltenbreitenWicketUtils.getImageIcon()— Symbole für Buttons (Download, Speichern)CSSColor— Styling-Konstanten für Info-/WarnmeldungenValidierung
ausbildungsbeginnmuss ein gültiges Datum sein — wirftUserExceptionmit lokalisierter Nachricht, falls fehlend oder ungültigAddressDO-Datensatz übereinstimmen — wenn keine Übereinstimmung gefunden wird, wird eine Warnung angezeigtRequest-Zyklus
Wicket-Formular absenden →
onSubmit()→ ruftIHKExporter.export()auf → gibtbyte[]zurück → verpackt inIResourceStream→ löst Browser-Download vonBerichtsheft_KW{week}_{Name}.xlsxaus.