Отображать только 1 поле в метавиджете вложенных объектов

Использование мета-виджета для создания гибкого пользовательского интерфейса в Java: https://sourceforge.net/projects/metawidget/

public class Cohort  {

    private int id;
    private Project project;
    private Member teamLead;

    public Cohort() {   }

    @UiHidden
    public int getId() { return id; }
    public void setId(int id) { this.id = id; }

    public Project getProject() { return project;   }
    public void setProject(Project project) { this.project = project; }

    public Member getTeamLead() { return teamLead; }
    public void setTeamLead(Member teamLead) { this.teamLead = teamLead; }

}

Когорт - это проверенный класс. Однако, как желательно, он рекурсивно проверяет классы Project и Member.

При отображении в пользовательском интерфейсе будут отображаться все поля для каждого из классов. Тем не менее, я хотел бы только отобразить поле "Имя" проекта и firstName + фамилия участника.

1 ответ

Решение

Есть несколько способов добиться этого. Я начну с одного и сообщу, достаточно ли этого для ваших нужд:

a) пометьте поля Project/Member, которые вы не хотите видеть как UiHidden (вы не говорите, что это за поля, но, похоже, вы поняли идею, потому что вы уже скрываете Cohort.getId). Обратите внимание, что вы также можете повторно использовать существующие аннотации (например, аннотации JPA) для этой цели.

б) пометьте "Cohort.getProject" и "Cohort.getTeamLead" как UiLabel( ""). Это подавит вложенную метку для подобъекта и заставит ее поля выглядеть так, как если бы они были частью исходного объекта.

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