Vaadin 8 Связывание с Pojo при использовании Vaadin Designer - PullRequest
0 голосов
/ 09 мая 2018

Я работаю над проектом, в котором пользовательский интерфейс генерируется из конструктора Vaadin. У меня есть HTML и соответствующий файл .java.

Я расширяю файл Java и привязываю свои данные к представлению дизайна. Основной код для отображения моих данных работает, поскольку каждое поле в форме имеет соответствующую переменную pojo. Теперь я хочу, чтобы два поля вместе отображались в форме, как если бы вы указывали полное имя и фамилию, чтобы показать полное имя.

В моем pojo есть метод toString, который возвращает два комбинированных значения, но я не могу понять, как установить для свойства propertyNoName значение aPropertyProfile.toString ()

public class PropertyProfileDesign extends VerticalLayout
{

    private VerticalLayout  propertyProfileHeader;
    private Label           propertyNoName;
    private TextField       propertyMgr;
    private TextField       propertyMgrPhone;
    private TextField       propertyMgrCellular;
    private TextField       propertyMgrHome;
    private TextField       regionalMgr;
    private TextField       regionalMgrPhone;
    private TextField       regionalMgrCellular;
    private TextField       regionalMgrHome;
    private VerticalLayout  propertyProfileBodyFooter;

    public PropertyProfileDesign()
    {
        Design.read( this );
    }

    public VerticalLayout getPropertyProfileHeader()
    {
        return propertyProfileHeader;
    }

    public Label getPropertyNoName()
    {
        return propertyNoName;
    }

    public TextField getPropertyMgr()
    {
        return propertyMgr;
    }

    public TextField getPropertyMgrPhone()
    {
        return propertyMgrPhone;
    }

    public TextField getPropertyMgrCellular()
    {
        return propertyMgrCellular;
    }

    public TextField getPropertyMgrHome()
    {
        return propertyMgrHome;
    }

    public TextField getRegionalMgr()
    {
        return regionalMgr;
    }

    public TextField getRegionalMgrPhone()
    {
        return regionalMgrPhone;
    }

    public TextField getRegionalMgrCellular()
    {
        return regionalMgrCellular;
    }

    public TextField getRegionalMgrHome()
    {
        return regionalMgrHome;
    }

    public VerticalLayout getPropertyProfileBodyFooter()
    {
        return propertyProfileBodyFooter;
    }
}

public class PropertyProfileView extends PropertyProfileDesign
{

    private static final long serialVersionUID = 7454308982717559970L;

    private Binder<PropertyProfile> binder = new Binder<>( PropertyProfile.class );

    public PropertyProfileView()
    {
    }

    public PropertyProfileView( final PropertyProfile aPropertyProfile )
    {
        this();

        binder.bindInstanceFields( this );
        binder.readBean( aPropertyProfile );
        //  How to update the label field propertyNoName with aPropertyProfile.toString()?

    }
}

1 Ответ

0 голосов
/ 10 мая 2018

Просто используйте метод Label setValue (..):

propertyNoName.setValue(aPropertyProfile.toString());
...