Как да разделя полетата на формуляри в различни раздели във vaadin?

Имам табличен лист с 2 раздела (A и B). Искам да поставя всички общи полета на формуляра в раздел А, а специфичните в раздел Б. Всички полета на формуляра съставляват едно цяло.

Например. моят модел на данни е по-долу (изпускам конструктора. Освен това това е само пример, така че използвам само едно поле на формуляр).

public class Person extends FormLayout {
   TextField name = new TextField("Name");  //Common to all persons
}

public class Student extends Person {
   TextField grade = new TextField("Grade"); //Specific to students
}

Искам да сложа име в раздел A, тъй като е общо за всички хора, и оценка в раздел B, тъй като е специфично за учениците. Името и оценката съставляват ученик. Имам POJO, наречен Student в задната част, който ще бъде картографиран към полетата на формуляра. Опитах по-долу

tabsheet.addTab(new Person(), "Common"); //Display only Name - GOOD
tabsheet.addTab(new Student(), "Specific"); //Display both Name & Grade - BAD. I only want Grade

Как да разделя полетата на формуляра в различни раздели?

Благодаря


person Andy    schedule 05.05.2015    source източник


Отговори (2)


Ученикът разширява Лице, така че е правилно, че във втория раздел виждате и двете полета.

Бих помислил да прегледам цялостната структура на това, което се опитвате да постигнете. Може би можете да опитате да създадете помощен клас с два метода, като единият връща общата форма, а другият връща конкретната. Или просто използвайте един конфигурируем екземпляр на Student, където можете да маркирате полетата като общи или специфични и да действате съответно в разделите. Просто не изглежда добър дизайн, освен ако не пропускам някоя важна точка ;-)

Можете също да използвате добавки като https://vaadin.com/directory#!addon/fieldbinder-addon, за да ви помогне в полевата работа.

person MarcelloGarini    schedule 05.05.2015

Намерих решението на моя въпрос. Трябва да използвам BeanFieldGroup.

person Andy    schedule 06.05.2015