Привязка Vaadin 8 к Pojo при использовании Vaadin Designer

Я работаю над проектом, в котором пользовательский интерфейс создается дизайнером 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()?

    }
}

person Bitwyse1    schedule 09.05.2018    source источник


Ответы (1)


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

propertyNoName.setValue(aPropertyProfile.toString());
person Tatu Lund    schedule 10.05.2018