EN · DE · RU · FR · ES

#182: AddressCampaignEditForm.java

plugins/org.projectforge.plugins.marketing/src/main/java/org/projectforge/plugins/marketing/AddressCampaignEditForm.java Тип: Java · Роль: Форма · Источник: plugins/org.projectforge.plugins.marketing/src/main/java/org/projectforge/plugins/marketing/AddressCampaignEditForm.java 88 строк · 50 кода · 30 комментариев · 8 пустых
Реализация формы Wicket для редактирования AddressCampaign. Обрабатывает валидацию формы, логику отправки и привязку полей к сущности.

Структура кода

Пакет: org.projectforge.plugins.marketing

Классы: AddressCampaignEditForm

Расширяет: AbstractEditForm

Методы (2): init, getLogger

Поля (2): serialVersionUID, valuesField

Импорты: 8 пакетов

Исходный код (сокращённый)

package org.projectforge.plugins.marketing;

import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.validation.IValidator;
import org.projectforge.web.wicket.AbstractEditForm;
import org.projectforge.web.wicket.components.MaxLengthTextArea;
import org.projectforge.web.wicket.components.RequiredMaxLengthTextField;
import org.projectforge.web.wicket.flowlayout.FieldsetPanel;
import org.slf4j.Logger;

/**
 * Это страница формы редактирования.
 *
 * @author Kai Reinhard (k.reinhard@micromata.de)
 */
public class AddressCampaignEditForm extends AbstractEditForm<AddressCampaignDO, AddressCampaignEditPage>
{
  private static final long serialVersionUID = -6208809585214296635L;

  private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(AddressCampaignEditForm.class);

  private TextField<String> valuesField;

  public AddressCampaignEditForm(final AddressCampaignEditPage parentPage, final AddressCampaignDO data)
  {
    super(parentPage, data);
  }

  @SuppressWarnings("serial")
  @Override
  protected void init()
  {
    super.init();
    {
      // Название
      final FieldsetPanel fs = gridBuilder.newFieldset(getString("title"));
      fs.add(new RequiredMaxLengthTextField(fs.getTextFieldId(), new PropertyModel<>(data, "title")));
    }
    {
      // Значения
      final FieldsetPanel fs = gridBuilder.newFieldset(getString("values"));
      valuesField = new RequiredMaxLengthTextField(fs.getTextFieldId(), new PropertyModel<>(data, "values"));
      fs.addHelpIcon(getString("plugins.marketing.addressCampaign.values.format"));
      fs.add(valuesField);
      fs.addAlertIcon(getString("plugins.marketing.addressCampaign.edit.warning.doNotChangeValues"));
      valuesField.add((IValidator<String>) validatable -> {
        if (AddressCampaignDO.Companion.getValuesArray(validatable.getValue()) == null) {
          valuesField.error(getString("plugins.marketing.addressCampaign.values.invalidFormat"));
        }
      });
    }
    {
      // Текстовое описание
      final FieldsetPanel fs = gridBuilder.newFieldset(getString("comment"));
      fs.add(new MaxLengthTextArea(fs.getTextAreaId(), new PropertyModel<>(data, "comment")));
    }
  }

  @Override
  protected Logger getLogger()
  {
    return log;
  }
}

История Git

868d6abb7 2025 -> 2026
63081666f Заголовки исходных файлов: 2024-> 2025.
b6092df09 Авторские права 2023 -> 2024
ab45d51fa Авторские права 2001-2022 -> 2001-2023.
5f7ef41b8 Авторские права 2021 -> 2022