2015-04-24 2 views
1

У меня есть некоторые проблемы.Eclipse Scout пользовательский объект в форме данных

У меня есть некоторый объект:

public class TestParameter { 

    private Long par1; 
    private Long par2; 

    public Long getPar1() { 

    return par1; 
    } 

    public void setPar1(final Long par1) { 

    this.par1 = par1; 
    } 

    public Long getPar2() { 

    return par2; 
    } 

    public void setPar2(final Long par2) { 

    this.par2 = par2; 
    } 
} 

И у меня есть форма с этим бобом:

@FormData(value = PurchaseConditionsEditFormData.class, sdkCommand = FormData.SdkCommand.CREATE) 
public class TestForm extends AbstractForm { 

    private TestParameter m_testParameter; 

    @FormData 
    public TestParameter getTestParameter() { 

    return m_testParameter; 
    } 

    @FormData 
    public void setTestParameter(final TestParameter testParameter) { 

    m_testParameter = testParameter; 
    } 
} 

Моей проблема заключается в том, что я могу использовать это в данной форме, так как внутри данных формы этого создаются

/** 
    * access method for property TestParameter. 
    */ 
public TestParameter getTestParameter() { 

    return getSearchParameterProperty().getValue(); 
} 

/** 
    * access method for property TestParameter. 
    */ 
public void setSearchParameter(TestParameter testParameter) { 

    getTestParameterProperty().setValue(testParameter); 
} 

public TestParameterProperty getTestParameterProperty() { 

    return getPropertyByClass(TestParameterProperty.class); 
} 

public static class TestParameterProperty extends 
    AbstractPropertyData<TestParameter> { 

    private static final long serialVersionUID = 1L; 

    public TestParameterProperty() { 

    } 
} 

Проблема заключается в том, что setSearchParameter() никогда не вызывается, и что getTestParameterProperty() возвращает объект со значением = null.

Как это исправить?

Я знаю, что грязным решением было бы поместить все объекты вне объекта и непосредственно в форму, но я не хочу этого решения.

ответ

1

Я выясняю, в чем была моя проблема.

Объект должен быть Serializable, то он работает.

+1

Абсолютно, если вы используете конкретный тип как значение поля или переменную в своей форме, он должен быть «Serializable». Вы узнаете, глядя на Stacktrace. Кроме того, я могу сказать, что 'getTestParameter()' и 'setTestParameter (..)' никогда не вызываются, потому что 'importFormData (..)' и 'exportFormData (..)' используют reflexion для получения и установки значений между 'Form' и 'FormData'. – Jmini

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