2015-05-05 2 views
0

У меня есть табличка с 2 вкладками (A & B). Я хочу поместить все общие поля формы на вкладке 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 
} 

Я хочу поставить имя на Tab А так как это общее для всех людей и класса на Tab 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 

Как разбить поля формы на разные вкладки?

Благодаря

ответ

0

Студент проходит человек, поэтому является правильным во второй вкладке вы видите оба поля.

Я бы рассмотрел общую структуру того, что вы пытаетесь выполнить. Возможно, вы можете попытаться создать вспомогательный класс с двумя методами, один из которых возвращает общую форму, а другой - конкретный. Или просто используйте один настраиваемый экземпляр Student, где вы можете пометить поля как общие o конкретные и действовать соответственно на вкладках. Это просто не кажется, хороший дизайн, если я не хватает какой-то главный пункт ;-)

Вы можете также использовать дополнения, как https://vaadin.com/directory#!addon/fieldbinder-addon , чтобы помочь вам в обработке поля.

0

Я нашел решение своего вопроса. Мне нужно использовать BeanFieldGroup.

Смежные вопросы