IHKForm.javaplugins/org.projectforge.plugins.ihk/src/main/java/org/projectforge/plugins/ihk/IHKForm.java Путь: plugins/...ihk/src/main/java/.../IHKForm.java · Строк: 248 · Тип: Java Wicket Form — расширяет AbstractStandardForm 248 строк · 182 кода · 27 комментариев · 39 пустых
Wicket-форма для UI плагина IHK — предоставляет выбор недели, редактор конфигурации и кнопку экспорта. Расширяет
AbstractStandardForm<Object, IHKPage>— базовый класс форм Wicket от ProjectForge с сеткой Bootstrap. 248 строк Java.Элементы управления формы
QuickSelectWeekPanel) — календарный виджет для выбора отчётной недели. Включает навигацию по предыдущей/следующей неделе и кнопку быстрого выбора «текущая неделя»LocalDatePanel+LocalDateModel) — показывает понедельник и пятницу выбранной недели как поля только для чтения
Привязаны кausbildungsbeginn— дата начала обучения (с выбором даты)ausbildungsjahr— переопределение года обучения (числовой ввод, по умолчанию -1)teamname— название команды/отдела (текстовый ввод)IHKCommentObjectчерез WicketPropertyModelSingleButtonPanelсSubmitLink) — запускаетIHKExporter.export()и передаёт Excel-файл для скачивания через HTTPIHKCommentObjectобратно в JSON и записывает его в поле комментария адресной книги (AddressDO.comment) черезAddressDaoПроцесс загрузки данных
ThreadLocalUserContext.getLoggedInUser()AddressDaoдля поиска соответствующей записи в адресной книге (поиск по имени/фамилии)IHKCommentObjectчерезJsonUtils.fromJson()Wicket-разметка
Использует пакет
flowlayoutот ProjectForge для разметки формы на основе сетки Bootstrap:FieldsetPanel— группирует связанные поля с заголовкомDivPanel/DivTextPanel— контейнеры сетки BootstrapGridSize.COL50/COL100— адаптивная ширина колонокWicketUtils.getImageIcon()— иконки для кнопок (скачать, сохранить)CSSColor— константы стилей для информационных сообщений и предупрежденийВалидация
ausbildungsbeginnдолжен быть корректной датой — вызываетUserExceptionс локализованным сообщением, если дата отсутствует или невернаAddressDO— если совпадение не найдено, отображается предупреждениеЦикл запроса
Отправка Wicket-формы →
onSubmit()→ вызываетIHKExporter.export()→ возвращаетbyte[]→ оборачивает вIResourceStream→ запускает скачивание браузером файлаBerichtsheft_KW{week}_{Name}.xlsx.