Eclipse Scout проходит через поля в данных формы

Я хотел бы пройти через все поля в форме данных.

Я знаю, что по форме я мог бы сделать что-то вроде этого:

 // Go through all fields with IFormFieldVisitor
box.visitFields(new IFormFieldVisitor() {

  @Override
  public boolean visitField(IFormField field, int level, int fieldIndex) {

    if (field instanceof MyClass) {
      ...
    }
    return true;
  }
}, 0);

но данные формы не имеют этой опции. Как это сделать в форме данных.

1 ответ

Решение

Вы можете получить их, используя

  1. AbstractFormData.getFields получить поля верхнего уровня. Если вам также нужны вложенные поля, взгляните на более сложные AbstractFormData.getAllFieldsRec(),
  2. AbstractFormData.getAllProperties чтобы получить свойства, которые вы определили, пометив геттеры и сеттеры с @FormData

Это был простой случай.

Теперь, если вы используете механизм Scout Extension для добавления новых элементов в существующую форму (и ее данные), вы должны будете принять во внимание этот вклад. Если вам нужно сделать это, вы можете обратиться к исходному коду AbstractForm.importFormData, чтобы увидеть, как Scout реализует это.

Другие вопросы по тегам